Untitled
unknown
plain_text
3 years ago
16 kB
4
Indexable
IyEvdXNyL2Jpbi9weXRob24KIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiMgICAqKnB5dGhvbiByZXZlcnNlIHNoZWxsKioKIyBjb2RlZCBieTog b3NlaWQgQWxkYXJ5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENsaWVudF9GSUxF CmltcG9ydCBzdHJ1Y3QsIHNvY2tldCwgc3VicHJvY2Vzcywgb3MsIHBsYXRmb3JtLCB3ZWJicm93 c2VyIGFzIGJyb3dzZXIKaW1wb3J0IHN5cwppbXBvcnQgc29ja2V0CmltcG9ydCB0aW1lCklQID0g IjE5OC4yNDQuMjIxLjMzIiAgIyBZb3VyIHNlcnZlciBJUCwgZGVmYXVsdDogbG9jYWxob3N0CnBv cnQgPSA4MDgwICAjICNZb3VyIHNlcnZlciBQb3J0LCBkZWZhdWx0OiA0NDQ0CnBhdGggPSBvcy5w YXRoLnJlYWxwYXRoKF9fZmlsZV9fKS5yZXBsYWNlKCcucHknLCcnKQoKaGFuZGxlciA9IFsncG93 ZXJzaGVsbCcsICdweScsICdweXRob24nLCAncHl0aG9uMyddCgp0cnk6CglpZiBvcy5zeXN0ZW0o J1JlZyBRdWVyeSAiSEtFWV9DVVJSRU5UX1VTRVJcU09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3Nc Q3VycmVudFZlcnNpb24gXFJ1biIgL3YgUHJvY2Vzc2VyWDY0JykgPT0gVHJ1ZToKCQlvcy5wb3Bl bihmJ1JFRyBBREQgSEtFWV9DVVJSRU5UX1VTRVJcU09GVFdBUkVcTWljcm9zb2Z0XFdpbmRvd3Nc Q3VycmVudFZlcnNpb25cUnVuIC90IFJFR19TWiAvdiBQcm9jZXNzZXJYNjQgL2Qge29zLmdldGN3 ZCgpICsgY2hyKDkyKSArIG9zLnBhdGguYmFzZW5hbWUocGF0aCl9LmV4ZScpCgkJd2hpbGUgVHJ1 ZToKCQkJY2xhc3Mgc2VucmV2OgoJCQkJZGVmIF9faW5pdF9fKHNlbGYsIHNvY2spOgoJCQkJCXNl bGYuc29jayA9IHNvY2sKCgkJCQlkZWYgc2VuZChzZWxmLCBkYXRhKToKCQkJCQlwa3QgPSBzdHJ1 Y3QucGFjaygnPkknLCBsZW4oZGF0YSkpICsgZGF0YQoJCQkJCXNlbGYuc29jay5zZW5kYWxsKHBr dCkKCgkJCQlkZWYgcmVjdihzZWxmKToKCQkJCQlwa3RsZW4gPSBzZWxmLnJlY3ZhbGwoNCkKCQkJ CQlpZiBub3QgcGt0bGVuOiByZXR1cm4gIiIKCQkJCQlwa3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCc+ SScsIHBrdGxlbilbMF0KCQkJCQlyZXR1cm4gc2VsZi5yZWN2YWxsKHBrdGxlbikKCgkJCQlkZWYg cmVjdmFsbChzZWxmLCBuKToKCQkJCQlwYWNrZXQgPSBiJycKCQkJCQl3aGlsZSBsZW4ocGFja2V0 KSA8IG46CgkJCQkJCWZyYW1lID0gc2VsZi5zb2NrLnJlY3YobiAtIGxlbihwYWNrZXQpKQoJCQkJ CQlpZiBub3QgZnJhbWU6IHJldHVybiBOb25lCgkJCQkJCXBhY2tldCArPSBmcmFtZQoJCQkJCXJl dHVybiBwYWNrZXQKCgoJCQlkZWYgY25ldCgpOgoJCQkJdHJ5OgoJCQkJCWlwID0gc29ja2V0Lmdl dGhvc3RieW5hbWUoInd3dy5nb29nbGUuY29tIikKCQkJCQljb24gPSBzb2NrZXQuY3JlYXRlX2Nv bm5lY3Rpb24oKGlwLCA4MCksIDIpCgkJCQkJcmV0dXJuIFRydWUKCQkJCWV4Y2VwdCBzb2NrZXQu ZXJyb3I6CgkJCQkJcGFzcwoJCQkJcmV0dXJuIEZhbHNlCgoKCQkJZGVmIHJ1bkNNRChjbWQpOgoJ CQkJcnVuY21kID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsCgkJCQkJCQkJCQkgIHNoZWxsPVRydWUs CgkJCQkJCQkJCQkgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCgkJCQkJCQkJCQkgIHN0ZGVycj1z dWJwcm9jZXNzLlBJUEUsCgkJCQkJCQkJCQkgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSkKCQkJCXJl dHVybiBydW5jbWQuc3Rkb3V0LnJlYWQoKSArIHJ1bmNtZC5zdGRlcnIucmVhZCgpCgoKCQkJZGVm IHVwbG9hZChjbWQpOgoJCQkJZmlsZXRvc2VuZCA9ICIiLmpvaW4oY21kLnNwbGl0KCI6ZG93bmxv YWQiKSkuc3RyaXAoKQoJCQkJaWYgbm90IG9zLnBhdGguaXNmaWxlKGZpbGV0b3NlbmQpOgoJCQkJ CWNvbnRyb2xlci5zZW5kKAoJCQkJCQkiZXJyb3I6IG9wZW46ICd7fSc6IE5vIHN1Y2ggZmlsZSBv biBjbGluZXQgbWFjaGluZSAhXG4iLmZvcm1hdChmaWxldG9zZW5kKS5lbmNvZGUoIlVURi04Iikp CgkJCQllbHNlOgoJCQkJCWNvbnRyb2xlci5zZW5kKGIidHJ1ZSIpCgkJCQkJd2l0aCBvcGVuKGZp bGV0b3NlbmQsICJyYiIpIGFzIHdmOgoJCQkJCQlmb3IgZGF0YSBpbiBpdGVyKGxhbWJkYTogd2Yu cmVhZCg0MTAwKSwgYiIiKToKCQkJCQkJCXRyeToKCQkJCQkJCQljb250cm9sZXIuc2VuZChkYXRh KQoJCQkJCQkJZXhjZXB0KEtleWJvYXJkSW50ZXJydXB0LCBFT0ZFcnJvcik6CgkJCQkJCQkJd2Yu Y2xvc2UoKQoJCQkJCQkJCWNvbnRyb2xlci5zZW5kKGIiOkFib3J0ZWQ6IikKCQkJCQkJCQlyZXR1 cm4KCQkJCQljb250cm9sZXIuc2VuZChiIjpET05FOiIpCgoKCQkJZGVmIHdpZmlzaG93KCk6CgkJ CQl0cnk6CgkJCQkJaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRvd3MiOgoJCQkJCQlpbmZv ID0gcnVuQ01EKCJuZXRzaCB3bGFuIHNob3cgcHJvZmlsZSBuYW1lPSoga2V5PWNsZWFyIikKCQkJ CQllbGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJMaW51eCI6CgkJCQkJCWluZm8gPSBydW5DTUQo ImVncmVwIC1oIC1zIC1BIDkgLS1jb2xvciAtVCAnc3NpZD0nIC9ldGMvTmV0d29ya01hbmFnZXIv c3lzdGVtLWNvbm5lY3Rpb25zLyoiKQoJCQkJCWVsc2U6CgkJCQkJCWluZm8gPSBiIjpvc25vdDoi CgkJCQlleGNlcHQgRXhjZXB0aW9uOgoJCQkJCWluZm8gPSBiIjpvc25vdDoiCgkJCQlmaW5hbGx5 OgoJCQkJCWNvbnRyb2xlci5zZW5kKGluZm8pCgoKCQkJZGVmIGRvd25sb2FkKGNtZCk6CgkJCQlm aWxldG9kb3duID0gIiIuam9pbihjbWQuc3BsaXQoIjp1cGxvYWQiKSkuc3RyaXAoKQoJCQkJZmls ZXRvZG93biA9IGZpbGV0b2Rvd24uc3BsaXQoIi8iKVstMV0gaWYgIi8iIGluIGZpbGV0b2Rvd24g ZWxzZSBmaWxldG9kb3duLnNwbGl0KCJcXCIpWwoJCQkJCS0xXSBpZiAiXFwiIGluIGZpbGV0b2Rv d24gZWxzZSBmaWxldG9kb3duCgkJCQl3ZiA9IG9wZW4oZmlsZXRvZG93biwgIndiIikKCQkJCXdo aWxlIFRydWU6CgkJCQkJZGF0YSA9IGNvbnRyb2xlci5yZWN2KCkKCQkJCQlpZiBkYXRhID09IGIi OkRPTkU6IjoKCQkJCQkJYnJlYWsKCQkJCQllbGlmIGRhdGEgPT0gYiI6QWJvcnRlZDoiOgoJCQkJ CQl3Zi5jbG9zZSgpCgkJCQkJCW9zLnJlbW92ZShmaWxldG9kb3duKQoJCQkJCQlyZXR1cm4KCQkJ CQl3Zi53cml0ZShkYXRhKQoJCQkJd2YuY2xvc2UoKQoJCQkJY29udHJvbGVyLnNlbmQoc3RyKG9z LmdldGN3ZCgpICsgb3Muc2VwICsgZmlsZXRvZG93bikuZW5jb2RlKCJVVEYtOCIpKQoKCgkJCWRl ZiBicm93c2UoY21kKToKCQkJCXVybCA9ICIiLmpvaW4oY21kLnNwbGl0KCI6YnJvd3NlIikpLnN0 cmlwKCkKCQkJCWJyb3dzZXIub3Blbih1cmwpCgoKCQkJZGVmIHNjcmVlbnNob3QoKToKCQkJCXNp emUgPSBpbnQoY29udHJvbGVyLnJlY3YoKS5kZWNvZGUoJ3V0Zi04JykpCgoJCQkJdGhlX3Bob3Rv ID0gIiIKCQkJCXRoZV9waG90byA9IHRoZV9waG90by5lbmNvZGUoJ3V0Zi04JykKCgkJCQl3aGls ZSBzaXplID4gMDoKCQkJCQlkYXRhID0gY29udHJvbGVyLnJlY3YoKQoJCQkJCXNpemUgLT0gbGVu KGRhdGEpCgkJCQkJdGhlX3Bob3RvICs9IGRhdGEKCgkJCQlpbWdfdG9fc2F2ZSA9IEltYWdlLmZy b21ieXRlcygiUkdCIiwgKDQ5MCwgNDkwKSwgdGhlX3Bob3RvKQoJCQkJaW1nX3RvX3NhdmUuc2F2 ZSgic2NyZWVuc2hvdC5wbmciKQoKCgoKCgkJCWRlZiBzaGVsbChzZW5yZXY9c2VucmV2KToKCQkJ CWdsb2JhbCBzCgkJCQlnbG9iYWwgY29udHJvbGVyCgkJCQltYWluRElSID0gb3MuZ2V0Y3dkKCkK CQkJCXRtcGRpciA9ICIiCgkJCQljb250cm9sZXIgPSBzZW5yZXYocykKCQkJCXdoaWxlIFRydWU6 CgkJCQkJY21kID0gY29udHJvbGVyLnJlY3YoKQoJCQkJCWlmIGNtZC5zdHJpcCgpOgoJCQkJCQlj bWQgPSBjbWQuZGVjb2RlKCJVVEYtOCIsICdpZ25vcmUnKS5zdHJpcCgpCgkJCQkJCWlmICI6c2Ny ZWVuc2hvdCIgPT0gY21kOgoJCQkJCQkJc2NyZWVuc2hvdCgpCgkJCQkJCWVsaWYgIjpsaXN0ZW4i IGluIGNtZDoKCQkJCQkJCWNvbnRyb2xlci5zZW5kKGJ5dGVzKCJEb25lIiwgJ3V0Zi04JykpCgkJ CQkJCWVsaWYgIjpkZXN0cm95IiA9PSBjbWQ6CgkJCQkJCQlzdWJwcm9jZXNzLlBvcGVuKCd0YXNr a2lsbCAvSU0gJyArIG9zLnBhdGguYmFzZW5hbWUocGF0aCkgKyAnLmV4ZSAvRicpCgkJCQkJCWVs aWYgIjpkb3dubG9hZCIgaW4gY21kOgoJCQkJCQkJdXBsb2FkKGNtZCkKCQkJCQkJZWxpZiAiOnVw bG9hZCIgaW4gY21kOgoJCQkJCQkJZG93bmxvYWQoY21kKQoJCQkJCQllbGlmIGNtZCBpbiBoYW5k bGVyOgoJCQkJCQkJc3VicHJvY2Vzcy5Qb3BlbigKCQkJCQkJCQkndGFza2tpbGwgL0lNICcgKyBv cy5wYXRoLmJhc2VuYW1lKHBhdGgpICsgJy5leGUgL0YgJiAnICsgb3MuZ2V0Y3dkKCkgKyBjaHIo CgkJCQkJCQkJCTkyKSArIG9zLnBhdGguYmFzZW5hbWUocGF0aCkgKyAnLmV4ZScsIHNoZWxsPVRy dWUpCgkJCQkJCQlicmVhawoJCQkJCQllbGlmIGNtZCA9PSAiOmtpbGwiOgoJCQkJCQkJcy5zaHV0 ZG93bigyKQoJCQkJCQkJcy5jbG9zZSgpCgkJCQkJCQlicmVhawoJCQkJCQllbGlmICI6YnJvd3Nl IiBpbiBjbWQ6CgkJCQkJCQlicm93c2UoY21kKQoJCQkJCQkJY29udHJvbGVyLnNlbmQoYiJEb3du IikKCQkJCQkJZWxpZiBjbWQgPT0gIjpjaGVja19pbnRlcm5ldF9jb25uZWN0aW9uIjoKCQkJCQkJ CWlmIGNuZXQoKSA9PSBUcnVlOgoJCQkJCQkJCWNvbnRyb2xlci5zZW5kKGIiVVAiKQoJCQkJCQkJ ZWxzZToKCQkJCQkJCQljb250cm9sZXIuc2VuZChiIkRvd24iKQoJCQkJCQllbGlmIGNtZCA9PSAi OndpZmkiOgoJCQkJCQkJd2lmaXNob3coKQoJCQkJCQllbGlmICJjZCIgaW4gY21kOgoJCQkJCQkJ ZGlyYyA9ICIiLmpvaW4oY21kLnNwbGl0KCJjZCIpKS5zdHJpcCgpCgkJCQkJCQlpZiBub3QgZGly Yy5zdHJpcCgpOgoJCQkJCQkJCWNvbnRyb2xlci5zZW5kKCJ7fVxuIi5mb3JtYXQob3MuZ2V0Y3dk KCkpLmVuY29kZSgiVVRGLTgiKSkKCQkJCQkJCWVsaWYgZGlyYyA9PSAiLSI6CgkJCQkJCQkJaWYg bm90IHRtcGRpcjoKCQkJCQkJCQkJY29udHJvbGVyLnNlbmQoYiJlcnJvcjogY2Q6IG9sZCBbUEFX RF0gbm90IHNldCB5ZXQgIVxuIikKCQkJCQkJCQllbHNlOgoJCQkJCQkJCQl0bXBkaXIyID0gb3Mu Z2V0Y3dkKCkKCQkJCQkJCQkJb3MuY2hkaXIodG1wZGlyKQoJCQkJCQkJCQljb250cm9sZXIuc2Vu ZCgiQmFjayB0byBkaXJbIHt9LyBdXG4iLmZvcm1hdCh0bXBkaXIpLmVuY29kZSgiVVRGLTgiKSkK CQkJCQkJCQkJdG1wZGlyID0gdG1wZGlyMgoJCQkJCQkJZWxpZiBkaXJjID09ICItLSI6CgkJCQkJ CQkJdG1wZGlyID0gb3MuZ2V0Y3dkKCkKCQkJCQkJCQlvcy5jaGRpcihtYWluRElSKQoJCQkJCQkJ CWNvbnRyb2xlci5zZW5kKCJCYWNrIHRvIGZpcnN0IGRpclsge30vIF1cbiIuZm9ybWF0KG1haW5E SVIpLmVuY29kZSgiVVRGLTgiKSkKCQkJCQkJCWVsc2U6CgkJCQkJCQkJaWYgbm90IG9zLnBhdGgu aXNkaXIoZGlyYyk6CgkJCQkJCQkJCWNvbnRyb2xlci5zZW5kKAoJCQkJCQkJCQkJImVycm9yOiBj ZDogJ3t9JzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBvbiBjbGluZXQgbWFjaGluZSAhXG4i LmZvcm1hdCgKCQkJCQkJCQkJCQlkaXJjKS5lbmNvZGUoCgkJCQkJCQkJCQkJIlVURi04IikpCgkJ CQkJCQkJZWxzZToKCQkJCQkJCQkJdG1wZGlyID0gb3MuZ2V0Y3dkKCkKCQkJCQkJCQkJb3MuY2hk aXIoZGlyYykKCQkJCQkJCQkJY29udHJvbGVyLnNlbmQoIkNoYW5nZWQgdG8gZGlyWyB7fS8gXVxu Ii5mb3JtYXQoZGlyYykuZW5jb2RlKCJVVEYtOCIpKQoJCQkJCQllbGlmIGNtZCA9PSAicHdkIjoK CQkJCQkJCWNvbnRyb2xlci5zZW5kKHN0cihvcy5nZXRjd2QoKSArICJcbiIpLmVuY29kZSgiVVRG LTgiKSkKCQkJCQkJZWxzZToKCQkJCQkJCWNtZF9vdXRwdXQgPSBydW5DTUQoY21kKQoJCQkJCQkJ Y29udHJvbGVyLnNlbmQoYnl0ZXMoY21kX291dHB1dCkpCgoJCQkJc3lzLmV4aXQoKQoKCgoKCQkJ dHJ5OgoJCQkJcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NU UkVBTSkKCQkJCXMuY29ubmVjdCgoSVAsIHBvcnQpKQoJCQkJc2hlbGwoKQoJCQlleGNlcHQgRXhj ZXB0aW9uOgoJCQkJcGFzcwoJZWxzZToKCQl3aGlsZSBUcnVlOgoJCQljbGFzcyBzZW5yZXY6CgkJ CQlkZWYgX19pbml0X18oc2VsZiwgc29jayk6CgkJCQkJc2VsZi5zb2NrID0gc29jawoKCQkJCWRl ZiBzZW5kKHNlbGYsIGRhdGEpOgoJCQkJCXBrdCA9IHN0cnVjdC5wYWNrKCc+SScsIGxlbihkYXRh KSkgKyBkYXRhCgkJCQkJc2VsZi5zb2NrLnNlbmRhbGwocGt0KQoKCQkJCWRlZiByZWN2KHNlbGYp OgoJCQkJCXBrdGxlbiA9IHNlbGYucmVjdmFsbCg0KQoJCQkJCWlmIG5vdCBwa3RsZW46IHJldHVy biAiIgoJCQkJCXBrdGxlbiA9IHN0cnVjdC51bnBhY2soJz5JJywgcGt0bGVuKVswXQoJCQkJCXJl dHVybiBzZWxmLnJlY3ZhbGwocGt0bGVuKQoKCQkJCWRlZiByZWN2YWxsKHNlbGYsIG4pOgoJCQkJ CXBhY2tldCA9IGInJwoJCQkJCXdoaWxlIGxlbihwYWNrZXQpIDwgbjoKCQkJCQkJZnJhbWUgPSBz ZWxmLnNvY2sucmVjdihuIC0gbGVuKHBhY2tldCkpCgkJCQkJCWlmIG5vdCBmcmFtZTogcmV0dXJu IE5vbmUKCQkJCQkJcGFja2V0ICs9IGZyYW1lCgkJCQkJcmV0dXJuIHBhY2tldAoKCgkJCWRlZiBj bmV0KCk6CgkJCQl0cnk6CgkJCQkJaXAgPSBzb2NrZXQuZ2V0aG9zdGJ5bmFtZSgid3d3Lmdvb2ds ZS5jb20iKQoJCQkJCWNvbiA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaXAsIDgwKSwgMikK CQkJCQlyZXR1cm4gVHJ1ZQoJCQkJZXhjZXB0IHNvY2tldC5lcnJvcjoKCQkJCQlwYXNzCgkJCQly ZXR1cm4gRmFsc2UKCgoJCQlkZWYgcnVuQ01EKGNtZCk6CgkJCQlydW5jbWQgPSBzdWJwcm9jZXNz LlBvcGVuKGNtZCwKCQkJCQkJCQkJCSAgc2hlbGw9VHJ1ZSwKCQkJCQkJCQkJCSAgc3Rkb3V0PXN1 YnByb2Nlc3MuUElQRSwKCQkJCQkJCQkJCSAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKCQkJCQkJ CQkJCSAgc3RkaW49c3VicHJvY2Vzcy5QSVBFKQoJCQkJcmV0dXJuIHJ1bmNtZC5zdGRvdXQucmVh ZCgpICsgcnVuY21kLnN0ZGVyci5yZWFkKCkKCgoJCQlkZWYgdXBsb2FkKGNtZCk6CgkJCQlmaWxl dG9zZW5kID0gIiIuam9pbihjbWQuc3BsaXQoIjpkb3dubG9hZCIpKS5zdHJpcCgpCgkJCQlpZiBu b3Qgb3MucGF0aC5pc2ZpbGUoZmlsZXRvc2VuZCk6CgkJCQkJY29udHJvbGVyLnNlbmQoCgkJCQkJ CSJlcnJvcjogb3BlbjogJ3t9JzogTm8gc3VjaCBmaWxlIG9uIGNsaW5ldCBtYWNoaW5lICFcbiIu Zm9ybWF0KGZpbGV0b3NlbmQpLmVuY29kZSgiVVRGLTgiKSkKCQkJCWVsc2U6CgkJCQkJY29udHJv bGVyLnNlbmQoYiJ0cnVlIikKCQkJCQl3aXRoIG9wZW4oZmlsZXRvc2VuZCwgInJiIikgYXMgd2Y6 CgkJCQkJCWZvciBkYXRhIGluIGl0ZXIobGFtYmRhOiB3Zi5yZWFkKDQxMDApLCBiIiIpOgoJCQkJ CQkJdHJ5OgoJCQkJCQkJCWNvbnRyb2xlci5zZW5kKGRhdGEpCgkJCQkJCQlleGNlcHQoS2V5Ym9h cmRJbnRlcnJ1cHQsIEVPRkVycm9yKToKCQkJCQkJCQl3Zi5jbG9zZSgpCgkJCQkJCQkJY29udHJv bGVyLnNlbmQoYiI6QWJvcnRlZDoiKQoJCQkJCQkJCXJldHVybgoJCQkJCWNvbnRyb2xlci5zZW5k KGIiOkRPTkU6IikKCgoJCQlkZWYgd2lmaXNob3coKToKCQkJCXRyeToKCQkJCQlpZiBwbGF0Zm9y bS5zeXN0ZW0oKSA9PSAiV2luZG93cyI6CgkJCQkJCWluZm8gPSBydW5DTUQoIm5ldHNoIHdsYW4g c2hvdyBwcm9maWxlIG5hbWU9KiBrZXk9Y2xlYXIiKQoJCQkJCWVsaWYgcGxhdGZvcm0uc3lzdGVt KCkgPT0gIkxpbnV4IjoKCQkJCQkJaW5mbyA9IHJ1bkNNRCgiZWdyZXAgLWggLXMgLUEgOSAtLWNv bG9yIC1UICdzc2lkPScgL2V0Yy9OZXR3b3JrTWFuYWdlci9zeXN0ZW0tY29ubmVjdGlvbnMvKiIp CgkJCQkJZWxzZToKCQkJCQkJaW5mbyA9IGIiOm9zbm90OiIKCQkJCWV4Y2VwdCBFeGNlcHRpb246 CgkJCQkJaW5mbyA9IGIiOm9zbm90OiIKCQkJCWZpbmFsbHk6CgkJCQkJY29udHJvbGVyLnNlbmQo aW5mbykKCgoJCQlkZWYgZG93bmxvYWQoY21kKToKCQkJCWZpbGV0b2Rvd24gPSAiIi5qb2luKGNt ZC5zcGxpdCgiOnVwbG9hZCIpKS5zdHJpcCgpCgkJCQlmaWxldG9kb3duID0gZmlsZXRvZG93bi5z cGxpdCgiLyIpWy0xXSBpZiAiLyIgaW4gZmlsZXRvZG93biBlbHNlIGZpbGV0b2Rvd24uc3BsaXQo IlxcIilbCgkJCQkJLTFdIGlmICJcXCIgaW4gZmlsZXRvZG93biBlbHNlIGZpbGV0b2Rvd24KCQkJ CXdmID0gb3BlbihmaWxldG9kb3duLCAid2IiKQoJCQkJd2hpbGUgVHJ1ZToKCQkJCQlkYXRhID0g Y29udHJvbGVyLnJlY3YoKQoJCQkJCWlmIGRhdGEgPT0gYiI6RE9ORToiOgoJCQkJCQlicmVhawoJ CQkJCWVsaWYgZGF0YSA9PSBiIjpBYm9ydGVkOiI6CgkJCQkJCXdmLmNsb3NlKCkKCQkJCQkJb3Mu cmVtb3ZlKGZpbGV0b2Rvd24pCgkJCQkJCXJldHVybgoJCQkJCXdmLndyaXRlKGRhdGEpCgkJCQl3 Zi5jbG9zZSgpCgkJCQljb250cm9sZXIuc2VuZChzdHIob3MuZ2V0Y3dkKCkgKyBvcy5zZXAgKyBm aWxldG9kb3duKS5lbmNvZGUoIlVURi04IikpCgoKCQkJZGVmIGJyb3dzZShjbWQpOgoJCQkJdXJs ID0gIiIuam9pbihjbWQuc3BsaXQoIjpicm93c2UiKSkuc3RyaXAoKQoJCQkJYnJvd3Nlci5vcGVu KHVybCkKCgoJCQlkZWYgc2NyZWVuc2hvdCgpOgoJCQkJc2l6ZSA9IGludChjb250cm9sZXIucmVj digxMDI0KS5kZWNvZGUoJ3V0Zi04JykpCgoJCQkJdGhlX3Bob3RvID0gIiIKCQkJCXRoZV9waG90 byA9IHRoZV9waG90by5lbmNvZGUoJ3V0Zi04JykKCgkJCQl3aGlsZSBzaXplID4gMDoKCQkJCQlk YXRhID0gY29udHJvbGVyLnJlY3YoNDA5NikKCQkJCQlzaXplIC09IGxlbihkYXRhKQoJCQkJCXRo ZV9waG90byArPSBkYXRhCgoJCQkJaW1nX3RvX3NhdmUgPSBJbWFnZS5mcm9tYnl0ZXMoIlJHQiIs ICg0OTAsIDQ5MCksIHRoZV9waG90bykKCQkJCWltZ190b19zYXZlLnNhdmUoInNjcmVlbnNob3Qu cG5nIikKCgoJCQlkZWYgb25fcHJlc3Moa2V5KToKCQkJCXIgPSAne31cdFx0e31cbicuZm9ybWF0 KGtleSwgdGltZS50aW1lKCkpCgkJCQlkYXRhID0gci5lbmNvZGUoKQoJCQkJY29udHJvbGVyLnNl bmQoZGF0YSkKCgkJCWRlZiBzaGVsbChzZW5yZXY9c2VucmV2KToKCQkJCWdsb2JhbCBzCgkJCQln bG9iYWwgY29udHJvbGVyCgkJCQltYWluRElSID0gb3MuZ2V0Y3dkKCkKCQkJCXRtcGRpciA9ICIi CgkJCQljb250cm9sZXIgPSBzZW5yZXYocykKCQkJCXdoaWxlIFRydWU6CgkJCQkJY21kID0gY29u dHJvbGVyLnJlY3YoKQoJCQkJCWlmIGNtZC5zdHJpcCgpOgoJCQkJCQljbWQgPSBjbWQuZGVjb2Rl KCJVVEYtOCIsICdpZ25vcmUnKS5zdHJpcCgpCgkJCQkJCWlmICI6c2NyZWVuc2hvdCIgPT0gY21k OgoJCQkJCQkJc2NyZWVuc2hvdCgpCgkJCQkJCWVsaWYgIjprZXlsb2dnZXIiIGluIGNtZDoKCQkJ CQkJCWNvbnRyb2xlci5zZW5kKGJ5dGVzKCJIZWxsbyB0aGVyZSIsICd1dGYtOCcpKQoJCQkJCQll bGlmICI6ZGVzdHJveSIgPT0gY21kOgoJCQkJCQkJc3VicHJvY2Vzcy5Qb3BlbigndGFza2tpbGwg L0lNICcgKyBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpICsgJy5leGUgL0YnKQoJCQkJCQllbGlmICI6 ZG93bmxvYWQiIGluIGNtZDoKCQkJCQkJCXVwbG9hZChjbWQpCgkJCQkJCWVsaWYgIjp1cGxvYWQi IGluIGNtZDoKCQkJCQkJCWRvd25sb2FkKGNtZCkKCQkJCQkJZWxpZiBjbWQgaW4gaGFuZGxlcjoK CQkJCQkJCXN1YnByb2Nlc3MuUG9wZW4oCgkJCQkJCQkJJ3Rhc2traWxsIC9JTSAnICsgb3MucGF0 aC5iYXNlbmFtZShwYXRoKSArICcuZXhlIC9GICYgJyArIG9zLmdldGN3ZCgpICsgY2hyKAoJCQkJ CQkJCQk5MikgKyBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpICsgJy5leGUnLCBzaGVsbD1UcnVlKQoJ CQkJCQkJYnJlYWsKCQkJCQkJZWxpZiBjbWQgPT0gIjpraWxsIjoKCQkJCQkJCXMuc2h1dGRvd24o MikKCQkJCQkJCXMuY2xvc2UoKQoJCQkJCQkJYnJlYWsKCQkJCQkJZWxpZiAiOmJyb3dzZSIgaW4g Y21kOgoJCQkJCQkJYnJvd3NlKGNtZCkKCQkJCQkJCWNvbnRyb2xlci5zZW5kKGIiRG93biIpCgkJ CQkJCWVsaWYgY21kID09ICI6Y2hlY2tfaW50ZXJuZXRfY29ubmVjdGlvbiI6CgkJCQkJCQlpZiBj bmV0KCkgPT0gVHJ1ZToKCQkJCQkJCQljb250cm9sZXIuc2VuZChiIlVQIikKCQkJCQkJCWVsc2U6 CgkJCQkJCQkJY29udHJvbGVyLnNlbmQoYiJEb3duIikKCQkJCQkJZWxpZiBjbWQgPT0gIjp3aWZp IjoKCQkJCQkJCXdpZmlzaG93KCkKCQkJCQkJZWxpZiAiY2QiIGluIGNtZDoKCQkJCQkJCWRpcmMg PSAiIi5qb2luKGNtZC5zcGxpdCgiY2QiKSkuc3RyaXAoKQoJCQkJCQkJaWYgbm90IGRpcmMuc3Ry aXAoKToKCQkJCQkJCQljb250cm9sZXIuc2VuZCgie31cbiIuZm9ybWF0KG9zLmdldGN3ZCgpKS5l bmNvZGUoIlVURi04IikpCgkJCQkJCQllbGlmIGRpcmMgPT0gIi0iOgoJCQkJCQkJCWlmIG5vdCB0 bXBkaXI6CgkJCQkJCQkJCWNvbnRyb2xlci5zZW5kKGIiZXJyb3I6IGNkOiBvbGQgW1BBV0RdIG5v dCBzZXQgeWV0ICFcbiIpCgkJCQkJCQkJZWxzZToKCQkJCQkJCQkJdG1wZGlyMiA9IG9zLmdldGN3 ZCgpCgkJCQkJCQkJCW9zLmNoZGlyKHRtcGRpcikKCQkJCQkJCQkJY29udHJvbGVyLnNlbmQoIkJh Y2sgdG8gZGlyWyB7fS8gXVxuIi5mb3JtYXQodG1wZGlyKS5lbmNvZGUoIlVURi04IikpCgkJCQkJ CQkJCXRtcGRpciA9IHRtcGRpcjIKCQkJCQkJCWVsaWYgZGlyYyA9PSAiLS0iOgoJCQkJCQkJCXRt cGRpciA9IG9zLmdldGN3ZCgpCgkJCQkJCQkJb3MuY2hkaXIobWFpbkRJUikKCQkJCQkJCQljb250 cm9sZXIuc2VuZCgiQmFjayB0byBmaXJzdCBkaXJbIHt9LyBdXG4iLmZvcm1hdChtYWluRElSKS5l bmNvZGUoIlVURi04IikpCgkJCQkJCQllbHNlOgoJCQkJCQkJCWlmIG5vdCBvcy5wYXRoLmlzZGly KGRpcmMpOgoJCQkJCQkJCQljb250cm9sZXIuc2VuZCgKCQkJCQkJCQkJCSJlcnJvcjogY2Q6ICd7 fSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnkgb24gY2xpbmV0IG1hY2hpbmUgIVxuIi5mb3Jt YXQoCgkJCQkJCQkJCQkJZGlyYykuZW5jb2RlKAoJCQkJCQkJCQkJCSJVVEYtOCIpKQoJCQkJCQkJ CWVsc2U6CgkJCQkJCQkJCXRtcGRpciA9IG9zLmdldGN3ZCgpCgkJCQkJCQkJCW9zLmNoZGlyKGRp cmMpCgkJCQkJCQkJCWNvbnRyb2xlci5zZW5kKCJDaGFuZ2VkIHRvIGRpclsge30vIF1cbiIuZm9y bWF0KGRpcmMpLmVuY29kZSgiVVRGLTgiKSkKCQkJCQkJZWxpZiBjbWQgPT0gInB3ZCI6CgkJCQkJ CQljb250cm9sZXIuc2VuZChzdHIob3MuZ2V0Y3dkKCkgKyAiXG4iKS5lbmNvZGUoIlVURi04Iikp CgkJCQkJCWVsc2U6CgkJCQkJCQljbWRfb3V0cHV0ID0gcnVuQ01EKGNtZCkKCQkJCQkJCWNvbnRy b2xlci5zZW5kKGJ5dGVzKGNtZF9vdXRwdXQpKQoJCQkJc3lzLmV4aXQoKQoKCgkJCXRyeToKCQkJ CXMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCgkJ CQlzLmNvbm5lY3QoKElQLCBwb3J0KSkKCQkJCXNoZWxsKCkKCQkJZXhjZXB0IEV4Y2VwdGlvbjoK CQkJCXBhc3MKZXhjZXB0OgoJc3VicHJvY2Vzcy5Qb3Blbihvcy5nZXRjd2QoKSArIGNocig5Mikg KyBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpICsgJy5leGUnLCBzaGVsbD1UcnVlKQoJc3lzLmV4aXQo KQo=
Editor is loading...