LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFdpbmUgY29tbWFuZCBwcm9tcHQKICogQ3plY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgKEMpIDE5OTkgRCBBIFBpY2tsZXMKICogQ29weXJpZ2h0IChDKSAyMDA0IERhdmlkIEtyZWRiYQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAid2NtZC5oIgoKTEFOR1VBR0UgTEFOR19DWkVDSCwgU1VCTEFOR19ERUZBVUxUCgovKiBDemVjaCBzdHJpbmdzIGluIENQMTI1MCAqLwoKU1RSSU5HVEFCTEUKewogIFdDTURfQVRUUklCLCAiTuFwb3bsZGEgayBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxk4XZrb3b9IHNvdWJvcj4gamUgdZ7tduFuIGtlIHNwdZp07G7tIHD47WthevlcblwKeiBqaW7paG8gZOF2a2926WhvIHNvdWJvcnUuIEtkeZ4gc2UgYuxoIHZvbGFu6WhvIGThdmtvdulobyBzb3Vib3J1IHVrb27o7Swga29udHJvbGEgc2UgdnLhdO1cblwKdm9sYWrtY+1tdSBzb3Vib3J1LiBQ+O1rYXogQ0FMTCBt+Z5lIHD4ZWThdmF0IHBhcmFtZXRyeVxuXAp2b2xhbukgcHJvY2VkdfhlLlxuXApcblwKWm3sbnkgdiBkZWZhdWx0bu1tIGFkcmVz4fhpLCBwcm9t7G5u/WNoIHByb3N0+GVk7SBhdGQuLCB1ZOxsYW7pXG5cCnZvbGFub3UgcHJvY2VkdXJvdSBqc291IHpk7GTsbnkgdm9sYWrtY+1tLlxuIgoKICBXQ01EX0NELCAgICAgIk7hcG927GRhIGsgQ0RcbiIKICBXQ01EX0NIRElSLCAgIk7hcG927GRhIGsgQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgdnltYZ5lIG9icmF6b3ZrdSB0ZXJtaW7hbHVcbiIKCiAgV0NNRF9DT1BZLCAgICJO4XBvduxkYSBrIENPUFlcbiIKICBXQ01EX0NUVFksICAgIk7hcG927GRhIGsgQ1RUWVxuIgogIFdDTURfREFURSwgICAiTuFwb3bsZGEgayBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJO4XBvduxkYSBrIERFTFxuIgogIFdDTURfRElSLCAgICAiTuFwb3bsZGEgayBESVJcbiIKCiAgV0NNRF9FQ0hPLAoiRUNITyA8+GV07HplYz4gem9icmF67SA8+GV07HplYz4gbmEgcG91nu12YW7pbSB0ZXJtaW7hbG926W0gemH47Xplbu0uXG5cClxuXApFQ0hPIE9OIHpw+XNvYu0sIJ5lIHaaZWNobnkgbuFzbGVkdWrtY+0gcPjta2F6eSB2IGThdmtvdultIHNvdWJvcnUgYnVkb3VcblwKem9icmF6ZW55IG5hIHRlcm1pbuFsb3bpbSB6YfjtemVu7SBw+GVkIHN2/W0gc3B1mnTsbu1tLlxuXApcblwKRUNITyBPRkYgdnlwaXNvduFu7SBw+O1rYXr5IHpha+GeZSAoRUNITyBqZSBPRkYgZGVmYXVsdG7sLlxuXApQ+GVkc2Fk7S1saSBzZSBw+O1rYXp1IEVDSE8gT0ZGIEAgbmVidWRlIHD47WtheiBFQ0hPIE9GRiB2eXBz4W5cblwKbmEgdGVybWlu4WxvdukgemH47Xplbu0uXG4iCgogIFdDTURfRVJBU0UsICAiTuFwb3bsZGEgayBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIlD47WtheiBGT1Igdnlrb27hIHphZGFub3UgYWtjaSBwcm8ga2GeZP0gemUgemFkYW7pIHNrdXBpbnkgc291Ym9y+S5cblwKXG5cClN5bnRheGU6IEZPUiAlcHJvbexubuEgSU4gKHNrdXBpbmEgc291Ym9y+SkgRE8gYWtjZVxuXApcblwKViBwcm9ncmFtdSBjbWQgbmVu7SB0+GViYSB6ZHZvam92YXQgem5hayAlIHD4ZWQgcHJvbexubm91IHD4aSBwb3WeaXTtIHD47WthenVcblwgRk9SIHYgZOF2a2926W0gc291Ym9ydS5cbiIKCiAgV0NNRF9HT1RPLAoiUPjta2F6IEdPVE8gcPhlZOEgdv1rb24gbmEgamlu6SBt7XN0b1xuXAp2IGThdmtvdultIHNvdWJvcnUuXG5cClxuXApO4XbsmnTtLCBrdGVy/W0gc2Ugb3puYeh1amUgY+1sIHNrb2t1IEdPVE8gbfmeZSBi/XQgYZ4gMjU1IHpuYWv5XG5cCmRsb3Vo6S4gTmVzbe0gdpphayBvYnNhaG92YXQgbWV6ZXJ5IChvZGxpmm7pIGNob3bhbu0gb2Qgamlu/WNoIG9wZXJh6G7tY2hcblwKc3lzdOlt+SkuIEV4aXN0dWrtLWxpIGR27CBuZWJvIHbtY2Ugc3Rlam79Y2ggbuF27Jp07SB2IGplZG5vbSBk4XZrb3bpbVxuXApzb3Vib3J1LCBwYWsgcHJ2bu0gYnVkZSB2eWtvbuFuby4gU2tvayBHT1RPIG5hIG5lZXhpc3R1au1j7SBu4XbsmnTtXG5cCnVrb27o7SB2/WtvbiBk4XZrb3bpaG8gc291Ym9ydS5cblwKXG5cCkdPVE8gc2UgbmVk4SBwb3We7XQgaW50ZXJha3Rpdm7sLlxuIgoKICBXQ01EX0hFTFAsICAgIk7hcG927GRhIGsgSEVMUFxuIgoKICBXQ01EX0lGLAoiSUYgc2xvdZ7tIGsgcG9kbe1u7G7pbXUgdv1rb251IHD47WthevkuXG5cClxuXApTeW50YXhlOiBJRiBbTk9UXSBFWElTVCBzb3Vib3IgcPjta2F6XG5cCgkgSUYgW05PVF0g+GV07HplYzE9PfhldOx6ZWMyIHD47WthelxuXAoJIElGIFtOT1RdIEVSUk9STEVWRUwg6O1zbG8gcPjta2F6XG5cClxuXApWZSBkcnVo6SBmb3Jt7CBw+O1rYXp1IG11c+0gYv10IPhldOx6ZWMxIGEg+GV07HplYzIgdXphdvhlbnkgdiBkdm9qaXT9Y2hcblwKdXZvem92a+FjaC4gU3Jvdm7hbu0gbmVu7SBjaXRsaXbpIG5hIHZlbGlrb3N0IHDtc21lbi5cbiIKCiAgV0NNRF9MQUJFTCwgICJMQUJFTCBuYXN0YXZ1amUgam1lbm92a3Ugc3Zhemt1LWRpc2t1LlxuXApcblwKU3ludGF4ZTogTEFCRUwgW2Rpc2s6XVxuXApCdWRldGUgdnl6duFuaSBrIHphZOFu7SBqbWVub3ZreS5cblwKSm1lbm92a3Ugc2kgbfmeZXRlIHpvYnJheml0IHD47WthemVtIFZPTC5cbiIKCiAgV0NNRF9NRCwgICAgICJO4XBvduxkYSBrIE1EXG4iCiAgV0NNRF9NS0RJUiwgICJO4XBvduxkYSBrIE1LRElSXG4iCiAgV0NNRF9NT1ZFLAoiTU9WRSBw+GVzdW5lIHNvdWJvciDoaSBhZHJlc+H4IG5hIGppbukgbe1zdG8gdiBzb3Vib3JvdultIHN5c3TpbXUuXG5cClxuXApKZS1saSBw+GVzb3V24W4gYWRyZXPh+CwganNvdSBw+GVzdW51dHkgdpplY2hueSBqZWhvIHBvZGFkcmVz4fhlIGEgc291Ym9yeS5cblwKXG5cCk1PVkUgc2VsnmUganNvdS1saSB6ZHJvam924SBhIGPtbG924SBvYmxhc3QgbmEgamVkbm90a+FjaCBzIGppbv1taSBET1MgcO1zbWVueSBkaXNr+S5cbiIKCiAgV0NNRF9QQVRILAoiUEFUSCB6b2JyYXrtIOhpIHpt7G7tIGNlc3R5LCB2IG5pY2ieIGNtZCBobGVk4SBzb3Vib3J5LlxuXApcblwKUEFUSCBiZXogYXJndW1lbnT5IHpvYnJheu0gbW9tZW504Wxu7CBwbGF0bukgbmFzdGF2ZW7tIChw+GVkIHBydm7tIHpt7G5vdVxuXApqZSB0byBob2Rub3RhIHD4ZXZ6YXThIHplIHNvdWJvcnUgd2luZS5jb25mKS4gS2Ugem3sbuwgcPhpcG9qdGUgayBw+O1rYXp1XG5cClBBVEggbm92b3UgY2VzdHUuXG5cClxuXApKZSB0YWt06Z4gbW+ebukgem3sbml0IFBBVEggcG91nml07W0gcHJvbexubukgcHJvc3T4ZWTtIFBBVEgsXG5cCm5hcPjta2xhZDpcblwKCQlQQVRIICVQQVRIJTtjOlxcdGVtcFxuIgoKICBXQ01EX1BBVVNFLAoiUEFVU0Ugem9icmF67SBuYSBvYnJhem92Y2UgdGV4dCAnUHJlc3MgUmV0dXJuIGtleSB0byBjb250aW51ZSdcblwKYSB2eehr4SwgZG9rdWQgdZ5pdmF0ZWwgbmVzdGlza25lIGts4XZlc3UgRW50ZXIuIEplIHRvIHWeaXRl6G7pIGhsYXZu7FxuXApwcm90bywgYWJ5IHNpIHWeaXZhdGVsIG1vaGwgcPhl6O1zdCB2/XN0dXAgeiB2/WtvbnUgcPhlZGNo4Xplau1jaCBw+O1rYXr5LFxuXApuZZ4gc2UgdHl0byBvZHJvbHVq7SB6IG9icmF6b3ZreS5cbiIKCiAgV0NNRF9QUk9NUFQsCiJQUk9NUFQgbmFzdGF27SB2/Xp2dSBw+O1rYXpvdulobyD44WRrdS5cblwKXG5cCthldOx6ZWMgemEgcPjta2F6ZW0gUFJPTVBUIChhIG1lemVyb3UgYmV6cHJvc3T4ZWRu7CB6YSBQUk9NUFQpXG5cCnNlIHpvYnJheu0gbmEgemHo4XRrdSBrYZ5k6SBub3bpIHD47Wthem926SD44WRreS5cblwKXG5cClR5dG8gem5ha3kgbWFq7SB2IPhldOx6Y+1jaCBzcGVjaeFsbu0gdv16bmFtOlxuXApcblwKJCQgICAgWm5hayBkb2xhcnUgICAgICAgICAkXyAgICBPZPjhZGtvduFu7SAgICAgICAgICRiICAgIFpuYWsgcm91cnkgKHwpXG5cCiRkICAgIERhdHVtICAgICAgICAgICAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICBabmFt6W5rbyB27HSa7SBuZZ5cblwKJGwgICAgWm5hbelua28gbWVumu0gbmWeICAkbiAgICBQ7XNtZW5vIGRpc2t1ICAgICAgICRwICAgIENlc3RhXG5cCiRxICAgIFJvdm7tdGtvICAgICAgICAgICAgJHQgICAgyGFzICAgICAgICAgICAgICAgICAkdiAgICBWZXJ6ZSBjbWRcblwKXG5cClBST01QVCBiZXogcGFyYW1ldHL5IHJlc2V0dWplIHByb21wdCBuYSBkZWZhdWx0bu0sXG5cCmt0ZXL9IGplIHNsb55lbiB6IGNlc3R5IGsgc2916GFzbultdSBhZHJlc+H4aSAoduhldG7sIHDtc21lbmEgZGlza3VcblwKKSBhIHpuYW3pbmthICB27HSa7SBuZZ4gKD4pLlxuXAooamFrbyBqZSB2IERPUy11IFBST01QVCAkcCRnKS5cblwKXG5cClByb21wdCBt+Z5lIGL9dCB6bexu7G4gaSB6bexub3UgcHJvbexubukgcHJvc3T4ZWTtIFBST01QVCxcblwK6GlsaSBw+O1rYXogJ1NFVCBQUk9NUFQ9dGV4dCcgbeEgdGVudP2eIGVmZWt0IGpha28gJ1BST01QVCB0ZXh0J1xuIgoKICBXQ01EX1JFTSwKItjhZGt5IHph6O1uYWrtY+0gUkVNIChu4XNsZWRvdmFu/W0gbWV6ZXJvdSlcblwKbmVqc291IHZ5a29u4W55LiBSRU0gamUgcHJvdG8gcG91nu124W4gamFrbyBrb21lbnTh+G92/SBw+O1rYXouXG4iCgogIFdDTURfUkVOLCAgICAiTuFwb3bsZGEgayBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIk7hcG927GRhIGsgUkVOQU1FXG4iCiAgV0NNRF9SRCwgICAgICJO4XBvduxkYSBrIFJEXG4iCiAgV0NNRF9STURJUiwgICJO4XBvduxkYSBrIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIHpvYnJheu0gbmVibyB6bexu7SBwcm9t7G5u6SBwcm9zdPhlZO0gY21kLlxuXApcblwKU0VUIGJleiBhcmd1bWVudPkgdWvhnmUgc2916GFzbukgbmFzdGF2ZW7tIHByb3N0+GVk7S5cblwKXG5cClN5bnRheGUgcHJvIG5hc3RhdmVu7SBhIHpt7G51IHByb23sbm7pIHByb3N0+GVk7SBqZTpcblwKXG5cCiAgICAgIFNFVCA8cHJvbexubuE+PTxob2Rub3RhPlxuXApcblwKICAgICAga2RlIDxwcm9t7G5u4T4gYSA8aG9kbm90YT4gbXVz7SBi/XQgcHJvc3RhIG1lemVyXG5cCiAgICAgIGEgc3BlY2nhbG7tY2ggem5ha/kgYSBtZXppIDxwcm9t7G5u4T4gcm92bu10a28gPGhvZG5vdGE+XG5cCiAgICAgIG5lc23tIGL9dCBtZXplcnkuXG5cClxuXAogICAgICBWZSBXaW5lIGpzb3UgdmlkaXRlbG7pIHByb23sbm7pIHByb3N0+GVk7SBvcGVyYehu7WhvXG5cCiAgICAgIHN5c3TpbXUsIHZlIGt0ZXLpbSBqZSBXaW5lIHNwdZp07G4uIFByb3RvIHV2aWTtdGUgbW5vaGVtIHbtYyBwcm9t7G5u/WNoXG5cCiAgICAgIHByb3N0+GVk7SwgbmWeIHUgbmF0aXZu7SBXaW4zMiBpbXBsZW1lbnRhY2UuIE5lbu0gbW+ebulcblwKICAgICAgbexuaXQgcHJvbexubukgcHJvc3T4ZWTtIGhvc3RpdGVsc2vpaG8gb3BlcmHobu1obyBzeXN06W11IHogY21kLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgdZ7tduFuIHYgZOF2a292/WNoIHNvdWJvcmVjaCBrIG9kc3RyYW7sbu0gamVkbm9obyBwYXJhbWV0cnUgemUgemHo4XRrdVxuXApqZWppY2ggc2V6bmFtdSwgdGFrnmUgcGFyYW1ldHIgMiBzZSBzdGFuZSBwYXJhbWV0cmVtIDEgYXRkLiBOZW3hIJ7hZG79XG5cCmVmZWt0LCBqZS1saSB6YWThbiBuYSBw+O1rYXpvdm91IPjhZGt1LlxuIgoKICBXQ01EX1RJTUUsICAgIk7hcG927GRhIGsgVElNRVxuIgoKICBXQ01EX1RJVExFLCAgIk5hc3Rhdu0gdGl0dWxlayBva25hIGNtZCwgc3ludGF4ZSBUSVRMRSBb+GV07HplY11cbiIKCiAgV0NNRF9UWVBFLAoiVFlQRSA8c291Ym9yPiB2eXDtmmUgPHNvdWJvcj4gbmEga29uem9sb3bpIHph+O16ZW7tIChuZWJvIGppbmFtLFxuXApqZS1saSB2/XN0dXAgcPhlbexyb3bhbikuIE5lbu0gemppmp1vduFubywgYnVkZS1saSB2eXBz4W4g6Gl0ZWxu/SB0ZXh0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSBqZSBwb3We7XbhbiBrIG5hc3RhdmVu7SBuZWJvIHpqaZp07G7tIHN0YXZ1IHD47XpuYWt1IHZlcmlmeS5cblwKU3ludGF4ZTpcblwKXG5cClZFUklGWSBPTglOYXN0YXbtIHD47XpuYWtcblwKVkVSSUZZIE9GRglacnWa7SBw+O16bmFrXG5cClZFUklGWQkJWm9icmF67SBha3R14Wxu7SBzdGF2LlxuXApcblwKUPjtem5hayB2ZXJpZnkgbmVt4SB2ZSBXaW5lIJ7hZG5vdSBmdW5rY2kuXG4iCgogIFdDTURfVkVSLAoiVkVSIHpvYnJheu0gdmVyemkgc3B1mnTsbulobyBwcm9ncmFtdSBjbWQuXG4iCgogIFdDTURfVk9MLCAgICAiTuFwb3bsZGEgayBWT0xcbiIKCiAgV0NNRF9QVVNIRCwgICJQVVNIRCA8ZGlyZWN0b3J5bmFtZT4gc2F2ZXMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9udG8gYVxuXApzdGFjaywgYW5kIHRoZW4gY2hhbmdlcyB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIHN1cHBsaWVkIG9uZS5cbiIKCiAgV0NNRF9QT1BELCAgICJQT1BEIGNoYW5nZXMgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIGxhc3Qgb25lIHNhdmVkIHdpdGhcblwKUFVTSEQuXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgdWtvbujtIGLsnu1j7SBzZXplbu0gYSB2cuF07SBrb250cm9sdVxuXApvcGVyYehu7W11IHN5c3TpbXUgbmVibyBw+O1rYXpvdultdSBpbnRlcnByZXR1LFxuXAp6ZSBrdGVy6WhvIGJ5bCBjbWQgc3B1mnTsbi5cbiIKCiAgV0NNRF9BTExIRUxQLCAiVmVzdGF27G7pIHD47WthenkgQ01EIGpzb3U6XG5cCkFUVFJJQlx0XHRab2JyYXrtIG5lYm8gbmFzdGF27SBET1Mtb3Zza+kgc291Ym9yb3bpIGF0dHJpYnV0eVxuXApDQUxMXHRcdFphdm9s4SBk4XZrb3b9IHNvdWJvciB6IGppbulob1xuXApDRCAoQ0hESVIpXHRabexu7SBwcmFjb3Zu7SBhZHJlc+H4XG5cCkNMU1x0XHRWeW1hnmUgb2tubyB0ZXJtaW7hbHVcblwKQ09QWVx0XHRLb3DtcnVqZSBzb3Vib3J5XG5cCkNUVFlcdFx0Wm3sbu0gdnN0dXBu7C92/XN0dXBu7SB6YfjtemVu7VxuXApEQVRFXHRcdFVr4Z5lIG5lYm8gbmFzdGF27SBzeXN06W1vdukgZGF0dW1cblwKREVMIChFUkFTRSlcdFNtYZ5lIGplZGVuIG5lYm8gdu1jZSBzb3Vib3L5XG5cCkRJUlx0XHRWeXDtmmUgb2JzYWggYWRyZXPh+GVcblwKRUNIT1x0XHRWeXDtmmUgdGV4dCBuYSB0ZXJtaW7hbFxuXApIRUxQXHRcdFpvYnJheu0gZGV0YWlsbu0gbuFwb3bsZHUgayB06W1hdHVcblwKTUQgKE1LRElSKVx0Vnl0dm/47SBhZHJlc+H4XG5cCk1PUkVcdFx0RGlzcGxheSBvdXRwdXQgaW4gcGFnZXNcblwKTU9WRVx0XHRQ+GVzdW5lIHNvdWJvciwgc2t1cGludSBzb3Vib3L5IG5lYm8gYWRyZXPh+G92/SBzdHJvbVxuXApQQVRIXHRcdE5hc3Rhdu0gbmVibyB1a+GeZSBwcm9obGVk4XZhbukgY2VzdHlcblwKUE9QRFx0XHRSZXN0b3JlcyB0aGUgZGlyZWN0b3J5IHRvIHRoZSBsYXN0IG9uZSBzYXZlZCB3aXRoIFBVU0hEXG5cClBST01QVFx0XHRabexu7SB2/Xp2dSBw+O1rYXpvdulobyD44WRrdVxuXApQVVNIRFx0XHRDaGFuZ2VzIHRvIGEgbmV3IGRpcmVjdG9yeSwgc2F2aW5nIHRoZSBjdXJyZW50IG9uZVxuXApSRU4gKFJFTkFNRSlcdFD4ZWptZW51amUgc291Ym9yXG5cClJEIChSTURJUilcdFNtYZ5lIGFkcmVz4fhcblwKU0VUXHRcdE5hc3Rhdu0gbmVibyB6b2JyYXrtIHByb23sbm5vdSBwcm9zdPhlZO1cblwKVElNRVx0XHRVa+GeZSDoaSBuYXN0YXbtIHN5c3TpbW92/SDoYXNcblwKVElUTEVcdFx0TmFzdGF27SB0aXR1bGVrIG9rbmEgYuye7WPtIENNRCBpbnN0YW5jZVxuXApUWVBFXHRcdFZ5cO2aZSBvYnNhaCB0ZXh0b3bpaG8gc291Ym9ydVxuXApWRVJcdFx0Wm9icmF67SB2ZXJ6aSBDTURcblwKVk9MXHRcdFVr4Z5lIGptZW5vdmt1IGRpc2t1XG5cCkVYSVRcdFx0VWtvbujtIENNRFxuXG5cClphZGVqdGUgSEVMUCA8cPjta2F6PiBwcm8gcG9kcm9ibuxqmu0gaW5mb3JtYWNlIG8gbuxrdGVy6W0geiB2/ZplIHV2ZWRlbv1jaCBw+O1rYXr5XG4iCgogIFdDTURfQ09ORklSTSwgIkFyZSB5b3Ugc3VyZSIKICBXQ01EX1lFUywgIlkiCiAgV0NNRF9OTywgIk4iCiAgV0NNRF9OT0FTU09DLCAiRmlsZSBhc3NvY2lhdGlvbiBtaXNzaW5nIGZvciBleHRlbnNpb24gJXNcbiIKICBXQ01EX05PRlRZUEUsICJObyBvcGVuIGNvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIGZpbGUgdHlwZSAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICJPdmVyd3JpdGUgJXMiCiAgV0NNRF9NT1JFU1RSLCAiTW9yZS4uLiIKICBXQ01EX1RSVU5DQVRFRExJTkUsICJMaW5lIGluIEJhdGNoIHByb2Nlc3NpbmcgcG9zc2libHkgdHJ1bmNhdGVkLiBVc2luZzpcbiIKICBXQ01EX05ZSSwgIk5vdCBZZXQgSW1wbGVtZW50ZWRcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBtaXNzaW5nXG4iCiAgV0NNRF9TWU5UQVhFUlIsICJTeW50YXggZXJyb3JcbiIKICBXQ01EX0ZJTEVOT1RGT1VORCwgIiVzIDogRmlsZSBOb3QgRm91bmRcbiIKICBXQ01EX05PQ01ESEVMUCwgIk5vIGhlbHAgYXZhaWxhYmxlIGZvciAlc1xuIgogIFdDTURfTk9UQVJHRVQsICJUYXJnZXQgdG8gR09UTyBub3QgZm91bmRcbiIKICBXQ01EX0NVUlJFTlREQVRFLCAiQ3VycmVudCBEYXRlIGlzICVzXG4iCiAgV0NNRF9DVVJSRU5UVElNRSwgIkN1cnJlbnQgVGltZSBpcyAlc1xuIgogIFdDTURfTkVXREFURSwgIkVudGVyIG5ldyBkYXRlOiAiCiAgV0NNRF9ORVdUSU1FLCAiRW50ZXIgbmV3IHRpbWU6ICIKICBXQ01EX01JU1NJTkdFTlYsICJFbnZpcm9ubWVudCB2YXJpYWJsZSAlcyBub3QgZGVmaW5lZFxuIgogIFdDTURfUkVBREZBSUwsICJGYWlsZWQgdG8gb3BlbiAnJXMnXG4iCiAgV0NNRF9DQUxMSU5TQ1JJUFQsICJDYW5ub3QgY2FsbCBiYXRjaCBsYWJlbCBvdXRzaWRlIG9mIGEgYmF0Y2ggc2NyaXB0XG4iCiAgV0NNRF9BTEwsICJBIgogIFdDTURfREVMUFJPTVBULCAiJXMsIERlbGV0ZSIKICBXQ01EX0VDSE9QUk9NUFQsICJFY2hvIGlzICVzXG4iCiAgV0NNRF9WRVJJRllQUk9NUFQsICJWZXJpZnkgaXMgJXNcbiIKICBXQ01EX1ZFUklGWUVSUiwgIlZlcmlmeSBtdXN0IGJlIE9OIG9yIE9GRlxuIjsKICBXQ01EX0FSR0VSUiwgIlBhcmFtZXRlciBlcnJvclxuIgogIFdDTURfVk9MVU1FREVUQUlMLCAiVm9sdW1lIGluIGRyaXZlICVjIGlzICVzXG5Wb2x1bWUgU2VyaWFsIE51bWJlciBpcyAlMDR4LSUwNHhcblxuIgogIFdDTURfVk9MVU1FUFJPTVBULCAiVm9sdW1lIGxhYmVsICgxMSBjaGFyYWN0ZXJzLCBFTlRFUiBmb3Igbm9uZSk/IgogIFdDTURfTk9QQVRILCAiUEFUSCBub3QgZm91bmRcbiIKICBXQ01EX0FOWUtFWSwiUHJlc3MgUmV0dXJuIGtleSB0byBjb250aW51ZTogIgogIFdDTURfQ09OU1RJVExFLCJXaW5lIENvbW1hbmQgUHJvbXB0IgogIFdDTURfVkVSU0lPTiwiQ01EIFZlcnNpb24gJXNcblxuIgogIFdDTURfTU9SRVBST01QVCwgIk1vcmU/ICIKICBXQ01EX0xJTkVUT09MT05HLCAiVGhlIGlucHV0IGxpbmUgaXMgdG9vIGxvbmcuXG4iCn0K