Implemented copy, cut and paste frame
[dashstudio.git] / qonfigure.rb
blobaa4dd298054a144f6e8c00d254269f2523a6cd81
1 # License, not of this script, but of the application it contains:
3
4 # Copyright (C) 2007 David Cuadrado                                     
5 # krawek@gmail.com                                                      
6 #                                                                       
7 # This library is free software; you can redistribute it and/or         
8 # modify it under the terms of the GNU Lesser General Public            
9 # License as published by the Free Software Foundation; either          
10 # version 2.1 of the License, or (at your option) any later version.    
11 #                                                                       
12 # This library is distributed in the hope that it will be useful,       
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of        
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     
15 # Lesser General Public License for more details.                       
16 #                                                                       
17 # You should have received a copy of the GNU Lesser General Public      
18 # License along with this library; if not, write to the Free Software   
19 # Foundation, Inc.,                                                     
20 # 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA              
21
23 # License of this script, not of the application it contains:
25 # Copyright Erik Veenstra <tar2rubyscript@erikveen.dds.nl>
26
27 # This program is free software; you can redistribute it and/or
28 # modify it under the terms of the GNU General Public License,
29 # version 2, as published by the Free Software Foundation.
30
31 # This program is distributed in the hope that it will be
32 # useful, but WITHOUT ANY WARRANTY; without even the implied
33 # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
34 # PURPOSE. See the GNU General Public License for more details.
35
36 # You should have received a copy of the GNU General Public
37 # License along with this program; if not, write to the Free
38 # Software Foundation, Inc., 59 Temple Place, Suite 330,
39 # Boston, MA 02111-1307 USA.
41 # Parts of this code are based on code from Thomas Hurst
42 # <tom@hur.st>.
44 # Tar2RubyScript constants
46 unless defined?(BLOCKSIZE)
47   ShowContent   = ARGV.include?("--tar2rubyscript-list")
48   JustExtract   = ARGV.include?("--tar2rubyscript-justextract")
49   ToTar         = ARGV.include?("--tar2rubyscript-totar")
50   Preserve      = ARGV.include?("--tar2rubyscript-preserve")
51 end
53 ARGV.concat     []
55 ARGV.delete_if{|arg| arg =~ /^--tar2rubyscript-/}
57 ARGV << "--tar2rubyscript-preserve"     if Preserve
59 # Tar constants
61 unless defined?(BLOCKSIZE)
62   BLOCKSIZE             = 512
64   NAMELEN               = 100
65   MODELEN               = 8
66   UIDLEN                = 8
67   GIDLEN                = 8
68   CHKSUMLEN             = 8
69   SIZELEN               = 12
70   MAGICLEN              = 8
71   MODTIMELEN            = 12
72   UNAMELEN              = 32
73   GNAMELEN              = 32
74   DEVLEN                = 8
76   TMAGIC                = "ustar"
77   GNU_TMAGIC            = "ustar  "
78   SOLARIS_TMAGIC        = "ustar\00000"
80   MAGICS                = [TMAGIC, GNU_TMAGIC, SOLARIS_TMAGIC]
82   LF_OLDFILE            = '\0'
83   LF_FILE               = '0'
84   LF_LINK               = '1'
85   LF_SYMLINK            = '2'
86   LF_CHAR               = '3'
87   LF_BLOCK              = '4'
88   LF_DIR                = '5'
89   LF_FIFO               = '6'
90   LF_CONTIG             = '7'
92   GNUTYPE_DUMPDIR       = 'D'
93   GNUTYPE_LONGLINK      = 'K'   # Identifies the *next* file on the tape as having a long linkname.
94   GNUTYPE_LONGNAME      = 'L'   # Identifies the *next* file on the tape as having a long name.
95   GNUTYPE_MULTIVOL      = 'M'   # This is the continuation of a file that began on another volume.
96   GNUTYPE_NAMES         = 'N'   # For storing filenames that do not fit into the main header.
97   GNUTYPE_SPARSE        = 'S'   # This is for sparse files.
98   GNUTYPE_VOLHDR        = 'V'   # This file is a tape/volume header.  Ignore it on extraction.
99 end
101 class Dir
102   def self.rm_rf(entry)
103     begin
104       File.chmod(0755, entry)
105     rescue
106     end
108     if File.ftype(entry) == "directory"
109       pdir      = Dir.pwd
111       Dir.chdir(entry)
112         Dir.open(".") do |d|
113           d.each do |e|
114             Dir.rm_rf(e)        if not [".", ".."].include?(e)
115           end
116         end
117       Dir.chdir(pdir)
119       begin
120         Dir.delete(entry)
121       rescue => e
122         $stderr.puts e.message
123       end
124     else
125       begin
126         File.delete(entry)
127       rescue => e
128         $stderr.puts e.message
129       end
130     end
131   end
134 class Reader
135   def initialize(filehandle)
136     @fp = filehandle
137   end
139   def extract
140     each do |entry|
141       entry.extract
142     end
143   end
145   def list
146     each do |entry|
147       entry.list
148     end
149   end
151   def each
152     @fp.rewind
154     while entry = next_entry
155       yield(entry)
156     end
157   end
159   def next_entry
160     buf = @fp.read(BLOCKSIZE)
162     if buf.length < BLOCKSIZE or buf == "\000" * BLOCKSIZE
163       entry     = nil
164     else
165       entry     = Entry.new(buf, @fp)
166     end
168     entry
169   end
172 class Entry
173   attr_reader(:header, :data)
175   def initialize(header, fp)
176     @header     = Header.new(header)
178     readdata =
179     lambda do |header|
180       padding   = (BLOCKSIZE - (header.size % BLOCKSIZE)) % BLOCKSIZE
181       @data     = fp.read(header.size)  if header.size > 0
182       dummy     = fp.read(padding)      if padding > 0
183     end
185     readdata.call(@header)
187     if @header.longname?
188       gnuname           = @data[0..-2]
190       header            = fp.read(BLOCKSIZE)
191       @header           = Header.new(header)
192       @header.name      = gnuname
194       readdata.call(@header)
195     end
196   end
198   def extract
199     if not @header.name.empty?
200       if @header.symlink?
201         begin
202           File.symlink(@header.linkname, @header.name)
203         rescue SystemCallError => e
204           $stderr.puts "Couldn't create symlink #{@header.name}: " + e.message
205         end
206       elsif @header.link?
207         begin
208           File.link(@header.linkname, @header.name)
209         rescue SystemCallError => e
210           $stderr.puts "Couldn't create link #{@header.name}: " + e.message
211         end
212       elsif @header.dir?
213         begin
214           Dir.mkdir(@header.name, @header.mode)
215         rescue SystemCallError => e
216           $stderr.puts "Couldn't create dir #{@header.name}: " + e.message
217         end
218       elsif @header.file?
219         begin
220           File.open(@header.name, "wb") do |fp|
221             fp.write(@data)
222             fp.chmod(@header.mode)
223           end
224         rescue => e
225           $stderr.puts "Couldn't create file #{@header.name}: " + e.message
226         end
227       else
228         $stderr.puts "Couldn't handle entry #{@header.name} (flag=#{@header.linkflag.inspect})."
229       end
231       #File.chown(@header.uid, @header.gid, @header.name)
232       #File.utime(Time.now, @header.mtime, @header.name)
233     end
234   end
236   def list
237     if not @header.name.empty?
238       if @header.symlink?
239         $stderr.puts "s %s -> %s" % [@header.name, @header.linkname]
240       elsif @header.link?
241         $stderr.puts "l %s -> %s" % [@header.name, @header.linkname]
242       elsif @header.dir?
243         $stderr.puts "d %s" % [@header.name]
244       elsif @header.file?
245         $stderr.puts "f %s (%s)" % [@header.name, @header.size]
246       else
247         $stderr.puts "Couldn't handle entry #{@header.name} (flag=#{@header.linkflag.inspect})."
248       end
249     end
250   end
253 class Header
254   attr_reader(:name, :uid, :gid, :size, :mtime, :uname, :gname, :mode, :linkflag, :linkname)
255   attr_writer(:name)
257   def initialize(header)
258     fields      = header.unpack('A100 A8 A8 A8 A12 A12 A8 A1 A100 A8 A32 A32 A8 A8')
259     types       = ['str', 'oct', 'oct', 'oct', 'oct', 'time', 'oct', 'str', 'str', 'str', 'str', 'str', 'oct', 'oct']
261     begin
262       converted = []
263       while field = fields.shift
264         type    = types.shift
266         case type
267         when 'str'      then converted.push(field)
268         when 'oct'      then converted.push(field.oct)
269         when 'time'     then converted.push(Time::at(field.oct))
270         end
271       end
273       @name, @mode, @uid, @gid, @size, @mtime, @chksum, @linkflag, @linkname, @magic, @uname, @gname, @devmajor, @devminor      = converted
275       @name.gsub!(/^\.\//, "")
276       @linkname.gsub!(/^\.\//, "")
278       @raw      = header
279     rescue ArgumentError => e
280       raise "Couldn't determine a real value for a field (#{field})"
281     end
283     raise "Magic header value #{@magic.inspect} is invalid."    if not MAGICS.include?(@magic)
285     @linkflag   = LF_FILE                       if @linkflag == LF_OLDFILE or @linkflag == LF_CONTIG
286     @linkflag   = LF_DIR                        if @linkflag == LF_FILE and @name[-1] == '/'
287     @size       = 0                             if @size < 0
288   end
290   def file?
291     @linkflag == LF_FILE
292   end
294   def dir?
295     @linkflag == LF_DIR
296   end
298   def symlink?
299     @linkflag == LF_SYMLINK
300   end
302   def link?
303     @linkflag == LF_LINK
304   end
306   def longname?
307     @linkflag == GNUTYPE_LONGNAME
308   end
311 class Content
312   @@count       = 0     unless defined?(@@count)
314   def initialize
315     @@count += 1
317     @archive    = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
318     temp        = ENV["TEMP"]
319     temp        = "/tmp"        if temp.nil?
320     temp        = File.expand_path(temp)
321     @tempfile   = "#{temp}/tar2rubyscript.f.#{Process.pid}.#{@@count}"
322   end
324   def list
325     begin
326       File.open(@tempfile, "wb")        {|f| f.write @archive}
327       File.open(@tempfile, "rb")        {|f| Reader.new(f).list}
328     ensure
329       File.delete(@tempfile)
330     end
332     self
333   end
335   def cleanup
336     @archive    = nil
338     self
339   end
342 class TempSpace
343   @@count       = 0     unless defined?(@@count)
345   def initialize
346     @@count += 1
348     @archive    = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
349     @olddir     = Dir.pwd
350     temp        = ENV["TEMP"]
351     temp        = "/tmp"        if temp.nil?
352     temp        = File.expand_path(temp)
353     @tempfile   = "#{temp}/tar2rubyscript.f.#{Process.pid}.#{@@count}"
354     @tempdir    = "#{temp}/tar2rubyscript.d.#{Process.pid}.#{@@count}"
356     @@tempspace = self
358     @newdir     = @tempdir
360     @touchthread =
361     Thread.new do
362       loop do
363         sleep 60*60
365         touch(@tempdir)
366         touch(@tempfile)
367       end
368     end
369   end
371   def extract
372     Dir.rm_rf(@tempdir) if File.exists?(@tempdir)
373     Dir.mkdir(@tempdir)
375     newlocation do
377                 # Create the temp environment.
379       File.open(@tempfile, "wb")        {|f| f.write @archive}
380       File.open(@tempfile, "rb")        {|f| Reader.new(f).extract}
382                 # Eventually look for a subdirectory.
384       entries   = Dir.entries(".")
385       entries.delete(".")
386       entries.delete("..")
388       if entries.length == 1
389         entry   = entries.shift.dup
390         if File.directory?(entry)
391           @newdir       = "#{@tempdir}/#{entry}"
392         end
393       end
394     end
396                 # Remember all File objects.
398     @ioobjects  = []
399     ObjectSpace::each_object(File) do |obj|
400       @ioobjects << obj
401     end
403     at_exit do
404       @touchthread.kill
406                 # Close all File objects, opened in init.rb .
408       ObjectSpace::each_object(File) do |obj|
409         obj.close       if (not obj.closed? and not @ioobjects.include?(obj))
410       end
412                 # Remove the temp environment.
414       Dir.chdir(@olddir)
416       Dir.rm_rf(@tempfile)
417       Dir.rm_rf(@tempdir)
418     end
420     self
421   end
423   def cleanup
424     @archive    = nil
426     self
427   end
429   def touch(entry)
430     entry       = entry.gsub!(/[\/\\]*$/, "")   unless entry.nil?
432     return      unless File.exists?(entry)
434     if File.directory?(entry)
435       pdir      = Dir.pwd
437       begin
438         Dir.chdir(entry)
440         begin
441           Dir.open(".") do |d|
442             d.each do |e|
443               touch(e)  unless [".", ".."].include?(e)
444             end
445           end
446         ensure
447           Dir.chdir(pdir)
448         end
449       rescue Errno::EACCES => error
450         $stderr.puts error
451       end
452     else
453       File.utime(Time.now, File.mtime(entry), entry)
454     end
455   end
457   def oldlocation(file="")
458     if block_given?
459       pdir      = Dir.pwd
461       Dir.chdir(@olddir)
462         res     = yield
463       Dir.chdir(pdir)
464     else
465       res       = File.expand_path(file, @olddir)       if not file.nil?
466     end
468     res
469   end
471   def newlocation(file="")
472     if block_given?
473       pdir      = Dir.pwd
475       Dir.chdir(@newdir)
476         res     = yield
477       Dir.chdir(pdir)
478     else
479       res       = File.expand_path(file, @newdir)       if not file.nil?
480     end
482     res
483   end
485   def templocation(file="")
486     if block_given?
487       pdir      = Dir.pwd
489       Dir.chdir(@tempdir)
490         res     = yield
491       Dir.chdir(pdir)
492     else
493       res       = File.expand_path(file, @tempdir)      if not file.nil?
494     end
496     res
497   end
499   def self.oldlocation(file="")
500     if block_given?
501       @@tempspace.oldlocation { yield }
502     else
503       @@tempspace.oldlocation(file)
504     end
505   end
507   def self.newlocation(file="")
508     if block_given?
509       @@tempspace.newlocation { yield }
510     else
511       @@tempspace.newlocation(file)
512     end
513   end
515   def self.templocation(file="")
516     if block_given?
517       @@tempspace.templocation { yield }
518     else
519       @@tempspace.templocation(file)
520     end
521   end
524 class Extract
525   @@count       = 0     unless defined?(@@count)
527   def initialize
528     @archive    = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
529     temp        = ENV["TEMP"]
530     temp        = "/tmp"        if temp.nil?
531     @tempfile   = "#{temp}/tar2rubyscript.f.#{Process.pid}.#{@@count += 1}"
532   end
534   def extract
535     begin
536       File.open(@tempfile, "wb")        {|f| f.write @archive}
537       File.open(@tempfile, "rb")        {|f| Reader.new(f).extract}
538     ensure
539       File.delete(@tempfile)
540     end
542     self
543   end
545   def cleanup
546     @archive    = nil
548     self
549   end
552 class MakeTar
553   def initialize
554     @archive    = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
555     @tarfile    = File.expand_path(__FILE__).gsub(/\.rbw?$/, "") + ".tar"
556   end
558   def extract
559     File.open(@tarfile, "wb")   {|f| f.write @archive}
561     self
562   end
564   def cleanup
565     @archive    = nil
567     self
568   end
571 def oldlocation(file="")
572   if block_given?
573     TempSpace.oldlocation { yield }
574   else
575     TempSpace.oldlocation(file)
576   end
579 def newlocation(file="")
580   if block_given?
581     TempSpace.newlocation { yield }
582   else
583     TempSpace.newlocation(file)
584   end
587 def templocation(file="")
588   if block_given?
589     TempSpace.templocation { yield }
590   else
591     TempSpace.templocation(file)
592   end
595 if ShowContent
596   Content.new.list.cleanup
597 elsif JustExtract
598   Extract.new.extract.cleanup
599 elsif ToTar
600   MakeTar.new.extract.cleanup
601 else
602   TempSpace.new.extract.cleanup
604   $:.unshift(templocation)
605   $:.unshift(newlocation)
606   $:.push(oldlocation)
608   verbose       = $VERBOSE
609   $VERBOSE      = nil
610   s     = ENV["PATH"].dup
611   if Dir.pwd[1..2] == ":/"      # Hack ???
612     s << ";#{templocation.gsub(/\//, "\\")}"
613     s << ";#{newlocation.gsub(/\//, "\\")}"
614     s << ";#{oldlocation.gsub(/\//, "\\")}"
615   else
616     s << ":#{templocation}"
617     s << ":#{newlocation}"
618     s << ":#{oldlocation}"
619   end
620   ENV["PATH"]   = s
621   $VERBOSE      = verbose
623   TAR2RUBYSCRIPT        = true  unless defined?(TAR2RUBYSCRIPT)
625   newlocation do
626     if __FILE__ == $0
627       $0.replace(File.expand_path("./init.rb"))
629       if File.file?("./init.rb")
630         load File.expand_path("./init.rb")
631       else
632         $stderr.puts "%s doesn't contain an init.rb ." % __FILE__
633       end
634     else
635       if File.file?("./init.rb")
636         load File.expand_path("./init.rb")
637       end
638     end
639   end
643 # cW9uZmlndXJlLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
644 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
645 # AAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDAwMDAw
646 # ADEwNzMyMzY2MTcyADAxMTIxMwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
647 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
648 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdl
649 # awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
650 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
651 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
652 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
653 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
654 # AAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvcW9uZi5yYgAAAAAAAAAAAAAA
655 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
656 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAw
657 # MDE3NTEAMDAwMDAwMzM1MTMAMTA3MzIzNjYxNzIAMDEyNTEwACAwAAAAAAAA
658 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
659 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
660 # AAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
661 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
662 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
663 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
664 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
665 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApyZXF1aXJlICd0
666 # ZXN0JwpyZXF1aXJlICdwa2djb25maWcnCnJlcXVpcmUgJ2Zyb250ZW5kZmFj
667 # dG9yeScKcmVxdWlyZSAnY29uZmlnJwpyZXF1aXJlICdxbWFrZScKcmVxdWly
668 # ZSAnbWFrZWZpbGUnCgptb2R1bGUgUW9uZgogIFZFUlNJT04gPSAiMC42Ii5m
669 # cmVlemUKICBWRVJTSU9OX0RBVEUgPSAiMjAwNy0xMi0wMiIKICAKICBjbGFz
670 # cyBRdFZlcnNpb24KICAgIGF0dHJfcmVhZGVyIDp2ZXJzaW9uLCA6b3AgIyAw
671 # OiBlcXVhbCAxOiBncmVhdGVyIDI6IGdyZWF0ZXIgZXF1YWwKICAgIAogICAg
672 # ZGVmIGluaXRpYWxpemUodmVyc2lvbikKICAgICAgQG9wID0gMgogICAgICBw
673 # YXJzZSh2ZXJzaW9uKQogICAgZW5kCiAgICAKICAgIGRlZiA9PSh2ZXIpCiAg
674 # ICAgIEBvcCA9IDAKICAgICAgcGFyc2UodmVyKQogICAgZW5kCiAgICAKICAg
675 # IGRlZiA+KHZlcikKICAgICAgQG9wID0gMQogICAgICBwYXJzZSh2ZXIpCiAg
676 # ICBlbmQKICAgIAogICAgZGVmID49KHZlcikKICAgICAgQG9wID0gMgogICAg
677 # ICBwYXJzZSh2ZXIpCiAgICBlbmQKICAgIAogICAgZGVmIHRvX3MKICAgICAg
678 # cyA9ICJRdCAiCiAgICAgIGNhc2UgQG9wCiAgICAgICAgd2hlbiAwCiAgICAg
679 # ICAgICBzKz0iPT0iCiAgICAgICAgd2hlbiAxCiAgICAgICAgICBzKz0iPiIK
680 # ICAgICAgICBlbHNlCiAgICAgICAgICBzKz0iPj0iCiAgICAgIGVuZAogICAg
681 # ICBzKz0gIiAiK0B2ZXJzaW9uCiAgICAgIAogICAgICBzCiAgICBlbmQKICAg
682 # IAogICAgcHJpdmF0ZQogICAgZGVmIHBhcnNlKHZlcnNpb24pCiAgICAgIEB2
683 # ZXJzaW9uID0gdmVyc2lvbi50b19zCiAgICAgIHZlciA9IEB2ZXJzaW9uLnRv
684 # X3Muc3BsaXQoJy4nKQogICAgICBzaXplID0gdmVyLnNpemUKICAgICAgICAK
685 # ICAgICAgZmluYWx2ZXIgPSBbXQogICAgICAzLnRpbWVzIHsgfGl8CiAgICAg
686 # ICAgdHAgPSB2ZXJbaV0KICAgICAgICAKICAgICAgICBpZiB0cC5uaWw/CiAg
687 # ICAgICAgICB0cCA9ICIwIgogICAgICAgIGVuZAogICAgICAgIAogICAgICAg
688 # IGZpbmFsdmVyIDw8IHRwCiAgICAgIH0KICAgICAgCiAgICAgIEB2ZXJzaW9u
689 # ID0gZmluYWx2ZXIuam9pbigiLiIpCiAgICBlbmQKICBlbmQKICAKICBjbGFz
690 # cyBTZXR1cAogICAgYXR0cl9yZWFkZXIgOm9wdGlvbnMsIDpwYWNrYWdlcywg
691 # OnRlc3RzLCA6cGtnX2NvbmZpZ3MKICAgIGRlZiBpbml0aWFsaXplCiAgICAg
692 # IEBvcHRpb25zID0gW10KICAgICAgQHBhY2thZ2VzID0gW10KICAgICAgQHRl
693 # c3RzID0gW10KICAgICAgQHBrZ19jb25maWdzID0gW10KICAgICAgQHF0X3Zl
694 # cnNpb24gPSBRdFZlcnNpb24ubmV3KCI0LjAuMCIpCiAgICAgIAogICAgICBh
695 # ZGRfb3B0aW9uKDpuYW1lID0+ICJwcmVmaXgiLCA6dHlwZSA9PiAicGF0aCIs
696 # IDpkZWZhdWx0ID0+ICIvdXNyL2xvY2FsLyIsIDpvcHRpb25hbCA9PiB0cnVl
697 # LCA6ZGVzY3JpcHRpb24gPT4gIlNldHMgdGhlIGluc3RhbGwgcHJlZml4IikK
698 # ICAgIGVuZAogICAgCiAgICBkZWYgYWRkX29wdGlvbihvcHRpb24pCiAgICAg
699 # IGlmIG5vdCBvcHRpb25bOnR5cGVdLm5pbD8KICAgICAgICBvcHRpb25bOnR5
700 # cGVdLmRvd25jYXNlIQogICAgICBlbmQKICAgICAgCiAgICAgIEBvcHRpb25z
701 # IDw8IG9wdGlvbgogICAgZW5kCiAgICAKICAgIGRlZiBmaW5kX3BhY2thZ2Uo
702 # b3B0aW9ucykKICAgICAgQHBhY2thZ2VzIDw8IG9wdGlvbnMKICAgIGVuZAog
703 # ICAgCiAgICBkZWYgYWRkX3Rlc3Qob3B0aW9uKQogICAgICByYWlzZSAiUGxl
704 # YXNlIHNldCBhIHZhbGlkIG5hbWUgdG8gdGhlIHRlc3QiIGlmIG9wdGlvbls6
705 # bmFtZV0udG9fcy5lbXB0eT8KICAgICAgcmFpc2UgIlBsZWFzZSBzZXQgYSB2
706 # YWxpZCBpZCB0byB0aGUgdGVzdCIgaWYgb3B0aW9uWzppZF0udG9fcy5lbXB0
707 # eT8KICAgICAgCiAgICAgIEB0ZXN0cyA8PCBvcHRpb24KICAgIGVuZAogICAg
708 # CiAgICBkZWYgZ2VuZXJhdGVfcGtnY29uZmlnKG9wdGlvbnMpCiAgICAgIHJh
709 # aXNlICJQbGVhc2Ugc2V0IGEgdmFsaWQgbmFtZSIgaWYgb3B0aW9uc1s6cGFj
710 # a2FnZV9uYW1lXS50b19zLmVtcHR5PwogICAgICBAcGtnX2NvbmZpZ3MgPDwg
711 # b3B0aW9ucwogICAgZW5kCiAgICAKICAgIGRlZiBxdAogICAgICBAcXRfdmVy
712 # c2lvbgogICAgZW5kCiAgICAKICBlbmQKICAKICBjbGFzcyBDb25maWd1cmUK
713 # ICAgIGRlZiBpbml0aWFsaXplCiAgICAgIEBhcmd1bWVudHMgPSB7fQogICAg
714 # ICBAY29uZmlnID0gQ29uZmlnLm5ldwogICAgICAKICAgICAgQGxvZ19maWxl
715 # ID0gb2xkbG9jYXRpb24oImNvbmZpZy5sb2ciKQogICAgICAKICAgICAgRmls
716 # ZS5vcGVuKEBsb2dfZmlsZSwgInciKSBkbyB8ZnwKICAgICAgICBmIDw8ICI9
717 # PT09PT09PiBHZW5lcmF0ZWQgYXQgI3tUaW1lLm5vd30gPD09PT09PT1cbiIK
718 # ICAgICAgZW5kCiAgICAgIAogICAgICBxbWFrZV9wYXRocyA9IFtdCiAgICAg
719 # IGlmKCBEZXRlY3RPUy5vcz8gIT0gMSApICMgVW5peAogICAgICAgIElPLnBv
720 # cGVuKCJsb2NhdGUgLXIgL3FtYWtlJCAyPiAje25ld2xvY2F0aW9uKCdsb2Nh
721 # dGVfbG9nJyl9IikgeyB8cHJjfAogICAgICAgICAgcHJlX3BhdGhzID0gcHJj
722 # LnJlYWRsaW5lcwogICAgICAgICAgcHJlX3BhdGhzLmVhY2ggeyB8cW18CiAg
723 # ICAgICAgICAgIHFtLnN0cmlwIQogICAgICAgICAgICBpZiBGaWxlLmV4aXN0
724 # cz8ocW0pCiAgICAgICAgICAgICAgc3RhdCA9IEZpbGUuc3RhdChxbSkKICAg
725 # ICAgICAgICAgICAKICAgICAgICAgICAgICBpZiAobm90IChzdGF0LnN5bWxp
726 # bms/IG9yIHN0YXQuZGlyZWN0b3J5PykpIGFuZCBzdGF0LmV4ZWN1dGFibGU/
727 # CiAgICAgICAgICAgICAgICBxbWFrZV9wYXRocyA8PCBxbQogICAgICAgICAg
728 # ICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAgICAgIH0KICAgICAgICB9
729 # CiAgICAgIGVuZAogICAgICAKICAgICAgQHFtYWtlID0gUU1ha2UubmV3KHFt
730 # YWtlX3BhdGhzLCBAbG9nX2ZpbGUpCiAgICAgIAogICAgICBjZmcgPSBTZXR1
731 # cC5uZXcKICAgICAgY29uZmlndXJlKGNmZykKICAgICAgCiAgICAgIHByaW50
732 # ICI9PiBTZWFyY2hpbmcgZm9yICN7Y2ZnLnF0fS4uLiAiCiAgICAgIGlmIEBx
733 # bWFrZS5maW5kX3FtYWtlKGNmZy5xdC52ZXJzaW9uLCBjZmcucXQub3ApCiAg
734 # ICAgICAgcHV0cyAiKCN7QHFtYWtlLnBhdGh9KSBbWUVTXSIKICAgICAgZWxz
735 # ZQogICAgICAgIHB1dHMgIltOT10iCiAgICAgICAgZXhpdCgtMSkKICAgICAg
736 # ZW5kCiAgICAgIAogICAgICBAb3B0aW9ucyA9IGNmZy5vcHRpb25zCiAgICAg
737 # IEBwYWNrYWdlcyA9IGNmZy5wYWNrYWdlcwogICAgICBAdGVzdHMgPSBjZmcu
738 # dGVzdHMKICAgICAgQHBrZ19jb25maWdzID0gY2ZnLnBrZ19jb25maWdzCiAg
739 # ICAgIEBzdGF0dXNGaWxlID0gRGlyLmdldHdkKyIvdXBkYXRlLW1ha2VmaWxl
740 # IgogICAgZW5kCiAgICAKICAgIGRlZiBmaW5kX3BhY2thZ2VzICMgVE9ETzog
741 # c29wb3J0YXIgaW5mb3JtYWNpb24gcGFyYSBlbCBzaXN0ZW1hIG9wZXJhdGl2
742 # byBzb2JyZSBjb21vIGluc3RhbGFyIGVsIHBhcXVldGUKICAgICAgQHBhY2th
743 # Z2VzLmVhY2ggeyB8cGFja2FnZXwKICAgICAgICBwcmludCAiPT4gU2VhcmNo
744 # aW5nIGZvciBwYWNrYWdlOiAje3BhY2thZ2VbOm5hbWVdfS4uLiAgIgogICAg
745 # ICAgIHBrZ2NvbmZpZyA9IFBrZ0NvbmZpZy5uZXcocGFja2FnZVs6bmFtZV0p
746 # CiAgICAgICAgcGtnY29uZmlnLmFkZF9zZWFyY2hfcGF0aCgiI3tAYXJndW1l
747 # bnRzWyJwcmVmaXgiXX0vbGliL3BrZ2NvbmZpZyIpCiAgICAgICAgYmVnaW4K
748 # ICAgICAgICAgIHNldHVwX3BrZ2NvbmZpZyhwa2djb25maWcsIEBhcmd1bWVu
749 # dHMpCiAgICAgICAgcmVzY3VlIE5vTWV0aG9kRXJyb3IgPT4gZQogICAgICAg
750 # ICAgaWYgbm90IGUubWVzc2FnZSA9fiAvc2V0dXBfcGtnY29uZmlnLwogICAg
751 # ICAgICAgICBwdXRzICJFcnJvcjogI3tlLm1lc3NhZ2V9IgogICAgICAgICAg
752 # ICBwdXRzIGUuYmFja3RyYWNlCiAgICAgICAgICAgIGV4aXQoLTEpCiAgICAg
753 # ICAgICBlbmQKICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBpZiBub3Qg
754 # cGtnY29uZmlnLmZpbmQocGFja2FnZVs6bmFtZV0pCiAgICAgICAgICBwdXRz
755 # ICJbTk9dIgogICAgICAgICAgCiAgICAgICAgICBvcHRpb25hbCA9IHBhY2th
756 # Z2VbOm9wdGlvbmFsXS5uaWw/ID8gZmFsc2UgOiBwYWNrYWdlWzpvcHRpb25h
757 # bF0KICAgICAgICAgIAogICAgICAgICAgaWYgbm90IG9wdGlvbmFsCiAgICAg
758 # ICAgICAgIHB1dHMgIj0+IFRoZSBwYWNrYWdlICcje3BhY2thZ2VbOm5hbWVd
759 # fScgaXMgcmVxdWlyZWQuIgogICAgICAgICAgICBleGl0KC0xKQogICAgICAg
760 # ICAgZW5kCiAgICAgICAgZWxzZQogICAgICAgICAgcHV0cyAiW1lFU10iCiAg
761 # ICAgICAgICBnbG9iYWwgPSBwYWNrYWdlWzpnbG9iYWxdLm5pbD8gPyBmYWxz
762 # ZSA6IHBhY2thZ2VbOmdsb2JhbF0KICAgICAgICAgIAogICAgICAgICAgcW9u
763 # ZnBrZyA9IEBjb25maWcKICAgICAgICAgIAogICAgICAgICAgaWYgbm90IGds
764 # b2JhbAogICAgICAgICAgICBxb25mcGtnID0gUGFja2FnZS5uZXcocGFja2Fn
765 # ZVs6bmFtZV0pCiAgICAgICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAg
766 # aWYgJERFQlVHCiAgICAgICAgICAgIHB1dHMgIj0+IFBhY2thZ2UgaXMgZ2xv
767 # YmFsPyAje2dsb2JhbH0iCiAgICAgICAgICBlbmQKICAgICAgICAgIAojICAg
768 # ICAgICAgICBwa2djb25maWcucmVxdWlyZXMuZWFjaCB7IHxyZXF8CiMgICAg
769 # ICAgICAgICAgQGNvbmZpZy5hZGRfcW9uZl9wYWNrYWdlKHJlcSkKIyAgICAg
770 # ICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBxb25mcGtnLmFkZF9saWIo
771 # cGtnY29uZmlnLmxpYnMpCiAgICAgICAgICAKICAgICAgICAgIHBrZ2NvbmZp
772 # Zy5pbmNsdWRlX3BhdGguZWFjaCB7IHxpbmNwYXRofAogICAgICAgICAgICBp
773 # ZiAkREVCVUcKICAgICAgICAgICAgICBwdXRzICI9PiBBZGRpbmcgaW5jbHVk
774 # ZSBwYXRoOiAje2luY3BhdGh9IgogICAgICAgICAgICBlbmQKICAgICAgICAg
775 # ICAgcW9uZnBrZy5hZGRfaW5jbHVkZV9wYXRoKGluY3BhdGgpCiAgICAgICAg
776 # ICB9CiAgICAgICAgICAKICAgICAgICAgIHBrZ2NvbmZpZy5kZWZpbmVzLmVh
777 # Y2ggeyB8ZGVmaW5lfAogICAgICAgICAgICBxb25mcGtnLmFkZF9kZWZpbmUo
778 # ZGVmaW5lKQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBpZiBu
779 # b3QgZ2xvYmFsCiAgICAgICAgICAgIEBjb25maWcuYWRkX3FvbmZfcGFja2Fn
780 # ZShxb25mcGtnKQogICAgICAgICAgZWxzZQogICAgICAgICAgICBAY29uZmln
781 # LmFkZF9xb25mX2ZlYXR1cmUocGFja2FnZVs6bmFtZV0pCiAgICAgICAgICBl
782 # bmQKICAgICAgICBlbmQKICAgICAgfQogICAgICBpZiAkREVCVUcKICAgICAg
783 # ICBwdXRzICJJTkNMVURFUEFUSD0je0Bjb25maWcuaW5jbHVkZV9wYXRoLmpv
784 # aW4oIiAiKX0iCiAgICAgIGVuZAogICAgZW5kCiAgICAKICAgIGRlZiBydW5f
785 # dGVzdHMKICAgICAgQHRlc3RzLmVhY2ggeyB8dGVzdG9wdHwKICAgICAgICBw
786 # cmludCAiPT4gVGVzdGluZyAje3Rlc3RvcHRbOm5hbWVdfS4uLiAgIgogICAg
787 # ICAgIAogICAgICAgIHRzdCA9IFRlc3QubmV3KHRlc3RvcHQsIEBjb25maWcs
788 # IEBsb2dfZmlsZSkKICAgICAgICAKICAgICAgICBiZWdpbgogICAgICAgICAg
789 # c2V0dXBfdGVzdCh0ZXN0b3B0WzppZF0sIHRzdCwgQGFyZ3VtZW50cykKICAg
790 # ICAgICByZXNjdWUgTm9NZXRob2RFcnJvciA9PiBlCiAgICAgICAgICBpZiBu
791 # b3QgZS5tZXNzYWdlID1+IC9zZXR1cF90ZXN0LwogICAgICAgICAgICBwdXRz
792 # ICJFcnJvcjogI3tlfSIKICAgICAgICAgICAgcHV0cyBlLmJhY2t0cmFjZQog
793 # ICAgICAgICAgICBleGl0KC0xKQogICAgICAgICAgZW5kCiAgICAgICAgZW5k
794 # CiAgICAgICAgCiAgICAgICAgb3B0aW9uYWwgPSB0ZXN0b3B0WzpvcHRpb25h
795 # bF0ubmlsPyA/IGZhbHNlIDogdGVzdG9wdFs6b3B0aW9uYWxdCiAgICAgICAg
796 # aWYgdHN0LnJ1bihAcW1ha2UpCiAgICAgICAgICBnbG9iYWwgPSB0ZXN0b3B0
797 # WzpnbG9iYWxdLm5pbD8gPyBmYWxzZSA6IHRlc3RvcHRbOmdsb2JhbF0KICAg
798 # ICAgICAgIAogICAgICAgICAgaWYgJERFQlVHCiAgICAgICAgICAgIHB1dHMg
799 # Ij0+IFRlc3QgaXMgZ2xvYmFsOiAje2dsb2JhbH0iCiAgICAgICAgICBlbmQK
800 # ICAgICAgICAgIAogICAgICAgICAgcW9uZnBrZyA9IEBjb25maWcKICAgICAg
801 # ICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAgICAgICAgICBxb25m
802 # cGtnID0gUGFja2FnZS5uZXcodHN0LmlkKQogICAgICAgICAgZW5kCiAgICAg
803 # ICAgICAKICAgICAgICAgIHRzdC5pbmNsdWRlX3BhdGguZWFjaCB7IHxpbmNw
804 # YXRofAogICAgICAgICAgICBpZiAkREVCVUcKICAgICAgICAgICAgICBwdXRz
805 # ICI9PiBBZGRpbmcgaW5jbHVkZSBwYXRoOiAje2luY3BhdGh9IgogICAgICAg
806 # ICAgICBlbmQKICAgICAgICAgICAgcW9uZnBrZy5hZGRfaW5jbHVkZV9wYXRo
807 # KGluY3BhdGgpCiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIHRz
808 # dC5kZWZpbmVzLmVhY2ggeyB8ZGVmaW5lfAogICAgICAgICAgICBxb25mcGtn
809 # LmFkZF9kZWZpbmUoZGVmaW5lKQogICAgICAgICAgfQogICAgICAgICAgCiAg
810 # ICAgICAgICBxb25mcGtnLmFkZF9saWIodHN0LmxpYnMudG9fcykKICAgICAg
811 # ICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAgICAgICAgICBAY29u
812 # ZmlnLmFkZF9xb25mX3BhY2thZ2UocW9uZnBrZykKICAgICAgICAgIGVsc2UK
813 # ICAgICAgICAgICAgQGNvbmZpZy5hZGRfcW9uZl9mZWF0dXJlKHRzdC5pZCkK
814 # ICAgICAgICAgIGVuZAogICAgICAgICAgcHV0cyAiW09LXSIKICAgICAgICBl
815 # bHNlCiAgICAgICAgICBwdXRzICJbRkFJTEVEXSIKICAgICAgICAgIAogICAg
816 # ICAgICAgaWYgbm90IG9wdGlvbmFsCiAgICAgICAgICAgIHB1dHMgIj0+ICN7
817 # dGVzdG9wdFs6bmFtZV19IGlzIHJlcXVpcmVkIgogICAgICAgICAgICBleGl0
818 # KC0xKQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgIH0KICAgIGVu
819 # ZAogICAgCiAgICBkZWYgZ2VuZXJhdGVfbWFrZWZpbGVzCiAgICAgIHB1dHMg
820 # Ij0+IENyZWF0aW5nIG1ha2VmaWxlcy4uLiIKICAgICAgQHFtYWtlLnJ1bigi
821 # IiwgdHJ1ZSkKICAgICAgCiAgICAgIHB1dHMgIj0+IFVwZGF0aW5nIG1ha2Vm
822 # aWxlcy4uLiIKICAgICAgCiAgICAgIEBtYWtlZmlsZXMgPSBNYWtlZmlsZTo6
823 # ZmluZF9tYWtlZmlsZXMoRGlyLmdldHdkKQogICAgICBAbWFrZWZpbGVzLmVh
824 # Y2ggeyB8bWFrZWZpbGV8CiAgICAgICAgICBNYWtlZmlsZTo6b3ZlcnJpZGUo
825 # bWFrZWZpbGUsIEZpbGUuZXhwYW5kX3BhdGgoQGFyZ3VtZW50c1sicHJlZml4
826 # Il0udG9fcyksIEBzdGF0dXNGaWxlKQogICAgICB9CiAgICAgIAogICAgICBG
827 # aWxlLm9wZW4oQHN0YXR1c0ZpbGUsICJ3IiApIHsgfGZpbGV8CiAgICAgICAg
828 # ZmlsZSA8PCAlQAoje0ZpbGUucmVhZChuZXdsb2NhdGlvbigibWFrZWZpbGUu
829 # cmIiKSl9ClFvbmY6Ok1ha2VmaWxlOjpvdmVycmlkZSggQVJHVlswXS50b19z
830 # LCAiI3tAYXJndW1lbnRzWyJwcmVmaXgiXX0iLCAiI3tAc3RhdHVzRmlsZX0i
831 # ICkKQAoKaWYgRGV0ZWN0T1Mub3M/ID09IDEgI3dpbjMyCiAgICAgICAgZmls
832 # ZSA8PCAlQApRb25mOjpNYWtlZmlsZTo6b3ZlcnJpZGUoIEFSR1ZbMF0udG9f
833 # cysiLnJlbGVhc2UiLCAiI3tAYXJndW1lbnRzWyJwcmVmaXgiXX0iLCAiI3tA
834 # c3RhdHVzRmlsZX0iICkKUW9uZjo6TWFrZWZpbGU6Om92ZXJyaWRlKCBBUkdW
835 # WzBdLnRvX3MrIi5kZWJ1ZyIsICIje0Bhcmd1bWVudHNbInByZWZpeCJdfSIs
836 # ICIje0BzdGF0dXNGaWxlfSIgKQpACmVuZAogICAgICB9CiAgICBlbmQKICAg
837 # IAogICAgZGVmIGdldF9hcmdzKGFyZ3YpCiAgICAgIG9wdGMgPSAwCiAgICAg
838 # IGxhc3Rfb3B0ID0gIiIKICAgICAgCiAgICAgIEBvcHRpb25zLmVhY2ggeyB8
839 # b3B0aW9ufAogICAgICAgIGdpdmVuX29wdGlvbiA9IG5pbAogICAgICAgIAog
840 # ICAgICAgIGFyZ3YuZWFjaCB7IHxhcmd8CiAgICAgICAgICBhcmcuc3RyaXAh
841 # CiAgICAgICAgICBnaXZlbiA9IGZhbHNlCiAgICAgICAgICAKICAgICAgICAg
842 # IGNhc2Ugb3B0aW9uWzp0eXBlXS50b19zCiAgICAgICAgICAgIHdoZW4gInN0
843 # cmluZyIKICAgICAgICAgICAgICBpZiBhcmcgPX4gLy0tI3tvcHRpb25bOm5h
844 # bWVdfT0oW1xXXHddKikvCiAgICAgICAgICAgICAgICBnaXZlbiA9IHRydWUK
845 # ICAgICAgICAgICAgICAgIGdpdmVuX29wdGlvbiA9ICQxCiAgICAgICAgICAg
846 # ICAgZW5kCiAgICAgICAgICAgIHdoZW4gInBhdGgiCiAgICAgICAgICAgICAg
847 # aWYgYXJnID1+IC8tLSN7b3B0aW9uWzpuYW1lXX09KFtcV1x3XSopLwogICAg
848 # ICAgICAgICAgICAgZ2l2ZW4gPSB0cnVlCiAgICAgICAgICAgICAgICBnaXZl
849 # bl9vcHRpb24gPSBGaWxlLmV4cGFuZF9wYXRoKCQxKQogICAgICAgICAgICAg
850 # IGVuZAogICAgICAgICAgICB3aGVuICJib29sIgogICAgICAgICAgICAgIGlm
851 # IGFyZyA9fiAvLS11c2UtI3tvcHRpb25bOm5hbWVdfT0oXHcrKS8KICAgICAg
852 # ICAgICAgICAgIGdpdmVuID0gdHJ1ZQogICAgICAgICAgICAgICAgZ2l2ZW5f
853 # b3B0aW9uID0gJDEKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgZWxz
854 # ZQogICAgICAgICAgICAgIGlmIGFyZyA9fiAvLS0je29wdGlvbls6bmFtZV19
855 # LwogICAgICAgICAgICAgICAgZ2l2ZW5fb3B0aW9uID0gInllcyIKICAgICAg
856 # ICAgICAgICAgIGdpdmVuID0gdHJ1ZQogICAgICAgICAgICAgIGVuZAogICAg
857 # ICAgICAgZW5kCiAgICAgICAgICAKICAgICAgICAgIGlmIGdpdmVuCiAgICAg
858 # ICAgICAgIGFyZ3YuZGVsZXRlKGFyZykKICAgICAgICAgIGVuZAogICAgICAg
859 # IH0KICAgICAgICAKICAgICAgICBvcHRpb25bOnZhbHVlXSA9IGdpdmVuX29w
860 # dGlvbgogICAgICB9CiAgICAgIAogICAgICBmcm9udGVuZF9rZXkgPSAidGsi
861 # CiAgICAgIGFyZ3YuZWFjaCB7IHx1bmtub3dufAogICAgICAgIHVua25vd24u
862 # c3RyaXAhCiAgICAgICAgaWYgdW5rbm93biA9fiAvLS13aXRoLWNvbmZpZy1m
863 # cm9udGVuZD0oXHcrKS8KICAgICAgICAgIGZyb250ZW5kX2tleSA9ICQxCiAg
864 # ICAgICAgZWxzaWYgdW5rbm93biA9fiAvLS1oZWxwLwogICAgICAgICAgdXNh
865 # Z2UKICAgICAgICAgIGV4aXQoMCkKICAgICAgICBlbHNpZiB1bmtub3duID1+
866 # IC8tLXZlcnNpb24vCiAgICAgICAgICBwdXRzICJRT25mICN7VkVSU0lPTn0g
867 # WyN7VkVSU0lPTl9EQVRFfV0iCiAgICAgICAgICBleGl0KDApCiAgICAgICAg
868 # ZWxzaWYgdW5rbm93biA9fiAvLS1kZWJ1Zy8KICAgICAgICAgIEBjb25maWcu
869 # d2l0aF9kZWJ1ZwogICAgICAgIGVuZAogICAgICB9CiAgICAgIAogICAgICBm
870 # cm9udGVuZCA9IEZyb250ZW5kRmFjdG9yeS5jcmVhdGUoZnJvbnRlbmRfa2V5
871 # KQogICAgICBpZiBmcm9udGVuZC5uaWw/CiAgICAgICAgcHV0cyAiPT4gSW52
872 # YWxpZCBmcm9udGVuZCIKICAgICAgICB1c2FnZSgpCiAgICAgICAgZXhpdCgt
873 # MSkKICAgICAgZWxzaWYgbm90IGZyb250ZW5kLnBhcnNlKEBvcHRpb25zKQog
874 # ICAgICAgIHVzYWdlKCkKICAgICAgICBleGl0KC0xKQogICAgICBlbmQKICAg
875 # ICAgCiAgICAgIEBvcHRpb25zLmVhY2ggeyB8b3B0aW9ufAogICAgICAgIHZh
876 # bHVlID0gb3B0aW9uWzp2YWx1ZV0ubmlsPyA/IG9wdGlvbls6ZGVmYXVsdF0u
877 # dG9fcyA6IG9wdGlvbls6dmFsdWVdCiAgICAgICAgQGFyZ3VtZW50c1tvcHRp
878 # b25bOm5hbWVdXSA9IHZhbHVlCiAgICAgIH0KICAgICAgCiAgICBlbmQKICAg
879 # IAogICAgZGVmIHNhdmUocGF0aCkKICAgICAgYmVnaW4KICAgICAgICBzZXR1
880 # cF9jb25maWcoQGNvbmZpZywgQGFyZ3VtZW50cykKICAgICAgcmVzY3VlIE5v
881 # TWV0aG9kRXJyb3IgPT4gZQogICAgICAgIGlmIG5vdCBlLm1lc3NhZ2UgPX4g
882 # L3NldHVwX2NvbmZpZy8KICAgICAgICAgIHB1dHMgIkVycm9yOiAje2V9Igog
883 # ICAgICAgICAgcHV0cyBlLmJhY2t0cmFjZQogICAgICAgICAgZXhpdCgtMSkK
884 # ICAgICAgICBlbmQKICAgICAgZW5kCiAgICAgIAogICAgICBAY29uZmlnLmFk
885 # ZF9kZWZpbmUoJUBfX1BSRUZJWF9fPSdcXFxcIicje0ZpbGUuZXhwYW5kX3Bh
886 # dGggQGFyZ3VtZW50c1sicHJlZml4Il19J1xcXFwiJ0ApCiAgICAgIAogICAg
887 # ICBzYXZlX3BrZ2NvbmZpZwogICAgICBAY29uZmlnLnNhdmUocGF0aCkKICAg
888 # ICAgCiAgICAgIGxhdW5jaGVyID0gbmlsCiAgICAgIGlmIERldGVjdE9TLm9z
889 # PyA9PSAxICMgV2luZG93cwogICAgICAgIGxhdW5jaGVyID0gRmlsZS5uZXco
890 # ImxhdW5jaGVyLmJhdCIsICJ3IikKICAgICAgICAKICAgICAgICBsYXVuY2hl
891 # ciA8PCAic2V0IFBBVEg9I3tAY29uZmlnLmJ1aWxkX2Rpci5nc3ViKCcvJywg
892 # J1xcJyl9XFxiaW47I3tAY29uZmlnLmJ1aWxkX2Rpci5nc3ViKCcvJywgJ1xc
893 # Jyl9XFxsaWI7I3tAY29uZmlnLmxpYnJhcnlfcGF0aC5qb2luKCI7IikuZ3N1
894 # YignLycsICdcXCcpfTslUEFUSCVcbiIKICAgICAgICBsYXVuY2hlciA8PCAi
895 # JTFcbiIKICAgICAgZWxzZQogICAgICAgIGxhdW5jaGVyID0gRmlsZS5uZXco
896 # ImxhdW5jaGVyLnNoIiwidyIpCiAgICAgICAgbGF1bmNoZXIgPDwgIiMhL2Jp
897 # bi9iYXNoXG4iCiAgICAgICAgbGF1bmNoZXIgPDwgImV4cG9ydCBQQVRIPSN7
898 # QGNvbmZpZy5idWlsZF9kaXJ9L2Jpbjoke1BBVEh9XG4iCiAgICAgICAgbGF1
899 # bmNoZXIgPDwgImV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9I3tAY29uZmlnLmJ1
900 # aWxkX2Rpcn0vYmluOiN7QGNvbmZpZy5idWlsZF9kaXJ9L2xpYjoje0Bjb25m
901 # aWcubGlicmFyeV9wYXRoLmpvaW4oIjoiKX06JHtMRF9MSUJSQVJZX1BBVEh9
902 # OiR7RFlfTERfTElCUkFSWV9QQVRIfVxuIgogICAgICAgIGxhdW5jaGVyIDw8
903 # ICJleHBvcnQgRFlMRF9MSUJSQVJZX1BBVEg9JHtMRF9MSUJSQVJZX1BBVEh9
904 # XG4iCiAgICAgICAgbGF1bmNoZXIgPDwgIkFQUD0kMVxuIgogICAgICAgIGxh
905 # dW5jaGVyIDw8ICJzaGlmdFxuIgogICAgICAgIGxhdW5jaGVyIDw8ICJlY2hv
906 # IExhdW5jaGluZzogJEFQUFxuIgogICAgICAgIGxhdW5jaGVyIDw8ICIkQVBQ
907 # ICQqXG4iCiAgICAgIGVuZAogICAgICAKICAgICAgRmlsZS5jaG1vZCgwNzU1
908 # LCBsYXVuY2hlci5wYXRoKQogICAgICAKICAgIGVuZAogICAgCiAgICBkZWYg
909 # c2F2ZV9wa2djb25maWcKICAgICAgaWYgbm90IEBwa2dfY29uZmlncy5lbXB0
910 # eT8KICAgICAgICBAcGtnX2NvbmZpZ3MuZWFjaCB7IHxwa2dfY29uZmlnfAog
911 # ICAgICAgICAgRmlsZS5vcGVuKCBwa2dfY29uZmlnWzpwYWNrYWdlX25hbWVd
912 # KyIucGMiLCAidyIpIGRvIHxmaWxlfAogICAgICAgICAgICBmaWxlIDw8ICJw
913 # cmVmaXg9IiA8PCBAYXJndW1lbnRzWyJwcmVmaXgiXSA8PCAiXG4iCiAgICAg
914 # ICAgICAgIGZpbGUgPDwgImV4ZWNfcHJlZml4PSR7cHJlZml4fSIgPDwgIlxu
915 # IgogICAgICAgICAgICBmaWxlIDw8ICJsaWJkaXI9I3twa2dfY29uZmlnWzps
916 # aWJkaXJdLm5pbD8gPyAiJHtwcmVmaXh9L2xpYiIgOiBwa2dfY29uZmlnWzps
917 # aWJkaXJdIH0iIDw8ICJcbiIKICAgICAgICAgICAgZmlsZSA8PCAiaW5jbHVk
918 # ZWRpcj0je3BrZ19jb25maWdbOmluY2x1ZGVkaXJdLm5pbD8gPyAiJHtwcmVm
919 # aXh9L2luY2x1ZGUiIDogcGtnX2NvbmZpZ1s6aW5jbHVkZWRpcl0gfSIgPDwg
920 # IlxuXG5cbiIKICAgICAgICAgICAgCiAgICAgICAgICAgIGZpbGUgPDwgIk5h
921 # bWU6ICIgPDwgcGtnX2NvbmZpZ1s6cGFja2FnZV9uYW1lXSA8PCAiXG4iCiAg
922 # ICAgICAgICAgIGZpbGUgPDwgIkRlc2NyaXB0aW9uOiAiIDw8IHBrZ19jb25m
923 # aWdbOmRlc2NyaXB0aW9uXSA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwg
924 # IlJlcXVpcmVzOiAiIDw8IHBrZ19jb25maWdbOnJlcXVpcmVzXS5qb2luKCIg
925 # IikgPDwgIlxuIiBpZiBwa2dfY29uZmlnWzpyZXF1aXJlc10uY2xhc3MgPT0g
926 # QXJyYXkKICAgICAgICAgICAgZmlsZSA8PCAiVmVyc2lvbjogIiA8PCBwa2df
927 # Y29uZmlnWzp2ZXJzaW9uXSA8PCAiXG4iCiAgICAgICAgICAgIAogICAgICAg
928 # ICAgICBmaWxlIDw8ICJMaWJzOiAiIDw8IHBrZ19jb25maWdbOmxpYnNdIDw8
929 # ICJcbiIKICAgICAgICAgICAgZmlsZSA8PCAiQ2ZsYWdzOiAiIDw8IHBrZ19j
930 # b25maWdbOmNmbGFnc10gPDwgIlxuIgogICAgICAgICAgZW5kCiAgICAgICAg
931 # fQogICAgICBlbmQKICAgIGVuZAogICAgCiAgICAKICAgIGRlZiBsb2codHh0
932 # KQogICAgICBGaWxlLm9wZW4oQGxvZ19maWxlLCAiYSIpIGRvIHxmfAogICAg
933 # ICAgIGYgPDwgdHh0IDw8ICJcbiIKICAgICAgZW5kCiAgICBlbmQKICAgIAog
934 # ICAgZGVmIHVzYWdlCiAgICAgIHB1dHMgIk9wdGlvbnM6IgogICAgICBAb3B0
935 # aW9ucy5lYWNoIHsgfG9wdGlvbnwKICAgICAgICBjYXNlIG9wdGlvbls6dHlw
936 # ZV0KICAgICAgICAgIHdoZW4gInN0cmluZyIKICAgICAgICAgICAgcHJpbnQg
937 # IlxuICAtLSN7b3B0aW9uWzpuYW1lXX09W3ZhbHVlXSIKICAgICAgICAgICAg
938 # cHJpbnQgIlx0XHQuLi4uLi4je29wdGlvbls6ZGVzY3JpcHRpb25dfSAiCiAg
939 # ICAgICAgICAgIAogICAgICAgICAgICBpZiBub3Qgb3B0aW9uWzpkZWZhdWx0
940 # XS5uaWw/CiAgICAgICAgICAgICAgcHJpbnQgIltkZWZhdWx0PSN7b3B0aW9u
941 # WzpkZWZhdWx0XX1dIgogICAgICAgICAgICBlbmQKICAgICAgICAgIHdoZW4g
942 # InBhdGgiCiAgICAgICAgICAgIHByaW50ICJcbiAgLS0je29wdGlvbls6bmFt
943 # ZV19PVsvYS9wYXRoXSIKICAgICAgICAgICAgcHJpbnQgIlx0XHQuLi4uLi4j
944 # e29wdGlvbls6ZGVzY3JpcHRpb25dfSAiCiAgICAgICAgICAgIAogICAgICAg
945 # ICAgICBpZiBub3Qgb3B0aW9uWzpkZWZhdWx0XS5uaWw/CiAgICAgICAgICAg
946 # ICAgcHJpbnQgIltkZWZhdWx0PSN7b3B0aW9uWzpkZWZhdWx0XX1dIgogICAg
947 # ICAgICAgICBlbmQKICAgICAgICAgIHdoZW4gImJvb2wiCiAgICAgICAgICAg
948 # IHByaW50ICJcbiAgLS11c2UtI3tvcHRpb25bOm5hbWVdfT1beWVzfG5vXSIK
949 # ICAgICAgICAgICAgaWYgbm90IG9wdGlvbls6ZGVmYXVsdF0ubmlsPwogICAg
950 # ICAgICAgICAgIGRlZmF1bHQgPSBvcHRpb25bOmRlZmF1bHRdCiAgICAgICAg
951 # ICAgICAgaWYgZGVmYXVsdCA9PSB0cnVlIG9yIGRlZmF1bHQgPT0gInllcyIg
952 # b3IgZGVmYXVsdCA9PSAidHJ1ZSIKICAgICAgICAgICAgICAgIGRlZmF1bHQg
953 # PSAieWVzIgogICAgICAgICAgICAgIGVsc2lmIGRlZmF1bHQgPT0gZmFsc2Ug
954 # b3IgZGVmYXVsdCA9PSAibm8iIG9yIGRlZmF1bHQgPT0gImZhbHNlIgogICAg
955 # ICAgICAgICAgICAgZGVmYXVsdCA9ICJubyIKICAgICAgICAgICAgICBlbHNl
956 # CiAgICAgICAgICAgICAgICBkZWZhdWx0ID0gIm5vIgogICAgICAgICAgICAg
957 # IGVuZAogICAgICAgICAgICAgIAogICAgICAgICAgICAgIHByaW50ICJcdFx0
958 # Li4uLi4uI3tvcHRpb25bOmRlc2NyaXB0aW9uXX0gW2RlZmF1bHQ9I3tkZWZh
959 # dWx0fV0iCiAgICAgICAgICAgIGVuZAogICAgICAgICAgZWxzZQogICAgICAg
960 # ICAgICBwcmludCAiXG4gIC0tI3tvcHRpb25bOm5hbWVdfSIKICAgICAgICAg
961 # ICAgcHJpbnQgIlx0XHQuLi4uLi4je29wdGlvbls6ZGVzY3JpcHRpb25dfSIK
962 # ICAgICAgICBlbmQKICAgICAgfQogICAgICAKICAgICAgcHJpbnQgIlxuICAt
963 # LXdpdGgtY29uZmlnLWZyb250ZW5kPVtwbGFpbnx0a10iCiAgICAgIHByaW50
964 # ICJcdFx0Li4uLi4uU2V0cyB0aGUgZnJvbnRlbmQgdG8gY29uZmlndXJlIHRo
965 # ZSBhcHBsaWNhdGlvbiBbZGVmYXVsdD10a10iCiAgICAgIHByaW50ICJcbiAg
966 # LS1kZWJ1ZyIKICAgICAgcHJpbnQgIlx0XHQuLi4uLi5Db21waWxlIHdpdGgg
967 # ZGVidWcgc3VwcG9ydCBbZGVmYXVsdD1ub10iCiAgICAgIHByaW50ICJcbiAg
968 # LS1oZWxwIgogICAgICBwcmludCAiXG4gIC0tdmVyc2lvbiIKICAgICAgcHJp
969 # bnQgIlx0XHQuLi4uLi5TaG93cyB0aGlzIG1lc3NhZ2UiCiAgICAgIAogICAg
970 # ICBwdXRzICIiCiAgICBlbmQKICBlbmQKZW5kCgpiZWdpbgogIGxvYWQgInNl
971 # dHVwLnJiIgpyZXNjdWUgTG9hZEVycm9yCiAgRmlsZS5vcGVuKG9sZGxvY2F0
972 # aW9uKCJzZXR1cC5yYiIpLCAidyIpIGRvIHxmaWxlfAogICAgZmlsZSA8PCBG
973 # aWxlLnJlYWQoInNldHVwX3JiLnRwbCIpIDw8ICJcbiIKICBlbmQKICBwdXRz
974 # ICI9PiBBIHRlbXBsYXRlIGZpbGUgd2FzIGdlbmVyYXRlZCBpbiBzZXR1cC5y
975 # YiwgcGxlYXNlIGVkaXQgaXQgYW5kIHJlcnVuIHRoZSBjb25maWd1cmUgc2Ny
976 # aXB0LiIKICBleGl0KC0xKQplbmQKCmlmIF9fRklMRV9fID09ICQwCiAgcW9u
977 # ZiA9IFFvbmY6OkNvbmZpZ3VyZS5uZXcKICBxb25mLmdldF9hcmdzKEFSR1Yp
978 # CiAgcW9uZi5maW5kX3BhY2thZ2VzCiAgcW9uZi5ydW5fdGVzdHMKICAKICBx
979 # b25mLnNhdmUoImNvbmZpZy5wcmkiKQogIAogIHFvbmYuZ2VuZXJhdGVfbWFr
980 # ZWZpbGVzCmVuZAoKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
981 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
982 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
983 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
984 # AAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL2RldGVjdG9zLnJiAAAAAAAAAAAA
985 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
986 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAx
987 # NzUxADAwMDAwMDAxNzI0ADEwNjczNzQwMzAzADAxMzM1MgAgMAAAAAAAAAAA
988 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
989 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
990 # AAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
991 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
992 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
993 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
994 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
995 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcmVxdWlyZSAncmJj
996 # b25maWcnCgptb2R1bGUgUW9uZgoKY2xhc3MgRGV0ZWN0T1MKCU9TID0gewoJ
997 # CTAgPT4gIlVua25vd24iLAoJCTEgPT4gIldpbmRvd3MiLAoJCTIgPT4gIlVu
998 # aXgiLAoJCTMgPT4gIkxpbnV4IiwKCQkzMSA9PiAiRGViaWFuIiwKCQkzMTEg
999 # PT4gIlVidW50dSIsCgkJMzIgPT4gIkdlbnRvbyIsCgkJNCA9PiAiTWFjIE9T
1000 # IFgiCgl9CgkKCWRlZiBzZWxmLm9zPwoJCUBvcyA9IDAKCQkKCQlpZiA6OkNv
1001 # bmZpZzo6Q09ORklHWyJidWlsZF9vcyJdID09ICJtc3dpbjMyIgoJCQlyZXR1
1002 # cm4gMQoJCWVsc2UKCQkJQG9zID0gMgoJCQkKCQkJbGludXggPSBEZXRlY3RP
1003 # Uy5maW5kX2xpbnV4CgkJCUBvcyA9IGxpbnV4IGlmIGxpbnV4ID4gMAoJCWVu
1004 # ZAoJCQoJCQoJCXJldHVybiBAb3MKCWVuZAoJCglkZWYgc2VsZi5maW5kX2xp
1005 # bnV4CgkJY3dkID0gRGlyLmdldHdkCgkJRGlyLmNoZGlyKCIvZXRjLyIpCgkJ
1006 # CgkJRGlyWyIqey0sX317dmVyc2lvbixyZWxlYXNlfSJdLmVhY2ggeyB8cGF0
1007 # aHwKCQkJaWYgcGF0aC5kb3duY2FzZSA9fiAvXihcdyopKC18XykodmVyc2lv
1008 # bnxyZWxlYXNlKS8KCQkJCURldGVjdE9TOjpPUy5lYWNoIHsgfGlkLCBvc3wK
1009 # CQkJCQlpZiBvcy5kb3duY2FzZSA9PSAkMQoJCQkJCQlEaXIuY2hkaXIoY3dk
1010 # KQoJCQkJCQkKCQkJCQkJaWYgJDEgPT0gImRlYmlhbiIKCQkJCQkJCWlmIGBh
1011 # cHQtY2FjaGUgLXZgLmluY2x1ZGU/KCJ1YnVudHUiKQoJCQkJCQkJCXJldHVy
1012 # biAzMTEKCQkJCQkJCWVuZAoJCQkJCQllbmQKCQkJCQkJCgkJCQkJCXJldHVy
1013 # biBpZAoJCQkJCWVuZAoJCQkJfQoJCQllbmQKCQl9CgkJCgkJRGlyLmNoZGly
1014 # KGN3ZCkKCQkKCQlpZiBgdW5hbWVgLmRvd25jYXNlID09ICJsaW51eCIKCQkJ
1015 # cmV0dXJuIDIKCQllbmQKCQkKCQlyZXR1cm4gMAoJZW5kCmVuZAoKZW5kCgpp
1016 # ZiBfX0ZJTEVfXyA9PSAkMAoJcHV0cyBRb25mOjpEZXRlY3RPUzo6T1NbUW9u
1017 # Zjo6RGV0ZWN0T1Mub3M/XQplbmQKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1018 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL21ha2VmaWxlLnJifgAA
1019 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1020 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1
1021 # MQAwMDAxNzUxADAwMDAwMDAyMjA0ADEwNzEyMTI2MDA3ADAxMzQ3NgAgMAAA
1022 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1023 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1024 # AAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1025 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1026 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1027 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1028 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1029 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCnJlcXVp
1030 # cmUgJ3JiY29uZmlnJw0KDQptb2R1bGUgUW9uZg0KICBjbGFzcyBNYWtlZmls
1031 # ZQ0KICAgIGRlZiBzZWxmLmZpbmRfbWFrZWZpbGVzKHBhdGgpDQogICAgICBt
1032 # YWtlZmlsZXMgPSBbXQ0KICAgICAgRGlyLmZvcmVhY2gocGF0aCkgeyB8ZnwN
1033 # CiAgICAgICAgZmlsZSA9ICIje3BhdGh9LyN7Zn0iDQogICAgICAgIGlmIEZp
1034 # bGUuc3RhdChmaWxlKS5kaXJlY3Rvcnk/DQogICAgICAgICAgaWYgbm90IGYg
1035 # PX4gL15cLi8NCiAgICAgICAgICAgIG1ha2VmaWxlcy5jb25jYXQgZmluZF9t
1036 # YWtlZmlsZXMoZmlsZSkNCiAgICAgICAgICBlbmQNCiAgICAgICAgZWxzaWYg
1037 # Zi5kb3duY2FzZSA9fiAvXm1ha2VmaWxlKC5kZWJ1Z3wucmVsZWFzZSl7MCwx
1038 # fS8NCiAgICAgICAgICBtYWtlZmlsZXMgPDwgZmlsZQ0KICAgICAgICBlbmQN
1039 # CiAgICAgIH0NCiAgICAgIG1ha2VmaWxlcw0KICAgIGVuZA0KICAgIA0KICAg
1040 # IGRlZiBzZWxmLm92ZXJyaWRlKG1ha2VmaWxlLCBkZXN0ZGlyLCBzdGF0dXNG
1041 # aWxlKQ0KICAgICAgbmV3bWFrZWZpbGUgPSAiIg0KICAgICAgDQogICAgICBy
1042 # dWJ5X2JpbiA9ICIjezo6Q29uZmlnOjpDT05GSUdbImJpbmRpciJdfS8jezo6
1043 # Q29uZmlnOjpDT05GSUdbInJ1YnlfaW5zdGFsbF9uYW1lIl19Ig0KICAgICAg
1044 # DQogICAgICBpZiBGaWxlOjpBTFRfU0VQQVJBVE9SDQogICAgICAgIHJ1Ynlf
1045 # YmluLmdzdWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFSQVRPUikNCiAgICAgICAg
1046 # ZGVzdGRpci5nc3ViISgiLyIsIEZpbGU6OkFMVF9TRVBBUkFUT1IpDQogICAg
1047 # ICBlbmQNCiAgICAgIA0KICAgICAgRmlsZS5vcGVuKG1ha2VmaWxlLCAiciIp
1048 # IHsgfGZ8DQogICAgICAgIGxpbmVzID0gZi5yZWFkbGluZXMNCiAgICAgIAkN
1049 # CiAgICAgICAgbGluZXMuZWFjaCB7IHxsaW5lfA0KICAgICAgICAgIGlmIGxp
1050 # bmUgPX4gL15JTlNUQUxMX0RJUi8NCiAgICAgICAgICAJbmV3bWFrZWZpbGUg
1051 # Kz0gIklOU1RBTExfUk9PVCA9ICN7ZGVzdGRpcn0iDQogICAgICAgICAgZW5k
1052 # DQogICAgICAgICAgbmV3bWFrZWZpbGUgKz0gbGluZQ0KICAgICAgICB9DQog
1053 # ICAgICB9DQogICAgICANCiAgICAgIEZpbGUub3BlbihtYWtlZmlsZSwgInci
1054 # KSB7IHxmfA0KICAgICAgICBmIDw8IG5ld21ha2VmaWxlDQogICAgICB9DQog
1055 # ICAgZW5kDQogIGVuZA0KZW5kDQoNCg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1056 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1057 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1058 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1059 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1060 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1061 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1062 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1063 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABx
1064 # b25maWd1cmUvcGxhaW5fZnJvbnRlbmQucmIAAAAAAAAAAAAAAAAAAAAAAAAA
1065 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1066 # AAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDA0NjYA
1067 # MTA2NzM3NDAzMDMAMDE0NTQ0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1068 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1069 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2Vr
1070 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1071 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1072 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1073 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1074 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1075 # AAAAAAAAAAAAAAAAAAAAAApyZXF1aXJlICdmcm9udGVuZCcKCm1vZHVsZSBR
1076 # b25mCgpjbGFzcyBQbGFpbkZyb250ZW5kIDwgRnJvbnRlbmQKICBkZWYgcGFy
1077 # c2Uob3B0aW9ucykKICAgIG9wdGlvbnMuZWFjaCB7IHxvcHRpb258CiAgICAg
1078 # IGlmIG9wdGlvbls6dmFsdWVdLnRvX3MuZW1wdHk/IGFuZCBvcHRpb25bOm9w
1079 # dGlvbmFsXSA9PSBmYWxzZQogICAgICAgIHB1dHMgIj0+IFRoZSBvcHRpb24g
1080 # JyN7b3B0aW9uWzpuYW1lXX0nIGlzIHJlcXVpcmVkLiIKICAgICAgICByZXR1
1081 # cm4gZmFsc2UKICAgICAgZW5kCiAgICB9CiAgICAKICAgIHRydWUKICBlbmQK
1082 # ZW5kCgplbmQKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1083 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1084 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1085 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1086 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL2Nv
1087 # bmZpZy5yYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1088 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw
1089 # MDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDA3NDE1ADEwNzMyMzY1Mjc2
1090 # ADAxMzAyMAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1091 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1092 # AAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAA
1093 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1094 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1095 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1096 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1097 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1098 # AAAAAAAKcmVxdWlyZSAnZGV0ZWN0b3MnCgptb2R1bGUgUW9uZgoKY2xhc3Mg
1099 # UGFja2FnZQogIGF0dHJfcmVhZGVyIDppbmNsdWRlX3BhdGgsIDpsaWJzLCA6
1100 # bW9kdWxlcywgOmRlZmluZXMsIDpuYW1lCiAgZGVmIGluaXRpYWxpemUobmFt
1101 # ZSkKICAgIEBpbmNsdWRlX3BhdGggPSBbXQogICAgQGxpYnMgPSBbXQogICAg
1102 # QG1vZHVsZXMgPSBbXQogICAgQGRlZmluZXMgPSBbXQogICAgQG5hbWUgPSBu
1103 # YW1lCiAgZW5kCiAgCiAgZGVmIGFkZF9pbmNsdWRlX3BhdGgocGF0aCkKICAg
1104 # IEBpbmNsdWRlX3BhdGggPDwgcGF0aAogIGVuZAogIAogIGRlZiBhZGRfbGli
1105 # KGxpYikKICAgIEBsaWJzIDw8IGxpYi50b19zCiAgZW5kCiAgCiAgZGVmIGFk
1106 # ZF9xdG1vZHVsZShtb2QpCiAgICBAbW9kdWxlcyA8PCBtb2QKICBlbmQKICAK
1107 # ICBkZWYgYWRkX2RlZmluZShkZWZpbmUpCiAgICBAZGVmaW5lcyA8PCBkZWZp
1108 # bmUKICBlbmQKICAKICBkZWYgd3JpdGUoZikKICAgIGlmIG5vdCBAaW5jbHVk
1109 # ZV9wYXRoLmVtcHR5PwogICAgICAgIGYgPDwgIklOQ0xVREVQQVRIICs9ICIg
1110 # PDwgQGluY2x1ZGVfcGF0aC51bmlxLmpvaW4oIiAiKSA8PCAiXG4iCiAgICBl
1111 # bmQKICAgIAogICAgaWYgbm90IEBsaWJzLmVtcHR5PwogICAgICAgIGYgPDwg
1112 # IkxJQlMgKz0gIiA8PCBAbGlicy51bmlxLmpvaW4oIiAiKSA8PCAiXG4iCiAg
1113 # ICBlbmQKICAgIAogICAgaWYgbm90IEBtb2R1bGVzLmVtcHR5PwogICAgICAg
1114 # IGYgPDwgIlFUICs9ICIgPDwgQG1vZHVsZXMudW5pcS5qb2luKCIgIikgPDwg
1115 # IlxuIgogICAgZW5kCiAgICAKICAgIGlmIG5vdCBAZGVmaW5lcy5lbXB0eT8K
1116 # ICAgICAgICBmIDw8ICJERUZJTkVTICs9ICIgPDwgQGRlZmluZXMudW5pcS5q
1117 # b2luKCIgIikgPDwgIlxuIgogICAgZW5kCiAgZW5kCmVuZAoKY2xhc3MgQ29u
1118 # ZmlnIDwgUGFja2FnZQogIGF0dHJfcmVhZGVyIDpidWlsZF9kaXIKICBkZWYg
1119 # aW5pdGlhbGl6ZQogICAgc3VwZXIobmlsKQogICAgQHFvbmZfZmVhdHVyZXMg
1120 # PSBbXQogICAgQHFvbmZfcGFja2FnZXMgPSBbXQogICAgQGJ1aWxkX2RpciA9
1121 # IG9sZGxvY2F0aW9uKCIiKSsiL19idWlsZF8iCiAgICBAdXNlX2RlYnVnID0g
1122 # ZmFsc2UKICBlbmQKICAKICBkZWYgd2l0aF9kZWJ1ZwogICAgQHVzZV9kZWJ1
1123 # ZyA9IHRydWUKICBlbmQKCiAgZGVmIGFkZF9xb25mX3BhY2thZ2UocGtnKQog
1124 # ICAgQHFvbmZfcGFja2FnZXMgPDwgcGtnCiAgZW5kCiAgCiAgZGVmIGFkZF9x
1125 # b25mX2ZlYXR1cmUoZnRyKQogICAgQHFvbmZfZmVhdHVyZXMgPDwgZnRyCiAg
1126 # ZW5kIAoKICBkZWYgaW5jbHVkZV9wYXRoCiAgICBpbmNwYXRoID0gQGluY2x1
1127 # ZGVfcGF0aC5kdXAKICAgIAogICAgQHFvbmZfcGFja2FnZXMuZWFjaCB7IHxw
1128 # a2d8CiAgICAgICAgaW5jcGF0aC5jb25jYXQgcGtnLmluY2x1ZGVfcGF0aAog
1129 # ICAgfQogICAgCiAgICBpbmNwYXRoCiAgZW5kCiAgCiAgZGVmIGxpYnMKICAg
1130 # IGxpYiA9IEBsaWJzLmR1cAogICAgQHFvbmZfcGFja2FnZXMuZWFjaCB7IHxw
1131 # a2d8CiAgICAgICAgbGliLmNvbmNhdCBwa2cubGlicwogICAgfQogICAgCiAg
1132 # ICBsaWIKICBlbmQKICAKICBkZWYgbGlicmFyeV9wYXRoCiAgICBsaWJzX2Eg
1133 # PSBbXQoKICAgIHNwbGl0dGVkID0gQGxpYnMuam9pbigiICIpLnNwbGl0KCIg
1134 # IikKICAgIHNwbGl0dGVkLmVhY2ggeyB8c3B8CiAgICAgICAgaWYoIHNwID1+
1135 # IC8tTCguKylccyovICkKICAgICAgICAgICAgbGlic19hIDw8ICQxCiAgICAg
1136 # ICAgZW5kCiAgICB9CiAgICAKICAgIGxpYnNfYQogIGVuZAogIAogIGRlZiBk
1137 # ZWZpbmVzCiAgICBkZWZzID0gQGRlZmluZXMuZHVwCiAgICAKICAgIEBxb25m
1138 # X3BhY2thZ2VzLmVhY2ggeyB8cGtnfAogICAgICAgIGRlZnMuY29uY2F0IHBr
1139 # Zy5kZWZpbmVzCiAgICB9CiAgICAKICAgIGRlZnMKICBlbmQKICAKICBkZWYg
1140 # c2F2ZShwYXRoKQogICAgaWYgcGF0aFswXS5jaHIgPT0gRmlsZTo6U0VQQVJB
1141 # VE9SCiAgICAgICAgcGF0aCA9IHBhdGgKICAgIGVsc2UKICAgICAgICBwYXRo
1142 # ID0gIiN7RGlyLmdldHdkfS8je3BhdGh9IgogICAgZW5kCiAgICAKICAgIEZp
1143 # bGUub3BlbihwYXRoLCAidyIpIHsgfGZ8CiAgICAgICAgZiA8PCAiIyBHZW5l
1144 # cmF0ZWQgYXV0b21hdGljYWxseSBhdCAje1RpbWUubm93fSEgUExFQVNFIERP
1145 # IE5PVCBFRElUIE1BTlVBTExZISI8PCAiXG4iCiAgICAgICAgCiAgICAgICAg
1146 # ZiA8PCAiUFJPSkVDVF9ESVIgPSAiIDw8IG9sZGxvY2F0aW9uKCIiKSA8PCAi
1147 # XG4iCiAgICAgICAgZiA8PCAiQlVJTERfRElSID0gI3tAYnVpbGRfZGlyfVxu
1148 # IgogICAgICAgIAogICAgICAgIGYgPDwgJ2NvbnRhaW5zKFRFTVBMQVRFLCAi
1149 # YXBwIikgeycgPDwgIlxuIgogICAgICAgIGYgPDwgIkRFU1RESVIgPSAkJEJV
1150 # SUxEX0RJUi9iaW5cbiIKICAgICAgICBmIDw8ICd9IGVsc2U6Y29udGFpbnMo
1151 # VEVNUExBVEUsICJsaWIiKSB7JyA8PCAiXG4iCiAgICAgICAgZiA8PCAiREVT
1152 # VERJUiA9ICQkQlVJTERfRElSL2xpYlxuIgogICAgICAgIGYgPDwgJ30gZWxz
1153 # ZSB7JyA8PCAiXG4iCiAgICAgICAgZiA8PCAiREVTVERJUiA9ICQkQlVJTERf
1154 # RElSXG4iCiAgICAgICAgZiA8PCAifVxuXG5cbiIKICAgICAgICAKICAgICAg
1155 # ICBpZiBAdXNlX2RlYnVnCiAgICAgICAgICAgIGYgPDwgIkNPTkZJRyArPSBk
1156 # ZWJ1Z1xuIgogICAgICAgIGVsc2UKICAgICAgICAgICAgZiA8PCAiQ09ORklH
1157 # ICs9IHJlbGVhc2VcbiIKICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBm
1158 # IDw8ICJMSUJTICs9IC1MJCRCVUlMRF9ESVIvbGliXG4iCiAgICAgICAgZiA8
1159 # PCAiUkVMQVRJVkVfUEFUSCA9ICQkcmVwbGFjZShfUFJPX0ZJTEVfUFdEXywg
1160 # JCRQUk9KRUNUX0RJUiwgIiIpXG4iCiAgICAgICAgZiA8PCAiQ1VSUkVOVF9C
1161 # VUlMRF9ESVIgPSAkJEJVSUxEX0RJUiQkUkVMQVRJVkVfUEFUSFxuIgogICAg
1162 # ICAgIAppZiBEZXRlY3RPUy5vcz8gIT0gMSAjIERpc2FibGVkIGJlY2F1c2Ug
1163 # V2luZG93cyBzdWNrcy4KICAgICAgICBmIDw8ICJPQkpFQ1RTX0RJUiA9ICQk
1164 # Q1VSUkVOVF9CVUlMRF9ESVJcbiIKICAgICAgICBmIDw8ICJNT0NfRElSID0g
1165 # JCRDVVJSRU5UX0JVSUxEX0RJUlxuIgogICAgICAgIGYgPDwgIlVJX0RJUiA9
1166 # ICQkQ1VSUkVOVF9CVUlMRF9ESVJcblxuIgplbmQKICAgICAgICAKICAgICAg
1167 # ICB3cml0ZShmKQogICAgICAgIAogICAgICAgIAogICAgICAgIGYgPDwgIlFP
1168 # TkZfRkVBVFVSRVMgKz0gIiA8PCBAcW9uZl9wYWNrYWdlcy5tYXAgeyB8ZXwg
1169 # ZS5uYW1lIH0uam9pbigiICIpICA8PCAiXG4iCiAgICAgICAgZiA8PCAiUU9O
1170 # Rl9GRUFUVVJFUyArPSAiIDw8IEBxb25mX2ZlYXR1cmVzLmpvaW4oIiAiKSAg
1171 # PDwgIlxuIgogICAgICAgIAogICAgICAgIGYgPDwgIlxuZGVmaW5lVGVzdChs
1172 # aW5rX3dpdGgpIHsiIDw8ICJcbiIKICAgICAgICBmIDw8ICIgIHJldCA9IGZh
1173 # bHNlXG4iCiAgICAgICAgQHFvbmZfcGFja2FnZXMuZWFjaCB7IHxxb25mfAog
1174 # ICAgICAgICAgZiA8PCAlQCAgY29udGFpbnMoJCRsaXN0KCQkc3BsaXQoMSkp
1175 # ICwiI3txb25mLm5hbWV9Iikge1xuQAogICAgICAgICAgZiA8PCAiICAgIHJl
1176 # dCA9IHRydWVcbiIKICAgICAgICAgIGYgPDwgIiAgICBtZXNzYWdlKD0+IExp
1177 # bmtpbmcgcW9uZiBtb2R1bGU6ICN7cW9uZi5uYW1lfSlcbiIKICAgICAgICAg
1178 # IHFvbmYud3JpdGUoZikKICAgICAgICAgIGYgPDwgIiAgfVxuIgogICAgICAg
1179 # IH0KICAgICAgICBmIDw8ICIgIGV4cG9ydChJTkNMVURFUEFUSClcbiIKICAg
1180 # ICAgICBmIDw8ICIgIGV4cG9ydChMSUJTKVxuIgogICAgICAgIGYgPDwgIiAg
1181 # ZXhwb3J0KFFUKVxuIgogICAgICAgIGYgPDwgIiAgZXhwb3J0KERFRklORVMp
1182 # XG4iCiAgICAgICAgZiA8PCAiICByZXR1cm4oJCRyZXQpXG4iCiAgICAgICAg
1183 # ZiA8PCAifVxuIgogICAgfQogIGVuZAplbmQKCmVuZAoKAAAAAAAAAAAAAAAA
1184 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1185 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1186 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1187 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1188 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1189 # AAAAAAAAcW9uZmlndXJlL3BrZ2NvbmZpZy5yYgAAAAAAAAAAAAAAAAAAAAAA
1190 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1191 # AAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAw
1192 # MDA2NzE0ADEwNzIzMzQzMjI0ADAxMzUxMAAgMAAAAAAAAAAAAAAAAAAAAAAA
1193 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1194 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg
1195 # AGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1196 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1197 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1198 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1199 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1200 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCnJlcXVpcmUgJ2RldGVjdG9zJwoK
1201 # bW9kdWxlIFFvbmYKCmNsYXNzIFBrZ0NvbmZpZ1BhcnNlcgogIGRlZiBpbml0
1202 # aWFsaXplCiAgICBAdmFyaWFibGVzID0ge30KICAgIEBzcGVjcyA9IHt9CiAg
1203 # ZW5kCiAgCiAgZGVmIHBhcnNlKHBhdGgpCiAgICBGaWxlLm9wZW4ocGF0aCkg
1204 # eyB8ZmlsZXwKICAgICAgZmlsZS5lYWNoIHsgfGxpbmV8CiAgICAgICAgaWYg
1205 # bGluZSA9fiAvKFx3Kyk9KC4qKSQvCiAgICAgICAgICBAdmFyaWFibGVzWyQx
1206 # XSA9ICQyCiAgICAgICAgZWxzaWYgbGluZSA9fiAvKFx3Kyk6XHMoLiopJC8K
1207 # ICAgICAgICAgIEBzcGVjc1skMV0gPSAkMgogICAgICAgIGVuZAogICAgICB9
1208 # CiAgICB9CiAgZW5kCiAgCiAgZGVmIHZhbHVlKHZhcmlhYmxlKQogICAgdmFs
1209 # ID0gQHZhcmlhYmxlc1t2YXJpYWJsZV0KICAgIHdoaWxlIHZhbCA9fiAvKFwk
1210 # XHsoXHcrKVx9KS8KICAgICAgdmFsLmdzdWIhKCQxLCB2YWx1ZSgkMikpCiAg
1211 # ICBlbmQKICAgIAogICAgdmFsCiAgZW5kCiAgCiAgZGVmIHNwZWModmFyaWFi
1212 # bGUpCiAgICB2YWwgPSBAc3BlY3NbdmFyaWFibGVdCiAgICB3aGlsZSB2YWwg
1213 # PX4gLyhcJFx7KFx3KylcfSkvCiAgICAgIHZhbC5nc3ViISgkMSwgdmFsdWUo
1214 # JDIpKQogICAgZW5kCiAgICAKICAgIHZhbAogIGVuZAogIAogIGRlZiBsaWJz
1215 # CiAgICBzcGVjKCJMaWJzIikKICBlbmQKICAKICBkZWYgY2ZsYWdzCiAgICBz
1216 # cGVjKCJDZmxhZ3MiKQogIGVuZAogIAogIGRlZiByZXF1aXJlcwogICAgc3Bl
1217 # YygiUmVxdWlyZXMiKS50b19zCiAgZW5kCmVuZAoKY2xhc3MgUGtnQ29uZmln
1218 # CiAgYXR0cl9yZWFkZXIgOmlkLCA6bGlicywgOmNmbGFncywgOnJlcXVpcmVz
1219 # CiAgCiAgZGVmIGluaXRpYWxpemUoaWQpCiAgICBAaWQgPSBpZAogICAgQHNl
1220 # YXJjaF9wYXRoID0gW10KICAgIEByZXF1aXJlcyA9IFtdCiAgZW5kCiAgCiAg
1221 # ZGVmIGZpbmQocGtnKQogICAgcGtncGF0aCA9IGZpbmRfcGF0aF9mb3JfcGFj
1222 # a2FnZShwa2cpCiAgICAKICAgIGlmIG5vdCBwa2dwYXRoLm5pbD8KICAgICAg
1223 # QGNmbGFncyA9ICIiCiAgICAgIEBsaWJzID0gIiIKICAgICAgcGFyc2UocGtn
1224 # cGF0aCwgcGtnKQogICAgICAKICAgICAgcmV0dXJuIHRydWUKICAgIGVuZAog
1225 # ICAgCiAgICBmYWxzZQogIGVuZAogIAogIGRlZiBhZGRfc2VhcmNoX3BhdGgo
1226 # cGF0aCkKICAgIGlmIHBhdGgua2luZF9vZj8oQXJyYXkpCiAgICAgIEBzZWFy
1227 # Y2hfcGF0aC5jb25jYXQocGF0aCkKICAgIGVsc2UKICAgICAgQHNlYXJjaF9w
1228 # YXRoIDw8IHBhdGgudG9fcwogICAgZW5kCiAgZW5kCiAgCiAgZGVmIGluY2x1
1229 # ZGVfcGF0aAogICAgaW5jcGF0aCA9IFtdCiAgICBjZmxhZ3MgPSBAY2ZsYWdz
1230 # LmR1cAogICAgd2hpbGUgY2ZsYWdzID1+IC8oLUkoKFx3Oil7MCwxfShbXC9c
1231 # XF1cUyspKykpLwogICAgICBpbmNwYXRoIDw8ICQyCiAgICAgIGNmbGFncy5z
1232 # dWIhKCQxLCAiIikKICAgIGVuZAogICAgCiAgICBpbmNwYXRoLnVuaXEKICBl
1233 # bmQKICAKICBkZWYgZGVmaW5lcwogICAgZGVmaW5lcyA9IFtdCiAgICBjZmxh
1234 # Z3MgPSBAY2ZsYWdzLmR1cAogICAgd2hpbGUgY2ZsYWdzID1+IC8oLURccyoo
1235 # KFxXXHcrKSspKS8KICAgICAgZGVmaW5lcyA8PCAkMgogICAgICBkZWZpbmVz
1236 # LnN1YiEoJDEsICIiKQogICAgZW5kCiAgICAKICAgIGRlZmluZXMudW5pcQog
1237 # IGVuZAogIAogIGRlZiBmaW5kX3dpbjMyX3BhdGhzCiAgICBwYXRocyA9IGZp
1238 # bmRfZW52X3BhdGhzCiAgICAKICAgIAogICAgcGF0aHMKICBlbmQKICAKICBk
1239 # ZWYgZmluZF91bml4X3BhdGhzCiAgICBwYXRocyA9IGZpbmRfZW52X3BhdGhz
1240 # CiAgICBpZiBGaWxlLmV4aXN0cz8oIi9ldGMvbGQuc28uY29uZiIpCiAgICAg
1241 # IEZpbGUub3BlbigiL2V0Yy9sZC5zby5jb25mIikgZG8gfGZpbGV8CiAgICAg
1242 # ICAgZmlsZS5lYWNoIHsgfGxpbmV8CiAgICAgICAgICBkaXIgPSBsaW5lLnN0
1243 # cmlwKyIvcGtnY29uZmlnIgogICAgICAgICAgaWYgRmlsZS5leGlzdHM/KGRp
1244 # cikKICAgICAgICAgICAgcGF0aHMgPDwgZGlyCiAgICAgICAgICBlbmQKICAg
1245 # ICAgICB9CiAgICAgIGVuZAogICAgZW5kCiAgICAKICAgIHBhdGhzIDw8ICIv
1246 # dXNyL2xpYi9wa2djb25maWciIDw8ICIvdXNyL2xvY2FsL2xpYi9wa2djb25m
1247 # aWciIDw8IEVOVlsiSE9NRSJdLnRvX3MrIi9sb2NhbC9saWIvcGtnY29uZmln
1248 # IgogICAgCiAgICBwYXRocwogIGVuZAogIAogIGRlZiBmaW5kX2Vudl9wYXRo
1249 # cwogICAgc2VwcGF0aCA9IChEZXRlY3RPUy5vcz8gPT0gMSkgPyAiOyIgOiAi
1250 # OiIKICAgIAogICAgcGF0aHMgPSBbICIuIiBdCiAgICAoRU5WWyJQS0dfQ09O
1251 # RklHX1BBVEgiXS50b19zK3NlcHBhdGgrRU5WWyJMRF9MSUJSQVJZX1BBVEgi
1252 # XS50b19zKS5zcGxpdChzZXBwYXRoKS5lYWNoIHsgfHBhdGh8CiAgICAgIGlm
1253 # IEZpbGUuZXhpc3RzPyhwYXRoKQogICAgICAgIHBhdGhzIDw8IHBhdGgKICAg
1254 # ICAgZW5kCiAgICB9CiAgICAKICAgIHBhdGhzCiAgZW5kCiAgCiAgcHJpdmF0
1255 # ZQogIGRlZiBwYXJzZShwa2dwYXRoLCBwa2cpCiAgICByZXR1cm4gaWYgcGtn
1256 # cGF0aC5uaWw/CiAgICAKICAgIHBhcnNlciA9IFBrZ0NvbmZpZ1BhcnNlci5u
1257 # ZXcKICAgIHBhcnNlci5wYXJzZShwa2dwYXRoKQogICAgCiAgICBwYXJzZXIu
1258 # cmVxdWlyZXMuc3BsaXQoLyx8XHMvKS5lYWNoIHsgfHJlcXwKICAgICAgcmVx
1259 # LnN0cmlwIQogICAgICAKICAgICAgcGFyc2UoZmluZF9wYXRoX2Zvcl9wYWNr
1260 # YWdlKHJlcSksIHJlcSkKICAgIH0KICAgIAogICAgY2ZsYWdzID0gcGFyc2Vy
1261 # LmNmbGFncwogICAgbGlicyA9IHBhcnNlci5saWJzCiAgICAKICAgIGlmIGlk
1262 # ICE9IHBrZyBhbmQgbm90IChjZmxhZ3MuZW1wdHk/IG9yIGxpYnMuZW1wdHk/
1263 # KQogICAgICBAcmVxdWlyZXMgPDwgcGtnCiAgICBlbmQKICAgIAogICAgQGNm
1264 # bGFncyA9ICIje2NmbGFnc30gI3tAY2ZsYWdzfSIKICAgIEBsaWJzID0gIiN7
1265 # bGlic30gI3tAbGlic30iCiAgICAKICAgIG5pbAogIGVuZAogIAogIGRlZiBm
1266 # aW5kX3BhdGhfZm9yX3BhY2thZ2UocGtnKQogICAgaWYgbm90IHBrZyA9fiAv
1267 # XC5wYyQvCiAgICAgIHBrZyArPSAiLnBjIgogICAgZW5kCiAgICAKICAgIHBh
1268 # dGhzID0gQHNlYXJjaF9wYXRoCiAgICAKICAgIGlmIERldGVjdE9TLm9zPyA9
1269 # PSAxICMgV2luZG93cwogICAgICBwYXRocy5jb25jYXQgZmluZF93aW4zMl9w
1270 # YXRocwogICAgZWxzZQogICAgICBwYXRocy5jb25jYXQgZmluZF91bml4X3Bh
1271 # dGhzCiAgICBlbmQKICAgIAogICAgcGtncGF0aCA9IG5pbAogICAgcGF0aHMu
1272 # ZWFjaCB7IHxwYXRofAogICAgICB0bXBwYXRoID0gcGF0aCsiLyIrcGtnCiAg
1273 # ICAgIGlmIEZpbGUuZXhpc3RzPyh0bXBwYXRoKQogICAgICAgIHBrZ3BhdGgg
1274 # PSB0bXBwYXRoCiAgICAgIGVsc2lmICRERUJVRwogICAgICAgIHB1dHMgIkZh
1275 # aWxlZDogI3t0bXBwYXRofSIKICAgICAgZW5kCiAgICB9CiAgICAKICAgIHBr
1276 # Z3BhdGgKICBlbmQKZW5kCgplbmQKCgppZiAkMCA9PSBfX0ZJTEVfXwogIHBr
1277 # Z2NvbmZpZyA9IFFvbmY6OlBrZ0NvbmZpZy5uZXcKICBwa2djb25maWcuZmlu
1278 # ZCgidGVzdF9xb25mIikKICAKICBwdXRzIHBrZ2NvbmZpZy5saWJzCmVuZAoK
1279 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1280 # AAAAAAAAAHFvbmZpZ3VyZS90a19mcm9udGVuZC5yYgAAAAAAAAAAAAAAAAAA
1281 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1282 # AAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAw
1283 # MDAwNjI3MwAxMDY3Mzc0MDMwMwAwMTQwNjEAIDAAAAAAAAAAAAAAAAAAAAAA
1284 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1285 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIg
1286 # IABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1287 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1288 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1289 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1290 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1291 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKCnJlcXVpcmUgJ2Zyb250ZW5k
1292 # JwoKbW9kdWxlIFFvbmYKICBjbGFzcyBUa0Zyb250ZW5kIDwgRnJvbnRlbmQK
1293 # ICAgIGRlZiBpbml0aWFsaXplCiAgICBlbmQKICAgIAogICAgZGVmIHBhcnNl
1294 # KG9wdHMpCiAgICAgIHJvb3QgPSBUa1Jvb3QubmV3KCkgeyB0aXRsZSAiQ29u
1295 # ZmlndXJlLi4uIiB9CiAgICAgIG9wdHMuZWFjaCB7IHxvcHRpb258CiAgICAg
1296 # ICAgbGFiZWwgPSBUa0xhYmVsLm5ldyhyb290KSB7IHRleHQgb3B0aW9uWzpu
1297 # YW1lXSB9CiAgICAgICAgCiAgICAgICAgY2FzZSBvcHRpb25bOnR5cGVdLnRv
1298 # X3MuZG93bmNhc2UKICAgICAgICAgIHdoZW4gInN0cmluZyIKICAgICAgICAg
1299 # ICAgZW50cnkgPSBUa0VudHJ5Lm5ldyhyb290KQogICAgICAgICAgICBlbnRy
1300 # eS5pbnNlcnQoMCwgKG9wdGlvbls6dmFsdWVdLm5pbD8gPyBvcHRpb25bOmRl
1301 # ZmF1bHRdLnRvX3MgOiBvcHRpb25bOnZhbHVlXS50b19zICApKQogICAgICAg
1302 # ICAgICBUa0dyaWQuZ3JpZChsYWJlbCwgZW50cnksICJjb2x1bW5zcGFuIiA9
1303 # PiAyKQogICAgICAgICAgICAKICAgICAgICAgICAgb3B0aW9uWzppbnB1dF0g
1304 # PSBlbnRyeQogICAgICAgICAgd2hlbiAicGF0aCIKICAgICAgICAgICAgZW50
1305 # cnkgPSBUa0VudHJ5Lm5ldyhyb290KQogICAgICAgICAgICBlbnRyeS5pbnNl
1306 # cnQoMCwgKG9wdGlvbls6dmFsdWVdLm5pbD8gPyBvcHRpb25bOmRlZmF1bHRd
1307 # LnRvX3MgOiBvcHRpb25bOnZhbHVlXS50b19zICApKQogICAgICAgICAgICAK
1308 # ICAgICAgICAgICAgZ2V0RmlsZSA9IFRrQnV0dG9uLm5ldyhyb290KSB7CiAg
1309 # ICAgICAgICAgICAgdGV4dCAiQnJvd3NlLi4uIgogICAgICAgICAgICAgIGNv
1310 # bW1hbmQgewogICAgICAgICAgICAgICAgdmFsID0gVGsuY2hvb3NlRGlyZWN0
1311 # b3J5CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGVudHJ5LnZh
1312 # bHVlID0gdmFsIGlmIG5vdCB2YWwudG9fcy5lbXB0eT8KICAgICAgICAgICAg
1313 # ICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVGtHcmlkLmdyaWQobGFi
1314 # ZWwsIGVudHJ5LCBnZXRGaWxlLCAiY29sdW1uc3BhbiIgPT4gMikKICAgICAg
1315 # ICAgICAgCiAgICAgICAgICAgIG9wdGlvbls6aW5wdXRdID0gZW50cnkKICAg
1316 # ICAgICAgIGVsc2UKICAgICAgICAgICAgZ2l2ZW4gPSAob3B0aW9uWzp2YWx1
1317 # ZV0ubmlsPyA/IG9wdGlvbls6ZGVmYXVsdF0udG9fcyA6IG9wdGlvbls6dmFs
1318 # dWVdLnRvX3MgICkKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIGdpdmVu
1319 # ID09ICJmYWxzZSIgb3IgZ2l2ZW4gPT0gIm5vIiBvciBnaXZlbi5lbXB0eT8K
1320 # ICAgICAgICAgICAgICB2YWx1ZSA9IDAKICAgICAgICAgICAgZWxzZQogICAg
1321 # ICAgICAgICAgIHZhbHVlID0gMQogICAgICAgICAgICBlbmQKICAgICAgICAg
1322 # ICAgCiAgICAgICAgICAgIG15Y2hlY2sgPSBUa1ZhcmlhYmxlLm5ldyh2YWx1
1323 # ZSkKICAgICAgICAgICAgY2hlY2sgPSBUa0NoZWNrQnV0dG9uLm5ldyhyb290
1324 # KSB7CiAgICAgICAgICAgICAgdmFyaWFibGUgbXljaGVjawogICAgICAgICAg
1325 # ICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBUa0dyaWQuZ3JpZChsYWJl
1326 # bCwgY2hlY2ssICJjb2x1bW5zcGFuIiA9PiAyKQogICAgICAgICAgICAKICAg
1327 # ICAgICAgICAgb3B0aW9uWzppbnB1dF0gPSBteWNoZWNrCiAgICAgICAgZW5k
1328 # CiAgICAgIH0KICAgICAgCiAgICAgIG9rID0gVGtCdXR0b24ubmV3KHJvb3Qp
1329 # IHsKICAgICAgICB0ZXh0ICJPayIKICAgICAgICBjb21tYW5kICB7CiAgICAg
1330 # ICAgICBvayA9IHRydWUKICAgICAgICAgIHJlcXVpcmVkX2ZpZWxkcyA9IFtd
1331 # CiAgICAgICAgICAKICAgICAgICAgIG9wdHMuZWFjaCB7IHxvcHRpb258CiAg
1332 # ICAgICAgICAgIHZhbHVlID0gb3B0aW9uWzpkZWZhdWx0XQogICAgICAgICAg
1333 # ICBjYXNlIG9wdGlvbls6dHlwZV0uZG93bmNhc2UKICAgICAgICAgICAgICB3
1334 # aGVuICJzdHJpbmciCiAgICAgICAgICAgICAgICB2YWx1ZSA9IG9wdGlvbls6
1335 # aW5wdXRdLnZhbHVlCiAgICAgICAgICAgICAgd2hlbiAicGF0aCIKICAgICAg
1336 # ICAgICAgICAgIHZhbHVlID0gRmlsZS5leHBhbmRfcGF0aChvcHRpb25bOmlu
1337 # cHV0XS52YWx1ZSkKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
1338 # ICB2YWx1ZSA9IG9wdGlvbls6aW5wdXRdLnZhbHVlCiAgICAgICAgICAgIGVu
1339 # ZAogICAgICAgICAgICAKICAgICAgICAgICAgaWYgb3B0aW9uWzpvcHRpb25h
1340 # bF0gPT0gZmFsc2UgYW5kIHZhbHVlLnRvX3MuZW1wdHk/CiAgICAgICAgICAg
1341 # ICAgcmVxdWlyZWRfZmllbGRzIDw8IG9wdGlvbls6bmFtZV0KICAgICAgICAg
1342 # ICAgICBvayA9IGZhbHNlCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
1343 # ICBvcHRpb25bOnZhbHVlXSA9IHZhbHVlCiAgICAgICAgICAgIGVuZAogICAg
1344 # ICAgICAgICAKICAgICAgICAgICAgb2sgPSBvayAmJiB0cnVlCiAgICAgICAg
1345 # ICB9CiAgICAgICAgICAKICAgICAgICAgIGlmIG9rCiAgICAgICAgICAgIFRr
1346 # LmV4aXQKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgVGtXYXJuaW5nLnNo
1347 # b3coIlRoZSBmaWVsZHMgJyN7cmVxdWlyZWRfZmllbGRzLmpvaW4oIiwgIil9
1348 # JyBhcmUgcmVxdWlyZWQuIikKICAgICAgICAgIGVuZAogICAgICAgIH0KICAg
1349 # ICAgfQogICAgICAKICAgICAgY2FuY2VsID0gVGtCdXR0b24ubmV3KHJvb3Qp
1350 # IHsKICAgICAgICB0ZXh0ICJDYW5jZWwiCiAgICAgICAgY29tbWFuZCAgewog
1351 # ICAgICAgICAgVGsuZXhpdAogICAgICAgICAgZXhpdCAwCiAgICAgICAgfQog
1352 # ICAgICB9CiAgICAgICAgCiAgICAgIFRrR3JpZC5ncmlkKG9rLCBjYW5jZWws
1353 # ICJjb2x1bW5zcGFuIiA9PiAzKQogICAgICAKICAgICAgVGsubWFpbmxvb3AK
1354 # ICAgICAgCiAgICAgIHRydWUKICAgIGVuZAogIGVuZAplbmQKCgppZiBfX0ZJ
1355 # TEVfXyA9PSAkMCAjIFRlc3QKICBvcHRzID0gW10KICBvcHRzIDw8IHs6bmFt
1356 # ZSA9PiAibmFtZTEiLCA6dHlwZSA9PiAiU3RyaW5nIiwgOmRlZmF1bHQgPT4g
1357 # InZhbHVlIiwgOm9wdGlvbmFsID0+IGZhbHNlIH0KICBvcHRzIDw8IHs6bmFt
1358 # ZSA9PiAibmFtZTQiLCA6dHlwZSA9PiAiUGF0aCIsIDpkZWZhdWx0ID0+ICJ2
1359 # YWx1ZSIgfQogIG9wdHMgPDwgezpuYW1lID0+ICJuYW1lMiIsIDp0eXBlID0+
1360 # ICJCb29sIiwgOmRlZmF1bHQgPT4gdHJ1ZSB9CiAgb3B0cyA8PCB7Om5hbWUg
1361 # PT4gIm5hbWUzIiwgOnR5cGUgPT4gIlZvaWQiLCA6ZGVmYXVsdCA9PiBmYWxz
1362 # ZSB9CiAgCiAgdGsgPSBRb25mOjpUa0Zyb250ZW5kLm5ldwogIHRrLnBhcnNl
1363 # KG9wdHMpCiAgCiAgcHV0cyBvcHRzLmZpcnN0Wzp2YWx1ZV0KZW5kCgoKCgAA
1364 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1365 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1366 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1367 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1368 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1369 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1370 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1371 # AAAAAAAAAABxb25maWd1cmUvdGVzdC5yYn4AAAAAAAAAAAAAAAAAAAAAAAAA
1372 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1373 # AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAw
1374 # MDAwMDUxNzcAMTA2NzMwMjI3MDQAMDEyNzIxACAwAAAAAAAAAAAAAAAAAAAA
1375 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1376 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
1377 # ICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1378 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1379 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1380 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1381 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1382 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcXVpcmUgJ3RtcGRpcicKCm1v
1383 # ZHVsZSBRb25mCiAgY2xhc3MgVGVzdAogICAgYXR0cl9yZWFkZXIgOmluY2x1
1384 # ZGVfcGF0aCwgOmxpYnMsIDpkZWZpbmVzCiAgICAKICAgIGRlZiBpbml0aWFs
1385 # aXplKG9wdGlvbnMpCiAgICAgIEBvcHRpb25zID0gb3B0aW9ucwogICAgICAK
1386 # ICAgICAgQGluY2x1ZGVfcGF0aCA9IFtdCiAgICAgIEBsaWJzID0gW10KICAg
1387 # ICAgQGRlZmluZXMgPSBbXQogICAgICAKICAgICAgQGluY2x1ZGVfcGF0aCA9
1388 # IG9wdGlvbnNbOmluY2x1ZGVwYXRoXSBpZiBub3Qgb3B0aW9uc1s6aW5jbHVk
1389 # ZXBhdGhdLm5pbD8KICAgICAgQGxpYnMgPDwgb3B0aW9uc1s6bGlic10gaWYg
1390 # bm90IG9wdGlvbnNbOmxpYnNdLm5pbD8KICAgICAgQGRlZmluZXMgPSBvcHRp
1391 # b25zWzpkZWZpbmVzXSBpZiBub3Qgb3B0aW9uc1s6ZGVmaW5lc10ubmlsPwog
1392 # ICAgZW5kCiAgICAKICAgIGRlZiBydW4ocW1ha2UpCiAgICAgICMgR2VuZXJh
1393 # dGUKICAgICAgcmV0ID0gZmFsc2UKICAgICAgY3dkID0gRGlyLmdldHdkCiAg
1394 # ICAgIAogICAgICBxb25mdGVzdF9kaXIgPSAiI3tEaXI6OnRtcGRpcn0vcW9u
1395 # Zl90ZXN0cy4je1Byb2Nlc3MucGlkfSIKICAgICAgYmFzZXBhdGggPSBxb25m
1396 # dGVzdF9kaXIrIi90ZXN0XyN7UHJvY2Vzcy5waWR9IgogICAgICAKICAgICAg
1397 # ZmlsZXBhdGggPSBiYXNlcGF0aCsiLmNwcCIKICAgICAgcHJvcGF0aCA9IGJh
1398 # c2VwYXRoKyIucHJvIgogICAgICB0YXJnZXQgPSAidGVzdF8je1Byb2Nlc3Mu
1399 # cGlkfV9hcHAiCiAgICAgIAogICAgICBiZWdpbgogICAgICAgIERpci5ta2Rp
1400 # cihxb25mdGVzdF9kaXIpIGlmIG5vdCBGaWxlLmV4aXN0cz8ocW9uZnRlc3Rf
1401 # ZGlyKQogICAgICAgIEZpbGUub3BlbihmaWxlcGF0aCwgInciKSB7IHxmfAog
1402 # ICAgICAgICAgCiAgICAgICAgICB3cml0ZV90ZXN0KGYpCiAgICAgICAgICAK
1403 # ICAgICAgICAgIEZpbGUub3Blbihwcm9wYXRoLCAidyIpIHsgfHBmfAogICAg
1404 # ICAgICAgICBwZiA8PCAiU09VUkNFUyArPSAiIDw8IGZpbGVwYXRoIDw8ICJc
1405 # biIKICAgICAgICAgICAgcGYgPDwgIlRFTVBMQVRFID0gYXBwIiA8PCAiXG4i
1406 # CiAgICAgICAgICAgIHBmIDw8ICJUQVJHRVQgPSAiIDw8ICJcbiIKICAgICAg
1407 # ICAgICAgcGYgPDwgIklOQ0xVREVQQVRIICs9ICIgPDwgQGluY2x1ZGVfcGF0
1408 # aC5qb2luKCIgIikgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiTElCUyAr
1409 # PSAiIDw8IEBsaWJzLmpvaW4oIiAiKSA8PCAiXG4iCiAgICAgICAgICAgIHBm
1410 # IDw8ICJERUZJTkVTICs9ICIgPDwgQGRlZmluZXMuam9pbigiICIpIDw8ICJc
1411 # biIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAg
1412 # ICAgICAgRGlyLmNoZGlyKHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAg
1413 # ICBxbWFrZS5ydW4ocHJvcGF0aCkKICAgICAgICByZXQgPSBxbWFrZS5jb21w
1414 # aWxlCiAgICAgICAgcW1ha2UuY2xlYW5fdXAKICAgICAgICAKICAgICAgICBE
1415 # aXIuY2hkaXIoY3dkKQogICAgICAgIAogICAgICAgIEZpbGUudW5saW5rKHRh
1416 # cmdldCkgaWYgRmlsZS5leGlzdHM/KHRhcmdldCkgIyBGSVhNRTogd2luZG93
1417 # cwogICAgICAgIEZpbGUudW5saW5rKHByb3BhdGgpIGlmIEZpbGUuZXhpc3Rz
1418 # Pyhwcm9wYXRoKQogICAgICAgIEZpbGUudW5saW5rKGZpbGVwYXRoKSBpZiBG
1419 # aWxlLmV4aXN0cz8oZmlsZXBhdGgpCiAgICAgICAgRmlsZVV0aWxzLnJtX3Jm
1420 # KHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAgcmVzY3VlID0+IGUKICAg
1421 # ICAgICBwdXRzIGUKICAgICAgICBwdXRzIGUuYmFja3RyYWNlCiAgICAgICAg
1422 # CiAgICAgICAgRGlyLmNoZGlyKGN3ZCkKICAgICAgICBGaWxlLnVubGluayh0
1423 # YXJnZXQpIGlmIEZpbGUuZXhpc3RzPyh0YXJnZXQpICMgRklYTUU6IHdpbmRv
1424 # d3MKICAgICAgICBGaWxlLnVubGluayhwcm9wYXRoKSBpZiBGaWxlLmV4aXN0
1425 # cz8ocHJvcGF0aCkKICAgICAgICBGaWxlLnVubGluayhmaWxlcGF0aCkgaWYg
1426 # RmlsZS5leGlzdHM/KGZpbGVwYXRoKQogICAgICAgIEZpbGVVdGlscy5ybV9y
1427 # Zihxb25mdGVzdF9kaXIpCiAgICAgICAgCiAgICAgICAgcmV0dXJuIGZhbHNl
1428 # CiAgICAgIGVuc3VyZQogICAgICBlbmQKICAgICAgCiAgICAgIHJldAogICAg
1429 # ZW5kCiAgICAKICAgIGRlZiBhZGRfaW5jbHVkZV9wYXRoKGluY3BhdGgpCiAg
1430 # ICAgIEBpbmNsdWRlX3BhdGggPDwgaW5jcGF0aAogICAgZW5kCiAgICAKICAg
1431 # IGRlZiBhZGRfbGliKGxpYikKICAgICAgQGxpYnMgPDwgbGliCiAgICBlbmQK
1432 # ICAgIAogICAgZGVmIGFkZF9kZWZpbmUoZGVmaW5lKQogICAgICBAZGVmaW5l
1433 # cyA8PCBkZWZpbmUKICAgIGVuZAogICAgCiAgICBwcml2YXRlCiAgICBkZWYg
1434 # d3JpdGVfdGVzdChmKQogICAgICBoZWFkZXJzID0gIiIKICAgICAgaWYgbm90
1435 # IEBvcHRpb25zWzpoZWFkZXJzXS5uaWw/CiAgICAgICAgQG9wdGlvbnNbOmhl
1436 # YWRlcnNdLmVhY2ggeyB8aGVhZGVyfAogICAgICAgICAgaGVhZGVycyArPSAi
1437 # I2luY2x1ZGUgPCN7aGVhZGVyfT5cbiIKICAgICAgICB9CiAgICAgIGVuZAog
1438 # ICAgICBjb2RlID0gJUAKaW50IG1haW4oKQp7CiAgcmV0dXJuIDA7Cn0KQAog
1439 # ICAgICBpZiBub3QgQG9wdGlvbnNbOmN1c3RvbV0ubmlsPwogICAgICAgIGNv
1440 # ZGUgPSBAb3B0aW9uc1s6Y3VzdG9tXQogICAgICBlbmQKICAgICAgCiAgICAg
1441 # IGYgPDwgaGVhZGVycyA8PCAiXG4iIDw8IGNvZGUgPDwgIlxuIgogICAgZW5k
1442 # CiAgZW5kCmVuZAoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1443 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1444 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1445 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1446 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1447 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1448 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1449 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1450 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3Vy
1451 # ZS90ZXN0LnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1452 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1453 # AAAwMDAwNjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwNjMyMAAxMDcwMjMx
1454 # MzIyMwAwMTI1MDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1455 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1456 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAA
1457 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1458 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1459 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1460 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1461 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1462 # AAAAAAAAAAAAcmVxdWlyZSAndG1wZGlyJwpyZXF1aXJlICdmaWxldXRpbHMn
1463 # Cgptb2R1bGUgUW9uZgogIGNsYXNzIFRlc3QKICAgIGF0dHJfcmVhZGVyIDpp
1464 # bmNsdWRlX3BhdGgsIDpsaWJzLCA6ZGVmaW5lcywgOmlkCiAgICAKICAgIGRl
1465 # ZiBpbml0aWFsaXplKG9wdGlvbnMsIGNvbmZpZywgbG9nX2ZpbGUgPSBuaWwp
1466 # CiAgICAgIEBvcHRpb25zID0gb3B0aW9ucwogICAgICAKICAgICAgQGluY2x1
1467 # ZGVfcGF0aCA9IFtdCiAgICAgIEBsaWJzID0gW10KICAgICAgQGRlZmluZXMg
1468 # PSBbXQogICAgICBAaWQgPSBvcHRpb25zWzppZF0KICAgICAgCiAgICAgIEBp
1469 # bmNsdWRlX3BhdGggPSBvcHRpb25zWzppbmNsdWRlcGF0aF0gaWYgbm90IG9w
1470 # dGlvbnNbOmluY2x1ZGVwYXRoXS5uaWw/CiAgICAgIEBsaWJzIDw8IG9wdGlv
1471 # bnNbOmxpYnNdIGlmIG5vdCBvcHRpb25zWzpsaWJzXS5uaWw/CiAgICAgIEBk
1472 # ZWZpbmVzID0gb3B0aW9uc1s6ZGVmaW5lc10gaWYgbm90IG9wdGlvbnNbOmRl
1473 # ZmluZXNdLm5pbD8KICAgICAgCiAgICAgIEBjb25maWcgPSBjb25maWcKICAg
1474 # ICAgCiAgICAgIEBsb2dfZmlsZSA9IGxvZ19maWxlCiAgICBlbmQKICAgIAog
1475 # ICAgZGVmIHJ1bihxbWFrZSkKICAgICAgIyBHZW5lcmF0ZQogICAgICByZXQg
1476 # PSBmYWxzZQogICAgICBjd2QgPSBEaXIuZ2V0d2QKICAgICAgCiAgICAgIHFv
1477 # bmZ0ZXN0X2RpciA9ICIje0Rpcjo6dG1wZGlyfS9xb25mX3Rlc3RzLiN7UHJv
1478 # Y2Vzcy5waWR9IgogICAgICBiYXNlcGF0aCA9IHFvbmZ0ZXN0X2RpcisiL3Rl
1479 # c3RfI3tQcm9jZXNzLnBpZH0iCiAgICAgIAogICAgICBmaWxlcGF0aCA9IGJh
1480 # c2VwYXRoKyIuY3BwIgogICAgICBwcm9wYXRoID0gYmFzZXBhdGgrIi5wcm8i
1481 # CiAgICAgIHRhcmdldCA9ICJ0ZXN0XyN7UHJvY2Vzcy5waWR9X2FwcCIKICAg
1482 # ICAgCiAgICAgIGJlZ2luCiAgICAgICAgRGlyLm1rZGlyKHFvbmZ0ZXN0X2Rp
1483 # cikgaWYgbm90IEZpbGUuZXhpc3RzPyhxb25mdGVzdF9kaXIpCiAgICAgICAg
1484 # RmlsZS5vcGVuKGZpbGVwYXRoLCAidyIpIHsgfGZ8CiAgICAgICAgICAKICAg
1485 # ICAgICAgIHdyaXRlX3Rlc3QoZikKICAgICAgICAgIAogICAgICAgICAgRmls
1486 # ZS5vcGVuKHByb3BhdGgsICJ3IikgeyB8cGZ8CiAgICAgICAgICAgIHBmIDw8
1487 # ICJTT1VSQ0VTICs9ICIgPDwgZmlsZXBhdGggPDwgIlxuIgogICAgICAgICAg
1488 # ICBwZiA8PCAiVEVNUExBVEUgPSBhcHAiIDw8ICJcbiIKICAgICAgICAgICAg
1489 # cGYgPDwgIlRBUkdFVCA9ICIgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAi
1490 # SU5DTFVERVBBVEggKz0gIiA8PCBAaW5jbHVkZV9wYXRoLmpvaW4oIiAiKSA8
1491 # PCAiICIgPDwgQGNvbmZpZy5pbmNsdWRlX3BhdGguam9pbigiICIpIDw8ICJc
1492 # biIKICAgICAgICAgICAgcGYgPDwgIkxJQlMgKz0gIiA8PCBAbGlicy5qb2lu
1493 # KCIgIikgPDwgIiAiIDw8ICBAY29uZmlnLmxpYnMuam9pbigiICIpIDw8ICJc
1494 # biIKICAgICAgICAgICAgcGYgPDwgIkRFRklORVMgKz0gIiA8PCBAZGVmaW5l
1495 # cy5qb2luKCIgIikgPDwgIiAiIDw8IEBjb25maWcuZGVmaW5lcy5qb2luKCIg
1496 # IikgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiQ09ORklHIC09IGRlYnVn
1497 # IiA8PCAiXG4iCiAgICAgICAgICAgIHBmIDw8ICJDT05GSUcgKj0gcmVsZWFz
1498 # ZSIgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiREVTVERJUiA9ICN7cW9u
1499 # ZnRlc3RfZGlyfSIgPDwgIlxuIgogICAgICAgICAgfQogICAgICAgIH0KICAg
1500 # ICAgICAKICAgICAgICAKICAgICAgICBEaXIuY2hkaXIocW9uZnRlc3RfZGly
1501 # KQogICAgICAgIAogICAgICAgIHFtYWtlLnJ1bihwcm9wYXRoKQogICAgICAg
1502 # IHJldCA9IHFtYWtlLmNvbXBpbGUKICAgICAgICBxbWFrZS5jbGVhbl91cAog
1503 # ICAgICAgIAogICAgICAgIERpci5jaGRpcihjd2QpCiAgICAgICAgCiAgICAg
1504 # ICAgRmlsZS51bmxpbmsodGFyZ2V0KSBpZiBGaWxlLmV4aXN0cz8odGFyZ2V0
1505 # KSAjIEZJWE1FOiB3aW5kb3dzCiAgICAgICAgRmlsZS51bmxpbmsocHJvcGF0
1506 # aCkgaWYgRmlsZS5leGlzdHM/KHByb3BhdGgpCiAgICAgICAgRmlsZS51bmxp
1507 # bmsoZmlsZXBhdGgpIGlmIEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkKICAgICAg
1508 # ICBGaWxlVXRpbHMucm1fcmYocW9uZnRlc3RfZGlyKQogICAgICAgIAogICAg
1509 # ICByZXNjdWUgPT4gZQogICAgICAgIHB1dHMgZQogICAgICAgIHB1dHMgZS5i
1510 # YWNrdHJhY2UKICAgICAgICAKICAgICAgICBEaXIuY2hkaXIoY3dkKQogICAg
1511 # ICAgIEZpbGUudW5saW5rKHRhcmdldCkgaWYgRmlsZS5leGlzdHM/KHRhcmdl
1512 # dCkgIyBGSVhNRTogd2luZG93cwogICAgICAgIEZpbGUudW5saW5rKHByb3Bh
1513 # dGgpIGlmIEZpbGUuZXhpc3RzPyhwcm9wYXRoKQogICAgICAgIEZpbGUudW5s
1514 # aW5rKGZpbGVwYXRoKSBpZiBGaWxlLmV4aXN0cz8oZmlsZXBhdGgpCiAgICAg
1515 # ICAgRmlsZVV0aWxzLnJtX3JmKHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAg
1516 # ICAgICByZXR1cm4gZmFsc2UKICAgICAgZW5zdXJlCiAgICAgIGVuZAogICAg
1517 # ICAKICAgICAgcmV0CiAgICBlbmQKICAgIAogICAgZGVmIGFkZF9pbmNsdWRl
1518 # X3BhdGgoaW5jcGF0aCkKICAgICAgQGluY2x1ZGVfcGF0aCA8PCBpbmNwYXRo
1519 # CiAgICBlbmQKICAgIAogICAgZGVmIGFkZF9saWIobGliKQogICAgICBAbGli
1520 # cyA8PCBsaWIKICAgIGVuZAogICAgCiAgICBkZWYgYWRkX2RlZmluZShkZWZp
1521 # bmUpCiAgICAgIEBkZWZpbmVzIDw8IGRlZmluZQogICAgZW5kCiAgICAKICAg
1522 # IHByaXZhdGUKICAgIGRlZiB3cml0ZV90ZXN0KGYpCiAgICAgIGhlYWRlcnMg
1523 # PSAiIgogICAgICBpZiBub3QgQG9wdGlvbnNbOmhlYWRlcnNdLm5pbD8KICAg
1524 # ICAgICBAb3B0aW9uc1s6aGVhZGVyc10uZWFjaCB7IHxoZWFkZXJ8CiAgICAg
1525 # ICAgICBoZWFkZXJzICs9ICIjaW5jbHVkZSA8I3toZWFkZXJ9PlxuIgogICAg
1526 # ICAgIH0KICAgICAgZW5kCiAgICAgIGNvZGUgPSAlQAppbnQgbWFpbigpCnsK
1527 # ICByZXR1cm4gMDsKfQpACiAgICAgIGlmIG5vdCBAb3B0aW9uc1s6Y3VzdG9t
1528 # XS5uaWw/CiAgICAgICAgY29kZSA9IEBvcHRpb25zWzpjdXN0b21dCiAgICAg
1529 # IGVuZAogICAgICAKICAgICAgZiA8PCBoZWFkZXJzIDw8ICJcbiIgPDwgY29k
1530 # ZSA8PCAiXG4iCiAgICAgIAogICAgICBpZiggbm90IEBsb2dfZmlsZS5uaWw/
1531 # ICkKICAgICAgICBGaWxlLm9wZW4oQGxvZ19maWxlLCAiYSIpIGRvIHxsZmls
1532 # ZXwKICAgICAgICAgIGxmaWxlIDw8ICJcblxuXG4tLS0tLS0tLS0tLS1cbiIg
1533 # PDwgaGVhZGVycyA8PCAiXG4iIDw8IGNvZGUgPDwgIlxuLS0tLS0tLS0tLS0t
1534 # XG5cblxuIgogICAgICAgIGVuZAogICAgICBlbmQKICAgIGVuZAogIGVuZApl
1535 # bmQKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1536 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1537 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1538 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1539 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1540 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1541 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1
1542 # cmUvY29uZmlnLnJifgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1543 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1544 # AAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDc0MDYAMTA3MzIz
1545 # NjUyNzMAMDEzMjEzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1546 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1547 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAA
1548 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1549 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1550 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1551 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1552 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1553 # AAAAAAAAAAAAAApyZXF1aXJlICdkZXRlY3RvcycKCm1vZHVsZSBRb25mCgpj
1554 # bGFzcyBQYWNrYWdlCiAgYXR0cl9yZWFkZXIgOmluY2x1ZGVfcGF0aCwgOmxp
1555 # YnMsIDptb2R1bGVzLCA6ZGVmaW5lcywgOm5hbWUKICBkZWYgaW5pdGlhbGl6
1556 # ZShuYW1lKQogICAgQGluY2x1ZGVfcGF0aCA9IFtdCiAgICBAbGlicyA9IFtd
1557 # CiAgICBAbW9kdWxlcyA9IFtdCiAgICBAZGVmaW5lcyA9IFtdCiAgICBAbmFt
1558 # ZSA9IG5hbWUKICBlbmQKICAKICBkZWYgYWRkX2luY2x1ZGVfcGF0aChwYXRo
1559 # KQogICAgQGluY2x1ZGVfcGF0aCA8PCBwYXRoCiAgZW5kCiAgCiAgZGVmIGFk
1560 # ZF9saWIobGliKQogICAgQGxpYnMgPDwgbGliLnRvX3MKICBlbmQKICAKICBk
1561 # ZWYgYWRkX3F0bW9kdWxlKG1vZCkKICAgIEBtb2R1bGVzIDw8IG1vZAogIGVu
1562 # ZAogIAogIGRlZiBhZGRfZGVmaW5lKGRlZmluZSkKICAgIEBkZWZpbmVzIDw8
1563 # IGRlZmluZQogIGVuZAogIAogIGRlZiB3cml0ZShmKQogICAgaWYgbm90IEBp
1564 # bmNsdWRlX3BhdGguZW1wdHk/CiAgICAgICAgZiA8PCAiSU5DTFVERVBBVEgg
1565 # Kz0gIiA8PCBAaW5jbHVkZV9wYXRoLnVuaXEuam9pbigiICIpIDw8ICJcbiIK
1566 # ICAgIGVuZAogICAgCiAgICBpZiBub3QgQGxpYnMuZW1wdHk/CiAgICAgICAg
1567 # ZiA8PCAiTElCUyArPSAiIDw8IEBsaWJzLnVuaXEuam9pbigiICIpIDw8ICJc
1568 # biIKICAgIGVuZAogICAgCiAgICBpZiBub3QgQG1vZHVsZXMuZW1wdHk/CiAg
1569 # ICAgICAgZiA8PCAiUVQgKz0gIiA8PCBAbW9kdWxlcy51bmlxLmpvaW4oIiAi
1570 # KSA8PCAiXG4iCiAgICBlbmQKICAgIAogICAgaWYgbm90IEBkZWZpbmVzLmVt
1571 # cHR5PwogICAgICAgIGYgPDwgIkRFRklORVMgKz0gIiA8PCBAZGVmaW5lcy51
1572 # bmlxLmpvaW4oIiAiKSA8PCAiXG4iCiAgICBlbmQKICBlbmQKZW5kCgpjbGFz
1573 # cyBDb25maWcgPCBQYWNrYWdlCiAgYXR0cl9yZWFkZXIgOmJ1aWxkX2Rpcgog
1574 # IGRlZiBpbml0aWFsaXplCiAgICBzdXBlcihuaWwpCiAgICBAcW9uZl9mZWF0
1575 # dXJlcyA9IFtdCiAgICBAcW9uZl9wYWNrYWdlcyA9IFtdCiAgICBAYnVpbGRf
1576 # ZGlyID0gb2xkbG9jYXRpb24oIiIpKyIvX2J1aWxkXyIKICAgIEB1c2VfZGVi
1577 # dWcgPSBmYWxzZQogIGVuZAogIAogIGRlZiB3aXRoX2RlYnVnCiAgICBAdXNl
1578 # X2RlYnVnID0gdHJ1ZQogIGVuZAoKICBkZWYgYWRkX3FvbmZfcGFja2FnZShw
1579 # a2cpCiAgICBAcW9uZl9wYWNrYWdlcyA8PCBwa2cKICBlbmQKICAKICBkZWYg
1580 # YWRkX3FvbmZfZmVhdHVyZShmdHIpCiAgICBAcW9uZl9mZWF0dXJlcyA8PCBm
1581 # dHIKICBlbmQgCgogIGRlZiBpbmNsdWRlX3BhdGgKICAgIGluY3BhdGggPSBA
1582 # aW5jbHVkZV9wYXRoLmR1cAogICAgCiAgICBAcW9uZl9wYWNrYWdlcy5lYWNo
1583 # IHsgfHBrZ3wKICAgICAgICBpbmNwYXRoLmNvbmNhdCBwa2cuaW5jbHVkZV9w
1584 # YXRoCiAgICB9CiAgICAKICAgIGluY3BhdGgKICBlbmQKICAKICBkZWYgbGli
1585 # cwogICAgbGliID0gQGxpYnMuZHVwCiAgICBAcW9uZl9wYWNrYWdlcy5lYWNo
1586 # IHsgfHBrZ3wKICAgICAgICBsaWIuY29uY2F0IHBrZy5saWJzCiAgICB9CiAg
1587 # ICAKICAgIGxpYgogIGVuZAogIAogIGRlZiBsaWJyYXJ5X3BhdGgKICAgIGxp
1588 # YnNfYSA9IFtdCgogICAgc3BsaXR0ZWQgPSBAbGlicy5qb2luKCIgIikuc3Bs
1589 # aXQoIiAiKQogICAgc3BsaXR0ZWQuZWFjaCB7IHxzcHwKICAgICAgICBpZigg
1590 # c3AgPX4gLy1MKC4rKVxzKi8gKQogICAgICAgICAgICBsaWJzX2EgPDwgJDEK
1591 # ICAgICAgICBlbmQKICAgIH0KICAgIAogICAgbGlic19hCiAgZW5kCiAgCiAg
1592 # ZGVmIGRlZmluZXMKICAgIGRlZnMgPSBAZGVmaW5lcy5kdXAKICAgIAogICAg
1593 # QHFvbmZfcGFja2FnZXMuZWFjaCB7IHxwa2d8CiAgICAgICAgZGVmcy5jb25j
1594 # YXQgcGtnLmRlZmluZXMKICAgIH0KICAgIAogICAgZGVmcwogIGVuZAogIAog
1595 # IGRlZiBzYXZlKHBhdGgpCiAgICBpZiBwYXRoWzBdLmNociA9PSBGaWxlOjpT
1596 # RVBBUkFUT1IKICAgICAgICBwYXRoID0gcGF0aAogICAgZWxzZQogICAgICAg
1597 # IHBhdGggPSAiI3tEaXIuZ2V0d2R9LyN7cGF0aH0iCiAgICBlbmQKICAgIAog
1598 # ICAgRmlsZS5vcGVuKHBhdGgsICJ3IikgeyB8ZnwKICAgICAgICBmIDw8ICIj
1599 # IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGF0ICN7VGltZS5ub3d9ISBQTEVB
1600 # U0UgRE8gTk9UIEVESVQgTUFOVUFMTFkhIjw8ICJcbiIKICAgICAgICAKICAg
1601 # ICAgICBmIDw8ICJQUk9KRUNUX0RJUiA9ICIgPDwgb2xkbG9jYXRpb24oIiIp
1602 # IDw8ICJcbiIKICAgICAgICBmIDw8ICJCVUlMRF9ESVIgPSAje0BidWlsZF9k
1603 # aXJ9XG4iCiAgICAgICAgCiAgICAgICAgZiA8PCAnY29udGFpbnMoVEVNUExB
1604 # VEUsICJhcHAiKSB7JyA8PCAiXG4iCiAgICAgICAgZiA8PCAiREVTVERJUiA9
1605 # ICQkQlVJTERfRElSL2JpblxuIgogICAgICAgIGYgPDwgJ30gZWxzZTpjb250
1606 # YWlucyhURU1QTEFURSwgImxpYiIpIHsnIDw8ICJcbiIKICAgICAgICBmIDw8
1607 # ICJERVNURElSID0gJCRCVUlMRF9ESVIvbGliXG4iCiAgICAgICAgZiA8PCAn
1608 # fSBlbHNlIHsnIDw8ICJcbiIKICAgICAgICBmIDw8ICJERVNURElSID0gJCRC
1609 # VUlMRF9ESVJcbiIKICAgICAgICBmIDw8ICJ9XG5cblxuIgogICAgICAgIAog
1610 # ICAgICAgIGlmIEB1c2VfZGVidWcKICAgICAgICAgICAgZiA8PCAiQ09ORklH
1611 # ICs9IGRlYnVnXG4iCiAgICAgICAgZWxzZQogICAgICAgICAgICBmIDw8ICJD
1612 # T05GSUcgKz0gXG4iCiAgICAgICAgZW5kCiAgICAgICAgCiAgICAgICAgZiA8
1613 # PCAiTElCUyArPSAtTCQkQlVJTERfRElSL2xpYlxuIgogICAgICAgIGYgPDwg
1614 # IlJFTEFUSVZFX1BBVEggPSAkJHJlcGxhY2UoX1BST19GSUxFX1BXRF8sICQk
1615 # UFJPSkVDVF9ESVIsICIiKVxuIgogICAgICAgIGYgPDwgIkNVUlJFTlRfQlVJ
1616 # TERfRElSID0gJCRCVUlMRF9ESVIkJFJFTEFUSVZFX1BBVEhcbiIKICAgICAg
1617 # ICAKaWYgRGV0ZWN0T1Mub3M/ICE9IDEgIyBEaXNhYmxlZCBiZWNhdXNlIFdp
1618 # bmRvd3Mgc3Vja3MuCiAgICAgICAgZiA8PCAiT0JKRUNUU19ESVIgPSAkJENV
1619 # UlJFTlRfQlVJTERfRElSXG4iCiAgICAgICAgZiA8PCAiTU9DX0RJUiA9ICQk
1620 # Q1VSUkVOVF9CVUlMRF9ESVJcbiIKICAgICAgICBmIDw8ICJVSV9ESVIgPSAk
1621 # JENVUlJFTlRfQlVJTERfRElSXG5cbiIKZW5kCiAgICAgICAgCiAgICAgICAg
1622 # d3JpdGUoZikKICAgICAgICAKICAgICAgICAKICAgICAgICBmIDw8ICJRT05G
1623 # X0ZFQVRVUkVTICs9ICIgPDwgQHFvbmZfcGFja2FnZXMubWFwIHsgfGV8IGUu
1624 # bmFtZSB9LmpvaW4oIiAiKSAgPDwgIlxuIgogICAgICAgIGYgPDwgIlFPTkZf
1625 # RkVBVFVSRVMgKz0gIiA8PCBAcW9uZl9mZWF0dXJlcy5qb2luKCIgIikgIDw8
1626 # ICJcbiIKICAgICAgICAKICAgICAgICBmIDw8ICJcbmRlZmluZVRlc3QobGlu
1627 # a193aXRoKSB7IiA8PCAiXG4iCiAgICAgICAgZiA8PCAiICByZXQgPSBmYWxz
1628 # ZVxuIgogICAgICAgIEBxb25mX3BhY2thZ2VzLmVhY2ggeyB8cW9uZnwKICAg
1629 # ICAgICAgIGYgPDwgJUAgIGNvbnRhaW5zKCQkbGlzdCgkJHNwbGl0KDEpKSAs
1630 # IiN7cW9uZi5uYW1lfSIpIHtcbkAKICAgICAgICAgIGYgPDwgIiAgICByZXQg
1631 # PSB0cnVlXG4iCiAgICAgICAgICBmIDw8ICIgICAgbWVzc2FnZSg9PiBMaW5r
1632 # aW5nIHFvbmYgbW9kdWxlOiAje3FvbmYubmFtZX0pXG4iCiAgICAgICAgICBx
1633 # b25mLndyaXRlKGYpCiAgICAgICAgICBmIDw8ICIgIH1cbiIKICAgICAgICB9
1634 # CiAgICAgICAgZiA8PCAiICBleHBvcnQoSU5DTFVERVBBVEgpXG4iCiAgICAg
1635 # ICAgZiA8PCAiICBleHBvcnQoTElCUylcbiIKICAgICAgICBmIDw8ICIgIGV4
1636 # cG9ydChRVClcbiIKICAgICAgICBmIDw8ICIgIGV4cG9ydChERUZJTkVTKVxu
1637 # IgogICAgICAgIGYgPDwgIiAgcmV0dXJuKCQkcmV0KVxuIgogICAgICAgIGYg
1638 # PDwgIn1cbiIKICAgIH0KICBlbmQKZW5kCgplbmQKCgAAAAAAAAAAAAAAAAAA
1639 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1640 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1641 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1642 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1643 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1644 # AAAAAAAAAAAAAABxb25maWd1cmUvc2V0dXBfcmIudHBsAAAAAAAAAAAAAAAA
1645 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1646 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEA
1647 # MDAwMDAwMDYyMzcAMTA2NzM1MDIwNDMAMDEzNTYwACAwAAAAAAAAAAAAAAAA
1648 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1649 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVz
1650 # dGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1651 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1652 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1653 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1654 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1655 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCiMgc2V0dXAgaXMgYSBv
1656 # YmplY3QgdGhhdCBoZWxwcyB0byBjb25maWd1cmUgdGhlIHByb2plY3QKIyBJ
1657 # dCBjb250YWlucyBzb21lIG1ldGhvZHMgbGlrZToKIyAgIGFkZF9vcHRpb24K
1658 # IyAgIGZpbmRfcGFja2FnZQojICAgYWRkX3Rlc3QKIyAgIGdlbmVyYXRlX3Br
1659 # Z2NvbmZpZwpkZWYgY29uZmlndXJlKHNldHVwKQojIyMjIAojIyMjIFZlcmlm
1660 # eSBmb3IgUXQgdmVyc2lvbi4KIyMjIyAKIyBzZXR1cC5xdCA+PSAiNC4yLjAi
1661 # CgojIyMjIAojIyMjIGFkZF9vcHRpb24gYWRkcyBhbiBvcHRpb24gdG8gdGhl
1662 # IHNjcmlwdCwgaXQgaGFzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIyMjIyA6
1663 # bmFtZSAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBvcHRpb24uCiMjIyMgOnR5
1664 # cGUgICAgICAgICBUaGUgdHlwZSBvZiB0aGUgb3B0aW9uICgicGF0aCIsICJz
1665 # dHJpbmciLCAiYm9vbCIgb3IgInZvaWQiKS4KIyMjIyA6b3B0aW9uYWwgICAg
1666 # IFNheXMgaWYgdGhlIG9wdGlvbiBpcyByZXF1aXJlZCBvciBub3QuCiMjIyMg
1667 # OmRlc2NyaXB0aW9uICBEZXNjcmlwdGlvbiBvZiB0aGUgb3B0aW9uCiMjIyMg
1668 # OmRlZmF1bHQgICAgICBUaGUgZGVmYXVsdCB2YWx1ZQojIyMjIAojICAgc2V0
1669 # dXAuYWRkX29wdGlvbig6bmFtZSA9PiAib3B0aW9uLW5hbWUiLCA6dHlwZSA9
1670 # PiAicGF0aCIsIDpvcHRpb25hbCA9PiBmYWxzZSwgOmRlc2NyaXB0aW9uID0+
1671 # ICJTZXRzIGFuIG9wdGlvbiIpCiAgCiMjIyMgCiMjIyMgZmluZF9wYWNrYWdl
1672 # IHNlYXJjaCBmb3IgYSBwa2djb25maWcgc3BlYyBpbiB5b3VyIGNvbXB1dGVy
1673 # LCBpdCBzZWFyY2ggaW4gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVu
1674 # dCB2YXJpYWJsZSBvciBMRF9MSUJSQVJZX1BBVEgKIyMjIyBUaGUgb3B0aW9u
1675 # cyBhcmU6CiMjIyMgOm5hbWUgICAgICAgUGFja2FnZSBuYW1lCiMjIyMgOm9w
1676 # dGlvbmFsICAgVHJ1ZSBpZiB0aGUgcGFja2FnZSBpcyBvcHRpb25hbAojIyMj
1677 # IDpnbG9iYWwgICAgIExpbmsgZ2xvYmFsbHkKIyMjIyAKIyAgIHNldHVwLmZp
1678 # bmRfcGFja2FnZSg6bmFtZSA9PiAiZGJ1cy0xIiwgOm9wdGlvbmFsID0+IGZh
1679 # bHNlLCA6Z2xvYmFsID0+IHRydWUpCgojIyMjIAojIyMjIGFkZF90ZXN0IGFk
1680 # ZHMgYW5kIHJ1biBhIHRlc3QgZm9yIHNvbWUgZmVhdHVyZSBvciBwYWNrYWdl
1681 # LCB0aGUgb3B0aW9ucyBhcmU6CiMjIyMgICA6aWQgICAgICAgICAgIFRoZSBp
1682 # ZCBvZiB0aGUgdGVzdAojIyMjICAgOm5hbWUgICAgICAgICBUaGUgdGVzdCBu
1683 # YW1lCiMjIyMgICA6ZGVmaW5lcyAgICAgIERlZmluZXMgdG8gdGVzdAojIyMj
1684 # ICAgOmluY2x1ZGVwYXRoICBBIGxpc3Qgd2l0aCB0aGUgaW5jbHVkZSBwYXRo
1685 # CiMjIyMgICA6bGlicyAgICAgICAgIFRoZSBsaWJzIHJlcXVpcmVkIGZvciB0
1686 # aGUgdGVzdAojIyMjICAgOm9wdGlvbmFsICAgICBUcnVlIGlmIHRoZSB0ZXN0
1687 # IGlzIG9wdGlvbmFsCiMjIyMgICA6Y3VzdG9tICAgICAgIEEgY29kZSB0byB0
1688 # ZXN0CiMjIyMgICA6Z2xvYmFsICAgICAgIExpbmsgZ2xvYmFsbHkKIyMjIyAK
1689 # IyBzZXR1cC5hZGRfdGVzdCg6aWQgPT4gImZlYXR1cmUiLCA6bmFtZSA9PiAi
1690 # RmVhdHVyZSBzdXBwb3J0IiwgOmRlZmluZXMgPT4gWyJIQVZFX0ZFQVRVUkUi
1691 # XSwgOm9wdGlvbmFsID0+IHRydWUsIDpoZWFkZXJzID0+IFsiZmVhdHVyZS5o
1692 # Il0sIDpsaWJzID0+ICItbGZlYXR1cmUiLCA6Z2xvYmFsID0+IHRydWUgICkK
1693 # CiMjIyMgCiMjIyMgZ2VuZXJhdGVfcGtnY29uZmlnIEdlbmVyYXRlcyBhIHNp
1694 # bXBsZSBwa2djb25maWcgZmlsZQojIyMjIFRoZSBvcHRpb25zIGFyZToKIyMj
1695 # IyAgIDpwYWNrYWdlX25hbWUgIFRoZSBwYWNrYWdlIG5hbWUgCiMjIyMgICA6
1696 # bmFtZSAgICAgICAgICBUaGUgYXBwbGljYXRpb24gbmFtZQojIyMjICAgOmRl
1697 # c2NyaXB0aW9uICAgVGhlIGFwcGxpY2F0aW9uIGRlc2NyaXB0aW9uCiMjIyMg
1698 # ICA6dmVyc2lvbiAgICAgICBUaGUgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRp
1699 # b24KIyMjIyAgIDpsaWJkaXIgICAgICAgIFRoZSBkaXJlY3Rvcnkgd2hlcmUg
1700 # bGlicmFyaWVzIGFyZSwgYnkgZGVmYXVsdCBpcyAkKHByZWZpeCkvbGliCiMj
1701 # IyMgICA6aW5jbHVkZWRpciAgICBUaGUgZGlyZWN0b3J5IHdoZXJlIGhlYWRl
1702 # cnMgYXJlLCBieSBkZWZhdWx0IGlzICQocHJlZml4KS9pbmNsdWRlCiMjIyMg
1703 # ICA6bGlicyAgICAgICAgICBMaWJyYXJpZXMgdGhhdCBsaW5rcyB0aGUgcGFj
1704 # a2FnZQojIyMjICAgOmNmbGFncyAgICAgICAgQ2ZsYWdzIGZvciB0aGUgcGFj
1705 # a2FnZQojIyMjICAgOnJlcXVpcmVzICAgICAgQSBsaXN0IG9mIHBhY2thZ2Ug
1706 # bmFtZXMgcmVxdWlyZWQgZm9yIHRoaXMgcGFja2FnZS4KIyMjIyAKIyBzZXR1
1707 # cC5nZW5lcmF0ZV9wa2djb25maWcoOnBhY2thZ2VfbmFtZSA9PiAiZGxpYi1l
1708 # ZGl0b3IiLCA6bmFtZSA9PiAiRExpYiBRdCBsaWJyYXJ5IiwgOmRlc2NyaXB0
1709 # aW9uID0+ICJBIGV4dGVuc2lvbiBmb3IgUXQ0IiwgOnZlcnNpb24gPT4gIjAu
1710 # MWJldGEiLCA6bGliZGlyID0+IG5pbCwgOmluY2x1ZGVkaXIgPT4gbmlsLCA6
1711 # bGlicyA9PiAiLUwke2xpYmRpcn0gLWxkY29yZSAtbGRndWkgLWxkZWRpdG9y
1712 # IiwgOmNmbGFncyA9PiAiLUkke2luY2x1ZGVkaXJ9IiwgOnJlcXVpcmVzID0+
1713 # IFsic29tZXBhY2thZ2UiLCAib3RoZXJwYWNrYWdlIiBdICkKZW5kCgojIFRo
1714 # aXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgdG8gc2VhcmNoIGEgcGFja2Fn
1715 # ZQpkZWYgc2V0dXBfcGtnY29uZmlnKHBrZ2NvbmZpZywgYXJncykKIyAgIGNh
1716 # c2UgcGtnY29uZmlnLmlkCiMgICAgIHdoZW4gImRidXMtMSIKIyAgICAgICBw
1717 # a2djb25maWcuYWRkX3NlYXJjaF9wYXRoKCIvYS9wYXRoL3RvL3RoZS9wYyIp
1718 # CiMgICBlbmQKZW5kCgpkZWYgc2V0dXBfdGVzdChpZCwgdHN0LCBhcmdzKQoj
1719 # ICAgY2FzZSBpZAojICAgICB3aGVuICJmZWF0dXJlIgojICAgICAgIHRzdC5h
1720 # ZGRfZGVmaW5lKCJNWURFRklORSIpCiMgICAgICAgdHN0LmFkZF9saWIoIi1s
1721 # bXlsaWIiKQojICAgICAgIHRzdC5hZGRfaW5jbHVkZV9wYXRoKCIvc29tZS9p
1722 # bmNsdWRlL3BhdGgvcmVxdWlyZWQvdG8vY29tcGlsZS90aGUvdGVzdCIpCiMg
1723 # ICBlbmQKZW5kCgpkZWYgc2V0dXBfY29uZmlnKGNmZywgYXJncykKIyAgIGNm
1724 # Zy5hZGRfaW5jbHVkZV9wYXRoIEZpbGUuZXhwYW5kX3BhdGgoInNyYyIpCiMg
1725 # ICBjZmcuYWRkX2RlZmluZSgiX19TVERDX0NPTlNUQU5UX01BQ1JPUyIpCiMg
1726 # ICBjZmcuYWRkX3F0bW9kdWxlKCJ4bWwiKQojICAgY2ZnLmFkZF9xdG1vZHVs
1727 # ZSgibmV0d29yayIpCmVuZAoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1728 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1729 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1730 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1731 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1732 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1733 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1734 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1735 # AAAAAAAAAAAAAAAAcW9uZmlndXJlL3FtYWtlLnJiAAAAAAAAAAAAAAAAAAAA
1736 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1737 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUx
1738 # ADAwMDAwMDA3MzMzADEwNzA1MDIwNTI3ADAxMjYzMwAgMAAAAAAAAAAAAAAA
1739 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1740 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1
1741 # c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1742 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1743 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1744 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1745 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1746 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcmVxdWlyZSAnb3BlbjMn
1747 # CnJlcXVpcmUgJ2RldGVjdG9zJwoKbW9kdWxlIFFvbmYKCmNsYXNzIFFNYWtl
1748 # CiAgYXR0cl9yZWFkZXIgOnBhdGgKICAKICBkZWYgaW5pdGlhbGl6ZShwYXRo
1749 # cyA9IFtdLCBsb2dfZmlsZSA9IG5pbCkKICAgIEBwYXRocyA9IFsgInFtYWtl
1750 # LXF0NCIsICJxbWFrZTQiLCAicW1ha2UiIF0KICAgIEBwYXRocy5jb25jYXQo
1751 # cGF0aHMpCiAgICAKICAgIGlmKCAkREVCVUcgKQogICAgICAkc3RkZXJyIDw8
1752 # ICJRTWFrZSBwYXRoczogIiA8PCBAcGF0aHMuam9pbigiICIpIDw8ICJcbiIK
1753 # ICAgIGVuZAogICAgCiAgICBpZiBub3QgZmluZF9xbWFrZSgiNC4wLjAiKQog
1754 # ICAgICAgICAgICByYWlzZSAiQ2FuJ3QgZmluZCB2YWxpZCBxbWFrZSAtIHF0
1755 # NCIKICAgIGVuZAogICAgCiAgICBAbG9nX2ZpbGUgPSBsb2dfZmlsZQogICAg
1756 # aWYoIEBsb2dfZmlsZS5uaWw/ICkKICAgICAgQGxvZ19maWxlID0gb2xkbG9j
1757 # YXRpb24oImNvbmZpZy5sb2ciKQogICAgZW5kCiAgICAKICAgIEBtYWtlID0g
1758 # Im1ha2UiCiAgICAKICAgIGlmIERldGVjdE9TLm9zPyA9PSAxCiAgICAgIEBt
1759 # YWtlX29wdGlvbnMgPSAiMj4+ICN7QGxvZ19maWxlfSIKICAgIGVsc2UKICAg
1760 # ICAgQG1ha2Vfb3B0aW9ucyA9ICI+PiAje0Bsb2dfZmlsZX0gMj4+ICN7QGxv
1761 # Z19maWxlfSIKICAgIGVuZAogIGVuZAogICAgICAgIAogIGRlZiBmaW5kX3Ft
1762 # YWtlKG1pbnF0dmVyc2lvbiwgb3AgPSAyKQogICAgCiAgICAKICAgIG1pbnZl
1763 # ciA9IG1pbnF0dmVyc2lvbi5zcGxpdCgiLiIpCiAgICBAcGF0aHMuZWFjaCB7
1764 # IHxwYXRofAogICAgICBiZWdpbgogICAgICAgIHZlcnNpb24gPSBbXQogICAg
1765 # ICAgIG9rID0gdHJ1ZQogICAgICAgIAogICAgICAgIElPLnBvcGVuKCIje3Bh
1766 # dGh9IC1xdWVyeSBRVF9WRVJTSU9OIDI+ICN7bmV3bG9jYXRpb24oInFtYWtl
1767 # X2xvZyIpfSIpIHsgfHByY3wKICAgICAgICAgIHZlcnNpb24gPSBwcmMucmVh
1768 # ZGxpbmVzLmpvaW4oIiIpLnNwbGl0KCIuIikKICAgICAgICB9CiAgICAgICAg
1769 # CiAgICAgICAgbmV4dCBpZiAkPyAhPSAwCiAgICAgICAgCiAgICAgICAgdmVy
1770 # c2lvbi5zaXplLnRpbWVzIHsgfGl8CiAgICAgICAgICBpZiB2ZXJzaW9uLnNp
1771 # emUgPCBpIGFuZCBtaW52ZXIuc2l6ZSA+PSAzCiAgICAgICAgICAgICAgICAg
1772 # IGJyZWFrCiAgICAgICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAgY2Fz
1773 # ZSBvcAogICAgICAgICAgICB3aGVuIDAKICAgICAgICAgICAgICBpZiB2ZXJz
1774 # aW9uW2ldICE9IG1pbnZlcltpXQogICAgICAgICAgICAgICAgb2sgPSBmYWxz
1775 # ZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICBlbmQKICAg
1776 # ICAgICAgICAgd2hlbiAxCiAgICAgICAgICAgICAgaWYgdmVyc2lvbltpXSA8
1777 # IG1pbnZlcltpXQogICAgICAgICAgICAgICAgb2sgPSBmYWxzZQogICAgICAg
1778 # ICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAg
1779 # d2hlbiAyCiAgICAgICAgICAgICAgaWYgdmVyc2lvbltpXSA8IG1pbnZlcltp
1780 # XQogICAgICAgICAgICAgICAgb2sgPSBmYWxzZQogICAgICAgICAgICAgICAg
1781 # YnJlYWsKICAgICAgICAgICAgICBlbmQKICAgICAgICAgIGVuZAogICAgICAg
1782 # IH0KICAgICAgICAKICAgICAgICBpZiBvawogICAgICAgICAgQHBhdGggPSBw
1783 # YXRoCiAgICAgICAgICAKICAgICAgICAgIGlmICRERUJVRwogICAgICAgICAg
1784 # ICBwdXRzICJVc2luZyBxbWFrZTogI3tAcGF0aH0gI3t2ZXJzaW9uLmpvaW4o
1785 # Ii4iKX0iCiAgICAgICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAgcmV0
1786 # dXJuIG9rCiAgICAgICAgZW5kCiAgICAgIHJlc2N1ZQogICAgICBlbnN1cmUK
1787 # ICAgICAgZW5kCiAgICB9CiAgCiAgICByZXR1cm4gZmFsc2UKICBlbmQKICAg
1788 # ICAgICAKICAgICAgICBkZWYgcXVlcnkodmFyKQogICAgICAgICAgICAgICAg
1789 # b3V0cHV0ID0gYCN7QHBhdGh9IC1xdWVyeSAje3Zhcn1gCiAgICAgICAgICAg
1790 # ICAgICBvdXRwdXQKICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBkZWYg
1791 # cnVuKGFyZ3MgPSAiIiwgcmVjdXIgPSBmYWxzZSkKICAgICAgICAgICAgICAg
1792 # IGlmICRERUJVRwogICAgICAgICAgICAgICAgICBwdXRzICJBUkdTID0gI3th
1793 # cmdzfSIKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgb3B0
1794 # aW9ucyA9ICIiCiAgICAgICAgICAgICAgICBpZiByZWN1cgogICAgICAgICAg
1795 # ICAgICAgICAgICAgICBvcHRpb25zICs9ICItciIKICAgICAgICAgICAgICAg
1796 # IGVuZAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBvdXRwdXQg
1797 # PSBgI3tAcGF0aH0gI3thcmdzfSAje29wdGlvbnN9IGAKICAgICAgICAgICAg
1798 # ICAgIGlmIG91dHB1dC5zdHJpcC5lbXB0eT8KICAgICAgICAgICAgICAgICAg
1799 # ICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgICAgICAgIGVuZAoKICAgICAg
1800 # ICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIGVuZAogICAgICAgIAog
1801 # ICAgICAgIGRlZiBjb21waWxlCiAgICAgICAgICAgICAgICBiZWdpbgogICAg
1802 # ICAgICAgICAgICAgICAgICAgICBJTy5wb3BlbigiI3tAbWFrZX0gY2xlYW4g
1803 # I3tAbWFrZV9vcHRpb25zfSIpIHsgfGN8CiAgICAgICAgICAgICAgICAgICAg
1804 # ICAgICAgICAgICAgb3V0cHV0ID0gYy5yZWFkbGluZXMKICAgICAgICAgICAg
1805 # ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
1806 # ICAgICAgICAgICAgICAgICAgdGltZXMgPSAwCiAgICAgICAgICAgICAgICAg
1807 # ICAgICAgIGVuZGNvZGUgPSAyCiAgICAgICAgICAgICAgICAgICAgICAgIAog
1808 # ICAgICAgICAgICAgICAgICAgICAgICBGaWxlLm9wZW4oQGxvZ19maWxlLCAi
1809 # YSIgKSBkbyB8ZnwKICAgICAgICAgICAgICAgICAgICAgICAgICBmIDw8ICI9
1810 # PT09PT4gQ09NUElMSU5HIFxuIgogICAgICAgICAgICAgICAgICAgICAgICBl
1811 # bmQKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
1812 # ICAgICAgIHdoaWxlIGVuZGNvZGUgPT0gMiBhbmQgdGltZXMgPD0gMwogICAg
1813 # ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPLnBvcGVuKCIje0BtYWtl
1814 # fSAje0BtYWtlX29wdGlvbnN9IiwgInIiKSB7IHxjfAogICAgICAgICAgICAg
1815 # ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gYy5yZWFkbGlu
1816 # ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
1817 # ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
1818 # ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
1819 # ZW5kY29kZSA9ICQ/ID4+IDgKICAgICAgICAgICAgICAgICAgICAgICAgICAg
1820 # ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcyAr
1821 # PSAxCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg
1822 # ICAgICAgICAgICAKICAgICAgICAgICAgICAgIHJlc2N1ZQogICAgICAgICAg
1823 # ICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgICAgIGVu
1824 # ZAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiBlbmRjb2Rl
1825 # ICE9IDAKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAg
1826 # ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgIAogICAgICAgICAg
1827 # ICAgICAgcmV0dXJuIHRydWUKICAgICAgICBlbmQKICAgICAgICAKICAgICAg
1828 # ICBkZWYgY2xlYW5fdXAKICAgICAgSU8ucG9wZW4oIiN7QG1ha2V9IGRpc3Rj
1829 # bGVhbiAyPj4gZGlzdGNsZWFuIikgeyB8Y3wKICAgICAgICAgIG91dHB1dCA9
1830 # IGMucmVhZGxpbmVzCiAgICAgIH0KICAgICAgICBlbmQKZW5kCgplbmQgI21v
1831 # ZHVsZQoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1832 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1833 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1834 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1835 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1836 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1837 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL3BrZ2Nv
1838 # bmZpZy5yYn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1839 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2
1840 # NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDA2NzE1ADEwNzIzMzQzMTIyADAx
1841 # MzcwNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1842 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1843 # AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAA
1844 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1845 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1846 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1847 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1848 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1849 # AAAKCnJlcXVpcmUgJ2RldGVjdG9zJwoKbW9kdWxlIFFvbmYKCmNsYXNzIFBr
1850 # Z0NvbmZpZ1BhcnNlcgogIGRlZiBpbml0aWFsaXplCiAgICBAdmFyaWFibGVz
1851 # ID0ge30KICAgIEBzcGVjcyA9IHt9CiAgZW5kCiAgCiAgZGVmIHBhcnNlKHBh
1852 # dGgpCiAgICBGaWxlLm9wZW4ocGF0aCkgeyB8ZmlsZXwKICAgICAgZmlsZS5l
1853 # YWNoIHsgfGxpbmV8CiAgICAgICAgaWYgbGluZSA9fiAvKFx3Kyk9KC4qKSQv
1854 # CiAgICAgICAgICBAdmFyaWFibGVzWyQxXSA9ICQyCiAgICAgICAgZWxzaWYg
1855 # bGluZSA9fiAvKFx3Kyk6XHMoLiopJC8KICAgICAgICAgIEBzcGVjc1skMV0g
1856 # PSAkMgogICAgICAgIGVuZAogICAgICB9CiAgICB9CiAgZW5kCiAgCiAgZGVm
1857 # IHZhbHVlKHZhcmlhYmxlKQogICAgdmFsID0gQHZhcmlhYmxlc1t2YXJpYWJs
1858 # ZV0KICAgIHdoaWxlIHZhbCA9fiAvKFwkXHsoXHcrKVx9KS8KICAgICAgdmFs
1859 # LmdzdWIhKCQxLCB2YWx1ZSgkMikpCiAgICBlbmQKICAgIAogICAgdmFsCiAg
1860 # ZW5kCiAgCiAgZGVmIHNwZWModmFyaWFibGUpCiAgICB2YWwgPSBAc3BlY3Nb
1861 # dmFyaWFibGVdCiAgICB3aGlsZSB2YWwgPX4gLyhcJFx7KFx3KylcfSkvCiAg
1862 # ICAgIHZhbC5nc3ViISgkMSwgdmFsdWUoJDIpKQogICAgZW5kCiAgICAKICAg
1863 # IHZhbAogIGVuZAogIAogIGRlZiBsaWJzCiAgICBzcGVjKCJMaWJzIikKICBl
1864 # bmQKICAKICBkZWYgY2ZsYWdzCiAgICBzcGVjKCJDZmxhZ3MiKQogIGVuZAog
1865 # IAogIGRlZiByZXF1aXJlcwogICAgc3BlYygiUmVxdWlyZXMiKS50b19zCiAg
1866 # ZW5kCmVuZAoKY2xhc3MgUGtnQ29uZmlnCiAgYXR0cl9yZWFkZXIgOmlkLCA6
1867 # bGlicywgOmNmbGFncywgOnJlcXVpcmVzCiAgCiAgZGVmIGluaXRpYWxpemUo
1868 # aWQpCiAgICBAaWQgPSBpZAogICAgQHNlYXJjaF9wYXRoID0gW10KICAgIEBy
1869 # ZXF1aXJlcyA9IFtdCiAgZW5kCiAgCiAgZGVmIGZpbmQocGtnKQogICAgcGtn
1870 # cGF0aCA9IGZpbmRfcGF0aF9mb3JfcGFja2FnZShwa2cpCiAgICAKICAgIGlm
1871 # IG5vdCBwa2dwYXRoLm5pbD8KICAgICAgQGNmbGFncyA9ICIiCiAgICAgIEBs
1872 # aWJzID0gIiIKICAgICAgcGFyc2UocGtncGF0aCwgcGtnKQogICAgICAKICAg
1873 # ICAgcmV0dXJuIHRydWUKICAgIGVuZAogICAgCiAgICBmYWxzZQogIGVuZAog
1874 # IAogIGRlZiBhZGRfc2VhcmNoX3BhdGgocGF0aCkKICAgIGlmIHBhdGgua2lu
1875 # ZF9vZj8oQXJyYXkpCiAgICAgIEBzZWFyY2hfcGF0aC5jb25jYXQocGF0aCkK
1876 # ICAgIGVsc2UKICAgICAgQHNlYXJjaF9wYXRoIDw8IHBhdGgudG9fcwogICAg
1877 # ZW5kCiAgZW5kCiAgCiAgZGVmIGluY2x1ZGVfcGF0aAogICAgaW5jcGF0aCA9
1878 # IFtdCiAgICBjZmxhZ3MgPSBAY2ZsYWdzLmR1cAogICAgd2hpbGUgY2ZsYWdz
1879 # ID1+IC8oLUkoKFx3Oil7MCwxfShbXC9cXF1cUyspKykpLwogICAgICBpbmNw
1880 # YXRoIDw8ICQyCiAgICAgIGNmbGFncy5zdWIhKCQxLCAiIikKICAgIGVuZAog
1881 # ICAgCiAgICBpbmNwYXRoLnVuaXEKICBlbmQKICAKICBkZWYgZGVmaW5lcwog
1882 # ICAgZGVmaW5lcyA9IFtdCiAgICBjZmxhZ3MgPSBAY2ZsYWdzLmR1cAogICAg
1883 # d2hpbGUgY2ZsYWdzID1+IC8oLURccyooKFxXXHcrKSspKS8KICAgICAgZGVm
1884 # aW5lcyA8PCAkMgogICAgICBkZWZpbmVzLnN1YiEoJDEsICIiKQogICAgZW5k
1885 # CiAgICAKICAgIGRlZmluZXMudW5pcQogIGVuZAogIAogIGRlZiBmaW5kX3dp
1886 # bjMyX3BhdGhzCiAgICBwYXRocyA9IGZpbmRfZW52X3BhdGhzCiAgICAKICAg
1887 # IAogICAgcGF0aHMKICBlbmQKICAKICBkZWYgZmluZF91bml4X3BhdGhzCiAg
1888 # ICBwYXRocyA9IGZpbmRfZW52X3BhdGhzCiAgICBpZiBGaWxlLmV4aXN0cz8o
1889 # Ii9ldGMvbGQuc28uY29uZiIpCiAgICAgIEZpbGUub3BlbigiL2V0Yy9sZC5z
1890 # by5jb25mIikgZG8gfGZpbGV8CiAgICAgICAgZmlsZS5lYWNoIHsgfGxpbmV8
1891 # CiAgICAgICAgICBkaXIgPSBsaW5lLnN0cmlwKyIvcGtnY29uZmlnIgogICAg
1892 # ICAgICAgaWYgRmlsZS5leGlzdHM/KGRpcikKICAgICAgICAgICAgcGF0aHMg
1893 # PDwgZGlyCiAgICAgICAgICBlbmQKICAgICAgICB9CiAgICAgIGVuZAogICAg
1894 # ZW5kCiAgICAKICAgIHBhdGhzIDw8ICIvdXNyL2xpYi9wa2djb25maWciIDw8
1895 # ICIvdXNyL2xvY2FsL2xpYi9wa2djb25maWciIDw8IEVOVlsiSE9NRSJdLnRv
1896 # X3MrIi9sb2NhbC9saWIvcGtnY29uZmlnIgogICAgCiAgICBwYXRocwogIGVu
1897 # ZAogIAogIGRlZiBmaW5kX2Vudl9wYXRocwogICAgc2VwcGF0aCA9IChEZXRl
1898 # Y3RPUy5vcz8gPT0gMSkgPyAiOyIgOiAiOiIKICAgIAogICAgcGF0aHMgPSBb
1899 # ICIuIiBdCiAgICAoRU5WWyJQS0dfQ09ORklHX1BBVEgiXS50b19zK3NlcHBh
1900 # dGgrRU5WWyJMRF9MSUJSQVJZX1BBVEgiXS50b19zKS5zcGxpdChzZXBwYXRo
1901 # KS5lYWNoIHsgfHBhdGh8CiAgICAgIGlmIEZpbGUuZXhpc3RzPyhwYXRoKQog
1902 # ICAgICAgIHBhdGhzIDw8IHBhdGgKICAgICAgZW5kCiAgICB9CiAgICAKICAg
1903 # IHBhdGhzCiAgZW5kCiAgCiAgcHJpdmF0ZQogIGRlZiBwYXJzZShwa2dwYXRo
1904 # LCBwa2cpCiAgICByZXR1cm4gaWYgcGtncGF0aC5uaWw/CiAgICAKICAgIHBh
1905 # cnNlciA9IFBrZ0NvbmZpZ1BhcnNlci5uZXcKICAgIHBhcnNlci5wYXJzZShw
1906 # a2dwYXRoKQogICAgCiAgICBwYXJzZXIucmVxdWlyZXMuc3BsaXQoLyx8XHMv
1907 # KS5lYWNoIHsgfHJlcXwKICAgICAgcmVxLnN0cmlwIQogICAgICAKICAgICAg
1908 # cGFyc2UoZmluZF9wYXRoX2Zvcl9wYWNrYWdlKHJlcSksIHJlcSkKICAgIH0K
1909 # ICAgIAogICAgY2ZsYWdzID0gcGFyc2VyLmNmbGFncwogICAgbGlicyA9IHBh
1910 # cnNlci5saWJzCiAgICAKICAgIGlmIGlkICE9IHBrZyBhbmQgbm90IChjZmxh
1911 # Z3MuZW1wdHk/IG9yIGxpYnMuZW1wdHk/KQogICAgICBAcmVxdWlyZXMgPDwg
1912 # cGtnCiAgICBlbmQKICAgIAogICAgQGNmbGFncyA9ICIje2NmbGFnc30gI3tA
1913 # Y2ZsYWdzfSIKICAgIEBsaWJzID0gIiN7bGlic30gI3tAbGlic30iCiAgICAK
1914 # ICAgIG5pbAogIGVuZAogIAogIGRlZiBmaW5kX3BhdGhfZm9yX3BhY2thZ2Uo
1915 # cGtnKQogICAgaWYgbm90IHBrZyA9fiAvXC5wYyQvCiAgICAgIHBrZyArPSAi
1916 # LnBjIgogICAgZW5kCiAgICAKICAgIHBhdGhzID0gQHNlYXJjaF9wYXRoCiAg
1917 # ICAKICAgIGlmIERldGVjdE9TLm9zPyA9PSAxICMgV2luZG93cwogICAgICBw
1918 # YXRocy5jb25jYXQgZmluZF93aW4zMl9wYXRocwogICAgZWxzZQogICAgICBw
1919 # YXRocy5jb25jYXQgZmluZF91bml4X3BhdGhzCiAgICBlbmQKICAgIAogICAg
1920 # cGtncGF0aCA9IG5pbAogICAgcGF0aHMuZWFjaCB7IHxwYXRofAogICAgICB0
1921 # bXBwYXRoID0gcGF0aCsiLyIrcGtnCiAgICAgIGlmIEZpbGUuZXhpc3RzPyh0
1922 # bXBwYXRoKQogICAgICAgIHBrZ3BhdGggPSB0bXBwYXRoCiAgICAgIGVsc2lm
1923 # ICRERUJVRwogICAgICAgIHB1dHMgIkZhaWxlZDogI3t0ZW1wcGF0aH0iCiAg
1924 # ICAgIGVuZAogICAgfQogICAgCiAgICBwa2dwYXRoCiAgZW5kCmVuZAoKZW5k
1925 # CgoKaWYgJDAgPT0gX19GSUxFX18KICBwa2djb25maWcgPSBRb25mOjpQa2dD
1926 # b25maWcubmV3CiAgcGtnY29uZmlnLmZpbmQoInRlc3RfcW9uZiIpCiAgCiAg
1927 # cHV0cyBwa2djb25maWcubGlicwplbmQKCgAAAAAAAAAAAAAAAAAAAAAAAAAA
1928 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9mcm9u
1929 # dGVuZC5yYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1930 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw
1931 # NjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwMDEyNAAxMDY3Mzc0MDMwMwAw
1932 # MTMzNTAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1933 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1934 # AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAA
1935 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1936 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1937 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1938 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1939 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1940 # AAAACm1vZHVsZSBRb25mCgpjbGFzcyBGcm9udGVuZAogIGRlZiBpbml0aWFs
1941 # aXplCiAgZW5kCiAgCiAgZGVmIHBhcnNlCiAgZW5kCmVuZAoKZW5kCgoKAAAA
1942 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1943 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1944 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1945 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1946 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1947 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1948 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1949 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1950 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1951 # AAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvZnJvbnRlbmRmYWN0b3J5
1952 # LnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1953 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUx
1954 # ADAwMDE3NTEAMDAwMDAwMDA2NDMAMTA2NzM3NDAzMDMAMDE0NzQ2ACAwAAAA
1955 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1956 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1957 # AAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1958 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1959 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1960 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1961 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1962 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApyZXF1aXJl
1963 # ICdwbGFpbl9mcm9udGVuZCcKCm1vZHVsZSBRb25mCgpjbGFzcyBGcm9udGVu
1964 # ZEZhY3RvcnkKICBkZWYgc2VsZi5jcmVhdGUobmFtZSA9ICJ0ayIpCiAgICBj
1965 # YXNlIG5hbWUKICAgICAgd2hlbiAicGxhaW4iCiAgICAgICAgUGxhaW5Gcm9u
1966 # dGVuZC5uZXcKICAgICAgd2hlbiAidGsiCiAgICAgICAgaGF2ZV90ayA9IGZh
1967 # bHNlCgogICAgICAgIGJlZ2luCiAgICAgICAgICBoYXZlX3RrID0gcmVxdWly
1968 # ZSAndGsnCiAgICAgICAgcmVzY3VlIExvYWRFcnJvcgogICAgICAgICAgcmV0
1969 # dXJuIGNyZWF0ZSgicGxhaW4iKQogICAgICAgIGVuZAogICAgICAgIAogICAg
1970 # ICAgIHJlcXVpcmUgJ3RrX2Zyb250ZW5kJwogICAgICAgIFRrRnJvbnRlbmQu
1971 # bmV3CiAgICAgIGVsc2UKICAgICAgICBuaWwKICAgIGVuZAogIGVuZAplbmQK
1972 # CmVuZAoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1973 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1974 # AAAAAAAAAAAAcW9uZmlndXJlL2Zyb250ZW5kLnJifgAAAAAAAAAAAAAAAAAA
1975 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1976 # AAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAw
1977 # MDAwMDAwMTIzADEwNjcyNTcxMjE2ADAxMzU1MQAgMAAAAAAAAAAAAAAAAAAA
1978 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1979 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3Rh
1980 # ciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1981 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1982 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1983 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1984 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1985 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKbW9kdWxlIFFvbmYKCmNsYXNz
1986 # IEJhY2tlbmQKICBkZWYgaW5pdGlhbGl6ZQogIGVuZAogIAogIGRlZiBwYXJz
1987 # ZQogIGVuZAplbmQKCmVuZAoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1988 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1989 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1990 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1991 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1992 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1993 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1994 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1995 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1996 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFv
1997 # bmZpZ3VyZS9zZXR1cF9yYi50cGx+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1998 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1999 # AAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwNTcxMgAx
2000 # MDY3MzAyNzc0NgAwMTM3NjcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2001 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2002 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsA
2003 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2004 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2005 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2006 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2007 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2008 # AAAAAAAAAAAAAAAAAAAACgoKIyBzZXR1cCBpcyBhIG9iamVjdCB0aGF0IGhl
2009 # bHBzIHRvIGNvbmZpZ3VyZSB0aGUgcHJvamVjdAojIEl0IGNvbnRhaW5zIHNv
2010 # bWUgbWV0aG9kcyBsaWtlOgojICAgYWRkX29wdGlvbgojICAgZmluZF9wYWNr
2011 # YWdlCiMgICBhZGRfdGVzdAojICAgZ2VuZXJhdGVfcGtnY29uZmlnCmRlZiBj
2012 # b25maWd1cmUoc2V0dXApCiMjIyMgCiMjIyMgYWRkX29wdGlvbiBhZGRzIGFu
2013 # IG9wdGlvbiB0byB0aGUgc2NyaXB0LCBpdCBoYXMgdGhlIGZvbGxvd2luZyBv
2014 # cHRpb25zOgojIyMjIDpuYW1lICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIG9w
2015 # dGlvbi4KIyMjIyA6dHlwZSAgICAgICAgIFRoZSB0eXBlIG9mIHRoZSBvcHRp
2016 # b24gKCJwYXRoIiwgInN0cmluZyIsICJib29sIiBvciAidm9pZCIpLgojIyMj
2017 # IDpvcHRpb25hbCAgICAgU2F5cyBpZiB0aGUgb3B0aW9uIGlzIHJlcXVpcmVk
2018 # IG9yIG5vdC4KIyMjIyA6ZGVzY3JpcHRpb24gIERlc2NyaXB0aW9uIG9mIHRo
2019 # ZSBvcHRpb24KIyMjIyA6ZGVmYXVsdCAgICAgIFRoZSBkZWZhdWx0IHZhbHVl
2020 # CiMjIyMgCiMgICBzZXR1cC5hZGRfb3B0aW9uKDpuYW1lID0+ICJvcHRpb24t
2021 # bmFtZSIsIDp0eXBlID0+ICJwYXRoIiwgOm9wdGlvbmFsID0+IGZhbHNlLCA6
2022 # ZGVzY3JpcHRpb24gPT4gIlNldHMgYW4gb3B0aW9uIikKICAKIyMjIyAKIyMj
2023 # IyBmaW5kX3BhY2thZ2Ugc2VhcmNoIGZvciBhIHBrZ2NvbmZpZyBzcGVjIGlu
2024 # IHlvdXIgY29tcHV0ZXIsIGl0IHNlYXJjaCBpbiB0aGUgUEtHX0NPTkZJR19Q
2025 # QVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIExEX0xJQlJBUllfUEFUSAoj
2026 # IyMjIAojIyMjIEZpcnN0IG9wdGlvbiBpcyB0aGUgcGFja2FnZSBuYW1lIGFu
2027 # ZCBpZiBpdCBpcyBvcHRpb25hbCBvciBub3QKIyMjIyAKIyAgIHNldHVwLmZp
2028 # bmRfcGFja2FnZSgiZGJ1cy0xIiwgZmFsc2UpCgojIyMjIAojIyMjIGFkZF90
2029 # ZXN0IGFkZHMgYW5kIHJ1biBhIHRlc3QgZm9yIHNvbWUgZmVhdHVyZSBvciBw
2030 # YWNrYWdlLCB0aGUgb3B0aW9ucyBhcmU6CiMjIyMgICA6aWQgICAgICAgICAg
2031 # IFRoZSBpZCBvZiB0aGUgdGVzdAojIyMjICAgOm5hbWUgICAgICAgICBUaGUg
2032 # dGVzdCBuYW1lCiMjIyMgICA6ZGVmaW5lcyAgICAgIERlZmluZXMgdG8gdGVz
2033 # dAojIyMjICAgOmluY2x1ZGVwYXRoICBBIGxpc3Qgd2l0aCB0aGUgaW5jbHVk
2034 # ZSBwYXRoCiMjIyMgICA6bGlicyAgICAgICAgIFRoZSBsaWJzIHJlcXVpcmVk
2035 # IGZvciB0aGUgdGVzdAojIyMjICAgOm9wdGlvbmFsICAgICBUcnVlIGlmIHRo
2036 # ZSB0ZXN0IGlzIG9wdGlvbmFsCiMjIyMgICA6Y3VzdG9tICAgICAgIEEgY29k
2037 # ZSB0byB0ZXN0CiMjIyMgCiMgc2V0dXAuYWRkX3Rlc3QoOmlkID0+ICJmZWF0
2038 # dXJlIiwgOm5hbWUgPT4gIkZlYXR1cmUgc3VwcG9ydCIsIDpkZWZpbmVzID0+
2039 # IFsiSEFWRV9GRUFUVVJFIl0sIDpvcHRpb25hbCA9PiB0cnVlLCA6aGVhZGVy
2040 # cyA9PiBbImZlYXR1cmUuaCJdLCA6bGlicyA9PiAiLWxmZWF0dXJlIiAgKQoK
2041 # IyMjIyAKIyMjIyBnZW5lcmF0ZV9wa2djb25maWcgR2VuZXJhdGVzIGEgc2lt
2042 # cGxlIHBrZ2NvbmZpZyBmaWxlCiMjIyMgVGhlIG9wdGlvbnMgYXJlOgojIyMj
2043 # ICAgOnBhY2thZ2VfbmFtZSAgVGhlIHBhY2thZ2UgbmFtZSAKIyMjIyAgIDpu
2044 # YW1lICAgICAgICAgIFRoZSBhcHBsaWNhdGlvbiBuYW1lCiMjIyMgICA6ZGVz
2045 # Y3JpcHRpb24gICBUaGUgYXBwbGljYXRpb24gZGVzY3JpcHRpb24KIyMjIyAg
2046 # IDp2ZXJzaW9uICAgICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBhcHBsaWNhdGlv
2047 # bgojIyMjICAgOmxpYmRpciAgICAgICAgVGhlIGRpcmVjdG9yeSB3aGVyZSBs
2048 # aWJyYXJpZXMgYXJlLCBieSBkZWZhdWx0IGlzICQocHJlZml4KS9saWIKIyMj
2049 # IyAgIDppbmNsdWRlZGlyICAgIFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGVhZGVy
2050 # cyBhcmUsIGJ5IGRlZmF1bHQgaXMgJChwcmVmaXgpL2luY2x1ZGUKIyMjIyAg
2051 # IDpsaWJzICAgICAgICAgIExpYnJhcmllcyB0aGF0IGxpbmtzIHRoZSBwYWNr
2052 # YWdlCiMjIyMgICA6Y2ZsYWdzICAgICAgICBDZmxhZ3MgZm9yIHRoZSBwYWNr
2053 # YWdlCiMjIyMgICA6cmVxdWlyZXMgICAgICBBIGxpc3Qgb2YgcGFja2FnZSBu
2054 # YW1lcyByZXF1aXJlZCBmb3IgdGhpcyBwYWNrYWdlLgojIyMjIAojIHNldHVw
2055 # LmdlbmVyYXRlX3BrZ2NvbmZpZyg6cGFja2FnZV9uYW1lID0+ICJkbGliLWVk
2056 # aXRvciIsIDpuYW1lID0+ICJETGliIFF0IGxpYnJhcnkiLCA6ZGVzY3JpcHRp
2057 # b24gPT4gIkEgZXh0ZW5zaW9uIGZvciBRdDQiLCA6dmVyc2lvbiA9PiAiMC4x
2058 # YmV0YSIsIDpsaWJkaXIgPT4gbmlsLCA6aW5jbHVkZWRpciA9PiBuaWwsIDps
2059 # aWJzID0+ICItTCR7bGliZGlyfSAtbGRjb3JlIC1sZGd1aSAtbGRlZGl0b3Ii
2060 # LCA6Y2ZsYWdzID0+ICItSSR7aW5jbHVkZWRpcn0iLCA6cmVxdWlyZXMgPT4g
2061 # WyJzb21lcGFja2FnZSIsICJvdGhlcnBhY2thZ2UiIF0gKQplbmQKCiMgVGhp
2062 # cyBtZXRob2QgaXMgY2FsbGVkIGJlZm9yZSB0byBzZWFyY2ggYSBwYWNrYWdl
2063 # CmRlZiBzZXR1cF9wa2djb25maWcocGtnY29uZmlnLCBhcmdzKQojICAgY2Fz
2064 # ZSBwa2djb25maWcuaWQKIyAgICAgd2hlbiAiZGJ1cy0xIgojICAgICAgIHBr
2065 # Z2NvbmZpZy5hZGRfc2VhcmNoX3BhdGgoIi9hL3BhdGgvdG8vdGhlL3BjIikK
2066 # IyAgIGVuZAplbmQKCmRlZiBzZXR1cF90ZXN0KGlkLCB0c3QsIGFyZ3MpCiMg
2067 # ICBjYXNlIGlkCiMgICAgIHdoZW4gImZlYXR1cmUiCiMgICAgICAgdHN0LmFk
2068 # ZF9kZWZpbmUoIk1ZREVGSU5FIikKIyAgICAgICB0c3QuYWRkX2xpYigiLWxt
2069 # eWxpYiIpCiMgICAgICAgdHN0LmFkZF9pbmNsdWRlX3BhdGgoIi9zb21lL2lu
2070 # Y2x1ZGUvcGF0aC9yZXF1aXJlZC90by9jb21waWxlL3RoZS90ZXN0IikKIyAg
2071 # IGVuZAplbmQKCmRlZiBzZXR1cF9jb25maWcoY2ZnLCBhcmdzKQojICAgY2Zn
2072 # LmFkZF9pbmNsdWRlX3BhdGggRmlsZS5leHBhbmRfcGF0aCgic3JjIikKIyAg
2073 # IGNmZy5hZGRfZGVmaW5lKCJfX1NURENfQ09OU1RBTlRfTUFDUk9TIikKIyAg
2074 # IGNmZy5hZGRfcXRtb2R1bGUoInhtbCIpCiMgICBjZmcuYWRkX3F0bW9kdWxl
2075 # KCJuZXR3b3JrIikKZW5kCgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2076 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL21ha2VmaWxl
2077 # LnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2078 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQA
2079 # MDAwMTc1MQAwMDAxNzUxADAwMDAwMDAzMjc1ADEwNzEzNzQ1MDI1ADAxMzMy
2080 # MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2081 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2082 # AAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAA
2083 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2084 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2085 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2086 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2087 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN
2088 # CnJlcXVpcmUgJ3JiY29uZmlnJw0KDQptb2R1bGUgUW9uZg0KICBjbGFzcyBN
2089 # YWtlZmlsZQ0KICAgIGRlZiBzZWxmLmZpbmRfbWFrZWZpbGVzKHBhdGgpDQog
2090 # ICAgICBtYWtlZmlsZXMgPSBbXQ0KICAgICAgRGlyLmZvcmVhY2gocGF0aCkg
2091 # eyB8ZnwNCiAgICAgICAgZmlsZSA9ICIje3BhdGh9LyN7Zn0iDQogICAgICAg
2092 # IGlmIEZpbGUuc3RhdChmaWxlKS5kaXJlY3Rvcnk/DQogICAgICAgICAgaWYg
2093 # bm90IGYgPX4gL15cLi8NCiAgICAgICAgICAgIG1ha2VmaWxlcy5jb25jYXQg
2094 # ZmluZF9tYWtlZmlsZXMoZmlsZSkNCiAgICAgICAgICBlbmQNCiAgICAgICAg
2095 # ZWxzaWYgZi5kb3duY2FzZSA9fiAvXm1ha2VmaWxlKC5kZWJ1Z3wucmVsZWFz
2096 # ZSl7MCwxfS8NCiAgICAgICAgICBtYWtlZmlsZXMgPDwgZmlsZQ0KICAgICAg
2097 # ICBlbmQNCiAgICAgIH0NCiAgICAgIG1ha2VmaWxlcw0KICAgIGVuZA0KICAg
2098 # IA0KICAgIGRlZiBzZWxmLm92ZXJyaWRlKG1ha2VmaWxlLCBkZXN0ZGlyLCBz
2099 # dGF0dXNGaWxlKQ0KICAgICAgbmV3bWFrZWZpbGUgPSAiIg0KICAgICAgDQog
2100 # ICAgICBydWJ5X2JpbiA9ICIjezo6Q29uZmlnOjpDT05GSUdbImJpbmRpciJd
2101 # fS8jezo6Q29uZmlnOjpDT05GSUdbInJ1YnlfaW5zdGFsbF9uYW1lIl19Ig0K
2102 # ICAgICAgDQogICAgICBGaWxlLm9wZW4obWFrZWZpbGUsICJyIikgeyB8ZnwN
2103 # CiAgICAgICAgbGluZXMgPSBmLnJlYWRsaW5lcw0KICAgICAgICANCiAgICAg
2104 # ICAgaWYgRmlsZTo6QUxUX1NFUEFSQVRPUg0KICAgICAgICAgIGRlc3RkaXIu
2105 # Z3N1YiEoIi8iLCBGaWxlOjpBTFRfU0VQQVJBVE9SKQ0KICAgICAgICBlbmQN
2106 # CiAgICAgICAgDQogICAgICAgIGluZGV4ID0gMA0KICAgICAgICByZXBsYWNl
2107 # ZCA9IGZhbHNlDQogICAgICAgIHdoaWxlIGluZGV4IDwgbGluZXMuc2l6ZQ0K
2108 # ICAgICAgICAgIGxpbmUgPSBsaW5lc1tpbmRleF0NCiAgICAgICAgICBpZiBs
2109 # aW5lID1+IC9eXHMrW0BdezAsMX1cJFwoUU1BS0VcKS8NCiAgICAgICAgICAg
2110 # IG5ld21ha2VmaWxlICs9IGxpbmUNCiAgICAgICAgICAgIG5ld21ha2VmaWxl
2111 # ICs9ICJcdCN7cnVieV9iaW59ICN7c3RhdHVzRmlsZX0gI3ttYWtlZmlsZX1c
2112 # biINCiAgICAgICAgICAgIGluZGV4ICs9IDENCiAgICAgICAgICBlbHNlDQog
2113 # ICAgICAgICAgICBpZiBub3QgcmVwbGFjZWQNCiAgICAgICAgICAgICAgaWYg
2114 # bGluZSA9fiAvXklOU1RBTExfRElSLw0KICAgICAgICAgICAgICAgIG5ld21h
2115 # a2VmaWxlICs9ICJJTlNUQUxMX1JPT1QgPSAje2Rlc3RkaXJ9XG4iDQogICAg
2116 # ICAgICAgICAgICAgcmVwbGFjZWQgPSB0cnVlDQogICAgICAgICAgICAgIGVu
2117 # ZA0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICBpZiBsaW5lID1+
2118 # IC9cJFwoSU5TVEFMTF9ST09UXCkvDQogICAgICAgICAgICAgICAgaWYgRmls
2119 # ZTo6QUxUX1NFUEFSQVRPUg0KICAgICAgICAgICAgICAgICAgbGluZS5nc3Vi
2120 # ISgiLyIsIEZpbGU6OkFMVF9TRVBBUkFUT1IpDQogICAgICAgICAgICAgICAg
2121 # ZW5kDQogICAgICAgICAgICAgIGVuZA0KICAgICAgICAgICAgZW5kDQogICAg
2122 # ICAgICAgICBuZXdtYWtlZmlsZSArPSBsaW5lDQogICAgICAgICAgZW5kDQog
2123 # ICAgICAgICAgaW5kZXggKz0gMQ0KICAgICAgICBlbmQNCiAgICAgIH0NCiAg
2124 # ICAgIA0KICAgICAgRmlsZS5vcGVuKG1ha2VmaWxlLCAidyIpIHsgfGZ8DQog
2125 # ICAgICAgIGYgPDwgbmV3bWFrZWZpbGUNCiAgICAgIH0NCiAgICBlbmQNCiAg
2126 # ZW5kDQplbmQNCg0KDQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2127 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2128 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2129 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2130 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2131 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2132 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2133 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9pbml0LnJifgAAAAAA
2134 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2135 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3
2136 # NTEAMDAwMTc1MQAwMDAwMDAwMDMzMAAxMDY3MzUwMjA0MwAwMTI2NjYAIDAA
2137 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2138 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2139 # AAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2140 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2141 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2142 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2143 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2144 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnJlcXVp
2145 # cmUgJ3FvbmYnCgpEaXIuY2hkaXIoRmlsZS5kaXJuYW1lKG9sZGxvY2F0aW9u
2146 # KCJxb25mLnJiIikpKQoKcW9uZiA9IFFvbmY6OkNvbmZpZ3VyZS5uZXcKcW9u
2147 # Zi5nZXRfYXJncyhBUkdWKQpxb25mLmZpbmRfcGFja2FnZXMKcW9uZi5ydW5f
2148 # dGVzdHMKCnFvbmYuc2F2ZShGaWxlLmV4cGFuZF9wYXRoKCJjb25maWcucHJp
2149 # IikpCgpxb25mLmdlbmVyYXRlX21ha2VmaWxlcwoKAAAAAAAAAAAAAAAAAAAA
2150 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2151 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2152 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2153 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2154 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2155 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2156 # AAAAAAAAAAAAAABxb25maWd1cmUvaW5pdC5yYgAAAAAAAAAAAAAAAAAAAAAA
2157 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2158 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEA
2159 # MDAwMDAwMDAzMDYAMTA2NzM3NDAzMDMAMDEyNDc2ACAwAAAAAAAAAAAAAAAA
2160 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2161 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVz
2162 # dGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2163 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2164 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2165 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2166 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2167 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApyZXF1aXJlICdxb25mJwoK
2168 # RGlyLmNoZGlyKEZpbGUuZGlybmFtZShvbGRsb2NhdGlvbigicW9uZi5yYiIp
2169 # KSkKCnFvbmYgPSBRb25mOjpDb25maWd1cmUubmV3CnFvbmYuZ2V0X2FyZ3Mo
2170 # QVJHVikKcW9uZi5maW5kX3BhY2thZ2VzCnFvbmYucnVuX3Rlc3RzCgpxb25m
2171 # LnNhdmUoImNvbmZpZy5wcmkiKQoKcW9uZi5nZW5lcmF0ZV9tYWtlZmlsZXMK
2172 # CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2173 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2174 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2175 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2176 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2177 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2178 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2179 # cW9uZmlndXJlL3FvbmYucmJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2180 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2181 # AAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDMzNTEy
2182 # ADEwNzMyMzY1NTAzADAxMjcwMgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2183 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2184 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdl
2185 # awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2186 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2187 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2188 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2189 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2190 # AAAAAAAAAAAAAAAAAAAAAAAKcmVxdWlyZSAndGVzdCcKcmVxdWlyZSAncGtn
2191 # Y29uZmlnJwpyZXF1aXJlICdmcm9udGVuZGZhY3RvcnknCnJlcXVpcmUgJ2Nv
2192 # bmZpZycKcmVxdWlyZSAncW1ha2UnCnJlcXVpcmUgJ21ha2VmaWxlJwoKbW9k
2193 # dWxlIFFvbmYKICBWRVJTSU9OID0gIjAuNiIuZnJlZXplCiAgVkVSU0lPTl9E
2194 # QVRFID0gIjIwMDctMTItMDIiCiAgCiAgY2xhc3MgUXRWZXJzaW9uCiAgICBh
2195 # dHRyX3JlYWRlciA6dmVyc2lvbiwgOm9wICMgMDogZXF1YWwgMTogZ3JlYXRl
2196 # ciAyOiBncmVhdGVyIGVxdWFsCiAgICAKICAgIGRlZiBpbml0aWFsaXplKHZl
2197 # cnNpb24pCiAgICAgIEBvcCA9IDIKICAgICAgcGFyc2UodmVyc2lvbikKICAg
2198 # IGVuZAogICAgCiAgICBkZWYgPT0odmVyKQogICAgICBAb3AgPSAwCiAgICAg
2199 # IHBhcnNlKHZlcikKICAgIGVuZAogICAgCiAgICBkZWYgPih2ZXIpCiAgICAg
2200 # IEBvcCA9IDEKICAgICAgcGFyc2UodmVyKQogICAgZW5kCiAgICAKICAgIGRl
2201 # ZiA+PSh2ZXIpCiAgICAgIEBvcCA9IDIKICAgICAgcGFyc2UodmVyKQogICAg
2202 # ZW5kCiAgICAKICAgIGRlZiB0b19zCiAgICAgIHMgPSAiUXQgIgogICAgICBj
2203 # YXNlIEBvcAogICAgICAgIHdoZW4gMAogICAgICAgICAgcys9Ij09IgogICAg
2204 # ICAgIHdoZW4gMQogICAgICAgICAgcys9Ij4iCiAgICAgICAgZWxzZQogICAg
2205 # ICAgICAgcys9Ij49IgogICAgICBlbmQKICAgICAgcys9ICIgIitAdmVyc2lv
2206 # bgogICAgICAKICAgICAgcwogICAgZW5kCiAgICAKICAgIHByaXZhdGUKICAg
2207 # IGRlZiBwYXJzZSh2ZXJzaW9uKQogICAgICBAdmVyc2lvbiA9IHZlcnNpb24u
2208 # dG9fcwogICAgICB2ZXIgPSBAdmVyc2lvbi50b19zLnNwbGl0KCcuJykKICAg
2209 # ICAgc2l6ZSA9IHZlci5zaXplCiAgICAgICAgCiAgICAgIGZpbmFsdmVyID0g
2210 # W10KICAgICAgMy50aW1lcyB7IHxpfAogICAgICAgIHRwID0gdmVyW2ldCiAg
2211 # ICAgICAgCiAgICAgICAgaWYgdHAubmlsPwogICAgICAgICAgdHAgPSAiMCIK
2212 # ICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBmaW5hbHZlciA8PCB0cAog
2213 # ICAgICB9CiAgICAgIAogICAgICBAdmVyc2lvbiA9IGZpbmFsdmVyLmpvaW4o
2214 # Ii4iKQogICAgZW5kCiAgZW5kCiAgCiAgY2xhc3MgU2V0dXAKICAgIGF0dHJf
2215 # cmVhZGVyIDpvcHRpb25zLCA6cGFja2FnZXMsIDp0ZXN0cywgOnBrZ19jb25m
2216 # aWdzCiAgICBkZWYgaW5pdGlhbGl6ZQogICAgICBAb3B0aW9ucyA9IFtdCiAg
2217 # ICAgIEBwYWNrYWdlcyA9IFtdCiAgICAgIEB0ZXN0cyA9IFtdCiAgICAgIEBw
2218 # a2dfY29uZmlncyA9IFtdCiAgICAgIEBxdF92ZXJzaW9uID0gUXRWZXJzaW9u
2219 # Lm5ldygiNC4wLjAiKQogICAgICAKICAgICAgYWRkX29wdGlvbig6bmFtZSA9
2220 # PiAicHJlZml4IiwgOnR5cGUgPT4gInBhdGgiLCA6ZGVmYXVsdCA9PiAiL3Vz
2221 # ci9sb2NhbC8iLCA6b3B0aW9uYWwgPT4gdHJ1ZSwgOmRlc2NyaXB0aW9uID0+
2222 # ICJTZXRzIHRoZSBpbnN0YWxsIHByZWZpeCIpCiAgICBlbmQKICAgIAogICAg
2223 # ZGVmIGFkZF9vcHRpb24ob3B0aW9uKQogICAgICBpZiBub3Qgb3B0aW9uWzp0
2224 # eXBlXS5uaWw/CiAgICAgICAgb3B0aW9uWzp0eXBlXS5kb3duY2FzZSEKICAg
2225 # ICAgZW5kCiAgICAgIAogICAgICBAb3B0aW9ucyA8PCBvcHRpb24KICAgIGVu
2226 # ZAogICAgCiAgICBkZWYgZmluZF9wYWNrYWdlKG9wdGlvbnMpCiAgICAgIEBw
2227 # YWNrYWdlcyA8PCBvcHRpb25zCiAgICBlbmQKICAgIAogICAgZGVmIGFkZF90
2228 # ZXN0KG9wdGlvbikKICAgICAgcmFpc2UgIlBsZWFzZSBzZXQgYSB2YWxpZCBu
2229 # YW1lIHRvIHRoZSB0ZXN0IiBpZiBvcHRpb25bOm5hbWVdLnRvX3MuZW1wdHk/
2230 # CiAgICAgIHJhaXNlICJQbGVhc2Ugc2V0IGEgdmFsaWQgaWQgdG8gdGhlIHRl
2231 # c3QiIGlmIG9wdGlvbls6aWRdLnRvX3MuZW1wdHk/CiAgICAgIAogICAgICBA
2232 # dGVzdHMgPDwgb3B0aW9uCiAgICBlbmQKICAgIAogICAgZGVmIGdlbmVyYXRl
2233 # X3BrZ2NvbmZpZyhvcHRpb25zKQogICAgICByYWlzZSAiUGxlYXNlIHNldCBh
2234 # IHZhbGlkIG5hbWUiIGlmIG9wdGlvbnNbOnBhY2thZ2VfbmFtZV0udG9fcy5l
2235 # bXB0eT8KICAgICAgQHBrZ19jb25maWdzIDw8IG9wdGlvbnMKICAgIGVuZAog
2236 # ICAgCiAgICBkZWYgcXQKICAgICAgQHF0X3ZlcnNpb24KICAgIGVuZAogICAg
2237 # CiAgZW5kCiAgCiAgY2xhc3MgQ29uZmlndXJlCiAgICBkZWYgaW5pdGlhbGl6
2238 # ZQogICAgICBAYXJndW1lbnRzID0ge30KICAgICAgQGNvbmZpZyA9IENvbmZp
2239 # Zy5uZXcKICAgICAgCiAgICAgIEBsb2dfZmlsZSA9IG9sZGxvY2F0aW9uKCJj
2240 # b25maWcubG9nIikKICAgICAgCiAgICAgIEZpbGUub3BlbihAbG9nX2ZpbGUs
2241 # ICJ3IikgZG8gfGZ8CiAgICAgICAgZiA8PCAiPT09PT09PT4gR2VuZXJhdGVk
2242 # IGF0ICN7VGltZS5ub3d9IDw9PT09PT09XG4iCiAgICAgIGVuZAogICAgICAK
2243 # ICAgICAgcW1ha2VfcGF0aHMgPSBbXQogICAgICBpZiggRGV0ZWN0T1Mub3M/
2244 # ICE9IDEgKSAjIFVuaXgKICAgICAgICBJTy5wb3BlbigibG9jYXRlIC1yIC9x
2245 # bWFrZSQgMj4gI3tuZXdsb2NhdGlvbignbG9jYXRlX2xvZycpfSIpIHsgfHBy
2246 # Y3wKICAgICAgICAgIHByZV9wYXRocyA9IHByYy5yZWFkbGluZXMKICAgICAg
2247 # ICAgIHByZV9wYXRocy5lYWNoIHsgfHFtfAogICAgICAgICAgICBxbS5zdHJp
2248 # cCEKICAgICAgICAgICAgaWYgRmlsZS5leGlzdHM/KHFtKQogICAgICAgICAg
2249 # ICAgIHN0YXQgPSBGaWxlLnN0YXQocW0pCiAgICAgICAgICAgICAgCiAgICAg
2250 # ICAgICAgICAgaWYgKG5vdCAoc3RhdC5zeW1saW5rPyBvciBzdGF0LmRpcmVj
2251 # dG9yeT8pKSBhbmQgc3RhdC5leGVjdXRhYmxlPwogICAgICAgICAgICAgICAg
2252 # cW1ha2VfcGF0aHMgPDwgcW0KICAgICAgICAgICAgICBlbmQKICAgICAgICAg
2253 # ICAgZW5kCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBlbmQKICAgICAg
2254 # CiAgICAgIEBxbWFrZSA9IFFNYWtlLm5ldyhxbWFrZV9wYXRocywgQGxvZ19m
2255 # aWxlKQogICAgICAKICAgICAgY2ZnID0gU2V0dXAubmV3CiAgICAgIGNvbmZp
2256 # Z3VyZShjZmcpCiAgICAgIAogICAgICBwcmludCAiPT4gU2VhcmNoaW5nIGZv
2257 # ciAje2NmZy5xdH0uLi4gIgogICAgICBpZiBAcW1ha2UuZmluZF9xbWFrZShj
2258 # ZmcucXQudmVyc2lvbiwgY2ZnLnF0Lm9wKQogICAgICAgIHB1dHMgIigje0Bx
2259 # bWFrZS5wYXRofSkgW1lFU10iCiAgICAgIGVsc2UKICAgICAgICBwdXRzICJb
2260 # Tk9dIgogICAgICAgIGV4aXQoLTEpCiAgICAgIGVuZAogICAgICAKICAgICAg
2261 # QG9wdGlvbnMgPSBjZmcub3B0aW9ucwogICAgICBAcGFja2FnZXMgPSBjZmcu
2262 # cGFja2FnZXMKICAgICAgQHRlc3RzID0gY2ZnLnRlc3RzCiAgICAgIEBwa2df
2263 # Y29uZmlncyA9IGNmZy5wa2dfY29uZmlncwogICAgICBAc3RhdHVzRmlsZSA9
2264 # IERpci5nZXR3ZCsiL3VwZGF0ZS1tYWtlZmlsZSIKICAgIGVuZAogICAgCiAg
2265 # ICBkZWYgZmluZF9wYWNrYWdlcyAjIFRPRE86IHNvcG9ydGFyIGluZm9ybWFj
2266 # aW9uIHBhcmEgZWwgc2lzdGVtYSBvcGVyYXRpdm8gc29icmUgY29tbyBpbnN0
2267 # YWxhciBlbCBwYXF1ZXRlCiAgICAgIEBwYWNrYWdlcy5lYWNoIHsgfHBhY2th
2268 # Z2V8CiAgICAgICAgcHJpbnQgIj0+IFNlYXJjaGluZyBmb3IgcGFja2FnZTog
2269 # I3twYWNrYWdlWzpuYW1lXX0uLi4gICIKICAgICAgICBwa2djb25maWcgPSBQ
2270 # a2dDb25maWcubmV3KHBhY2thZ2VbOm5hbWVdKQogICAgICAgIHBrZ2NvbmZp
2271 # Zy5hZGRfc2VhcmNoX3BhdGgoIiN7QGFyZ3VtZW50c1sicHJlZml4Il19L2xp
2272 # Yi9wa2djb25maWciKQogICAgICAgIGJlZ2luCiAgICAgICAgICBzZXR1cF9w
2273 # a2djb25maWcocGtnY29uZmlnLCBAYXJndW1lbnRzKQogICAgICAgIHJlc2N1
2274 # ZSBOb01ldGhvZEVycm9yID0+IGUKICAgICAgICAgIGlmIG5vdCBlLm1lc3Nh
2275 # Z2UgPX4gL3NldHVwX3BrZ2NvbmZpZy8KICAgICAgICAgICAgcHV0cyAiRXJy
2276 # b3I6ICN7ZS5tZXNzYWdlfSIKICAgICAgICAgICAgcHV0cyBlLmJhY2t0cmFj
2277 # ZQogICAgICAgICAgICBleGl0KC0xKQogICAgICAgICAgZW5kCiAgICAgICAg
2278 # ZW5kCiAgICAgICAgCiAgICAgICAgaWYgbm90IHBrZ2NvbmZpZy5maW5kKHBh
2279 # Y2thZ2VbOm5hbWVdKQogICAgICAgICAgcHV0cyAiW05PXSIKICAgICAgICAg
2280 # IAogICAgICAgICAgb3B0aW9uYWwgPSBwYWNrYWdlWzpvcHRpb25hbF0ubmls
2281 # PyA/IGZhbHNlIDogcGFja2FnZVs6b3B0aW9uYWxdCiAgICAgICAgICAKICAg
2282 # ICAgICAgIGlmIG5vdCBvcHRpb25hbAogICAgICAgICAgICBwdXRzICI9PiBU
2283 # aGUgcGFja2FnZSAnI3twYWNrYWdlWzpuYW1lXX0nIGlzIHJlcXVpcmVkLiIK
2284 # ICAgICAgICAgICAgZXhpdCgtMSkKICAgICAgICAgIGVuZAogICAgICAgIGVs
2285 # c2UKICAgICAgICAgIHB1dHMgIltZRVNdIgogICAgICAgICAgZ2xvYmFsID0g
2286 # cGFja2FnZVs6Z2xvYmFsXS5uaWw/ID8gZmFsc2UgOiBwYWNrYWdlWzpnbG9i
2287 # YWxdCiAgICAgICAgICAKICAgICAgICAgIHFvbmZwa2cgPSBAY29uZmlnCiAg
2288 # ICAgICAgICAKICAgICAgICAgIGlmIG5vdCBnbG9iYWwKICAgICAgICAgICAg
2289 # cW9uZnBrZyA9IFBhY2thZ2UubmV3KHBhY2thZ2VbOm5hbWVdKQogICAgICAg
2290 # ICAgZW5kCiAgICAgICAgICAKICAgICAgICAgIGlmICRERUJVRwogICAgICAg
2291 # ICAgICBwdXRzICI9PiBQYWNrYWdlIGlzIGdsb2JhbD8gI3tnbG9iYWx9Igog
2292 # ICAgICAgICAgZW5kCiAgICAgICAgICAKIyAgICAgICAgICAgcGtnY29uZmln
2293 # LnJlcXVpcmVzLmVhY2ggeyB8cmVxfAojICAgICAgICAgICAgIEBjb25maWcu
2294 # YWRkX3FvbmZfcGFja2FnZShyZXEpCiMgICAgICAgICAgIH0KICAgICAgICAg
2295 # IAogICAgICAgICAgcW9uZnBrZy5hZGRfbGliKHBrZ2NvbmZpZy5saWJzKQog
2296 # ICAgICAgICAgCiAgICAgICAgICBwa2djb25maWcuaW5jbHVkZV9wYXRoLmVh
2297 # Y2ggeyB8aW5jcGF0aHwKICAgICAgICAgICAgaWYgJERFQlVHCiAgICAgICAg
2298 # ICAgICAgcHV0cyAiPT4gQWRkaW5nIGluY2x1ZGUgcGF0aDogI3tpbmNwYXRo
2299 # fSIKICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIHFvbmZwa2cuYWRkX2lu
2300 # Y2x1ZGVfcGF0aChpbmNwYXRoKQogICAgICAgICAgfQogICAgICAgICAgCiAg
2301 # ICAgICAgICBwa2djb25maWcuZGVmaW5lcy5lYWNoIHsgfGRlZmluZXwKICAg
2302 # ICAgICAgICAgcW9uZnBrZy5hZGRfZGVmaW5lKGRlZmluZSkKICAgICAgICAg
2303 # IH0KICAgICAgICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAgICAg
2304 # ICAgICBAY29uZmlnLmFkZF9xb25mX3BhY2thZ2UocW9uZnBrZykKICAgICAg
2305 # ICAgIGVsc2UKICAgICAgICAgICAgQGNvbmZpZy5hZGRfcW9uZl9mZWF0dXJl
2306 # KHBhY2thZ2VbOm5hbWVdKQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAg
2307 # ICAgIH0KICAgICAgaWYgJERFQlVHCiAgICAgICAgcHV0cyAiSU5DTFVERVBB
2308 # VEg9I3tAY29uZmlnLmluY2x1ZGVfcGF0aC5qb2luKCIgIil9IgogICAgICBl
2309 # bmQKICAgIGVuZAogICAgCiAgICBkZWYgcnVuX3Rlc3RzCiAgICAgIEB0ZXN0
2310 # cy5lYWNoIHsgfHRlc3RvcHR8CiAgICAgICAgcHJpbnQgIj0+IFRlc3Rpbmcg
2311 # I3t0ZXN0b3B0WzpuYW1lXX0uLi4gICIKICAgICAgICAKICAgICAgICB0c3Qg
2312 # PSBUZXN0Lm5ldyh0ZXN0b3B0LCBAY29uZmlnLCBAbG9nX2ZpbGUpCiAgICAg
2313 # ICAgCiAgICAgICAgYmVnaW4KICAgICAgICAgIHNldHVwX3Rlc3QodGVzdG9w
2314 # dFs6aWRdLCB0c3QsIEBhcmd1bWVudHMpCiAgICAgICAgcmVzY3VlIE5vTWV0
2315 # aG9kRXJyb3IgPT4gZQogICAgICAgICAgaWYgbm90IGUubWVzc2FnZSA9fiAv
2316 # c2V0dXBfdGVzdC8KICAgICAgICAgICAgcHV0cyAiRXJyb3I6ICN7ZX0iCiAg
2317 # ICAgICAgICAgIHB1dHMgZS5iYWNrdHJhY2UKICAgICAgICAgICAgZXhpdCgt
2318 # MSkKICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgICAgIAogICAgICAg
2319 # IG9wdGlvbmFsID0gdGVzdG9wdFs6b3B0aW9uYWxdLm5pbD8gPyBmYWxzZSA6
2320 # IHRlc3RvcHRbOm9wdGlvbmFsXQogICAgICAgIGlmIHRzdC5ydW4oQHFtYWtl
2321 # KQogICAgICAgICAgZ2xvYmFsID0gdGVzdG9wdFs6Z2xvYmFsXS5uaWw/ID8g
2322 # ZmFsc2UgOiB0ZXN0b3B0WzpnbG9iYWxdCiAgICAgICAgICAKICAgICAgICAg
2323 # IGlmICRERUJVRwogICAgICAgICAgICBwdXRzICI9PiBUZXN0IGlzIGdsb2Jh
2324 # bDogI3tnbG9iYWx9IgogICAgICAgICAgZW5kCiAgICAgICAgICAKICAgICAg
2325 # ICAgIHFvbmZwa2cgPSBAY29uZmlnCiAgICAgICAgICAKICAgICAgICAgIGlm
2326 # IG5vdCBnbG9iYWwKICAgICAgICAgICAgcW9uZnBrZyA9IFBhY2thZ2UubmV3
2327 # KHRzdC5pZCkKICAgICAgICAgIGVuZAogICAgICAgICAgCiAgICAgICAgICB0
2328 # c3QuaW5jbHVkZV9wYXRoLmVhY2ggeyB8aW5jcGF0aHwKICAgICAgICAgICAg
2329 # aWYgJERFQlVHCiAgICAgICAgICAgICAgcHV0cyAiPT4gQWRkaW5nIGluY2x1
2330 # ZGUgcGF0aDogI3tpbmNwYXRofSIKICAgICAgICAgICAgZW5kCiAgICAgICAg
2331 # ICAgIHFvbmZwa2cuYWRkX2luY2x1ZGVfcGF0aChpbmNwYXRoKQogICAgICAg
2332 # ICAgfQogICAgICAgICAgCiAgICAgICAgICB0c3QuZGVmaW5lcy5lYWNoIHsg
2333 # fGRlZmluZXwKICAgICAgICAgICAgcW9uZnBrZy5hZGRfZGVmaW5lKGRlZmlu
2334 # ZSkKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgcW9uZnBrZy5h
2335 # ZGRfbGliKHRzdC5saWJzLnRvX3MpCiAgICAgICAgICAKICAgICAgICAgIGlm
2336 # IG5vdCBnbG9iYWwKICAgICAgICAgICAgQGNvbmZpZy5hZGRfcW9uZl9wYWNr
2337 # YWdlKHFvbmZwa2cpCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIEBjb25m
2338 # aWcuYWRkX3FvbmZfZmVhdHVyZSh0c3QuaWQpCiAgICAgICAgICBlbmQKICAg
2339 # ICAgICAgIHB1dHMgIltPS10iCiAgICAgICAgZWxzZQogICAgICAgICAgcHV0
2340 # cyAiW0ZBSUxFRF0iCiAgICAgICAgICAKICAgICAgICAgIGlmIG5vdCBvcHRp
2341 # b25hbAogICAgICAgICAgICBwdXRzICI9PiAje3Rlc3RvcHRbOm5hbWVdfSBp
2342 # cyByZXF1aXJlZCIKICAgICAgICAgICAgZXhpdCgtMSkKICAgICAgICAgIGVu
2343 # ZAogICAgICAgIGVuZAogICAgICB9CiAgICBlbmQKICAgIAogICAgZGVmIGdl
2344 # bmVyYXRlX21ha2VmaWxlcwogICAgICBwdXRzICI9PiBDcmVhdGluZyBtYWtl
2345 # ZmlsZXMuLi4iCiAgICAgIEBxbWFrZS5ydW4oIiIsIHRydWUpCiAgICAgIAog
2346 # ICAgICBwdXRzICI9PiBVcGRhdGluZyBtYWtlZmlsZXMuLi4iCiAgICAgIAog
2347 # ICAgICBAbWFrZWZpbGVzID0gTWFrZWZpbGU6OmZpbmRfbWFrZWZpbGVzKERp
2348 # ci5nZXR3ZCkKICAgICAgQG1ha2VmaWxlcy5lYWNoIHsgfG1ha2VmaWxlfAog
2349 # ICAgICAgICAgTWFrZWZpbGU6Om92ZXJyaWRlKG1ha2VmaWxlLCBGaWxlLmV4
2350 # cGFuZF9wYXRoKEBhcmd1bWVudHNbInByZWZpeCJdLnRvX3MpLCBAc3RhdHVz
2351 # RmlsZSkKICAgICAgfQogICAgICAKICAgICAgRmlsZS5vcGVuKEBzdGF0dXNG
2352 # aWxlLCAidyIgKSB7IHxmaWxlfAogICAgICAgIGZpbGUgPDwgJUAKI3tGaWxl
2353 # LnJlYWQobmV3bG9jYXRpb24oIm1ha2VmaWxlLnJiIikpfQpRb25mOjpNYWtl
2354 # ZmlsZTo6b3ZlcnJpZGUoIEFSR1ZbMF0udG9fcywgIiN7QGFyZ3VtZW50c1si
2355 # cHJlZml4Il19IiwgIiN7QHN0YXR1c0ZpbGV9IiApCkAKCmlmIERldGVjdE9T
2356 # Lm9zPyA9PSAxICN3aW4zMgogICAgICAgIGZpbGUgPDwgJUAKUW9uZjo6TWFr
2357 # ZWZpbGU6Om92ZXJyaWRlKCBBUkdWWzBdLnRvX3MrIi5yZWxlYXNlIiwgIiN7
2358 # QGFyZ3VtZW50c1sicHJlZml4Il19IiwgIiN7QHN0YXR1c0ZpbGV9IiApClFv
2359 # bmY6Ok1ha2VmaWxlOjpvdmVycmlkZSggQVJHVlswXS50b19zKyIuZGVidWci
2360 # LCAiI3tAYXJndW1lbnRzWyJwcmVmaXgiXX0iLCAiI3tAc3RhdHVzRmlsZX0i
2361 # ICkKQAplbmQKICAgICAgfQogICAgZW5kCiAgICAKICAgIGRlZiBnZXRfYXJn
2362 # cyhhcmd2KQogICAgICBvcHRjID0gMAogICAgICBsYXN0X29wdCA9ICIiCiAg
2363 # ICAgIAogICAgICBAb3B0aW9ucy5lYWNoIHsgfG9wdGlvbnwKICAgICAgICBn
2364 # aXZlbl9vcHRpb24gPSBuaWwKICAgICAgICAKICAgICAgICBhcmd2LmVhY2gg
2365 # eyB8YXJnfAogICAgICAgICAgYXJnLnN0cmlwIQogICAgICAgICAgZ2l2ZW4g
2366 # PSBmYWxzZQogICAgICAgICAgCiAgICAgICAgICBjYXNlIG9wdGlvbls6dHlw
2367 # ZV0udG9fcwogICAgICAgICAgICB3aGVuICJzdHJpbmciCiAgICAgICAgICAg
2368 # ICAgaWYgYXJnID1+IC8tLSN7b3B0aW9uWzpuYW1lXX09KFtcV1x3XSopLwog
2369 # ICAgICAgICAgICAgICAgZ2l2ZW4gPSB0cnVlCiAgICAgICAgICAgICAgICBn
2370 # aXZlbl9vcHRpb24gPSAkMQogICAgICAgICAgICAgIGVuZAogICAgICAgICAg
2371 # ICB3aGVuICJwYXRoIgogICAgICAgICAgICAgIGlmIGFyZyA9fiAvLS0je29w
2372 # dGlvbls6bmFtZV19PShbXFdcd10qKS8KICAgICAgICAgICAgICAgIGdpdmVu
2373 # ID0gdHJ1ZQogICAgICAgICAgICAgICAgZ2l2ZW5fb3B0aW9uID0gRmlsZS5l
2374 # eHBhbmRfcGF0aCgkMSkKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAg
2375 # d2hlbiAiYm9vbCIKICAgICAgICAgICAgICBpZiBhcmcgPX4gLy0tdXNlLSN7
2376 # b3B0aW9uWzpuYW1lXX09KFx3KykvCiAgICAgICAgICAgICAgICBnaXZlbiA9
2377 # IHRydWUKICAgICAgICAgICAgICAgIGdpdmVuX29wdGlvbiA9ICQxCiAgICAg
2378 # ICAgICAgICAgZW5kCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBp
2379 # ZiBhcmcgPX4gLy0tI3tvcHRpb25bOm5hbWVdfS8KICAgICAgICAgICAgICAg
2380 # IGdpdmVuX29wdGlvbiA9ICJ5ZXMiCiAgICAgICAgICAgICAgICBnaXZlbiA9
2381 # IHRydWUKICAgICAgICAgICAgICBlbmQKICAgICAgICAgIGVuZAogICAgICAg
2382 # ICAgCiAgICAgICAgICBpZiBnaXZlbgogICAgICAgICAgICBhcmd2LmRlbGV0
2383 # ZShhcmcpCiAgICAgICAgICBlbmQKICAgICAgICB9CiAgICAgICAgCiAgICAg
2384 # ICAgb3B0aW9uWzp2YWx1ZV0gPSBnaXZlbl9vcHRpb24KICAgICAgfQogICAg
2385 # ICAKICAgICAgZnJvbnRlbmRfa2V5ID0gInRrIgogICAgICBhcmd2LmVhY2gg
2386 # eyB8dW5rbm93bnwKICAgICAgICB1bmtub3duLnN0cmlwIQogICAgICAgIGlm
2387 # IHVua25vd24gPX4gLy0td2l0aC1jb25maWctZnJvbnRlbmQ9KFx3KykvCiAg
2388 # ICAgICAgICBmcm9udGVuZF9rZXkgPSAkMQogICAgICAgIGVsc2lmIHVua25v
2389 # d24gPX4gLy0taGVscC8KICAgICAgICAgIHVzYWdlCiAgICAgICAgICBleGl0
2390 # KDApCiAgICAgICAgZWxzaWYgdW5rbm93biA9fiAvLS12ZXJzaW9uLwogICAg
2391 # ICAgICAgcHV0cyAiUU9uZiAje1ZFUlNJT059IFsje1ZFUlNJT05fREFURX1d
2392 # IgogICAgICAgICAgZXhpdCgwKQogICAgICAgIGVsc2lmIHVua25vd24gPX4g
2393 # Ly0tZGVidWcvCiAgICAgICAgICBAY29uZmlnLnVzZV9kZWJ1ZwogICAgICAg
2394 # IGVuZAogICAgICB9CiAgICAgIAogICAgICBmcm9udGVuZCA9IEZyb250ZW5k
2395 # RmFjdG9yeS5jcmVhdGUoZnJvbnRlbmRfa2V5KQogICAgICBpZiBmcm9udGVu
2396 # ZC5uaWw/CiAgICAgICAgcHV0cyAiPT4gSW52YWxpZCBmcm9udGVuZCIKICAg
2397 # ICAgICB1c2FnZSgpCiAgICAgICAgZXhpdCgtMSkKICAgICAgZWxzaWYgbm90
2398 # IGZyb250ZW5kLnBhcnNlKEBvcHRpb25zKQogICAgICAgIHVzYWdlKCkKICAg
2399 # ICAgICBleGl0KC0xKQogICAgICBlbmQKICAgICAgCiAgICAgIEBvcHRpb25z
2400 # LmVhY2ggeyB8b3B0aW9ufAogICAgICAgIHZhbHVlID0gb3B0aW9uWzp2YWx1
2401 # ZV0ubmlsPyA/IG9wdGlvbls6ZGVmYXVsdF0udG9fcyA6IG9wdGlvbls6dmFs
2402 # dWVdCiAgICAgICAgQGFyZ3VtZW50c1tvcHRpb25bOm5hbWVdXSA9IHZhbHVl
2403 # CiAgICAgIH0KICAgICAgCiAgICBlbmQKICAgIAogICAgZGVmIHNhdmUocGF0
2404 # aCkKICAgICAgYmVnaW4KICAgICAgICBzZXR1cF9jb25maWcoQGNvbmZpZywg
2405 # QGFyZ3VtZW50cykKICAgICAgcmVzY3VlIE5vTWV0aG9kRXJyb3IgPT4gZQog
2406 # ICAgICAgIGlmIG5vdCBlLm1lc3NhZ2UgPX4gL3NldHVwX2NvbmZpZy8KICAg
2407 # ICAgICAgIHB1dHMgIkVycm9yOiAje2V9IgogICAgICAgICAgcHV0cyBlLmJh
2408 # Y2t0cmFjZQogICAgICAgICAgZXhpdCgtMSkKICAgICAgICBlbmQKICAgICAg
2409 # ZW5kCiAgICAgIAogICAgICBAY29uZmlnLmFkZF9kZWZpbmUoJUBfX1BSRUZJ
2410 # WF9fPSdcXFxcIicje0ZpbGUuZXhwYW5kX3BhdGggQGFyZ3VtZW50c1sicHJl
2411 # Zml4Il19J1xcXFwiJ0ApCiAgICAgIAogICAgICBzYXZlX3BrZ2NvbmZpZwog
2412 # ICAgICBAY29uZmlnLnNhdmUocGF0aCkKICAgICAgCiAgICAgIGxhdW5jaGVy
2413 # ID0gbmlsCiAgICAgIGlmIERldGVjdE9TLm9zPyA9PSAxICMgV2luZG93cwog
2414 # ICAgICAgIGxhdW5jaGVyID0gRmlsZS5uZXcoImxhdW5jaGVyLmJhdCIsICJ3
2415 # IikKICAgICAgICAKICAgICAgICBsYXVuY2hlciA8PCAic2V0IFBBVEg9I3tA
2416 # Y29uZmlnLmJ1aWxkX2Rpci5nc3ViKCcvJywgJ1xcJyl9XFxiaW47I3tAY29u
2417 # ZmlnLmJ1aWxkX2Rpci5nc3ViKCcvJywgJ1xcJyl9XFxsaWI7I3tAY29uZmln
2418 # LmxpYnJhcnlfcGF0aC5qb2luKCI7IikuZ3N1YignLycsICdcXCcpfTslUEFU
2419 # SCVcbiIKICAgICAgICBsYXVuY2hlciA8PCAiJTFcbiIKICAgICAgZWxzZQog
2420 # ICAgICAgIGxhdW5jaGVyID0gRmlsZS5uZXcoImxhdW5jaGVyLnNoIiwidyIp
2421 # CiAgICAgICAgbGF1bmNoZXIgPDwgIiMhL2Jpbi9iYXNoXG4iCiAgICAgICAg
2422 # bGF1bmNoZXIgPDwgImV4cG9ydCBQQVRIPSN7QGNvbmZpZy5idWlsZF9kaXJ9
2423 # L2Jpbjoke1BBVEh9XG4iCiAgICAgICAgbGF1bmNoZXIgPDwgImV4cG9ydCBM
2424 # RF9MSUJSQVJZX1BBVEg9I3tAY29uZmlnLmJ1aWxkX2Rpcn0vYmluOiN7QGNv
2425 # bmZpZy5idWlsZF9kaXJ9L2xpYjoje0Bjb25maWcubGlicmFyeV9wYXRoLmpv
2426 # aW4oIjoiKX06JHtMRF9MSUJSQVJZX1BBVEh9OiR7RFlfTERfTElCUkFSWV9Q
2427 # QVRIfVxuIgogICAgICAgIGxhdW5jaGVyIDw8ICJleHBvcnQgRFlMRF9MSUJS
2428 # QVJZX1BBVEg9JHtMRF9MSUJSQVJZX1BBVEh9XG4iCiAgICAgICAgbGF1bmNo
2429 # ZXIgPDwgIkFQUD0kMVxuIgogICAgICAgIGxhdW5jaGVyIDw8ICJzaGlmdFxu
2430 # IgogICAgICAgIGxhdW5jaGVyIDw8ICJlY2hvIExhdW5jaGluZzogJEFQUFxu
2431 # IgogICAgICAgIGxhdW5jaGVyIDw8ICIkQVBQICQqXG4iCiAgICAgIGVuZAog
2432 # ICAgICAKICAgICAgRmlsZS5jaG1vZCgwNzU1LCBsYXVuY2hlci5wYXRoKQog
2433 # ICAgICAKICAgIGVuZAogICAgCiAgICBkZWYgc2F2ZV9wa2djb25maWcKICAg
2434 # ICAgaWYgbm90IEBwa2dfY29uZmlncy5lbXB0eT8KICAgICAgICBAcGtnX2Nv
2435 # bmZpZ3MuZWFjaCB7IHxwa2dfY29uZmlnfAogICAgICAgICAgRmlsZS5vcGVu
2436 # KCBwa2dfY29uZmlnWzpwYWNrYWdlX25hbWVdKyIucGMiLCAidyIpIGRvIHxm
2437 # aWxlfAogICAgICAgICAgICBmaWxlIDw8ICJwcmVmaXg9IiA8PCBAYXJndW1l
2438 # bnRzWyJwcmVmaXgiXSA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwgImV4
2439 # ZWNfcHJlZml4PSR7cHJlZml4fSIgPDwgIlxuIgogICAgICAgICAgICBmaWxl
2440 # IDw8ICJsaWJkaXI9I3twa2dfY29uZmlnWzpsaWJkaXJdLm5pbD8gPyAiJHtw
2441 # cmVmaXh9L2xpYiIgOiBwa2dfY29uZmlnWzpsaWJkaXJdIH0iIDw8ICJcbiIK
2442 # ICAgICAgICAgICAgZmlsZSA8PCAiaW5jbHVkZWRpcj0je3BrZ19jb25maWdb
2443 # OmluY2x1ZGVkaXJdLm5pbD8gPyAiJHtwcmVmaXh9L2luY2x1ZGUiIDogcGtn
2444 # X2NvbmZpZ1s6aW5jbHVkZWRpcl0gfSIgPDwgIlxuXG5cbiIKICAgICAgICAg
2445 # ICAgCiAgICAgICAgICAgIGZpbGUgPDwgIk5hbWU6ICIgPDwgcGtnX2NvbmZp
2446 # Z1s6cGFja2FnZV9uYW1lXSA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwg
2447 # IkRlc2NyaXB0aW9uOiAiIDw8IHBrZ19jb25maWdbOmRlc2NyaXB0aW9uXSA8
2448 # PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwgIlJlcXVpcmVzOiAiIDw8IHBr
2449 # Z19jb25maWdbOnJlcXVpcmVzXS5qb2luKCIgIikgPDwgIlxuIiBpZiBwa2df
2450 # Y29uZmlnWzpyZXF1aXJlc10uY2xhc3MgPT0gQXJyYXkKICAgICAgICAgICAg
2451 # ZmlsZSA8PCAiVmVyc2lvbjogIiA8PCBwa2dfY29uZmlnWzp2ZXJzaW9uXSA8
2452 # PCAiXG4iCiAgICAgICAgICAgIAogICAgICAgICAgICBmaWxlIDw8ICJMaWJz
2453 # OiAiIDw8IHBrZ19jb25maWdbOmxpYnNdIDw8ICJcbiIKICAgICAgICAgICAg
2454 # ZmlsZSA8PCAiQ2ZsYWdzOiAiIDw8IHBrZ19jb25maWdbOmNmbGFnc10gPDwg
2455 # IlxuIgogICAgICAgICAgZW5kCiAgICAgICAgfQogICAgICBlbmQKICAgIGVu
2456 # ZAogICAgCiAgICAKICAgIGRlZiBsb2codHh0KQogICAgICBGaWxlLm9wZW4o
2457 # QGxvZ19maWxlLCAiYSIpIGRvIHxmfAogICAgICAgIGYgPDwgdHh0IDw8ICJc
2458 # biIKICAgICAgZW5kCiAgICBlbmQKICAgIAogICAgZGVmIHVzYWdlCiAgICAg
2459 # IHB1dHMgIk9wdGlvbnM6IgogICAgICBAb3B0aW9ucy5lYWNoIHsgfG9wdGlv
2460 # bnwKICAgICAgICBjYXNlIG9wdGlvbls6dHlwZV0KICAgICAgICAgIHdoZW4g
2461 # InN0cmluZyIKICAgICAgICAgICAgcHJpbnQgIlxuICAtLSN7b3B0aW9uWzpu
2462 # YW1lXX09W3ZhbHVlXSIKICAgICAgICAgICAgcHJpbnQgIlx0XHQuLi4uLi4j
2463 # e29wdGlvbls6ZGVzY3JpcHRpb25dfSAiCiAgICAgICAgICAgIAogICAgICAg
2464 # ICAgICBpZiBub3Qgb3B0aW9uWzpkZWZhdWx0XS5uaWw/CiAgICAgICAgICAg
2465 # ICAgcHJpbnQgIltkZWZhdWx0PSN7b3B0aW9uWzpkZWZhdWx0XX1dIgogICAg
2466 # ICAgICAgICBlbmQKICAgICAgICAgIHdoZW4gInBhdGgiCiAgICAgICAgICAg
2467 # IHByaW50ICJcbiAgLS0je29wdGlvbls6bmFtZV19PVsvYS9wYXRoXSIKICAg
2468 # ICAgICAgICAgcHJpbnQgIlx0XHQuLi4uLi4je29wdGlvbls6ZGVzY3JpcHRp
2469 # b25dfSAiCiAgICAgICAgICAgIAogICAgICAgICAgICBpZiBub3Qgb3B0aW9u
2470 # WzpkZWZhdWx0XS5uaWw/CiAgICAgICAgICAgICAgcHJpbnQgIltkZWZhdWx0
2471 # PSN7b3B0aW9uWzpkZWZhdWx0XX1dIgogICAgICAgICAgICBlbmQKICAgICAg
2472 # ICAgIHdoZW4gImJvb2wiCiAgICAgICAgICAgIHByaW50ICJcbiAgLS11c2Ut
2473 # I3tvcHRpb25bOm5hbWVdfT1beWVzfG5vXSIKICAgICAgICAgICAgaWYgbm90
2474 # IG9wdGlvbls6ZGVmYXVsdF0ubmlsPwogICAgICAgICAgICAgIGRlZmF1bHQg
2475 # PSBvcHRpb25bOmRlZmF1bHRdCiAgICAgICAgICAgICAgaWYgZGVmYXVsdCA9
2476 # PSB0cnVlIG9yIGRlZmF1bHQgPT0gInllcyIgb3IgZGVmYXVsdCA9PSAidHJ1
2477 # ZSIKICAgICAgICAgICAgICAgIGRlZmF1bHQgPSAieWVzIgogICAgICAgICAg
2478 # ICAgIGVsc2lmIGRlZmF1bHQgPT0gZmFsc2Ugb3IgZGVmYXVsdCA9PSAibm8i
2479 # IG9yIGRlZmF1bHQgPT0gImZhbHNlIgogICAgICAgICAgICAgICAgZGVmYXVs
2480 # dCA9ICJubyIKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBk
2481 # ZWZhdWx0ID0gIm5vIgogICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg
2482 # IAogICAgICAgICAgICAgIHByaW50ICJcdFx0Li4uLi4uI3tvcHRpb25bOmRl
2483 # c2NyaXB0aW9uXX0gW2RlZmF1bHQ9I3tkZWZhdWx0fV0iCiAgICAgICAgICAg
2484 # IGVuZAogICAgICAgICAgZWxzZQogICAgICAgICAgICBwcmludCAiXG4gIC0t
2485 # I3tvcHRpb25bOm5hbWVdfSIKICAgICAgICAgICAgcHJpbnQgIlx0XHQuLi4u
2486 # Li4je29wdGlvbls6ZGVzY3JpcHRpb25dfSIKICAgICAgICBlbmQKICAgICAg
2487 # fQogICAgICAKICAgICAgcHJpbnQgIlxuICAtLXdpdGgtY29uZmlnLWZyb250
2488 # ZW5kPVtwbGFpbnx0a10iCiAgICAgIHByaW50ICJcdFx0Li4uLi4uU2V0cyB0
2489 # aGUgZnJvbnRlbmQgdG8gY29uZmlndXJlIHRoZSBhcHBsaWNhdGlvbiBbZGVm
2490 # YXVsdD10a10iCiAgICAgIHByaW50ICJcbiAgLS1kZWJ1ZyIKICAgICAgcHJp
2491 # bnQgIlx0XHQuLi4uLi5Db21waWxlIHdpdGggZGVidWcgc3VwcG9ydCBbZGVm
2492 # YXVsdD1ub10iCiAgICAgIHByaW50ICJcbiAgLS1oZWxwIgogICAgICBwcmlu
2493 # dCAiXG4gIC0tdmVyc2lvbiIKICAgICAgcHJpbnQgIlx0XHQuLi4uLi5TaG93
2494 # cyB0aGlzIG1lc3NhZ2UiCiAgICAgIAogICAgICBwdXRzICIiCiAgICBlbmQK
2495 # ICBlbmQKZW5kCgpiZWdpbgogIGxvYWQgInNldHVwLnJiIgpyZXNjdWUgTG9h
2496 # ZEVycm9yCiAgRmlsZS5vcGVuKG9sZGxvY2F0aW9uKCJzZXR1cC5yYiIpLCAi
2497 # dyIpIGRvIHxmaWxlfAogICAgZmlsZSA8PCBGaWxlLnJlYWQoInNldHVwX3Ji
2498 # LnRwbCIpIDw8ICJcbiIKICBlbmQKICBwdXRzICI9PiBBIHRlbXBsYXRlIGZp
2499 # bGUgd2FzIGdlbmVyYXRlZCBpbiBzZXR1cC5yYiwgcGxlYXNlIGVkaXQgaXQg
2500 # YW5kIHJlcnVuIHRoZSBjb25maWd1cmUgc2NyaXB0LiIKICBleGl0KC0xKQpl
2501 # bmQKCmlmIF9fRklMRV9fID09ICQwCiAgcW9uZiA9IFFvbmY6OkNvbmZpZ3Vy
2502 # ZS5uZXcKICBxb25mLmdldF9hcmdzKEFSR1YpCiAgcW9uZi5maW5kX3BhY2th
2503 # Z2VzCiAgcW9uZi5ydW5fdGVzdHMKICAKICBxb25mLnNhdmUoImNvbmZpZy5w
2504 # cmkiKQogIAogIHFvbmYuZ2VuZXJhdGVfbWFrZWZpbGVzCmVuZAoKCgoAAAAA
2505 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2506 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2507 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2508 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2509 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2510 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2511 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2512 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2513 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2514 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2515 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2516 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2517 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2518 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2519 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2520 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2521 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2522 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2523 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2524 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2525 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2526 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2527 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2528 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2529 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2530 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2531 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2532 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2533 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2534 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2535 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2536 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2537 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2538 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2539 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2540 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2541 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2542 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2543 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2544 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2545 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2546 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2547 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2548 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2549 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2550 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2551 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2552 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2553 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2554 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2555 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2556 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2557 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2558 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2559 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2560 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2561 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2562 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2563 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2564 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2565 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2566 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2567 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2568 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2569 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2570 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2571 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2572 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2573 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2574 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2575 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2576 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2577 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2578 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2579 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2580 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2581 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2582 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2583 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2584 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2585 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2586 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2587 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2588 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2589 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2590 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2591 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2592 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2593 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2594 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2595 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2596 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2597 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2598 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2599 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2600 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2601 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2602 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2603 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2604 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2605 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2606 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2607 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2608 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2609 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2610 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2611 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2612 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2613 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2614 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2615 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2616 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2617 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2618 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2619 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2620 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2621 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2622 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2623 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2624 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2625 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2626 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2627 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2628 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2629 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2630 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2631 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2632 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2633 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2634 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2635 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2636 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2637 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2638 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2639 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2640 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2641 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2642 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2643 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2644 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2645 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2646 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2647 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2648 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2649 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2650 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2651 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2652 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2653 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2654 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2655 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2656 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2657 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2658 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2659 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2660 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2661 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2662 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2663 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2664 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2665 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2666 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2667 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2668 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2669 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2670 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2671 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2672 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2673 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2674 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2675 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2676 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2677 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2678 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2679 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2680 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2681 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2682 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2683 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2684 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2685 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2686 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2687 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2688 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2689 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2690 # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA