CudaText 1.108.0 Portable + addons

Torrent Hash:
9D6661FC1A34188AC94FF8168F41791D6D91E046
Number of Files:
522
Content Size:
117.65MB
Convert On:
2020-10-18
Magnet Link:
W3siaWQiOiJhZHN0X2JfTV8zMDB4NTAiLCJhZHNwb3QiOiJiX01fMzAweDUwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPlxyXG4gIGF0T3B0aW9ucyA9IHtcclxuICAgICdrZXknIDogJzdkMWNjMGUxYjk4MWM5NzY4ZGI3ODUxZmM1MzVhMTllJyxcclxuICAgICdmb3JtYXQnIDogJ2lmcmFtZScsXHJcbiAgICAnaGVpZ2h0JyA6IDUwLFxyXG4gICAgJ3dpZHRoJyA6IDMyMCxcclxuICAgICdwYXJhbXMnIDoge31cclxuICB9O1xyXG4gIGRvY3VtZW50LndyaXRlKCc8c2NyJyArICdpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJodHRwJyArIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyAncycgOiAnJykgKyAnOlwvXC93d3cuYm5odG1sLmNvbVwvaW52b2tlLmpzXCI+PFwvc2NyJyArICdpcHQ+Jyk7XHJcbjxcL3NjcmlwdD4ifV0=
File Name
Size
cudatext-win-x32-1_108_0_0.zip
11.74MB
cudatext-win-x64-1_108_0_0.zip
12.31MB
CudaText_addons/codetreeicons/codetreeicons.Axialis_Flat_Pro_2017.zip
7.61KB
CudaText_addons/codetreeicons/codetreeicons.For_Dark.zip
3.78KB
CudaText_addons/filetypeicons/filetypeicons.vscode_material_24x24.zip
171.9KB
CudaText_addons/formatter/formatter.AStyle.zip
3.45KB
CudaText_addons/formatter/formatter.Bash_Beautify.zip
14.04KB
CudaText_addons/formatter/formatter.ColdFusion.zip
6.53KB
CudaText_addons/formatter/formatter.CSS_AutoPrefixer.zip
1.33MB
CudaText_addons/formatter/formatter.CSS_Comb.zip
1.4MB
CudaText_addons/formatter/formatter.CSS_Prefixer.zip
7.29KB
CudaText_addons/formatter/formatter.CSS_SASS_SCSS_LESS.zip
15.71KB
CudaText_addons/formatter/formatter.Embarcadero.zip
1.95KB
CudaText_addons/formatter/formatter.HTML_Beautify.zip
6.55KB
CudaText_addons/formatter/formatter.HTML_Soup.zip
61.92KB
CudaText_addons/formatter/formatter.JavaScript_JSON.zip
160.46KB
CudaText_addons/formatter/formatter.Lua.zip
5.03KB
CudaText_addons/formatter/formatter.Markdown_Tables.zip
5.71KB
CudaText_addons/formatter/formatter.Python_Black.zip
191.76KB
CudaText_addons/formatter/formatter.Python_Fix_Imports.zip
5.74KB
CudaText_addons/formatter/formatter.Python_ReIndent.zip
5.17KB
CudaText_addons/formatter/formatter.Ruby.zip
2.83KB
CudaText_addons/formatter/formatter.SQL_Parse.zip
84KB
CudaText_addons/formatter/formatter.SQL_Uroboro.zip
93.09KB
CudaText_addons/formatter/formatter.Uncrustify.zip
3.14KB
CudaText_addons/formatter/formatter.VBScript.zip
2.73KB
CudaText_addons/formatter/formatter.XML_IndentX.zip
7.49KB
CudaText_addons/formatter/formatter.XML_Pretty_Print.zip
4.27KB
CudaText_addons/formatter/formatter.YAML.zip
41.56KB
CudaText_addons/lexer/lexer.ABAP.zip
4.68KB
CudaText_addons/lexer/lexer.Abaqus_Keywords.zip
1.95KB
CudaText_addons/lexer/lexer.ABC_Notation.zip
1.45KB
CudaText_addons/lexer/lexer.ActionScript.zip
5.05KB
CudaText_addons/lexer/lexer.Acu_Cobol.zip
3.59KB
CudaText_addons/lexer/lexer.Ada.zip
4.43KB
CudaText_addons/lexer/lexer.Adobe_Flash.zip
1.78KB
CudaText_addons/lexer/lexer.Apache_config.zip
1.55KB
CudaText_addons/lexer/lexer.Apache_Hive.zip
3.54KB
CudaText_addons/lexer/lexer.Apache_Pig.zip
3.44KB
CudaText_addons/lexer/lexer.AppleScript.zip
2.53KB
CudaText_addons/lexer/lexer.Arduino.zip
3KB
CudaText_addons/lexer/lexer.ASAP2.zip
3.19KB
CudaText_addons/lexer/lexer.AsciiDoc.zip
2.62KB
CudaText_addons/lexer/lexer.Assembly_ARM.zip
2.65KB
CudaText_addons/lexer/lexer.Assembly_AVR.zip
2.72KB
CudaText_addons/lexer/lexer.Assembly_FASM.zip
4.16KB
CudaText_addons/lexer/lexer.Assembly_JWASM.zip
3KB
CudaText_addons/lexer/lexer.Assembly_MASM_x86.zip
3.87KB
CudaText_addons/lexer/lexer.Assembly_MIPS.zip
1.53KB
CudaText_addons/lexer/lexer.Assembly_Motorola_68k.zip
3.49KB
CudaText_addons/lexer/lexer.Assembly_NASM_x86.zip
4.27KB
CudaText_addons/lexer/lexer.Assembly_PowerPC.zip
6.47KB
CudaText_addons/lexer/lexer.Assembly_SHARC_DSP.zip
4.79KB
CudaText_addons/lexer/lexer.Assembly_SPARC.zip
2.47KB
CudaText_addons/lexer/lexer.Assembly_Z80_RGBDS.zip
1.99KB
CudaText_addons/lexer/lexer.Assembly_Z80_SjASM.zip
3.96KB
CudaText_addons/lexer/lexer.Asymptote.zip
2.56KB
CudaText_addons/lexer/lexer.Autoconf_M4.zip
4.93KB
CudaText_addons/lexer/lexer.AutoHotkey.zip
8.63KB
CudaText_addons/lexer/lexer.AutoIt.zip
62.02KB
CudaText_addons/lexer/lexer.Automake.zip
1.76KB
CudaText_addons/lexer/lexer.AviSynth.zip
1.99KB
W3siaWQiOiJleG9jX2JfUExBWSIsImFkc3BvdCI6ImJfUExBWSIsIndlaWdodCI6IjEiLCJmY2FwIjpmYWxzZSwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjpmYWxzZSwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjwhLS1cclxuPGEgaHJlZj1cImh0dHBzOlwvXC9zeW5kaWNhdGlvbi5keW5zcnZ0YmcuY29tXC9zcGxhc2gucGhwP2lkem9uZT0xOTYxMDkyJnJldHVybl91cmw9aHR0cHM6XC9cL3RlbGxtZS5wd1wvZ29cL2J0c1wiICBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIHRhcmdldD1cIl9ibGFua1wiPjxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wbGF5XCI+PFwvc3Bhbj4gUGxheSBOb3c8XC9hPlxyXG4tLT4ifV0=
CudaText_addons/lexer/lexer.AWK.zip
1.84KB
CudaText_addons/lexer/lexer.BibTeX.zip
1.56KB
CudaText_addons/lexer/lexer.Bitsquid_SJSON.zip
1.54KB
CudaText_addons/lexer/lexer.Bohemia_SQF.zip
13KB
CudaText_addons/lexer/lexer.Boo.zip
3.77KB
CudaText_addons/lexer/lexer.Brainfuck.zip
1.21KB
CudaText_addons/lexer/lexer.C#.zip
4.99KB
CudaText_addons/lexer/lexer.Caffe_Prototxt.zip
1.56KB
CudaText_addons/lexer/lexer.Caml.zip
3.68KB
CudaText_addons/lexer/lexer.Clarion.zip
1.43KB
CudaText_addons/lexer/lexer.Clavier.zip
2.29KB
CudaText_addons/lexer/lexer.Clipper.zip
1.64KB
CudaText_addons/lexer/lexer.Clojure.zip
6.26KB
CudaText_addons/lexer/lexer.CMake.zip
4.17KB
CudaText_addons/lexer/lexer.Cobol.zip
2.77KB
CudaText_addons/lexer/lexer.CodeVisionAVR.zip
2.97KB
CudaText_addons/lexer/lexer.CoffeeScript.zip
2.39KB
CudaText_addons/lexer/lexer.ColdFusion.zip
21.68KB
CudaText_addons/lexer/lexer.CRF.zip
1.84KB
CudaText_addons/lexer/lexer.CSV.zip
401B
CudaText_addons/lexer/lexer.CUDA_C++.zip
4.85KB
CudaText_addons/lexer/lexer.D.zip
3.65KB
CudaText_addons/lexer/lexer.Dart.zip
2.62KB
CudaText_addons/lexer/lexer.Delphi_resources.zip
1.64KB
CudaText_addons/lexer/lexer.Dhall.zip
1.73KB
CudaText_addons/lexer/lexer.Diff.zip
1.48KB
CudaText_addons/lexer/lexer.Dockerfile.zip
1.3KB
CudaText_addons/lexer/lexer.Eiffel.zip
1.85KB
CudaText_addons/lexer/lexer.Elixir.zip
1.96KB
CudaText_addons/lexer/lexer.Elm.zip
1.78KB
CudaText_addons/lexer/lexer.Erlang.zip
1.75KB
CudaText_addons/lexer/lexer.etlua_Template.zip
4.18KB
CudaText_addons/lexer/lexer.Euphoria.zip
1.95KB
CudaText_addons/lexer/lexer.F#.zip
2.58KB
CudaText_addons/lexer/lexer.Factor.zip
1.95KB
CudaText_addons/lexer/lexer.Falcon.zip
109.66KB
CudaText_addons/lexer/lexer.Fish.zip
1.55KB
CudaText_addons/lexer/lexer.Forth.zip
2.2KB
CudaText_addons/lexer/lexer.Fortran.zip
5.29KB
CudaText_addons/lexer/lexer.Fountain.zip
2.37KB
CudaText_addons/lexer/lexer.FoxPro.zip
18.14KB
CudaText_addons/lexer/lexer.GAMS.zip
3.85KB
CudaText_addons/lexer/lexer.GDScript.zip
2.36KB
CudaText_addons/lexer/lexer.Gherkin.zip
1.66KB
CudaText_addons/lexer/lexer.GHS_MULTI_IDE.zip
9.1KB
CudaText_addons/lexer/lexer.GLSL.zip
5.66KB
CudaText_addons/lexer/lexer.Gnuplot.zip
2.74KB
CudaText_addons/lexer/lexer.Go.zip
2.14KB
CudaText_addons/lexer/lexer.Gold_Parser.zip
1.52KB
CudaText_addons/lexer/lexer.GraphQL.zip
1.81KB
CudaText_addons/lexer/lexer.Graphviz_DOT.zip
1.83KB
CudaText_addons/lexer/lexer.Great_Cow_Basic.zip
3.31KB
CudaText_addons/lexer/lexer.Groovy.zip
2.71KB
CudaText_addons/lexer/lexer.Grub4Dos.zip
2.01KB
CudaText_addons/lexer/lexer.Haml.zip
1.45KB
CudaText_addons/lexer/lexer.Harbour.zip
26.02KB
CudaText_addons/lexer/lexer.Haskell.zip
2.07KB
CudaText_addons/lexer/lexer.Haxe.zip
2.47KB
CudaText_addons/lexer/lexer.HJSON.zip
1.55KB
CudaText_addons/lexer/lexer.HLSL.zip
3.52KB
CudaText_addons/lexer/lexer.HTML_Diafan.zip
5.74KB
CudaText_addons/lexer/lexer.HTML_Django_DTL.zip
5.85KB
CudaText_addons/lexer/lexer.HTML_Embedded_JS.zip
6.41KB
CudaText_addons/lexer/lexer.HTML_Handlebars.zip
6.19KB
CudaText_addons/lexer/lexer.HTML_Laravel_Blade.zip
5.83KB
CudaText_addons/lexer/lexer.HTML_Liquid.zip
5.73KB
CudaText_addons/lexer/lexer.HTML_Mustache.zip
4.26KB
CudaText_addons/lexer/lexer.HTML_Ruby-ERB.zip
4.26KB
CudaText_addons/lexer/lexer.HTML_Smarty.zip
5.82KB
CudaText_addons/lexer/lexer.IDL_files.zip
2.59KB
CudaText_addons/lexer/lexer.IDL_language.zip
2.21KB
CudaText_addons/lexer/lexer.Informix_4GL.zip
2.57KB
CudaText_addons/lexer/lexer.Inno_Setup.zip
8.89KB
CudaText_addons/lexer/lexer.Intel_HEX.zip
1.22KB
CudaText_addons/lexer/lexer.Jade.zip
2.25KB
CudaText_addons/lexer/lexer.Jasmine_JVM_Assembler.zip
1.75KB
CudaText_addons/lexer/lexer.Java.zip
19.64KB
CudaText_addons/lexer/lexer.Java_Velocity.zip
3.31KB
CudaText_addons/lexer/lexer.JavaScript_(ES6).zip
13.35KB
CudaText_addons/lexer/lexer.JavaScript_(ES6)L.zip
3.71KB
CudaText_addons/lexer/lexer.JavaScript_Babel.zip
3.32KB
CudaText_addons/lexer/lexer.JCL.zip
1.94KB
CudaText_addons/lexer/lexer.Jinja2.zip
2.24KB
CudaText_addons/lexer/lexer.JQ.zip
2.84KB
CudaText_addons/lexer/lexer.Jsonnet.zip
2.21KB
CudaText_addons/lexer/lexer.Julia.zip
3.71KB
CudaText_addons/lexer/lexer.Kivy.zip
2.14KB
CudaText_addons/lexer/lexer.KiXtart.zip
3.06KB
CudaText_addons/lexer/lexer.Kotlin.zip
2.63KB
CudaText_addons/lexer/lexer.LaTeX.zip
4.6KB
CudaText_addons/lexer/lexer.LESS.zip
2.52KB
CudaText_addons/lexer/lexer.Lisp.zip
4.33KB
CudaText_addons/lexer/lexer.LiveCode.zip
13.75KB
CudaText_addons/lexer/lexer.Logfiles.zip
2.62KB
CudaText_addons/lexer/lexer.Logstash_DSL.zip
1.79KB
CudaText_addons/lexer/lexer.Lola-2.zip
2.82KB
CudaText_addons/lexer/lexer.LS-DYNA.zip
1.45KB
CudaText_addons/lexer/lexer.MacroScript_(Macro_Sheduler).zip
5.93KB
CudaText_addons/lexer/lexer.Makefile.zip
1.7KB
CudaText_addons/lexer/lexer.MATLAB.zip
3.09KB
CudaText_addons/lexer/lexer.MediaWiki.zip
1.72KB
CudaText_addons/lexer/lexer.Metafont.zip
1.87KB
CudaText_addons/lexer/lexer.MIB_files_(SNMP_protocol).zip
1.84KB
CudaText_addons/lexer/lexer.MikroTik_Script.zip
1.78KB
CudaText_addons/lexer/lexer.MiniZinc.zip
2.43KB
CudaText_addons/lexer/lexer.Modelica.zip
2.36KB
CudaText_addons/lexer/lexer.Modula_2.zip
1.71KB
CudaText_addons/lexer/lexer.Monkey.zip
2.58KB
CudaText_addons/lexer/lexer.MSVS_Solution.zip
1.55KB
CudaText_addons/lexer/lexer.MusicBrainz_Picard_Tagger_Script.zip
1.28KB
CudaText_addons/lexer/lexer.MySQL_SQL.zip
6.7KB
CudaText_addons/lexer/lexer.MySQL_Stored_Procedures.zip
4.51KB
CudaText_addons/lexer/lexer.Nemerle.zip
3.41KB
CudaText_addons/lexer/lexer.NFO_files.zip
586B
CudaText_addons/lexer/lexer.Nginx.zip
1.53KB
CudaText_addons/lexer/lexer.Nim.zip
2.6KB
CudaText_addons/lexer/lexer.Nix.zip
4.38KB
CudaText_addons/lexer/lexer.nnCron.zip
106.83KB
CudaText_addons/lexer/lexer.NSIS.zip
5.98KB
CudaText_addons/lexer/lexer.NSL_Assembler.zip
4.81KB
CudaText_addons/lexer/lexer.Oberon.zip
2.55KB
CudaText_addons/lexer/lexer.Objective-C.zip
9.42KB
CudaText_addons/lexer/lexer.OneC_(1C).zip
2.13KB
CudaText_addons/lexer/lexer.OpenCL.zip
3.04KB
CudaText_addons/lexer/lexer.OpenEdge_ABL.zip
1.89KB
CudaText_addons/lexer/lexer.OpenSCAD.zip
7.6KB
CudaText_addons/lexer/lexer.Org-mode.zip
2.24KB
CudaText_addons/lexer/lexer.Parser3.zip
2.34KB
CudaText_addons/lexer/lexer.Pascal.zip
32.18KB
CudaText_addons/lexer/lexer.Pawn.zip
2.8KB
CudaText_addons/lexer/lexer.PAX_Pascal.zip
3.4KB
CudaText_addons/lexer/lexer.PECmd_script.zip
2.63KB
CudaText_addons/lexer/lexer.Perl.zip
6.61KB
CudaText_addons/lexer/lexer.PICL.zip
2.41KB
CudaText_addons/lexer/lexer.Pike.zip
3.28KB
CudaText_addons/lexer/lexer.PKGBUILD.zip
1.44KB
CudaText_addons/lexer/lexer.PL-SQL.zip
26.72KB
CudaText_addons/lexer/lexer.PlantUML.zip
3.08KB
CudaText_addons/lexer/lexer.Pony.zip
2.6KB
CudaText_addons/lexer/lexer.PostScript.zip
3.77KB
CudaText_addons/lexer/lexer.Power_Query_M.zip
5.63KB
CudaText_addons/lexer/lexer.PowerShell.zip
11.83KB
CudaText_addons/lexer/lexer.Prolog.zip
1.64KB
CudaText_addons/lexer/lexer.Properties.zip
1.41KB
CudaText_addons/lexer/lexer.Pug.zip
2.36KB
CudaText_addons/lexer/lexer.Puppet.zip
2.12KB
CudaText_addons/lexer/lexer.PyMOL.zip
2.55KB
CudaText_addons/lexer/lexer.R.zip
16.54KB
CudaText_addons/lexer/lexer.R_Markdown.zip
2.88KB
CudaText_addons/lexer/lexer.Racket.zip
1.93KB
CudaText_addons/lexer/lexer.Ragel.zip
1.87KB
CudaText_addons/lexer/lexer.Rainmeter.zip
4.13KB
CudaText_addons/lexer/lexer.Raku.zip
4.34KB
CudaText_addons/lexer/lexer.Razor.zip
3.17KB
CudaText_addons/lexer/lexer.Regular_expressions.zip
1.02KB
CudaText_addons/lexer/lexer.Rexx.zip
2.29KB
CudaText_addons/lexer/lexer.RON.zip
1.66KB
CudaText_addons/lexer/lexer.RPG_IV.zip
4.76KB
CudaText_addons/lexer/lexer.RTF.zip
1.21KB
CudaText_addons/lexer/lexer.Ruby.zip
11.34KB
CudaText_addons/lexer/lexer.Rust.zip
2.45KB
CudaText_addons/lexer/lexer.Sass.zip
1.61KB
CudaText_addons/lexer/lexer.Scala.zip
22.66KB
CudaText_addons/lexer/lexer.Scheme.zip
3.05KB
CudaText_addons/lexer/lexer.Scilab.zip
2.22KB
CudaText_addons/lexer/lexer.SCSS.zip
3.27KB
CudaText_addons/lexer/lexer.SFZ.zip
1.3KB
CudaText_addons/lexer/lexer.Slim.zip
1.71KB
CudaText_addons/lexer/lexer.Smalltalk.zip
1.92KB
CudaText_addons/lexer/lexer.Solidity.zip
2.99KB
CudaText_addons/lexer/lexer.SPICE.zip
1.69KB
CudaText_addons/lexer/lexer.SPIR.zip
1.4KB
CudaText_addons/lexer/lexer.SQL.zip
3.7KB
CudaText_addons/lexer/lexer.SQL_Blue.zip
3.09KB
CudaText_addons/lexer/lexer.SQL_White.zip
2.11KB
CudaText_addons/lexer/lexer.Squirrel.zip
2.4KB
CudaText_addons/lexer/lexer.Standard_ML.zip
2.26KB
CudaText_addons/lexer/lexer.STAR.zip
651B
CudaText_addons/lexer/lexer.Stata.zip
15.24KB
CudaText_addons/lexer/lexer.Strace.zip
1.47KB
CudaText_addons/lexer/lexer.Stylus.zip
2.42KB
CudaText_addons/lexer/lexer.Swift.zip
2.66KB
CudaText_addons/lexer/lexer.SynWrite_acp_files.zip
1.03KB
CudaText_addons/lexer/lexer.SynWrite_snippets.zip
987B
CudaText_addons/lexer/lexer.T-SQL.zip
16.75KB
CudaText_addons/lexer/lexer.TAGML.zip
1.46KB
CudaText_addons/lexer/lexer.TakeCommand.zip
6.45KB
CudaText_addons/lexer/lexer.Tcl.zip
4.21KB
CudaText_addons/lexer/lexer.Text_Russian_detector.zip
903B
CudaText_addons/lexer/lexer.Text_with_indentation.zip
1.06KB
CudaText_addons/lexer/lexer.Textile.zip
2.18KB
CudaText_addons/lexer/lexer.ToDo.zip
1.89KB
CudaText_addons/lexer/lexer.TOML.zip
1.57KB
CudaText_addons/lexer/lexer.Tree.zip
1.26KB
CudaText_addons/lexer/lexer.Twig.zip
2.1KB
CudaText_addons/lexer/lexer.TypeScript.zip
3.23KB
CudaText_addons/lexer/lexer.V.zip
2.04KB
CudaText_addons/lexer/lexer.Vala.zip
2.96KB
CudaText_addons/lexer/lexer.Verilog_HDL.zip
2.62KB
CudaText_addons/lexer/lexer.VHDL.zip
2.98KB
CudaText_addons/lexer/lexer.VimL.zip
1.96KB
CudaText_addons/lexer/lexer.Virgil.zip
2.09KB
CudaText_addons/lexer/lexer.Visual_dBase.zip
3.22KB
CudaText_addons/lexer/lexer.Vue.zip
1.69KB
CudaText_addons/lexer/lexer.WikidPad.zip
3.43KB
CudaText_addons/lexer/lexer.WinBuilder_script.zip
2.46KB
CudaText_addons/lexer/lexer.Windows_Resource_Script.zip
2.06KB
CudaText_addons/lexer/lexer.WSH_script.zip
1.39KB
CudaText_addons/lexer/lexer.XSLT.zip
4.15KB
CudaText_addons/lexer/lexer.Yacc.zip
2.26KB
CudaText_addons/lexer/lexer.YAML.zip
1.99KB
CudaText_addons/lexer/lexer.ZenScript_(MineTweaker).zip
1.7KB
CudaText_addons/lexer/lexer.Zephir.zip
2.46KB
CudaText_addons/linter/linter.AutoIt_using_au3check.zip
1.69KB
CudaText_addons/linter/linter.C++_using_cppcheck.zip
1.88KB
CudaText_addons/linter/linter.C++_using_cpplint.zip
76.3KB
CudaText_addons/linter/linter.C++_using_gcc.zip
1.48KB
CudaText_addons/linter/linter.CoffeeScript_using_coffee-jshint.zip
1.52KB
CudaText_addons/linter/linter.CoffeeScript_using_coffee.zip
90.11KB
CudaText_addons/linter/linter.CoffeeScript_using_coffeelint.zip
518.73KB
CudaText_addons/linter/linter.CSS_using_csslint.zip
67.94KB
CudaText_addons/linter/linter.CSS_using_csstree.zip
1.74KB
CudaText_addons/linter/linter.Dockerfile_using_dockerfilelint.zip
1.34KB
CudaText_addons/linter/linter.Erlang_using_erlc.zip
1.35KB
CudaText_addons/linter/linter.Go_using_go-vet.zip
1.5KB
CudaText_addons/linter/linter.Go_using_golint.zip
1.44KB
CudaText_addons/linter/linter.Go_using_gotype.zip
1.74MB
CudaText_addons/linter/linter.Haml_using_ruby-haml.zip
1.86KB
CudaText_addons/linter/linter.Haskell_using_ghc.zip
1.99KB
CudaText_addons/linter/linter.HTML_using_htmltidy.zip
139.77KB
CudaText_addons/linter/linter.Inno_Setup_using_iscc.zip
1.7KB
CudaText_addons/linter/linter.Java_using_javac.zip
2.12KB
CudaText_addons/linter/linter.JavaScript_using_eslint.zip
2.67KB
CudaText_addons/linter/linter.JavaScript_using_jshint.zip
1.78MB
CudaText_addons/linter/linter.JavaScript_using_jsl.zip
1.94KB
CudaText_addons/linter/linter.JSON_using_python-json.zip
1.84KB
CudaText_addons/linter/linter.Lua_using_luac.zip
312.93KB
CudaText_addons/linter/linter.Markdown_using_markdownlint.zip
81.43KB
CudaText_addons/linter/linter.Modelica_using_moparser.zip
1.62KB
CudaText_addons/linter/linter.Nginx_using_nginx-lint.zip
2.24KB
CudaText_addons/linter/linter.Perl_using_perl.zip
1.33KB
CudaText_addons/linter/linter.PHP_using_phpcs.zip
476.16KB
CudaText_addons/linter/linter.PHP_using_phpl.zip
1.57KB
CudaText_addons/linter/linter.PHP_using_phplint.zip
2.04KB
CudaText_addons/linter/linter.PHP_using_phpmd.zip
803.37KB
CudaText_addons/linter/linter.PowerShell_using_PSScriptAnalyzer.zip
3.24KB
CudaText_addons/linter/linter.Puppet_using_puppet-lint.zip
1.54KB
CudaText_addons/linter/linter.Puppet_using_puppet.zip
1.43KB
CudaText_addons/linter/linter.Python_using_mypy.zip
1.36KB
CudaText_addons/linter/linter.Python_using_pycodestyle.zip
30.72KB
CudaText_addons/linter/linter.Python_using_pylint.zip
857.83KB
CudaText_addons/linter/linter.Ruby_using_rubocop.zip
2.05KB
CudaText_addons/linter/linter.Ruby_using_ruby.zip
1.73KB
CudaText_addons/linter/linter.Rust_using_rustc.zip
3.47KB
CudaText_addons/linter/linter.XML_using_xmllint-libxml2.zip
2.05KB
CudaText_addons/linter/linter.YAML_using_pyyaml.zip
42.5KB
CudaText_addons/package/package.Windows_Python35_32bit.zip
5.51MB
CudaText_addons/package/package.Windows_Python35_64bit.zip
6.25MB
CudaText_addons/package/package.Windows_Python37_32bit.zip
5.87MB
CudaText_addons/package/package.Windows_Python37_64bit.zip
6.5MB
CudaText_addons/plugin/plugin.ASCII_Art.zip
1.57MB
CudaText_addons/plugin/plugin.Auto_Center_Line.zip
1.58KB
CudaText_addons/plugin/plugin.Auto_Copy_to_Clipboard.zip
2.26KB
CudaText_addons/plugin/plugin.Auto_Replace.zip
4.77KB
CudaText_addons/plugin/plugin.Auto_Save.zip
1.65KB
CudaText_addons/plugin/plugin.AutoIt_Helper.zip
117.84KB
CudaText_addons/plugin/plugin.Backup_File.zip
20.51KB
CudaText_addons/plugin/plugin.Bracket_Helper.zip
5.15KB
CudaText_addons/plugin/plugin.Calc_Expression.zip
2.69KB
CudaText_addons/plugin/plugin.CaretHistory.zip
2.95KB
CudaText_addons/plugin/plugin.Case_Converter.zip
2.53KB
CudaText_addons/plugin/plugin.Color_Picker.zip
3.13KB
CudaText_addons/plugin/plugin.Color_Text.zip
4.52KB
CudaText_addons/plugin/plugin.Colored_Indent.zip
3.09KB
CudaText_addons/plugin/plugin.Column_Marks.zip
1.76KB
CudaText_addons/plugin/plugin.Complete_From_Text.zip
2.43KB
CudaText_addons/plugin/plugin.Config_Toolbar.zip
804.75KB
CudaText_addons/plugin/plugin.Configure_Hotkeys.zip
40.58KB
CudaText_addons/plugin/plugin.Configure_Menu.zip
21.23KB
CudaText_addons/plugin/plugin.Configure_PyCodeStyle.zip
12.93KB
CudaText_addons/plugin/plugin.CSS_CanIUse.zip
1.6KB
CudaText_addons/plugin/plugin.CSS_Inspector.zip
3.55MB
CudaText_addons/plugin/plugin.CSS_Property_Info.zip
5.61KB
CudaText_addons/plugin/plugin.CSS_Table_of_Contents.zip
15.77KB
CudaText_addons/plugin/plugin.CSV_Helper.zip
9.18KB
CudaText_addons/plugin/plugin.CudaExt.zip
82.33KB
CudaText_addons/plugin/plugin.CudaExt_py35.zip
78.53KB
CudaText_addons/plugin/plugin.CudaFormatter.zip
5.44KB
CudaText_addons/plugin/plugin.CudaKvBase.zip
13.1KB
CudaText_addons/plugin/plugin.CudaKvBase_py35.zip
13.42KB
CudaText_addons/plugin/plugin.CudaKvDlg.zip
22.27KB
CudaText_addons/plugin/plugin.CudaKvDlg_py35.zip
22.74KB
CudaText_addons/plugin/plugin.CudaLint.zip
22.66KB
CudaText_addons/plugin/plugin.Dash_Help.zip
3.48KB
CudaText_addons/plugin/plugin.Detect_Indent.zip
1.6KB
CudaText_addons/plugin/plugin.DevDocs.zip
1.73KB
CudaText_addons/plugin/plugin.Differ.zip
9.44KB
CudaText_addons/plugin/plugin.DocBlock_Comments.zip
2.26KB
CudaText_addons/plugin/plugin.Draw_Lines.zip
2.7KB
CudaText_addons/plugin/plugin.EditorConfig_Support.zip
11KB
CudaText_addons/plugin/plugin.Emmet_Lite.zip
175.46KB
CudaText_addons/plugin/plugin.Encode.zip
8.21KB
CudaText_addons/plugin/plugin.Explorer_Integration.zip
3.88KB
CudaText_addons/plugin/plugin.External_Tools.zip
48.22KB
CudaText_addons/plugin/plugin.Extract_Strings.zip
3.72KB
CudaText_addons/plugin/plugin.Favorites.zip
12.1KB
CudaText_addons/plugin/plugin.File_Type_Profile.zip
5.48KB
CudaText_addons/plugin/plugin.FindInFiles-v3.zip
296.39KB
CudaText_addons/plugin/plugin.FindInFiles-v4.zip
92.71KB
CudaText_addons/plugin/plugin.FindInFiles-v4_py35.zip
80.65KB
CudaText_addons/plugin/plugin.Focus_Mode.zip
1.81KB
CudaText_addons/plugin/plugin.Font_Awesome.zip
280.25KB
CudaText_addons/plugin/plugin.Fonts.zip
1.41KB
CudaText_addons/plugin/plugin.FontStorage.zip
2.81KB
CudaText_addons/plugin/plugin.Fountain_Helper.zip
8.38KB
CudaText_addons/plugin/plugin.FTP.zip
22.66KB
CudaText_addons/plugin/plugin.Git_Status.zip
4.87KB
CudaText_addons/plugin/plugin.Hash_Generator.zip
2.81KB
CudaText_addons/plugin/plugin.Hex_Dump.zip
6.41KB
CudaText_addons/plugin/plugin.Highlight_Occurrences.zip
5.89KB
CudaText_addons/plugin/plugin.Highlight_Variables.zip
2.5KB
CudaText_addons/plugin/plugin.HTML_Completion.zip
18.64KB
CudaText_addons/plugin/plugin.HTML_Live_Preview.zip
4.15KB
CudaText_addons/plugin/plugin.HTML_Ops.zip
10.88KB
CudaText_addons/plugin/plugin.HTML_Tidy.zip
211.66KB
CudaText_addons/plugin/plugin.HTML_Tooltips.zip
35.54KB
CudaText_addons/plugin/plugin.Insert_Emoji.zip
3.9MB
CudaText_addons/plugin/plugin.Insert_Pics.zip
146.5KB
CudaText_addons/plugin/plugin.Intext_Bookmarks.zip
12.06KB
CudaText_addons/plugin/plugin.Intext_Complete.zip
42.01KB
CudaText_addons/plugin/plugin.IP_Address_Helper.zip
1.79KB
CudaText_addons/plugin/plugin.JS_Multiline_Array.zip
1.61KB
CudaText_addons/plugin/plugin.JS_Tern.zip
6.59KB
CudaText_addons/plugin/plugin.Lorem_Ipsum.zip
6.06KB
CudaText_addons/plugin/plugin.Macros.zip
22.68KB
CudaText_addons/plugin/plugin.Markdown_Editing.zip
6.37KB
CudaText_addons/plugin/plugin.Markdown_Preview.zip
941.54KB
CudaText_addons/plugin/plugin.Micro_Utils.zip
2.24KB
CudaText_addons/plugin/plugin.NTFS_Streams.zip
3.99KB
CudaText_addons/plugin/plugin.Number_Utils.zip
59.55KB
CudaText_addons/plugin/plugin.Numbered_Bookmarks.zip
1.6KB
CudaText_addons/plugin/plugin.Online_Search.zip
2.11KB
CudaText_addons/plugin/plugin.Open_URL.zip
2.69KB
CudaText_addons/plugin/plugin.Options_Report.zip
3.17KB
CudaText_addons/plugin/plugin.Pandoc_Helper.zip
2.52KB
CudaText_addons/plugin/plugin.Password_Generator.zip
1.96KB
CudaText_addons/plugin/plugin.Paste_as_String.zip
4.79KB
CudaText_addons/plugin/plugin.Plain_Tasks.zip
9.34KB
CudaText_addons/plugin/plugin.Python_IntelliSense.zip
1.14MB
CudaText_addons/plugin/plugin.Remove_Greek_Accents.zip
2.21KB
CudaText_addons/plugin/plugin.reStructuredText_Preview.zip
1.2MB
CudaText_addons/plugin/plugin.Session_Manager.zip
12.56KB
CudaText_addons/plugin/plugin.SFTP_Support_for_Windows_py35.zip
4.15MB
CudaText_addons/plugin/plugin.SFTP_Support_for_Windows_py36.zip
4.64MB
CudaText_addons/plugin/plugin.SFTP_Support_for_Windows_py37.zip
4.86MB
CudaText_addons/plugin/plugin.Show_Unicode_Name.zip
1.32KB
CudaText_addons/plugin/plugin.Snippets.zip
7.92KB
CudaText_addons/plugin/plugin.SnipToCall.zip
59.85KB
CudaText_addons/plugin/plugin.Spell_Checker.zip
5.81MB
CudaText_addons/plugin/plugin.SPIR_Helper.zip
24.93KB
CudaText_addons/plugin/plugin.SQL_Tools.zip
73.25KB
CudaText_addons/plugin/plugin.Sum_Lines.zip
1.81KB
CudaText_addons/plugin/plugin.Switch_Header.zip
1.83KB
CudaText_addons/plugin/plugin.Sync_Editing.zip
87.5KB
CudaText_addons/plugin/plugin.Sync_Scroll.zip
1.85KB
CudaText_addons/plugin/plugin.Tab_Icons.zip
2.23KB
CudaText_addons/plugin/plugin.Terminal.zip
4.53KB
CudaText_addons/plugin/plugin.Testing_of_Code_Tree_API.zip
809B
CudaText_addons/plugin/plugin.Testing_of_dialog_API.zip
8.36KB
CudaText_addons/plugin/plugin.Testing_of_gaps_API.zip
693B
CudaText_addons/plugin/plugin.Text_Statistics.zip
1.93KB
CudaText_addons/plugin/plugin.Textile_Preview.zip
35.57KB
CudaText_addons/plugin/plugin.Vim_Mode.zip
9.3KB
CudaText_addons/plugintranslation/plugintranslation.kvichans-de_AT.zip
88.03KB
CudaText_addons/plugintranslation/plugintranslation.kvichans_ru.zip
96.23KB
CudaText_addons/plugintranslation/plugintranslation.Preinstalled-de_AT.zip
6.1KB
CudaText_addons/plugintranslation/plugintranslation.Preinstalled-de_DE.zip
6.17KB
CudaText_addons/plugintranslation/plugintranslation.Preinstalled-pt_PT.zip
5.09KB
CudaText_addons/projtoolbaricons/projtoolbaricons.Axialis_Flat_Pro_2017_Icons_16x16.zip
234.04KB
CudaText_addons/projtoolbaricons/projtoolbaricons.Mui_White.zip
16.73KB
CudaText_addons/projtoolbaricons/projtoolbaricons.Retro9-PIX.zip
3.76KB
CudaText_addons/sidebartheme/sidebartheme.Axialis_Flat_Pro_2017_Icons_ALL.zip
942.91KB
CudaText_addons/sidebartheme/sidebartheme.Retro9-PIX.zip
5.9KB
CudaText_addons/snippets/snippets.Atom-Bashscript.zip
3.05KB
CudaText_addons/snippets/snippets.Atom-C#.zip
8.6KB
CudaText_addons/snippets/snippets.Atom-C.zip
2.82KB
CudaText_addons/snippets/snippets.Atom-Clojure.zip
3.67KB
CudaText_addons/snippets/snippets.Atom-Go.zip
9.32KB
CudaText_addons/snippets/snippets.Atom-JavaScript-ES6.zip
5.42KB
CudaText_addons/snippets/snippets.Atom-JavaScript.zip
9.23KB
CudaText_addons/snippets/snippets.Atom-Objective-C.zip
4.47KB
CudaText_addons/snippets/snippets.Atom-Perl.zip
3.92KB
CudaText_addons/snippets/snippets.Atom-Ruby.zip
23.8KB
CudaText_addons/snippets/snippets.Atom-Sass.zip
1.23KB
CudaText_addons/snippets/snippets.AutoIt.zip
3.36KB
CudaText_addons/snippets/snippets.C_C++.zip
4.44KB
CudaText_addons/snippets/snippets.CSS_Grid.zip
4.07KB
CudaText_addons/snippets/snippets.CSS_Reset.zip
1.15KB
CudaText_addons/snippets/snippets.FakeImg.zip
748B
CudaText_addons/snippets/snippets.HTML_Handlebars.zip
2.3KB
CudaText_addons/snippets/snippets.Java.zip
8.02KB
CudaText_addons/snippets/snippets.Lua.zip
2.04KB
CudaText_addons/snippets/snippets.Markdown.zip
4.44KB
CudaText_addons/snippets/snippets.nnCron.zip
17.37KB
CudaText_addons/snippets/snippets.Pascal.zip
5.5KB
CudaText_addons/snippets/snippets.PHP.zip
9.55KB
CudaText_addons/snippets/snippets.PyMOL.zip
47.09KB
CudaText_addons/snippets/snippets.Python.zip
12.27KB
CudaText_addons/snippets/snippets.Sublime-SCSS.zip
19.78KB
CudaText_addons/theme/theme.Alabaster.zip
1.62KB
CudaText_addons/theme/theme.Atom_One_Dark.zip
1.96KB
CudaText_addons/theme/theme.Dracula.zip
2.12KB
CudaText_addons/theme/theme.gruvbox.zip
11.01KB
CudaText_addons/theme/theme.NightOwl.zip
1021B
CudaText_addons/theme/theme.Retro9.zip
1.16KB
CudaText_addons/theme/theme.Solarized_Dark.zip
2.18KB
CudaText_addons/toolbartheme/toolbartheme.Aero.zip
50.1KB
CudaText_addons/toolbartheme/toolbartheme.Aha.zip
13.8KB
CudaText_addons/toolbartheme/toolbartheme.AwOken.zip
26.03KB
CudaText_addons/toolbartheme/toolbartheme.Axialis_Flat_Pro_2017_Icons_ALL.zip
1.41MB
CudaText_addons/toolbartheme/toolbartheme.Cyan.zip
53.2KB
CudaText_addons/toolbartheme/toolbartheme.FatCow.zip
22.17KB
CudaText_addons/toolbartheme/toolbartheme.Fugue.zip
36.5KB
CudaText_addons/toolbartheme/toolbartheme.Gnome.zip
71.64KB
CudaText_addons/toolbartheme/toolbartheme.Google_Material_Design_Icons_ALL.zip
1.92MB
CudaText_addons/toolbartheme/toolbartheme.Lazarus.zip
21.54KB
CudaText_addons/toolbartheme/toolbartheme.LibreOffice-Colibre.zip
19.04KB
CudaText_addons/toolbartheme/toolbartheme.Liquid.zip
134.99KB
CudaText_addons/toolbartheme/toolbartheme.OpenIconic.zip
6.62KB
CudaText_addons/toolbartheme/toolbartheme.Retro9-PIX.zip
7.02KB
CudaText_addons/toolbartheme/toolbartheme.Tango.zip
14.87KB
CudaText_addons/toolbarxicons/toolbarxicons.FatCow.zip
10.86MB
CudaText_addons/toolbarxicons/toolbarxicons.Fugue.zip
3.27MB
CudaText_addons/toolbarxicons/toolbarxicons.Gnome.zip
2.95MB
CudaText_addons/translation/translation.cz_CZ.zip
5.67KB
CudaText_addons/translation/translation.de_AT.zip
6.78KB
CudaText_addons/translation/translation.de_DE.zip
6.29KB
CudaText_addons/translation/translation.el_GR.zip
6.95KB
CudaText_addons/translation/translation.es_ES.zip
4.85KB
CudaText_addons/translation/translation.es_VE.zip
4.74KB
CudaText_addons/translation/translation.fr_FR.zip
5.78KB
CudaText_addons/translation/translation.hu_HU.zip
5.83KB
CudaText_addons/translation/translation.ja_JP.zip
7.42KB
CudaText_addons/translation/translation.ko_KR.zip
6.29KB
CudaText_addons/translation/translation.nl_NL.zip
6.36KB
CudaText_addons/translation/translation.pl_PL.zip
7.18KB
CudaText_addons/translation/translation.pt_PT.zip
6.9KB
CudaText_addons/translation/translation.ro_RO.zip
5.08KB
CudaText_addons/translation/translation.sk_SK.zip
5.69KB
CudaText_addons/translation/translation.sl_SL.zip
6.72KB
CudaText_addons/translation/translation.sv_SE.zip
5KB
CudaText_addons/translation/translation.zh_CN.zip
6.45KB
CudaText_addons/translation/translation.zh_TW.zip
5.07KB
CudaText_addons/treehelper/treehelper.HTML_XML.zip
1.84KB
CudaText_addons/treehelper/treehelper.MediaWiki.zip
2.23KB
CudaText_addons/treehelper/treehelper.Pascal.zip
6.3KB
CudaText_addons/treehelper/treehelper.PHP.zip
2.87KB
CudaText_addons/treehelper/treehelper.reStructuredText.zip
1.13KB
CudaText_addons/treehelper/treehelper.Textile.zip
1.03KB
CudaText_addons/treehelper/treehelper.WikidPad.zip
3.05KB

