IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZTogICAgZXJsYW5nIChFUmljc3NvbiBMQU5HdWFnZSkKIgkgICAgICAgaHR0cDovL3d3dy5lcmxhbmcuc2UKIgkgICAgICAgaHR0cDovL3d3dy5lcmxhbmcub3JnCiIgTWFpbnRhaW5lcjogIEtyZblpbWlyIE1hcr5p5iAoS3Jlc2ltaXIgTWFyemljKSA8a21hcnppY0BmbHkuc3JrLmZlci5ocj4KIiBMYXN0IHVwZGF0ZTogRnJpLCAxNS1GZWItMjAwMgoiIEZpbGVuYW1lczogICAuZXJsCiIgVVJMOgkgICAgICAgaHR0cDovL3d3dy5zcmsuZmVyLmhyL35rbWFyemljL3ZpbS9zeW50YXgvZXJsYW5nLnZpbQoKCiIgVGhlcmUgYXJlIHRocmVlIHNldHMgb2YgaGlnaGxpZ2h0aW5nIGluIGhlcmU6CiIgT25lIGlzICJlcmxhbmdfY2hhcmFjdGVycyIsIHNlY29uZCBpcyAiZXJsYW5nX2Z1bmN0aW9ucyIgYW5kIHRoaXJkCiIgaXMgImVybGFuZ19rZXl3b3JkcyIuCiIgSWYgeW91IHdhbnQgdG8gZGlzYWJsZSBrZXl3b3JkcyBoaWdobGlnaHRpbmcsIHB1dCBpbiB5b3VyIC52aW1yYzoKIiAgICAgICBsZXQgZXJsYW5nX2tleXdvcmRzPTEKIiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIGVybGFuZyBCSUYgaGlnaGxpZ2h0aW5nLCBwdXQgaW4geW91ciAudmltcmMKIiB0aGlzOgoiICAgICAgIGxldCBlcmxhbmdfZnVuY3Rpb25zPTEKIiBJZiB5b3Ugd2FudCB0byBkaXNhYmxlIHNwZWNpYWwgY2hhcmFjdGVycyBoaWdobGlnaHRpbmcsIHB1dCBpbgoiIHlvdXIgLnZpbXJjOgoiICAgICAgIGxldCBlcmxhbmdfY2hhcmFjdGVycz0xCgoKIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAppZiB2ZXJzaW9uIDwgNjAwCglzeW50YXggY2xlYXIKZWxzZWlmIGV4aXN0cyAoImI6Y3VycmVudF9zeW50YXgiKQoJZmluaXNoCmVuZGlmCgoKIiBDYXNlIHNlbnNpdGl2ZQpzeW4gY2FzZSBtYXRjaAoKCmlmICEgZXhpc3RzICgiZXJsYW5nX2NoYXJhY3RlcnMiKQoJIiBCYXNpYyBlbGVtZW50cwoJc3luIG1hdGNoICAgZXJsYW5nQ29tbWVudAkgICArJS4qJCsKCXN5biBtYXRjaCAgIGVybGFuZ01vZGlmaWVyCSAgICJcflxhXHxcXFxhIiBjb250YWluZWQKCXN5biBtYXRjaCAgIGVybGFuZ1NwZWNpYWxDaGFyYWN0ZXIgIjpcfF9cfEBcfFxcXHxcIlx8XC4iCglzeW4gbWF0Y2ggICBlcmxhbmdTZXBhcmF0b3IJICAgIihcfClcfHtcfH1cfFxbXHxdXHx8XHx8fFx8O1x8LFx8P1x8LT5cfCMiIGNvbnRhaW5lZAoJc3luIHJlZ2lvbiAgZXJsYW5nU3RyaW5nCSAgIHN0YXJ0PSsiKyBza2lwPStcXCIrIGVuZD0rIisgY29udGFpbnM9ZXJsYW5nTW9kaWZpZXIKCXN5biByZWdpb24gIGVybGFuZ0F0b20JCSAgIHN0YXJ0PSsnKyBza2lwPStcXCcrIGVuZD0rJysKCgkiIE9wZXJhdG9ycwoJc3luIG1hdGNoICAgZXJsYW5nT3BlcmF0b3IJICAgIitcfC1cfFwqXHxcLyIKCXN5biBrZXl3b3JkIGVybGFuZ09wZXJhdG9yCSAgIGRpdiByZW0gb3IgeG9yIGJvciBieG9yIGJzbCBic3IKCXN5biBrZXl3b3JkIGVybGFuZ09wZXJhdG9yCSAgIGFuZCBiYW5kIG5vdCBibm90CglzeW4gbWF0Y2ggICBlcmxhbmdPcGVyYXRvcgkgICAiPT1cfC89XHw9Oj1cfD0vPVx8PFx8PTxcfD5cfD49IgoJc3luIG1hdGNoICAgZXJsYW5nT3BlcmF0b3IJICAgIisrXHwtLVx8PVx8IVx8PC0iCgoJIiBOdW1iZXJzCglzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJJbnRlZ2VyICAgICJbKy1dXD1cZFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKCXN5biBtYXRjaCAgIGVybGFuZ051bWJlckZsb2F0MQkgICAiWystXVw9XGRcKy5cZFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKCXN5biBtYXRjaCAgIGVybGFuZ051bWJlckZsb2F0MgkgICAiWystXVw9XGRcK1woLlxkXCtcKVw9W2VFXVsrLV1cPVxkXCtcKC5cZFwrXClcPSIgY29udGFpbnM9ZXJsYW5nU2VwYXJhdG9yCglzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJGbG9hdDMJICAgIlsrLV1cPVxkXCtbI11ceFwrIiBjb250YWlucz1lcmxhbmdTZXBhcmF0b3IKCXN5biBtYXRjaCAgIGVybGFuZ051bWJlckZsb2F0NAkgICAiWystXVw9W2VFXVsrLV1cPVxkXCsiIGNvbnRhaW5zPWVybGFuZ1NlcGFyYXRvcgoJc3luIG1hdGNoICAgZXJsYW5nTnVtYmVySGV4CSAgICIkXHhcKyIgY29udGFpbnM9ZXJsYW5nU2VwYXJhdG9yCgoJIiBJZ25vcmUgJ18nIGFuZCAnLScgaW4gd29yZHMKCXN5biBtYXRjaCAgIGVybGFuZ1dvcmQJCSAgICJcd1wrW18tXVwrXHdcKyIKCgkiIElnbm9yZSBudW1iZXJzIGluIHdvcmRzCglzeW4gbWF0Y2ggICBlcmxhbmdXb3JkCQkgICAiXHdcK1xkXCtcKFwoLlxkXCtcKVw9XChcd1wrXClcPVwpXD0iCmVuZGlmCgppZiAhIGV4aXN0cyAoImVybGFuZ19mdW5jdGlvbnMiKQoJIiBGdW5jdGlvbnMgY2FsbAoJc3luIG1hdGNoICAgZXJsYW5nRkNhbGwgICAgICAiXHdcK1woXHNcK1wpXD1bOkBdXChcc1wrXClcPVx3XCsiIGNvbnRhaW5zPUFMTEJVVCxlcmxhbmdGdW5jdGlvbixlcmxhbmdCSUYsZXJsYW5nV29yZAoKCSIgYnVpbGQtaW4tZnVuY3Rpb25zIChCSUZzKQoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgYWJzIGFsaXZlIGFwcGx5IGF0b21fdG9fbGlzdAoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgYmluYXJ5X3RvX2xpc3QgYmluYXJ5X3RvX3Rlcm0KCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGNvbmNhdF9iaW5hcnkKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGRhdGUgZGlzY29ubmVjdF9ub2RlCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBlbGVtZW50IGVyYXNlIGV4aXQKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGZsb2F0IGZsb2F0X3RvX2xpc3QKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGdldCBnZXRfa2V5cyBncm91cF9sZWFkZXIKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGhhbHQgaGQKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIGludGVnZXJfdG9fbGlzdCBpc19hbGl2ZQoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgbGVuZ3RoIGxpbmsgbGlzdF90b19hdG9tIGxpc3RfdG9fYmluYXJ5CglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBsaXN0X3RvX2Zsb2F0IGxpc3RfdG9faW50ZWdlciBsaXN0X3RvX3BpZAoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgbGlzdF90b190dXBsZSBsb2FkX21vZHVsZQoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgbWFrZV9yZWYgbW9uaXRvcl9ub2RlCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBub2RlIG5vZGVzIG5vdwoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgb3Blbl9wb3J0CglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBwaWRfdG9fbGlzdCBwcm9jZXNzX2ZsYWcKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHByb2Nlc3NfaW5mbyBwcm9jZXNzIHB1dAoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgcmVnaXN0ZXIgcmVnaXN0ZXJlZCByb3VuZAoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgc2VsZiBzZXRlbGVtZW50IHNpemUgc3Bhd24KCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHNwYXduX2xpbmsgc3BsaXRfYmluYXJ5IHN0YXRpc3RpY3MKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHRlcm1fdG9fYmluYXJ5IHRocm93IHRpbWUgdGwgdHJ1bmMKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHR1cGxlX3RvX2xpc3QKCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHVubGluayB1bnJlZ2lzdGVyCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICB3aGVyZWlzCgoJIiBPdGhlciBCSUZzCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBhdG9tIGJpbmFyeSBjb25zdGFudCBmdW5jdGlvbiBpbnRlZ2VyCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBsaXN0IG51bWJlciBwaWQgcG9ydHMgcG9ydF9jbG9zZSBwb3J0X2luZm8KCXN5biBrZXl3b3JkIGVybGFuZ0JJRgkgICAgIHJlZmVyZW5jZSByZWNvcmQKCgkiIGVybGFuZzpCSUZzCglzeW4ga2V5d29yZCBlcmxhbmdCSUYJICAgICBjaGVja19wcm9jZXNzX2NvZGUgZGVsZXRlX21vZHVsZQoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgZ2V0X2Nvb2tpZSBoYXNoIG1hdGggbW9kdWxlX2xvYWRlZAoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgcHJlbG9hZGVkIHByb2Nlc3NlcyBwdXJnZV9tb2R1bGUgc2V0X2Nvb2tpZQoJc3luIGtleXdvcmQgZXJsYW5nQklGCSAgICAgc2V0X25vZGUKCgkiIGZ1bmN0aW9ucyBvZiBtYXRoIGxpYnJhcnkKCXN5biBrZXl3b3JkIGVybGFuZ0Z1bmN0aW9uICAgYWNvcyBhc2luIGF0YW4gYXRhbjIgY29zIGNvc2ggZXhwCglzeW4ga2V5d29yZCBlcmxhbmdGdW5jdGlvbiAgIGxvZyBsb2cxMCBwaSBwb3cgcG93ZXIgc2luIHNpbmggc3FydAoJc3luIGtleXdvcmQgZXJsYW5nRnVuY3Rpb24gICB0YW4gdGFuaAoKCSIgT3RoZXIgZnVuY3Rpb25zCglzeW4ga2V5d29yZCBlcmxhbmdGdW5jdGlvbiAgIGNhbGwgbW9kdWxlX2luZm8gcGFyc2VfdHJhbnNmb3JtCglzeW4ga2V5d29yZCBlcmxhbmdGdW5jdGlvbiAgIHVuZGVmaW5lZF9mdW5jdGlvbgoKCSIgTW9kdWxlcwoJc3luIGtleXdvcmQgZXJsYW5nTW9kdWxlICAgICBlcnJvcl9oYW5kbGVyCmVuZGlmCgppZiAhIGV4aXN0cyAoImVybGFuZ19rZXl3b3JkcyIpCgkiIENvbnN0YW50cyBhbmQgRGlyZWN0aXZlcwoJc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLWNvbXBpbGVcfC1kZWZpbmVcfC1lbHNlXHwtZW5kaWZcfC1leHBvcnRcfC1maWxlIgoJc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLWlmZGVmXHwtaWZuZGVmXHwtaW1wb3J0XHwtaW5jbHVkZVx8LWluY2x1ZGVfbGliIgoJc3luIG1hdGNoICAgZXJsYW5nRGlyZWN0aXZlICAiLW1vZHVsZVx8LXJlY29yZFx8LXVuZGVmIgoKCXN5biBtYXRjaCAgIGVybGFuZ0NvbnN0YW50ICAgIi1hdXRob3JcfC1jb3B5cmlnaHRcfC1kb2MiCgoJIiBLZXl3b3JkcwoJc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICBhZnRlciBiZWdpbiBjYXNlIGNhdGNoCglzeW4ga2V5d29yZCBlcmxhbmdLZXl3b3JkICAgIGNvbmQgZW5kIGZ1biBpZgoJc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICBsZXQgb2YgcXVlcnkgcmVjZWl2ZQoJc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICB3aGVuCgoJIiBQcm9jZXNzZXMKCXN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgY3JlYXRpb24gY3VycmVudF9mdW5jdGlvbiBkaWN0aW9uYXJ5CglzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIGdyb3VwX2xlYWRlciBoZWFwX3NpemUgaGlnaCBpbml0aWFsX2NhbGwKCXN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgbGlua2VkIGxvdyBtZW1vcnlfaW5fdXNlIG1lc3NhZ2VfcXVldWUKCXN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgbmV0X2tlcm5lbCBub2RlIG5vcm1hbCBwcmlvcml0eQoJc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICByZWR1Y3Rpb25zIHJlZ2lzdGVyZWRfbmFtZSBydW5uYWJsZQoJc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICBydW5uaW5nIHN0YWNrX3RyYWNlIHN0YXR1cyB0aW1lcgoJc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICB0cmFwX2V4aXQgd2FpdGluZwoKCSIgUG9ydHMKCXN5biBrZXl3b3JkIGVybGFuZ1BvcnQgICAgICAgY29tbWFuZCBjb3VudF9pbiBjb3VudF9vdXQgY3JlYXRpb24gaW4KCXN5biBrZXl3b3JkIGVybGFuZ1BvcnQgICAgICAgaW5fZm9ybWF0IGxpbmtlZCBub2RlIG91dCBvd25lciBwYWNrZXRpbmcKCgkiIE5vZGVzCglzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIGF0b21fdGFibGVzIGNvbW11bmljYXRpbmcgY3JlYXRpb24KCXN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgY3VycmVudF9nYyBjdXJyZW50X3JlZHVjdGlvbnMgY3VycmVudF9ydW50aW1lCglzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIGN1cnJlbnRfd2FsbF9jbG9jayBkaXN0cmlidXRpb25fcG9ydAoJc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBlbnRyeV9wb2ludHMgZXJyb3JfaGFuZGxlciBmcmllbmRzCglzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIGdhcmJhZ2VfY29sbGVjdGlvbiBtYWdpY19jb29raWUgbWFnaWNfY29va2llcwoJc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBtb2R1bGVfdGFibGUgbW9uaXRvcmVkX25vZGVzIG5hbWUgbmV4dF9yZWYKCXN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgcG9ydHMgcHJlbG9hZGVkIHByb2Nlc3NlcyByZWR1Y3Rpb25zCglzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIHJlZl9zdGF0ZSByZWdpc3RyeSBydW50aW1lIHdhbGxfY2xvY2sKCgkiIFJlc2VydmVkCglzeW4ga2V5d29yZCBlcmxhbmdSZXNlcnZlZCAgIGFwcGx5X2xhbWJkYSBtb2R1bGVfaW5mbyBtb2R1bGVfbGFtYmRhcwoJc3luIGtleXdvcmQgZXJsYW5nUmVzZXJ2ZWQgICByZWNvcmQgcmVjb3JkX2luZGV4IHJlY29yZF9pbmZvCgoJIiBFeHRyYXMKCXN5biBrZXl3b3JkIGVybGFuZ0V4dHJhICAgICAgYmFkYXJnIG5vY29va2llIGZhbHNlIGZ1biB0cnVlCgoJIiBTaWduYWxzCglzeW4ga2V5d29yZCBlcmxhbmdTaWduYWwgICAgIGJhZHNpZyBraWxsIGtpbGxlZCBleGl0IG5vcm1hbAplbmRpZgoKCgoiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCiIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQoiIEZvciB2ZXJzaW9uIDUuOCBhbmQgbGF0ZXI6IG9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0CmlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMgKCJkaWRfZXJsYW5nX2luaXRzIikKCWlmIHZlcnNpb24gPCA1MDgKCQlsZXQgZGlkX2VybGFuZ19pbml0cyA9IDEKCQljb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgoJZWxzZQoJCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgoJZW5kaWYKCgkiIGVybGFuZ19jaGFyYWN0ZXJzCglIaUxpbmsgZXJsYW5nQ29tbWVudCBDb21tZW50CglIaUxpbmsgZXJsYW5nU3BlY2lhbENoYXJhY3RlciBTcGVjaWFsCglIaUxpbmsgZXJsYW5nU2VwYXJhdG9yIE5vcm1hbAoJSGlMaW5rIGVybGFuZ01vZGlmaWVyIFNwZWNpYWwKCUhpTGluayBlcmxhbmdPcGVyYXRvciBPcGVyYXRvcgoJSGlMaW5rIGVybGFuZ1N0cmluZyBTdHJpbmcKCUhpTGluayBlcmxhbmdBdG9tIFR5cGUKCglIaUxpbmsgZXJsYW5nTnVtYmVySW50ZWdlciBOdW1iZXIKCUhpTGluayBlcmxhbmdOdW1iZXJGbG9hdDEgRmxvYXQKCUhpTGluayBlcmxhbmdOdW1iZXJGbG9hdDIgRmxvYXQKCUhpTGluayBlcmxhbmdOdW1iZXJGbG9hdDMgRmxvYXQKCUhpTGluayBlcmxhbmdOdW1iZXJGbG9hdDQgRmxvYXQKCUhpTGluayBlcmxhbmdOdW1iZXJIZXggTnVtYmVyCgoJSGlMaW5rIGVybGFuZ1dvcmQgTm9ybWFsCgoJIiBlcmxhbmdfZnVuY3Rpb25zCglIaUxpbmsgZXJsYW5nRkNhbGwgRnVuY3Rpb24KCUhpTGluayBlcmxhbmdCSUYgRnVuY3Rpb24KCUhpTGluayBlcmxhbmdGdW5jdGlvbiBGdW5jdGlvbgoJSGlMaW5rIGVybGFuZ01vZHVsZUZ1bmN0aW9uIEZ1bmN0aW9uCgoJIiBlcmxhbmdfa2V5d29yZHMKCUhpTGluayBlcmxhbmdEaXJlY3RpdmUgVHlwZQoJSGlMaW5rIGVybGFuZ0NvbnN0YW50IFR5cGUKCUhpTGluayBlcmxhbmdLZXl3b3JkIEtleXdvcmQKCUhpTGluayBlcmxhbmdQcm9jZXNzIFNwZWNpYWwKCUhpTGluayBlcmxhbmdQb3J0IFNwZWNpYWwKCUhpTGluayBlcmxhbmdOb2RlIFNwZWNpYWwKCUhpTGluayBlcmxhbmdSZXNlcnZlZCBTdGF0ZW1lbnQKCUhpTGluayBlcmxhbmdFeHRyYSBTdGF0ZW1lbnQKCUhpTGluayBlcmxhbmdTaWduYWwgU3RhdGVtZW50CgoJZGVsY29tbWFuZCBIaUxpbmsKZW5kaWYKCgpsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJlcmxhbmciCgoiIGVvZgo=