From 2a169afa62e22a8b26545638ac8b86ccd3253979 Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 06:54:06 +0000 Subject: [PATCH] Tower: upload cetmix_tower_server 16.0.3.0.1 (via marketplace) --- addons/cetmix_tower_server/tests/test_plan_line_action.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 addons/cetmix_tower_server/tests/test_plan_line_action.py diff --git a/addons/cetmix_tower_server/tests/test_plan_line_action.py b/addons/cetmix_tower_server/tests/test_plan_line_action.py new file mode 100644 index 0000000..8951e8f --- /dev/null +++ b/addons/cetmix_tower_server/tests/test_plan_line_action.py @@ -0,0 +1 @@ +IyBDb3B5cmlnaHQgKEMpIDIwMjUgQ2V0bWl4IE/DnAojIExpY2Vuc2UgQUdQTC0zLjAgb3IgbGF0ZXIgKGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsKS4KCmZyb20gb2Rvby5leGNlcHRpb25zIGltcG9ydCBBY2Nlc3NFcnJvcgoKZnJvbSAuY29tbW9uIGltcG9ydCBUZXN0VG93ZXJDb21tb24KCgpjbGFzcyBUZXN0VG93ZXJQbGFuTGluZUFjdGlvbihUZXN0VG93ZXJDb21tb24pOgogICAgIiIiVGVzdCB0aGUgY3gudG93ZXIucGxhbi5saW5lLmFjdGlvbiBtb2RlbCBhY2Nlc3MgcmlnaHRzLiIiIgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKICAgICAgICBzdXBlcigpLnNldFVwQ2xhc3MoKQoKICAgICAgICAjIENyZWF0ZSBhIHRlc3Qgc2VydmVyCiAgICAgICAgY2xzLnNlcnZlciA9IGNscy5TZXJ2ZXIuY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0IFNlcnZlciIsCiAgICAgICAgICAgICAgICAiaXBfdjRfYWRkcmVzcyI6ICJsb2NhbGhvc3QiLAogICAgICAgICAgICAgICAgInNzaF91c2VybmFtZSI6ICJ0ZXN0IiwKICAgICAgICAgICAgICAgICJzc2hfcGFzc3dvcmQiOiAidGVzdCIsCiAgICAgICAgICAgICAgICAic3NoX3BvcnQiOiAyMiwKICAgICAgICAgICAgICAgICJ1c2VyX2lkcyI6IFsoNiwgMCwgW2Nscy51c2VyLmlkXSldLAogICAgICAgICAgICAgICAgIm1hbmFnZXJfaWRzIjogWyg2LCAwLCBbY2xzLm1hbmFnZXIuaWRdKV0sCiAgICAgICAgICAgIH0KICAgICAgICApCgogICAgICAgICMgQ3JlYXRlIGEgdGVzdCBwbGFuIHdpdGggYWNjZXNzIGxldmVsIDEgZm9yIHVzZXIgdGVzdHMKICAgICAgICBjbHMudGVzdF9wbGFuID0gY2xzLlBsYW4uY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0IEFjY2VzcyBQbGFuIiwKICAgICAgICAgICAgICAgICJhY2Nlc3NfbGV2ZWwiOiAiMSIsCiAgICAgICAgICAgICAgICAidXNlcl9pZHMiOiBbKDYsIDAsIFtjbHMudXNlci5pZF0pXSwKICAgICAgICAgICAgICAgICJtYW5hZ2VyX2lkcyI6IFsoNiwgMCwgW2Nscy5tYW5hZ2VyLmlkXSldLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgICAgICAjIENyZWF0ZSBhIHRlc3QgcGxhbiBsaW5lCiAgICAgICAgY2xzLnRlc3RfcGxhbl9saW5lID0gY2xzLnBsYW5fbGluZS5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJwbGFuX2lkIjogY2xzLnRlc3RfcGxhbi5pZCwKICAgICAgICAgICAgICAgICJjb21tYW5kX2lkIjogY2xzLmNvbW1hbmRfY3JlYXRlX2Rpci5pZCwKICAgICAgICAgICAgICAgICJzZXF1ZW5jZSI6IDEwLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgICAgICAjIENyZWF0ZSBhIHRlc3QgYWN0aW9uCiAgICAgICAgY2xzLnRlc3RfYWN0aW9uID0gY2xzLnBsYW5fbGluZV9hY3Rpb24uY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibGluZV9pZCI6IGNscy50ZXN0X3BsYW5fbGluZS5pZCwKICAgICAgICAgICAgICAgICJjb25kaXRpb24iOiAiPT0iLAogICAgICAgICAgICAgICAgInZhbHVlX2NoYXIiOiAiMCIsCiAgICAgICAgICAgICAgICAiYWN0aW9uIjogIm4iLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgIGRlZiB0ZXN0X3VzZXJfcmVhZF9hY2Nlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCB1c2VyIHJlYWQgYWNjZXNzIHRvIHBsYW4gbGluZSBhY3Rpb25zIiIiCiAgICAgICAgIyBDYXNlIDE6IFVzZXIgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCBhY3Rpb24gd2hlbjoKICAgICAgICAjIC0gYWNjZXNzX2xldmVsID09ICIxIgogICAgICAgICMgLSB1c2VyIGlzIGluIHBsYW4ncyB1c2VyX2lkcyBPUiBzZXJ2ZXIncyB1c2VyX2lkcwogICAgICAgIHJlY3MgPSBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYudXNlcikuc2VhcmNoKAogICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2VsZi50ZXN0X2FjdGlvbi5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0SW4oCiAgICAgICAgICAgIHNlbGYudGVzdF9hY3Rpb24sCiAgICAgICAgICAgIHJlY3MsCiAgICAgICAgICAgICJVc2VyIHNob3VsZCBiZSBhYmxlIHRvIHJlYWQgYWN0aW9uIHdoZW4gY29uZGl0aW9ucyBhcmUgbWV0IiwKICAgICAgICApCgogICAgICAgICMgQ2FzZSAyOiBVc2VyIHNob3VsZCBub3QgYmUgYWJsZSB0byByZWFkIHdoZW4gYWNjZXNzX2xldmVsID4gIjEiCiAgICAgICAgc2VsZi50ZXN0X3BsYW4uYWNjZXNzX2xldmVsID0gIjIiCiAgICAgICAgcmVjcyA9IHNlbGYucGxhbl9saW5lX2FjdGlvbi53aXRoX3VzZXIoc2VsZi51c2VyKS5zZWFyY2goCiAgICAgICAgICAgIFsoImlkIiwgIj0iLCBzZWxmLnRlc3RfYWN0aW9uLmlkKV0KICAgICAgICApCiAgICAgICAgc2VsZi5hc3NlcnROb3RJbigKICAgICAgICAgICAgc2VsZi50ZXN0X2FjdGlvbiwKICAgICAgICAgICAgcmVjcywKICAgICAgICAgICAgIlVzZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJlYWQgYWN0aW9uIHdoZW4gYWNjZXNzX2xldmVsID4gJzEnIiwKICAgICAgICApCgogICAgICAgICMgQ2FzZSAzOiBVc2VyIHNob3VsZCBub3QgYmUgYWJsZSB0byByZWFkIHdoZW4gbm90IGluIHVzZXJfaWRzCiAgICAgICAgc2VsZi50ZXN0X3BsYW4uYWNjZXNzX2xldmVsID0gIjEiCiAgICAgICAgc2VsZi50ZXN0X3BsYW4udXNlcl9pZHMgPSBbKDUsIDAsIDApXSAgIyBSZW1vdmUgYWxsIHVzZXJzCiAgICAgICAgcmVjcyA9IHNlbGYucGxhbl9saW5lX2FjdGlvbi53aXRoX3VzZXIoc2VsZi51c2VyKS5zZWFyY2goCiAgICAgICAgICAgIFsoImlkIiwgIj0iLCBzZWxmLnRlc3RfYWN0aW9uLmlkKV0KICAgICAgICApCiAgICAgICAgc2VsZi5hc3NlcnROb3RJbigKICAgICAgICAgICAgc2VsZi50ZXN0X2FjdGlvbiwKICAgICAgICAgICAgcmVjcywKICAgICAgICAgICAgIlVzZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJlYWQgYWN0aW9uIHdoZW4gbm90IGluIHVzZXJfaWRzIiwKICAgICAgICApCgogICAgICAgICMgQ2FzZSA0OiBVc2VyIHNob3VsZCBiZSBhYmxlIHRvIHJlYWQgd2hlbiBpbiBzZXJ2ZXIncyB1c2VyX2lkcwogICAgICAgIHNlbGYudGVzdF9wbGFuLnNlcnZlcl9pZHMgPSBbKDYsIDAsIFtzZWxmLnNlcnZlci5pZF0pXQogICAgICAgIHJlY3MgPSBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYudXNlcikuc2VhcmNoKAogICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2VsZi50ZXN0X2FjdGlvbi5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0SW4oCiAgICAgICAgICAgIHNlbGYudGVzdF9hY3Rpb24sCiAgICAgICAgICAgIHJlY3MsCiAgICAgICAgICAgICJVc2VyIHNob3VsZCBiZSBhYmxlIHRvIHJlYWQgYWN0aW9uIHdoZW4gaW4gc2VydmVyJ3MgdXNlcl9pZHMiLAogICAgICAgICkKCiAgICBkZWYgdGVzdF91c2VyX3dyaXRlX2NyZWF0ZV91bmxpbmtfYWNjZXNzKHNlbGYpOgogICAgICAgICIiIlRlc3QgdXNlciB3cml0ZS9jcmVhdGUvdW5saW5rIGFjY2VzcyByZXN0cmljdGlvbnMiIiIKICAgICAgICAjIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBjcmVhdGUgYWN0aW9ucwogICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQWNjZXNzRXJyb3IpOgogICAgICAgICAgICBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYudXNlcikuY3JlYXRlKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJsaW5lX2lkIjogc2VsZi50ZXN0X3BsYW5fbGluZS5pZCwKICAgICAgICAgICAgICAgICAgICAiY29uZGl0aW9uIjogIj09IiwKICAgICAgICAgICAgICAgICAgICAidmFsdWVfY2hhciI6ICIwIiwKICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogIm4iLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCgogICAgICAgICMgVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHdyaXRlIGFjdGlvbnMKICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEFjY2Vzc0Vycm9yKToKICAgICAgICAgICAgc2VsZi50ZXN0X2FjdGlvbi53aXRoX3VzZXIoc2VsZi51c2VyKS53cml0ZSh7InZhbHVlX2NoYXIiOiAiMSJ9KQoKICAgICAgICAjIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byB1bmxpbmsgYWN0aW9ucwogICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQWNjZXNzRXJyb3IpOgogICAgICAgICAgICBzZWxmLnRlc3RfYWN0aW9uLndpdGhfdXNlcihzZWxmLnVzZXIpLnVubGluaygpCgogICAgZGVmIHRlc3RfbWFuYWdlcl9yZWFkX2FjY2VzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IG1hbmFnZXIgcmVhZCBhY2Nlc3MgdG8gcGxhbiBsaW5lIGFjdGlvbnMiIiIKICAgICAgICAjIENhc2UgMTogTWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byByZWFkIHdoZW46CiAgICAgICAgIyAtIGFjY2Vzc19sZXZlbCA8PSAiMiIKICAgICAgICAjIC0gbWFuYWdlciBpcyBpbiBwbGFuJ3MgbWFuYWdlcl9pZHMKICAgICAgICByZWNzID0gc2VsZi5wbGFuX2xpbmVfYWN0aW9uLndpdGhfdXNlcihzZWxmLm1hbmFnZXIpLnNlYXJjaCgKICAgICAgICAgICAgWygiaWQiLCAiPSIsIHNlbGYudGVzdF9hY3Rpb24uaWQpXQogICAgICAgICkKICAgICAgICBzZWxmLmFzc2VydEluKAogICAgICAgICAgICBzZWxmLnRlc3RfYWN0aW9uLAogICAgICAgICAgICByZWNzLAogICAgICAgICAgICAiTWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byByZWFkIGFjdGlvbiB3aGVuIGNvbmRpdGlvbnMgYXJlIG1ldCIsCiAgICAgICAgKQoKICAgICAgICAjIENhc2UgMjogTWFuYWdlciBzaG91bGQgbm90IGJlIGFibGUgdG8gcmVhZCB3aGVuIGFjY2Vzc19sZXZlbCA+ICIyIgogICAgICAgIHNlbGYudGVzdF9wbGFuLmFjY2Vzc19sZXZlbCA9ICIzIgogICAgICAgIHJlY3MgPSBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYubWFuYWdlcikuc2VhcmNoKAogICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2VsZi50ZXN0X2FjdGlvbi5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oCiAgICAgICAgICAgIHNlbGYudGVzdF9hY3Rpb24sCiAgICAgICAgICAgIHJlY3MsCiAgICAgICAgICAgICJNYW5hZ2VyIHNob3VsZCBub3QgYmUgYWJsZSB0byByZWFkIGFjdGlvbiB3aGVuIGFjY2Vzc19sZXZlbCA+ICcyJyIsCiAgICAgICAgKQoKICAgICAgICAjIENhc2UgMzogTWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byByZWFkIHdoZW4gaW4gc2VydmVyJ3MgbWFuYWdlcl9pZHMKICAgICAgICBzZWxmLnRlc3RfcGxhbi5hY2Nlc3NfbGV2ZWwgPSAiMiIKICAgICAgICBzZWxmLnRlc3RfcGxhbi5tYW5hZ2VyX2lkcyA9IFsoNSwgMCwgMCldICAjIFJlbW92ZSBhbGwgbWFuYWdlcnMKICAgICAgICBzZWxmLnRlc3RfcGxhbi5zZXJ2ZXJfaWRzID0gWyg2LCAwLCBbc2VsZi5zZXJ2ZXIuaWRdKV0KICAgICAgICByZWNzID0gc2VsZi5wbGFuX2xpbmVfYWN0aW9uLndpdGhfdXNlcihzZWxmLm1hbmFnZXIpLnNlYXJjaCgKICAgICAgICAgICAgWygiaWQiLCAiPSIsIHNlbGYudGVzdF9hY3Rpb24uaWQpXQogICAgICAgICkKICAgICAgICBzZWxmLmFzc2VydEluKAogICAgICAgICAgICBzZWxmLnRlc3RfYWN0aW9uLAogICAgICAgICAgICByZWNzLAogICAgICAgICAgICAiTWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byByZWFkIHdoZW4gaW4gc2VydmVyJ3MgbWFuYWdlcl9pZHMiLAogICAgICAgICkKCiAgICBkZWYgdGVzdF9tYW5hZ2VyX3dyaXRlX2NyZWF0ZV9hY2Nlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBtYW5hZ2VyIHdyaXRlL2NyZWF0ZSBhY2Nlc3MgdG8gcGxhbiBsaW5lIGFjdGlvbnMiIiIKICAgICAgICAjIENhc2UgMTogTWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUvd3JpdGUgd2hlbjoKICAgICAgICAjIC0gYWNjZXNzX2xldmVsIDw9ICIyIgogICAgICAgICMgLSBtYW5hZ2VyIGlzIGluIHBsYW4ncyBtYW5hZ2VyX2lkcwogICAgICAgIHRyeToKICAgICAgICAgICAgIyBUZXN0IGNyZWF0ZQogICAgICAgICAgICBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYubWFuYWdlcikuY3JlYXRlKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJsaW5lX2lkIjogc2VsZi50ZXN0X3BsYW5fbGluZS5pZCwKICAgICAgICAgICAgICAgICAgICAiY29uZGl0aW9uIjogIj09IiwKICAgICAgICAgICAgICAgICAgICAidmFsdWVfY2hhciI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogIm4iLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgICAgICMgVGVzdCB3cml0ZQogICAgICAgICAgICBzZWxmLnRlc3RfYWN0aW9uLndpdGhfdXNlcihzZWxmLm1hbmFnZXIpLndyaXRlKHsidmFsdWVfY2hhciI6ICIyIn0pCiAgICAgICAgZXhjZXB0IEFjY2Vzc0Vycm9yOgogICAgICAgICAgICBzZWxmLmZhaWwoIk1hbmFnZXIgc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlL3dyaXRlIHdoZW4gY29uZGl0aW9ucyBhcmUgbWV0IikKCiAgICAgICAgIyBDYXNlIDI6IE1hbmFnZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNyZWF0ZS93cml0ZSB3aGVuIGFjY2Vzc19sZXZlbCA+ICIyIgogICAgICAgIHNlbGYudGVzdF9wbGFuLmFjY2Vzc19sZXZlbCA9ICIzIgogICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQWNjZXNzRXJyb3IpOgogICAgICAgICAgICBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYubWFuYWdlcikuY3JlYXRlKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJsaW5lX2lkIjogc2VsZi50ZXN0X3BsYW5fbGluZS5pZCwKICAgICAgICAgICAgICAgICAgICAiY29uZGl0aW9uIjogIj09IiwKICAgICAgICAgICAgICAgICAgICAidmFsdWVfY2hhciI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogIm4iLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCiAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBY2Nlc3NFcnJvcik6CiAgICAgICAgICAgIHNlbGYudGVzdF9hY3Rpb24ud2l0aF91c2VyKHNlbGYubWFuYWdlcikud3JpdGUoeyJ2YWx1ZV9jaGFyIjogIjMifSkKCiAgICBkZWYgdGVzdF9tYW5hZ2VyX3VubGlua19hY2Nlc3Moc2VsZik6CiAgICAgICAgIiIiVGVzdCBtYW5hZ2VyIHVubGluayBhY2Nlc3MgdG8gcGxhbiBsaW5lIGFjdGlvbnMiIiIKICAgICAgICAjIENyZWF0ZSBhY3Rpb24gYXMgbWFuYWdlciB0byB0ZXN0IHVubGluayByaWdodHMKICAgICAgICBhY3Rpb24gPSBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYubWFuYWdlcikuY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibGluZV9pZCI6IHNlbGYudGVzdF9wbGFuX2xpbmUuaWQsCiAgICAgICAgICAgICAgICAiY29uZGl0aW9uIjogIj09IiwKICAgICAgICAgICAgICAgICJ2YWx1ZV9jaGFyIjogIjAiLAogICAgICAgICAgICAgICAgImFjdGlvbiI6ICJuIiwKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICAgICAgIyBDYXNlIDE6IE1hbmFnZXIgc2hvdWxkIGJlIGFibGUgdG8gdW5saW5rIHdoZW46CiAgICAgICAgIyAtIGFjY2Vzc19sZXZlbCA8PSAiMiIKICAgICAgICAjIC0gbWFuYWdlciBpcyB0aGUgY3JlYXRvcgogICAgICAgICMgLSBtYW5hZ2VyIGlzIGluIHBsYW4ncyBtYW5hZ2VyX2lkcwogICAgICAgIHRyeToKICAgICAgICAgICAgYWN0aW9uLnVubGluaygpCiAgICAgICAgZXhjZXB0IEFjY2Vzc0Vycm9yOgogICAgICAgICAgICBzZWxmLmZhaWwoIk1hbmFnZXIgc2hvdWxkIGJlIGFibGUgdG8gdW5saW5rIHdoZW4gY29uZGl0aW9ucyBhcmUgbWV0IikKCiAgICAgICAgIyBDYXNlIDI6IE1hbmFnZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHVubGluayBhY3Rpb25zIGNyZWF0ZWQgYnkgb3RoZXJzCiAgICAgICAgYWN0aW9uID0gc2VsZi50ZXN0X2FjdGlvbiAgIyBDcmVhdGVkIGJ5IGFkbWluIGluIHNldFVwCiAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBY2Nlc3NFcnJvcik6CiAgICAgICAgICAgIGFjdGlvbi53aXRoX3VzZXIoc2VsZi5tYW5hZ2VyKS51bmxpbmsoKQoKICAgIGRlZiB0ZXN0X3Jvb3RfdW5yZXN0cmljdGVkX2FjY2VzcyhzZWxmKToKICAgICAgICAiIiJUZXN0IHJvb3QgdXNlciB1bnJlc3RyaWN0ZWQgYWNjZXNzIiIiCiAgICAgICAgIyBSb290IHNob3VsZCBoYXZlIGZ1bGwgYWNjZXNzIHJlZ2FyZGxlc3Mgb2YgY29uZGl0aW9ucwogICAgICAgIHRyeToKICAgICAgICAgICAgIyBUZXN0IHJlYWQKICAgICAgICAgICAgcmVjcyA9IHNlbGYucGxhbl9saW5lX2FjdGlvbi53aXRoX3VzZXIoc2VsZi5yb290KS5zZWFyY2goCiAgICAgICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2VsZi50ZXN0X2FjdGlvbi5pZCldCiAgICAgICAgICAgICkKICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigKICAgICAgICAgICAgICAgIHNlbGYudGVzdF9hY3Rpb24sCiAgICAgICAgICAgICAgICByZWNzLAogICAgICAgICAgICAgICAgIlJvb3Qgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCBhY3Rpb24gd2l0aG91dCByZXN0cmljdGlvbnMiLAogICAgICAgICAgICApCgogICAgICAgICAgICAjIFRlc3QgY3JlYXRlCiAgICAgICAgICAgIG5ld19hY3Rpb24gPSBzZWxmLnBsYW5fbGluZV9hY3Rpb24ud2l0aF91c2VyKHNlbGYucm9vdCkuY3JlYXRlKAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJsaW5lX2lkIjogc2VsZi50ZXN0X3BsYW5fbGluZS5pZCwKICAgICAgICAgICAgICAgICAgICAiY29uZGl0aW9uIjogIj09IiwKICAgICAgICAgICAgICAgICAgICAidmFsdWVfY2hhciI6ICIxIiwKICAgICAgICAgICAgICAgICAgICAiYWN0aW9uIjogIm4iLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApCgogICAgICAgICAgICAjIFRlc3Qgd3JpdGUKICAgICAgICAgICAgc2VsZi50ZXN0X2FjdGlvbi53aXRoX3VzZXIoc2VsZi5yb290KS53cml0ZSh7InZhbHVlX2NoYXIiOiAiMiJ9KQoKICAgICAgICAgICAgIyBUZXN0IHVubGluawogICAgICAgICAgICBuZXdfYWN0aW9uLnVubGluaygpCiAgICAgICAgZXhjZXB0IEFjY2Vzc0Vycm9yOgogICAgICAgICAgICBzZWxmLmZhaWwoIlJvb3QgdXNlciBzaG91bGQgaGF2ZSB1bnJlc3RyaWN0ZWQgYWNjZXNzIikK \ No newline at end of file