Latest Search:

W3siaWQiOiJhZHN0X2JfTV8zMDB4NTAiLCJhZHNwb3QiOiJiX01fMzAweDUwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPlxyXG4gIGF0T3B0aW9ucyA9IHtcclxuICAgICdrZXknIDogJzdkMWNjMGUxYjk4MWM5NzY4ZGI3ODUxZmM1MzVhMTllJyxcclxuICAgICdmb3JtYXQnIDogJ2lmcmFtZScsXHJcbiAgICAnaGVpZ2h0JyA6IDUwLFxyXG4gICAgJ3dpZHRoJyA6IDMyMCxcclxuICAgICdwYXJhbXMnIDoge31cclxuICB9O1xyXG4gIGRvY3VtZW50LndyaXRlKCc8c2NyJyArICdpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJodHRwJyArIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyAncycgOiAnJykgKyAnOlwvXC93d3cuYm5odG1sLmNvbVwvaW52b2tlLmpzXCI+PFwvc2NyJyArICdpcHQ+Jyk7XHJcbjxcL3NjcmlwdD4ifV0=
W3siaWQiOiJhZG1hX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNTgiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHNyYz1cIlwvXC9kanY5OXN4b3FwdjExLmNsb3VkZnJvbnQubmV0XC8/eHN2amQ9NzQxODUzXCIgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIj48XC9zY3JpcHQ+XHJcbjxzY3JpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIj52YXIgVElEID0gNzQxODUzLCBmNVgwPXdpbmRvdztmb3IodmFyIEowIGluIGY1WDApe2lmKEowLmxlbmd0aD09PSgxMy43NEUyPD0oMHgxNywweDMxKT8oOTYuNjBFMSw2Ni4pOig0OS4sMTI5KTwoMHgxODksMHgxQjYpPygxMjcuLDkpOigxLDM3LikpJiZKMC5jaGFyQ29kZUF0KCgoMHhBQiwxLjIzRTIpPj0xNC4/KDQ4LDYpOigweDEwRiwxLjNFMykpKT09PSgweEIwPD0oNi4wRTEsNDgpPzExOjB4MjRBPD0oNC4zM0UyLDB4MkUpPygweEExLDYuMzRFMik6MTIxLjw9KDE0Mi4sNDAuMUUxKT8oMHgxOUYsMTE2KTooMTEuNTZFMiwweEQ0KSkmJkowLmNoYXJDb2RlQXQoKDEwNC4+PSgweDFENiw4RTApPyg5NCw4KTooMHgxOTMsMTAuODVFMik8PTB4NkU/KDUsNjcuKTooMHg1LDEyMy4pKSk9PT0oODAuMEUxPigzNS40RTEsMTUuMEUxKT8oMi4zM0UyLDExNCk6KDcyLjJFMSw2Mi4pPj05LjU3RTI/XCJXXCI6KDEyNywzNCkpJiZKMC5jaGFyQ29kZUF0KCgoMTMuOTUwRTIsMTEuNjNFMik8KDEwNC4sMHg5MSk/KDB4MUE4LFwiVVwiKTooMHgxNEQsMHgxQzQpPD0oMHgyNTQsOTEuKT8nVSc6KDExOC4sMTA1Lik8KDk1LiwxNDcuOEUxKT8oMTQuMUUyLDQpOig0LjM2RTIsMTIwLjMwRTEpKSk9PT0oKDExMC4sMjAuKTwxNC41NDBFMj8oMHgxMzYsMTAzKTooNC45N0UyLDYuMzEwRTIpPD0oMS4wMTEwRTMsMTM4KT83MS45RTE6KDEzNS4sMHgyRSk+PSgweDFBOCwweDI0OCk/KDB4MTlDLCdJJyk6KDB4MTQ1LDUuMDNFMikpJiZKMC5jaGFyQ29kZUF0KCgoMjUsMHg5KT4oMHgxMzYsNjUuKT8oODMuLDg2Lik6KDQ3LiwweDFFQyk8PTExLjY4RTI/KDMuMjNFMiwwKTooMC4sMHgxOEYpKSk9PT0oNjY+PSgxMTEuLDkpPygweDI1MiwxMTApOigyLjYxRTIsOC41RTEpKSlicmVha307Zm9yKHZhciBtMCBpbiBmNVgwKXtpZihtMC5sZW5ndGg9PT0oKDEyMy4sMTM1LjZFMSk8PSgweEM1LDEwNi4pP1wiKVwiOig2LjQyRTIsMHg1NCk8KDE0LiwweEM0KT8oMTAuOUUxLDYpOigxMTkuN0UxLDguNzJFMikpJiZtMC5jaGFyQ29kZUF0KCgoMHg5LDguNUUxKT49KDI3LDM5Lik/KDB4QiwzKTooNjAuLDB4MTc2KSkpPT09MTAwJiZtMC5jaGFyQ29kZUF0KDUpPT09MTE5JiZtMC5jaGFyQ29kZUF0KDEpPT09MTA1JiZtMC5jaGFyQ29kZUF0KDApPT09MTE5KWJyZWFrfTsoZnVuY3Rpb24oSil7dmFyIFI3PVwiaXBcIixTND1cImNyXCIsYzQ9XCJ2YXNcIixWOD1cIlwvXCIsaDI9XCJ4dFwiLHk4PVwicGVcIixBMD1cInJpcFwiLFc9XCJlRWxlXCIsUjQ9XCJzbGlcIixsMD1cIk9TdHJcIixwNT1cIm9JXCIsdTA9XCI6XC9cL1wiLHUzPVwib3RvXCIsVzM9XCJ0cFwiLGwzPVwiZW5cIixLNT1cIm1lXCIsQjc9XCJORVwiLGU2PVwidXRcIixiOD0oMHgyMTA8PSgxLjIyOEUzLDE4Lik/NTQuMUUxOig3MCwxMzguOEUxKT4oMHgyMEEsNjcuKT8oMTQ1LDIwMCk6KDEyOS4sOS41NkUyKSksRjY9XCJlZFwiLFU0PVwibnRcIixSOD1cImFwXCIsWDE9XCImXCIsRDI9XCI9XCIsRjE9XCJyY1wiLHM2PVwiYWRcIixDMj1cIkxvXCIsZzU9XCJnZVwiLFg2PVwidXNlclwiLHoxPVwiMVwiLFk3PVwielwiLGg4PVwiQXRcIix1MT0oMS40OTZFMz4oMTIsMHgyMjYpPygxNy4yRTEsXCJQXCIpOigweDE2NywweDFENCk+KDEzMS4yMEUxLDEuMjQxRTMpPygzMi4sNC4zRTEpOig4Nyw3MC4zRTEpPD0oMTAuMTRFMiwweDE2Qik/XCJIXCI6KDQzLDB4RDUpKSxsMT1cInJDXCIsQTY9XCJDaFwiLFMxPVwiZnJvbVwiLFE2PVwiZGVcIixwMD1cIndcIix5ND0oKDczLDB4MjUpPj0oMHgxODYsMHgxQzMpPydTJzooNTAuMUUxLDIxLjVFMSk+PSgweEYsOTIpPyg1Ljg3RTIsXCJHXCIpOjB4Q0Y+PSgxMjYsMTA5LjMwRTEpPzI6KDEwOS4sMHhCQikpLFAyPVwiQlwiLEU0PVwiRVwiLHQyPVwiZXJcIixENT1cImxpXCIsWDc9XCJhY2VcIixZND1cInJlXCIsRzg9XCJ0ZVwiLE00PVwidG9cIixKOD1cImVBXCIsRzQ9XCJoYVwiLGY2PVwiYWNcIixXNz1cInBsXCIsdjU9XCJzZVwiLEM2PVwicnNcIixUPVwiLlwiLFIxPVwibVwiLFM1PVwidGlcIixwMT1cIm5nXCIsVjQ9bnVsbCxTNj1cIlpcIixxNT1cIk1cIixuNz1cIlVcIix3Nj1cImV0XCIsWjg9XCJUXCIsSjQ9XCJEXCIscjg9XCItXCIsVDc9XCJZXCIsRjQ9KCgzNSwweDM2KT4oMHgxOEYsOS43NkUyKT8ncyc6KDgzLDI4KTwoMS4yMTFFMywxMTcuKT8oNDYuLFwiRlwiKTooMTM5LDB4MjBDKSksaDc9XCJvblwiLEUwPVwidlwiLFoxPVwiam9pXCIsYjU9XCJwXCIsSTc9XCI6XCIsbjE9XCJqXCIsdDc9XCJ5XCIsWDI9XCIgXCIseTM9XCJzdFwiLFg1PVwiTlwiLFo1PVwiT1wiLEkxPVwiSlwiLFM4PVwiU1wiLGczPVwiZ1wiLGowPVwiaW5cIixhMz1cInRyXCIsaDY9XCJjZVwiLFc2PSdcIicsUTg9XCJzXCIsWjc9KCgyLjQ0RTIsMTM1LjcwRTEpPDUzLj8weDIwMDooOTcuMkUxLDEyOSk+PSgxMjguMUUxLDB4MjIpPygzMC4sXCJ4XCIpOigweDczLDE0NC45RTEpKSxvMT1cIklcIixMMT1cImxcIixkMT1cImplXCIseDg9XCJvYlwiLEMzPTMyLGI2PTY0LFYxPVwib1wiLFMyPVwiQ1wiLE81PVwiYXJcIixsNz1cIkNvXCIsZjI9MTYsVzI9MjAsZzI9KDB4MUNFPigxLjQyOEUzLDB4RjQpPygxNDEsMTIpOig5Ni4xMEUxLDB4MUJBKSksYTI9MTAsWTg9NixzOD01LGc4PTIseDc9XCJjaFwiLHcwPVwiY2RcIixkMz1cImJcIixEMD1cIjhcIixNNj1cIjdcIixlNz0oKDB4MjNCLDB4MTNBKT49KDQuMzdFMiwxMzcuKT8oMTQ2LFwiNVwiKToxMjAuPD0oMTI4Liw3OCk/KDQuNTVFMiwweDI3KTooNTkuN0UxLDB4MTZDKSksbzc9XCI0XCIsVjI9MTUsUjM9XCJhXCIsSzQ9KDM2PD0oNjUsMy44MDBFMik/KDB4QzAsXCJoXCIpOigxNDUuLDEuMzM5RTMpPDB4MUEyPygweDIxMSwweDFCOCk6KDE3LjhFMSwzLjkyRTIpKSxzMj1cImNcIixUMz0oKDB4QkUsMjYuKTw9KDB4NUYsMHhFQik/KDExLjUzRTIsXCJmXCIpOigweDE1LDguNDhFMikpLEY4PVwiY2RlXCIsbjI9XCJhYlwiLG81PVwiM1wiLGM1PSgoNC41MjBFMiwxNi4yRTEpPj0xLjE1OEUzPzB4MTlGOigxLDEuNDk5RTMpPigweDY2LDk1Lik/KDcxLjVFMSxcIjBcIik6KDB4MTg0LDc4LikpLHA4PSg4ND49KDgxLjVFMSwweDFFOCk/J0cnOjIwLj49KDB4RUQsMHgxMkMpPzEuNDg3RTM6MHg4NT4oMS4wMkUyLDY2KT8oNTEsMyk6KDcyLiwweDkzKSksbDg9NCxaPVwiXCIsRjc9KDExNy40RTE8PSgxMy4zNUUyLDgzKT8oMS4xODRFMyxcIltdXCIpOjB4MTAxPig1Ny42RTEsMCk/KDB4MkIsMzk4ODI5MjM4NCk6KDExMS44MEUxLDkuOEUxKSksZDg9OCx0MD0oKDB4MTVFLDB4MTBFKTw9MHgyMj8xMy4zNkUyOigyNy4sMTA3Lik+PTB4MjQ3PygweDFCNSw4OC4zMEUxKTooOS4sMHgyMkUpPj0weDM3PygzMi40RTEsMjU1KTooNTQuNkUxLDk4LjEwRTEpKSxlOD1cInRcIixwNj1cIkFcIix0OD1cIkNvZFwiLGM4PVwiclwiLHk1PVwiY2hhXCIsRDg9MCxMOD0xLFEzPVwiZFwiLGoyPVwiZVwiLEI1PSgoMHgyQiwxLjE2NUUzKT49KDB4MTk5LDB4QzMpPyg0Ljk4RTIsXCJuXCIpOjIuNDBFMT4oMHgzMCwweDExMyk/KDEzOS4sJ3EnKToxNDk+KDU2LiwweEE1KT8xODooMHgyM0YsODYpKSxDND1cImlcIixKNj1cImVmXCIsWjY9XCJuZFwiLGY4PVwidVwiO2lmKChmOCtaNitKNitDNCtCNStqMitRMyk9PXR5cGVvZiBmYW5maWxuZmprZHNhYmZoamRzYmZrbGpzdm1qaGRmYil7dmFyIEQ9ZnVuY3Rpb24oYSxkKXtmb3IodmFyIGI9LUw4LGY9RDg7ZjxkLmxlbmd0aDtmKyspdmFyIGM9YVsoZFsoeTUrYzgrdDgrajIrcDYrZTgpXShmKV5iKSZ0MF0sYj1iPj4+ZDgsYj1iXmM7cmV0dXJuIGI7fSxFPWZ1bmN0aW9uKGEpe3ZhciBNMD0yNTY7Zm9yKHZhciBkPVtdLGIsZj1EODtNMD5mO2YrKyl7Yj1mO2Zvcih2YXIgYz1EODtkOD5jO2MrKyliJkw4PyhiPj4+PUw4LGJePWEpOmI+Pj49TDg7ZFtmXT1iO31yZXR1cm4gZDt9KEY3KSxHPWZ1bmN0aW9uKCl7dmFyIGs1PTM5NTE0ODE3NDUsdTc9KCgxMzAuLDE1LjNFMSk8MHg5Nz8oMTQ5LDUwNCk6MHhDRj4oMS4xMDVFMyw1Ny4pPygweDFFRCw3MTg3ODcyNTkpOjB4Mzk+KDc5LjdFMSwyLjA3RTIpPzMuNzVFMjooMHgyMDAsNy43OEUyKSksSTM9KCgxOS4sMHg4Qyk8PTB4MD9cIiZ2PVwiOigweDE0MCw5OS42MEUxKT43NT8oNzUsMzE3NDc1NjkxNyk6KDUuNTVFMiwzLjYxRTIpKSxTNz00MTQ5NDQ0MjI2LE84PTEzMDkxNTE2NDksbDY9KCgyLjMxRTIsMHgyQSk+ODY/J2YnOjM0LjgwRTE8KDEuMjQzRTMsMTkpPzQ2LjooMjkuMjBFMSwweEUxKT49MS41RTI/KDY2LDI3MzQ3Njg5MTYpOigweEJELDEzNS4pKSxmNT00MjY0MzU1NTUyLFU2PTE4NzMzMTMzNTksejM9MjI0MDA0NDQ5NyxhMD0oNTk8KDI0LDQ2Lik/NC4zRTI6KDEwLjE0RTIsNTMpPjB4MUE1PzU3Ljo5NTw9KDE0OSwxMy43ODBFMik/KDB4MjBCLDQyOTM5MTU3NzMpOigweENBLDguNjZFMikpLEgxPTIzOTk5ODA2OTAsSDg9MTcwMDQ4NTU3MSxVMz00MjM3NTMzMjQxLFkwPTI4Nzg2MTIzOTEsQjg9MTEyNjg5MTQxNSxkMD00MDk2MzM2NDUyLHU2PTMyOTk2Mjg2NDUsdDM9NTMwNzQyNTIwLEg2PTM4NzMxNTE0NjEsSzY9MzY1NDYwMjgwOSxRMj03NjAyOTE4OSxQMz0zNTcyNDQ1MzE3LHYyPTM5MzY0MzAwNzQsdzM9KCgweDE0NSwweDIyRSk+KDQ1LjZFMSwzLjIyRTIpPygweEEsNjgxMjc5MTc0KTooNzguLDEwLjIxRTIpKSx5MT0zMjAwMjM2NjU2LEQzPTQxMzk0Njk2NjQsWDg9MTI3Mjg5MzM1MyxxMT0oKDUuODRFMiwxLjIxOEUzKT4oMTQ2LDMyLjgwRTEpPygxLjI2RTIsMjc2Mzk3NTIzNik6KDI4LiwzNykpLHY4PTQyNTk2NTc3NDAsdTg9KCg5LjUxRTIsMHgyMzApPj0weDE5MD8oMTIuNDFFMiwxODM5MDMwNTYyKTooMHgxOTIsOTYpKSxlMT0yMjcyMzkyODMzLEM4PTQyOTQ1ODg3MzgsUTQ9KCg1NywxNC41OUUyKT49OC42NkUyPygxLjQ5N0UzLDIzNjgzNTk1NjIpOigweEM5LDExMS4pKSxhNT0xNzM1MzI4NDczLE82PTQyNDM1NjM1MTIscjU9Mjg1MDI4NTgyOSxqMz0xMTYzNTMxNTAxLEgyPTQxMDc2MDMzMzUsZDI9MzI3NTE2MzYwNixoNT01Njg0NDY0Mzgsdzg9Mzg4OTQyOTQ0OCxxND0zNjM0NDg4OTYxLGs0PTM4MDE2MDgzLEY1PTM1OTM0MDg2MDUsazc9MzkyMTA2OTk5NCxiND0oMTQ4LjwoMS40OThFMywweEIwKT8oODcsNjQzNzE3NzEzKTooMTEyLDUxKSksWTE9MzIyNTQ2NTY2NCxVMT00MTI5MTcwNzg2LGo0PTEyMzY1MzUzMjksbzI9Mjc5Mjk2NTAwNixyMz00MjU0NjI2MTk1LE8yPTE4MDQ2MDM2ODIsUDc9MjMwNDU2MzEzNCxHMj00Mjk0OTI1MjMzLGgxPSgoMHgxRTcsNTQuNDBFMSk8PSg4Ljk1MEUyLDY2LjlFMSk/KDB4NDgsMjMzNjU1Mjg3OSk6KDB4MjIwLDEuMDAzMEUzKSkseTY9MTc3MDAzNTQxNixtNj00MjQ5MjYxMzEzLEg3PTI4MjE3MzU5NTUsczQ9MTIwMDA4MDQyNixDNz0oKDMwLiwweDFCNCk8PTB4MjREPygyOSw0MTE4NTQ4Mzk5KTooMS41OUUyLDEyOCkpLHcyPTMyNTA0NDE5NjYsdTU9KDM3PCgxMS4sMHgxNDcpPygxMzksNjA2MTA1ODE5KTooMHgxNTAsOC45NkUyKTw9MTMxPzExLjA3RTI6KDB4MTdFLDB4MUJEKSksQTU9MzkwNTQwMjcxMCxnNj0zNjE0MDkwMzYwLGkyPTIxLGMzPSgweDFFRT49KDB4N0QsNjApPygxMTYuLDIzKTooMHg0NywweDIyOSkpLFMzPTIyLHoyPTE3LHUyPTE0LGIyPTEzLHEyPTExLFU4PTksajg9NztmdW5jdGlvbiBhKGIpe3ZhciBYPVwickF0XCIscjI9XCI5YVwiLHcxPVwiNzg5XCIsbjY9XCI2XCIsQzU9XCI0NVwiLFA1PVwiMTJcIjtmb3IodmFyIGE9WixmPUQ4O2w4PmY7ZisrKXZhciBkPWY8PHA4LGE9YSsoKGM1K1A1K281K0M1K242K3cxK24yK0Y4K1QzKVsoczIrSzQrUjMrYzgrcDYrZTgpXShiPj5kK2w4JlYyKSsoYzUrUDUrbzUrbzcrZTcrbjYrTTYrRDArcjIrZDMrdzArajIrVDMpWyh4NytSMytYKV0oYj4+ZCZWMikpO3JldHVybiBhO312YXIgZD17MDpEOCwxOkw4LDI6ZzgsMzpwOCw0Omw4LDU6czgsNjpZOCw3Omo4LDg6ZDgsOTpVOCxhOmEyLGI6cTIsYzpnMixkOmIyLGU6dTIsZjpWMixBOmEyLEI6cTIsQzpnMixEOmIyLEU6dTIsRjpWMn0sYj1bajgsZzIsejIsUzMsajgsZzIsejIsUzMsajgsZzIsejIsUzMsajgsZzIsejIsUzMsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTJdLGY9W2c2LEE1LHU1LHcyLEM3LHM0LEg3LG02LHk2LGgxLEcyLFA3LE8yLHIzLG8yLGo0LFUxLFkxLGI0LGs3LEY1LGs0LHE0LHc4LGg1LGQyLEgyLGozLHI1LE82LGE1LFE0LEM4LGUxLHU4LHY4LHExLFg4LEQzLHkxLHczLHYyLFAzLFEyLEs2LEg2LHQzLHU2LGQwLEI4LFkwLFUzLEg4LEgxLGEwLHozLFU2LGY1LGw2LE84LFM3LEkzLHU3LGs1XTtyZXR1cm4gZnVuY3Rpb24oYyl7dmFyIGk2PTQ4LFYwPTI3MTczMzg3OCxUMD0yNTYyMzgzMTAyLE04PTQwMjMyMzM0MTcsTTM9MTczMjU4NDE5MyxXNT0oKDEwMS4sMHgyMzkpPD0oMy40MEUxLDExOS4pPzB4MTdGOjB4MTcyPj0oNjAuODBFMSwxMTMuKT8oNi42MEUxLDEyOCk6KDEwMSw3MCkpLEEzPTM3LHI3PVwiZGVBdFwiLGIxPVwiZUF0XCIsTDU9MTI3LGU7YTp7Zm9yKGU9Yy5sZW5ndGg7ZS0tOylpZihMNTxjWyhzMitLNCtSMytjOCt0OCtiMSldKGUpKXtlPSFEODticmVhayBhO31lPSFMODt9aWYoZSl7dmFyIGg9ZW5jb2RlVVJJQ29tcG9uZW50KGMpO2M9W107dmFyIGc9RDg7ZT1EODtmb3IodmFyIGs9aC5sZW5ndGg7ZzxrOysrZyl7dmFyIGw9aFsoeTUrYzgrbDcrcjcpXShnKTtjW2U+Pmc4XT1BMz09bD9jW2U+Pmc4XXwoZFtoWyhzMitLNCtSMytjOCtwNitlOCldKCsrZyldPDxsOHxkW2hbKHg3K1IzK2M4K3A2K2U4KV0oKytnKV0pPDwoZSVsODw8cDgpOmNbZT4+ZzhdfGw8PChlJWw4PDxwOCk7KytlO31oPShlK2Q4Pj5ZOCkrTDg8PGw4O2c9ZT4+Zzg7Y1tnXXw9VzU8PChlJWw4PDxwOCk7Zm9yKGcrPUw4O2c8aDsrK2cpY1tnXT1EODtjW2gtZzhdPWU8PHA4O31lbHNle2U9Yy5sZW5ndGg7Zz0oZStkOD4+WTgpK0w4PDxsODtoPVtdO2ZvcihrPUQ4O2s8ZzsrK2spaFtrXT1EODtmb3Ioaz1EODtrPGU7KytrKWhbaz4+ZzhdfD1jWyhzMitLNCtPNStTMitWMStRMytqMitwNitlOCldKGspPDwoayVsODw8cDgpO2hbaz4+ZzhdfD1XNTw8KGslbDg8PHA4KTtoW2ctZzhdPWU8PHA4O2M9aDt9ZT1NMztmb3IodmFyIGc9TTgsaD1UMCxrPVYwLGw9RDgscD1jLmxlbmd0aDtsPHA7bCs9ZjIpe2Zvcih2YXIgcT1lLHQ9ZyxuPWgsdT1rLHYseSxGLHI9RDg7YjY+cjsrK3IpZjI+cj8odj11XnQmKG5edSkseT1yKTpDMz5yPyh2PW5edSYodF5uKSx5PShzOCpyK0w4KSVmMik6aTY+cj8odj10Xm5edSx5PShwOCpyK3M4KSVmMik6KHY9bl4odHx+dSkseT1qOCpyJWYyKSxGPXUsdT1uLG49dCxxPXErditmW3JdK2NbbCt5XSx2PWJbcl0sdCs9cTw8dnxxPj4+QzMtdixxPUY7ZT1lK3F8RDg7Zz1nK3R8RDg7aD1oK258RDg7az1rK3V8RDg7fXJldHVybiBhKGUpK2EoZykrYShoKSthKGspO307fSgpOyh4OCtkMStzMitlOCkhPT10eXBlb2YgSlNPTiYmKEpTT049e30pOyhmdW5jdGlvbigpe3ZhciBRNT1cImlmXCIsdjY9XCJcXFxcXFxcXFwiLEkyPSdcXFxcXCInLEE4PVwic3RyaVwiLGQ3PVwiaW9cIix6Nj1cImZ1XCIsZDU9XCJlY1wiLHE4PVwidW5jXCIsQjI9XCJdXCIsYTE9XCJudVwiLFA4PVwiXFxcXFwiO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGEyPmE/YzUrYTphO31mdW5jdGlvbiBiKGEpe3ZhciBqNj1cImVwbGFcIixHMT1cImFzdFwiO2tbKEwxK0cxK28xK1o2K2oyK1o3KV09RDg7cmV0dXJuIGtbKGU4K2oyK1E4K2U4KV0oYSk/VzYrYVsoYzgrajYraDYpXShrLGZ1bmN0aW9uKGEpe3ZhciBiPXRbYV07cmV0dXJuIChROCthMytqMCtnMyk9PT10eXBlb2YgYj9iOihQOCtmOCkrKChjNStjNStjNStjNSkrYVsoeDcrTzUrbDcrUTMrajIrcDYrZTgpXShEOClbKGU4K1YxK1M4K2U4K2M4K0M0K0I1K2czKV0oZjIpKVsoUTgrTDErQzQrczIrajIpXSgtbDgpO30pK1c2Olc2K2ErVzY7fWZ1bmN0aW9uIGYoYSxjKXt2YXIgcjY9XCJ7fVwiLHE3PVwie1wiLEk2PSgoMHgyMTcsNi4yMkUyKTwweDVEPygweDFCNCwxMSk6KDB4MTlFLDUuMTBFMSk+MzcuPyg3LjdFMixcIn1cIik6KDY1Liw4NS40RTEpKSxaMz1cImpvXCIscDI9XCJ7XFxuXCIsVDY9XCI6IFwiLG8zPVwicHVzXCIsbjg9XCJbXVwiLG04PVwiLFwiLEEyPVwiXFxuXCIsbjQ9XCIsXFxuXCIsdDU9XCJbXFxuXCIsTTE9XCJsbFwiLFo0PVwicnJhXCIsQjQ9XCJiamVcIixzNz1cIltcIixtMj1cImJqXCIsTzM9XCJib1wiLFUwPVwibnVtYlwiLEs3PVwiY2FcIixQNj1cInRpb1wiLHg2PVwiU09OXCIsRzU9XCJvSlwiLGQsZyxlLGgsaz1wLGwsbT1jW2FdO20mJihWMStkMytkMStzMitlOCk9PT10eXBlb2YgbSYmKFQzK2Y4K0I1K3MyK2U4K0M0K1YxK0I1KT09PXR5cGVvZiBtWyhlOCtWMStJMStTOCtaNStYNSldJiYobT1tWyhlOCtHNSt4NildKGEpKTsoVDMrZjgrQjUrczIrUDYrQjUpPT09dHlwZW9mIG4mJihtPW5bKEs3K0wxK0wxKV0oYyxhLG0pKTtzd2l0Y2godHlwZW9mIG0pe2Nhc2UgKHkzK2M4K0M0K0I1K2czKTpyZXR1cm4gYihtKTtjYXNlIChVMCtqMitjOCk6cmV0dXJuIGlzRmluaXRlKG0pP1N0cmluZyhtKTooYTErTDErTDEpO2Nhc2UgKE8zK1YxK0wxK2oyK1IzK0I1KTpjYXNlIChCNStmOCtMMStMMSk6cmV0dXJuIFN0cmluZyhtKTtjYXNlIChWMSttMitqMitzMitlOCk6aWYoIW0pcmV0dXJuIChCNStmOCtMMStMMSk7cCs9cTtsPVtdO2lmKChzNytWMStCNCtzMitlOCtYMitwNitaNCt0NytCMik9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KG0pKXtoPW0ubGVuZ3RoO2ZvcihkPUQ4O2Q8aDtkKz1MOClsW2RdPWYoZCxtKXx8KEI1K2Y4K00xKTtlPWwubGVuZ3RoP3A/KHQ1KStwK2xbKG4xK1YxK2owKV0oKG40KStwKSsoQTIpK2srQjI6czcrbFsobjErVjErQzQrQjUpXShtOCkrQjI6KG44KTtwPWs7cmV0dXJuIGU7fWlmKG4mJihWMStCNCtzMitlOCk9PT10eXBlb2Ygbilmb3IoaD1uLmxlbmd0aCxkPUQ4O2Q8aDtkKz1MOCkoUTgrZTgrYzgrQzQrQjUrZzMpPT09dHlwZW9mIG5bZF0mJihnPW5bZF0sKGU9ZihnLG0pKSYmbFsobzMrSzQpXShiKGcpKyhwPyhUNik6STcpK2UpKTtlbHNlIGZvcihnIGluIG0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG0sZykmJihlPWYoZyxtKSkmJmxbKGI1K2Y4K1E4K0s0KV0oYihnKSsocD8oVDYpOkk3KStlKTtlPWwubGVuZ3RoP3A/KHAyKStwK2xbKFozK0M0K0I1KV0oKG40KStwKSsoQTIpK2srSTY6cTcrbFsoWjErQjUpXShtOCkrSTY6KHI2KTtwPWs7cmV0dXJuIGU7fX1mdW5jdGlvbiBkKCl7dmFyIFkzPVwibHVlXCI7cmV0dXJuIHRoaXNbKEUwK1IzK1kzK1o1K1QzKV0oKTt9dmFyIGM9XC9eW1xcXSw6e31cXHNdKiRcLyxlPVwvXFxcXCg/OltcIlxcXFxcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSlcL2csaD1cL1wiW15cIlxcXFxcXG5cXHJdKlwifHRydWV8ZmFsc2V8bnVsbHwtP1xcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCspP1wvZyxnPVwvKD86Xnw6fCwpKD86XFxzKlxcWykrXC9nLGs9XC9bXFxcXFxcXCJcXHUwMDAwLVxcdTAwMWZcXHUwMDdmLVxcdTAwOWZcXHUwMGFkXFx1MDYwMC1cXHUwNjA0XFx1MDcwZlxcdTE3YjRcXHUxN2I1XFx1MjAwYy1cXHUyMDBmXFx1MjAyOC1cXHUyMDJmXFx1MjA2MC1cXHUyMDZmXFx1ZmVmZlxcdWZmZjAtXFx1ZmZmZl1cL2csbD1cL1tcXHUwMDAwXFx1MDBhZFxcdTA2MDAtXFx1MDYwNFxcdTA3MGZcXHUxN2I0XFx1MTdiNVxcdTIwMGMtXFx1MjAwZlxcdTIwMjgtXFx1MjAyZlxcdTIwNjAtXFx1MjA2ZlxcdWZlZmZcXHVmZmYwLVxcdWZmZmZdXC9nOyhUMytxOCtlOCtDNCtoNykhPT10eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9KU09OJiYoRGF0ZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHc0PVwiZHNcIixjMT1cInVyXCIsSjI9XCJDSFwiLHEwPVwiVENcIixBMT1cImV0VVwiLE4xPVwiTW9cIixpND1cImdldFwiLGYxPVwiZWFcIixhND1cIlVUXCIsTDY9XCJsdVwiO3JldHVybiBpc0Zpbml0ZSh0aGlzWyhFMCtSMytMNitqMitaNStUMyldKCkpP3RoaXNbKGczK2oyK2U4K2E0K1MyK0Y0K2Y4K0wxK0wxK1Q3K2YxK2M4KV0oKStyOCthKHRoaXNbKGk0K2E0K1MyK04xK0I1K2U4K0s0KV0oKStMOCkrcjgrYSh0aGlzWyhnMytBMStxMCtKNCtSMytlOCtqMildKCkpK1o4K2EodGhpc1soZzMrdzYrbjcrWjgrSjIrVjErYzErUTgpXSgpKStJNythKHRoaXNbKGczK2oyK2U4K2E0K1MyK3E1K2owK2Y4K2U4K2oyK1E4KV0oKSkrSTcrYSh0aGlzWyhnMyt3NithNCtTMitTOCtkNStWMStCNSt3NCldKCkpK1M2OlY0O30sQm9vbGVhbi5wcm90b3R5cGUudG9KU09OPWQsTnVtYmVyLnByb3RvdHlwZS50b0pTT049ZCxTdHJpbmcucHJvdG90eXBlLnRvSlNPTj1kKTt2YXIgcCxxLHQsbjsoejYrQjUrczIrZTgrZDcrQjUpIT09dHlwZW9mIEpTT05bKEE4K0I1K2czK0M0K1QzK3Q3KV0mJih0PXtcIlxcYlwiOihQOCtkMyksXCJcXHRcIjooUDgrZTgpLFwiXFxuXCI6KFA4K0I1KSxcIlxcZlwiOihQOCtUMyksXCJcXHJcIjooUDgrYzgpLCdcIic6KEkyKSxcIlxcXFxcIjoodjYpfSxKU09OWyhROCtlOCtjOCtDNCtwMStRNSt0NyldPWZ1bmN0aW9uKGEsYixkKXt2YXIgcDc9XCJpbmdpZlwiLHI0PVwiSlNPXCIsRTg9XCJiamVjXCIsSDQ9XCJmdW5cIixOND1cInVtYmVyXCIsYztxPXA9WjtpZigoQjUrTjQpPT09dHlwZW9mIGQpZm9yKGM9RDg7YzxkO2MrPUw4KXErPVgyO2Vsc2UoeTMrYzgrajArZzMpPT09dHlwZW9mIGQmJihxPWQpO2lmKChuPWIpJiYoSDQrczIrUzUraDcpIT09dHlwZW9mIGImJigoVjErRTgrZTgpIT09dHlwZW9mIGJ8fChhMStSMStkMytqMitjOCkhPT10eXBlb2YgYi5sZW5ndGgpKXRocm93IEVycm9yKChyNCtYNStUK1E4K2U4K2M4K3A3K3Q3KSk7cmV0dXJuIGYoWix7XCJcIjphfSk7fSk7KFQzK3E4K2U4K0M0K1YxK0I1KSE9PXR5cGVvZiBKU09OWyhiNStSMytDNitqMildJiYoSlNPTlsoYjUrUjMrYzgrdjUpXT1mdW5jdGlvbihhLGIpe3ZhciBrNj1cIlNPXCIsVjY9XCJpb25cIixWNz1cIm5jXCIsTDM9XCIpXCIsZTM9XCIoXCIsUTE9XCJsYWNlXCIsZDY9KCgweDkzLDB4REEpPjB4RkM/XCI7XCI6MTMxLjlFMT4oNi4wOEUyLDEzMS4pPygweDE1RSxcIkBcIik6KDB4RDksMTI3Lik8MS4wNUUyP1widFwiOigweDE1QywxMzkuOUUxKSksSjc9XCJsYVwiLEw0PVwiZXhcIjtmdW5jdGlvbiBkKGEsZil7dmFyIEoxPVwiY2FsXCIsYyxnLGU9YVtmXTtpZihlJiYoVjErZDMrbjErZDUrZTgpPT09dHlwZW9mIGUpZm9yKGMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxjKSYmKGc9ZChlLGMpLHZvaWQgRDghPT1nP2VbY109ZzpkZWxldGUgIGVbY10pO3JldHVybiBiWyhKMStMMSldKGEsZixlKTt9dmFyIGY7YT1TdHJpbmcoYSk7bFsoTDErUjMrUTgrZTgrbzErWjYrTDQpXT1EODtsWyhlOCtqMit5MyldKGEpJiYoYT1hWyhjOCtqMitXNytmNitqMildKGwsZnVuY3Rpb24oYSl7cmV0dXJuIChQOCtmOCkrKChjNStjNStjNStjNSkrYVsoczIrRzQrYzgrbDcrUTMrSjgrZTgpXShEOClbKE00K1M4K2U4K2M4K2owK2czKV0oZjIpKVsoUTgrTDErQzQrczIrajIpXSgtbDgpO30pKTtpZihjWyhHOCtROCtlOCldKGFbKGM4K2oyK2I1K0o3K2g2KV0oZSxkNilbKFk0K2I1K0wxK1g3KV0oaCxCMilbKFk0K2I1K1ExKV0oZyxaKSkpcmV0dXJuIGY9ZXZhbChlMythK0wzKSwoVDMrZjgrVjcrZTgrVjYpPT09dHlwZW9mIGI/ZCh7XCJcIjpmfSxaKTpmO3Rocm93ICBuZXcgU3ludGF4RXJyb3IoKEkxK2s2K1g1K1QrYjUrTzUrUTgrajIpKTt9KTt9KSgpOyhmdW5jdGlvbigpe3ZhciBFMT1cIitcLz1cIixRNz0oMHhDMT4oMzAsMTQ0KT8oODcuNEUxLFwiOVwiKTooMHhBLDQuMDFFMik8PSgweDE0NCwxMDUpPyg2OC4xMEUxLDB4MUNBKTo3ND49KDkuNTNFMiwxMjApPzB4MTM1OigxMDguLDB4MTQ3KSksQjE9XCJiY2RcIixONz1cIlphXCIsVzg9XCJSXCIsYTg9XCJQUVwiLHgyPVwib3JcIixpMz1cInJhXCIsSjU9XCJhdFwiOyhSMytNNCtkMykgaW4gd2luZG93JiYoZDMrZTgrVjErUjMpIGluIHdpbmRvd3x8KGY1WDBbbTBdWyhKNSt4OCldPWZ1bmN0aW9uKGEpe3ZhciBvND1cInNoXCIsWTI9XCJwdVwiLGUyPTE4LEg1PVwib2RcIixDMT1cImhhckNcIixLOD1cIm1DXCIsTzE9XCJvZGVcIixrMD1cIm9tXCIsbDI9XCJmclwiLHowPVwib21DXCIsTzQ9XCJ1c2hcIixnND1cIm1DaGFcIix0MT1cImZyb1wiLGgzPTI0LHo0PVwiZGV4XCIsazE9XCI0NTY3XCIsdjc9XCJ6MDEyM1wiLEczPVwieHlcIixKMz1cInR1dlwiLEQxPVwicHFyXCIseDU9XCJtbm9cIixvOD1cImhpamtsXCIsUjY9XCJmZ1wiLHEzPVwiVldYXCIsWDM9XCJNTk9cIixQND1cIkhJSktMXCIsdjE9XCJlckVcIixMNz1cImFyYVwiLFcwPVwiaWRDXCIscDQ9XCJJblwiLEE3PVwiSW52XCIsazI9XCJlcFwiO2E9U3RyaW5nKGEpO3ZhciBkPUQ4LGI9W10sZj1EOCxjPUQ4LGU7YT1hWyhZNCtXNytSMytzMitqMildKFwvXFxzXC9nLFopO2EubGVuZ3RoJWw4fHwoYT1hWyhjOCtrMitMMStmNitqMildKFwvPSskXC8sWikpO2lmKEw4PT09YS5sZW5ndGglbDgpdGhyb3cgRXJyb3IoKEE3K1IzK0Q1K1EzK1MyK0s0K1IzK2kzK3MyK2U4K3QyK0U0K2M4K2M4K1YxK2M4KSk7aWYoXC9bXitcLzAtOUEtWmEtel1cL1soZTgrajIreTMpXShhKSl0aHJvdyBFcnJvcigocDQrRTArUjMrTDErVzArSzQrTDcrczIrZTgrdjErYzgrYzgreDIpKTtmb3IoO2Q8YS5sZW5ndGg7KWU9KHA2K1AyK1MyK0o0K0U0K0Y0K3k0K1A0K1gzK2E4K1c4K1M4K1o4K243K3EzK1Q3K043K0IxK2oyK1I2K284K3g1K0QxK1E4K0ozK3AwK0czK3Y3K2sxK0QwK1E3K0UxKVsoQzQrQjUrejQrWjUrVDMpXShhWyh4NytSMytjOCtwNitlOCldKGQpKSxmPWY8PFk4fGUsYys9WTgsaDM9PT1jJiYoYlsoYjUrZjgrUTgrSzQpXShTdHJpbmdbKHQxK2c0K2M4K1MyK1YxK1E2KV0oZj4+ZjImdDApKSxiWyhiNStPNCldKFN0cmluZ1soVDMrYzgrejArRzQrYzgrbDcrUTMrajIpXShmPj5kOCZ0MCkpLGJbKGI1K080KV0oU3RyaW5nWyhsMitrMCtTMitLNCtSMytjOCtTMitPMSldKGYmdDApKSxmPWM9RDgpLGQrPUw4O2cyPT09Yz9iWyhiNStmOCtROCtLNCldKFN0cmluZ1soVDMrYzgrVjErSzgrQzErSDUrajIpXShmPj5sOCZ0MCkpOmUyPT09YyYmKGY+Pj1nOCxiWyhZMitvNCldKFN0cmluZ1soUzErQTYrTzUrbDcrUTMrajIpXShmPj5kOCZ0MCkpLGJbKFkyK1E4K0s0KV0oU3RyaW5nWyhsMitWMStSMStBNitSMytjOCt0OCtqMildKGYmdDApKSk7cmV0dXJuIGJbKG4xK1YxK0M0K0I1KV0oWik7fSxmNVgwW20wXVsoZDMrZTgrVjErUjMpXT1mdW5jdGlvbihhKXt2YXIgczA9XCI2N1wiLFQ1PVwiMjNcIixLMT1cIlVWV1wiLHAzPVwiR0hJXCIsZTU9XCI4OVwiLEU1PVwiMzRcIixBND1cIjAxXCIsVzE9XCJsbVwiLHM1PVwiaGlcIixrMz1cIlJTXCIsVDg9XCJRXCIsSTU9XCJPUFwiLE03PVwiR0hcIixONT1cIjc4XCIsRTc9XCI1NlwiLHo1PVwiMlwiLGkwPVwiejAxXCIsTTI9XCJ2d1wiLG01PVwiaWprbG1cIixtND1cIlRVXCIsRTY9XCJPUFFcIixjMj1cIkpLTFwiLEQ3PVwiSElcIixLMj1cIkRFXCIsTjM9XCJBQlwiLG0zPVwiNDU2Nzg5XCIsTDA9XCIxMjNcIixSMj1cInd4eXpcIixvNj1cInV2XCIsVTU9XCJxXCIseDM9XCJub1wiLHU0PVwia1wiLFI1PVwiZ2hcIixiMz1cIllaXCIsZjA9XCJYXCIsRjI9XCJWV1wiLFc0PVwiU1RcIixrOD1cIlFSXCIsRDQ9XCJMXCIsUDE9XCJLXCIsejc9XCJJSlwiLEwyPVwiRkdIXCIsSDM9XCJCQ1wiLHE2PSgweDk8KDB4MjM0LDB4MUEwKT8oMTE2LDYzKTooMHgxNUEsMHhDOCk+PSgweEFDLDkuMzNFMik/KDExNixudWxsKTooMHgxMUYsMTA3LikpLFg0PVwickNvXCIsZjM9XCJFclwiO2E9U3RyaW5nKGEpO3ZhciBkPUQ4LGI9W10sZixjLGUsaDtpZihcL1teXFx4MDAtXFx4RkZdXC9bKGU4K2oyK1E4K2U4KV0oYSkpdGhyb3cgRXJyb3IoKG8xK0I1K0UwK1IzK0wxK0M0K1EzK1MyK0s0K1IzK2kzK3MyK2U4K2oyK2M4K2YzK2M4K3gyKSk7Zm9yKDtkPGEubGVuZ3RoOylmPWFbKHMyK0s0K1IzK2M4K1MyK1YxK1E2K3A2K2U4KV0oZCsrKSxjPWFbKHMyK0c0K2wxK1YxK1EzK0o4K2U4KV0oZCsrKSxlPWFbKHg3K1IzK1g0K1EzK0o4K2U4KV0oZCsrKSxoPWY+Pmc4LGY9KGYmcDgpPDxsOHxjPj5sOCxjPShjJlYyKTw8Zzh8ZT4+WTgsZSY9cTYsZD09PWEubGVuZ3RoK2c4P2U9Yz1iNjpkPT09YS5sZW5ndGgrTDgmJihlPWI2KSxiWyhiNStmOCtROCtLNCldKChwNitIMytKNCtFNCtMMit6NytQMStENCtxNStYNStaNSt1MStrOCtXNCtuNytGMitmMCtiMytSMytCMStKNitSNStDNCtuMSt1NCtMMStSMSt4MytiNStVNStjOCtROCtlOCtvNitSMitjNStMMCttMytFMSlbKHg3K1IzK2M4K2g4KV0oaCksKE4zK1MyK0syK0Y0K3k0K0Q3K2MyK3E1K1g1K0U2K1c4K1M4K200K0YyK2YwK1Q3K1M2K24yK0Y4K1QzK2czK0s0K201K0I1K1YxK2I1K1U1K2M4K3kzK2Y4K00yK1o3K3Q3K2kwK3o1K281K283K0U3K041K1E3K0UxKVsoeDcrUjMrYzgrcDYrZTgpXShmKSwoTjMrUzIrSjQrRTQrRjQrTTcrbzErSTErUDErRDQrcTUrWDUrSTUrVDgrazMrbTQrRjIrZjArYjMrUjMrZDMrdzArajIrVDMrZzMrczUrbjErdTQrVzErQjUrVjErYjUrVTUrQzYrZTgrbzYrcDArWjcrdDcrWTcrQTQrejUrRTUrRTcrTTYrZTUrRTEpWyhzMitLNCtSMytjOCtwNitlOCldKGMpLChwNitQMitTMitKNCtFNCtGNCtwMytJMStQMStENCtxNStYNStaNSthOCtXOCtXNCtLMStmMCtUNytONytkMytzMitRNitUMytnMytLNCtDNCtuMSt1NCtMMStSMSt4MytiNStVNStjOCt5MytmOCtFMCtwMCtaNyt0NytZNytjNSt6MStUNStvNytlNytzMCtlNStFMSlbKHg3K081K3A2K2U4KV0oZSkpO3JldHVybiBiWyhaMStCNSldKFopO30pO30pKCk7QXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChBcnJheS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhLGQpe3ZhciBUND1cImF4XCIsRTM9J2UnLFY9J2VmaScsRTI9J2QnLHQ2PSdyJyxPNz0nbycsajc9J2wnLEcwPSd1JyxCNj0nbicsRjM9JyAnLFY1PSdcIiAnLE42PSgoODQuOUUxLDExLjlFMik8MHgxRkM/J2snOigxMTgsMTI2LjYwRTEpPigxMDEuLDEyMyk/KDEuNjUwRTIsJ3MnKTooMjYuNzBFMSwyNi4pKSxHNz0naScsbzA9KCgxMDIsODMuKTwweDEwOD8oMTcuN0UxLCdoJyk6KDB4RjgsMHgxQzEpPCg4My42MEUxLDE0Ny4pPzE0MDooMTIsMi44MUUyKT49NTIuNDBFMT8oNS41RTIsJ0onKTooMHgxODcsMHgxNEIpKSxiMD0ndCcsYjtpZighdGhpcyl0aHJvdyAgbmV3IFR5cGVFcnJvcigoVzYrYjArbzArRzcrTjYrVjUrRzcrTjYrRjMrQjYrRzArajcrajcrRjMrTzcrdDYrRjMrQjYrTzcrYjArRjMrRTIrVitCNitFMytFMikpO3ZhciBmPU9iamVjdCh0aGlzKSxjPWYubGVuZ3RoPj4+RDg7aWYoIWMpcmV0dXJuIC1MODtiPStkfHxEODtJbmZpbml0eT09PU1hdGhbKFIzK2QzK1E4KV0oYikmJihiPUQ4KTtpZihiPj1jKXJldHVybiAtTDg7Zm9yKGI9TWF0aFsoUjErVDQpXShEODw9Yj9iOmMtTWF0aFsoUjMrZDMrUTgpXShiKSxEOCk7YjxjOyl7aWYoYiBpbiBmJiZmW2JdPT09YSlyZXR1cm4gYjtiKys7fXJldHVybiAtTDg7fSk7U3RyaW5nLnByb3RvdHlwZS50cmltfHwoU3RyaW5nLnByb3RvdHlwZS50cmltPWZ1bmN0aW9uKCl7dmFyIEszPVwiZXBsXCI7cmV0dXJuIHRoaXNbKGM4K0szK1g3KV0oXC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyRcL2csWik7fSk7dmFyIHo9ZjVYMFtKMF1bKFg2K3A2K2c1K0I1K2U4KV1bKE00K0MyK3AwK2oyK2M4K1MyK1IzK1E4K2oyKV0oKSxBPXt9LEs9ZnVuY3Rpb24oYSl7dmFyIGc3PVwiZmlcIixJND1cInVuXCI7KEk0K1EzK2oyK2c3K0I1K2oyK1EzKT09dHlwZW9mIEFbZzJdJiYoQVtnMl09YSgpKTtyZXR1cm4gQVtnMl07fSx3PW5ldyBmdW5jdGlvbigpe3RoaXNbSzRdPWZ1bmN0aW9uKCl7dmFyIGw1PVwidGVzXCI7cmV0dXJuIFwvbXNpZXx0cmlkZW50XFxcL1wvWyhsNStlOCldKHopJiYhXC9vcGVyYVwvWyhlOCtqMitROCtlOCldKHopO307dGhpc1tnM109ZnVuY3Rpb24oKXtyZXR1cm4gSyhmdW5jdGlvbigpe3ZhciB5Mj1cInRjaFwiLEc2PVwibWFcIixhO2E9W1wvdHJpZGVudFxcXC8oPzpbMS05XVswLTldK1xcLlswLTldK1s3ODldXFwuWzAtOV0rfCkuKnJ2OihbMC05XStcXC5bMC05YS16XSspXC8sXC9tc2llXFxzKFswLTldK1xcLlswLTlhLXpdKylcL107Zm9yKHZhciBkPUQ4LGI9YS5sZW5ndGg7ZDxiO2QrKyl7dmFyIGY9elsoRzYreTIpXShhW2RdKTtpZihmJiZmW0w4XSlyZXR1cm4gcGFyc2VGbG9hdChmW0w4XSk7fXJldHVybiBEODt9KTt9O3RoaXNbTDFdPWZ1bmN0aW9uKCl7cmV0dXJuIFwvaWVtb2JpbGVcL1soZTgrajIreTMpXSh6KTt9O307d1tLNF0oKSYmd1tnM10oKTt2YXIgTD1bbDgsTDhdLE09W1cyLEw4XSx4PXtpOlY0LHNlbmQ6ZnVuY3Rpb24oYSxkLGIsZil7dmFyIG0xPVwidFRpXCIsWTY9XCJfXCIsbjU9XCJuZlwiLHMxPVwidXNcIixpNT1cImlkXCIsZjc9XCJcLz8mXCIsajE9XCJcL1wvXCIseDA9MTAyNCx4MT1cInJlcGxcIjsoUTgrZTgrYzgrQzQrQjUrZzMpPT10eXBlb2YgYiYmRDg8Yi5sZW5ndGgmJihiPWJbKHgxK1IzK3MyK2oyKV0oXC9bLFxcclxcbl1cL2csWilbKFE4K0wxK0M0K3MyK2oyKV0oRDgsQzMpKTsoUTgrYTMrQzQrQjUrZzMpPT10eXBlb2YgZCYmRDg8ZC5sZW5ndGgmJihkPWRbKGM4K2oyK1c3K1IzK3MyK2oyKV0oXC9bLFxcclxcbl1cL2csWilbKFE4K0Q1K3MyK2oyKV0oRDgseDApKTt2YXIgYz1uZXcgSW1hZ2U7ZiYmKGMub25lcnJvcj1jWyhWMStCNStMMStWMStzNildPWYpO2NbKFE4K0YxKV09KGoxKSt4W0M0XVtSMV0rKGY3K1E4K2Y4K2QzK2k1K0QyKSsoYj9lbmNvZGVVUkkoYik6YzUpKyhYMStiNStDNCtRMytEMikreFtDNF1bVjFdKyhYMStlOCtDNCtRMytEMikreFtDNF1bUThdKyhYMStROCtlOCtSMytlOCtzMStEMikrYVtEOF0rKGQ/KFgxK0M0K241K1YxK0QyKStlbmNvZGVVUkkoZCk6WikrKFgxK0UwK0QyKStWRVJTSU9OKyhYMStZNitEMikrKG5ldyBEYXRlKVsoZzMrajIrbTErUjErajIpXSgpO30sajp7fX0sTj1mdW5jdGlvbihhLGQsYixmKXt2YXIgbjM9XCJwbHlcIjtpZihnOCE9YVtMOF0mJmw4IT1hW0w4XSYmcDghPWFbTDhdKXtpZihkJiZhW0Q4XT09TFtEOF0pe3ZhciBjPShEKEUsZCleLUw4KT4+PkQ4O2lmKCFEOD09PXhbbjFdW2NdKXJldHVybiA7eFtuMV1bY109IUQ4O314WyhROCtqMitaNildWyhSOCtuMyldKHgsYXJndW1lbnRzKTt9fSxPPWZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpe3ZhciBOOD1cInRpbWVvXCIsRDY9XCJvdVwiLGUwPVwiaW1lXCIsZzA9XCJwclwiLE01PVwib3BlXCIsczM9XCJtcFwiLFQxPVwidGhcIixkND1cIk9TXCIsQjM9XCJDYVwiO2E9YVsoZTgrVjErbjcrYjUrYjUrajIrYzgrQjMrdjUpXSgpO2lmKCh5NCtFNCtaOCkhPWEmJih1MStkNCtaOCkhPWEpZigoUjErajIrVDErVjErUTMrWDIrQjUrVjErZTgrWDIrQzQrczMrTDErajIrUjErajIrVTQrRjYpLC1MOCk7ZWxzZXt2YXIgZz1uZXcgWERvbWFpblJlcXVlc3Q7Z1soTTUrQjUpXShhLGQpO2dbKFYxK0I1K0wxK1YxK3M2KV09ZnVuY3Rpb24oKXt2YXIgdjQ9XCJwb25cIixOMj1cInJlc1wiO2IoZ1soTjIrdjQrUTgrajIrWjgrajIrWjcrZTgpXVsoZTgrYzgrQzQrUjEpXSgpLGI4KTt9O2dbKGg3K2cwK1YxK2czK2M4K2oyK1E4K1E4KV09ZnVuY3Rpb24oKXt9O2cub25lcnJvcj1mdW5jdGlvbigpe2YoWiwtTDgpO307YyYmKGdbKGU4K2UwK0Q2K2U4KV09YyxnWyhoNytOOCtlNildPWcub25lcnJvcik7c2V0VGltZW91dChmdW5jdGlvbigpe2dbKFE4K2oyK0I1K1EzKV0oaHx8Wik7fSxEOCk7fX0sUD1YTUxIdHRwUmVxdWVzdFsoSjQrWjUrQjcpXXx8bDgsUT1mdW5jdGlvbihhLGQsYixmLGMsZSxoKXt2YXIgYzY9XCJpdFwiLHYzPVwidFRcIixVMj1cImVvXCIsVjM9XCJvdXRcIixPMD1cImltXCIsZzE9XCJlY2hhXCIsbTc9XCJvbnJlYWRcIixhNj1cIkNhc1wiO2E9YVsoZTgrVjErbjcrYjUrYjUrdDIrYTYrajIpXSgpO3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtnWyhWMStiNStqMitCNSldKGEsZCwhRDgpO2dbKG03K3Q3K1E4K2U4K1IzK2U4K2cxK0I1K2czK2oyKV09ZnVuY3Rpb24oKXt2YXIgYTc9XCJwb1wiLGkxPVwiZWFyXCIsVT1cInRpbWVcIix0ND1cIlN0XCI7aWYoZ1soYzgrajIrUjMrUTMrdDcrdDQrUjMrRzgpXT09UCl7Z1soaDcrVStWMStlNildPWZ1bmN0aW9uKCl7fTtrJiYoR0xPQkFMWyhzMitMMStpMStaOCtDNCtLNStWMStmOCtlOCldKGspLGs9IUw4KTt2YXIgYT1nWyhZNCtROCthNytCNSt2NStaOCtqMitaNytlOCldWyhlOCtjOCtDNCtSMSldKCk7Yjg9PWdbKFE4K2U4K1IzK2U4K2Y4K1E4KV0/YihhLGdbKFE4K2U4K1IzK2U4K2Y4K1E4KV0pOmYoYSxnWyhROCtlOCtSMytlOCtmOCtROCldKTt9fTt2YXIgaztjJiYoZ1soZTgrTzArajIrVjMpXT1jLChWMStCNStTNStSMStqMitWMStmOCtlOCkgaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2dbKFYxK1U0K0M0K1IxK1UyK2Y4K2U4KV09ZnVuY3Rpb24oKXt2YXIgaDQ9NTA0LGU0PVwibnNcIixjNz1cInNwb1wiO2YoZ1soYzgrajIrYzcrZTQrajIrWjgrajIrWjcrZTgpXVsoZTgrYzgrQzQrUjEpXSgpLGg0KTt9Oms9R0xPQkFMWyh2NSt2MytDNCtSMStqMitWMyldKGZ1bmN0aW9uKCl7Zy5hYm9ydCgpO2YoWiwtTDgpO30sYykpO2dbKHAwK2M2K0s0K1MyK2M4K0Y2K2wzK2U4K0M0K1IzK0wxK1E4KV09KGY4K0I1K1EzK2oyK1QzK0M0K0I1K2oyK1EzKSE9dHlwZW9mIGU/ZTohRDg7Z1soUTgrajIrQjUrUTMpXShofHxaKTt9LFI9e2FzeW5jOmZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpeyh3W0s0XSgpJiYhd1tMMV0oKSYmYTI+d1tnM10oKT9POlEpWyhSOCtXNyt0NyldKFY0LGFyZ3VtZW50cyk7fSxnOmZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpe3ZhciBiNz1cInN5XCI7dGhpc1soUjMrYjcrQjUrczIpXShhLGQrKFgxK3MyK0YxK0QyK3oxKSxmdW5jdGlvbihhLGQpe3ZhciBVNz1cIjtcIixUMj1cInNwXCIsYz1hWyhUMitMMStDNCtlOCldKFU3LGc4KSxlO2EmJlk4PmEubGVuZ3RoP2U9IUw4Omc4PmMubGVuZ3RofHxwYXJzZUludChjW0Q4XSxhMikhPT0oRChFLGNbTDhdWyhNNCtTOCtlOCtjOCtDNCtwMSldKCkpXi1MOCk+Pj5EOD8oTihNLGEsdm9pZCBEOCx2b2lkIEQ4KSxlPSFMOCk6ZT0hRDg7ZT9iKGNbTDhdLGQpOmYoYSxkKTt9LGYsYyxlLGgpO30saDp3W0s0XSgpJiZhMj53W2czXSgpfSxTPShLNCtlOCtlOCtiNSkrKChLNCtlOCtXMytROCtJNyk9PWY1WDBbJ2xvY2F0aW9uJ11bKGI1K2M4K3UzK3MyK1YxK0wxKV0/UTg6WikrKHUwKSxCPWRvY3VtZW50LEg9KG5ldyBEYXRlKVsoZTgrcDUrUzgrbDArajArZzMpXSgpWyhSNCtoNildKEQ4LGEyKSxJPWZ1bmN0aW9uKGEsZCl7dmFyIGY0PVwiaWNcIixiPUcoYSksZj1HKGIpWyhROCtMMStmNCtqMildKEQ4LC1kKTtyZXR1cm4gYitmO30oSCxwYXJzZUludChIWyhROCtiNStMMStDNCtlOCldKHI4KVtMOF0sYTIpKSxDPUJbKHMyK1k0K1IzK2U4K1crUjErajIrVTQpXSgoUTgrczIrQTArZTgpKTtDWyhlOCt0Nyt5OCldPShlOCtqMitoMitWOCtuMStSMytjNCtTNCtSNytlOCk7KGZ1bmN0aW9uKCl7dmFyIHIxPVwicnNlXCIsdzc9XCJ2ZVwiLGw0PVwiYXdcIixpNz1cInMzXCIsYT1TKyhpNytUK1IzK1IxK1IzK1k3K1YxK0I1K2w0K1E4K1QrczIrVjErUjErVjgpK0krVjgrSVsoUTgrZjgrZDMrUTgrZTgrYzgrQzQrQjUrZzMpXShEOCxhMilbKFE4K1c3K0M0K2U4KV0oWilbKGM4K2oyK3c3K3IxKV0oKVsobjErVjErQzQrQjUpXShaKTtSWyhSMytROCt0NytCNStzMildKCh5NCtFNCtaOCksYSxmdW5jdGlvbihhKXt2YXIgSzA9XCJpbGRcIixZPVwibmRDXCIsajU9XCJhcHBcIix6OD1cImhlXCIsWjI9XCJ5VGFnXCIsdzU9XCJFbFwiLFk1PVwiY3JlXCIsSTg9XCJpbFwiLGk4PVwiQVRcIix5Nz1cInViXCIseDQ9XCJic1wiO3RyeXt2YXIgYjthPWF0b2IoYSk7dmFyIGY9YVsoUTgrZjgreDQrZTgrYzgrajArZzMpXShEOCxzOCk7YT1hWyhROCt5NytROCthMytDNCtwMSldKHM4KTtmb3IodmFyIGM9WixlPUQ4O2U8YS5sZW5ndGg7ZSsrKWMrPVN0cmluZ1soUzErUzIrRzQrbDErVjErUTMrajIpXShhWyhzMitLNCtSMytsMStWMStRNitwNitlOCldKGUpXmZbKHMyK0s0K1IzK2M4K1MyK1YxK1EzK2oyK2g4KV0oZSVmLmxlbmd0aCkpO2I9YztiPWJbKGM4K2oyK1c3K1IzK3MyK2oyKV0oUmVnRXhwKChWOCtwNitpOCt1MStWOCksZzMpLEopO0NbKFIzK2I1K2I1K2wzK1EzK0E2K0k4K1EzKV0oQlsoWTUrUjMrZTgrajIrWjgrajIraDIrWDUrVjErUTYpXShiKSk7QlsoZzMrdzYrdzUrajIrUjErajIrQjUrZTgrUTgrUDIrWjIrWDUrUjMrSzUpXSgoejgrUjMrUTMpKVtEOF1bKGo1K2oyK1krSzQrSzApXShDKTt9Y2F0Y2goaCl7fX0sZnVuY3Rpb24oKXt9KTt9KSgpO319KShUSUQpOzxcL3NjcmlwdD4ifSx7ImlkIjoiYWRzdF9iX1BPUFVOREVSIiwiYWRzcG90IjoiYl9QT1BVTkRFUiIsIndlaWdodCI6IjU5IiwiZmNhcCI6IjIiLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjpmYWxzZSwibWluV2lkdGgiOiI3NjgiLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPSd0ZXh0XC9qYXZhc2NyaXB0JyBzcmM9J1wvXC9pbmNyZWFzaW5nbHljb2Nrcm9hY2hwb2xpY3kuY29tXC9kZVwvYzhcL2Y0XC9kZWM4ZjRlZjNjMmRlODQ1YTdhZDQwMGZlZWE3ODBlMy5qcyc+PFwvc2NyaXB0PiJ9LHsiaWQiOiJjbGljX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNjAiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGRhdGEtY2Zhc3luYz1cImZhbHNlXCIgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJcL1wvMmNuanVoMzRqYnBvaW50LmNvbVwvdFwvOVwvZnJldFwvbWVvdzRcLzQ3MDkxNlwvYnJ0LmpzXCI+PFwvc2NyaXB0PiJ9LHsiaWQiOiJqYXZfYl9QT1BVTkRFUiIsImFkc3BvdCI6ImJfUE9QVU5ERVIiLCJ3ZWlnaHQiOiI1MiIsImZjYXAiOiIxIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjpmYWxzZSwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQ+XHJcbiQoZG9jdW1lbnQuYm9keSkub24oXCJjbGlja1wiLCBmdW5jdGlvbihldmVudCkge1xyXG4gIHdpbmRvdy5vcGVuKFwiaHR0cHM6XC9cL3RlbGxtZS5wd1wvZ29cL2phdlwiKTtcclxuICAkKHRoaXMpLm9mZihcImNsaWNrXCIpO1xyXG59KTtcclxuPFwvc2NyaXB0PiJ9LHsiaWQiOiJwb3BjX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNTciLCJmY2FwIjoiMSIsInNjaGVkdWxlIjpbIjEiLDAsIjEiLDAsIjEiLDAsIjEiXSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6Ijc2OCIsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI+XHJcbiB2YXIgcCQwMGEgPSAncCQwMGEnICsgKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSArICd6eic7IHdpbmRvd1twJDAwYV0gPSB7YTonYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5NHloMXF1ZHJvY2VpbnN0MG02ZjhscHg5YnozN2o1Z3ZrMndhJywgYjone1wiQVpJYlwiOlwiN3YyZ3Y3XCIsIFwiQlZJYlwiOlwia2p2NzJ2XCIsIFwiQ1hycjFcIjpcImxzMXE2XCIsIFwiREx0YWdcIjpcIjdcIiwgXCJFbWprNVwiOlwiXCIsIFwiWENnZTFzXCI6XCJ1cTFmYi45YnpcIiAsIFwiWnQxXCI6XCIwdDBoNGZyLnNxOFwiLCBcIlpaMVwiOlwiczBoNDEuaHRuXCIgfScsIGM6J3tcIkFia3IyMjFcIjpcImZoNm8wOFwiLCBcIkJvOXNzbVwiOlwiXC9cL2gxcy51cTFmYi45YnpcLzQwMC5jZlwifScsIGQ6J3tcIkFnNFwiOlwieXQxYlwiLCBcIkJ4MVwiOlwiNDAwcXMxQ3JvaTFcIiwgXCJDa3lcIjpcImY2aFwiLCBcIkRtZ1wiOlwiaDZxNDhxRWlxbnFzOFwifSd9O1xyXG52YXIgXzB4NWQ0Yj1bJzIzNTkxM1FWZmJ3dicsJ3NsaWNlJywnbGVuZ3RoJywnMTYyMjA5UUJtQW1WJywnMTQyMzhoeU9PVHEnLCczMjMyMDdEVGJpZmgnLCdzcGxpdCcsJzFEcWlLdHEnLCcxMzU4NjZIVGJhdkInLCdpbmRleE9mJywnY2FsbCcsJzI3NjU0U0tYSGJZJywncGFyc2UnLCd1bmRlZmluZWQnLCczMklqY2tteicsJ2tleXMnLCdtYXAnLCdjZWlsJywnMTE1OTgwaGNGVkR5JywndmFsdWVzJywnam9pbiddO3ZhciBfMHgyMDhjPWZ1bmN0aW9uKF8weDMxYThkNyxfMHg1ZjM2YjMpe18weDMxYThkNz1fMHgzMWE4ZDctMHgxNjc7dmFyIF8weDVkNGJlMT1fMHg1ZDRiW18weDMxYThkN107cmV0dXJuIF8weDVkNGJlMTt9OyhmdW5jdGlvbihfMHgyNzZmOTQsXzB4NTdjNGZmKXt2YXIgXzB4NTAwNTdjPV8weDIwOGM7d2hpbGUoISFbXSl7dHJ5e3ZhciBfMHg0MGQxODQ9cGFyc2VJbnQoXzB4NTAwNTdjKDB4MTY4KSkrcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTZmKSkqcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTc5KSkrLXBhcnNlSW50KF8weDUwMDU3YygweDE3NikpK3BhcnNlSW50KF8weDUwMDU3YygweDE3MykpK3BhcnNlSW50KF8weDUwMDU3YygweDE2ZSkpKy1wYXJzZUludChfMHg1MDA1N2MoMHgxNzApKStwYXJzZUludChfMHg1MDA1N2MoMHgxNmIpKSotcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTcyKSk7aWYoXzB4NDBkMTg0PT09XzB4NTdjNGZmKWJyZWFrO2Vsc2UgXzB4Mjc2Zjk0WydwdXNoJ10oXzB4Mjc2Zjk0WydzaGlmdCddKCkpO31jYXRjaChfMHg0MTE4MzYpe18weDI3NmY5NFsncHVzaCddKF8weDI3NmY5NFsnc2hpZnQnXSgpKTt9fX0oXzB4NWQ0YiwweDQ1MTExKSxmdW5jdGlvbigpe3ZhciBfMHgxYmEyNzQ9ZnVuY3Rpb24oXzB4MmYzYTlhKXt2YXIgXzB4M2YwYmM0PV8weDIwOGMsXzB4MTg5NGJhPU1hdGhbXzB4M2YwYmM0KDB4MTY3KV0odGhpc1snYSddW18weDNmMGJjNCgweDE2ZCldXC8weDIpLF8weDUzOTU0OD10aGlzWydhJ11bXzB4M2YwYmM0KDB4MTZjKV0oMHgwLF8weDE4OTRiYSksXzB4NWQ4MDA5PXRoaXNbJ2EnXVtfMHgzZjBiYzQoMHgxNmMpXShfMHgxODk0YmEpO2RlY3J5cHQ9dGhpc1tfMHgyZjNhOWFdW18weDNmMGJjNCgweDE3MSldKCcnKVtfMHgzZjBiYzQoMHgxN2IpXShfMHgyOGY0MzM9Pnt2YXIgXzB4ZDc2MTJkPV8weDNmMGJjNDtyZXR1cm4gXzB4NWQ4MDA5WydzcGxpdCddKCcnKVsnaW5jbHVkZXMnXShfMHgyOGY0MzMpP18weDUzOTU0OFtfMHg1ZDgwMDlbXzB4ZDc2MTJkKDB4MTc0KV0oXzB4MjhmNDMzKV06XzB4MjhmNDMzO30pW18weDNmMGJjNCgweDE2YSldKCcnKTt0cnl7cmV0dXJuIEpTT05bXzB4M2YwYmM0KDB4MTc3KV0oZGVjcnlwdCk7fWNhdGNoe3JldHVybiBkZWNyeXB0O319LF8weDU3YmI4NT13aW5kb3dbcCQwMGFdLF8weDIxOWQ5Nz1mdW5jdGlvbihfMHgyOGVmYWMsXzB4MjJhMDMxKXt2YXIgXzB4NWJlZThlPV8weDIwOGMsXzB4Mzk2M2EwPU9iamVjdFtfMHg1YmVlOGUoMHgxNjkpXShfMHgxYmEyNzRbXzB4NWJlZThlKDB4MTc1KV0oXzB4NTdiYjg1LE9iamVjdFtfMHg1YmVlOGUoMHgxN2EpXShfMHg1N2JiODUpW18weDI4ZWZhY10pKTtyZXR1cm4gdHlwZW9mIF8weDIyYTAzMSE9XzB4NWJlZThlKDB4MTc4KT9fMHgzOTYzYTBbXzB4MjJhMDMxXTpfMHgzOTYzYTA7fTt3aW5kb3dbcCQwMGFdWyd4J109ZnVuY3Rpb24oKXtyZXR1cm4gXzB4MjE5ZDk3KDB4MSk7fTt2YXIgXzB4ZjFkYjU3PWRvY3VtZW50W18weDIxOWQ5NygweDMsMHgzKV0oXzB4MjE5ZDk3KDB4MiwweDApKTtfMHhmMWRiNTdbXzB4MjE5ZDk3KDB4MywweDIpXT1fMHgyMTlkOTcoMHgyLDB4MSksZG9jdW1lbnRbXzB4MjE5ZDk3KDB4MywweDApXVtfMHgyMTlkOTcoMHgzLDB4MSldKF8weGYxZGI1NykscCQwMGE9dW5kZWZpbmVkO30oKSk7XHJcbiBcclxuIDxcL3NjcmlwdD4ifV0=