diff --git a/a_main-packr.go b/a_main-packr.go index e40d50e..e61fa7e 100644 --- a/a_main-packr.go +++ b/a_main-packr.go @@ -10,7 +10,7 @@ func init() { packr.PackJSONBytes("./templates", "Dockerfile.tpl", "\"IyMjIyMjIyMjIyMjIyMjIyMKIyBCdWlsZGVyIGltYWdlICMKIyMjIyMjIyMjIyMjIyMjIyMKRlJPTSBnb2xhbmc6MS4xMiBhcyBidWlsZGVyCgpFTlYgR08xMTFNT0RVTEU9b24KCiMgSW5zdGFsbCBnaXQgKyBTU0wgY2EgY2VydGlmaWNhdGVzLgojIEdpdCBpcyByZXF1aXJlZCBmb3IgZmV0Y2hpbmcgdGhlIGRlcGVuZGVuY2llcy4KIyBDQS1jZXJ0aWZpY2F0ZXMgaXMgcmVxdWlyZWQgdG8gY2FsbCBIVFRQUyBlbmRwb2ludHMuClJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgZ2l0IGNhLWNlcnRpZmljYXRlcyAmJiB1cGRhdGUtY2EtY2VydGlmaWNhdGVzCgojIENyZWF0ZSB1c2VyIGZvciB0aGUgcnVudGltZSBpbWFnZQpSVU4gYWRkdXNlciAtLWRpc2FibGVkLXBhc3N3b3JkIC0tZ2Vjb3MgJycgc2VydmljZXVzZXIKCiMgYnVpbGQgYmluYXJ5CldPUktESVIgL2J1aWxkCkNPUFkgLiAuClJVTiBDR09fRU5BQkxFRD0wIEdPT1M9bGludXggR09BUkNIPWFtZDY0IEdPRkxBR1M9LW1vZD12ZW5kb3IgZ28gYnVpbGQgIC1sZGZsYWdzPSItdyAtcyIgLW8gL2Jpbi97eyAuU2VydmljZS5OYW1lIH19IC4vY21kL3t7IC5TZXJ2aWNlLk5hbWUgfX0vbWFpbi5nbwoKCiMjIyMjIyMjIyMjIyMjIyMjCiMgUnVudGltZSBpbWFnZSAjCiMjIyMjIyMjIyMjIyMjIyMjCkZST00gc2NyYXRjaAoKIyAgc2VydmljZSBiaW5hcnkgYW5kIGFzc2V0cwpDT1BZIC0tZnJvbT1idWlsZGVyIC9iaW4ve3sgLlNlcnZpY2UuTmFtZSB9fSAve3sgLlNlcnZpY2UuTmFtZSB9fQojQ09QWSAuL21pZ3JhdGlvbnMgL21pZ3JhdGlvbnMKCiMgaW1wb3J0IGZyb20gYnVpbGRlcgpDT1BZIC0tZnJvbT1idWlsZGVyIC91c3Ivc2hhcmUvem9uZWluZm8gL3Vzci9zaGFyZS96b25laW5mbwpDT1BZIC0tZnJvbT1idWlsZGVyIC9ldGMvcGFzc3dkIC9ldGMvcGFzc3dkCkNPUFkgLS1mcm9tPWJ1aWxkZXIgL2V0Yy9zc2wvY2VydHMvY2EtY2VydGlmaWNhdGVzLmNydCAvZXRjL3NzbC9jZXJ0cy8KCiMgYmV0dGVyIG5vdCBydW4gYXMgcm9vdApVU0VSIHNlcnZpY2V1c2VyCgpFTlRSWVBPSU5UIFsiL3t7IC5TZXJ2aWNlLk5hbWUgfX0iXQoK\"") packr.PackJSONBytes("./templates", "amqp_subscriber_handler.tpl", "\"cGFja2FnZSBzdWJzY3JpYmVyCgppbXBvcnQgKAoJImNvbnRleHQiCgkiZ2l0aHViLmNvbS9nby1nb2Rpbi9sb2ciCgkiZ2l0aHViLmNvbS9nby1nb2Rpbi9yYWJiaXRtcSIKCWdycGNfbWV0YWRhdGEgImdpdGh1Yi5jb20vZ28tZ29kaW4vZ3JwYy1tZXRhZGF0YSIKCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCikKCnt7LSAkc2VydmljZU5hbWUgOj0gdGl0bGUgLlNlcnZpY2UuTmFtZSAtfX0KCnt7LyoKTG9vcCBvdmVyIGFsbCBzdWJzY3JpYmVycy4gVGhlIHNsaWNlIGlzIGZha2VkLCB0aG8uIFRoZSBnZW5lcmF0b3Igd2lsbCByZXBsYWNlIHRoZSBzbGljZSB3aXRoIHRoZSBjdXJyZW50CnN1YnNjcmliZXIgb25seSwgc28gd2UgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBlbGVtZW50IGluIHRoZSBzbGljZS4KKi99fQp7eyByYW5nZSAuU2VydmljZS5TdWJzY3JpYmVyIH19Ci8vIHt7IC5IYW5kbGVyIH19IGlzIHJlc3BvbnNpYmxlIG9mIGhhbmRsaW5nIGFsbCBpbmNvbWluZyBBTVFQIG1lc3NhZ2VzIHdpdGggcm91dGluZyBrZXkgJ3t7IC5TdWJzY3JpcHRpb24uVG9waWMgfX0nCmZ1bmMge3sgLkhhbmRsZXIgfX0obG9nZ2VyIGxvZy5Mb2dnZXIsIHVzZWNhc2Ugc2VydmljZS57eyB0aXRsZSAkc2VydmljZU5hbWUgfX0pIHJhYmJpdG1xLlN1YnNjcmlwdGlvbkhhbmRsZXIgewoJcmV0dXJuIGZ1bmMoY3R4IGNvbnRleHQuQ29udGV4dCwgZGVsaXZlcnkgKnJhYmJpdG1xLkRlbGl2ZXJ5KSB7CgkJLy8gdGhlIHJlcXVlc3RJZCBpcyBpbmplY3RlZCBpbnRvIHRoZSBjb250ZXh0IGFuZCBzaG91bGQgYmUgYXR0YWNoZWQgb24gZXZlcnkgbG9nCgkJbG9nZ2VyID0gbG9nZ2VyLldpdGgoY3R4LlZhbHVlKHN0cmluZyhncnBjX21ldGFkYXRhLlJlcXVlc3RJRCkpLCBjdHguVmFsdWUoc3RyaW5nKGdycGNfbWV0YWRhdGEuUmVxdWVzdElEKSkpCgoJCS8vIFRPRE86IEhhbmRsZSB7eyAuU3Vic2NyaXB0aW9uLlRvcGljIH19IHN1YnNjcmlwdGlvbgoJCS8qCgkJCUlmIHlvdSB3YW50IHRvIE5BQ0sgdGhlIGRlbGl2ZXJ5LCB1c2UgYGRlbGl2ZXJ5Lk5hY2tEZWxpdmVyeSgpYCBpbnN0ZWFkIG9mIE5hY2soKS4KCQkJVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBwcm9tZXRoZXVzIGFtcXBfbmFja19jb3VudGVyIGlzIGluY3JlYXNlZC4KCgkJCUdvZGlucyBkZWxpdmVyeSB3cmFwcGVyIGFsc28gcHJvdmlkZXMgYSBgZGVsaXZlcnkuSW5jcmVtZW50VHJhbnNwb3J0RXJyb3JDb3VudGVyKClgIG1ldGhvZCB0byBncmFudAoJCQl5b3UgYWNjZXNzIHRvIHRoZSBhbXFwX3RyYW5zcG9ydF9lcnJvciBtZXRyaWMuIENhbGwgaXQgaWYgdGhlIG1lc3NhZ2UgaXMgaW5jb21wbGV0ZSBvciBjYW5ub3QKCQkJYmUgdW5tYXJzaGFsbGVkIGZvciBhbnkgcmVhc29uLgoJCSovCgoJCV8gPSBkZWxpdmVyeS5BY2soZmFsc2UpCiAgICB9Cn0Ke3sgZW5kIH19Cgp7ey8qCgpmdW5jIFVzZXJDcmVhdGVkSGFuZGxlcihsb2dnZXIgbG9nLkxvZ2dlciwgdXNlY2FzZSBzZXJ2aWNlLkhlbGxvKSByYWJiaXRtcS5TdWJzY3JpcHRpb25IYW5kbGVyIHsKCXJldHVybiBmdW5jKGN0eCBjb250ZXh0LkNvbnRleHQsIGRlbGl2ZXJ5ICpyYWJiaXRtcS5EZWxpdmVyeSkgewoJCWxvZ2dlciA9IGxvZ2dlci5XaXRoKCJyZXF1ZXN0SWQiLCBjdHguVmFsdWUoInJlcXVlc3RJZCIpKQoJCWxvZ2dlci5JbmZvKCJjYWxsaW5nIHVzZWNhc2UuSGVsbG8iKQoKCQkvLyBUT0RPOiB1bm1hcnNoYWwKCQkvLyBkZWxpdmVyeS5JbmNyZW1lbnRUcmFuc3BvcnRFcnJvckNvdW50ZXIoInVzZXIuY3JlYXRlZCIpCgoJCWdyZWV0aW5nLCBlcnIgOj0gdXNlY2FzZS5IZWxsbyhjdHgsICJkZXJwIikKCQlpZiBlcnIgIT0gbmlsIHsKCQkgICAgbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gY2FsbCB1c2VjYXNlLkhlbGxvKCkiLCAiZXJyIiwgZXJyKQoJCQlkZWxpdmVyeS5OYWNrRGVsaXZlcnkoZmFsc2UsIGZhbHNlLCAidXNlci5jcmVhdGVkIikKCQkgICAgcmV0dXJuCgkJfQoKCQlsb2dnZXIuSW5mbyhncmVldGluZykKCQlkZWxpdmVyeS5BY2soZmFsc2UpCgl9Cn0KKi99fQo=\"") packr.PackJSONBytes("./templates", "amqp_subscriber_init.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4ge3sgLkdvZGluLlZlcnNpb24gfX07IERPIE5PVCBFRElULgpwYWNrYWdlIGFtcXAKCmltcG9ydCAoCgkiZ2l0aHViLmNvbS9wa2cvZXJyb3JzIgoJImdpdGh1Yi5jb20vc3RyZWFkd2F5L2FtcXAiCgoJImdpdGh1Yi5jb20vZ28tZ29kaW4vbG9nIgoJbWlkZGxld2FyZSAiZ2l0aHViLmNvbS9nby1nb2Rpbi9taWRkbGV3YXJlL2FtcXAiCgkiZ2l0aHViLmNvbS9nby1nb2Rpbi9yYWJiaXRtcSIKCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2Uvc3Vic2NyaWJlciIKKQoKdHlwZSBTdWJzY3JpYmVyU2V0IHN0cnVjdCB7CiAgICB7ey0gcmFuZ2UgLlNlcnZpY2UuU3Vic2NyaWJlciB9fQogICAge3sgdW50aXRsZSAuSGFuZGxlciB9fSByYWJiaXRtcS5TdWJzY3JpYmVyCgl7ey0gZW5kIH19Cn0KCi8vIFN1YnNjcmlwdGlvbnMgd2lsbCBpbml0aWFsaXplIGFsbCBBTVFQIHN1YnNjcmlwdGlvbnMKZnVuYyBTdWJzY3JpcHRpb25zKGNoYW5uZWwgKmFtcXAuQ2hhbm5lbCkgU3Vic2NyaWJlclNldCB7CglyZXR1cm4gU3Vic2NyaWJlclNldHsKICAgIHt7LSByYW5nZSAuU2VydmljZS5TdWJzY3JpYmVyIH19CiAgICAgICAge3sgdW50aXRsZSAuSGFuZGxlciB9fTogcmFiYml0bXEuTmV3U3Vic2NyaWJlcihjaGFubmVsLCAmcmFiYml0bXEuU3Vic2NyaXB0aW9uewogICAgICAgICAgICBFeGNoYW5nZTogInt7IC5TdWJzY3JpcHRpb24uRXhjaGFuZ2UgfX0iLAoJCSAgICBUb3BpYzogInt7IC5TdWJzY3JpcHRpb24uVG9waWMgfX0iLAogICAgICAgICAgICBBdXRvQWNrOiAge3sgLlN1YnNjcmlwdGlvbi5BdXRvQWNrIH19LAogICAgICAgICAgICBRdWV1ZTogcmFiYml0bXEuU3Vic2NyaXB0aW9uUXVldWV7CiAgICAgICAgICAgICAgICBBdXRvRGVsZXRlOiB7eyAuU3Vic2NyaXB0aW9uLlF1ZXVlLkF1dG9EZWxldGUgfX0sCiAgICAgICAgICAgICAgICBEdXJhYmxlOiAgICB7eyAuU3Vic2NyaXB0aW9uLlF1ZXVlLkR1cmFibGUgfX0sCiAgICAgICAgICAgICAgICBFeGNsdXNpdmU6ICB7eyAuU3Vic2NyaXB0aW9uLlF1ZXVlLkV4Y2x1c2l2ZSB9fSwKICAgICAgICAgICAgICAgIE5hbWU6ICAgICAgICJ7eyAuU3Vic2NyaXB0aW9uLlF1ZXVlLk5hbWUgfX0iLAogICAgICAgICAgICAgICAgTm9XYWl0OiAgICAge3sgLlN1YnNjcmlwdGlvbi5RdWV1ZS5Ob1dhaXQgfX0sCiAgICAgICAgICAgIH0sCgkJfSksCgl7eyBlbmQgfX0KCX0KfQoKe3stICRzZXJ2aWNlTmFtZSA6PSB0aXRsZSAuU2VydmljZS5OYW1lIC19fQoKe3stIHJhbmdlIC5TZXJ2aWNlLlN1YnNjcmliZXIgfX0KLy8ge3sgLkhhbmRsZXIgfX0gc2V0cyB1cCB0aGUgc3Vic2NyaXB0aW9uIHRvIHRoZSAne3sgLlN1YnNjcmlwdGlvbi5Ub3BpYyB9fScgdG9waWMuIEFsbCBtaWRkbGV3YXJlIGlzIGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXJlZAovLyBhbmQgY2FsbGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IFJlcXVlc3RJRCA9PiBQcm9tZXRoZXVzSW5zdHJ1bWVudGF0aW9uID0+IExvZ2dpbmcgPT4gc3Vic2NyaWJlci57eyAuSGFuZGxlciB9fQovLyBUaGUgUmVxdWVzdElEIG1pZGRsd2FyZSB3aWxsIGV4dHJhY3QgdGhlIHJlcXVlc3RJZCBmcm9tIHRoZSBkZWxpdmVyeSBoZWFkZXIgb3IgZ2VuZXJhdGUgYSBuZXcgb25lLiBUaGUgcmVxdWVzdElkIGlzCi8vIHRoZW4gbWFkIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBjb250ZXh0LgpmdW5jIChzcyBTdWJzY3JpYmVyU2V0KSB7eyAuSGFuZGxlciB9fShsb2dnZXIgbG9nLkxvZ2dlciwgdXNlY2FzZSBzZXJ2aWNlLnt7ICRzZXJ2aWNlTmFtZSB9fSkgZXJyb3IgewoJaGFuZGxlciA6PSBzdWJzY3JpYmVyLnt7IC5IYW5kbGVyIH19KGxvZ2dlciwgdXNlY2FzZSkKCWhhbmRsZXIgPSBtaWRkbGV3YXJlLkxvZ2dpbmcobG9nZ2VyLCAie3sgLlN1YnNjcmlwdGlvbi5Ub3BpYyB9fSIsIGhhbmRsZXIpCgloYW5kbGVyID0gbWlkZGxld2FyZS5Qcm9tZXRoZXVzSW5zdHJ1bWVudGF0aW9uKCJ7eyAuU3Vic2NyaXB0aW9uLlRvcGljIH19IiwgaGFuZGxlcikKCWhhbmRsZXIgPSBtaWRkbGV3YXJlLlJlcXVlc3RJRChoYW5kbGVyKQoKCWlmIGVyciA6PSBzcy57eyB1bnRpdGxlIC5IYW5kbGVyIH19LlN1YnNjcmliZShoYW5kbGVyKTsgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gc3Vic2NyaWJlIHRvIHt7IC5TdWJzY3JpcHRpb24uVG9waWMgfX0iLCAiZXJyIiwgZXJyLCAidHJhbnNwb3J0IiwgIkFNUVAiKQoJCXJldHVybiBlcnJvcnMuV3JhcChlcnIsICJmYWlsZWQgdG8gc3Vic2NyaWJlIHRvIHt7IC5TdWJzY3JpcHRpb24uVG9waWMgfX0iKQoJfQoJbG9nZ2VyLkluZm8oCgkJInN1YnNjcmliZWQgdG8gdG9waWMgJ3t7IC5TdWJzY3JpcHRpb24uVG9waWMgfX0nIiwKCQkidG9waWMiLCBzcy57eyB1bnRpdGxlIC5IYW5kbGVyIH19LlN1YnNjcmlwdGlvbi5Ub3BpYywKCQkicXVldWUiLCBzcy57eyB1bnRpdGxlIC5IYW5kbGVyIH19LlN1YnNjcmlwdGlvbi5RdWV1ZS5OYW1lLAoJCSJleGNoYW5nZSIsIHNzLnt7IHVudGl0bGUgLkhhbmRsZXIgfX0uU3Vic2NyaXB0aW9uLkV4Y2hhbmdlLAoJCSJ0cmFuc3BvcnQiLCAiQU1RUCIsCgkpCgoJcmV0dXJuIG5pbAp9Cnt7IGVuZCB9fQoKLy8gU2h1dGRvd24gd2lsbCBjYWxsIFNodXRkb3duKCkgb24gYWxsIHJlZ2lzdGVyZWQgc3Vic2NyaXB0aW9ucwpmdW5jIChzcyBTdWJzY3JpYmVyU2V0KSBTaHV0ZG93bigpIChlcnIgZXJyb3IpIHsKCXt7LSByYW5nZSAuU2VydmljZS5TdWJzY3JpYmVyIH19CgllcnIgPSBzcy57eyB1bnRpdGxlIC5IYW5kbGVyIH19LlNodXRkb3duKCkKCXt7LSBlbmQgfX0KCglyZXR1cm4gZXJyCn0K\"") - packr.PackJSONBytes("./templates", "cmd_main.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4gdnt7IC5Hb2Rpbi5WZXJzaW9uIH19OyBETyBOT1QgRURJVC4KcGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImZtdCIKICAgICJuZXQiCiAgICAibmV0L2h0dHAiCiAgICAib3MiCiAgICAib3Mvc2lnbmFsIgogICAgInN5c2NhbGwiCgoJImdpdGh1Yi5jb20vb2tsb2cvb2tsb2cvcGtnL2dyb3VwIgoJImdpdGh1Yi5jb20vcHJvbWV0aGV1cy9jbGllbnRfZ29sYW5nL3Byb21ldGhldXMvcHJvbWh0dHAiCglnb29nbGVHcnBjICJnb29nbGUuZ29sYW5nLm9yZy9ncnBjIgoJZ3JwY1Byb21ldGhldXMgImdpdGh1Yi5jb20vZ3JwYy1lY29zeXN0ZW0vZ28tZ3JwYy1wcm9tZXRoZXVzIgoJImdpdGh1Yi5jb20vZ28tZ29kaW4vcmFiYml0bXEiCgogICAgcGIgInt7IC5Qcm90b2J1Zi5QYWNrYWdlIH19IgoJInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9hbXFwIgogICAgc3ZjR3JwYyAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL2dycGMiCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UvdXNlY2FzZSIKICAgICJ7eyAuU2VydmljZS5Nb2R1bGUgfX0vaW50ZXJuYWwvc2VydmljZS9taWRkbGV3YXJlIgogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlL2VuZHBvaW50IgoKCSJnaXRodWIuY29tL2dvLWdvZGluL2xvZyIKKQoKdmFyIERlYnVnQWRkciA9IGdldEVudigiREVCVUdfQUREUkVTUyIsICIwLjAuMC4wOjMwMDAiKQp2YXIgR3JwY0FkZHIgPSBnZXRFbnYoIkdSUENfQUREUkVTUyIsICIwLjAuMC4wOjUwMDUxIikKCi8vIGdyb3VwIHRvIG1hbmFnZSB0aGUgbGlmZWN5Y2xlIGZvciBnb3JvdXRpbmVzCnZhciBnIGdyb3VwLkdyb3VwCgpmdW5jIG1haW4oKSB7CiAgICBsb2dnZXIgOj0gbG9nLk5ld0xvZ2dlckZyb21FbnYoKQoKCS8vIGluaXRpYWxpemUgc2VydmljZSBpbmNsdWRpbmcgbWlkZGxld2FyZQoJdmFyIHN2YyBzZXJ2aWNlLnt7IHRpdGxlIC5TZXJ2aWNlLk5hbWUgfX0KCXN2YyA9IHVzZWNhc2UuTmV3U2VydmljZUltcGxlbWVudGF0aW9uKGxvZ2dlcikKCXt7LSBpZiAuU2VydmljZS5Mb2dnaW5nTWlkZGxld2FyZSB9fQoJc3ZjID0gbWlkZGxld2FyZS5Mb2dnaW5nTWlkZGxld2FyZShsb2dnZXIpKHN2YykKCXt7LSBlbmQgfX0KCgkvLyBpbml0aWFsaXplIGVuZHBvaW50IGFuZCB0cmFuc3BvcnQgbGF5ZXJzCgl2YXIgKAoJCWVuZHBvaW50cyAgID0gZW5kcG9pbnQuRW5kcG9pbnRzKHN2YywgbG9nZ2VyKQoJCWdycGNIYW5kbGVyID0gc3ZjR3JwYy5OZXdTZXJ2ZXIoZW5kcG9pbnRzLCBsb2dnZXIpCgkJe3stIGlmIC5TZXJ2aWNlLlRyYW5zcG9ydC5BTVFQIH19CgkJcmFiYml0bXFDb25uID0gaW5pdFJhYmJpdE1RKGxvZ2dlcikKCQl7ey0gZW5kIH19CgkpCgoJe3stIGlmIC5TZXJ2aWNlLlRyYW5zcG9ydC5BTVFQIH19CgkvLyBzZXR1cCBBTVFQIHN1YnNjcmlwdGlvbnMKCXN1YnNjcmlwdGlvbnMgOj0gYW1xcC5TdWJzY3JpcHRpb25zKHJhYmJpdG1xQ29ubi5DaGFubmVsKQoJe3stIHJhbmdlIC5TZXJ2aWNlLlN1YnNjcmliZXIgfX0KCWlmIGVyciA6PSBzdWJzY3JpcHRpb25zLnt7IC5IYW5kbGVyIH19KGxvZ2dlciwgc3ZjKTsgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbiIsICJlcnIiLCBlcnIpCgkJb3MuRXhpdCgtMSkKCX0KCXt7LSBlbmQgfX0KCXt7LSBlbmQgfX0KCgkvLyBzZXJ2ZSBnUlBDIHNlcnZlcgoJZ3JwY1NlcnZlciA6PSBnb29nbGVHcnBjLk5ld1NlcnZlcigKCSAgICBnb29nbGVHcnBjLlVuYXJ5SW50ZXJjZXB0b3IoZ3JwY1Byb21ldGhldXMuVW5hcnlTZXJ2ZXJJbnRlcmNlcHRvciksCgkpCglnLkFkZChpbml0R3JwYyhncnBjU2VydmVyLCBncnBjSGFuZGxlciwgbG9nZ2VyKSwgZnVuYyhlcnJvcikgewoJCWdycGNTZXJ2ZXIuR3JhY2VmdWxTdG9wKCkKCX0pCglncnBjUHJvbWV0aGV1cy5SZWdpc3RlcihncnBjU2VydmVyKQoKCS8vIHNlcnZlIGRlYnVnIGh0dHAgc2VydmVyIChwcm9tZXRoZXVzKQoJaHR0cC5EZWZhdWx0U2VydmVNdXguSGFuZGxlKCIvbWV0cmljcyIsIHByb21odHRwLkhhbmRsZXIoKSkKCWRlYnVnTGlzdGVuZXIgOj0gaW5pdERlYnVnSHR0cChsb2dnZXIpCglnLkFkZChmdW5jKCkgZXJyb3IgewoJCWxvZ2dlci5Mb2coInRyYW5zcG9ydCIsICJkZWJ1Zy9IVFRQIiwgImFkZHIiLCBEZWJ1Z0FkZHIpCgkJcmV0dXJuIGh0dHAuU2VydmUoZGVidWdMaXN0ZW5lciwgaHR0cC5EZWZhdWx0U2VydmVNdXgpCgl9LCBmdW5jKGVycm9yKSB7CgkJZGVidWdMaXN0ZW5lci5DbG9zZSgpCgl9KQoKCS8vIFdhaXQgZm9yIFNJR0lOVCBvciBTSUdURVJNIGFuZCBzdG9wIGdyYWNlZnVsbHkKCWNhbmNlbEludGVycnVwdCA6PSBtYWtlKGNoYW4gc3RydWN0e30pCglnLkFkZChzaHV0ZG93bkhhbmRsZXIoY2FuY2VsSW50ZXJydXB0KSwgZnVuYyhlIGVycm9yKSB7CgkJY2xvc2UoY2FuY2VsSW50ZXJydXB0KQoJfSkKCgkvLyBydW4KCWlmIGVyciA6PSBnLlJ1bigpOyBlcnIgIT0gbmlsIHsKCQlsb2dnZXIuTG9nKCJmYXRhbCIsIGVycikKCQlvcy5FeGl0KDEpCgl9Cn0KCi8vIGdldEVudiBnZXQga2V5IGVudmlyb25tZW50IHZhcmlhYmxlIGlmIGV4aXN0IG90aGVyd2lzZSByZXR1cm4gZGVmYWx1dFZhbHVlCmZ1bmMgZ2V0RW52KGtleSwgZGVmYXVsdFZhbHVlIHN0cmluZykgc3RyaW5nIHsKCXZhbHVlIDo9IG9zLkdldGVudihrZXkpCglpZiBsZW4odmFsdWUpID09IDAgewoJCXJldHVybiBkZWZhdWx0VmFsdWUKCX0KCXJldHVybiB2YWx1ZQp9CgovLyBzaHV0ZG93bkhhbmRsZXIgdG8gaGFuZGxlIGdyYWNlZnVsIHNodXRkb3ducwpmdW5jIHNodXRkb3duSGFuZGxlcihpbnRlcnJ1cHRDaGFubmVsIGNoYW4gc3RydWN0e30pIGZ1bmMoKSBlcnJvciB7CglyZXR1cm4gZnVuYygpIGVycm9yIHsKCQljIDo9IG1ha2UoY2hhbiBvcy5TaWduYWwsIDEpCgkJc2lnbmFsLk5vdGlmeShjLCBzeXNjYWxsLlNJR0lOVCwgc3lzY2FsbC5TSUdURVJNKQoJCXNlbGVjdCB7CgkJY2FzZSBzaWcgOj0gPC1jOgoJCQlyZXR1cm4gZm10LkVycm9yZigicmVjZWl2ZWQgc2lnbmFsICVzIiwgc2lnKQoJCWNhc2UgPC1pbnRlcnJ1cHRDaGFubmVsOgoJCQlyZXR1cm4gbmlsCgkJfQoJfQp9CgovLyBpbml0R3JwYyBzZXJ2ZSB1cCBHUlBDCmZ1bmMgaW5pdEdycGMoZ3JwY1NlcnZlciAqZ29vZ2xlR3JwYy5TZXJ2ZXIsIGhhbmRsZXIgcGIue3sgLlByb3RvYnVmLlNlcnZpY2UgfX1TZXJ2ZXIsIGxvZ2dlciBsb2cuTG9nZ2VyKSBmdW5jKCkgZXJyb3IgewoJZ3JwY0xpc3RlbmVyLCBlcnIgOj0gbmV0Lkxpc3RlbigidGNwIiwgR3JwY0FkZHIpCglpZiBlcnIgIT0gbmlsIHsKCQlsb2dnZXIuTG9nKCJ0cmFuc3BvcnQiLCAiZ1JQQyIsICJkdXJpbmciLCAiTGlzdGVuIiwgImVyciIsIGVycikKCQlvcy5FeGl0KDEpCgl9CgoJcmV0dXJuIGZ1bmMoKSBlcnJvciB7CgkJbG9nZ2VyLkxvZygidHJhbnNwb3J0IiwgImdSUEMiLCAiYWRkciIsIEdycGNBZGRyKQoJCXBiLlJlZ2lzdGVye3sgLlByb3RvYnVmLlNlcnZpY2UgfX1TZXJ2ZXIoZ3JwY1NlcnZlciwgaGFuZGxlcikKCQlyZXR1cm4gZ3JwY1NlcnZlci5TZXJ2ZShncnBjTGlzdGVuZXIpCgl9Cn0KCnt7IGlmIC5TZXJ2aWNlLlRyYW5zcG9ydC5BTVFQIH19Ci8vIGluaXRSYWJiaXRNUSB3aWxsIGluaXRpYWxpemUgdGhlIGFtcXAgY29ubmVjdGlvbiBhbmQgY3JlYXRlIGEgbmV3IGNoYW5uZWwKZnVuYyBpbml0UmFiYml0TVEobG9nZ2VyIGxvZy5Mb2dnZXIpICpyYWJiaXRtcS5SYWJiaXRNUSB7CglyYWJiaXRtcUNvbm4sIGVyciA6PSByYWJiaXRtcS5OZXdSYWJiaXRNUUZyb21FbnYoKQoJaWYgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBSYWJiaXRNUSBjb25uZWN0aW9uIiwgImVyciIsIGVycikKCQlvcy5FeGl0KC0xKQoJfQoJaWYgZXJyIDo9IHJhYmJpdG1xQ29ubi5Db25uZWN0KCk7IGVyciAhPSBuaWwgewoJCWxvZ2dlci5FcnJvcigiZmFpbGVkIHRvIGNvbm5lY3QgdG8gUmFiYml0TVEiLCAiZXJyIiwgZXJyKQoJCW9zLkV4aXQoLTEpCgl9CglpZiBlcnIgOj0gcmFiYml0bXFDb25uLk5ld0NoYW5uZWwoKTsgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gY3JlYXRlIEFNUVAgY2hhbm5lbCIsICJlcnIiLCBlcnIpCgkJb3MuRXhpdCgtMSkKCX0KCglyZXR1cm4gcmFiYml0bXFDb25uCn0Ke3sgZW5kIH19CgpmdW5jIGluaXREZWJ1Z0h0dHAobG9nZ2VyIGxvZy5Mb2dnZXIpIG5ldC5MaXN0ZW5lciB7CglkZWJ1Z0xpc3RlbmVyLCBlcnIgOj0gbmV0Lkxpc3RlbigidGNwIiwgRGVidWdBZGRyKQoJaWYgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkxvZygidHJhbnNwb3J0IiwgImRlYnVnL0hUVFAiLCAiZHVyaW5nIiwgIkxpc3RlbiIsICJlcnIiLCBlcnIpCgkJb3MuRXhpdCgxKQoJfQoJcmV0dXJuIGRlYnVnTGlzdGVuZXIKfQoK\"") + packr.PackJSONBytes("./templates", "cmd_main.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4gdnt7IC5Hb2Rpbi5WZXJzaW9uIH19OyBETyBOT1QgRURJVC4KcGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImZtdCIKICAgICJuZXQiCiAgICAibmV0L2h0dHAiCiAgICAib3MiCiAgICAib3Mvc2lnbmFsIgogICAgInN5c2NhbGwiCgoJImdpdGh1Yi5jb20vb2tsb2cvb2tsb2cvcGtnL2dyb3VwIgoJImdpdGh1Yi5jb20vcHJvbWV0aGV1cy9jbGllbnRfZ29sYW5nL3Byb21ldGhldXMvcHJvbWh0dHAiCglnb29nbGVHcnBjICJnb29nbGUuZ29sYW5nLm9yZy9ncnBjIgoJImdpdGh1Yi5jb20vZ28tZ29kaW4vZ3JwYy1pbnRlcmNlcHRvciIKCSJnaXRodWIuY29tL2dvLWdvZGluL3JhYmJpdG1xIgoKICAgIHBiICJ7eyAuUHJvdG9idWYuUGFja2FnZSB9fSIKCSJ7eyAuU2VydmljZS5Nb2R1bGUgfX0vaW50ZXJuYWwvYW1xcCIKICAgIHN2Y0dycGMgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9ncnBjIgogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlIgogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlL3VzZWNhc2UiCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UvbWlkZGxld2FyZSIKICAgICJ7eyAuU2VydmljZS5Nb2R1bGUgfX0vaW50ZXJuYWwvc2VydmljZS9lbmRwb2ludCIKCgkiZ2l0aHViLmNvbS9nby1nb2Rpbi9sb2ciCikKCnZhciBEZWJ1Z0FkZHIgPSBnZXRFbnYoIkRFQlVHX0FERFJFU1MiLCAiMC4wLjAuMDozMDAwIikKdmFyIEdycGNBZGRyID0gZ2V0RW52KCJHUlBDX0FERFJFU1MiLCAiMC4wLjAuMDo1MDA1MSIpCgovLyBncm91cCB0byBtYW5hZ2UgdGhlIGxpZmVjeWNsZSBmb3IgZ29yb3V0aW5lcwp2YXIgZyBncm91cC5Hcm91cAoKZnVuYyBtYWluKCkgewogICAgbG9nZ2VyIDo9IGxvZy5OZXdMb2dnZXJGcm9tRW52KCkKCgkvLyBpbml0aWFsaXplIHNlcnZpY2UgaW5jbHVkaW5nIG1pZGRsZXdhcmUKCXZhciBzdmMgc2VydmljZS57eyB0aXRsZSAuU2VydmljZS5OYW1lIH19CglzdmMgPSB1c2VjYXNlLk5ld1NlcnZpY2VJbXBsZW1lbnRhdGlvbihsb2dnZXIpCgl7ey0gaWYgLlNlcnZpY2UuTG9nZ2luZ01pZGRsZXdhcmUgfX0KCXN2YyA9IG1pZGRsZXdhcmUuTG9nZ2luZ01pZGRsZXdhcmUobG9nZ2VyKShzdmMpCgl7ey0gZW5kIH19CgoJLy8gaW5pdGlhbGl6ZSBlbmRwb2ludCBhbmQgdHJhbnNwb3J0IGxheWVycwoJdmFyICgKCQllbmRwb2ludHMgICA9IGVuZHBvaW50LkVuZHBvaW50cyhzdmMsIGxvZ2dlcikKCQlncnBjSGFuZGxlciA9IHN2Y0dycGMuTmV3U2VydmVyKGVuZHBvaW50cywgbG9nZ2VyKQoJCXt7LSBpZiAuU2VydmljZS5UcmFuc3BvcnQuQU1RUCB9fQoJCXJhYmJpdG1xQ29ubiA9IGluaXRSYWJiaXRNUShsb2dnZXIpCgkJe3stIGVuZCB9fQoJKQoKCXt7LSBpZiAuU2VydmljZS5UcmFuc3BvcnQuQU1RUCB9fQoJLy8gc2V0dXAgQU1RUCBzdWJzY3JpcHRpb25zCglzdWJzY3JpcHRpb25zIDo9IGFtcXAuU3Vic2NyaXB0aW9ucyhyYWJiaXRtcUNvbm4uQ2hhbm5lbCkKCXt7LSByYW5nZSAuU2VydmljZS5TdWJzY3JpYmVyIH19CglpZiBlcnIgOj0gc3Vic2NyaXB0aW9ucy57eyAuSGFuZGxlciB9fShsb2dnZXIsIHN2Yyk7IGVyciAhPSBuaWwgewoJCWxvZ2dlci5FcnJvcigiZmFpbGVkIHRvIGNyZWF0ZSBzdWJzY3JpcHRpb24iLCAiZXJyIiwgZXJyKQoJCW9zLkV4aXQoLTEpCgl9Cgl7ey0gZW5kIH19Cgl7ey0gZW5kIH19CgoJLy8gc2VydmUgZ1JQQyBzZXJ2ZXIKCWdycGNTZXJ2ZXIgOj0gZ29vZ2xlR3JwYy5OZXdTZXJ2ZXIoCgkgICAgZ29vZ2xlR3JwYy5VbmFyeUludGVyY2VwdG9yKGdycGNfaW50ZXJjZXB0b3IuVW5hcnlJbnRlcmNlcHRvciksCgkpCglnLkFkZChpbml0R3JwYyhncnBjU2VydmVyLCBncnBjSGFuZGxlciwgbG9nZ2VyKSwgZnVuYyhlcnJvcikgewoJCWdycGNTZXJ2ZXIuR3JhY2VmdWxTdG9wKCkKCX0pCgoJLy8gc2VydmUgZGVidWcgaHR0cCBzZXJ2ZXIgKHByb21ldGhldXMpCglodHRwLkRlZmF1bHRTZXJ2ZU11eC5IYW5kbGUoIi9tZXRyaWNzIiwgcHJvbWh0dHAuSGFuZGxlcigpKQoJZGVidWdMaXN0ZW5lciA6PSBpbml0RGVidWdIdHRwKGxvZ2dlcikKCWcuQWRkKGZ1bmMoKSBlcnJvciB7CgkJbG9nZ2VyLkxvZygidHJhbnNwb3J0IiwgImRlYnVnL0hUVFAiLCAiYWRkciIsIERlYnVnQWRkcikKCQlyZXR1cm4gaHR0cC5TZXJ2ZShkZWJ1Z0xpc3RlbmVyLCBodHRwLkRlZmF1bHRTZXJ2ZU11eCkKCX0sIGZ1bmMoZXJyb3IpIHsKCQlkZWJ1Z0xpc3RlbmVyLkNsb3NlKCkKCX0pCgoJLy8gV2FpdCBmb3IgU0lHSU5UIG9yIFNJR1RFUk0gYW5kIHN0b3AgZ3JhY2VmdWxseQoJY2FuY2VsSW50ZXJydXB0IDo9IG1ha2UoY2hhbiBzdHJ1Y3R7fSkKCWcuQWRkKHNodXRkb3duSGFuZGxlcihjYW5jZWxJbnRlcnJ1cHQpLCBmdW5jKGUgZXJyb3IpIHsKCQljbG9zZShjYW5jZWxJbnRlcnJ1cHQpCgl9KQoKCS8vIHJ1bgoJaWYgZXJyIDo9IGcuUnVuKCk7IGVyciAhPSBuaWwgewoJCWxvZ2dlci5Mb2coImZhdGFsIiwgZXJyKQoJCW9zLkV4aXQoMSkKCX0KfQoKLy8gZ2V0RW52IGdldCBrZXkgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgZXhpc3Qgb3RoZXJ3aXNlIHJldHVybiBkZWZhbHV0VmFsdWUKZnVuYyBnZXRFbnYoa2V5LCBkZWZhdWx0VmFsdWUgc3RyaW5nKSBzdHJpbmcgewoJdmFsdWUgOj0gb3MuR2V0ZW52KGtleSkKCWlmIGxlbih2YWx1ZSkgPT0gMCB7CgkJcmV0dXJuIGRlZmF1bHRWYWx1ZQoJfQoJcmV0dXJuIHZhbHVlCn0KCi8vIHNodXRkb3duSGFuZGxlciB0byBoYW5kbGUgZ3JhY2VmdWwgc2h1dGRvd25zCmZ1bmMgc2h1dGRvd25IYW5kbGVyKGludGVycnVwdENoYW5uZWwgY2hhbiBzdHJ1Y3R7fSkgZnVuYygpIGVycm9yIHsKCXJldHVybiBmdW5jKCkgZXJyb3IgewoJCWMgOj0gbWFrZShjaGFuIG9zLlNpZ25hbCwgMSkKCQlzaWduYWwuTm90aWZ5KGMsIHN5c2NhbGwuU0lHSU5ULCBzeXNjYWxsLlNJR1RFUk0pCgkJc2VsZWN0IHsKCQljYXNlIHNpZyA6PSA8LWM6CgkJCXJldHVybiBmbXQuRXJyb3JmKCJyZWNlaXZlZCBzaWduYWwgJXMiLCBzaWcpCgkJY2FzZSA8LWludGVycnVwdENoYW5uZWw6CgkJCXJldHVybiBuaWwKCQl9Cgl9Cn0KCi8vIGluaXRHcnBjIHNlcnZlIHVwIEdSUEMKZnVuYyBpbml0R3JwYyhncnBjU2VydmVyICpnb29nbGVHcnBjLlNlcnZlciwgaGFuZGxlciBwYi57eyAuUHJvdG9idWYuU2VydmljZSB9fVNlcnZlciwgbG9nZ2VyIGxvZy5Mb2dnZXIpIGZ1bmMoKSBlcnJvciB7CglncnBjTGlzdGVuZXIsIGVyciA6PSBuZXQuTGlzdGVuKCJ0Y3AiLCBHcnBjQWRkcikKCWlmIGVyciAhPSBuaWwgewoJCWxvZ2dlci5Mb2coInRyYW5zcG9ydCIsICJnUlBDIiwgImR1cmluZyIsICJMaXN0ZW4iLCAiZXJyIiwgZXJyKQoJCW9zLkV4aXQoMSkKCX0KCglyZXR1cm4gZnVuYygpIGVycm9yIHsKCQlsb2dnZXIuTG9nKCJ0cmFuc3BvcnQiLCAiZ1JQQyIsICJhZGRyIiwgR3JwY0FkZHIpCgkJcGIuUmVnaXN0ZXJ7eyAuUHJvdG9idWYuU2VydmljZSB9fVNlcnZlcihncnBjU2VydmVyLCBoYW5kbGVyKQoJCXJldHVybiBncnBjU2VydmVyLlNlcnZlKGdycGNMaXN0ZW5lcikKCX0KfQoKe3sgaWYgLlNlcnZpY2UuVHJhbnNwb3J0LkFNUVAgfX0KLy8gaW5pdFJhYmJpdE1RIHdpbGwgaW5pdGlhbGl6ZSB0aGUgYW1xcCBjb25uZWN0aW9uIGFuZCBjcmVhdGUgYSBuZXcgY2hhbm5lbApmdW5jIGluaXRSYWJiaXRNUShsb2dnZXIgbG9nLkxvZ2dlcikgKnJhYmJpdG1xLlJhYmJpdE1RIHsKCXJhYmJpdG1xQ29ubiwgZXJyIDo9IHJhYmJpdG1xLk5ld1JhYmJpdE1RRnJvbUVudigpCglpZiBlcnIgIT0gbmlsIHsKCQlsb2dnZXIuRXJyb3IoImZhaWxlZCB0byBpbml0aWFsaXplIFJhYmJpdE1RIGNvbm5lY3Rpb24iLCAiZXJyIiwgZXJyKQoJCW9zLkV4aXQoLTEpCgl9CglpZiBlcnIgOj0gcmFiYml0bXFDb25uLkNvbm5lY3QoKTsgZXJyICE9IG5pbCB7CgkJbG9nZ2VyLkVycm9yKCJmYWlsZWQgdG8gY29ubmVjdCB0byBSYWJiaXRNUSIsICJlcnIiLCBlcnIpCgkJb3MuRXhpdCgtMSkKCX0KCWlmIGVyciA6PSByYWJiaXRtcUNvbm4uTmV3Q2hhbm5lbCgpOyBlcnIgIT0gbmlsIHsKCQlsb2dnZXIuRXJyb3IoImZhaWxlZCB0byBjcmVhdGUgQU1RUCBjaGFubmVsIiwgImVyciIsIGVycikKCQlvcy5FeGl0KC0xKQoJfQoKCXJldHVybiByYWJiaXRtcUNvbm4KfQp7eyBlbmQgfX0KCmZ1bmMgaW5pdERlYnVnSHR0cChsb2dnZXIgbG9nLkxvZ2dlcikgbmV0Lkxpc3RlbmVyIHsKCWRlYnVnTGlzdGVuZXIsIGVyciA6PSBuZXQuTGlzdGVuKCJ0Y3AiLCBEZWJ1Z0FkZHIpCglpZiBlcnIgIT0gbmlsIHsKCQlsb2dnZXIuTG9nKCJ0cmFuc3BvcnQiLCAiZGVidWcvSFRUUCIsICJkdXJpbmciLCAiTGlzdGVuIiwgImVyciIsIGVycikKCQlvcy5FeGl0KDEpCgl9CglyZXR1cm4gZGVidWdMaXN0ZW5lcgp9Cgo=\"") packr.PackJSONBytes("./templates", "domain_errors.tpl", "\"cGFja2FnZSBkb21haW4KCmltcG9ydCAiZXJyb3JzIgoKLy8gRG9tYWluIGVycm9ycwovLyBUaGVzZSBjYW4gdGhlbiBiZSByZW1hcHBlZCB0byB0cmFuc3BvcnQtc3BlY2lmaWMgZXJyb3JzIGluIHRoZSB0cmFuc3BvcnQgbGF5ZXIgKGdSUEMsIEhUVFAsIEFNUVAgLi4uKQp2YXIgKAogICAgRXJyTm90SW1wbGVtZW50ZWQgPSBlcnJvcnMuTmV3KCJlbmRwb2ludCBub3QgaW1wbGVtZW50ZWQiKQopCg==\"") packr.PackJSONBytes("./templates", "endpoint_set.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4gdnt7IC5Hb2Rpbi5WZXJzaW9uIH19OyBETyBOT1QgRURJVC4KCnBhY2thZ2UgZW5kcG9pbnQKCmltcG9ydCAoCiAgICAiZ2l0aHViLmNvbS9nby1raXQva2l0L2VuZHBvaW50IgoKICAgICJnaXRodWIuY29tL2dvLWdvZGluL21pZGRsZXdhcmUiCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCgkiZ2l0aHViLmNvbS9nby1nb2Rpbi9sb2ciCikKCnR5cGUgU2V0IHN0cnVjdCB7CiAgICB7eyByYW5nZSAuU2VydmljZS5NZXRob2RzIH19CiAgICAgICAge3sgLk5hbWUgfX1FbmRwb2ludCBlbmRwb2ludC5FbmRwb2ludAogICAgIHt7LSBlbmQgfX0KfQoKZnVuYyBFbmRwb2ludHMoc2VydmljZSBzZXJ2aWNlLnt7IHRpdGxlIC5TZXJ2aWNlLk5hbWUgfX0sIGxvZ2dlciBsb2cuTG9nZ2VyKSBTZXQgewogICAge3sgcmFuZ2UgLlNlcnZpY2UuTWV0aG9kcyB9fQogICAgdmFyIHt7IHVudGl0bGUgLk5hbWUgfX0gZW5kcG9pbnQuRW5kcG9pbnQKICAgIHsKICAgICAgICB7eyB1bnRpdGxlIC5OYW1lIH19ID0ge3sgLk5hbWUgfX1FbmRwb2ludChzZXJ2aWNlKQogICAgICAgIHt7IHVudGl0bGUgLk5hbWUgfX0gPSBtaWRkbGV3YXJlLkluc3RydW1lbnRHUlBDKCJ7eyAuTmFtZSB9fSIpKHt7IHVudGl0bGUgLk5hbWUgfX0pCiAgICAgICAge3sgdW50aXRsZSAuTmFtZSB9fSA9IG1pZGRsZXdhcmUuTG9nZ2luZyhsb2dnZXIsICJ7eyAuTmFtZSB9fSIpKHt7IHVudGl0bGUgLk5hbWUgfX0pCiAgICAgICAge3sgdW50aXRsZSAuTmFtZSB9fSA9IG1pZGRsZXdhcmUuUmVxdWVzdElEKCkoe3sgdW50aXRsZSAuTmFtZSB9fSkKICAgIH0KICAgIHt7LSBlbmQgfX0KCiAgICByZXR1cm4gU2V0ewogICAgICAgIHt7LSByYW5nZSAuU2VydmljZS5NZXRob2RzIH19CiAgICAgICAgICAgIHt7IC5OYW1lIH19RW5kcG9pbnQ6IHt7IHVudGl0bGUgLk5hbWV9fSwKICAgICAgICB7ey0gZW5kIH19CiAgICB9Cn0KCg==\"") packr.PackJSONBytes("./templates", "endpoints.tpl", "\"cGFja2FnZSBlbmRwb2ludAoKaW1wb3J0ICgKICAgICJjb250ZXh0IgogICAgImdpdGh1Yi5jb20vZ28ta2l0L2tpdC9lbmRwb2ludCIKCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCikKCnt7LSByYW5nZSAuU2VydmljZS5NZXRob2RzIC19fQp7ey0gdGVtcGxhdGUgImVuZHBvaW50IiAuIC19fQp7ey0gZW5kIC19fQ==\"") @@ -19,7 +19,7 @@ func init() { packr.PackJSONBytes("./templates", "grpc_request_response.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4gdnt7IC5Hb2Rpbi5WZXJzaW9uIH19OyBETyBOT1QgRURJVC4KCnBhY2thZ2UgZ3JwYwoKaW1wb3J0ICgKICAgICJjb250ZXh0IgogICAgImVycm9ycyIKCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UvZW5kcG9pbnQiCiAgICBwYiAie3sgLlByb3RvYnVmLlBhY2thZ2UgfX0iCikKCnt7IHJhbmdlIC5TZXJ2aWNlLk1ldGhvZHMgfX0Ke3sgdGVtcGxhdGUgImdycGNfZW5jb2RlX3JlcXVlc3QiIC4gfX0Ke3sgdGVtcGxhdGUgImdycGNfZGVjb2RlX3Jlc3BvbnNlIiAuIH19Cnt7IHRlbXBsYXRlICJncnBjX2VuY29kZV9yZXNwb25zZSIgLiB9fQp7eyB0ZW1wbGF0ZSAiZ3JwY19kZWNvZGVfcmVxdWVzdCIgLiB9fQp7eyBlbmQgfX0=\"") packr.PackJSONBytes("./templates", "grpc_server.tpl", "\"Ly8gQ29kZSBnZW5lcmF0ZWQgYnkgR29kaW4gdnt7IC5Hb2Rpbi5WZXJzaW9uIH19OyBETyBOT1QgRURJVC4KCnBhY2thZ2UgZ3JwYwoKaW1wb3J0ICgKICAgICJjb250ZXh0IgoKCWtpdEdycGMgImdpdGh1Yi5jb20vZ28ta2l0L2tpdC90cmFuc3BvcnQvZ3JwYyIKCiAgICAiZ2l0aHViLmNvbS9nby1nb2Rpbi9sb2ciCiAgICAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UvZW5kcG9pbnQiCiAgICBwYiAie3sgLlByb3RvYnVmLlBhY2thZ2UgfX0iCikKCnR5cGUgZ3JwY1NlcnZlciBzdHJ1Y3Qgewp7eyByYW5nZSAuU2VydmljZS5NZXRob2RzIH19CiAgICB7ey0gLk5hbWUgfX1IYW5kbGVyIGtpdEdycGMuSGFuZGxlcgp7eyBlbmQgfX0KfQoKZnVuYyBOZXdTZXJ2ZXIoZW5kcG9pbnRzIGVuZHBvaW50LlNldCwgbG9nZ2VyIGxvZy5Mb2dnZXIpIHBiLnt7IC5Qcm90b2J1Zi5TZXJ2aWNlIH19U2VydmVyIHsKICAgIC8vIFRPRE86IGNvbmZpZ3VyYWJsZSBTZXJ2ZXJPcHRpb25zIHZpYSBnb2Rpbi5qc29uCglvcHRpb25zIDo9IFtda2l0R3JwYy5TZXJ2ZXJPcHRpb257fQoKICAgIHJldHVybiAmZ3JwY1NlcnZlcnsKICAgIHt7IHJhbmdlIC5TZXJ2aWNlLk1ldGhvZHMgfX0KICAgIHt7LSAuTmFtZSB9fUhhbmRsZXI6IGtpdEdycGMuTmV3U2VydmVyKAogICAgICAgIGVuZHBvaW50cy57eyAuTmFtZSB9fUVuZHBvaW50LAogICAgICAgIERlY29kZXt7IC5SZXF1ZXN0IH19LAogICAgICAgIEVuY29kZXt7IC5SZXNwb25zZSB9fSwKICAgICAgICBhcHBlbmQob3B0aW9ucykuLi4sCiAgICApLAogICAge3sgZW5kIH19CiAgICB9Cn0KCnt7IHJhbmdlIC5TZXJ2aWNlLk1ldGhvZHMgfX0KZnVuYyAocyAqZ3JwY1NlcnZlcikge3sgLk5hbWUgfX0oY3R4IGNvbnRleHQuQ29udGV4dCwgcmVxICpwYi57eyAuUHJvdG9idWZSZXF1ZXN0IH19KSAoKnBiLnt7IC5Qcm90b2J1ZlJlc3BvbnNlIH19LCBlcnJvcikgewogICAgXywgcmVzcCwgZXJyIDo9IHMue3sgLk5hbWUgfX1IYW5kbGVyLlNlcnZlR1JQQyhjdHgsIHJlcSkKICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgIHJldHVybiBuaWwsIEVuY29kZUVycm9yKGVycikKICAgIH0KICAgIHJldHVybiByZXNwLigqcGIue3sgLlByb3RvYnVmUmVzcG9uc2UgfX0pLCBuaWwKfQp7eyBlbmQgfX0=\"") packr.PackJSONBytes("./templates", "implementation.tpl", "\"cGFja2FnZSB1c2VjYXNlCgppbXBvcnQgKAogICAgImNvbnRleHQiCgogICAgImdpdGh1Yi5jb20vZ28tZ29kaW4vbG9nIgogICAgXyAie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UiCgkie3sgLlNlcnZpY2UuTW9kdWxlIH19L2ludGVybmFsL3NlcnZpY2UvZG9tYWluIgopCgp0eXBlIHNlcnZpY2VJbXBsZW1lbnRhdGlvbiBzdHJ1Y3QgewogICAgbG9nZ2VyIGxvZy5Mb2dnZXIKfQoKZnVuYyBOZXdTZXJ2aWNlSW1wbGVtZW50YXRpb24obG9nZ2VyIGxvZy5Mb2dnZXIpICpzZXJ2aWNlSW1wbGVtZW50YXRpb24gewogICAgcmV0dXJuICZzZXJ2aWNlSW1wbGVtZW50YXRpb257CiAgICAgICAgbG9nZ2VyOiBsb2dnZXIsCiAgICB9Cn0KCnt7LSByYW5nZSAuU2VydmljZS5NZXRob2RzIH19Cnt7LSB0ZW1wbGF0ZSAic2VydmljZV9tZXRob2QiIC4gfX0Ke3stIGVuZCB9fQoKCg==\"") - packr.PackJSONBytes("./templates", "k8s_deployment.tpl", "\"YXBpVmVyc2lvbjogYXBwcy92MQpraW5kOiBEZXBsb3ltZW50Cm1ldGFkYXRhOgogIGxhYmVsczoKICAgIGFwcDoge3sgLlNlcnZpY2UuTmFtZSB9fQogICAgcGxhdGZvcm06IGdvCiAgICBmcmFtZXdvcms6IGdva2l0CiAgICBnZW5lcmF0b3I6IGdvZGluCiAgICB2ZXJzaW9uOiB7eyAuU2VydmljZS5OYW1lc3BhY2UgfX0te3sgLlNlcnZpY2UuTmFtZSB9fS12ZXJzaW9uCiAgbmFtZToge3sgLlNlcnZpY2UuTmFtZSB9fQogIG5hbWVzcGFjZToge3sgLlNlcnZpY2UuTmFtZXNwYWNlIH19CnNwZWM6CiAgcHJvZ3Jlc3NEZWFkbGluZVNlY29uZHM6IDYwMAogIHJlcGxpY2FzOiAxCiAgcmV2aXNpb25IaXN0b3J5TGltaXQ6IDEwCiAgc2VsZWN0b3I6CiAgICBtYXRjaExhYmVsczoKICAgICAgYXBwOiB7eyAuU2VydmljZS5OYW1lIH19CiAgc3RyYXRlZ3k6CiAgICByb2xsaW5nVXBkYXRlOgogICAgICBtYXhTdXJnZTogMQogICAgICBtYXhVbmF2YWlsYWJsZTogMAogICAgdHlwZTogUm9sbGluZ1VwZGF0ZQogIHRlbXBsYXRlOgogICAgbWV0YWRhdGE6CiAgICAgIGFubm90YXRpb25zOgogICAgICAgIHByb21ldGhldXMuaW8uc2NyYXBlOiAidHJ1ZSIKICAgICAgICBwcm9tZXRoZXVzLmlvLnBvcnQ6ICIzMDAwIgogICAgICAgIHByb21ldGhldXMuaW8ucGF0aDogL21ldHJpY3MKICAgICAgbGFiZWxzOgogICAgICAgIGFwcDoge3sgLlNlcnZpY2UuTmFtZSB9fQogICAgICAgIHBsYXRmb3JtOiBnbwogICAgICAgIGZyYW1ld29yazogZ29raXQKICAgICAgICBnZW5lcmF0b3I6IGdvZGluCiAgICAgICAgdmVyc2lvbjoge3sgLlNlcnZpY2UuTmFtZXNwYWNlIH19LXt7IC5TZXJ2aWNlLk5hbWUgfX0tdmVyc2lvbgogICAgc3BlYzoKICAgICAgY29udGFpbmVyczoKICAgICAgICAtIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBUWgogICAgICAgICAgICAgIHZhbHVlOiBFdXJvcGUvWnVyaWNoCiAgICAgICAgICAgIC0gbmFtZTogR1JQQ19BRERSRVNTCiAgICAgICAgICAgICAgdmFsdWU6ICIwLjAuMC4wOjUwMDUxIgogICAgICAgICAgICAtIG5hbWU6IERFQlVHX0FERFJFU1MKICAgICAgICAgICAgICB2YWx1ZTogIjAuMC4wLjA6MzAwMCIKICAgICAgICAgICAgLSBuYW1lOiBMT0dfTEVWRUwKICAgICAgICAgICAgICB2YWx1ZTogImluZm8iCiAgICAgICAgICAgIHt7LSBpZiAuU2VydmljZS5UcmFuc3BvcnQuQU1RUCB9fQogICAgICAgICAgICAtIG5hbWU6IEFNUVBfQUREUkVTUwogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAga2V5OiBNRVNTQUdFX0JST0tFUl9VUkwKICAgICAgICAgICAgICAgICAgbmFtZTogcmFiYml0bXEKICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IGZhbHNlCiAgICAgICAgICAgIHt7LSBlbmQgfX0KICAgICAgICAgIGltYWdlOiB7eyAuRG9ja2VyLlJlZ2lzdHJ5IH19L3t7IC5TZXJ2aWNlLk5hbWVzcGFjZSB9fS17eyAuU2VydmljZS5OYW1lIH19Ont7IC5TZXJ2aWNlLk5hbWVzcGFjZSB9fS17eyAuU2VydmljZS5OYW1lIH19LXZlcnNpb24KICAgICAgICAgIGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50CiAgICAgICAgICBuYW1lOiB7eyAuU2VydmljZS5OYW1lIH19CiAgICAgICAgICByZXNvdXJjZXM6CiAgICAgICAgICAJcmVxdWVzdHM6CiAgICAgICAgICAJICBjcHU6IDFtCiAgICAgICAgICAgICAgbWVtb3J5OiA4ME1pCiAgICAgICAgICBzZWN1cml0eUNvbnRleHQ6CiAgICAgICAgICAgIGFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbjogZmFsc2UKICAgICAgICAgICAgcHJpdmlsZWdlZDogZmFsc2UKICAgICAgICAgICAgY2FwYWJpbGl0aWVzOgogICAgICAgICAgICAgIGRyb3A6CiAgICAgICAgICAgICAgICAtIGFsbAogICAgICAgICAgICByZWFkT25seVJvb3RGaWxlc3lzdGVtOiB0cnVlCiAgICAgICAgICAgIHJ1bkFzTm9uUm9vdDogdHJ1ZQogICAgICAgICAgICBydW5Bc1VzZXI6IDY1NTM0CiAgICAgICAgICBzdGRpbjogdHJ1ZQogICAgICAgICAgdGVybWluYXRpb25NZXNzYWdlUGF0aDogL2Rldi90ZXJtaW5hdGlvbi1sb2cKICAgICAgICAgIHRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeTogRmlsZQogICAgICAgICAgdHR5OiB0cnVlCiAgICAgIGRuc1BvbGljeTogQ2x1c3RlckZpcnN0CiAgICAgIHJlc3RhcnRQb2xpY3k6IEFsd2F5cwogICAgICBzY2hlZHVsZXJOYW1lOiBkZWZhdWx0LXNjaGVkdWxlcgogICAgICBzZWN1cml0eUNvbnRleHQ6IHt9CiAgICAgIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzOiAzMAo=\"") + packr.PackJSONBytes("./templates", "k8s_deployment.tpl", "\"YXBpVmVyc2lvbjogYXBwcy92MQpraW5kOiBEZXBsb3ltZW50Cm1ldGFkYXRhOgogIGxhYmVsczoKICAgIGFwcDoge3sgLlNlcnZpY2UuTmFtZSB9fQogICAgcGxhdGZvcm06IGdvCiAgICBmcmFtZXdvcms6IGdva2l0CiAgICBnZW5lcmF0b3I6IGdvZGluCiAgICB2ZXJzaW9uOiB7eyAuU2VydmljZS5OYW1lc3BhY2UgfX0te3sgLlNlcnZpY2UuTmFtZSB9fS12ZXJzaW9uCiAgbmFtZToge3sgLlNlcnZpY2UuTmFtZSB9fQogIG5hbWVzcGFjZToge3sgLlNlcnZpY2UuTmFtZXNwYWNlIH19CnNwZWM6CiAgcHJvZ3Jlc3NEZWFkbGluZVNlY29uZHM6IDYwMAogIHJlcGxpY2FzOiAxCiAgcmV2aXNpb25IaXN0b3J5TGltaXQ6IDEwCiAgc2VsZWN0b3I6CiAgICBtYXRjaExhYmVsczoKICAgICAgYXBwOiB7eyAuU2VydmljZS5OYW1lIH19CiAgc3RyYXRlZ3k6CiAgICByb2xsaW5nVXBkYXRlOgogICAgICBtYXhTdXJnZTogMQogICAgICBtYXhVbmF2YWlsYWJsZTogMAogICAgdHlwZTogUm9sbGluZ1VwZGF0ZQogIHRlbXBsYXRlOgogICAgbWV0YWRhdGE6CiAgICAgIGFubm90YXRpb25zOgogICAgICAgIHByb21ldGhldXMuaW8uc2NyYXBlOiAidHJ1ZSIKICAgICAgICBwcm9tZXRoZXVzLmlvLnBvcnQ6ICIzMDAwIgogICAgICAgIHByb21ldGhldXMuaW8ucGF0aDogL21ldHJpY3MKICAgICAgbGFiZWxzOgogICAgICAgIGFwcDoge3sgLlNlcnZpY2UuTmFtZSB9fQogICAgICAgIHBsYXRmb3JtOiBnbwogICAgICAgIGZyYW1ld29yazogZ29raXQKICAgICAgICBnZW5lcmF0b3I6IGdvZGluCiAgICAgICAgdmVyc2lvbjoge3sgLlNlcnZpY2UuTmFtZXNwYWNlIH19LXt7IC5TZXJ2aWNlLk5hbWUgfX0tdmVyc2lvbgogICAgc3BlYzoKICAgICAgY29udGFpbmVyczoKICAgICAgICAtIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBUWgogICAgICAgICAgICAgIHZhbHVlOiBFdXJvcGUvWnVyaWNoCiAgICAgICAgICAgIC0gbmFtZTogR1JQQ19BRERSRVNTCiAgICAgICAgICAgICAgdmFsdWU6ICIwLjAuMC4wOjUwMDUxIgogICAgICAgICAgICAtIG5hbWU6IERFQlVHX0FERFJFU1MKICAgICAgICAgICAgICB2YWx1ZTogIjAuMC4wLjA6MzAwMCIKICAgICAgICAgICAgLSBuYW1lOiBMT0dfTEVWRUwKICAgICAgICAgICAgICB2YWx1ZTogImluZm8iCiAgICAgICAgICAgIHt7LSBpZiAuU2VydmljZS5UcmFuc3BvcnQuQU1RUCB9fQogICAgICAgICAgICAtIG5hbWU6IEFNUVBfQUREUkVTUwogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAga2V5OiBNRVNTQUdFX0JST0tFUl9VUkwKICAgICAgICAgICAgICAgICAgbmFtZTogcmFiYml0bXEKICAgICAgICAgICAgICAgICAgb3B0aW9uYWw6IGZhbHNlCiAgICAgICAgICAgIHt7LSBlbmQgfX0KICAgICAgICAgIGltYWdlOiB7eyAuRG9ja2VyLlJlZ2lzdHJ5IH19L3t7IC5TZXJ2aWNlLk5hbWVzcGFjZSB9fS17eyAuU2VydmljZS5OYW1lIH19Ont7IC5TZXJ2aWNlLk5hbWVzcGFjZSB9fS17eyAuU2VydmljZS5OYW1lIH19LXZlcnNpb24KICAgICAgICAgIGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50CiAgICAgICAgICBuYW1lOiB7eyAuU2VydmljZS5OYW1lIH19CiAgICAgICAgICByZXNvdXJjZXM6CiAgICAgICAgICAJcmVxdWVzdHM6CiAgICAgICAgICAJICBjcHU6IDFtCiAgICAgICAgICAgICAgbWVtb3J5OiAxNU1pCiAgICAgICAgICBzZWN1cml0eUNvbnRleHQ6CiAgICAgICAgICAgIGFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbjogZmFsc2UKICAgICAgICAgICAgcHJpdmlsZWdlZDogZmFsc2UKICAgICAgICAgICAgY2FwYWJpbGl0aWVzOgogICAgICAgICAgICAgIGRyb3A6CiAgICAgICAgICAgICAgICAtIGFsbAogICAgICAgICAgICByZWFkT25seVJvb3RGaWxlc3lzdGVtOiB0cnVlCiAgICAgICAgICAgIHJ1bkFzTm9uUm9vdDogdHJ1ZQogICAgICAgICAgICBydW5Bc1VzZXI6IDY1NTM0CiAgICAgICAgICBzdGRpbjogdHJ1ZQogICAgICAgICAgdGVybWluYXRpb25NZXNzYWdlUGF0aDogL2Rldi90ZXJtaW5hdGlvbi1sb2cKICAgICAgICAgIHRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeTogRmlsZQogICAgICAgICAgdHR5OiB0cnVlCiAgICAgIGRuc1BvbGljeTogQ2x1c3RlckZpcnN0CiAgICAgIHJlc3RhcnRQb2xpY3k6IEFsd2F5cwogICAgICBzY2hlZHVsZXJOYW1lOiBkZWZhdWx0LXNjaGVkdWxlcgogICAgICBzZWN1cml0eUNvbnRleHQ6IHt9CiAgICAgIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzOiAzMAo=\"") packr.PackJSONBytes("./templates", "k8s_service.tpl", "\"YXBpVmVyc2lvbjogdjEKa2luZDogU2VydmljZQptZXRhZGF0YToKICBuYW1lOiB7eyAuU2VydmljZS5OYW1lIH19CiAgbmFtZXNwYWNlOiB7eyAuU2VydmljZS5OYW1lc3BhY2UgfX0Kc3BlYzoKICBwb3J0czoKICAgIC0gbmFtZTogZ3JwYwogICAgICBwb3J0OiA1MDA1MQogICAgICBwcm90b2NvbDogVENQCiAgICAgIHRhcmdldFBvcnQ6IDUwMDUxCiAgICAtIG5hbWU6IGh0dHAtZGVidWcKICAgICAgcG9ydDogMzAwMAogICAgICBwcm90b2NvbDogVENQCiAgICAgIHRhcmdldFBvcnQ6IDMwMDAKICBzZWxlY3RvcjoKICAgIGFwcDoge3sgLlNlcnZpY2UuTmFtZSB9fQogIHNlc3Npb25BZmZpbml0eTogTm9uZQogIHR5cGU6IENsdXN0ZXJJUAo=\"") packr.PackJSONBytes("./templates", "logging_middleware.tpl", "\"cGFja2FnZSBtaWRkbGV3YXJlCgppbXBvcnQgKAogICAgImNvbnRleHQiCiAgICAidGltZSIKCiAgICAiZ2l0aHViLmNvbS9nby1nb2Rpbi9sb2ciCglncnBjX21ldGFkYXRhICJnaXRodWIuY29tL2dvLWdvZGluL2dycGMtbWV0YWRhdGEiCgogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlIgogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlL2VuZHBvaW50IgopCgp0eXBlIGxvZ2dpbmdNaWRkbGV3YXJlIHN0cnVjdCB7CiAgICBuZXh0IHNlcnZpY2Uue3sgdGl0bGUgLlNlcnZpY2UuTmFtZSB9fQogICAgbG9nZ2VyIGxvZy5Mb2dnZXIKfQoKZnVuYyBMb2dnaW5nTWlkZGxld2FyZShsb2dnZXIgbG9nLkxvZ2dlcikgTWlkZGxld2FyZSB7CiAgICByZXR1cm4gZnVuYyhuZXh0IHNlcnZpY2Uue3sgdGl0bGUgLlNlcnZpY2UuTmFtZSB9fSkgc2VydmljZS57eyB0aXRsZSAuU2VydmljZS5OYW1lIH19IHsKICAgICAgICByZXR1cm4gJmxvZ2dpbmdNaWRkbGV3YXJle25leHQsIGxvZ2dlcn0KICAgIH0KfQoKe3sgcmFuZ2UgLlNlcnZpY2UuTWV0aG9kcyB9fQp7eyB0ZW1wbGF0ZSAibG9nZ2luZ19tZXRob2QiIC4gfX0Ke3sgZW5kIH19Cg==\"") packr.PackJSONBytes("./templates", "middleware.tpl", "\"cGFja2FnZSBtaWRkbGV3YXJlCgppbXBvcnQgKAogICAgInt7IC5TZXJ2aWNlLk1vZHVsZSB9fS9pbnRlcm5hbC9zZXJ2aWNlIgopCgp0eXBlIE1pZGRsZXdhcmUgZnVuYyhzZXJ2aWNlIHNlcnZpY2Uue3sgdGl0bGUgLlNlcnZpY2UuTmFtZSB9fSkgc2VydmljZS57eyB0aXRsZSAuU2VydmljZS5OYW1lIH19Cg==\"") diff --git a/templates/cmd_main.tpl b/templates/cmd_main.tpl index b31d84d..5af62d7 100644 --- a/templates/cmd_main.tpl +++ b/templates/cmd_main.tpl @@ -12,7 +12,7 @@ import ( "github.com/oklog/oklog/pkg/group" "github.com/prometheus/client_golang/prometheus/promhttp" googleGrpc "google.golang.org/grpc" - grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus" + "github.com/go-godin/grpc-interceptor" "github.com/go-godin/rabbitmq" pb "{{ .Protobuf.Package }}" @@ -64,12 +64,11 @@ func main() { // serve gRPC server grpcServer := googleGrpc.NewServer( - googleGrpc.UnaryInterceptor(grpcPrometheus.UnaryServerInterceptor), + googleGrpc.UnaryInterceptor(grpc_interceptor.UnaryInterceptor), ) g.Add(initGrpc(grpcServer, grpcHandler, logger), func(error) { grpcServer.GracefulStop() }) - grpcPrometheus.Register(grpcServer) // serve debug http server (prometheus) http.DefaultServeMux.Handle("/metrics", promhttp.Handler())