RCTF crypto100(1)
题面是一个文件,里面是用base64加密的字符串,如下所示:
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN= IyAJCQkJRG9jdW1lbnRhdGlvbgkJCQkgICAgI0== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyO= IyBBdXRob3I6ICAgVG9kZCBXaGl0ZW1hbk== IyBEYXRlOiAgICAgN3RoIE1heSwgMjAwM/== IyBWZXJpb246ICAgMS4x IyBIb21lcGFnZTogaHR0cDovL2hvbWUucGFjaWZpYy5uZXQuYXUvfnR3aGl0ZW1hL2Rlcy5odG1s I0== IyBNb2RpZmljYXRpb25zIHRvIDNkZXMgQ0JDIGNvZGUgYnkgTWF0dCBKb2huc3RvbiAyMDA0IDxtYXR0IGF0IHVjYyBhc24gYXU+ I5== IyBUaGlzIGFsZ29yaXRobSBpcyBhIHB1cmUgcHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIHRoZSBERVMgYWxnb3JpdGhtLl== IyBJdCBpcyBpbiBwdXJlIHB5dGhvbiB0byBhdm9pZCBwb3J0YWJpbGl0eSBpc3N1ZXMsIHNpbmNlIG1vc3QgREVTID== IyBpbXBsZW1lbnRhdGlvbnMgYXJlIHByb2dyYW1tZWQgaW4gQyAoZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpLn== I7== IyBUcmlwbGUgREVTIGNsYXNzIGlzIGFsc28gaW1wbGVtZW50ZWQsIHV0aWxpc2luZyB0aGUgREVTIGJhc2UuIFRyaXBsZSBERVN= IyBpcyBlaXRoZXIgREVTLUVERTMgd2l0aCBhIDI0IGJ5dGUga2V5LCBvciBERVMtRURFMiB3aXRoIGEgMTYgYnl0ZSBrZXku I4== IyBTZWUgdGhlIFJFQURNRS50eHQgdGhhdCBzaG91bGQgY29tZSB3aXRoIHRoaXMgcHl0aG9uIG1vZHVsZSBmb3IgdGhl IyBpbXBsZW1lbnRhdGlvbiBtZXRob2RzIHVzZWQu IiIiQSBwdXJlIHB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgREVTIGFuZCBUUklQTEUgREVTIGVuY3J5cHRpb24gYWxnb3JpdGhtc5== cHlEZXMuZGVzKGtleSwgW21vZGVdLCBbSVZdKY== cHlEZXMudHJpcGxlX2RlcyhrZXksIFttb2RlXSwgW0lWXSl= a2V5ICAtPiBTdHJpbmcgY29udGFpbmluZyB0aGUgZW5jcnlwdGlvbiBrZXkuIDggYnl0ZXMgZm9yIERFUywgMTYgb3IgMjQgYnl0ZXN= CWZvciBUcmlwbGUgREVT bW9kZSAtPiBPcHRpb25hbCBhcmd1bWVudCBmb3IgZW5jcnlwdGlvbiB0eXBlLCBjYW4gYmUgZWl0aGVy ICAgICAgICBweURlcy5FQ0IgKEVsZWN0cm9uaWMgQ29kZSBCb29rKSBvciBweURlcy5DQkMgKEN5cGhlciBCbG9jayBDaGFpbmluZyn= SVYgICAtPiBPcHRpb25hbCBhcmd1bWVudCwgbXVzdCBiZSBzdXBwbGllZCBpZiB1c2luZyBDQkMgbW9kZS4gTXVzdCBiZSA4IGJ5dGVz RXhhbXBsZTo= ZnJvbSBweURlcyBpbXBvcnQgKt== ZGF0YSA9ICJQbGVhc2UgZW5jcnlwdCBteSBzdHJpbmci ayA9IGRlcygiREVTQ1JZUFQiLCAiICIsIENCQywgIlwwXDBcMFwwXDBcMFwwXDAiKZ== ZCA9IGsuZW5jcnlwdChkYXRhKV== cHJpbnQgIkVuY3lwdGVkIHN0cmluZzogIiArIGR= cHJpbnQgIkRlY3lwdGVkIHN0cmluZzogIiArIGsuZGVjcnlwdChkKf== U2VlIHRoZSBtb2R1bGUgc291cmNlIChweURlcy5weSkgZm9yIG1vcmUgZXhhbXBsZXMgb2YgdXNlLk== WW91IGNhbiBzbG8gcnVuIHRoZSBweURlcy5weSBmaWxlIHdpdGhvdXQgYW5kIGFyZ3VtZW50cyB0byBzZWUgYSBzaW1wbGUgdGVzdC5= Tm90ZTogVGhpcyBjb2RlIHdhcyBub3Qgd3JpdHRlbiBmb3IgaGlnaC1lbmQgc3lzdGVtcyBuZWVkaW5nIGEgZmFzdN== ICAgICAgaW1wbGVtZW50YXRpb24sIGJ1dCByYXRoZXIgYSBoYW5keSBwb3J0YWJsZSBzb2x1dGlvbiB3aXRoIHNtYWxsIHVzYWdlLg== IiIi IyBNb2RlcyBvZiBjcnlwdGluZyAvIGN5cGhlcmluZ1== RUNCID0JMH== Q0JDID0JMd== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyO= IyAJCQkJICAgIERFUwkJCQkJICAgICM= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyP= Y2xhc3MgZGVzOm== CSIiIkRFUyBlbmNyeXB0aW9uL2RlY3J5dHBpb24gY2xhc3M= CVN1cHBvcnRzIEVDQiAoRWxlY3Ryb25pYyBDb2RlIEJvb2spIGFuZCBDQkMgKEN5cGhlciBCbG9jayBDaGFpbmluZykgbW9kZXMu CXB5RGVzLmRlcyhrZXksW21vZGVdLCBbSVZdKV== CWtleSAgLT4gVGhlIGVuY3J5cHRpb24ga2V5IHN0cmluZywgbXVzdCBiZSBleGFjdGx5IDggYnl0ZXM= CW1vZGUgLT4gT3B0aW9uYWwgYXJndW1lbnQgZm9yIGVuY3J5cHRpb24gdHlwZSwgY2FuIGJlIGVpdGhlciBweURlcy5FQ0L= CQkoRWxlY3Ryb25pYyBDb2RlIEJvb2spLCBweURlcy5DQkMgKEN5cGhlciBCbG9jayBDaGFpbmluZym= CUlWICAgLT4gT3B0aW9uYWwgc3RyaW5nIGFyZ3VtZW50LCBtdXN0IGJlIHN1cHBsaWVkIGlmIHVzaW5nIENCQyBtb2RlLl== CQlNdXN0IGJlIDggYnl0ZXMgaW4gbGVuZ3RoLv== CSIiIm== CSMgUGVybXV0YXRpb24gYW5kIHRyYW5zbGF0aW9uIHRhYmxlcyBmb3IgREVT CV9fcGMxID0gWzU2LCA0OCwgNDAsIDMyLCAyNCwgMTYsICA4LC== CQkgIDAsIDU3LCA0OSwgNDEsIDMzLCAyNSwgMTcs CQkgIDksICAxLCA1OCwgNTAsIDQyLCAzNCwgMjYs CQkgMTgsIDEwLCAgMiwgNTksIDUxLCA0MywgMzUs CQkgNjIsIDU0LCA0NiwgMzgsIDMwLCAyMiwgMTQs CQkgIDYsIDYxLCA1MywgNDUsIDM3LCAyOSwgMjEs CQkgMTMsICA1LCA2MCwgNTIsIDQ0LCAzNiwgMjgs CQkgMjAsIDEyLCAgNCwgMjcsIDE5LCAxMSwgIDM= CV3= CSMgbnVtYmVyIGxlZnQgcm90YXRpb25zIG9mIHBjMT== CV9fbGVmdF9yb3RhdGlvbnMgPSBb CQkxLCAxLCAyLCAyLCAyLCAyLCAyLCAyLCAxLCAyLCAyLCAyLCAyLCAyLCAyLCAx CV1= CSMgcGVybXV0ZWQgY2hvaWNlIGtleSAodGFibGUgMil= CV9fcGMyID0gW/== CQkxMywgMTYsIDEwLCAyMywgIDAsICA0LG== CQkgMiwgMjcsIDE0LCAgNSwgMjAsICA5LE== CQkyMiwgMTgsIDExLCAgMywgMjUsICA3LD== CQkxNSwgIDYsIDI2LCAxOSwgMTIsICAxLB== CQk0MCwgNTEsIDMwLCAzNiwgNDYsIDU0LG== CQkyOSwgMzksIDUwLCA0NCwgMzIsIDQ3LG== CQk0MywgNDgsIDM4LCA1NSwgMzMsIDUyLG== CQk0NSwgNDEsIDQ5LCAzNSwgMjgsIDMx CV1= CSMgaW5pdGlhbCBwZXJtdXRhdGlvbiBJUJ== CV9faXAgPSBbNTcsIDQ5LCA0MSwgMzMsIDI1LCAxNywgOSwgIDEs CQk1OSwgNTEsIDQzLCAzNSwgMjcsIDE5LCAxMSwgMyy= CQk2MSwgNTMsIDQ1LCAzNywgMjksIDIxLCAxMywgNSx= CQk2MywgNTUsIDQ3LCAzOSwgMzEsIDIzLCAxNSwgNyx= CQk1NiwgNDgsIDQwLCAzMiwgMjQsIDE2LCA4LCAgMCx= CQk1OCwgNTAsIDQyLCAzNCwgMjYsIDE4LCAxMCwgMix= CQk2MCwgNTIsIDQ0LCAzNiwgMjgsIDIwLCAxMiwgNCw= CQk2MiwgNTQsIDQ2LCAzOCwgMzAsIDIyLCAxNCwgNo== CV3= CSMgRXhwYW5zaW9uIHRhYmxlIGZvciB0dXJuaW5nIDMyIGJpdCBibG9ja3MgaW50byA0OCBiaXRz CV9fZXhwYW5zaW9uX3RhYmxlID0gWz== CQkzMSwgIDAsICAxLCAgMiwgIDMsICA0LG== CQkgMywgIDQsICA1LCAgNiwgIDcsICA4LO== CQkgNywgIDgsICA5LCAxMCwgMTEsIDEyLF== CQkxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LE== CQkxNSwgMTYsIDE3LCAxOCwgMTksIDIwLH== CQkxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LN== CQkyMywgMjQsIDI1LCAyNiwgMjcsIDI4LA== CQkyNywgMjgsIDI5LCAzMCwgMzEsICAw CV0= CSMgVGhlIChpbilmYW1vdXMgUy1ib3hlcw== CV9fc2JveCA9IFs= CQkjIFMx CQlbMTQsIDQsIDEzLCAxLCAyLCAxNSwgMTEsIDgsIDMsIDEwLCA2LCAxMiwgNSwgOSwgMCwgNyw= CQkgMCwgMTUsIDcsIDQsIDE0LCAyLCAxMywgMSwgMTAsIDYsIDEyLCAxMSwgOSwgNSwgMywgOCw= CQkgNCwgMSwgMTQsIDgsIDEzLCA2LCAyLCAxMSwgMTUsIDEyLCA5LCA3LCAzLCAxMCwgNSwgMCw= CQkgMTUsIDEyLCA4LCAyLCA0LCA5LCAxLCA3LCA1LCAxMSwgMywgMTQsIDEwLCAwLCA2LCAxM10s CQkjIFMy CQlbMTUsIDEsIDgsIDE0LCA2LCAxMSwgMywgNCwgOSwgNywgMiwgMTMsIDEyLCAwLCA1LCAxMCw= CQkgMywgMTMsIDQsIDcsIDE1LCAyLCA4LCAxNCwgMTIsIDAsIDEsIDEwLCA2LCA5LCAxMSwgNSw= CQkgMCwgMTQsIDcsIDExLCAxMCwgNCwgMTMsIDEsIDUsIDgsIDEyLCA2LCA5LCAzLCAyLCAxNSw= CQkgMTMsIDgsIDEwLCAxLCAzLCAxNSwgNCwgMiwgMTEsIDYsIDcsIDEyLCAwLCA1LCAxNCwgOV0s CQkjIFMz CQlbMTAsIDAsIDksIDE0LCA2LCAzLCAxNSwgNSwgMSwgMTMsIDEyLCA3LCAxMSwgNCwgMiwgOCw= CQkgMTMsIDcsIDAsIDksIDMsIDQsIDYsIDEwLCAyLCA4LCA1LCAxNCwgMTIsIDExLCAxNSwgMSw= CQkgMTMsIDYsIDQsIDksIDgsIDE1LCAzLCAwLCAxMSwgMSwgMiwgMTIsIDUsIDEwLCAxNCwgNyw= CQkgMSwgMTAsIDEzLCAwLCA2LCA5LCA4LCA3LCA0LCAxNSwgMTQsIDMsIDExLCA1LCAyLCAxMl0s CQkjIFM0 CQlbNywgMTMsIDE0LCAzLCAwLCA2LCA5LCAxMCwgMSwgMiwgOCwgNSwgMTEsIDEyLCA0LCAxNSw= CQkgMTMsIDgsIDExLCA1LCA2LCAxNSwgMCwgMywgNCwgNywgMiwgMTIsIDEsIDEwLCAxNCwgOSw= CQkgMTAsIDYsIDksIDAsIDEyLCAxMSwgNywgMTMsIDE1LCAxLCAzLCAxNCwgNSwgMiwgOCwgNCw= CQkgMywgMTUsIDAsIDYsIDEwLCAxLCAxMywgOCwgOSwgNCwgNSwgMTEsIDEyLCA3LCAyLCAxNF0s CQkjIFM1 CQlbMiwgMTIsIDQsIDEsIDcsIDEwLCAxMSwgNiwgOCwgNSwgMywgMTUsIDEzLCAwLCAxNCwgOSw= CQkgMTQsIDExLCAyLCAxMiwgNCwgNywgMTMsIDEsIDUsIDAsIDE1LCAxMCwgMywgOSwgOCwgNiw= CQkgNCwgMiwgMSwgMTEsIDEwLCAxMywgNywgOCwgMTUsIDksIDEyLCA1LCA2LCAzLCAwLCAxNCw= CQkgMTEsIDgsIDEyLCA3LCAxLCAxNCwgMiwgMTMsIDYsIDE1LCAwLCA5LCAxMCwgNCwgNSwgM10s CQkjIFM2 CQlbMTIsIDEsIDEwLCAxNSwgOSwgMiwgNiwgOCwgMCwgMTMsIDMsIDQsIDE0LCA3LCA1LCAxMSw= CQkgMTAsIDE1LCA0LCAyLCA3LCAxMiwgOSwgNSwgNiwgMSwgMTMsIDE0LCAwLCAxMSwgMywgOCw= CQkgOSwgMTQsIDE1LCA1LCAyLCA4LCAxMiwgMywgNywgMCwgNCwgMTAsIDEsIDEzLCAxMSwgNiw= CQkgNCwgMywgMiwgMTIsIDksIDUsIDE1LCAxMCwgMTEsIDE0LCAxLCA3LCA2LCAwLCA4LCAxM10s CQkjIFM3 CQlbNCwgMTEsIDIsIDE0LCAxNSwgMCwgOCwgMTMsIDMsIDEyLCA5LCA3LCA1LCAxMCwgNiwgMSw= CQkgMTMsIDAsIDExLCA3LCA0LCA5LCAxLCAxMCwgMTQsIDMsIDUsIDEyLCAyLCAxNSwgOCwgNiw= CQkgMSwgNCwgMTEsIDEzLCAxMiwgMywgNywgMTQsIDEwLCAxNSwgNiwgOCwgMCwgNSwgOSwgMiw= CQkgNiwgMTEsIDEzLCA4LCAxLCA0LCAxMCwgNywgOSwgNSwgMCwgMTUsIDE0LCAyLCAzLCAxMl0s CQkjIFM4 CQlbMTMsIDIsIDgsIDQsIDYsIDE1LCAxMSwgMSwgMTAsIDksIDMsIDE0LCA1LCAwLCAxMiwgNyw= CQkgMSwgMTUsIDEzLCA4LCAxMCwgMywgNywgNCwgMTIsIDUsIDYsIDExLCAwLCAxNCwgOSwgMiw= CQkgNywgMTEsIDQsIDEsIDksIDEyLCAxNCwgMiwgMCwgNiwgMTAsIDEzLCAxNSwgMywgNSwgOCw= CQkgMiwgMSwgMTQsIDcsIDQsIDEwLCA4LCAxMywgMTUsIDEyLCA5LCAwLCAzLCA1LCA2LCAxMV0s CV0= CSMgMzItYml0IHBlcm11dGF0aW9uIGZ1bmN0aW9uIFAgdXNlZCBvbiB0aGUgb3V0cHV0IG9mIHRoZSBTLWJveGVz CV9fcCA9IFs= CQkxNSwgNiwgMTksIDIwLCAyOCwgMTEs CQkyNywgMTYsIDAsIDE0LCAyMiwgMjUs CQk0LCAxNywgMzAsIDksIDEsIDcs CQkyMywxMywgMzEsIDI2LCAyLCA4LA== CQkxOCwgMTIsIDI5LCA1LCAyMSwgMTAs CQkzLCAyNA== CV0= CSMgZmluYWwgcGVybXV0YXRpb24gSVBeLTE= CV9fZnAgPSBb CQkzOSwgIDcsIDQ3LCAxNSwgNTUsIDIzLCA2MywgMzEs CQkzOCwgIDYsIDQ2LCAxNCwgNTQsIDIyLCA2MiwgMzAs CQkzNywgIDUsIDQ1LCAxMywgNTMsIDIxLCA2MSwgMjks CQkzNiwgIDQsIDQ0LCAxMiwgNTIsIDIwLCA2MCwgMjgs CQkzNSwgIDMsIDQzLCAxMSwgNTEsIDE5LCA1OSwgMjcs CQkzNCwgIDIsIDQyLCAxMCwgNTAsIDE4LCA1OCwgMjYs CQkzMywgIDEsIDQxLCAgOSwgNDksIDE3LCA1NywgMjUs CQkzMiwgIDAsIDQwLCAgOCwgNDgsIDE2LCA1NiwgMjQ= CV0= CSMgVHlwZSBvZiBjcnlwdGluZyBiZWluZyBkb25l CUVOQ1JZUFQgPQkweDAw CURFQ1JZUFQgPQkweDAx CSMgSW5pdGlhbGlzYXRpb24= CWRlZiBfX2luaXRfXyhzZWxmLCBrZXksIG1vZGU9RUNCLCBJVj1Ob25lKTo= CQlpZiBsZW4oa2V5KSAhPSA4Og== CQkJcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBERVMga2V5IHNpemUuIEtleSBtdXN0IGJlIGV4YWN0bHkgOCBieXRlcyBsb25nLiIp CQlzZWxmLmJsb2NrX3NpemUgPSA4 CQlzZWxmLmtleV9zaXplID0gOA== CQlzZWxmLl9fcGFkZGluZyA9ICcn CQkjIFNldCB0aGUgcGFzc2VkIGluIHZhcmlhYmxlcw== CQlzZWxmLnNldE1vZGUobW9kZSk= CQlpZiBJVjo= CQkJc2VsZi5zZXRJVihJVik= CQlzZWxmLkwgPSBbXQ== CQlzZWxmLlIgPSBbXQ== CQlzZWxmLktuID0gWyBbMF0gKiA0OCBdICogMTYJIyAxNiA0OC1iaXQga2V5cyAoSzEgLSBLMTYp CQlzZWxmLmZpbmFsID0gW10= CQlzZWxmLnNldEtleShrZXkp CWRlZiBnZXRLZXkoc2VsZik6 CQkiIiJnZXRLZXkoKSAtPiBzdHJpbmciIiI= CQlyZXR1cm4gc2VsZi5fX2tleQ== CWRlZiBzZXRLZXkoc2VsZiwga2V5KTo= CQkiIiJXaWxsIHNldCB0aGUgY3J5cHRpbmcga2V5IGZvciB0aGlzIG9iamVjdC4gTXVzdCBiZSA4IGJ5dGVzLiIiIg== CQlzZWxmLl9fa2V5ID0ga2V5 CQlzZWxmLl9fY3JlYXRlX3N1Yl9rZXlzKCk= CWRlZiBnZXRNb2RlKHNlbGYpOg== CQkiIiJnZXRNb2RlKCkgLT4gcHlEZXMuRUNCIG9yIHB5RGVzLkNCQyIiIg== CQlyZXR1cm4gc2VsZi5fX21vZGU= CWRlZiBzZXRNb2RlKHNlbGYsIG1vZGUpOg== CQkiIiJTZXRzIHRoZSB0eXBlIG9mIGNyeXB0aW5nIG1vZGUsIHB5RGVzLkVDQiBvciBweURlcy5DQkMiIiI= CQlzZWxmLl9fbW9kZSA9IG1vZGU= CWRlZiBnZXRJVihzZWxmKTo= CQkiIiJnZXRJVigpIC0+IHN0cmluZyIiIg== CQlyZXR1cm4gc2VsZi5fX2l2 CWRlZiBzZXRJVihzZWxmLCBJVik6 CQkiIiJXaWxsIHNldCB0aGUgSW5pdGlhbCBWYWx1ZSwgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIENCQyBtb2RlIiIi CQlpZiBub3QgSVYgb3IgbGVuKElWKSAhPSBzZWxmLmJsb2NrX3NpemU6 CQkJcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBJbml0aWFsIFZhbHVlIChJViksIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAiICsgc3RyKHNlbGYuYmxvY2tfc2l6ZSkgKyAiIGJ5dGVzIik= CQlzZWxmLl9faXYgPSBJVg== CWRlZiBnZXRQYWRkaW5nKHNlbGYpOg== CQkiIiJnZXRQYWRkaW5nKCkgLT4gc3RyaW5nIG9mIGxlbmd0aCAxLiBQYWRkaW5nIGNoYXJhY3Rlci4iIiI= CQlyZXR1cm4gc2VsZi5fX3BhZGRpbmc= CWRlZiBfX1N0cmluZ190b19CaXRMaXN0KHNlbGYsIGRhdGEpOg== CQkiIiJUdXJuIHRoZSBzdHJpbmcgZGF0YSwgaW50byBhIGxpc3Qgb2YgYml0cyAoMSwgMCkncyIiIg== CQlsID0gbGVuKGRhdGEpICogOA== CQlyZXN1bHQgPSBbMF0gKiBs CQlwb3MgPSAw CQlmb3IgYyBpbiBkYXRhOg== CQkJaSA9IDc= CQkJY2ggPSBvcmQoYyk= CQkJd2hpbGUgaSA+PSAwOg== CQkJCWlmIGNoICYgKDEgPDwgaSkgIT0gMDo= CQkJCQlyZXN1bHRbcG9zXSA9IDE= CQkJCWVsc2U6 CQkJCQlyZXN1bHRbcG9zXSA9IDA= CQkJCXBvcyArPSAx CQkJCWkgLT0gMQ== CQlyZXR1cm4gcmVzdWx0 CWRlZiBfX0JpdExpc3RfdG9fU3RyaW5nKHNlbGYsIGRhdGEpOg== CQkiIiJUdXJuIHRoZSBsaXN0IG9mIGJpdHMgLT4gZGF0YSwgaW50byBhIHN0cmluZyIiIg== CQlyZXN1bHQgPSAnJw== CQlwb3MgPSAw CQljID0gMA== CQl3aGlsZSBwb3MgPCBsZW4oZGF0YSk6 CQkJYyArPSBkYXRhW3Bvc10gPDwgKDcgLSAocG9zICUgOCkp CQkJaWYgKHBvcyAlIDgpID09IDc6 CQkJCXJlc3VsdCArPSBjaHIoYyk= CQkJCWMgPSAw CQkJcG9zICs9IDE= CQlyZXR1cm4gcmVzdWx0 CWRlZiBfX3Blcm11dGF0ZShzZWxmLCB0YWJsZSwgYmxvY2spOg== CQkiIiJQZXJtdXRhdGUgdGhpcyBibG9jayB3aXRoIHRoZSBzcGVjaWZpZWQgdGFibGUiIiI= CQlyZXR1cm4gbWFwKGxhbWJkYSB4OiBibG9ja1t4XSwgdGFibGUp CQkJIyBUcmFuc2Zvcm0gdGhlIHNlY3JldCBrZXksIHNvIHRoYXQgaXQgaXMgcmVhZHkgZm9yIGRhdGEgcHJvY2Vzc2luZw== CSMgQ3JlYXRlIHRoZSAxNiBzdWJrZXlzLCBLWzFdIC0gS1sxNl0= CWRlZiBfX2NyZWF0ZV9zdWJfa2V5cyhzZWxmKTo= CQkiIiJDcmVhdGUgdGhlIDE2IHN1YmtleXMgS1sxXSB0byBLWzE2XSBmcm9tIHRoZSBnaXZlbiBrZXkiIiI= CQlrZXkgPSBzZWxmLl9fcGVybXV0YXRlKGRlcy5fX3BjMSwgc2VsZi5fX1N0cmluZ190b19CaXRMaXN0KHNlbGYuZ2V0S2V5KCkpKQ== CQlpID0gMA== CQkjIFNwbGl0IGludG8gTGVmdCBhbmQgUmlnaHQgc2VjdGlvbnM= CQlzZWxmLkwgPSBrZXlbOjI4XQ== CQlzZWxmLlIgPSBrZXlbMjg6XQ== CQl3aGlsZSBpIDwgMTY6 CQkJaiA9IDA= CQkJIyBQZXJmb3JtIGNpcmN1bGFyIGxlZnQgc2hpZnRz CQkJd2hpbGUgaiA8IGRlcy5fX2xlZnRfcm90YXRpb25zW2ldOg== CQkJCXNlbGYuTC5hcHBlbmQoc2VsZi5MWzBdKQ== CQkJCWRlbCBzZWxmLkxbMF0= CQkJCXNlbGYuUi5hcHBlbmQoc2VsZi5SWzBdKQ== CQkJCWRlbCBzZWxmLlJbMF0= CQkJCWogKz0gMQ== CQkJIyBDcmVhdGUgb25lIG9mIHRoZSAxNiBzdWJrZXlzIHRocm91Z2ggcGMyIHBlcm11dGF0aW9u CQkJc2VsZi5LbltpXSA9IHNlbGYuX19wZXJtdXRhdGUoZGVzLl9fcGMyLCBzZWxmLkwgKyBzZWxmLlIp CQkJaSArPSAx CSMgTWFpbiBwYXJ0IG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwgdGhlIG51bWJlciBjcnVuY2hlciA6KQ== CWRlZiBfX2Rlc19jcnlwdChzZWxmLCBibG9jaywgY3J5cHRfdHlwZSk6 CQkiIiJDcnlwdCB0aGUgYmxvY2sgb2YgZGF0YSB0aHJvdWdoIERFUyBiaXQtbWFuaXB1bGF0aW9uIiIi CQlibG9jayA9IHNlbGYuX19wZXJtdXRhdGUoZGVzLl9faXAsIGJsb2NrKQ== CQlzZWxmLkwgPSBibG9ja1s6MzJd CQlzZWxmLlIgPSBibG9ja1szMjpd CQkjIEVuY3J5cHRpb24gc3RhcnRzIGZyb20gS25bMV0gdGhyb3VnaCB0byBLblsxNl0= CQlpZiBjcnlwdF90eXBlID09IGRlcy5FTkNSWVBUOg== CQkJaXRlcmF0aW9uID0gMA== CQkJaXRlcmF0aW9uX2FkanVzdG1lbnQgPSAx CQkjIERlY3J5cHRpb24gc3RhcnRzIGZyb20gS25bMTZdIGRvd24gdG8gS25bMV0= CQllbHNlOg== CQkJaXRlcmF0aW9uID0gMTU= CQkJaXRlcmF0aW9uX2FkanVzdG1lbnQgPSAtMQ== CQlpID0gMA== CQl3aGlsZSBpIDwgMTY6 CQkJIyBNYWtlIGEgY29weSBvZiBSW2ktMV0sIHRoaXMgd2lsbCBsYXRlciBiZWNvbWUgTFtpXQ== CQkJdGVtcFIgPSBzZWxmLlJbOl0= CQkJIyBQZXJtdXRhdGUgUltpIC0gMV0gdG8gc3RhcnQgY3JlYXRpbmcgUltpXQ== CQkJc2VsZi5SID0gc2VsZi5fX3Blcm11dGF0ZShkZXMuX19leHBhbnNpb25fdGFibGUsIHNlbGYuUik= CQkJIyBFeGNsdXNpdmUgb3IgUltpIC0gMV0gd2l0aCBLW2ldLCBjcmVhdGUgQlsxXSB0byBCWzhdIHdoaWxzdCBoZXJl CQkJc2VsZi5SID0gbWFwKGxhbWJkYSB4LCB5OiB4IF4geSwgc2VsZi5SLCBzZWxmLktuW2l0ZXJhdGlvbl0p CQkJQiA9IFtzZWxmLlJbOjZdLCBzZWxmLlJbNjoxMl0sIHNlbGYuUlsxMjoxOF0sIHNlbGYuUlsxODoyNF0sIHNlbGYuUlsyNDozMF0sIHNlbGYuUlszMDozNl0sIHNlbGYuUlszNjo0Ml0sIHNlbGYuUls0MjpdXQ== CQkJIyBPcHRpbWl6YXRpb246IFJlcGxhY2VkIGJlbG93IGNvbW1lbnRlZCBjb2RlIHdpdGggYWJvdmU= CQkJI2ogPSAw CQkJI0IgPSBbXQ== CQkJI3doaWxlIGogPCBsZW4oc2VsZi5SKTo= CQkJIwlzZWxmLlJbal0gPSBzZWxmLlJbal0gXiBzZWxmLktuW2l0ZXJhdGlvbl1bal0= CQkJIwlqICs9IDE= CQkJIwlpZiBqICUgNiA9PSAwOg== CQkJIwkJQi5hcHBlbmQoc2VsZi5SW2otNjpqXSk= CQkJIyBQZXJtdXRhdGUgQlsxXSB0byBCWzhdIHVzaW5nIHRoZSBTLUJveGVz CQkJaiA9IDA= CQkJQm4gPSBbMF0gKiAzMg== CQkJcG9zID0gMA== CQkJd2hpbGUgaiA8IDg6 CQkJCSMgV29yayBvdXQgdGhlIG9mZnNldHM= CQkJCW0gPSAoQltqXVswXSA8PCAxKSArIEJbal1bNV0= CQkJCW4gPSAoQltqXVsxXSA8PCAzKSArIChCW2pdWzJdIDw8IDIpICsgKEJbal1bM10gPDwgMSkgKyBCW2pdWzRd CQkJCSMgRmluZCB0aGUgcGVybXV0YXRpb24gdmFsdWU= CQkJCXYgPSBkZXMuX19zYm94W2pdWyhtIDw8IDQpICsgbl0= CQkJCSMgVHVybiB2YWx1ZSBpbnRvIGJpdHMsIGFkZCBpdCB0byByZXN1bHQ6IEJu CQkJCUJuW3Bvc10gPSAodiAmIDgpID4+IDM= CQkJCUJuW3BvcyArIDFdID0gKHYgJiA0KSA+PiAy CQkJCUJuW3BvcyArIDJdID0gKHYgJiAyKSA+PiAx CQkJCUJuW3BvcyArIDNdID0gdiAmIDE= CQkJCXBvcyArPSA0 CQkJCWogKz0gMQ== CQkJIyBQZXJtdXRhdGUgdGhlIGNvbmNhdGluYXRpb24gb2YgQlsxXSB0byBCWzhdIChCbik= CQkJc2VsZi5SID0gc2VsZi5fX3Blcm11dGF0ZShkZXMuX19wLCBCbik= CQkJIyBYb3Igd2l0aCBMW2kgLSAxXQ== CQkJc2VsZi5SID0gbWFwKGxhbWJkYSB4LCB5OiB4IF4geSwgc2VsZi5SLCBzZWxmLkwp CQkJIyBPcHRpbWl6YXRpb246IFRoaXMgbm93IHJlcGxhY2VzIHRoZSBiZWxvdyBjb21tZW50ZWQgY29kZQ== CQkJI2ogPSAw CQkJI3doaWxlIGogPCBsZW4oc2VsZi5SKTo= CQkJIwlzZWxmLlJbal0gPSBzZWxmLlJbal0gXiBzZWxmLkxbal0= CQkJIwlqICs9IDE= CQkJIyBMW2ldIGJlY29tZXMgUltpIC0gMV0= CQkJc2VsZi5MID0gdGVtcFI= CQkJaSArPSAx CQkJaXRlcmF0aW9uICs9IGl0ZXJhdGlvbl9hZGp1c3RtZW50 CQkJIyBGaW5hbCBwZXJtdXRhdGlvbiBvZiBSWzE2XUxbMTZd CQlzZWxmLmZpbmFsID0gc2VsZi5fX3Blcm11dGF0ZShkZXMuX19mcCwgc2VsZi5SICsgc2VsZi5MKQ== CQlyZXR1cm4gc2VsZi5maW5hbA== CSMgRGF0YSB0byBiZSBlbmNyeXB0ZWQvZGVjcnlwdGVk CWRlZiBjcnlwdChzZWxmLCBkYXRhLCBjcnlwdF90eXBlKTo= CQkiIiJDcnlwdCB0aGUgZGF0YSBpbiBibG9ja3MsIHJ1bm5pbmcgaXQgdGhyb3VnaCBkZXNfY3J5cHQoKSIiIg== CQkjIEVycm9yIGNoZWNrIHRoZSBkYXRh CQlpZiBub3QgZGF0YTo= CQkJcmV0dXJuICcn CQlpZiBsZW4oZGF0YSkgJSBzZWxmLmJsb2NrX3NpemUgIT0gMDo= CQkJaWYgY3J5cHRfdHlwZSA9PSBkZXMuREVDUllQVDogIyBEZWNyeXB0aW9uIG11c3Qgd29yayBvbiA4IGJ5dGUgYmxvY2tz CQkJCXJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgZGF0YSBsZW5ndGgsIGRhdGEgbXVzdCBiZSBhIG11bHRpcGxlIG9mICIgKyBzdHIoc2VsZi5ibG9ja19zaXplKSArICIgYnl0ZXNcbi4iKQ== CQkJaWYgbm90IHNlbGYuZ2V0UGFkZGluZygpOg== CQkJCXJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgZGF0YSBsZW5ndGgsIGRhdGEgbXVzdCBiZSBhIG11bHRpcGxlIG9mICIgKyBzdHIoc2VsZi5ibG9ja19zaXplKSArICIgYnl0ZXNcbi4gVHJ5IHNldHRpbmcgdGhlIG9wdGlvbmFsIHBhZGRpbmcgY2hhcmFjdGVyIik= CQkJZWxzZTo= CQkJCWRhdGEgKz0gKHNlbGYuYmxvY2tfc2l6ZSAtIChsZW4oZGF0YSkgJSBzZWxmLmJsb2NrX3NpemUpKSAqIHNlbGYuZ2V0UGFkZGluZygp CQkJIyBwcmludCAiTGVuIG9mIGRhdGE6ICVmIiAlIChsZW4oZGF0YSkgLyBzZWxmLmJsb2NrX3NpemUp CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBDQkM6 CQkJaWYgc2VsZi5nZXRJVigpOg== CQkJCWl2ID0gc2VsZi5fX1N0cmluZ190b19CaXRMaXN0KHNlbGYuZ2V0SVYoKSk= CQkJZWxzZTo= CQkJCXJhaXNlIFZhbHVlRXJyb3IoIkZvciBDQkMgbW9kZSwgeW91IG11c3Qgc3VwcGx5IHRoZSBJbml0aWFsIFZhbHVlIChJVikgZm9yIGNpcGhlcmluZyIp CQkjIFNwbGl0IHRoZSBkYXRhIGludG8gYmxvY2tzLCBjcnlwdGluZyBlYWNoIG9uZSBzZXBlcmF0ZWx5 CQlpID0gMA== CQlkaWN0ID0ge30= CQlyZXN1bHQgPSBbXQ== CQkjY2FjaGVkID0gMA== CQkjbGluZXMgPSAw CQl3aGlsZSBpIDwgbGVuKGRhdGEpOg== CQkJIyBUZXN0IGNvZGUgZm9yIGNhY2hpbmcgZW5jcnlwdGlvbiByZXN1bHRz CQkJI2xpbmVzICs9IDE= CQkJI2lmIGRpY3QuaGFzX2tleShkYXRhW2k6aSs4XSk6 CQkJCSNwcmludCAiQ2FjaGVkIHJlc3VsdCBmb3I6ICVzIiAlIGRhdGFbaTppKzhd CQkJIwljYWNoZWQgKz0gMQ== CQkJIwlyZXN1bHQuYXBwZW5kKGRpY3RbZGF0YVtpOmkrOF1dKQ== CQkJIwlpICs9IDg= CQkJIwljb250aW51ZQ== CQkJCQkJYmxvY2sgPSBzZWxmLl9fU3RyaW5nX3RvX0JpdExpc3QoZGF0YVtpOmkrOF0p CQkJIyBYb3Igd2l0aCBJViBpZiB1c2luZyBDQkMgbW9kZQ== CQkJaWYgc2VsZi5nZXRNb2RlKCkgPT0gQ0JDOg== CQkJCWlmIGNyeXB0X3R5cGUgPT0gZGVzLkVOQ1JZUFQ6 CQkJCQlibG9jayA9IG1hcChsYW1iZGEgeCwgeTogeCBeIHksIGJsb2NrLCBpdik= CQkJCQkjaiA9IDA= CQkJCQkjd2hpbGUgaiA8IGxlbihibG9jayk6 CQkJCQkjCWJsb2NrW2pdID0gYmxvY2tbal0gXiBpdltqXQ== CQkJCQkjCWogKz0gMQ== CQkJCXByb2Nlc3NlZF9ibG9jayA9IHNlbGYuX19kZXNfY3J5cHQoYmxvY2ssIGNyeXB0X3R5cGUp CQkJCWlmIGNyeXB0X3R5cGUgPT0gZGVzLkRFQ1JZUFQ6 CQkJCQlwcm9jZXNzZWRfYmxvY2sgPSBtYXAobGFtYmRhIHgsIHk6IHggXiB5LCBwcm9jZXNzZWRfYmxvY2ssIGl2KQ== CQkJCQkjaiA9IDA= CQkJCQkjd2hpbGUgaiA8IGxlbihwcm9jZXNzZWRfYmxvY2spOg== CQkJCQkjCXByb2Nlc3NlZF9ibG9ja1tqXSA9IHByb2Nlc3NlZF9ibG9ja1tqXSBeIGl2W2pd CQkJCQkjCWogKz0gMQ== CQkJCQlpdiA9IGJsb2Nr CQkJCWVsc2U6 CQkJCQlpdiA9IHByb2Nlc3NlZF9ibG9jaw== CQkJZWxzZTo= CQkJCXByb2Nlc3NlZF9ibG9jayA9IHNlbGYuX19kZXNfY3J5cHQoYmxvY2ssIGNyeXB0X3R5cGUp CQkJIyBBZGQgdGhlIHJlc3VsdGluZyBjcnlwdGVkIGJsb2NrIHRvIG91ciBsaXN0 CQkJI2QgPSBzZWxmLl9fQml0TGlzdF90b19TdHJpbmcocHJvY2Vzc2VkX2Jsb2NrKQ== CQkJI3Jlc3VsdC5hcHBlbmQoZCk= CQkJcmVzdWx0LmFwcGVuZChzZWxmLl9fQml0TGlzdF90b19TdHJpbmcocHJvY2Vzc2VkX2Jsb2NrKSk= CQkJI2RpY3RbZGF0YVtpOmkrOF1dID0gZA== CQkJaSArPSA4 CQkjIHByaW50ICJMaW5lczogJWQsIGNhY2hlZDogJWQiICUgKGxpbmVzLCBjYWNoZWQp CQkjIFJlbW92ZSB0aGUgcGFkZGluZyBmcm9tIHRoZSBsYXN0IGJsb2Nr CQlpZiBjcnlwdF90eXBlID09IGRlcy5ERUNSWVBUIGFuZCBzZWxmLmdldFBhZGRpbmcoKTo= CQkJI3ByaW50ICJSZW1vdmluZyBkZWNyeXB0IHBhZCI= CQkJcyA9IHJlc3VsdFstMV0= CQkJd2hpbGUgc1stMV0gPT0gc2VsZi5nZXRQYWRkaW5nKCk6 CQkJCXMgPSBzWzotMV0= CQkJcmVzdWx0Wy0xXSA9IHM= CQkjIFJldHVybiB0aGUgZnVsbCBjcnlwdGVkIHN0cmluZw== CQlyZXR1cm4gJycuam9pbihyZXN1bHQp CWRlZiBlbmNyeXB0KHNlbGYsIGRhdGEsIHBhZD0nJyk6 CQkiIiJlbmNyeXB0KGRhdGEsIFtwYWRdKSAtPiBzdHJpbmc= CQlkYXRhIDogU3RyaW5nIHRvIGJlIGVuY3J5cHRlZA== CQlwYWQgIDogT3B0aW9uYWwgYXJndW1lbnQgZm9yIGVuY3J5cHRpb24gcGFkZGluZy4gTXVzdCBvbmx5IGJlIG9uZSBieXRl CQlUaGUgZGF0YSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOCBieXRlcyBhbmQgd2lsbCBiZSBlbmNyeXB0ZWQ= CQl3aXRoIHRoZSBhbHJlYWR5IHNwZWNpZmllZCBrZXkuIERhdGEgZG9lcyBub3QgaGF2ZSB0byBiZSBh CQltdWx0aXBsZSBvZiA4IGJ5dGVzIGlmIHRoZSBwYWRkaW5nIGNoYXJhY3RlciBpcyBzdXBwbGllZCwgdGhl CQlkYXRhIHdpbGwgdGhlbiBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiA4IGJ5dGVzIHdpdGggdGhpcw== CQlwYWQgY2hhcmFjdGVyLg== CQkiIiI= CQlzZWxmLl9fcGFkZGluZyA9IHBhZA== CQlyZXR1cm4gc2VsZi5jcnlwdChkYXRhLCBkZXMuRU5DUllQVCk= CWRlZiBkZWNyeXB0KHNlbGYsIGRhdGEsIHBhZD0nJyk6 CQkiIiJkZWNyeXB0KGRhdGEsIFtwYWRdKSAtPiBzdHJpbmc= CQlkYXRhIDogU3RyaW5nIHRvIGJlIGVuY3J5cHRlZA== CQlwYWQgIDogT3B0aW9uYWwgYXJndW1lbnQgZm9yIGRlY3J5cHRpb24gcGFkZGluZy4gTXVzdCBvbmx5IGJlIG9uZSBieXRl CQlUaGUgZGF0YSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOCBieXRlcyBhbmQgd2lsbCBiZSBkZWNyeXB0ZWQ= CQl3aXRoIHRoZSBhbHJlYWR5IHNwZWNpZmllZCBrZXkuIElmIHRoZSBvcHRpb25hbCBwYWRkaW5nIGNoYXJhY3Rlcg== CQlpcyBzdXBwbGllZCwgdGhlbiB0aGUgdW4tZW5jeXB0ZWQgZGF0YSB3aWxsIGhhdmUgdGhlIHBhZGRpbmcgY2hhcmFjdGVycw== CQlyZW1vdmVkIGZyb20gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiBUaGlzIHBhZCByZW1vdmFsIG9ubHkgb2NjdXJzIG9uIHRoZQ== CQlsYXN0IDggYnl0ZXMgb2YgdGhlIGRhdGEgKGxhc3QgZGF0YSBibG9jayku CQkiIiI= CQlzZWxmLl9fcGFkZGluZyA9IHBhZA== CQlyZXR1cm4gc2VsZi5jcnlwdChkYXRhLCBkZXMuREVDUllQVCk= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IyAJCQkJVHJpcGxlIERFUwkJCQkgICAgIw== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= Y2xhc3MgdHJpcGxlX2Rlczo= CSIiIlRyaXBsZSBERVMgZW5jcnlwdGlvbi9kZWNyeXRwaW9uIGNsYXNz CVRoaXMgYWxnb3JpdGhtIHVzZXMgdGhlIERFUy1FREUzICh3aGVuIGEgMjQgYnl0ZSBrZXkgaXMgc3VwcGxpZWQpIG9y CXRoZSBERVMtRURFMiAod2hlbiBhIDE2IGJ5dGUga2V5IGlzIHN1cHBsaWVkKSBlbmNyeXB0aW9uIG1ldGhvZHMu CVN1cHBvcnRzIEVDQiAoRWxlY3Ryb25pYyBDb2RlIEJvb2spIGFuZCBDQkMgKEN5cGhlciBCbG9jayBDaGFpbmluZykgbW9kZXMu CXB5RGVzLmRlcyhrZXksIFttb2RlXSwgW0lWXSk= CWtleSAgLT4gVGhlIGVuY3J5cHRpb24ga2V5IHN0cmluZywgbXVzdCBiZSBlaXRoZXIgMTYgb3IgMjQgYnl0ZXMgbG9uZw== CW1vZGUgLT4gT3B0aW9uYWwgYXJndW1lbnQgZm9yIGVuY3J5cHRpb24gdHlwZSwgY2FuIGJlIGVpdGhlciBweURlcy5FQ0I= CQkoRWxlY3Ryb25pYyBDb2RlIEJvb2spLCBweURlcy5DQkMgKEN5cGhlciBCbG9jayBDaGFpbmluZyk= CUlWICAgLT4gT3B0aW9uYWwgc3RyaW5nIGFyZ3VtZW50LCBtdXN0IGJlIHN1cHBsaWVkIGlmIHVzaW5nIENCQyBtb2RlLg== CQlNdXN0IGJlIDggYnl0ZXMgaW4gbGVuZ3RoLg== CSIiIg== CWRlZiBfX2luaXRfXyhzZWxmLCBrZXksIG1vZGU9RUNCLCBJVj1Ob25lKTo= CQlzZWxmLmJsb2NrX3NpemUgPSA4 CQlzZWxmLnNldE1vZGUobW9kZSk= CQlzZWxmLl9fcGFkZGluZyA9ICcn CQlzZWxmLl9faXYgPSBJVg== CQlzZWxmLnNldEtleShrZXkp CWRlZiBnZXRLZXkoc2VsZik6 CQkiIiJnZXRLZXkoKSAtPiBzdHJpbmciIiI= CQlyZXR1cm4gc2VsZi5fX2tleQ== CWRlZiBzZXRLZXkoc2VsZiwga2V5KTo= CQkiIiJXaWxsIHNldCB0aGUgY3J5cHRpbmcga2V5IGZvciB0aGlzIG9iamVjdC4gRWl0aGVyIDE2IG9yIDI0IGJ5dGVzIGxvbmcuIiIi CQlzZWxmLmtleV9zaXplID0gMjQgICMgVXNlIERFUy1FREUzIG1vZGU= CQlpZiBsZW4oa2V5KSAhPSBzZWxmLmtleV9zaXplOg== CQkJaWYgbGVuKGtleSkgPT0gMTY6ICMgVXNlIERFUy1FREUyIG1vZGU= CQkJCXNlbGYua2V5X3NpemUgPSAxNg== CQkJZWxzZTo= CQkJCXJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgdHJpcGxlIERFUyBrZXkgc2l6ZS4gS2V5IG11c3QgYmUgZWl0aGVyIDE2IG9yIDI0IGJ5dGVzIGxvbmciKQ== CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBDQkMgYW5kIChub3Qgc2VsZi5nZXRJVigpIG9yIGxlbihzZWxmLmdldElWKCkpICE9IHNlbGYuYmxvY2tfc2l6ZSk6 CQkJcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBJViwgbXVzdCBiZSA4IGJ5dGVzIGluIGxlbmd0aCIpICMjIFRPRE86IENoZWNrIHRoaXM= CQkjIG1vZGVzIGdldCBoYW5kbGVkIGxhdGVyLCBzaW5jZSBDQkMgZ29lcyBvbiB0b3Agb2YgdGhlIHRyaXBsZS1kZXM= CQlzZWxmLl9fa2V5MSA9IGRlcyhrZXlbOjhdKQ== CQlzZWxmLl9fa2V5MiA9IGRlcyhrZXlbODoxNl0p CQlpZiBzZWxmLmtleV9zaXplID09IDE2Og== CQkJc2VsZi5fX2tleTMgPSBzZWxmLl9fa2V5MQ== CQllbHNlOg== CQkJc2VsZi5fX2tleTMgPSBkZXMoa2V5WzE2Ol0p CQlzZWxmLl9fa2V5ID0ga2V5 CWRlZiBnZXRNb2RlKHNlbGYpOg== CQkiIiJnZXRNb2RlKCkgLT4gcHlEZXMuRUNCIG9yIHB5RGVzLkNCQyIiIg== CQlyZXR1cm4gc2VsZi5fX21vZGU= CWRlZiBzZXRNb2RlKHNlbGYsIG1vZGUpOg== CQkiIiJTZXRzIHRoZSB0eXBlIG9mIGNyeXB0aW5nIG1vZGUsIHB5RGVzLkVDQiBvciBweURlcy5DQkMiIiI= CQlzZWxmLl9fbW9kZSA9IG1vZGU= CWRlZiBnZXRJVihzZWxmKTo= CQkiIiJnZXRJVigpIC0+IHN0cmluZyIiIg== CQlyZXR1cm4gc2VsZi5fX2l2 CWRlZiBzZXRJVihzZWxmLCBJVik6 CQkiIiJXaWxsIHNldCB0aGUgSW5pdGlhbCBWYWx1ZSwgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIENCQyBtb2RlIiIi CQlzZWxmLl9faXYgPSBJVg== CWRlZiB4b3JzdHIoIHNlbGYsIHgsIHkgKTo= CQkiIiJSZXR1cm5zIHRoZSBiaXR3aXNlIHhvciBvZiB0aGUgYnl0ZXMgaW4gdHdvIHN0cmluZ3MiIiI= CQlpZiBsZW4oeCkgIT0gbGVuKHkpOg== CQkJcmFpc2UgInN0cmluZyBsZW5ndGhzIGRpZmZlciAlZCAlZCIgJSAobGVuKHgpLCBsZW4oeSkp CQlyZXQgPSAnJw== CQlmb3IgaSBpbiByYW5nZShsZW4oeCkpOg== CQkJcmV0ICs9IGNocihvcmQoeFtpXSkgXiBvcmQoeVtpXSkp CQlyZXR1cm4gcmV0 CWRlZiBlbmNyeXB0KHNlbGYsIGRhdGEsIHBhZD0nJyk6 CQkiIiJlbmNyeXB0KGRhdGEsIFtwYWRdKSAtPiBzdHJpbmc= CQlkYXRhIDogU3RyaW5nIHRvIGJlIGVuY3J5cHRlZA== CQlwYWQgIDogT3B0aW9uYWwgYXJndW1lbnQgZm9yIGVuY3J5cHRpb24gcGFkZGluZy4gTXVzdCBvbmx5IGJlIG9uZSBieXRl CQlUaGUgZGF0YSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOCBieXRlcyBhbmQgd2lsbCBiZSBlbmNyeXB0ZWQ= CQl3aXRoIHRoZSBhbHJlYWR5IHNwZWNpZmllZCBrZXkuIERhdGEgZG9lcyBub3QgaGF2ZSB0byBiZSBh CQltdWx0aXBsZSBvZiA4IGJ5dGVzIGlmIHRoZSBwYWRkaW5nIGNoYXJhY3RlciBpcyBzdXBwbGllZCwgdGhl CQlkYXRhIHdpbGwgdGhlbiBiZSBwYWRkZWQgdG8gYSBtdWx0aXBsZSBvZiA4IGJ5dGVzIHdpdGggdGhpcw== CQlwYWQgY2hhcmFjdGVyLg== CQkiIiI= CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBFQ0I6 CQkJIyBzaW1wbGU= CQkJZGF0YSA9IHNlbGYuX19rZXkxLmVuY3J5cHQoZGF0YSwgcGFkKQ== CQkJZGF0YSA9IHNlbGYuX19rZXkyLmRlY3J5cHQoZGF0YSk= CQkJcmV0dXJuIHNlbGYuX19rZXkzLmVuY3J5cHQoZGF0YSk= CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBDQkM6 CQkJcmFpc2UgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiB0ZXN0ZWQgeWV0Ig== CQkJaWYgbGVuKGRhdGEpICUgc2VsZi5ibG9ja19zaXplICE9IDA6 CQkJCXJhaXNlICJDQkMgbW9kZSBuZWVkcyBkYXRhbGVuIHRvIGJlIGEgbXVsdGlwbGUgb2YgYmxvY2tzaXplIChpZ25vcmluZyBwYWRkaW5nIGZvciBub3cpIg== CQkJIyBzaW1wbGU= CQkJbGFzdGJsb2NrID0gc2VsZi5nZXRJVigp CQkJcmV0ZGF0YSA9ICcn CQkJZm9yIGkgaW4gcmFuZ2UoIDAsIGxlbihkYXRhKSwgc2VsZi5ibG9ja19zaXplICk6 CQkJCXRoaXNibG9jayA9IGRhdGFbIGk6aStzZWxmLmJsb2NrX3NpemUgXQ== CQkJCSMgdGhlIFhPUiBmb3IgQ0JD CQkJCXRoaXNibG9jayA9IHNlbGYueG9yc3RyKCBsYXN0YmxvY2ssIHRoaXNibG9jayAp CQkJCXRoaXNibG9jayA9IHNlbGYuX19rZXkxLmVuY3J5cHQodGhpc2Jsb2NrKQ== CQkJCXRoaXNibG9jayA9IHNlbGYuX19rZXkyLmRlY3J5cHQodGhpc2Jsb2NrKQ== CQkJCWxhc3RibG9jayA9IHNlbGYuX19rZXkzLmVuY3J5cHQodGhpc2Jsb2NrKQ== CQkJCXJldGRhdGEgKz0gbGFzdGJsb2Nr CQkJcmV0dXJuIHJldGRhdGE= CQlyYWlzZSAiTm90IHJlYWNoZWQi CWRlZiBkZWNyeXB0KHNlbGYsIGRhdGEsIHBhZD0nJyk6 CQkiIiJkZWNyeXB0KGRhdGEsIFtwYWRdKSAtPiBzdHJpbmc= CQlkYXRhIDogU3RyaW5nIHRvIGJlIGVuY3J5cHRlZA== CQlwYWQgIDogT3B0aW9uYWwgYXJndW1lbnQgZm9yIGRlY3J5cHRpb24gcGFkZGluZy4gTXVzdCBvbmx5IGJlIG9uZSBieXRl CQlUaGUgZGF0YSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOCBieXRlcyBhbmQgd2lsbCBiZSBkZWNyeXB0ZWQ= CQl3aXRoIHRoZSBhbHJlYWR5IHNwZWNpZmllZCBrZXkuIElmIHRoZSBvcHRpb25hbCBwYWRkaW5nIGNoYXJhY3Rlcg== CQlpcyBzdXBwbGllZCwgdGhlbiB0aGUgdW4tZW5jeXB0ZWQgZGF0YSB3aWxsIGhhdmUgdGhlIHBhZGRpbmcgY2hhcmFjdGVycw== CQlyZW1vdmVkIGZyb20gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiBUaGlzIHBhZCByZW1vdmFsIG9ubHkgb2NjdXJzIG9uIHRoZQ== CQlsYXN0IDggYnl0ZXMgb2YgdGhlIGRhdGEgKGxhc3QgZGF0YSBibG9jayku CQkiIiI= CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBFQ0I6 CQkJIyBzaW1wbGU= CQkJZGF0YSA9IHNlbGYuX19rZXkzLmRlY3J5cHQoZGF0YSk= CQkJZGF0YSA9IHNlbGYuX19rZXkyLmVuY3J5cHQoZGF0YSk= CQkJcmV0dXJuIHNlbGYuX19rZXkxLmRlY3J5cHQoZGF0YSwgcGFkKQ== CQlpZiBzZWxmLmdldE1vZGUoKSA9PSBDQkM6 CQkJaWYgbGVuKGRhdGEpICUgc2VsZi5ibG9ja19zaXplICE9IDA6 CQkJCXJhaXNlICJDYW4gb25seSBkZWNyeXB0IG11bHRpcGxlcyBvZiBibG9ja3NpemUi CQkJbGFzdGJsb2NrID0gc2VsZi5nZXRJVigp CQkJcmV0ZGF0YSA9ICcn CQkJZm9yIGkgaW4gcmFuZ2UoIDAsIGxlbihkYXRhKSwgc2VsZi5ibG9ja19zaXplICk6 CQkJCSMgY2FuIEkgYXJyYW5nZSB0aGlzIGJldHRlcj8gcHJvYmFibHkuLi4= CQkJCWNpcGhlcmNodW5rID0gZGF0YVsgaTppK3NlbGYuYmxvY2tfc2l6ZSBd CQkJCXRoaXNibG9jayA9IHNlbGYuX19rZXkzLmRlY3J5cHQoY2lwaGVyY2h1bmsp CQkJCXRoaXNibG9jayA9IHNlbGYuX19rZXkyLmVuY3J5cHQodGhpc2Jsb2NrKQ== CQkJCXRoaXNibG9jayA9IHNlbGYuX19rZXkxLmRlY3J5cHQodGhpc2Jsb2NrKQ== CQkJCXJldGRhdGEgKz0gc2VsZi54b3JzdHIoIGxhc3RibG9jaywgdGhpc2Jsb2NrICk= CQkJCWxhc3RibG9jayA9IGNpcGhlcmNodW5r CQkJcmV0dXJuIHJldGRhdGE= CQlyYWlzZSAiTm90IHJlYWNoZWQi IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IyAJCQkJRXhhbXBsZXMJCQkJICAgICM= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= ZGVmIGV4YW1wbGVfdHJpcGxlX2RlcygpOg== CWZyb20gdGltZSBpbXBvcnQgdGltZQ== CSMgVXRpbGl0eSBtb2R1bGU= CWZyb20gYmluYXNjaWkgaW1wb3J0IHVuaGV4bGlmeSBhcyB1bmhleA== CSMgZXhhbXBsZSBzaG93cyB0cmlwbGUtZGVzIGVuY3J5cHRpb24gdXNpbmcgdGhlIGRlcyBjbGFzcw== CXByaW50ICJFeGFtcGxlIG9mIHRyaXBsZSBERVMgZW5jcnlwdGlvbiBpbiBkZWZhdWx0IEVDQiBtb2RlIChERVMtRURFMylcbiI= CXByaW50ICJUcmlwbGUgZGVzIHVzaW5nIHRoZSBkZXMgY2xhc3MgKDMgdGltZXMpIg== CXQgPSB0aW1lKCk= CWsxID0gZGVzKHVuaGV4KCIxMzM0NTc3OTlCQkNERkYxIikp CWsyID0gZGVzKHVuaGV4KCIxMTIyMzM0NDU1NjY3Nzg4Iikp CWszID0gZGVzKHVuaGV4KCI3NzY2MTEwMEREMjIzMzExIikp CWQgPSAiVHJpcGxlIERFUyB0ZXN0IHN0cmluZywgdG8gYmUgZW5jcnlwdGVkIGFuZCBkZWNyeXB0ZWQuLi4i CXByaW50ICJLZXkxOiAgICAgICVzIiAlIGsxLmdldEtleSgp CXByaW50ICJLZXkyOiAgICAgICVzIiAlIGsyLmdldEtleSgp CXByaW50ICJLZXkzOiAgICAgICVzIiAlIGszLmdldEtleSgp CXByaW50ICJEYXRhOiAgICAgICVzIiAlIGQ= CWUxID0gazEuZW5jcnlwdChkKQ== CWUyID0gazIuZGVjcnlwdChlMSk= CWUzID0gazMuZW5jcnlwdChlMik= CXByaW50ICJFbmNyeXB0ZWQ6ICIgKyBlMw== CWQzID0gazMuZGVjcnlwdChlMyk= CWQyID0gazIuZW5jcnlwdChkMyk= CWQxID0gazEuZGVjcnlwdChkMik= CXByaW50ICJEZWNyeXB0ZWQ6ICIgKyBkMQ== CXByaW50ICJERVMgdGltZSB0YWtlbjogJWYgKCVkIGNyeXB0IG9wZXJhdGlvbnMpIiAlICh0aW1lKCkgLSB0LCA2ICogKGxlbihkKSAvIDgpKQ== CXByaW50ICIi CSMgRXhhbXBsZSBiZWxvdyB1c2VzIHRoZSB0cmlwbGUtZGVzIGNsYXNzIHRvIGFjaGlldmUgdGhlIHNhbWUgYXMgYWJvdmU= CXByaW50ICJOb3cgdXNpbmcgdHJpcGxlIGRlcyBjbGFzcyI= CXQgPSB0aW1lKCk= CXQxID0gdHJpcGxlX2Rlcyh1bmhleCgiMTMzNDU3Nzk5QkJDREZGMTExMjIzMzQ0NTU2Njc3ODg3NzY2MTEwMEREMjIzMzExIikp CXByaW50ICJLZXk6ICAgICAgICVzIiAlIHQxLmdldEtleSgp CXByaW50ICJEYXRhOiAgICAgICVzIiAlIGQ= CXRkMSA9IHQxLmVuY3J5cHQoZCk= CXByaW50ICJFbmNyeXB0ZWQ6ICIgKyB0ZDE= CXRkMiA9IHQxLmRlY3J5cHQodGQxKQ== CXByaW50ICJEZWNyeXB0ZWQ6ICIgKyB0ZDI= CXByaW50ICJUcmlwbGUgREVTIHRpbWUgdGFrZW46ICVmICglZCBjcnlwdCBvcGVyYXRpb25zKSIgJSAodGltZSgpIC0gdCwgNiAqIChsZW4oZCkgLyA4KSk= ZGVmIGV4YW1wbGVfZGVzKCk6 CWZyb20gdGltZSBpbXBvcnQgdGltZQ== CSMgZXhhbXBsZSBvZiBERVMgZW5jcnlwdGluZyBpbiBDQkMgbW9kZSB3aXRoIHRoZSBJViBvZiAiXDBcMFwwXDBcMFwwXDBcMCI= CXByaW50ICJFeGFtcGxlIG9mIERFUyBlbmNyeXB0aW9uIHVzaW5nIENCQyBtb2RlXG4i CXQgPSB0aW1lKCk= CWsgPSBkZXMoIkRFU0NSWVBUIiwgQ0JDLCAiXDBcMFwwXDBcMFwwXDBcMCIp CWRhdGEgPSAiREVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIg== CXByaW50ICJLZXkgICAgICA6ICIgKyBrLmdldEtleSgp CXByaW50ICJEYXRhICAgICA6ICIgKyBkYXRh CWQgPSBrLmVuY3J5cHQoZGF0YSk= CXByaW50ICJFbmNyeXB0ZWQ6ICIgKyBk CWQgPSBrLmRlY3J5cHQoZCk= CXByaW50ICJEZWNyeXB0ZWQ6ICIgKyBk CXByaW50ICJERVMgdGltZSB0YWtlbjogJWYgKDYgY3J5cHQgb3BlcmF0aW9ucykiICUgKHRpbWUoKSAtIHQp CXByaW50ICIi ZGVmIF9fdGVzdF9fKCk6 CWV4YW1wbGVfZGVzKCk= CWV4YW1wbGVfdHJpcGxlX2Rlcygp ZGVmIF9fZnVsbHRlc3RfXygpOg== CSMgVGhpcyBzaG91bGQgbm90IHByb2R1Y2UgYW55IHVuZXhwZWN0ZWQgZXJyb3JzIG9yIGV4Y2VwdGlvbnM= CWZyb20gYmluYXNjaWkgaW1wb3J0IHVuaGV4bGlmeSBhcyB1bmhleA== CWZyb20gYmluYXNjaWkgaW1wb3J0IGhleGxpZnkgYXMgZG9oZXg= CV9fdGVzdF9fKCk= CXByaW50ICIi CWsgPSBkZXMoIlwwXDBcMFwwXDBcMFwwXDAiLCBDQkMsICJcMFwwXDBcMFwwXDBcMFwwIik= CWQgPSBrLmVuY3J5cHQoIkRFUyBlbmNyeXB0aW9uIGFsZ29yaXRobSIp CWlmIGsuZGVjcnlwdChkKSAhPSAiREVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIjo= CQlwcmludCAiVGVzdCAxIEVycm9yOiBVbmVuY3lwdGVkIGRhdGEgYmxvY2sgZG9lcyBub3QgbWF0Y2ggc3RhcnQgZGF0YSI= CWsgPSBkZXMoIlwwXDBcMFwwXDBcMFwwXDAiLCBDQkMsICJcMFwwXDBcMFwwXDBcMFwwIik= CWQgPSBrLmVuY3J5cHQoIkRlZmF1bHQgc3RyaW5nIG9mIHRleHQiLCAnKicp CWlmIGsuZGVjcnlwdChkLCAiKiIpICE9ICJEZWZhdWx0IHN0cmluZyBvZiB0ZXh0Ijo= CQlwcmludCAiVGVzdCAyIEVycm9yOiBVbmVuY3lwdGVkIGRhdGEgYmxvY2sgZG9lcyBub3QgbWF0Y2ggc3RhcnQgZGF0YSI= CWsgPSBkZXMoIlxyXG5cdEFCQ1xyXG4iKQ== CWQgPSBrLmVuY3J5cHQoIlN0cmluZyB0byBQYWQiLCAnKicp CWlmIGsuZGVjcnlwdChkKSAhPSAiU3RyaW5nIHRvIFBhZCoqKiI6 CQlwcmludCAiJyVzJyIgJSBrLmRlY3J5cHQoZCk= CQlwcmludCAiVGVzdCAzIEVycm9yOiBVbmVuY3lwdGVkIGRhdGEgYmxvY2sgZG9lcyBub3QgbWF0Y2ggc3RhcnQgZGF0YSI= CWsgPSBkZXMoIlxyXG5cdEFCQ1xyXG4iKQ== CWQgPSBrLmVuY3J5cHQodW5oZXgoIjAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MCIpLCB1bmhleCgiNDQiKSk= CWlmIGsuZGVjcnlwdChkLCB1bmhleCgiNDQiKSkgIT0gdW5oZXgoIjAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MCIpOg== CQlwcmludCAiVGVzdCA0YSBFcnJvcjogVW5lbmN5cHRlZCBkYXRhIGJsb2NrIGRvZXMgbm90IG1hdGNoIHN0YXJ0IGRhdGEi CWlmIGsuZGVjcnlwdChkKSAhPSB1bmhleCgiMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwNDQiKTo= CQlwcmludCAiVGVzdCA0YiBFcnJvcjogVW5lbmN5cHRlZCBkYXRhIGJsb2NrIGRvZXMgbm90IG1hdGNoIHN0YXJ0IGRhdGEi CWsgPSB0cmlwbGVfZGVzKCJNeURlc0tleVxyXG5cdEFCQ1xyXG4wOTg3KjU0MyIp CWQgPSBrLmVuY3J5cHQodW5oZXgoIjAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MCIpKQ== CWlmIGsuZGVjcnlwdChkKSAhPSB1bmhleCgiMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwIik6 CQlwcmludCAiVGVzdCA1IEVycm9yOiBVbmVuY3lwdGVkIGRhdGEgYmxvY2sgZG9lcyBub3QgbWF0Y2ggc3RhcnQgZGF0YSI= CWsgPSB0cmlwbGVfZGVzKCJcclxuXHRBQkNcclxuMDk4Nyo1NDMiKQ== CWQgPSBrLmVuY3J5cHQodW5oZXgoIjAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MDAwMDEwMjAzMDQwNTA2MDcwOEZGOEZEQ0IwNDA4MCIpKQ== CWlmIGsuZGVjcnlwdChkKSAhPSB1bmhleCgiMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwMDAwMTAyMDMwNDA1MDYwNzA4RkY4RkRDQjA0MDgwIik6 CQlwcmludCAiVGVzdCA2IEVycm9yOiBVbmVuY3lwdGVkIGRhdGEgYmxvY2sgZG9lcyBub3QgbWF0Y2ggc3RhcnQgZGF0YSI= ZGVmIF9fZmlsZXRlc3RfXygpOg== CWZyb20gdGltZSBpbXBvcnQgdGltZQ== CWYgPSBvcGVuKCJweURlcy5weSIsICJyYisiKQ== CWQgPSBmLnJlYWQoKQ== CWYuY2xvc2UoKQ== CXQgPSB0aW1lKCk= CWsgPSBkZXMoIk15REVTS2V5Iik= CWQgPSBrLmVuY3J5cHQoZCwgIiAiKQ== CWYgPSBvcGVuKCJweURlcy5weS5lbmMiLCAid2IrIik= CWYud3JpdGUoZCk= CWYuY2xvc2UoKQ== CWQgPSBrLmRlY3J5cHQoZCwgIiAiKQ== CWYgPSBvcGVuKCJweURlcy5weS5kZWMiLCAid2IrIik= CWYud3JpdGUoZCk= CWYuY2xvc2UoKQ== CXByaW50ICJERVMgZmlsZSB0ZXN0IHRpbWU6ICVmIiAlICh0aW1lKCkgLSB0KQ== ZGVmIF9fcHJvZmlsZV9fKCk6 CWltcG9ydCBwcm9maWxl CXByb2ZpbGUucnVuKCdfX2Z1bGx0ZXN0X18oKScp CSNwcm9maWxlLnJ1bignX19maWxldGVzdF9fKCknKQ== aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzo= CV9fdGVzdF9fKCk= CSNfX2Z1bGx0ZXN0X18oKQ== CSNfX2ZpbGV0ZXN0X18oKQ== CSNfX3Byb2ZpbGVfXygp
于是解密之后发现和python的一个官方文档相同。这个时候思路就开始跑偏了。。。当时自己想的是比较这两个文件,结果就是越来越偏。
看了别人的writeup之后才搞清楚base64原来有这么多的奥秘在里面。。。
事实上,这个题目利用的是base64加密后的字符串来藏字符。如果base64字符串后面有==时,说明前一个字符的后四位是任意的,既可以写入信息的。如果是=结尾的,前一个字符的后两位是任意的,可以写入信息。
然后还有一个地方在于base64的字符集,要对之前和之后的位置进行异或,再将其拼接起来,就是01字符串,转成字符串得flag。。。
代码:
import base64 f=open("C:\\Users\\wangchong\\Desktop\\wangchong\\crypto100\\timian.txt") index='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' line=f.readline() while line: line2=base64.b64encode(base64.b64decode(line)) line=line[0:len(line)-1] if(line[-1]==line[-2]=='='): x=line[-3] x1=line2[-3] res=str(bin((index.find(x))^(index.find(x1)))).replace('0b','00')[-4:] if(len(res)==3): res='0'+res print (str(res)), elif(line[-1]=='=' and line[-2]!='='): x=line[-2] x1=line2[-2] print str(bin((index.find(x))^(index.find(x1)))).replace('0b','00')[-2:], line=f.readline()
结果如下:
将这些字符拼接到一起转字符串,得到: