From 5165d10f16413c69f792077645ca2971beaa7954 Mon Sep 17 00:00:00 2001 From: "David A. Cuadrado" Date: Sun, 4 Nov 2007 09:11:05 -0500 Subject: [PATCH] - Updated qonf - Make optional --dlib-dir and --yamf-dir --- qonfigure.rb | 2162 +++++++++++++++++++++++++++++----------------------------- setup.rb | 4 +- 2 files changed, 1083 insertions(+), 1083 deletions(-) diff --git a/qonfigure.rb b/qonfigure.rb index db93a91..f16aba0 100755 --- a/qonfigure.rb +++ b/qonfigure.rb @@ -642,23 +642,23 @@ end # cW9uZmlndXJlLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDAwMDAw -# ADEwNzEyMTI2MDc2ADAxMTIwNgAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAw +# ADEwNzEzMzQ3MzA2ADAxMjQxMwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdl -# awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa3Jhd2VrAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvcW9uZi5yYgAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAw -# MDE3NTEAMDAwMDAwMzE2NTMAMTA3MDUwMjA1MjcAMDEyNTAyACAwAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUwADAw +# MDE3NTAAMDAwMDAwMzE2NTMAMTA3MDQ0NzU3MjEAMDEzNzE2ACAwAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr +# cmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -961,11 +961,11 @@ end # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvZGV0ZWN0b3Mu # cmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAw -# MDAxNzUxADAwMDE3NTEAMDAwMDAwMDE3MjQAMTA2NzM3NDAzMDMAMDEzMzUy +# MDAxNzUwADAwMDE3NTAAMDAwMDAwMDE3MjQAMTA3MDQ0NTEyMjEAMDE0NTQ2 # ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -995,11 +995,11 @@ end # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvbWFr # ZWZpbGUucmJ+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAw -# MDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDIyMDQAMTA3MTIxMjYwMDcA -# MDEzNDc2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# MDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDI2NTYAMTA3MTMzNDcxMzcA +# MDE0NzI2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1018,33 +1018,33 @@ end # aXIsIHN0YXR1c0ZpbGUpDQogICAgICBuZXdtYWtlZmlsZSA9ICIiDQogICAg # ICANCiAgICAgIHJ1YnlfYmluID0gIiN7OjpDb25maWc6OkNPTkZJR1siYmlu # ZGlyIl19LyN7OjpDb25maWc6OkNPTkZJR1sicnVieV9pbnN0YWxsX25hbWUi -# XX0iDQogICAgICANCiAgICAgIGlmIEZpbGU6OkFMVF9TRVBBUkFUT1INCiAg -# ICAgICAgcnVieV9iaW4uZ3N1YiEoIi8iLCBGaWxlOjpBTFRfU0VQQVJBVE9S -# KQ0KICAgICAgICBkZXN0ZGlyLmdzdWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFS -# QVRPUikNCiAgICAgIGVuZA0KICAgICAgDQogICAgICBGaWxlLm9wZW4obWFr -# ZWZpbGUsICJyIikgeyB8ZnwNCiAgICAgICAgbGluZXMgPSBmLnJlYWRsaW5l -# cw0KICAgICAgCQ0KICAgICAgICBsaW5lcy5lYWNoIHsgfGxpbmV8DQogICAg -# ICAgICAgaWYgbGluZSA9fiAvXklOU1RBTExfRElSLw0KICAgICAgICAgIAlu -# ZXdtYWtlZmlsZSArPSAiSU5TVEFMTF9ST09UID0gI3tkZXN0ZGlyfSINCiAg -# ICAgICAgICBlbmQNCiAgICAgICAgICBuZXdtYWtlZmlsZSArPSBsaW5lDQog -# ICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgRmlsZS5vcGVuKG1h -# a2VmaWxlLCAidyIpIHsgfGZ8DQogICAgICAgIGYgPDwgbmV3bWFrZWZpbGUN -# CiAgICAgIH0NCiAgICBlbmQNCiAgZW5kDQplbmQNCg0KDQoAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# XX0iDQogICAgICANCiMgICAgICAgaWYgRmlsZTo6QUxUX1NFUEFSQVRPUg0K +# IyAgICAgICAgIHJ1YnlfYmluLmdzdWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFS +# QVRPUikNCiMgICAgICAgICBkZXN0ZGlyLmdzdWIhKCIvIiwgRmlsZTo6QUxU +# X1NFUEFSQVRPUikNCiMgICAgICAgZW5kDQogICAgICANCiAgICAgIEZpbGUu +# b3BlbihtYWtlZmlsZSwgInIiKSB7IHxmfA0KICAgICAgICBsaW5lcyA9IGYu +# cmVhZGxpbmVzDQogICAgICAJDQogICAgICAgIGluZGV4ID0gMA0KICAgICAg +# ICB3aGlsZSBpbmRleCA8IGxpbmVzLnNpemUNCiAgICAgICAgICBsaW5lID0g +# bGluZXNbaW5kZXhdDQogICAgICAgICAgaWYgbGluZSA9fiAvXlxzK1wkXChR +# TUFLRVwpLw0KICAgICAgICAgICAgbmV3bWFrZWZpbGUgKz0gbGluZQ0KICAg +# ICAgICAgICAgbmV3bWFrZWZpbGUgKz0gIlx0I3tydWJ5X2Jpbn0gI3tzdGF0 +# dXNGaWxlfSAje21ha2VmaWxlfVxuIg0KICAgICAgICAgICAgaW5kZXggKz0g +# MQ0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIGlmIGxpbmUgPX4gL15J +# TlNUQUxMX0RJUi8NCiAgICAgICAgICAgICAgbmV3bWFrZWZpbGUgKz0gIklO +# U1RBTExfUk9PVCA9ICN7ZGVzdGRpcn1cbiINCiAgICAgICAgICAgIGVuZA0K +# ICAgICAgICAgICAgbmV3bWFrZWZpbGUgKz0gbGluZQ0KICAgICAgICAgIGVu +# ZA0KICAgICAgICAgIGluZGV4ICs9IDENCiAgICAgICAgZW5kDQogICAgICB9 +# DQogICAgICANCiAgICAgIEZpbGUub3BlbihtYWtlZmlsZSwgInciKSB7IHxm +# fA0KICAgICAgICBmIDw8IG5ld21ha2VmaWxlDQogICAgICB9DQogICAgZW5k +# DQogIGVuZA0KZW5kDQoNCg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAHFvbmZpZ3VyZS9wbGFpbl9mcm9udGVuZC5yYgAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEAMDAwMTc1MQAw -# MDAwMDAwMDQ2NgAxMDY3Mzc0MDMwMwAwMTQ1NDQAIDAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAw +# MDAwMDAwMDQ2NgAxMDcwNDQ1MTIyMQAwMTU3NDAAIDAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 -# YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtyYXdlawAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1063,11 +1063,11 @@ end # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABx # b25maWd1cmUvY29uZmlnLnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDY3NDMA -# MTA3MDUwMjA1MjcAMDEzMDA2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDY3NDMA +# MTA3MDQ0NTUzMzQAMDE0MjIwACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2Vr -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrcmF3ZWsAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1154,11 +1154,11 @@ end # ICBlbmQKZW5kCgplbmQKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # cW9uZmlndXJlL3BrZ2NvbmZpZy5yYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDA2NjE0 -# ADEwNjczNzQwMzAzADAxMzUxMgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDA2NjE0 +# ADEwNzA0NDUxMjIxADAxNDcwNgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdl -# awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa3Jhd2VrAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1243,680 +1243,1100 @@ end # cGtnY29uZmlnLmxpYnMKZW5kCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AHFvbmZpZ3VyZS90a19mcm9udGVuZC5yYgAAAAAAAAAAAAAAAAAAAAAAAAAA +# AHFvbmZpZ3VyZS9xbWFrZS5yYn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwNjI3 -# MwAxMDY3Mzc0MDMwMwAwMTQwNjEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwNzMw +# NAAxMDcwNDQ0NDAyMgAwMTQyMzEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3 -# ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAACgoKCnJlcXVpcmUgJ2Zyb250ZW5kJwoKbW9k -# dWxlIFFvbmYKICBjbGFzcyBUa0Zyb250ZW5kIDwgRnJvbnRlbmQKICAgIGRl -# ZiBpbml0aWFsaXplCiAgICBlbmQKICAgIAogICAgZGVmIHBhcnNlKG9wdHMp -# CiAgICAgIHJvb3QgPSBUa1Jvb3QubmV3KCkgeyB0aXRsZSAiQ29uZmlndXJl -# Li4uIiB9CiAgICAgIG9wdHMuZWFjaCB7IHxvcHRpb258CiAgICAgICAgbGFi -# ZWwgPSBUa0xhYmVsLm5ldyhyb290KSB7IHRleHQgb3B0aW9uWzpuYW1lXSB9 -# CiAgICAgICAgCiAgICAgICAgY2FzZSBvcHRpb25bOnR5cGVdLnRvX3MuZG93 -# bmNhc2UKICAgICAgICAgIHdoZW4gInN0cmluZyIKICAgICAgICAgICAgZW50 -# cnkgPSBUa0VudHJ5Lm5ldyhyb290KQogICAgICAgICAgICBlbnRyeS5pbnNl -# cnQoMCwgKG9wdGlvbls6dmFsdWVdLm5pbD8gPyBvcHRpb25bOmRlZmF1bHRd -# LnRvX3MgOiBvcHRpb25bOnZhbHVlXS50b19zICApKQogICAgICAgICAgICBU -# a0dyaWQuZ3JpZChsYWJlbCwgZW50cnksICJjb2x1bW5zcGFuIiA9PiAyKQog -# ICAgICAgICAgICAKICAgICAgICAgICAgb3B0aW9uWzppbnB1dF0gPSBlbnRy -# eQogICAgICAgICAgd2hlbiAicGF0aCIKICAgICAgICAgICAgZW50cnkgPSBU -# a0VudHJ5Lm5ldyhyb290KQogICAgICAgICAgICBlbnRyeS5pbnNlcnQoMCwg -# KG9wdGlvbls6dmFsdWVdLm5pbD8gPyBvcHRpb25bOmRlZmF1bHRdLnRvX3Mg -# OiBvcHRpb25bOnZhbHVlXS50b19zICApKQogICAgICAgICAgICAKICAgICAg -# ICAgICAgZ2V0RmlsZSA9IFRrQnV0dG9uLm5ldyhyb290KSB7CiAgICAgICAg -# ICAgICAgdGV4dCAiQnJvd3NlLi4uIgogICAgICAgICAgICAgIGNvbW1hbmQg -# ewogICAgICAgICAgICAgICAgdmFsID0gVGsuY2hvb3NlRGlyZWN0b3J5CiAg -# ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGVudHJ5LnZhbHVlID0g -# dmFsIGlmIG5vdCB2YWwudG9fcy5lbXB0eT8KICAgICAgICAgICAgICB9CiAg -# ICAgICAgICAgIH0KICAgICAgICAgICAgVGtHcmlkLmdyaWQobGFiZWwsIGVu -# dHJ5LCBnZXRGaWxlLCAiY29sdW1uc3BhbiIgPT4gMikKICAgICAgICAgICAg -# CiAgICAgICAgICAgIG9wdGlvbls6aW5wdXRdID0gZW50cnkKICAgICAgICAg -# IGVsc2UKICAgICAgICAgICAgZ2l2ZW4gPSAob3B0aW9uWzp2YWx1ZV0ubmls -# PyA/IG9wdGlvbls6ZGVmYXVsdF0udG9fcyA6IG9wdGlvbls6dmFsdWVdLnRv -# X3MgICkKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIGdpdmVuID09ICJm -# YWxzZSIgb3IgZ2l2ZW4gPT0gIm5vIiBvciBnaXZlbi5lbXB0eT8KICAgICAg -# ICAgICAgICB2YWx1ZSA9IDAKICAgICAgICAgICAgZWxzZQogICAgICAgICAg -# ICAgIHZhbHVlID0gMQogICAgICAgICAgICBlbmQKICAgICAgICAgICAgCiAg -# ICAgICAgICAgIG15Y2hlY2sgPSBUa1ZhcmlhYmxlLm5ldyh2YWx1ZSkKICAg -# ICAgICAgICAgY2hlY2sgPSBUa0NoZWNrQnV0dG9uLm5ldyhyb290KSB7CiAg -# ICAgICAgICAgICAgdmFyaWFibGUgbXljaGVjawogICAgICAgICAgICB9CiAg -# ICAgICAgICAgIAogICAgICAgICAgICBUa0dyaWQuZ3JpZChsYWJlbCwgY2hl -# Y2ssICJjb2x1bW5zcGFuIiA9PiAyKQogICAgICAgICAgICAKICAgICAgICAg -# ICAgb3B0aW9uWzppbnB1dF0gPSBteWNoZWNrCiAgICAgICAgZW5kCiAgICAg -# IH0KICAgICAgCiAgICAgIG9rID0gVGtCdXR0b24ubmV3KHJvb3QpIHsKICAg -# ICAgICB0ZXh0ICJPayIKICAgICAgICBjb21tYW5kICB7CiAgICAgICAgICBv -# ayA9IHRydWUKICAgICAgICAgIHJlcXVpcmVkX2ZpZWxkcyA9IFtdCiAgICAg -# ICAgICAKICAgICAgICAgIG9wdHMuZWFjaCB7IHxvcHRpb258CiAgICAgICAg -# ICAgIHZhbHVlID0gb3B0aW9uWzpkZWZhdWx0XQogICAgICAgICAgICBjYXNl -# IG9wdGlvbls6dHlwZV0uZG93bmNhc2UKICAgICAgICAgICAgICB3aGVuICJz -# dHJpbmciCiAgICAgICAgICAgICAgICB2YWx1ZSA9IG9wdGlvbls6aW5wdXRd -# LnZhbHVlCiAgICAgICAgICAgICAgd2hlbiAicGF0aCIKICAgICAgICAgICAg -# ICAgIHZhbHVlID0gRmlsZS5leHBhbmRfcGF0aChvcHRpb25bOmlucHV0XS52 -# YWx1ZSkKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB2YWx1 -# ZSA9IG9wdGlvbls6aW5wdXRdLnZhbHVlCiAgICAgICAgICAgIGVuZAogICAg -# ICAgICAgICAKICAgICAgICAgICAgaWYgb3B0aW9uWzpvcHRpb25hbF0gPT0g -# ZmFsc2UgYW5kIHZhbHVlLnRvX3MuZW1wdHk/CiAgICAgICAgICAgICAgcmVx -# dWlyZWRfZmllbGRzIDw8IG9wdGlvbls6bmFtZV0KICAgICAgICAgICAgICBv -# ayA9IGZhbHNlCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBvcHRp -# b25bOnZhbHVlXSA9IHZhbHVlCiAgICAgICAgICAgIGVuZAogICAgICAgICAg -# ICAKICAgICAgICAgICAgb2sgPSBvayAmJiB0cnVlCiAgICAgICAgICB9CiAg -# ICAgICAgICAKICAgICAgICAgIGlmIG9rCiAgICAgICAgICAgIFRrLmV4aXQK -# ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgVGtXYXJuaW5nLnNob3coIlRo -# ZSBmaWVsZHMgJyN7cmVxdWlyZWRfZmllbGRzLmpvaW4oIiwgIil9JyBhcmUg -# cmVxdWlyZWQuIikKICAgICAgICAgIGVuZAogICAgICAgIH0KICAgICAgfQog -# ICAgICAKICAgICAgY2FuY2VsID0gVGtCdXR0b24ubmV3KHJvb3QpIHsKICAg -# ICAgICB0ZXh0ICJDYW5jZWwiCiAgICAgICAgY29tbWFuZCAgewogICAgICAg -# ICAgVGsuZXhpdAogICAgICAgICAgZXhpdCAwCiAgICAgICAgfQogICAgICB9 -# CiAgICAgICAgCiAgICAgIFRrR3JpZC5ncmlkKG9rLCBjYW5jZWwsICJjb2x1 -# bW5zcGFuIiA9PiAzKQogICAgICAKICAgICAgVGsubWFpbmxvb3AKICAgICAg -# CiAgICAgIHRydWUKICAgIGVuZAogIGVuZAplbmQKCgppZiBfX0ZJTEVfXyA9 -# PSAkMCAjIFRlc3QKICBvcHRzID0gW10KICBvcHRzIDw8IHs6bmFtZSA9PiAi -# bmFtZTEiLCA6dHlwZSA9PiAiU3RyaW5nIiwgOmRlZmF1bHQgPT4gInZhbHVl -# IiwgOm9wdGlvbmFsID0+IGZhbHNlIH0KICBvcHRzIDw8IHs6bmFtZSA9PiAi -# bmFtZTQiLCA6dHlwZSA9PiAiUGF0aCIsIDpkZWZhdWx0ID0+ICJ2YWx1ZSIg -# fQogIG9wdHMgPDwgezpuYW1lID0+ICJuYW1lMiIsIDp0eXBlID0+ICJCb29s -# IiwgOmRlZmF1bHQgPT4gdHJ1ZSB9CiAgb3B0cyA8PCB7Om5hbWUgPT4gIm5h -# bWUzIiwgOnR5cGUgPT4gIlZvaWQiLCA6ZGVmYXVsdCA9PiBmYWxzZSB9CiAg -# CiAgdGsgPSBRb25mOjpUa0Zyb250ZW5kLm5ldwogIHRrLnBhcnNlKG9wdHMp -# CiAgCiAgcHV0cyBvcHRzLmZpcnN0Wzp2YWx1ZV0KZW5kCgoKCgAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AABxb25maWd1cmUvdGVzdC5yYn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDUx -# NzcAMTA2NzMwMjI3MDQAMDEyNzIxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jh -# d2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAHJlcXVpcmUgJ3RtcGRpcicKCm1vZHVsZSBR -# b25mCiAgY2xhc3MgVGVzdAogICAgYXR0cl9yZWFkZXIgOmluY2x1ZGVfcGF0 -# aCwgOmxpYnMsIDpkZWZpbmVzCiAgICAKICAgIGRlZiBpbml0aWFsaXplKG9w -# dGlvbnMpCiAgICAgIEBvcHRpb25zID0gb3B0aW9ucwogICAgICAKICAgICAg -# QGluY2x1ZGVfcGF0aCA9IFtdCiAgICAgIEBsaWJzID0gW10KICAgICAgQGRl -# ZmluZXMgPSBbXQogICAgICAKICAgICAgQGluY2x1ZGVfcGF0aCA9IG9wdGlv -# bnNbOmluY2x1ZGVwYXRoXSBpZiBub3Qgb3B0aW9uc1s6aW5jbHVkZXBhdGhd -# Lm5pbD8KICAgICAgQGxpYnMgPDwgb3B0aW9uc1s6bGlic10gaWYgbm90IG9w -# dGlvbnNbOmxpYnNdLm5pbD8KICAgICAgQGRlZmluZXMgPSBvcHRpb25zWzpk -# ZWZpbmVzXSBpZiBub3Qgb3B0aW9uc1s6ZGVmaW5lc10ubmlsPwogICAgZW5k -# CiAgICAKICAgIGRlZiBydW4ocW1ha2UpCiAgICAgICMgR2VuZXJhdGUKICAg -# ICAgcmV0ID0gZmFsc2UKICAgICAgY3dkID0gRGlyLmdldHdkCiAgICAgIAog -# ICAgICBxb25mdGVzdF9kaXIgPSAiI3tEaXI6OnRtcGRpcn0vcW9uZl90ZXN0 -# cy4je1Byb2Nlc3MucGlkfSIKICAgICAgYmFzZXBhdGggPSBxb25mdGVzdF9k -# aXIrIi90ZXN0XyN7UHJvY2Vzcy5waWR9IgogICAgICAKICAgICAgZmlsZXBh -# dGggPSBiYXNlcGF0aCsiLmNwcCIKICAgICAgcHJvcGF0aCA9IGJhc2VwYXRo -# KyIucHJvIgogICAgICB0YXJnZXQgPSAidGVzdF8je1Byb2Nlc3MucGlkfV9h -# cHAiCiAgICAgIAogICAgICBiZWdpbgogICAgICAgIERpci5ta2Rpcihxb25m -# dGVzdF9kaXIpIGlmIG5vdCBGaWxlLmV4aXN0cz8ocW9uZnRlc3RfZGlyKQog -# ICAgICAgIEZpbGUub3BlbihmaWxlcGF0aCwgInciKSB7IHxmfAogICAgICAg -# ICAgCiAgICAgICAgICB3cml0ZV90ZXN0KGYpCiAgICAgICAgICAKICAgICAg -# ICAgIEZpbGUub3Blbihwcm9wYXRoLCAidyIpIHsgfHBmfAogICAgICAgICAg -# ICBwZiA8PCAiU09VUkNFUyArPSAiIDw8IGZpbGVwYXRoIDw8ICJcbiIKICAg -# ICAgICAgICAgcGYgPDwgIlRFTVBMQVRFID0gYXBwIiA8PCAiXG4iCiAgICAg -# ICAgICAgIHBmIDw8ICJUQVJHRVQgPSAiIDw8ICJcbiIKICAgICAgICAgICAg -# cGYgPDwgIklOQ0xVREVQQVRIICs9ICIgPDwgQGluY2x1ZGVfcGF0aC5qb2lu -# KCIgIikgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiTElCUyArPSAiIDw8 -# IEBsaWJzLmpvaW4oIiAiKSA8PCAiXG4iCiAgICAgICAgICAgIHBmIDw8ICJE -# RUZJTkVTICs9ICIgPDwgQGRlZmluZXMuam9pbigiICIpIDw8ICJcbiIKICAg -# ICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAgICAgICAg -# RGlyLmNoZGlyKHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAgICBxbWFr -# ZS5ydW4ocHJvcGF0aCkKICAgICAgICByZXQgPSBxbWFrZS5jb21waWxlCiAg -# ICAgICAgcW1ha2UuY2xlYW5fdXAKICAgICAgICAKICAgICAgICBEaXIuY2hk -# aXIoY3dkKQogICAgICAgIAogICAgICAgIEZpbGUudW5saW5rKHRhcmdldCkg -# aWYgRmlsZS5leGlzdHM/KHRhcmdldCkgIyBGSVhNRTogd2luZG93cwogICAg -# ICAgIEZpbGUudW5saW5rKHByb3BhdGgpIGlmIEZpbGUuZXhpc3RzPyhwcm9w -# YXRoKQogICAgICAgIEZpbGUudW5saW5rKGZpbGVwYXRoKSBpZiBGaWxlLmV4 -# aXN0cz8oZmlsZXBhdGgpCiAgICAgICAgRmlsZVV0aWxzLnJtX3JmKHFvbmZ0 -# ZXN0X2RpcikKICAgICAgICAKICAgICAgcmVzY3VlID0+IGUKICAgICAgICBw -# dXRzIGUKICAgICAgICBwdXRzIGUuYmFja3RyYWNlCiAgICAgICAgCiAgICAg -# ICAgRGlyLmNoZGlyKGN3ZCkKICAgICAgICBGaWxlLnVubGluayh0YXJnZXQp -# IGlmIEZpbGUuZXhpc3RzPyh0YXJnZXQpICMgRklYTUU6IHdpbmRvd3MKICAg -# ICAgICBGaWxlLnVubGluayhwcm9wYXRoKSBpZiBGaWxlLmV4aXN0cz8ocHJv -# cGF0aCkKICAgICAgICBGaWxlLnVubGluayhmaWxlcGF0aCkgaWYgRmlsZS5l -# eGlzdHM/KGZpbGVwYXRoKQogICAgICAgIEZpbGVVdGlscy5ybV9yZihxb25m -# dGVzdF9kaXIpCiAgICAgICAgCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAg -# IGVuc3VyZQogICAgICBlbmQKICAgICAgCiAgICAgIHJldAogICAgZW5kCiAg -# ICAKICAgIGRlZiBhZGRfaW5jbHVkZV9wYXRoKGluY3BhdGgpCiAgICAgIEBp -# bmNsdWRlX3BhdGggPDwgaW5jcGF0aAogICAgZW5kCiAgICAKICAgIGRlZiBh -# ZGRfbGliKGxpYikKICAgICAgQGxpYnMgPDwgbGliCiAgICBlbmQKICAgIAog -# ICAgZGVmIGFkZF9kZWZpbmUoZGVmaW5lKQogICAgICBAZGVmaW5lcyA8PCBk -# ZWZpbmUKICAgIGVuZAogICAgCiAgICBwcml2YXRlCiAgICBkZWYgd3JpdGVf -# dGVzdChmKQogICAgICBoZWFkZXJzID0gIiIKICAgICAgaWYgbm90IEBvcHRp -# b25zWzpoZWFkZXJzXS5uaWw/CiAgICAgICAgQG9wdGlvbnNbOmhlYWRlcnNd -# LmVhY2ggeyB8aGVhZGVyfAogICAgICAgICAgaGVhZGVycyArPSAiI2luY2x1 -# ZGUgPCN7aGVhZGVyfT5cbiIKICAgICAgICB9CiAgICAgIGVuZAogICAgICBj -# b2RlID0gJUAKaW50IG1haW4oKQp7CiAgcmV0dXJuIDA7Cn0KQAogICAgICBp -# ZiBub3QgQG9wdGlvbnNbOmN1c3RvbV0ubmlsPwogICAgICAgIGNvZGUgPSBA -# b3B0aW9uc1s6Y3VzdG9tXQogICAgICBlbmQKICAgICAgCiAgICAgIGYgPDwg -# aGVhZGVycyA8PCAiXG4iIDw8IGNvZGUgPDwgIlxuIgogICAgZW5kCiAgZW5k -# CmVuZAoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS90ZXN0 -# LnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw -# NjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwNjMyMAAxMDcwMjMxMzIyMwAw -# MTI1MDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtyYXdlawAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAACnJlcXVpcmUgJ29wZW4zJwpyZXF1aXJlICdk +# ZXRlY3RvcycKCm1vZHVsZSBRb25mCgpjbGFzcyBRTWFrZQogIGRlZiBpbml0 +# aWFsaXplKHBhdGhzID0gW10sIGxvZ19maWxlID0gbmlsKQogICAgQHBhdGhz +# ID0gWyAicW1ha2UtcXQ0IiwgInFtYWtlNCIsICJxbWFrZSIgXQogICAgQHBh +# dGhzLmNvbmNhdChwYXRocykKICAgIAogICAgaWYoICRERUJVRyApCiAgICAg +# ICRzdGRlcnIgPDwgIlFNYWtlIHBhdGhzOiAiIDw8IEBwYXRocy5qb2luKCIg +# IikgPDwgIlxuIgogICAgZW5kCiAgICAKICAgIGlmIG5vdCBmaW5kX3FtYWtl +# KCI0LjAuMCIpCiAgICAgICAgICAgIHJhaXNlICJDYW4ndCBmaW5kIHZhbGlk +# IHFtYWtlIC0gcXQ0IgogICAgZW5kCiAgICAKICAgIEBsb2dfZmlsZSA9IGxv +# Z19maWxlCiAgICBpZiggQGxvZ19maWxlLm5pbD8gKQogICAgICBAbG9nX2Zp +# bGUgPSBvbGRsb2NhdGlvbigiY29uZmlnLmxvZyIpCiAgICBlbmQKICAgIAog +# ICAgQG1ha2UgPSAibWFrZSIKICAgIAogICAgaWYgRGV0ZWN0T1Mub3M/ID09 +# IDEKICAgICAgQG1ha2Vfb3B0aW9ucyA9ICIyPj4gI3tAbG9nX2ZpbGV9Igog +# ICAgZWxzZQogICAgICBAbWFrZV9vcHRpb25zID0gIj4+ICN7QGxvZ19maWxl +# fSAyPj4gI3tAbG9nX2ZpbGV9IgogICAgZW5kCiAgZW5kCiAgICAgICAgCiAg +# ZGVmIGZpbmRfcW1ha2UobWlucXR2ZXJzaW9uLCBvcCA9IDIpCiAgICAKICAg +# IAogICAgbWludmVyID0gbWlucXR2ZXJzaW9uLnNwbGl0KCIuIikKICAgIEBw +# YXRocy5lYWNoIHsgfHBhdGh8CiAgICAgIGJlZ2luCiAgICAgICAgdmVyc2lv +# biA9IFtdCiAgICAgICAgb2sgPSB0cnVlCiAgICAgICAgCiAgICAgICAgSU8u +# cG9wZW4oIiN7cGF0aH0gLXF1ZXJ5IFFUX1ZFUlNJT04gMj4gI3tuZXdsb2Nh +# dGlvbigicW1ha2VfbG9nIil9IikgeyB8cHJjfAogICAgICAgICAgdmVyc2lv +# biA9IHByYy5yZWFkbGluZXMuam9pbigiIikuc3BsaXQoIi4iKQogICAgICAg +# IH0KICAgICAgICAKICAgICAgICBuZXh0IGlmICQ/ICE9IDAKICAgICAgICAK +# ICAgICAgICB2ZXJzaW9uLnNpemUudGltZXMgeyB8aXwKICAgICAgICAgIGlm +# IHZlcnNpb24uc2l6ZSA8IGkgYW5kIG1pbnZlci5zaXplID49IDMKICAgICAg +# ICAgICAgICAgICAgYnJlYWsKICAgICAgICAgIGVuZAogICAgICAgICAgCiAg +# ICAgICAgICBjYXNlIG9wCiAgICAgICAgICAgIHdoZW4gMAogICAgICAgICAg +# ICAgIGlmIHZlcnNpb25baV0gIT0gbWludmVyW2ldCiAgICAgICAgICAgICAg +# ICBvayA9IGZhbHNlCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg +# ICAgIGVuZAogICAgICAgICAgICB3aGVuIDEKICAgICAgICAgICAgICBpZiB2 +# ZXJzaW9uW2ldIDwgbWludmVyW2ldCiAgICAgICAgICAgICAgICBvayA9IGZh +# bHNlCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgIGVuZAog +# ICAgICAgICAgICB3aGVuIDIKICAgICAgICAgICAgICBpZiB2ZXJzaW9uW2ld +# IDwgbWludmVyW2ldCiAgICAgICAgICAgICAgICBvayA9IGZhbHNlCiAgICAg +# ICAgICAgICAgICBicmVhawogICAgICAgICAgICAgIGVuZAogICAgICAgICAg +# ZW5kCiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIG9rCiAgICAgICAg +# ICBAcGF0aCA9IHBhdGgKICAgICAgICAgIAogICAgICAgICAgaWYgJERFQlVH +# CiAgICAgICAgICAgIHB1dHMgIlVzaW5nIHFtYWtlOiAje0BwYXRofSAje3Zl +# cnNpb24uam9pbigiLiIpfSIKICAgICAgICAgIGVuZAogICAgICAgICAgCiAg +# ICAgICAgICByZXR1cm4gb2sKICAgICAgICBlbmQKICAgICAgcmVzY3VlCiAg +# ICAgIGVuc3VyZQogICAgICBlbmQKICAgIH0KICAKICAgIHJldHVybiBmYWxz +# ZQogIGVuZAogICAgICAgIAogICAgICAgIGRlZiBxdWVyeSh2YXIpCiAgICAg +# ICAgICAgICAgICBvdXRwdXQgPSBgI3tAcGF0aH0gLXF1ZXJ5ICN7dmFyfWAK +# ICAgICAgICAgICAgICAgIG91dHB1dAogICAgICAgIGVuZAogICAgICAgIAog +# ICAgICAgIGRlZiBydW4oYXJncyA9ICIiLCByZWN1ciA9IGZhbHNlKQogICAg +# ICAgICAgICAgICAgaWYgJERFQlVHCiAgICAgICAgICAgICAgICAgIHB1dHMg +# IkFSR1MgPSAje2FyZ3N9IgogICAgICAgICAgICAgICAgZW5kCiAgICAgICAg +# ICAgICAgICBvcHRpb25zID0gIiIKICAgICAgICAgICAgICAgIGlmIHJlY3Vy +# CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgKz0gIi1yIgogICAg +# ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAg +# ICAgIG91dHB1dCA9IGAje0BwYXRofSAje2FyZ3N9ICN7b3B0aW9uc30gYAog +# ICAgICAgICAgICAgICAgaWYgb3V0cHV0LnN0cmlwLmVtcHR5PwogICAgICAg +# ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZQogICAgICAgICAgICAgICAg +# ZW5kCgogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgZW5k +# CiAgICAgICAgCiAgICAgICAgZGVmIGNvbXBpbGUKICAgICAgICAgICAgICAg +# IGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgIElPLnBvcGVuKCIje0Bt +# YWtlfSBjbGVhbiAje0BtYWtlX29wdGlvbnN9IikgeyB8Y3wKICAgICAgICAg +# ICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBjLnJlYWRsaW5lcwog +# ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg +# ICAgIAogICAgICAgICAgICAgICAgICAgICAgICB0aW1lcyA9IDAKICAgICAg +# ICAgICAgICAgICAgICAgICAgZW5kY29kZSA9IDIKICAgICAgICAgICAgICAg +# ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUub3BlbihA +# bG9nX2ZpbGUsICJhIiApIGRvIHxmfAogICAgICAgICAgICAgICAgICAgICAg +# ICAgIGYgPDwgIj09PT09PiBDT01QSUxJTkcgXG4iCiAgICAgICAgICAgICAg +# ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg +# ICAgICAgICAgICAgICAgICAgd2hpbGUgZW5kY29kZSA9PSAyIGFuZCB0aW1l +# cyA8PSAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU8ucG9w +# ZW4oIiN7QG1ha2V9ICN7QG1ha2Vfb3B0aW9uc30iLCAiciIpIHsgfGN8CiAg +# ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQg +# PSBjLnJlYWRsaW5lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +# IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg +# ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg +# ICAgICAgICAgICBlbmRjb2RlID0gJD8gPj4gOAogICAgICAgICAgICAgICAg +# ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg +# ICAgIHRpbWVzICs9IDEKICAgICAgICAgICAgICAgICAgICAgICAgZW5kCiAg +# ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgcmVzY3Vl +# CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAg +# ICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg +# IGlmIGVuZGNvZGUgIT0gMAogICAgICAgICAgICAgICAgICAgICAgICByZXR1 +# cm4gZmFsc2UKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAg +# CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZQogICAgICAgIGVuZAogICAg +# ICAgIAogICAgICAgIGRlZiBjbGVhbl91cAogICAgICBJTy5wb3BlbigiI3tA +# bWFrZX0gZGlzdGNsZWFuIDI+PiBkaXN0Y2xlYW4iKSB7IHxjfAogICAgICAg +# ICAgb3V0cHV0ID0gYy5yZWFkbGluZXMKICAgICAgfQogICAgICAgIGVuZApl +# bmQKCmVuZCAjbW9kdWxlCgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAcmVxdWlyZSAndG1wZGlyJwpyZXF1aXJlICdmaWxldXRpbHMnCgptb2R1 -# bGUgUW9uZgogIGNsYXNzIFRlc3QKICAgIGF0dHJfcmVhZGVyIDppbmNsdWRl -# X3BhdGgsIDpsaWJzLCA6ZGVmaW5lcywgOmlkCiAgICAKICAgIGRlZiBpbml0 -# aWFsaXplKG9wdGlvbnMsIGNvbmZpZywgbG9nX2ZpbGUgPSBuaWwpCiAgICAg -# IEBvcHRpb25zID0gb3B0aW9ucwogICAgICAKICAgICAgQGluY2x1ZGVfcGF0 -# aCA9IFtdCiAgICAgIEBsaWJzID0gW10KICAgICAgQGRlZmluZXMgPSBbXQog -# ICAgICBAaWQgPSBvcHRpb25zWzppZF0KICAgICAgCiAgICAgIEBpbmNsdWRl -# X3BhdGggPSBvcHRpb25zWzppbmNsdWRlcGF0aF0gaWYgbm90IG9wdGlvbnNb -# OmluY2x1ZGVwYXRoXS5uaWw/CiAgICAgIEBsaWJzIDw8IG9wdGlvbnNbOmxp -# YnNdIGlmIG5vdCBvcHRpb25zWzpsaWJzXS5uaWw/CiAgICAgIEBkZWZpbmVz -# ID0gb3B0aW9uc1s6ZGVmaW5lc10gaWYgbm90IG9wdGlvbnNbOmRlZmluZXNd -# Lm5pbD8KICAgICAgCiAgICAgIEBjb25maWcgPSBjb25maWcKICAgICAgCiAg -# ICAgIEBsb2dfZmlsZSA9IGxvZ19maWxlCiAgICBlbmQKICAgIAogICAgZGVm -# IHJ1bihxbWFrZSkKICAgICAgIyBHZW5lcmF0ZQogICAgICByZXQgPSBmYWxz -# ZQogICAgICBjd2QgPSBEaXIuZ2V0d2QKICAgICAgCiAgICAgIHFvbmZ0ZXN0 -# X2RpciA9ICIje0Rpcjo6dG1wZGlyfS9xb25mX3Rlc3RzLiN7UHJvY2Vzcy5w -# aWR9IgogICAgICBiYXNlcGF0aCA9IHFvbmZ0ZXN0X2RpcisiL3Rlc3RfI3tQ -# cm9jZXNzLnBpZH0iCiAgICAgIAogICAgICBmaWxlcGF0aCA9IGJhc2VwYXRo -# KyIuY3BwIgogICAgICBwcm9wYXRoID0gYmFzZXBhdGgrIi5wcm8iCiAgICAg -# IHRhcmdldCA9ICJ0ZXN0XyN7UHJvY2Vzcy5waWR9X2FwcCIKICAgICAgCiAg -# ICAgIGJlZ2luCiAgICAgICAgRGlyLm1rZGlyKHFvbmZ0ZXN0X2RpcikgaWYg -# bm90IEZpbGUuZXhpc3RzPyhxb25mdGVzdF9kaXIpCiAgICAgICAgRmlsZS5v -# cGVuKGZpbGVwYXRoLCAidyIpIHsgfGZ8CiAgICAgICAgICAKICAgICAgICAg -# IHdyaXRlX3Rlc3QoZikKICAgICAgICAgIAogICAgICAgICAgRmlsZS5vcGVu -# KHByb3BhdGgsICJ3IikgeyB8cGZ8CiAgICAgICAgICAgIHBmIDw8ICJTT1VS -# Q0VTICs9ICIgPDwgZmlsZXBhdGggPDwgIlxuIgogICAgICAgICAgICBwZiA8 -# PCAiVEVNUExBVEUgPSBhcHAiIDw8ICJcbiIKICAgICAgICAgICAgcGYgPDwg -# IlRBUkdFVCA9ICIgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiSU5DTFVE -# RVBBVEggKz0gIiA8PCBAaW5jbHVkZV9wYXRoLmpvaW4oIiAiKSA8PCAiICIg -# PDwgQGNvbmZpZy5pbmNsdWRlX3BhdGguam9pbigiICIpIDw8ICJcbiIKICAg -# ICAgICAgICAgcGYgPDwgIkxJQlMgKz0gIiA8PCBAbGlicy5qb2luKCIgIikg -# PDwgIiAiIDw8ICBAY29uZmlnLmxpYnMuam9pbigiICIpIDw8ICJcbiIKICAg -# ICAgICAgICAgcGYgPDwgIkRFRklORVMgKz0gIiA8PCBAZGVmaW5lcy5qb2lu -# KCIgIikgPDwgIiAiIDw8IEBjb25maWcuZGVmaW5lcy5qb2luKCIgIikgPDwg -# IlxuIgogICAgICAgICAgICBwZiA8PCAiQ09ORklHIC09IGRlYnVnIiA8PCAi -# XG4iCiAgICAgICAgICAgIHBmIDw8ICJDT05GSUcgKj0gcmVsZWFzZSIgPDwg -# IlxuIgogICAgICAgICAgICBwZiA8PCAiREVTVERJUiA9ICN7cW9uZnRlc3Rf -# ZGlyfSIgPDwgIlxuIgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAK -# ICAgICAgICAKICAgICAgICBEaXIuY2hkaXIocW9uZnRlc3RfZGlyKQogICAg -# ICAgIAogICAgICAgIHFtYWtlLnJ1bihwcm9wYXRoKQogICAgICAgIHJldCA9 -# IHFtYWtlLmNvbXBpbGUKICAgICAgICBxbWFrZS5jbGVhbl91cAogICAgICAg -# IAogICAgICAgIERpci5jaGRpcihjd2QpCiAgICAgICAgCiAgICAgICAgRmls -# ZS51bmxpbmsodGFyZ2V0KSBpZiBGaWxlLmV4aXN0cz8odGFyZ2V0KSAjIEZJ -# WE1FOiB3aW5kb3dzCiAgICAgICAgRmlsZS51bmxpbmsocHJvcGF0aCkgaWYg -# RmlsZS5leGlzdHM/KHByb3BhdGgpCiAgICAgICAgRmlsZS51bmxpbmsoZmls -# ZXBhdGgpIGlmIEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkKICAgICAgICBGaWxl -# VXRpbHMucm1fcmYocW9uZnRlc3RfZGlyKQogICAgICAgIAogICAgICByZXNj -# dWUgPT4gZQogICAgICAgIHB1dHMgZQogICAgICAgIHB1dHMgZS5iYWNrdHJh -# Y2UKICAgICAgICAKICAgICAgICBEaXIuY2hkaXIoY3dkKQogICAgICAgIEZp -# bGUudW5saW5rKHRhcmdldCkgaWYgRmlsZS5leGlzdHM/KHRhcmdldCkgIyBG -# SVhNRTogd2luZG93cwogICAgICAgIEZpbGUudW5saW5rKHByb3BhdGgpIGlm -# IEZpbGUuZXhpc3RzPyhwcm9wYXRoKQogICAgICAgIEZpbGUudW5saW5rKGZp -# bGVwYXRoKSBpZiBGaWxlLmV4aXN0cz8oZmlsZXBhdGgpCiAgICAgICAgRmls -# ZVV0aWxzLnJtX3JmKHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAgICBy -# ZXR1cm4gZmFsc2UKICAgICAgZW5zdXJlCiAgICAgIGVuZAogICAgICAKICAg -# ICAgcmV0CiAgICBlbmQKICAgIAogICAgZGVmIGFkZF9pbmNsdWRlX3BhdGgo -# aW5jcGF0aCkKICAgICAgQGluY2x1ZGVfcGF0aCA8PCBpbmNwYXRoCiAgICBl -# bmQKICAgIAogICAgZGVmIGFkZF9saWIobGliKQogICAgICBAbGlicyA8PCBs -# aWIKICAgIGVuZAogICAgCiAgICBkZWYgYWRkX2RlZmluZShkZWZpbmUpCiAg -# ICAgIEBkZWZpbmVzIDw8IGRlZmluZQogICAgZW5kCiAgICAKICAgIHByaXZh -# dGUKICAgIGRlZiB3cml0ZV90ZXN0KGYpCiAgICAgIGhlYWRlcnMgPSAiIgog -# ICAgICBpZiBub3QgQG9wdGlvbnNbOmhlYWRlcnNdLm5pbD8KICAgICAgICBA -# b3B0aW9uc1s6aGVhZGVyc10uZWFjaCB7IHxoZWFkZXJ8CiAgICAgICAgICBo -# ZWFkZXJzICs9ICIjaW5jbHVkZSA8I3toZWFkZXJ9PlxuIgogICAgICAgIH0K -# ICAgICAgZW5kCiAgICAgIGNvZGUgPSAlQAppbnQgbWFpbigpCnsKICByZXR1 -# cm4gMDsKfQpACiAgICAgIGlmIG5vdCBAb3B0aW9uc1s6Y3VzdG9tXS5uaWw/ -# CiAgICAgICAgY29kZSA9IEBvcHRpb25zWzpjdXN0b21dCiAgICAgIGVuZAog -# ICAgICAKICAgICAgZiA8PCBoZWFkZXJzIDw8ICJcbiIgPDwgY29kZSA8PCAi -# XG4iCiAgICAgIAogICAgICBpZiggbm90IEBsb2dfZmlsZS5uaWw/ICkKICAg -# ICAgICBGaWxlLm9wZW4oQGxvZ19maWxlLCAiYSIpIGRvIHxsZmlsZXwKICAg -# ICAgICAgIGxmaWxlIDw8ICJcblxuXG4tLS0tLS0tLS0tLS1cbiIgPDwgaGVh -# ZGVycyA8PCAiXG4iIDw8IGNvZGUgPDwgIlxuLS0tLS0tLS0tLS0tXG5cblxu -# IgogICAgICAgIGVuZAogICAgICBlbmQKICAgIGVuZAogIGVuZAplbmQKCgAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvY29u -# ZmlnLnJifgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAw -# MDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDQ2MTQAMTA3MDIzMTM1MTIA -# MDEzMTczACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS90a19mcm9udGVuZC5yYgAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAA +# MDAwMTc1MAAwMDAwMDAwNjI3MwAxMDcwNDQ1MTIyMQAwMTUyNTUAIDAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKCnJlcXVp +# cmUgJ2Zyb250ZW5kJwoKbW9kdWxlIFFvbmYKICBjbGFzcyBUa0Zyb250ZW5k +# IDwgRnJvbnRlbmQKICAgIGRlZiBpbml0aWFsaXplCiAgICBlbmQKICAgIAog +# ICAgZGVmIHBhcnNlKG9wdHMpCiAgICAgIHJvb3QgPSBUa1Jvb3QubmV3KCkg +# eyB0aXRsZSAiQ29uZmlndXJlLi4uIiB9CiAgICAgIG9wdHMuZWFjaCB7IHxv +# cHRpb258CiAgICAgICAgbGFiZWwgPSBUa0xhYmVsLm5ldyhyb290KSB7IHRl +# eHQgb3B0aW9uWzpuYW1lXSB9CiAgICAgICAgCiAgICAgICAgY2FzZSBvcHRp +# b25bOnR5cGVdLnRvX3MuZG93bmNhc2UKICAgICAgICAgIHdoZW4gInN0cmlu +# ZyIKICAgICAgICAgICAgZW50cnkgPSBUa0VudHJ5Lm5ldyhyb290KQogICAg +# ICAgICAgICBlbnRyeS5pbnNlcnQoMCwgKG9wdGlvbls6dmFsdWVdLm5pbD8g +# PyBvcHRpb25bOmRlZmF1bHRdLnRvX3MgOiBvcHRpb25bOnZhbHVlXS50b19z +# ICApKQogICAgICAgICAgICBUa0dyaWQuZ3JpZChsYWJlbCwgZW50cnksICJj +# b2x1bW5zcGFuIiA9PiAyKQogICAgICAgICAgICAKICAgICAgICAgICAgb3B0 +# aW9uWzppbnB1dF0gPSBlbnRyeQogICAgICAgICAgd2hlbiAicGF0aCIKICAg +# ICAgICAgICAgZW50cnkgPSBUa0VudHJ5Lm5ldyhyb290KQogICAgICAgICAg +# ICBlbnRyeS5pbnNlcnQoMCwgKG9wdGlvbls6dmFsdWVdLm5pbD8gPyBvcHRp +# b25bOmRlZmF1bHRdLnRvX3MgOiBvcHRpb25bOnZhbHVlXS50b19zICApKQog +# ICAgICAgICAgICAKICAgICAgICAgICAgZ2V0RmlsZSA9IFRrQnV0dG9uLm5l +# dyhyb290KSB7CiAgICAgICAgICAgICAgdGV4dCAiQnJvd3NlLi4uIgogICAg +# ICAgICAgICAgIGNvbW1hbmQgewogICAgICAgICAgICAgICAgdmFsID0gVGsu +# Y2hvb3NlRGlyZWN0b3J5CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAg +# ICAgIGVudHJ5LnZhbHVlID0gdmFsIGlmIG5vdCB2YWwudG9fcy5lbXB0eT8K +# ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVGtH +# cmlkLmdyaWQobGFiZWwsIGVudHJ5LCBnZXRGaWxlLCAiY29sdW1uc3BhbiIg +# PT4gMikKICAgICAgICAgICAgCiAgICAgICAgICAgIG9wdGlvbls6aW5wdXRd +# ID0gZW50cnkKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgZ2l2ZW4gPSAo +# b3B0aW9uWzp2YWx1ZV0ubmlsPyA/IG9wdGlvbls6ZGVmYXVsdF0udG9fcyA6 +# IG9wdGlvbls6dmFsdWVdLnRvX3MgICkKICAgICAgICAgICAgCiAgICAgICAg +# ICAgIGlmIGdpdmVuID09ICJmYWxzZSIgb3IgZ2l2ZW4gPT0gIm5vIiBvciBn +# aXZlbi5lbXB0eT8KICAgICAgICAgICAgICB2YWx1ZSA9IDAKICAgICAgICAg +# ICAgZWxzZQogICAgICAgICAgICAgIHZhbHVlID0gMQogICAgICAgICAgICBl +# bmQKICAgICAgICAgICAgCiAgICAgICAgICAgIG15Y2hlY2sgPSBUa1Zhcmlh +# YmxlLm5ldyh2YWx1ZSkKICAgICAgICAgICAgY2hlY2sgPSBUa0NoZWNrQnV0 +# dG9uLm5ldyhyb290KSB7CiAgICAgICAgICAgICAgdmFyaWFibGUgbXljaGVj +# awogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBUa0dy +# aWQuZ3JpZChsYWJlbCwgY2hlY2ssICJjb2x1bW5zcGFuIiA9PiAyKQogICAg +# ICAgICAgICAKICAgICAgICAgICAgb3B0aW9uWzppbnB1dF0gPSBteWNoZWNr +# CiAgICAgICAgZW5kCiAgICAgIH0KICAgICAgCiAgICAgIG9rID0gVGtCdXR0 +# b24ubmV3KHJvb3QpIHsKICAgICAgICB0ZXh0ICJPayIKICAgICAgICBjb21t +# YW5kICB7CiAgICAgICAgICBvayA9IHRydWUKICAgICAgICAgIHJlcXVpcmVk +# X2ZpZWxkcyA9IFtdCiAgICAgICAgICAKICAgICAgICAgIG9wdHMuZWFjaCB7 +# IHxvcHRpb258CiAgICAgICAgICAgIHZhbHVlID0gb3B0aW9uWzpkZWZhdWx0 +# XQogICAgICAgICAgICBjYXNlIG9wdGlvbls6dHlwZV0uZG93bmNhc2UKICAg +# ICAgICAgICAgICB3aGVuICJzdHJpbmciCiAgICAgICAgICAgICAgICB2YWx1 +# ZSA9IG9wdGlvbls6aW5wdXRdLnZhbHVlCiAgICAgICAgICAgICAgd2hlbiAi +# cGF0aCIKICAgICAgICAgICAgICAgIHZhbHVlID0gRmlsZS5leHBhbmRfcGF0 +# aChvcHRpb25bOmlucHV0XS52YWx1ZSkKICAgICAgICAgICAgICBlbHNlCiAg +# ICAgICAgICAgICAgICB2YWx1ZSA9IG9wdGlvbls6aW5wdXRdLnZhbHVlCiAg +# ICAgICAgICAgIGVuZAogICAgICAgICAgICAKICAgICAgICAgICAgaWYgb3B0 +# aW9uWzpvcHRpb25hbF0gPT0gZmFsc2UgYW5kIHZhbHVlLnRvX3MuZW1wdHk/ +# CiAgICAgICAgICAgICAgcmVxdWlyZWRfZmllbGRzIDw8IG9wdGlvbls6bmFt +# ZV0KICAgICAgICAgICAgICBvayA9IGZhbHNlCiAgICAgICAgICAgIGVsc2UK +# ICAgICAgICAgICAgICBvcHRpb25bOnZhbHVlXSA9IHZhbHVlCiAgICAgICAg +# ICAgIGVuZAogICAgICAgICAgICAKICAgICAgICAgICAgb2sgPSBvayAmJiB0 +# cnVlCiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIGlmIG9rCiAg +# ICAgICAgICAgIFRrLmV4aXQKICAgICAgICAgIGVsc2UKICAgICAgICAgICAg +# VGtXYXJuaW5nLnNob3coIlRoZSBmaWVsZHMgJyN7cmVxdWlyZWRfZmllbGRz +# LmpvaW4oIiwgIil9JyBhcmUgcmVxdWlyZWQuIikKICAgICAgICAgIGVuZAog +# ICAgICAgIH0KICAgICAgfQogICAgICAKICAgICAgY2FuY2VsID0gVGtCdXR0 +# b24ubmV3KHJvb3QpIHsKICAgICAgICB0ZXh0ICJDYW5jZWwiCiAgICAgICAg +# Y29tbWFuZCAgewogICAgICAgICAgVGsuZXhpdAogICAgICAgICAgZXhpdCAw +# CiAgICAgICAgfQogICAgICB9CiAgICAgICAgCiAgICAgIFRrR3JpZC5ncmlk +# KG9rLCBjYW5jZWwsICJjb2x1bW5zcGFuIiA9PiAzKQogICAgICAKICAgICAg +# VGsubWFpbmxvb3AKICAgICAgCiAgICAgIHRydWUKICAgIGVuZAogIGVuZApl +# bmQKCgppZiBfX0ZJTEVfXyA9PSAkMCAjIFRlc3QKICBvcHRzID0gW10KICBv +# cHRzIDw8IHs6bmFtZSA9PiAibmFtZTEiLCA6dHlwZSA9PiAiU3RyaW5nIiwg +# OmRlZmF1bHQgPT4gInZhbHVlIiwgOm9wdGlvbmFsID0+IGZhbHNlIH0KICBv +# cHRzIDw8IHs6bmFtZSA9PiAibmFtZTQiLCA6dHlwZSA9PiAiUGF0aCIsIDpk +# ZWZhdWx0ID0+ICJ2YWx1ZSIgfQogIG9wdHMgPDwgezpuYW1lID0+ICJuYW1l +# MiIsIDp0eXBlID0+ICJCb29sIiwgOmRlZmF1bHQgPT4gdHJ1ZSB9CiAgb3B0 +# cyA8PCB7Om5hbWUgPT4gIm5hbWUzIiwgOnR5cGUgPT4gIlZvaWQiLCA6ZGVm +# YXVsdCA9PiBmYWxzZSB9CiAgCiAgdGsgPSBRb25mOjpUa0Zyb250ZW5kLm5l +# dwogIHRrLnBhcnNlKG9wdHMpCiAgCiAgcHV0cyBvcHRzLmZpcnN0Wzp2YWx1 +# ZV0KZW5kCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvdGVzdC5yYn4AAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUw +# ADAwMDE3NTAAMDAwMDAwMDYzMjAAMTA3MDIyMDUxMzYAMDE0MTA2ACAwAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcXVpcmUg +# J3RtcGRpcicKcmVxdWlyZSAnZmlsZXV0aWxzJwoKbW9kdWxlIFFvbmYKICBj +# bGFzcyBUZXN0CiAgICBhdHRyX3JlYWRlciA6aW5jbHVkZV9wYXRoLCA6bGli +# cywgOmRlZmluZXMsIDppZAogICAgCiAgICBkZWYgaW5pdGlhbGl6ZShvcHRp +# b25zLCBjb25maWcsIGxvZ19maWxlID0gbmlsKQogICAgICBAb3B0aW9ucyA9 +# IG9wdGlvbnMKICAgICAgCiAgICAgIEBpbmNsdWRlX3BhdGggPSBbXQogICAg +# ICBAbGlicyA9IFtdCiAgICAgIEBkZWZpbmVzID0gW10KICAgICAgQGlkID0g +# b3B0aW9uc1s6aWRdCiAgICAgIAogICAgICBAaW5jbHVkZV9wYXRoID0gb3B0 +# aW9uc1s6aW5jbHVkZXBhdGhdIGlmIG5vdCBvcHRpb25zWzppbmNsdWRlcGF0 +# aF0ubmlsPwogICAgICBAbGlicyA8PCBvcHRpb25zWzpsaWJzXSBpZiBub3Qg +# b3B0aW9uc1s6bGlic10ubmlsPwogICAgICBAZGVmaW5lcyA9IG9wdGlvbnNb +# OmRlZmluZXNdIGlmIG5vdCBvcHRpb25zWzpkZWZpbmVzXS5uaWw/CiAgICAg +# IAogICAgICBAY29uZmlnID0gY29uZmlnCiAgICAgIAogICAgICBAbG9nX2Zp +# bGUgPSBsb2dfZmlsZQogICAgZW5kCiAgICAKICAgIGRlZiBydW4ocW1ha2Up +# CiAgICAgICMgR2VuZXJhdGUKICAgICAgcmV0ID0gZmFsc2UKICAgICAgY3dk +# ID0gRGlyLmdldHdkCiAgICAgIAogICAgICBxb25mdGVzdF9kaXIgPSAiI3tE +# aXI6OnRtcGRpcn0vcW9uZl90ZXN0cy4je1Byb2Nlc3MucGlkfSIKICAgICAg +# YmFzZXBhdGggPSBxb25mdGVzdF9kaXIrIi90ZXN0XyN7UHJvY2Vzcy5waWR9 +# IgogICAgICAKICAgICAgZmlsZXBhdGggPSBiYXNlcGF0aCsiLmNwcCIKICAg +# ICAgcHJvcGF0aCA9IGJhc2VwYXRoKyIucHJvIgogICAgICB0YXJnZXQgPSAi +# dGVzdF8je1Byb2Nlc3MucGlkfV9hcHAiCiAgICAgIAogICAgICBiZWdpbgog +# ICAgICAgIERpci5ta2Rpcihxb25mdGVzdF9kaXIpIGlmIG5vdCBGaWxlLmV4 +# aXN0cz8ocW9uZnRlc3RfZGlyKQogICAgICAgIEZpbGUub3BlbihmaWxlcGF0 +# aCwgInciKSB7IHxmfAogICAgICAgICAgCiAgICAgICAgICB3cml0ZV90ZXN0 +# KGYpCiAgICAgICAgICAKICAgICAgICAgIEZpbGUub3Blbihwcm9wYXRoLCAi +# dyIpIHsgfHBmfAogICAgICAgICAgICBwZiA8PCAiU09VUkNFUyArPSAiIDw8 +# IGZpbGVwYXRoIDw8ICJcbiIKICAgICAgICAgICAgcGYgPDwgIlRFTVBMQVRF +# ID0gYXBwIiA8PCAiXG4iCiAgICAgICAgICAgIHBmIDw8ICJUQVJHRVQgPSAi +# IDw8ICJcbiIKICAgICAgICAgICAgcGYgPDwgIklOQ0xVREVQQVRIICs9ICIg +# PDwgQGluY2x1ZGVfcGF0aC5qb2luKCIgIikgPDwgIiAiIDw8IEBjb25maWcu +# aW5jbHVkZV9wYXRoLmpvaW4oIiAiKSA8PCAiXG4iCiAgICAgICAgICAgIHBm +# IDw8ICJMSUJTICs9ICIgPDwgQGxpYnMuam9pbigiICIpIDw8ICIgIiA8PCAg +# QGNvbmZpZy5saWJzLmpvaW4oIiAiKSA8PCAiXG4iCiAgICAgICAgICAgIHBm +# IDw8ICJERUZJTkVTICs9ICIgPDwgQGRlZmluZXMuam9pbigiICIpIDw8ICIg +# IiA8PCBAY29uZmlnLmRlZmluZXMuam9pbigiICIpIDw8ICJcbiIKICAgICAg +# ICAgICAgcGYgPDwgIkNPTkZJRyAtPSBkZWJ1ZyIgPDwgIlxuIgogICAgICAg +# ICAgICBwZiA8PCAiQ09ORklHICo9IHJlbGVhc2UiIDw8ICJcbiIKICAgICAg +# ICAgICAgcGYgPDwgIkRFU1RESVIgPSAje3FvbmZ0ZXN0X2Rpcn0iIDw8ICJc +# biIKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgCiAg +# ICAgICAgRGlyLmNoZGlyKHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAg +# ICBxbWFrZS5ydW4ocHJvcGF0aCkKICAgICAgICByZXQgPSBxbWFrZS5jb21w +# aWxlCiAgICAgICAgcW1ha2UuY2xlYW5fdXAKICAgICAgICAKICAgICAgICBE +# aXIuY2hkaXIoY3dkKQogICAgICAgIAogICAgICAgIEZpbGUudW5saW5rKHRh +# cmdldCkgaWYgRmlsZS5leGlzdHM/KHRhcmdldCkgIyBGSVhNRTogd2luZG93 +# cwogICAgICAgIEZpbGUudW5saW5rKHByb3BhdGgpIGlmIEZpbGUuZXhpc3Rz +# Pyhwcm9wYXRoKQogICAgICAgIEZpbGUudW5saW5rKGZpbGVwYXRoKSBpZiBG +# aWxlLmV4aXN0cz8oZmlsZXBhdGgpCiAgICAgICAgRmlsZVV0aWxzLnJtX3Jm +# KHFvbmZ0ZXN0X2RpcikKICAgICAgICAKICAgICAgcmVzY3VlID0+IGUKICAg +# ICAgICBwdXRzIGUKICAgICAgICBwdXRzIGUuYmFja3RyYWNlCiAgICAgICAg +# CiAgICAgICAgRGlyLmNoZGlyKGN3ZCkKICAgICAgICBGaWxlLnVubGluayh0 +# YXJnZXQpIGlmIEZpbGUuZXhpc3RzPyh0YXJnZXQpICMgRklYTUU6IHdpbmRv +# d3MKICAgICAgICBGaWxlLnVubGluayhwcm9wYXRoKSBpZiBGaWxlLmV4aXN0 +# cz8ocHJvcGF0aCkKICAgICAgICBGaWxlLnVubGluayhmaWxlcGF0aCkgaWYg +# RmlsZS5leGlzdHM/KGZpbGVwYXRoKQogICAgICAgIEZpbGVVdGlscy5ybV9y +# Zihxb25mdGVzdF9kaXIpCiAgICAgICAgCiAgICAgICAgcmV0dXJuIGZhbHNl +# CiAgICAgIGVuc3VyZQogICAgICBlbmQKICAgICAgCiAgICAgIHJldAogICAg +# ZW5kCiAgICAKICAgIGRlZiBhZGRfaW5jbHVkZV9wYXRoKGluY3BhdGgpCiAg +# ICAgIEBpbmNsdWRlX3BhdGggPDwgaW5jcGF0aAogICAgZW5kCiAgICAKICAg +# IGRlZiBhZGRfbGliKGxpYikKICAgICAgQGxpYnMgPDwgbGliCiAgICBlbmQK +# ICAgIAogICAgZGVmIGFkZF9kZWZpbmUoZGVmaW5lKQogICAgICBAZGVmaW5l +# cyA8PCBkZWZpbmUKICAgIGVuZAogICAgCiAgICBwcml2YXRlCiAgICBkZWYg +# d3JpdGVfdGVzdChmKQogICAgICBoZWFkZXJzID0gIiIKICAgICAgaWYgbm90 +# IEBvcHRpb25zWzpoZWFkZXJzXS5uaWw/CiAgICAgICAgQG9wdGlvbnNbOmhl +# YWRlcnNdLmVhY2ggeyB8aGVhZGVyfAogICAgICAgICAgaGVhZGVycyArPSAi +# I2luY2x1ZGUgPCN7aGVhZGVyfT5cbiIKICAgICAgICB9CiAgICAgIGVuZAog +# ICAgICBjb2RlID0gJUAKaW50IG1haW4oKQp7CiAgcmV0dXJuIDA7Cn0KQAog +# ICAgICBpZiBub3QgQG9wdGlvbnNbOmN1c3RvbV0ubmlsPwogICAgICAgIGNv +# ZGUgPSBAb3B0aW9uc1s6Y3VzdG9tXQogICAgICBlbmQKICAgICAgCiAgICAg +# IGYgPDwgaGVhZGVycyA8PCAiXG4iIDw8IGNvZGUgPDwgIlxuIgogICAgICAK +# ICAgICAgaWYoIG5vdCBAbG9nX2ZpbGUubmlsPyApCiAgICAgICAgRmlsZS5v +# cGVuKEBsb2dfZmlsZSwgImEiKSBkbyB8bGZpbGV8CiAgICAgICAgICBsZmls +# ZSA8PCAiXG5cblxuLS0tLS0tLS0tLS0tXG4iIDw8IGhlYWRlcnMgPDwgIlxu +# IiA8PCBjb2RlIDw8ICJcbi0tLS0tLS0tLS0tLVxuXG5cbiIKICAgICAgICBl +# bmQKICAgICAgZW5kCiAgICBlbmQKICBlbmQKZW5kCgoAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL3Rlc3QucmIAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1 +# MAAwMDAxNzUwADAwMDAwMDA2MzIwADEwNzA0NDUxMjIxADAxMzcxMAAgMAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXF1aXJl +# ICd0bXBkaXInCnJlcXVpcmUgJ2ZpbGV1dGlscycKCm1vZHVsZSBRb25mCiAg +# Y2xhc3MgVGVzdAogICAgYXR0cl9yZWFkZXIgOmluY2x1ZGVfcGF0aCwgOmxp +# YnMsIDpkZWZpbmVzLCA6aWQKICAgIAogICAgZGVmIGluaXRpYWxpemUob3B0 +# aW9ucywgY29uZmlnLCBsb2dfZmlsZSA9IG5pbCkKICAgICAgQG9wdGlvbnMg +# PSBvcHRpb25zCiAgICAgIAogICAgICBAaW5jbHVkZV9wYXRoID0gW10KICAg +# ICAgQGxpYnMgPSBbXQogICAgICBAZGVmaW5lcyA9IFtdCiAgICAgIEBpZCA9 +# IG9wdGlvbnNbOmlkXQogICAgICAKICAgICAgQGluY2x1ZGVfcGF0aCA9IG9w +# dGlvbnNbOmluY2x1ZGVwYXRoXSBpZiBub3Qgb3B0aW9uc1s6aW5jbHVkZXBh +# dGhdLm5pbD8KICAgICAgQGxpYnMgPDwgb3B0aW9uc1s6bGlic10gaWYgbm90 +# IG9wdGlvbnNbOmxpYnNdLm5pbD8KICAgICAgQGRlZmluZXMgPSBvcHRpb25z +# WzpkZWZpbmVzXSBpZiBub3Qgb3B0aW9uc1s6ZGVmaW5lc10ubmlsPwogICAg +# ICAKICAgICAgQGNvbmZpZyA9IGNvbmZpZwogICAgICAKICAgICAgQGxvZ19m +# aWxlID0gbG9nX2ZpbGUKICAgIGVuZAogICAgCiAgICBkZWYgcnVuKHFtYWtl +# KQogICAgICAjIEdlbmVyYXRlCiAgICAgIHJldCA9IGZhbHNlCiAgICAgIGN3 +# ZCA9IERpci5nZXR3ZAogICAgICAKICAgICAgcW9uZnRlc3RfZGlyID0gIiN7 +# RGlyOjp0bXBkaXJ9L3FvbmZfdGVzdHMuI3tQcm9jZXNzLnBpZH0iCiAgICAg +# IGJhc2VwYXRoID0gcW9uZnRlc3RfZGlyKyIvdGVzdF8je1Byb2Nlc3MucGlk +# fSIKICAgICAgCiAgICAgIGZpbGVwYXRoID0gYmFzZXBhdGgrIi5jcHAiCiAg +# ICAgIHByb3BhdGggPSBiYXNlcGF0aCsiLnBybyIKICAgICAgdGFyZ2V0ID0g +# InRlc3RfI3tQcm9jZXNzLnBpZH1fYXBwIgogICAgICAKICAgICAgYmVnaW4K +# ICAgICAgICBEaXIubWtkaXIocW9uZnRlc3RfZGlyKSBpZiBub3QgRmlsZS5l +# eGlzdHM/KHFvbmZ0ZXN0X2RpcikKICAgICAgICBGaWxlLm9wZW4oZmlsZXBh +# dGgsICJ3IikgeyB8ZnwKICAgICAgICAgIAogICAgICAgICAgd3JpdGVfdGVz +# dChmKQogICAgICAgICAgCiAgICAgICAgICBGaWxlLm9wZW4ocHJvcGF0aCwg +# InciKSB7IHxwZnwKICAgICAgICAgICAgcGYgPDwgIlNPVVJDRVMgKz0gIiA8 +# PCBmaWxlcGF0aCA8PCAiXG4iCiAgICAgICAgICAgIHBmIDw8ICJURU1QTEFU +# RSA9IGFwcCIgPDwgIlxuIgogICAgICAgICAgICBwZiA8PCAiVEFSR0VUID0g +# IiA8PCAiXG4iCiAgICAgICAgICAgIHBmIDw8ICJJTkNMVURFUEFUSCArPSAi +# IDw8IEBpbmNsdWRlX3BhdGguam9pbigiICIpIDw8ICIgIiA8PCBAY29uZmln +# LmluY2x1ZGVfcGF0aC5qb2luKCIgIikgPDwgIlxuIgogICAgICAgICAgICBw +# ZiA8PCAiTElCUyArPSAiIDw8IEBsaWJzLmpvaW4oIiAiKSA8PCAiICIgPDwg +# IEBjb25maWcubGlicy5qb2luKCIgIikgPDwgIlxuIgogICAgICAgICAgICBw +# ZiA8PCAiREVGSU5FUyArPSAiIDw8IEBkZWZpbmVzLmpvaW4oIiAiKSA8PCAi +# ICIgPDwgQGNvbmZpZy5kZWZpbmVzLmpvaW4oIiAiKSA8PCAiXG4iCiAgICAg +# ICAgICAgIHBmIDw8ICJDT05GSUcgLT0gZGVidWciIDw8ICJcbiIKICAgICAg +# ICAgICAgcGYgPDwgIkNPTkZJRyAqPSByZWxlYXNlIiA8PCAiXG4iCiAgICAg +# ICAgICAgIHBmIDw8ICJERVNURElSID0gI3txb25mdGVzdF9kaXJ9IiA8PCAi +# XG4iCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIAog +# ICAgICAgIERpci5jaGRpcihxb25mdGVzdF9kaXIpCiAgICAgICAgCiAgICAg +# ICAgcW1ha2UucnVuKHByb3BhdGgpCiAgICAgICAgcmV0ID0gcW1ha2UuY29t +# cGlsZQogICAgICAgIHFtYWtlLmNsZWFuX3VwCiAgICAgICAgCiAgICAgICAg +# RGlyLmNoZGlyKGN3ZCkKICAgICAgICAKICAgICAgICBGaWxlLnVubGluayh0 +# YXJnZXQpIGlmIEZpbGUuZXhpc3RzPyh0YXJnZXQpICMgRklYTUU6IHdpbmRv +# d3MKICAgICAgICBGaWxlLnVubGluayhwcm9wYXRoKSBpZiBGaWxlLmV4aXN0 +# cz8ocHJvcGF0aCkKICAgICAgICBGaWxlLnVubGluayhmaWxlcGF0aCkgaWYg +# RmlsZS5leGlzdHM/KGZpbGVwYXRoKQogICAgICAgIEZpbGVVdGlscy5ybV9y +# Zihxb25mdGVzdF9kaXIpCiAgICAgICAgCiAgICAgIHJlc2N1ZSA9PiBlCiAg +# ICAgICAgcHV0cyBlCiAgICAgICAgcHV0cyBlLmJhY2t0cmFjZQogICAgICAg +# IAogICAgICAgIERpci5jaGRpcihjd2QpCiAgICAgICAgRmlsZS51bmxpbmso +# dGFyZ2V0KSBpZiBGaWxlLmV4aXN0cz8odGFyZ2V0KSAjIEZJWE1FOiB3aW5k +# b3dzCiAgICAgICAgRmlsZS51bmxpbmsocHJvcGF0aCkgaWYgRmlsZS5leGlz +# dHM/KHByb3BhdGgpCiAgICAgICAgRmlsZS51bmxpbmsoZmlsZXBhdGgpIGlm +# IEZpbGUuZXhpc3RzPyhmaWxlcGF0aCkKICAgICAgICBGaWxlVXRpbHMucm1f +# cmYocW9uZnRlc3RfZGlyKQogICAgICAgIAogICAgICAgIHJldHVybiBmYWxz +# ZQogICAgICBlbnN1cmUKICAgICAgZW5kCiAgICAgIAogICAgICByZXQKICAg +# IGVuZAogICAgCiAgICBkZWYgYWRkX2luY2x1ZGVfcGF0aChpbmNwYXRoKQog +# ICAgICBAaW5jbHVkZV9wYXRoIDw8IGluY3BhdGgKICAgIGVuZAogICAgCiAg +# ICBkZWYgYWRkX2xpYihsaWIpCiAgICAgIEBsaWJzIDw8IGxpYgogICAgZW5k +# CiAgICAKICAgIGRlZiBhZGRfZGVmaW5lKGRlZmluZSkKICAgICAgQGRlZmlu +# ZXMgPDwgZGVmaW5lCiAgICBlbmQKICAgIAogICAgcHJpdmF0ZQogICAgZGVm +# IHdyaXRlX3Rlc3QoZikKICAgICAgaGVhZGVycyA9ICIiCiAgICAgIGlmIG5v +# dCBAb3B0aW9uc1s6aGVhZGVyc10ubmlsPwogICAgICAgIEBvcHRpb25zWzpo +# ZWFkZXJzXS5lYWNoIHsgfGhlYWRlcnwKICAgICAgICAgIGhlYWRlcnMgKz0g +# IiNpbmNsdWRlIDwje2hlYWRlcn0+XG4iCiAgICAgICAgfQogICAgICBlbmQK +# ICAgICAgY29kZSA9ICVACmludCBtYWluKCkKewogIHJldHVybiAwOwp9CkAK +# ICAgICAgaWYgbm90IEBvcHRpb25zWzpjdXN0b21dLm5pbD8KICAgICAgICBj +# b2RlID0gQG9wdGlvbnNbOmN1c3RvbV0KICAgICAgZW5kCiAgICAgIAogICAg +# ICBmIDw8IGhlYWRlcnMgPDwgIlxuIiA8PCBjb2RlIDw8ICJcbiIKICAgICAg +# CiAgICAgIGlmKCBub3QgQGxvZ19maWxlLm5pbD8gKQogICAgICAgIEZpbGUu +# b3BlbihAbG9nX2ZpbGUsICJhIikgZG8gfGxmaWxlfAogICAgICAgICAgbGZp +# bGUgPDwgIlxuXG5cbi0tLS0tLS0tLS0tLVxuIiA8PCBoZWFkZXJzIDw8ICJc +# biIgPDwgY29kZSA8PCAiXG4tLS0tLS0tLS0tLS1cblxuXG4iCiAgICAgICAg +# ZW5kCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCmVuZAoKAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9jb25maWcucmJ+AAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3 +# NTAAMDAwMTc1MAAwMDAwMDAwNjc0MwAxMDcwNDQ1NTI3NAAwMTQ0MjEAIDAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACm1vZHVs +# ZSBRb25mCgpjbGFzcyBQYWNrYWdlCiAgYXR0cl9yZWFkZXIgOmluY2x1ZGVf +# cGF0aCwgOmxpYnMsIDptb2R1bGVzLCA6ZGVmaW5lcywgOm5hbWUKICBkZWYg +# aW5pdGlhbGl6ZShuYW1lKQogICAgQGluY2x1ZGVfcGF0aCA9IFtdCiAgICBA +# bGlicyA9IFtdCiAgICBAbW9kdWxlcyA9IFtdCiAgICBAZGVmaW5lcyA9IFtd +# CiAgICBAbmFtZSA9IG5hbWUKICBlbmQKICAKICBkZWYgYWRkX2luY2x1ZGVf +# cGF0aChwYXRoKQogICAgQGluY2x1ZGVfcGF0aCA8PCBwYXRoCiAgZW5kCiAg +# CiAgZGVmIGFkZF9saWIobGliKQogICAgQGxpYnMgPDwgbGliLnRvX3MKICBl +# bmQKICAKICBkZWYgYWRkX3F0bW9kdWxlKG1vZCkKICAgIEBtb2R1bGVzIDw8 +# IG1vZAogIGVuZAogIAogIGRlZiBhZGRfZGVmaW5lKGRlZmluZSkKICAgIEBk +# ZWZpbmVzIDw8IGRlZmluZQogIGVuZAogIAogIGRlZiB3cml0ZShmKQogICAg +# aWYgbm90IEBpbmNsdWRlX3BhdGguZW1wdHk/CiAgICAgICAgZiA8PCAiSU5D +# TFVERVBBVEggKz0gIiA8PCBAaW5jbHVkZV9wYXRoLnVuaXEuam9pbigiICIp +# IDw8ICJcbiIKICAgIGVuZAogICAgCiAgICBpZiBub3QgQGxpYnMuZW1wdHk/ +# CiAgICAgICAgZiA8PCAiTElCUyArPSAiIDw8IEBsaWJzLnVuaXEuam9pbigi +# ICIpIDw8ICJcbiIKICAgIGVuZAogICAgCiAgICBpZiBub3QgQG1vZHVsZXMu +# ZW1wdHk/CiAgICAgICAgZiA8PCAiUVQgKz0gIiA8PCBAbW9kdWxlcy51bmlx +# LmpvaW4oIiAiKSA8PCAiXG4iCiAgICBlbmQKICAgIAogICAgaWYgbm90IEBk +# ZWZpbmVzLmVtcHR5PwogICAgICAgIGYgPDwgIkRFRklORVMgKz0gIiA8PCBA +# ZGVmaW5lcy51bmlxLmpvaW4oIiAiKSA8PCAiXG4iCiAgICBlbmQKICBlbmQK +# ZW5kCgpjbGFzcyBDb25maWcgPCBQYWNrYWdlCiAgYXR0cl9yZWFkZXIgOmJ1 +# aWxkX2RpcgogIGRlZiBpbml0aWFsaXplCiAgICBzdXBlcihuaWwpCiAgICBA +# cW9uZl9mZWF0dXJlcyA9IFtdCiAgICBAcW9uZl9wYWNrYWdlcyA9IFtdCiAg +# ICBAYnVpbGRfZGlyID0gb2xkbG9jYXRpb24oIiIpKyIvX2J1aWxkXyIKICBl +# bmQKCiAgZGVmIGFkZF9xb25mX3BhY2thZ2UocGtnKQogICAgQHFvbmZfcGFj +# a2FnZXMgPDwgcGtnCiAgZW5kCiAgCiAgZGVmIGFkZF9xb25mX2ZlYXR1cmUo +# ZnRyKQogICAgQHFvbmZfZmVhdHVyZXMgPDwgZnRyCiAgZW5kIAoKICBkZWYg +# aW5jbHVkZV9wYXRoCiAgICBpbmNwYXRoID0gQGluY2x1ZGVfcGF0aAogICAg +# CiAgICBAcW9uZl9wYWNrYWdlcy5lYWNoIHsgfHBrZ3wKICAgICAgICBpbmNw +# YXRoLmNvbmNhdCBwa2cuaW5jbHVkZV9wYXRoCiAgICB9CiAgICAKICAgIGlu +# Y3BhdGgKICBlbmQKICAKICBkZWYgbGlicwogICAgbGliID0gQGxpYnMKICAg +# IEBxb25mX3BhY2thZ2VzLmVhY2ggeyB8cGtnfAogICAgICAgIGxpYi5jb25j +# YXQgcGtnLmxpYnMKICAgIH0KICAgIAogICAgbGliCiAgZW5kCiAgCiAgZGVm +# IGxpYnJhcnlfcGF0aAogICAgbGlic19hID0gW10KCiAgICBzcGxpdHRlZCA9 +# IEBsaWJzLmpvaW4oIiAiKS5zcGxpdCgiICIpCiAgICBzcGxpdHRlZC5lYWNo +# IHsgfHNwfAogICAgICAgIGlmKCBzcCA9fiAvLUwoLispXHMqLyApCiAgICAg +# ICAgICAgIGxpYnNfYSA8PCAkMQogICAgICAgIGVuZAogICAgfQogICAgCiAg +# ICBsaWJzX2EKICBlbmQKICAKICBkZWYgZGVmaW5lcwogICAgZGVmcyA9IEBk +# ZWZpbmVzCiAgICAKICAgIEBxb25mX3BhY2thZ2VzLmVhY2ggeyB8cGtnfAog +# ICAgICAgIGRlZnMuY29uY2F0IHBrZy5kZWZpbmVzCiAgICB9CiAgICAKICAg +# IGRlZnMKICBlbmQKICAKICBkZWYgc2F2ZShwYXRoKQogICAgaWYgcGF0aFsw +# XS5jaHIgPT0gRmlsZTo6U0VQQVJBVE9SCiAgICAgICAgcGF0aCA9IHBhdGgK +# ICAgIGVsc2UKICAgICAgICBwYXRoID0gIiN7RGlyLmdldHdkfS8je3BhdGh9 +# IgogICAgZW5kCiAgICAKICAgIEZpbGUub3BlbihwYXRoLCAidyIpIHsgfGZ8 +# CiAgICAgICAgZiA8PCAiIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBhdCAj +# e1RpbWUubm93fSEgUExFQVNFIERPIE5PVCBFRElUIE1BTlVBTExZISI8PCAi +# XG4iCiAgICAgICAgCiAgICAgICAgZiA8PCAiUFJPSkVDVF9ESVIgPSAiIDw8 +# IG9sZGxvY2F0aW9uKCIiKSA8PCAiXG4iCiAgICAgICAgZiA8PCAiQlVJTERf +# RElSID0gI3tAYnVpbGRfZGlyfVxuIgogICAgICAgIAogICAgICAgIGYgPDwg +# J2NvbnRhaW5zKFRFTVBMQVRFLCAiYXBwIikgeycgPDwgIlxuIgogICAgICAg +# IGYgPDwgIkRFU1RESVIgPSAkJEJVSUxEX0RJUi9iaW5cbiIKICAgICAgICBm +# IDw8ICd9IGVsc2U6Y29udGFpbnMoVEVNUExBVEUsICJsaWIiKSB7JyA8PCAi +# XG4iCiAgICAgICAgZiA8PCAiREVTVERJUiA9ICQkQlVJTERfRElSL2xpYlxu +# IgogICAgICAgIGYgPDwgJ30gZWxzZSB7JyA8PCAiXG4iCiAgICAgICAgZiA8 +# PCAiREVTVERJUiA9ICQkQlVJTERfRElSXG4iCiAgICAgICAgZiA8PCAifVxu +# XG5cbiIKICAgICAgICAKICAgICAgICBmIDw8ICJMSUJTICs9IC1MJCRCVUlM +# RF9ESVIvbGliXG4iCiAgICAgICAgZiA8PCAiUkVMQVRJVkVfUEFUSCA9ICQk +# cmVwbGFjZShfUFJPX0ZJTEVfUFdEXywgJCRQUk9KRUNUX0RJUiwgIiIpXG4i +# CiAgICAgICAgZiA8PCAiQ1VSUkVOVF9CVUlMRF9ESVIgPSAkJEJVSUxEX0RJ +# UiQkUkVMQVRJVkVfUEFUSFxuIgogICAgICAgIGYgPDwgIk9CSkVDVFNfRElS +# ID0gJCRDVVJSRU5UX0JVSUxEX0RJUlxuIgojICAgICAgICAgZiA8PCAiTU9D +# X0RJUiA9ICQkQ1VSUkVOVF9CVUlMRF9ESVJcbiIKIyAgICAgICAgIGYgPDwg +# IlVJX0RJUiA9ICQkQ1VSUkVOVF9CVUlMRF9ESVJcblxuIgoKICAgICAgICAK +# ICAgICAgICB3cml0ZShmKQogICAgICAgIAogICAgICAgIAogICAgICAgIGYg +# PDwgIlFPTkZfRkVBVFVSRVMgKz0gIiA8PCBAcW9uZl9wYWNrYWdlcy5tYXAg +# eyB8ZXwgZS5uYW1lIH0uam9pbigiICIpICA8PCAiXG4iCiAgICAgICAgZiA8 +# PCAiUU9ORl9GRUFUVVJFUyArPSAiIDw8IEBxb25mX2ZlYXR1cmVzLmpvaW4o +# IiAiKSAgPDwgIlxuIgogICAgICAgIAogICAgICAgIGYgPDwgIlxuZGVmaW5l +# VGVzdChsaW5rX3dpdGgpIHsiIDw8ICJcbiIKICAgICAgICBmIDw8ICIgIHJl +# dCA9IGZhbHNlXG4iCiAgICAgICAgQHFvbmZfcGFja2FnZXMuZWFjaCB7IHxx +# b25mfAogICAgICAgICAgZiA8PCAlQCAgY29udGFpbnMoJCRsaXN0KCQkc3Bs +# aXQoMSkpICwiI3txb25mLm5hbWV9Iikge1xuQAogICAgICAgICAgZiA8PCAi +# ICAgIHJldCA9IHRydWVcbiIKICAgICAgICAgIGYgPDwgIiAgICBtZXNzYWdl +# KD0+IExpbmtpbmcgcW9uZiBtb2R1bGU6ICN7cW9uZi5uYW1lfSlcbiIKICAg +# ICAgICAgIHFvbmYud3JpdGUoZikKICAgICAgICAgIGYgPDwgIiAgfVxuIgog +# ICAgICAgIH0KICAgICAgICBmIDw8ICIgIGV4cG9ydChJTkNMVURFUEFUSClc +# biIKICAgICAgICBmIDw8ICIgIGV4cG9ydChMSUJTKVxuIgogICAgICAgIGYg +# PDwgIiAgZXhwb3J0KFFUKVxuIgogICAgICAgIGYgPDwgIiAgZXhwb3J0KERF +# RklORVMpXG4iCiAgICAgICAgZiA8PCAiICByZXR1cm4oJCRyZXQpXG4iCiAg +# ICAgICAgZiA8PCAifVxuIgogICAgfQogIGVuZAplbmQKCmVuZAoKAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvc2V0dXBfcmIudHBs +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAx +# NzUwADAwMDE3NTAAMDAwMDAwMDYyMzcAMTA3MDQ0NTEyMjEAMDE0NzU3ACAw +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCiMg +# c2V0dXAgaXMgYSBvYmplY3QgdGhhdCBoZWxwcyB0byBjb25maWd1cmUgdGhl +# IHByb2plY3QKIyBJdCBjb250YWlucyBzb21lIG1ldGhvZHMgbGlrZToKIyAg +# IGFkZF9vcHRpb24KIyAgIGZpbmRfcGFja2FnZQojICAgYWRkX3Rlc3QKIyAg +# IGdlbmVyYXRlX3BrZ2NvbmZpZwpkZWYgY29uZmlndXJlKHNldHVwKQojIyMj +# IAojIyMjIFZlcmlmeSBmb3IgUXQgdmVyc2lvbi4KIyMjIyAKIyBzZXR1cC5x +# dCA+PSAiNC4yLjAiCgojIyMjIAojIyMjIGFkZF9vcHRpb24gYWRkcyBhbiBv +# cHRpb24gdG8gdGhlIHNjcmlwdCwgaXQgaGFzIHRoZSBmb2xsb3dpbmcgb3B0 +# aW9uczoKIyMjIyA6bmFtZSAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBvcHRp +# b24uCiMjIyMgOnR5cGUgICAgICAgICBUaGUgdHlwZSBvZiB0aGUgb3B0aW9u +# ICgicGF0aCIsICJzdHJpbmciLCAiYm9vbCIgb3IgInZvaWQiKS4KIyMjIyA6 +# b3B0aW9uYWwgICAgIFNheXMgaWYgdGhlIG9wdGlvbiBpcyByZXF1aXJlZCBv +# ciBub3QuCiMjIyMgOmRlc2NyaXB0aW9uICBEZXNjcmlwdGlvbiBvZiB0aGUg +# b3B0aW9uCiMjIyMgOmRlZmF1bHQgICAgICBUaGUgZGVmYXVsdCB2YWx1ZQoj +# IyMjIAojICAgc2V0dXAuYWRkX29wdGlvbig6bmFtZSA9PiAib3B0aW9uLW5h +# bWUiLCA6dHlwZSA9PiAicGF0aCIsIDpvcHRpb25hbCA9PiBmYWxzZSwgOmRl +# c2NyaXB0aW9uID0+ICJTZXRzIGFuIG9wdGlvbiIpCiAgCiMjIyMgCiMjIyMg +# ZmluZF9wYWNrYWdlIHNlYXJjaCBmb3IgYSBwa2djb25maWcgc3BlYyBpbiB5 +# b3VyIGNvbXB1dGVyLCBpdCBzZWFyY2ggaW4gdGhlIFBLR19DT05GSUdfUEFU +# SCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBMRF9MSUJSQVJZX1BBVEgKIyMj +# IyBUaGUgb3B0aW9ucyBhcmU6CiMjIyMgOm5hbWUgICAgICAgUGFja2FnZSBu +# YW1lCiMjIyMgOm9wdGlvbmFsICAgVHJ1ZSBpZiB0aGUgcGFja2FnZSBpcyBv +# cHRpb25hbAojIyMjIDpnbG9iYWwgICAgIExpbmsgZ2xvYmFsbHkKIyMjIyAK +# IyAgIHNldHVwLmZpbmRfcGFja2FnZSg6bmFtZSA9PiAiZGJ1cy0xIiwgOm9w +# dGlvbmFsID0+IGZhbHNlLCA6Z2xvYmFsID0+IHRydWUpCgojIyMjIAojIyMj +# IGFkZF90ZXN0IGFkZHMgYW5kIHJ1biBhIHRlc3QgZm9yIHNvbWUgZmVhdHVy +# ZSBvciBwYWNrYWdlLCB0aGUgb3B0aW9ucyBhcmU6CiMjIyMgICA6aWQgICAg +# ICAgICAgIFRoZSBpZCBvZiB0aGUgdGVzdAojIyMjICAgOm5hbWUgICAgICAg +# ICBUaGUgdGVzdCBuYW1lCiMjIyMgICA6ZGVmaW5lcyAgICAgIERlZmluZXMg +# dG8gdGVzdAojIyMjICAgOmluY2x1ZGVwYXRoICBBIGxpc3Qgd2l0aCB0aGUg +# aW5jbHVkZSBwYXRoCiMjIyMgICA6bGlicyAgICAgICAgIFRoZSBsaWJzIHJl +# cXVpcmVkIGZvciB0aGUgdGVzdAojIyMjICAgOm9wdGlvbmFsICAgICBUcnVl +# IGlmIHRoZSB0ZXN0IGlzIG9wdGlvbmFsCiMjIyMgICA6Y3VzdG9tICAgICAg +# IEEgY29kZSB0byB0ZXN0CiMjIyMgICA6Z2xvYmFsICAgICAgIExpbmsgZ2xv +# YmFsbHkKIyMjIyAKIyBzZXR1cC5hZGRfdGVzdCg6aWQgPT4gImZlYXR1cmUi +# LCA6bmFtZSA9PiAiRmVhdHVyZSBzdXBwb3J0IiwgOmRlZmluZXMgPT4gWyJI +# QVZFX0ZFQVRVUkUiXSwgOm9wdGlvbmFsID0+IHRydWUsIDpoZWFkZXJzID0+ +# IFsiZmVhdHVyZS5oIl0sIDpsaWJzID0+ICItbGZlYXR1cmUiLCA6Z2xvYmFs +# ID0+IHRydWUgICkKCiMjIyMgCiMjIyMgZ2VuZXJhdGVfcGtnY29uZmlnIEdl +# bmVyYXRlcyBhIHNpbXBsZSBwa2djb25maWcgZmlsZQojIyMjIFRoZSBvcHRp +# b25zIGFyZToKIyMjIyAgIDpwYWNrYWdlX25hbWUgIFRoZSBwYWNrYWdlIG5h +# bWUgCiMjIyMgICA6bmFtZSAgICAgICAgICBUaGUgYXBwbGljYXRpb24gbmFt +# ZQojIyMjICAgOmRlc2NyaXB0aW9uICAgVGhlIGFwcGxpY2F0aW9uIGRlc2Ny +# aXB0aW9uCiMjIyMgICA6dmVyc2lvbiAgICAgICBUaGUgdmVyc2lvbiBvZiB0 +# aGUgYXBwbGljYXRpb24KIyMjIyAgIDpsaWJkaXIgICAgICAgIFRoZSBkaXJl +# Y3Rvcnkgd2hlcmUgbGlicmFyaWVzIGFyZSwgYnkgZGVmYXVsdCBpcyAkKHBy +# ZWZpeCkvbGliCiMjIyMgICA6aW5jbHVkZWRpciAgICBUaGUgZGlyZWN0b3J5 +# IHdoZXJlIGhlYWRlcnMgYXJlLCBieSBkZWZhdWx0IGlzICQocHJlZml4KS9p +# bmNsdWRlCiMjIyMgICA6bGlicyAgICAgICAgICBMaWJyYXJpZXMgdGhhdCBs +# aW5rcyB0aGUgcGFja2FnZQojIyMjICAgOmNmbGFncyAgICAgICAgQ2ZsYWdz +# IGZvciB0aGUgcGFja2FnZQojIyMjICAgOnJlcXVpcmVzICAgICAgQSBsaXN0 +# IG9mIHBhY2thZ2UgbmFtZXMgcmVxdWlyZWQgZm9yIHRoaXMgcGFja2FnZS4K +# IyMjIyAKIyBzZXR1cC5nZW5lcmF0ZV9wa2djb25maWcoOnBhY2thZ2VfbmFt +# ZSA9PiAiZGxpYi1lZGl0b3IiLCA6bmFtZSA9PiAiRExpYiBRdCBsaWJyYXJ5 +# IiwgOmRlc2NyaXB0aW9uID0+ICJBIGV4dGVuc2lvbiBmb3IgUXQ0IiwgOnZl +# cnNpb24gPT4gIjAuMWJldGEiLCA6bGliZGlyID0+IG5pbCwgOmluY2x1ZGVk +# aXIgPT4gbmlsLCA6bGlicyA9PiAiLUwke2xpYmRpcn0gLWxkY29yZSAtbGRn +# dWkgLWxkZWRpdG9yIiwgOmNmbGFncyA9PiAiLUkke2luY2x1ZGVkaXJ9Iiwg +# OnJlcXVpcmVzID0+IFsic29tZXBhY2thZ2UiLCAib3RoZXJwYWNrYWdlIiBd +# ICkKZW5kCgojIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgdG8gc2Vh +# cmNoIGEgcGFja2FnZQpkZWYgc2V0dXBfcGtnY29uZmlnKHBrZ2NvbmZpZywg +# YXJncykKIyAgIGNhc2UgcGtnY29uZmlnLmlkCiMgICAgIHdoZW4gImRidXMt +# MSIKIyAgICAgICBwa2djb25maWcuYWRkX3NlYXJjaF9wYXRoKCIvYS9wYXRo +# L3RvL3RoZS9wYyIpCiMgICBlbmQKZW5kCgpkZWYgc2V0dXBfdGVzdChpZCwg +# dHN0LCBhcmdzKQojICAgY2FzZSBpZAojICAgICB3aGVuICJmZWF0dXJlIgoj +# ICAgICAgIHRzdC5hZGRfZGVmaW5lKCJNWURFRklORSIpCiMgICAgICAgdHN0 +# LmFkZF9saWIoIi1sbXlsaWIiKQojICAgICAgIHRzdC5hZGRfaW5jbHVkZV9w +# YXRoKCIvc29tZS9pbmNsdWRlL3BhdGgvcmVxdWlyZWQvdG8vY29tcGlsZS90 +# aGUvdGVzdCIpCiMgICBlbmQKZW5kCgpkZWYgc2V0dXBfY29uZmlnKGNmZywg +# YXJncykKIyAgIGNmZy5hZGRfaW5jbHVkZV9wYXRoIEZpbGUuZXhwYW5kX3Bh +# dGgoInNyYyIpCiMgICBjZmcuYWRkX2RlZmluZSgiX19TVERDX0NPTlNUQU5U +# X01BQ1JPUyIpCiMgICBjZmcuYWRkX3F0bW9kdWxlKCJ4bWwiKQojICAgY2Zn +# LmFkZF9xdG1vZHVsZSgibmV0d29yayIpCmVuZAoKCgAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL3FtYWtlLnJiAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAw +# MTc1MAAwMDAxNzUwADAwMDAwMDA3MzMzADEwNzA0NDUxMjIxADAxNDAzNAAg +# MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKcmVx +# dWlyZSAnb3BlbjMnCnJlcXVpcmUgJ2RldGVjdG9zJwoKbW9kdWxlIFFvbmYK +# CmNsYXNzIFFNYWtlCiAgYXR0cl9yZWFkZXIgOnBhdGgKICAKICBkZWYgaW5p +# dGlhbGl6ZShwYXRocyA9IFtdLCBsb2dfZmlsZSA9IG5pbCkKICAgIEBwYXRo +# cyA9IFsgInFtYWtlLXF0NCIsICJxbWFrZTQiLCAicW1ha2UiIF0KICAgIEBw +# YXRocy5jb25jYXQocGF0aHMpCiAgICAKICAgIGlmKCAkREVCVUcgKQogICAg +# ICAkc3RkZXJyIDw8ICJRTWFrZSBwYXRoczogIiA8PCBAcGF0aHMuam9pbigi +# ICIpIDw8ICJcbiIKICAgIGVuZAogICAgCiAgICBpZiBub3QgZmluZF9xbWFr +# ZSgiNC4wLjAiKQogICAgICAgICAgICByYWlzZSAiQ2FuJ3QgZmluZCB2YWxp +# ZCBxbWFrZSAtIHF0NCIKICAgIGVuZAogICAgCiAgICBAbG9nX2ZpbGUgPSBs +# b2dfZmlsZQogICAgaWYoIEBsb2dfZmlsZS5uaWw/ICkKICAgICAgQGxvZ19m +# aWxlID0gb2xkbG9jYXRpb24oImNvbmZpZy5sb2ciKQogICAgZW5kCiAgICAK +# ICAgIEBtYWtlID0gIm1ha2UiCiAgICAKICAgIGlmIERldGVjdE9TLm9zPyA9 +# PSAxCiAgICAgIEBtYWtlX29wdGlvbnMgPSAiMj4+ICN7QGxvZ19maWxlfSIK +# ICAgIGVsc2UKICAgICAgQG1ha2Vfb3B0aW9ucyA9ICI+PiAje0Bsb2dfZmls +# ZX0gMj4+ICN7QGxvZ19maWxlfSIKICAgIGVuZAogIGVuZAogICAgICAgIAog +# IGRlZiBmaW5kX3FtYWtlKG1pbnF0dmVyc2lvbiwgb3AgPSAyKQogICAgCiAg +# ICAKICAgIG1pbnZlciA9IG1pbnF0dmVyc2lvbi5zcGxpdCgiLiIpCiAgICBA +# cGF0aHMuZWFjaCB7IHxwYXRofAogICAgICBiZWdpbgogICAgICAgIHZlcnNp +# b24gPSBbXQogICAgICAgIG9rID0gdHJ1ZQogICAgICAgIAogICAgICAgIElP +# LnBvcGVuKCIje3BhdGh9IC1xdWVyeSBRVF9WRVJTSU9OIDI+ICN7bmV3bG9j +# YXRpb24oInFtYWtlX2xvZyIpfSIpIHsgfHByY3wKICAgICAgICAgIHZlcnNp +# b24gPSBwcmMucmVhZGxpbmVzLmpvaW4oIiIpLnNwbGl0KCIuIikKICAgICAg +# ICB9CiAgICAgICAgCiAgICAgICAgbmV4dCBpZiAkPyAhPSAwCiAgICAgICAg +# CiAgICAgICAgdmVyc2lvbi5zaXplLnRpbWVzIHsgfGl8CiAgICAgICAgICBp +# ZiB2ZXJzaW9uLnNpemUgPCBpIGFuZCBtaW52ZXIuc2l6ZSA+PSAzCiAgICAg +# ICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICBlbmQKICAgICAgICAgIAog +# ICAgICAgICAgY2FzZSBvcAogICAgICAgICAgICB3aGVuIDAKICAgICAgICAg +# ICAgICBpZiB2ZXJzaW9uW2ldICE9IG1pbnZlcltpXQogICAgICAgICAgICAg +# ICAgb2sgPSBmYWxzZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAg +# ICAgICBlbmQKICAgICAgICAgICAgd2hlbiAxCiAgICAgICAgICAgICAgaWYg +# dmVyc2lvbltpXSA8IG1pbnZlcltpXQogICAgICAgICAgICAgICAgb2sgPSBm +# YWxzZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICBlbmQK +# ICAgICAgICAgICAgd2hlbiAyCiAgICAgICAgICAgICAgaWYgdmVyc2lvbltp +# XSA8IG1pbnZlcltpXQogICAgICAgICAgICAgICAgb2sgPSBmYWxzZQogICAg +# ICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICBlbmQKICAgICAgICAg +# IGVuZAogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiBvawogICAgICAg +# ICAgQHBhdGggPSBwYXRoCiAgICAgICAgICAKICAgICAgICAgIGlmICRERUJV +# RwogICAgICAgICAgICBwdXRzICJVc2luZyBxbWFrZTogI3tAcGF0aH0gI3t2 +# ZXJzaW9uLmpvaW4oIi4iKX0iCiAgICAgICAgICBlbmQKICAgICAgICAgIAog +# ICAgICAgICAgcmV0dXJuIG9rCiAgICAgICAgZW5kCiAgICAgIHJlc2N1ZQog +# ICAgICBlbnN1cmUKICAgICAgZW5kCiAgICB9CiAgCiAgICByZXR1cm4gZmFs +# c2UKICBlbmQKICAgICAgICAKICAgICAgICBkZWYgcXVlcnkodmFyKQogICAg +# ICAgICAgICAgICAgb3V0cHV0ID0gYCN7QHBhdGh9IC1xdWVyeSAje3Zhcn1g +# CiAgICAgICAgICAgICAgICBvdXRwdXQKICAgICAgICBlbmQKICAgICAgICAK +# ICAgICAgICBkZWYgcnVuKGFyZ3MgPSAiIiwgcmVjdXIgPSBmYWxzZSkKICAg +# ICAgICAgICAgICAgIGlmICRERUJVRwogICAgICAgICAgICAgICAgICBwdXRz +# ICJBUkdTID0gI3thcmdzfSIKICAgICAgICAgICAgICAgIGVuZAogICAgICAg +# ICAgICAgICAgb3B0aW9ucyA9ICIiCiAgICAgICAgICAgICAgICBpZiByZWN1 +# cgogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zICs9ICItciIKICAg +# ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgCiAgICAgICAgICAg +# ICAgICBvdXRwdXQgPSBgI3tAcGF0aH0gI3thcmdzfSAje29wdGlvbnN9IGAK +# ICAgICAgICAgICAgICAgIGlmIG91dHB1dC5zdHJpcC5lbXB0eT8KICAgICAg +# ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICAgICAgICAg +# IGVuZAoKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIGVu +# ZAogICAgICAgIAogICAgICAgIGRlZiBjb21waWxlCiAgICAgICAgICAgICAg +# ICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICBJTy5wb3BlbigiI3tA +# bWFrZX0gY2xlYW4gI3tAbWFrZV9vcHRpb25zfSIpIHsgfGN8CiAgICAgICAg +# ICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gYy5yZWFkbGluZXMK +# ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg +# ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgdGltZXMgPSAwCiAgICAg +# ICAgICAgICAgICAgICAgICAgIGVuZGNvZGUgPSAyCiAgICAgICAgICAgICAg +# ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBGaWxlLm9wZW4o +# QGxvZ19maWxlLCAiYSIgKSBkbyB8ZnwKICAgICAgICAgICAgICAgICAgICAg +# ICAgICBmIDw8ICI9PT09PT4gQ09NUElMSU5HIFxuIgogICAgICAgICAgICAg +# ICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg +# ICAgICAgICAgICAgICAgICAgIHdoaWxlIGVuZGNvZGUgPT0gMiBhbmQgdGlt +# ZXMgPD0gMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPLnBv +# cGVuKCIje0BtYWtlfSAje0BtYWtlX29wdGlvbnN9IiwgInIiKSB7IHxjfAog +# ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0 +# ID0gYy5yZWFkbGluZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +# ICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg +# ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg +# ICAgICAgICAgICAgZW5kY29kZSA9ICQ/ID4+IDgKICAgICAgICAgICAgICAg +# ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg +# ICAgICB0aW1lcyArPSAxCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAog +# ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHJlc2N1 +# ZQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAg +# ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg +# ICBpZiBlbmRjb2RlICE9IDAKICAgICAgICAgICAgICAgICAgICAgICAgcmV0 +# dXJuIGZhbHNlCiAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAg +# IAogICAgICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICBlbmQKICAg +# ICAgICAKICAgICAgICBkZWYgY2xlYW5fdXAKICAgICAgSU8ucG9wZW4oIiN7 +# QG1ha2V9IGRpc3RjbGVhbiAyPj4gZGlzdGNsZWFuIikgeyB8Y3wKICAgICAg +# ICAgIG91dHB1dCA9IGMucmVhZGxpbmVzCiAgICAgIH0KICAgICAgICBlbmQK +# ZW5kCgplbmQgI21vZHVsZQoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAptb2R1bGUgUW9uZgoKY2xhc3MgUGFja2FnZQogIGF0dHJfcmVhZGVy -# IDppbmNsdWRlX3BhdGgsIDpsaWJzLCA6bW9kdWxlcywgOmRlZmluZXMsIDpu -# YW1lCiAgZGVmIGluaXRpYWxpemUobmFtZSkKICAgIEBpbmNsdWRlX3BhdGgg -# PSBbXQogICAgQGxpYnMgPSBbXQogICAgQG1vZHVsZXMgPSBbXQogICAgQGRl -# ZmluZXMgPSBbXQogICAgQG5hbWUgPSBuYW1lCiAgZW5kCiAgCiAgZGVmIGFk -# ZF9pbmNsdWRlX3BhdGgocGF0aCkKICAgIEBpbmNsdWRlX3BhdGggPDwgcGF0 -# aAogIGVuZAogIAogIGRlZiBhZGRfbGliKGxpYikKICAgIEBsaWJzIDw8IGxp -# Yi50b19zCiAgZW5kCiAgCiAgZGVmIGFkZF9xdG1vZHVsZShtb2QpCiAgICBA -# bW9kdWxlcyA8PCBtb2QKICBlbmQKICAKICBkZWYgYWRkX2RlZmluZShkZWZp -# bmUpCiAgICBAZGVmaW5lcyA8PCBkZWZpbmUKICBlbmQKICAKICBkZWYgd3Jp -# dGUoZikKICAgIGlmIG5vdCBAaW5jbHVkZV9wYXRoLmVtcHR5PwogICAgICAg -# IGYgPDwgIklOQ0xVREVQQVRIICs9ICIgPDwgQGluY2x1ZGVfcGF0aC51bmlx -# LmpvaW4oIiAiKSA8PCAiXG4iCiAgICBlbmQKICAgIAogICAgaWYgbm90IEBs -# aWJzLmVtcHR5PwogICAgICAgIGYgPDwgIkxJQlMgKz0gIiA8PCBAbGlicy51 -# bmlxLmpvaW4oIiAiKSA8PCAiXG4iCiAgICBlbmQKICAgIAogICAgaWYgbm90 -# IEBtb2R1bGVzLmVtcHR5PwogICAgICAgIGYgPDwgIlFUICs9ICIgPDwgQG1v -# ZHVsZXMudW5pcS5qb2luKCIgIikgPDwgIlxuIgogICAgZW5kCiAgICAKICAg -# IGlmIG5vdCBAZGVmaW5lcy5lbXB0eT8KICAgICAgICBmIDw8ICJERUZJTkVT -# ICs9ICIgPDwgQGRlZmluZXMudW5pcS5qb2luKCIgIikgPDwgIlxuIgogICAg -# ZW5kCiAgZW5kCmVuZAoKY2xhc3MgQ29uZmlnIDwgUGFja2FnZQogIGRlZiBp -# bml0aWFsaXplCiAgICBzdXBlcihuaWwpCiAgICBAcW9uZl9mZWF0dXJlcyA9 -# IFtdCiAgZW5kCiAgCiAgZGVmIGFkZF9xb25mX2ZlYXR1cmUoZnRyKQogICAg -# QHFvbmZfZmVhdHVyZXMgPDwgZnRyCiAgZW5kIAoKICBkZWYgaW5jbHVkZV9w -# YXRoCiAgICBpbmNwYXRoID0gQGluY2x1ZGVfcGF0aAogICAgCiAgICBAcW9u -# Zl9mZWF0dXJlcy5lYWNoIHsgfHBrZ3wKICAgICAgICBpbmNwYXRoLmNvbmNh -# dCBwa2cuaW5jbHVkZV9wYXRoCiAgICB9CiAgICAKICAgIGluY3BhdGgKICBl -# bmQKICAKICBkZWYgbGlicwogICAgbGliID0gQGxpYnMKICAgIEBxb25mX2Zl -# YXR1cmVzLmVhY2ggeyB8cGtnfAogICAgICAgIGxpYi5jb25jYXQgcGtnLmxp -# YnMKICAgIH0KICAgIAogICAgbGliCiAgZW5kCiAgCiAgZGVmIGRlZmluZXMK -# ICAgIGRlZnMgPSBAZGVmaW5lcwogICAgCiAgICBAcW9uZl9mZWF0dXJlcy5l -# YWNoIHsgfHBrZ3wKICAgICAgICBkZWZzLmNvbmNhdCBwa2cuZGVmaW5lcwog -# ICAgfQogICAgCiAgICBkZWZzCiAgZW5kCiAgCiAgZGVmIHNhdmUocGF0aCkK -# ICAgIGlmIHBhdGhbMF0uY2hyID09IEZpbGU6OlNFUEFSQVRPUgogICAgICAg -# IHBhdGggPSBwYXRoCiAgICBlbHNlCiAgICAgICAgcGF0aCA9ICIje0Rpci5n -# ZXR3ZH0vI3twYXRofSIKICAgIGVuZAogICAgCiAgICBGaWxlLm9wZW4ocGF0 -# aCwgInciKSB7IHxmfAogICAgICAgIGYgPDwgIiMgR2VuZXJhdGVkIGF1dG9t -# YXRpY2FsbHkgYXQgI3tUaW1lLm5vd30hIFBMRUFTRSBETyBOT1QgRURJVCBN -# QU5VQUxMWSEiPDwgIlxuIgogICAgICAgIAogICAgICAgIHdyaXRlKGYpCiAg -# ICAgICAgCiAgICAgICAgCiAgICAgICAgZiA8PCAiUU9ORl9GRUFUVVJFUyAr -# PSAiIDw8IEBxb25mX2ZlYXR1cmVzLm1hcCB7IHxlfCBlLm5hbWV9LmpvaW4o -# IiAiKSAgPDwgIlxuIgogICAgICAgIGYgPDwgIlFPTkZfRkVBVFVSRVMgKz0g -# IiA8PCBAcW9uZl9mZWF0dXJlcy5qb2luKCIgIikgIDw8ICJcbiIKICAgICAg -# ICAKICAgICAgICBmIDw8ICJcbmRlZmluZVRlc3QobGlua193aXRoKSB7IiA8 -# PCAiXG4iCiAgICAgICAgZiA8PCAiICByZXQgPSBmYWxzZVxuIgogICAgICAg -# IEBxb25mX2ZlYXR1cmVzLmVhY2ggeyB8cW9uZnwKICAgICAgICAgIGYgPDwg -# JUAgIGNvbnRhaW5zKCQkbGlzdCgkJHNwbGl0KDEpKSAsIiN7cW9uZi5uYW1l -# fSIpIHtcbkAKICAgICAgICAgIGYgPDwgIiAgICByZXQgPSB0cnVlXG4iCiAg -# ICAgICAgICBmIDw8ICIgICAgbWVzc2FnZSg9PiBMaW5raW5nIHFvbmYgbW9k -# dWxlOiAje3FvbmYubmFtZX0pXG4iCiAgICAgICAgICBxb25mLndyaXRlKGYp -# CiAgICAgICAgICBmIDw8ICIgIH1cbiIKICAgICAgICB9CiAgICAgICAgZiA8 -# PCAiICBleHBvcnQoSU5DTFVERVBBVEgpXG4iCiAgICAgICAgZiA8PCAiICBl -# eHBvcnQoTElCUylcbiIKICAgICAgICBmIDw8ICIgIGV4cG9ydChRVClcbiIK -# ICAgICAgICBmIDw8ICIgIGV4cG9ydChERUZJTkVTKVxuIgogICAgICAgIGYg -# PDwgIiAgcmV0dXJuKCQkcmV0KVxuIgogICAgICAgIGYgPDwgIn1cbiIKICAg -# IH0KICBlbmQKZW5kCgplbmQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABx -# b25maWd1cmUvc2V0dXBfcmIudHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDYyMzcA -# MTA2NzM1MDIwNDMAMDEzNTYwACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9u +# ZmlndXJlL2Zyb250ZW5kLnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2Vr +# AAAAAAAAADAwMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMTI0ADEw +# NzA0NDUxMjIxADAxNDU0NAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAoKCiMgc2V0dXAgaXMgYSBvYmplY3QgdGhhdCBo -# ZWxwcyB0byBjb25maWd1cmUgdGhlIHByb2plY3QKIyBJdCBjb250YWlucyBz -# b21lIG1ldGhvZHMgbGlrZToKIyAgIGFkZF9vcHRpb24KIyAgIGZpbmRfcGFj -# a2FnZQojICAgYWRkX3Rlc3QKIyAgIGdlbmVyYXRlX3BrZ2NvbmZpZwpkZWYg -# Y29uZmlndXJlKHNldHVwKQojIyMjIAojIyMjIFZlcmlmeSBmb3IgUXQgdmVy -# c2lvbi4KIyMjIyAKIyBzZXR1cC5xdCA+PSAiNC4yLjAiCgojIyMjIAojIyMj -# IGFkZF9vcHRpb24gYWRkcyBhbiBvcHRpb24gdG8gdGhlIHNjcmlwdCwgaXQg -# aGFzIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKIyMjIyA6bmFtZSAgICAgICAg -# IFRoZSBuYW1lIG9mIHRoZSBvcHRpb24uCiMjIyMgOnR5cGUgICAgICAgICBU -# aGUgdHlwZSBvZiB0aGUgb3B0aW9uICgicGF0aCIsICJzdHJpbmciLCAiYm9v -# bCIgb3IgInZvaWQiKS4KIyMjIyA6b3B0aW9uYWwgICAgIFNheXMgaWYgdGhl -# IG9wdGlvbiBpcyByZXF1aXJlZCBvciBub3QuCiMjIyMgOmRlc2NyaXB0aW9u -# ICBEZXNjcmlwdGlvbiBvZiB0aGUgb3B0aW9uCiMjIyMgOmRlZmF1bHQgICAg -# ICBUaGUgZGVmYXVsdCB2YWx1ZQojIyMjIAojICAgc2V0dXAuYWRkX29wdGlv -# big6bmFtZSA9PiAib3B0aW9uLW5hbWUiLCA6dHlwZSA9PiAicGF0aCIsIDpv -# cHRpb25hbCA9PiBmYWxzZSwgOmRlc2NyaXB0aW9uID0+ICJTZXRzIGFuIG9w -# dGlvbiIpCiAgCiMjIyMgCiMjIyMgZmluZF9wYWNrYWdlIHNlYXJjaCBmb3Ig -# YSBwa2djb25maWcgc3BlYyBpbiB5b3VyIGNvbXB1dGVyLCBpdCBzZWFyY2gg -# aW4gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBv -# ciBMRF9MSUJSQVJZX1BBVEgKIyMjIyBUaGUgb3B0aW9ucyBhcmU6CiMjIyMg -# Om5hbWUgICAgICAgUGFja2FnZSBuYW1lCiMjIyMgOm9wdGlvbmFsICAgVHJ1 -# ZSBpZiB0aGUgcGFja2FnZSBpcyBvcHRpb25hbAojIyMjIDpnbG9iYWwgICAg -# IExpbmsgZ2xvYmFsbHkKIyMjIyAKIyAgIHNldHVwLmZpbmRfcGFja2FnZSg6 -# bmFtZSA9PiAiZGJ1cy0xIiwgOm9wdGlvbmFsID0+IGZhbHNlLCA6Z2xvYmFs -# ID0+IHRydWUpCgojIyMjIAojIyMjIGFkZF90ZXN0IGFkZHMgYW5kIHJ1biBh -# IHRlc3QgZm9yIHNvbWUgZmVhdHVyZSBvciBwYWNrYWdlLCB0aGUgb3B0aW9u -# cyBhcmU6CiMjIyMgICA6aWQgICAgICAgICAgIFRoZSBpZCBvZiB0aGUgdGVz -# dAojIyMjICAgOm5hbWUgICAgICAgICBUaGUgdGVzdCBuYW1lCiMjIyMgICA6 -# ZGVmaW5lcyAgICAgIERlZmluZXMgdG8gdGVzdAojIyMjICAgOmluY2x1ZGVw -# YXRoICBBIGxpc3Qgd2l0aCB0aGUgaW5jbHVkZSBwYXRoCiMjIyMgICA6bGli -# cyAgICAgICAgIFRoZSBsaWJzIHJlcXVpcmVkIGZvciB0aGUgdGVzdAojIyMj -# ICAgOm9wdGlvbmFsICAgICBUcnVlIGlmIHRoZSB0ZXN0IGlzIG9wdGlvbmFs -# CiMjIyMgICA6Y3VzdG9tICAgICAgIEEgY29kZSB0byB0ZXN0CiMjIyMgICA6 -# Z2xvYmFsICAgICAgIExpbmsgZ2xvYmFsbHkKIyMjIyAKIyBzZXR1cC5hZGRf -# dGVzdCg6aWQgPT4gImZlYXR1cmUiLCA6bmFtZSA9PiAiRmVhdHVyZSBzdXBw -# b3J0IiwgOmRlZmluZXMgPT4gWyJIQVZFX0ZFQVRVUkUiXSwgOm9wdGlvbmFs -# ID0+IHRydWUsIDpoZWFkZXJzID0+IFsiZmVhdHVyZS5oIl0sIDpsaWJzID0+ -# ICItbGZlYXR1cmUiLCA6Z2xvYmFsID0+IHRydWUgICkKCiMjIyMgCiMjIyMg -# Z2VuZXJhdGVfcGtnY29uZmlnIEdlbmVyYXRlcyBhIHNpbXBsZSBwa2djb25m -# aWcgZmlsZQojIyMjIFRoZSBvcHRpb25zIGFyZToKIyMjIyAgIDpwYWNrYWdl -# X25hbWUgIFRoZSBwYWNrYWdlIG5hbWUgCiMjIyMgICA6bmFtZSAgICAgICAg -# ICBUaGUgYXBwbGljYXRpb24gbmFtZQojIyMjICAgOmRlc2NyaXB0aW9uICAg -# VGhlIGFwcGxpY2F0aW9uIGRlc2NyaXB0aW9uCiMjIyMgICA6dmVyc2lvbiAg -# ICAgICBUaGUgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24KIyMjIyAgIDps -# aWJkaXIgICAgICAgIFRoZSBkaXJlY3Rvcnkgd2hlcmUgbGlicmFyaWVzIGFy -# ZSwgYnkgZGVmYXVsdCBpcyAkKHByZWZpeCkvbGliCiMjIyMgICA6aW5jbHVk -# ZWRpciAgICBUaGUgZGlyZWN0b3J5IHdoZXJlIGhlYWRlcnMgYXJlLCBieSBk -# ZWZhdWx0IGlzICQocHJlZml4KS9pbmNsdWRlCiMjIyMgICA6bGlicyAgICAg -# ICAgICBMaWJyYXJpZXMgdGhhdCBsaW5rcyB0aGUgcGFja2FnZQojIyMjICAg -# OmNmbGFncyAgICAgICAgQ2ZsYWdzIGZvciB0aGUgcGFja2FnZQojIyMjICAg -# OnJlcXVpcmVzICAgICAgQSBsaXN0IG9mIHBhY2thZ2UgbmFtZXMgcmVxdWly -# ZWQgZm9yIHRoaXMgcGFja2FnZS4KIyMjIyAKIyBzZXR1cC5nZW5lcmF0ZV9w -# a2djb25maWcoOnBhY2thZ2VfbmFtZSA9PiAiZGxpYi1lZGl0b3IiLCA6bmFt -# ZSA9PiAiRExpYiBRdCBsaWJyYXJ5IiwgOmRlc2NyaXB0aW9uID0+ICJBIGV4 -# dGVuc2lvbiBmb3IgUXQ0IiwgOnZlcnNpb24gPT4gIjAuMWJldGEiLCA6bGli -# ZGlyID0+IG5pbCwgOmluY2x1ZGVkaXIgPT4gbmlsLCA6bGlicyA9PiAiLUwk -# e2xpYmRpcn0gLWxkY29yZSAtbGRndWkgLWxkZWRpdG9yIiwgOmNmbGFncyA9 -# PiAiLUkke2luY2x1ZGVkaXJ9IiwgOnJlcXVpcmVzID0+IFsic29tZXBhY2th -# Z2UiLCAib3RoZXJwYWNrYWdlIiBdICkKZW5kCgojIFRoaXMgbWV0aG9kIGlz -# IGNhbGxlZCBiZWZvcmUgdG8gc2VhcmNoIGEgcGFja2FnZQpkZWYgc2V0dXBf -# cGtnY29uZmlnKHBrZ2NvbmZpZywgYXJncykKIyAgIGNhc2UgcGtnY29uZmln -# LmlkCiMgICAgIHdoZW4gImRidXMtMSIKIyAgICAgICBwa2djb25maWcuYWRk -# X3NlYXJjaF9wYXRoKCIvYS9wYXRoL3RvL3RoZS9wYyIpCiMgICBlbmQKZW5k -# CgpkZWYgc2V0dXBfdGVzdChpZCwgdHN0LCBhcmdzKQojICAgY2FzZSBpZAoj -# ICAgICB3aGVuICJmZWF0dXJlIgojICAgICAgIHRzdC5hZGRfZGVmaW5lKCJN -# WURFRklORSIpCiMgICAgICAgdHN0LmFkZF9saWIoIi1sbXlsaWIiKQojICAg -# ICAgIHRzdC5hZGRfaW5jbHVkZV9wYXRoKCIvc29tZS9pbmNsdWRlL3BhdGgv -# cmVxdWlyZWQvdG8vY29tcGlsZS90aGUvdGVzdCIpCiMgICBlbmQKZW5kCgpk -# ZWYgc2V0dXBfY29uZmlnKGNmZywgYXJncykKIyAgIGNmZy5hZGRfaW5jbHVk -# ZV9wYXRoIEZpbGUuZXhwYW5kX3BhdGgoInNyYyIpCiMgICBjZmcuYWRkX2Rl -# ZmluZSgiX19TVERDX0NPTlNUQU5UX01BQ1JPUyIpCiMgICBjZmcuYWRkX3F0 -# bW9kdWxlKCJ4bWwiKQojICAgY2ZnLmFkZF9xdG1vZHVsZSgibmV0d29yayIp -# CmVuZAoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# cW9uZmlndXJlL3FtYWtlLnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDA3MzMz -# ADEwNzA1MDIwNTI3ADAxMjYzMwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAKbW9kdWxlIFFvbmYKCmNsYXNzIEZyb250ZW5kCiAg +# ZGVmIGluaXRpYWxpemUKICBlbmQKICAKICBkZWYgcGFyc2UKICBlbmQKZW5k +# CgplbmQKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdl -# awAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAKcmVxdWlyZSAnb3BlbjMnCnJlcXVpcmUgJ2Rl -# dGVjdG9zJwoKbW9kdWxlIFFvbmYKCmNsYXNzIFFNYWtlCiAgYXR0cl9yZWFk -# ZXIgOnBhdGgKICAKICBkZWYgaW5pdGlhbGl6ZShwYXRocyA9IFtdLCBsb2df -# ZmlsZSA9IG5pbCkKICAgIEBwYXRocyA9IFsgInFtYWtlLXF0NCIsICJxbWFr -# ZTQiLCAicW1ha2UiIF0KICAgIEBwYXRocy5jb25jYXQocGF0aHMpCiAgICAK -# ICAgIGlmKCAkREVCVUcgKQogICAgICAkc3RkZXJyIDw8ICJRTWFrZSBwYXRo -# czogIiA8PCBAcGF0aHMuam9pbigiICIpIDw8ICJcbiIKICAgIGVuZAogICAg -# CiAgICBpZiBub3QgZmluZF9xbWFrZSgiNC4wLjAiKQogICAgICAgICAgICBy -# YWlzZSAiQ2FuJ3QgZmluZCB2YWxpZCBxbWFrZSAtIHF0NCIKICAgIGVuZAog -# ICAgCiAgICBAbG9nX2ZpbGUgPSBsb2dfZmlsZQogICAgaWYoIEBsb2dfZmls -# ZS5uaWw/ICkKICAgICAgQGxvZ19maWxlID0gb2xkbG9jYXRpb24oImNvbmZp -# Zy5sb2ciKQogICAgZW5kCiAgICAKICAgIEBtYWtlID0gIm1ha2UiCiAgICAK -# ICAgIGlmIERldGVjdE9TLm9zPyA9PSAxCiAgICAgIEBtYWtlX29wdGlvbnMg -# PSAiMj4+ICN7QGxvZ19maWxlfSIKICAgIGVsc2UKICAgICAgQG1ha2Vfb3B0 -# aW9ucyA9ICI+PiAje0Bsb2dfZmlsZX0gMj4+ICN7QGxvZ19maWxlfSIKICAg -# IGVuZAogIGVuZAogICAgICAgIAogIGRlZiBmaW5kX3FtYWtlKG1pbnF0dmVy -# c2lvbiwgb3AgPSAyKQogICAgCiAgICAKICAgIG1pbnZlciA9IG1pbnF0dmVy -# c2lvbi5zcGxpdCgiLiIpCiAgICBAcGF0aHMuZWFjaCB7IHxwYXRofAogICAg -# ICBiZWdpbgogICAgICAgIHZlcnNpb24gPSBbXQogICAgICAgIG9rID0gdHJ1 -# ZQogICAgICAgIAogICAgICAgIElPLnBvcGVuKCIje3BhdGh9IC1xdWVyeSBR -# VF9WRVJTSU9OIDI+ICN7bmV3bG9jYXRpb24oInFtYWtlX2xvZyIpfSIpIHsg -# fHByY3wKICAgICAgICAgIHZlcnNpb24gPSBwcmMucmVhZGxpbmVzLmpvaW4o -# IiIpLnNwbGl0KCIuIikKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgbmV4 -# dCBpZiAkPyAhPSAwCiAgICAgICAgCiAgICAgICAgdmVyc2lvbi5zaXplLnRp -# bWVzIHsgfGl8CiAgICAgICAgICBpZiB2ZXJzaW9uLnNpemUgPCBpIGFuZCBt -# aW52ZXIuc2l6ZSA+PSAzCiAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAg -# ICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAgY2FzZSBvcAogICAgICAg -# ICAgICB3aGVuIDAKICAgICAgICAgICAgICBpZiB2ZXJzaW9uW2ldICE9IG1p -# bnZlcltpXQogICAgICAgICAgICAgICAgb2sgPSBmYWxzZQogICAgICAgICAg -# ICAgICAgYnJlYWsKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgd2hl -# biAxCiAgICAgICAgICAgICAgaWYgdmVyc2lvbltpXSA8IG1pbnZlcltpXQog -# ICAgICAgICAgICAgICAgb2sgPSBmYWxzZQogICAgICAgICAgICAgICAgYnJl -# YWsKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgd2hlbiAyCiAgICAg -# ICAgICAgICAgaWYgdmVyc2lvbltpXSA8IG1pbnZlcltpXQogICAgICAgICAg -# ICAgICAgb2sgPSBmYWxzZQogICAgICAgICAgICAgICAgYnJlYWsKICAgICAg -# ICAgICAgICBlbmQKICAgICAgICAgIGVuZAogICAgICAgIH0KICAgICAgICAK -# ICAgICAgICBpZiBvawogICAgICAgICAgQHBhdGggPSBwYXRoCiAgICAgICAg -# ICAKICAgICAgICAgIGlmICRERUJVRwogICAgICAgICAgICBwdXRzICJVc2lu -# ZyBxbWFrZTogI3tAcGF0aH0gI3t2ZXJzaW9uLmpvaW4oIi4iKX0iCiAgICAg -# ICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAgcmV0dXJuIG9rCiAgICAg -# ICAgZW5kCiAgICAgIHJlc2N1ZQogICAgICBlbnN1cmUKICAgICAgZW5kCiAg -# ICB9CiAgCiAgICByZXR1cm4gZmFsc2UKICBlbmQKICAgICAgICAKICAgICAg -# ICBkZWYgcXVlcnkodmFyKQogICAgICAgICAgICAgICAgb3V0cHV0ID0gYCN7 -# QHBhdGh9IC1xdWVyeSAje3Zhcn1gCiAgICAgICAgICAgICAgICBvdXRwdXQK -# ICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBkZWYgcnVuKGFyZ3MgPSAi -# IiwgcmVjdXIgPSBmYWxzZSkKICAgICAgICAgICAgICAgIGlmICRERUJVRwog -# ICAgICAgICAgICAgICAgICBwdXRzICJBUkdTID0gI3thcmdzfSIKICAgICAg -# ICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgb3B0aW9ucyA9ICIiCiAg -# ICAgICAgICAgICAgICBpZiByZWN1cgogICAgICAgICAgICAgICAgICAgICAg -# ICBvcHRpb25zICs9ICItciIKICAgICAgICAgICAgICAgIGVuZAogICAgICAg -# ICAgICAgICAgCiAgICAgICAgICAgICAgICBvdXRwdXQgPSBgI3tAcGF0aH0g -# I3thcmdzfSAje29wdGlvbnN9IGAKICAgICAgICAgICAgICAgIGlmIG91dHB1 -# dC5zdHJpcC5lbXB0eT8KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu -# IHRydWUKICAgICAgICAgICAgICAgIGVuZAoKICAgICAgICAgICAgICAgIHJl -# dHVybiBmYWxzZQogICAgICAgIGVuZAogICAgICAgIAogICAgICAgIGRlZiBj -# b21waWxlCiAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAg -# ICAgICAgICBJTy5wb3BlbigiI3tAbWFrZX0gY2xlYW4gI3tAbWFrZV9vcHRp -# b25zfSIpIHsgfGN8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -# b3V0cHV0ID0gYy5yZWFkbGluZXMKICAgICAgICAgICAgICAgICAgICAgICAg -# fQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg -# ICAgICAgdGltZXMgPSAwCiAgICAgICAgICAgICAgICAgICAgICAgIGVuZGNv -# ZGUgPSAyCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg -# ICAgICAgICAgICBGaWxlLm9wZW4oQGxvZ19maWxlLCAiYSIgKSBkbyB8ZnwK -# ICAgICAgICAgICAgICAgICAgICAgICAgICBmIDw8ICI9PT09PT4gQ09NUElM -# SU5HIFxuIgogICAgICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAg -# ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxl -# IGVuZGNvZGUgPT0gMiBhbmQgdGltZXMgPD0gMwogICAgICAgICAgICAgICAg -# ICAgICAgICAgICAgICAgIElPLnBvcGVuKCIje0BtYWtlfSAje0BtYWtlX29w -# dGlvbnN9IiwgInIiKSB7IHxjfAogICAgICAgICAgICAgICAgICAgICAgICAg -# ICAgICAgICAgICAgICAgb3V0cHV0ID0gYy5yZWFkbGluZXMKICAgICAgICAg -# ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg -# ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg -# CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kY29kZSA9ICQ/ -# ID4+IDgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg -# ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcyArPSAxCiAgICAgICAg -# ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAK -# ICAgICAgICAgICAgICAgIHJlc2N1ZQogICAgICAgICAgICAgICAgICAgICAg -# ICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAg -# ICAgICAgCiAgICAgICAgICAgICAgICBpZiBlbmRjb2RlICE9IDAKICAgICAg -# ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgICAg -# ICBlbmQKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgcmV0dXJu -# IHRydWUKICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBkZWYgY2xlYW5f -# dXAKICAgICAgSU8ucG9wZW4oIiN7QG1ha2V9IGRpc3RjbGVhbiAyPj4gZGlz -# dGNsZWFuIikgeyB8Y3wKICAgICAgICAgIG91dHB1dCA9IGMucmVhZGxpbmVz -# CiAgICAgIH0KICAgICAgICBlbmQKZW5kCgplbmQgI21vZHVsZQoKCgAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL3BrZ2NvbmZpZy5yYn4AAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAw -# MDAxNzUxADAwMDAwMDA2MzczADEwNjczMDU2NTA1ADAxMzcxNgAgMAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCnJlcXVpcmUg -# J2RldGVjdG9zJwoKbW9kdWxlIFFvbmYKCmNsYXNzIFBrZ0NvbmZpZ1BhcnNl -# cgogIGRlZiBpbml0aWFsaXplCiAgICBAdmFyaWFibGVzID0ge30KICAgIEBz -# cGVjcyA9IHt9CiAgZW5kCiAgCiAgZGVmIHBhcnNlKHBhdGgpCiAgICBGaWxl -# Lm9wZW4ocGF0aCkgeyB8ZmlsZXwKICAgICAgZmlsZS5lYWNoIHsgfGxpbmV8 -# CiAgICAgICAgaWYgbGluZSA9fiAvKFx3Kyk9KC4qKSQvCiAgICAgICAgICBA -# dmFyaWFibGVzWyQxXSA9ICQyCiAgICAgICAgZWxzaWYgbGluZSA9fiAvKFx3 -# Kyk6XHMoLiopJC8KICAgICAgICAgIEBzcGVjc1skMV0gPSAkMgogICAgICAg -# IGVuZAogICAgICB9CiAgICB9CiAgZW5kCiAgCiAgZGVmIHZhbHVlKHZhcmlh -# YmxlKQogICAgdmFsID0gQHZhcmlhYmxlc1t2YXJpYWJsZV0KICAgIHdoaWxl -# IHZhbCA9fiAvKFwkXHsoXHcrKVx9KS8KICAgICAgdmFsLmdzdWIhKCQxLCB2 -# YWx1ZSgkMikpCiAgICBlbmQKICAgIAogICAgdmFsCiAgZW5kCiAgCiAgZGVm -# IHNwZWModmFyaWFibGUpCiAgICB2YWwgPSBAc3BlY3NbdmFyaWFibGVdCiAg -# ICB3aGlsZSB2YWwgPX4gLyhcJFx7KFx3KylcfSkvCiAgICAgIHZhbC5nc3Vi -# ISgkMSwgdmFsdWUoJDIpKQogICAgZW5kCiAgICAKICAgIHZhbAogIGVuZAog -# IAogIGRlZiBsaWJzCiAgICBzcGVjKCJMaWJzIikKICBlbmQKICAKICBkZWYg -# Y2ZsYWdzCiAgICBzcGVjKCJDZmxhZ3MiKQogIGVuZAogIAogIGRlZiByZXF1 -# aXJlcwogICAgc3BlYygiUmVxdWlyZXMiKS50b19zCiAgZW5kCmVuZAoKY2xh -# c3MgUGtnQ29uZmlnCiAgYXR0cl9yZWFkZXIgOmlkLCA6bGlicywgOmNmbGFn -# cywgOnJlcXVpcmVzCiAgCiAgZGVmIGluaXRpYWxpemUoaWQpCiAgICBAaWQg -# PSBpZAogICAgQHNlYXJjaF9wYXRoID0gW10KICAgIEByZXF1aXJlcyA9IFtd -# CiAgZW5kCiAgCiAgZGVmIGZpbmQocGtnKQogICAgcGtncGF0aCA9IGZpbmRf -# cGF0aF9mb3JfcGFja2FnZShwa2cpCiAgICAKICAgIGlmIG5vdCBwa2dwYXRo -# Lm5pbD8KICAgICAgQGNmbGFncyA9ICIiCiAgICAgIEBsaWJzID0gIiIKICAg -# ICAgcGFyc2UocGtncGF0aCwgcGtnKQogICAgICAKICAgICAgcmV0dXJuIHRy -# dWUKICAgIGVuZAogICAgCiAgICBmYWxzZQogIGVuZAogIAogIGRlZiBhZGRf -# c2VhcmNoX3BhdGgocGF0aCkKICAgIGlmIHBhdGgua2luZF9vZj8oQXJyYXkp -# CiAgICAgIEBzZWFyY2hfcGF0aC5jb25jYXQocGF0aCkKICAgIGVsc2UKICAg -# ICAgQHNlYXJjaF9wYXRoIDw8IHBhdGgudG9fcwogICAgZW5kCiAgZW5kCiAg -# CiAgZGVmIGluY2x1ZGVfcGF0aAogICAgaW5jcGF0aCA9IFtdCiAgICBjZmxh -# Z3MgPSBAY2ZsYWdzLmR1cAogICAgd2hpbGUgY2ZsYWdzID1+IC8oLUlccyoo -# KFxXXHcrKSspKS8KICAgICAgaW5jcGF0aCA8PCAkMgogICAgICBjZmxhZ3Mu -# c3ViISgkMSwgIiIpCiAgICBlbmQKICAgIAogICAgaW5jcGF0aC51bmlxCiAg -# ZW5kCiAgCiAgZGVmIGRlZmluZXMKICAgIGRlZmluZXMgPSBbXQogICAgY2Zs -# YWdzID0gQGNmbGFncy5kdXAKICAgIHdoaWxlIGNmbGFncyA9fiAvKC1EXHMq -# KChcV1x3KykrKSkvCiAgICAgIGRlZmluZXMgPDwgJDIKICAgICAgZGVmaW5l -# cy5zdWIhKCQxLCAiIikKICAgIGVuZAogICAgCiAgICBkZWZpbmVzLnVuaXEK -# ICBlbmQKICAKICBkZWYgZmluZF93aW4zMl9wYXRocwogICAgcGF0aHMgPSBm -# aW5kX2Vudl9wYXRocwogICAgCiAgICAKICAgIHBhdGhzCiAgZW5kCiAgCiAg -# ZGVmIGZpbmRfdW5peF9wYXRocwogICAgcGF0aHMgPSBmaW5kX2Vudl9wYXRo -# cwogICAgaWYgRmlsZS5leGlzdHM/KCIvZXRjL2xkLnNvLmNvbmYiKQogICAg -# ICBGaWxlLm9wZW4oIi9ldGMvbGQuc28uY29uZiIpIGRvIHxmaWxlfAogICAg -# ICAgIGZpbGUuZWFjaCB7IHxsaW5lfAogICAgICAgICAgZGlyID0gbGluZS5z -# dHJpcCsiL3BrZ2NvbmZpZyIKICAgICAgICAgIGlmIEZpbGUuZXhpc3RzPyhk -# aXIpCiAgICAgICAgICAgIHBhdGhzIDw8IGRpcgogICAgICAgICAgZW5kCiAg -# ICAgICAgfQogICAgICBlbmQKICAgIGVuZAogICAgCiAgICBwYXRocwogIGVu -# ZAogIAogIGRlZiBmaW5kX2Vudl9wYXRocwogICAgc2VwcGF0aCA9IChEZXRl -# Y3RPUy5vcz8gPT0gMSkgPyAiOyIgOiAiOiIKICAgIAogICAgcGF0aHMgPSBb -# ICIuIiBdCiAgICAoRU5WWyJQS0dfQ09ORklHX1BBVEgiXS50b19zK3NlcHBh -# dGgrRU5WWyJMRF9MSUJSQVJZX1BBVEgiXSkuc3BsaXQoc2VwcGF0aCkuZWFj -# aCB7IHxwYXRofAogICAgICBpZiBGaWxlLmV4aXN0cz8ocGF0aCkKICAgICAg -# ICBwYXRocyA8PCBwYXRoCiAgICAgIGVuZAogICAgfQogICAgCiAgICBwYXRo -# cwogIGVuZAogIAogIHByaXZhdGUKICBkZWYgcGFyc2UocGtncGF0aCwgcGtn -# KQogICAgcmV0dXJuIGlmIHBrZ3BhdGgubmlsPwogICAgCiAgICBwYXJzZXIg -# PSBQa2dDb25maWdQYXJzZXIubmV3CiAgICBwYXJzZXIucGFyc2UocGtncGF0 -# aCkKICAgIAogICAgcGFyc2VyLnJlcXVpcmVzLnNwbGl0KC8sfFxzLykuZWFj -# aCB7IHxyZXF8CiAgICAgIHJlcS5zdHJpcCEKICAgICAgCiAgICAgIHBhcnNl -# KGZpbmRfcGF0aF9mb3JfcGFja2FnZShyZXEpLCByZXEpCiAgICB9CiAgICAK -# ICAgIGNmbGFncyA9IHBhcnNlci5jZmxhZ3MKICAgIGxpYnMgPSBwYXJzZXIu -# bGlicwogICAgCiAgICBpZiBpZCAhPSBub3QgKGNmbGFncy5lbXB0eT8gb3Ig -# bGlicy5lbXB0eT8pCiAgICAgIEByZXF1aXJlcyA8PCBwa2cKICAgIGVuZAog -# ICAgCiAgICBAY2ZsYWdzICs9ICIgIitjZmxhZ3MKICAgIEBsaWJzICs9ICIg -# IitsaWJzCiAgICAKICAgIG5pbAogIGVuZAogIAogIGRlZiBmaW5kX3BhdGhf -# Zm9yX3BhY2thZ2UocGtnKQogICAgaWYgbm90IHBrZyA9fiAvXC5wYyQvCiAg -# ICAgIHBrZyArPSAiLnBjIgogICAgZW5kCiAgICAKICAgIHBhdGhzID0gQHNl -# YXJjaF9wYXRoCiAgICAKICAgIGlmIERldGVjdE9TLm9zPyA9PSAxICMgV2lu -# ZG93cwogICAgICBwYXRocy5jb25jYXQgZmluZF93aW4zMl9wYXRocwogICAg -# ZWxzZQogICAgICBwYXRocy5jb25jYXQgZmluZF91bml4X3BhdGhzCiAgICBl -# bmQKICAgIAogICAgcGtncGF0aCA9IG5pbAogICAgcGF0aHMuZWFjaCB7IHxw -# YXRofAogICAgICB0bXBwYXRoID0gcGF0aCsiLyIrcGtnCiAgICAgIGlmIEZp -# bGUuZXhpc3RzPyh0bXBwYXRoKQogICAgICAgIHBrZ3BhdGggPSB0bXBwYXRo -# CiAgICAgIGVuZAogICAgfQogICAgCiAgICBwa2dwYXRoCiAgZW5kCmVuZAoK -# ZW5kCgoKaWYgJDAgPT0gX19GSUxFX18KICBwa2djb25maWcgPSBRb25mOjpQ -# a2dDb25maWcubmV3CiAgcGtnY29uZmlnLmZpbmQoInRlc3RfcW9uZiIpCiAg -# CiAgcHV0cyBwa2djb25maWcubGlicwplbmQKCgAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9mcm9udGVuZC5yYgAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEA -# MDAwMTc1MQAwMDAwMDAwMDEyNAAxMDY3Mzc0MDMwMwAwMTMzNTAAIDAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACm1vZHVsZSBR -# b25mCgpjbGFzcyBGcm9udGVuZAogIGRlZiBpbml0aWFsaXplCiAgZW5kCiAg -# CiAgZGVmIHBhcnNlCiAgZW5kCmVuZAoKZW5kCgoKAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9mcm9u +# dGVuZGZhY3RvcnkucmIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw +# NjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDY0MwAxMDcwNDQ1MTIyMQAw +# MTYxNDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAACnJlcXVpcmUgJ3BsYWluX2Zyb250ZW5kJwoKbW9kdWxlIFFvbmYKCmNs +# YXNzIEZyb250ZW5kRmFjdG9yeQogIGRlZiBzZWxmLmNyZWF0ZShuYW1lID0g +# InRrIikKICAgIGNhc2UgbmFtZQogICAgICB3aGVuICJwbGFpbiIKICAgICAg +# ICBQbGFpbkZyb250ZW5kLm5ldwogICAgICB3aGVuICJ0ayIKICAgICAgICBo +# YXZlX3RrID0gZmFsc2UKCiAgICAgICAgYmVnaW4KICAgICAgICAgIGhhdmVf +# dGsgPSByZXF1aXJlICd0aycKICAgICAgICByZXNjdWUgTG9hZEVycm9yCiAg +# ICAgICAgICByZXR1cm4gY3JlYXRlKCJwbGFpbiIpCiAgICAgICAgZW5kCiAg +# ICAgICAgCiAgICAgICAgcmVxdWlyZSAndGtfZnJvbnRlbmQnCiAgICAgICAg +# VGtGcm9udGVuZC5uZXcKICAgICAgZWxzZQogICAgICAgIG5pbAogICAgZW5k +# CiAgZW5kCmVuZAoKZW5kCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvbWFrZWZpbGUucmIAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUw +# ADAwMDE3NTAAMDAwMDAwMDI2NTYAMTA3MTMzNDczMDYAMDE0NTI2ACAwAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0KcmVxdWly +# ZSAncmJjb25maWcnDQoNCm1vZHVsZSBRb25mDQogIGNsYXNzIE1ha2VmaWxl +# DQogICAgZGVmIHNlbGYuZmluZF9tYWtlZmlsZXMocGF0aCkNCiAgICAgIG1h +# a2VmaWxlcyA9IFtdDQogICAgICBEaXIuZm9yZWFjaChwYXRoKSB7IHxmfA0K +# ICAgICAgICBmaWxlID0gIiN7cGF0aH0vI3tmfSINCiAgICAgICAgaWYgRmls +# ZS5zdGF0KGZpbGUpLmRpcmVjdG9yeT8NCiAgICAgICAgICBpZiBub3QgZiA9 +# fiAvXlwuLw0KICAgICAgICAgICAgbWFrZWZpbGVzLmNvbmNhdCBmaW5kX21h +# a2VmaWxlcyhmaWxlKQ0KICAgICAgICAgIGVuZA0KICAgICAgICBlbHNpZiBm +# LmRvd25jYXNlID1+IC9ebWFrZWZpbGUoLmRlYnVnfC5yZWxlYXNlKXswLDF9 +# Lw0KICAgICAgICAgIG1ha2VmaWxlcyA8PCBmaWxlDQogICAgICAgIGVuZA0K +# ICAgICAgfQ0KICAgICAgbWFrZWZpbGVzDQogICAgZW5kDQogICAgDQogICAg +# ZGVmIHNlbGYub3ZlcnJpZGUobWFrZWZpbGUsIGRlc3RkaXIsIHN0YXR1c0Zp +# bGUpDQogICAgICBuZXdtYWtlZmlsZSA9ICIiDQogICAgICANCiAgICAgIHJ1 +# YnlfYmluID0gIiN7OjpDb25maWc6OkNPTkZJR1siYmluZGlyIl19LyN7OjpD +# b25maWc6OkNPTkZJR1sicnVieV9pbnN0YWxsX25hbWUiXX0iDQogICAgICAN +# CiMgICAgICAgaWYgRmlsZTo6QUxUX1NFUEFSQVRPUg0KIyAgICAgICAgIHJ1 +# YnlfYmluLmdzdWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFSQVRPUikNCiMgICAg +# ICAgICBkZXN0ZGlyLmdzdWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFSQVRPUikN +# CiMgICAgICAgZW5kDQogICAgICANCiAgICAgIEZpbGUub3BlbihtYWtlZmls +# ZSwgInIiKSB7IHxmfA0KICAgICAgICBsaW5lcyA9IGYucmVhZGxpbmVzDQog +# ICAgICAJDQogICAgICAgIGluZGV4ID0gMA0KICAgICAgICB3aGlsZSBpbmRl +# eCA8IGxpbmVzLnNpemUNCiAgICAgICAgICBsaW5lID0gbGluZXNbaW5kZXhd +# DQogICAgICAgICAgaWYgbGluZSA9fiAvXlxzK1wkXChRTUFLRVwpLw0KICAg +# ICAgICAgICAgbmV3bWFrZWZpbGUgKz0gbGluZQ0KICAgICAgICAgICAgbmV3 +# bWFrZWZpbGUgKz0gIlx0I3tydWJ5X2Jpbn0gI3tzdGF0dXNGaWxlfSAje21h +# a2VmaWxlfVxuIg0KICAgICAgICAgICAgaW5kZXggKz0gMQ0KICAgICAgICAg +# IGVsc2UNCiAgICAgICAgICAgIGlmIGxpbmUgPX4gL15JTlNUQUxMX0RJUi8N +# CiAgICAgICAgICAgICAgbmV3bWFrZWZpbGUgKz0gIklOU1RBTExfUk9PVCA9 +# ICN7ZGVzdGRpcn1cbiINCiAgICAgICAgICAgIGVuZA0KICAgICAgICAgICAg +# bmV3bWFrZWZpbGUgKz0gbGluZQ0KICAgICAgICAgIGVuZA0KICAgICAgICAg +# IGluZGV4ICs9IDENCiAgICAgICAgZW5kDQogICAgICB9DQogICAgICANCiAg +# ICAgIEZpbGUub3BlbihtYWtlZmlsZSwgInciKSB7IHxmfA0KICAgICAgICBm +# IDw8IG5ld21ha2VmaWxlDQogICAgICB9DQogICAgZW5kDQogIGVuZA0KZW5k +# DQoNCg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFv +# bmZpZ3VyZS9pbml0LnJiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDMwNgAx +# MDcwNDQ1MTIyMQAwMTM2NzIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtyYXdlawAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAACnJlcXVpcmUgJ3FvbmYnCgpEaXIuY2hkaXIoRmls +# ZS5kaXJuYW1lKG9sZGxvY2F0aW9uKCJxb25mLnJiIikpKQoKcW9uZiA9IFFv +# bmY6OkNvbmZpZ3VyZS5uZXcKcW9uZi5nZXRfYXJncyhBUkdWKQpxb25mLmZp +# bmRfcGFja2FnZXMKcW9uZi5ydW5fdGVzdHMKCnFvbmYuc2F2ZSgiY29uZmln +# LnByaSIpCgpxb25mLmdlbmVyYXRlX21ha2VmaWxlcwoKAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1cmUvcW9u +# Zi5yYn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAw +# MDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMzE2MzMAMTA3MDQ0NzU3MDAA +# MDE0MTA3ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# AAAAAApyZXF1aXJlICd0ZXN0JwpyZXF1aXJlICdwa2djb25maWcnCnJlcXVp +# cmUgJ2Zyb250ZW5kZmFjdG9yeScKcmVxdWlyZSAnY29uZmlnJwpyZXF1aXJl +# ICdxbWFrZScKcmVxdWlyZSAnbWFrZWZpbGUnCgptb2R1bGUgUW9uZgogIFZF +# UlNJT04gPSAiMC41Ii5mcmVlemUKICBWRVJTSU9OX0RBVEUgPSAiMjAwNy0x +# MC0xNCIKICAKICBjbGFzcyBRdFZlcnNpb24KICAgIGF0dHJfcmVhZGVyIDp2 +# ZXJzaW9uLCA6b3AgIyAwOiBlcXVhbCAxOiBncmVhdGVyIDI6IGdyZWF0ZXIg +# ZXF1YWwKICAgIAogICAgZGVmIGluaXRpYWxpemUodmVyc2lvbikKICAgICAg +# QG9wID0gMgogICAgICBwYXJzZSh2ZXJzaW9uKQogICAgZW5kCiAgICAKICAg +# IGRlZiA9PSh2ZXIpCiAgICAgIEBvcCA9IDAKICAgICAgcGFyc2UodmVyKQog +# ICAgZW5kCiAgICAKICAgIGRlZiA+KHZlcikKICAgICAgQG9wID0gMQogICAg +# ICBwYXJzZSh2ZXIpCiAgICBlbmQKICAgIAogICAgZGVmID49KHZlcikKICAg +# ICAgQG9wID0gMgogICAgICBwYXJzZSh2ZXIpCiAgICBlbmQKICAgIAogICAg +# ZGVmIHRvX3MKICAgICAgcyA9ICJRdCAiCiAgICAgIGNhc2UgQG9wCiAgICAg +# ICAgd2hlbiAwCiAgICAgICAgICBzKz0iPT0iCiAgICAgICAgd2hlbiAxCiAg +# ICAgICAgICBzKz0iPiIKICAgICAgICBlbHNlCiAgICAgICAgICBzKz0iPj0i +# CiAgICAgIGVuZAogICAgICBzKz0gIiAiK0B2ZXJzaW9uCiAgICAgIAogICAg +# ICBzCiAgICBlbmQKICAgIAogICAgcHJpdmF0ZQogICAgZGVmIHBhcnNlKHZl +# cnNpb24pCiAgICAgIEB2ZXJzaW9uID0gdmVyc2lvbi50b19zCiAgICAgIHZl +# ciA9IEB2ZXJzaW9uLnRvX3Muc3BsaXQoJy4nKQogICAgICBzaXplID0gdmVy +# LnNpemUKICAgICAgICAKICAgICAgZmluYWx2ZXIgPSBbXQogICAgICAzLnRp +# bWVzIHsgfGl8CiAgICAgICAgdHAgPSB2ZXJbaV0KICAgICAgICAKICAgICAg +# ICBpZiB0cC5uaWw/CiAgICAgICAgICB0cCA9ICIwIgogICAgICAgIGVuZAog +# ICAgICAgIAogICAgICAgIGZpbmFsdmVyIDw8IHRwCiAgICAgIH0KICAgICAg +# CiAgICAgIEB2ZXJzaW9uID0gZmluYWx2ZXIuam9pbigiLiIpCiAgICBlbmQK +# ICBlbmQKICAKICBjbGFzcyBTZXR1cAogICAgYXR0cl9yZWFkZXIgOm9wdGlv +# bnMsIDpwYWNrYWdlcywgOnRlc3RzLCA6cGtnX2NvbmZpZ3MKICAgIGRlZiBp +# bml0aWFsaXplCiAgICAgIEBvcHRpb25zID0gW10KICAgICAgQHBhY2thZ2Vz +# ID0gW10KICAgICAgQHRlc3RzID0gW10KICAgICAgQHBrZ19jb25maWdzID0g +# W10KICAgICAgQHF0X3ZlcnNpb24gPSBRdFZlcnNpb24ubmV3KCI0LjAuMCIp +# CiAgICAgIAogICAgICBhZGRfb3B0aW9uKDpuYW1lID0+ICJwcmVmaXgiLCA6 +# dHlwZSA9PiAicGF0aCIsIDpkZWZhdWx0ID0+ICIvdXNyL2xvY2FsLyIsIDpv +# cHRpb25hbCA9PiB0cnVlLCA6ZGVzY3JpcHRpb24gPT4gIlNldHMgdGhlIGlu +# c3RhbGwgcHJlZml4IikKICAgIGVuZAogICAgCiAgICBkZWYgYWRkX29wdGlv +# bihvcHRpb24pCiAgICAgIGlmIG5vdCBvcHRpb25bOnR5cGVdLm5pbD8KICAg +# ICAgICBvcHRpb25bOnR5cGVdLmRvd25jYXNlIQogICAgICBlbmQKICAgICAg +# CiAgICAgIEBvcHRpb25zIDw8IG9wdGlvbgogICAgZW5kCiAgICAKICAgIGRl +# ZiBmaW5kX3BhY2thZ2Uob3B0aW9ucykKICAgICAgQHBhY2thZ2VzIDw8IG9w +# dGlvbnMKICAgIGVuZAogICAgCiAgICBkZWYgYWRkX3Rlc3Qob3B0aW9uKQog +# ICAgICByYWlzZSAiUGxlYXNlIHNldCBhIHZhbGlkIG5hbWUgdG8gdGhlIHRl +# c3QiIGlmIG9wdGlvbls6bmFtZV0udG9fcy5lbXB0eT8KICAgICAgcmFpc2Ug +# IlBsZWFzZSBzZXQgYSB2YWxpZCBpZCB0byB0aGUgdGVzdCIgaWYgb3B0aW9u +# WzppZF0udG9fcy5lbXB0eT8KICAgICAgCiAgICAgIEB0ZXN0cyA8PCBvcHRp +# b24KICAgIGVuZAogICAgCiAgICBkZWYgZ2VuZXJhdGVfcGtnY29uZmlnKG9w +# dGlvbnMpCiAgICAgIHJhaXNlICJQbGVhc2Ugc2V0IGEgdmFsaWQgbmFtZSIg +# aWYgb3B0aW9uc1s6cGFja2FnZV9uYW1lXS50b19zLmVtcHR5PwogICAgICBA +# cGtnX2NvbmZpZ3MgPDwgb3B0aW9ucwogICAgZW5kCiAgICAKICAgIGRlZiBx +# dAogICAgICBAcXRfdmVyc2lvbgogICAgZW5kCiAgICAKICBlbmQKICAKICBj +# bGFzcyBDb25maWd1cmUKICAgIGRlZiBpbml0aWFsaXplCiAgICAgIEBhcmd1 +# bWVudHMgPSB7fQogICAgICBAY29uZmlnID0gQ29uZmlnLm5ldwogICAgICAK +# ICAgICAgQGxvZ19maWxlID0gb2xkbG9jYXRpb24oImNvbmZpZy5sb2ciKQog +# ICAgICAKICAgICAgRmlsZS5vcGVuKEBsb2dfZmlsZSwgInciKSBkbyB8ZnwK +# ICAgICAgICBmIDw8ICI9PT09PT09PiBHZW5lcmF0ZWQgYXQgI3tUaW1lLm5v +# d30gPD09PT09PT1cbiIKICAgICAgZW5kCiAgICAgIAogICAgICBxbWFrZV9w +# YXRocyA9IFtdCiAgICAgIGlmKCBEZXRlY3RPUy5vcz8gIT0gMSApICMgVW5p +# eAogICAgICAgIElPLnBvcGVuKCJsb2NhdGUgLXIgL3FtYWtlJCAyPiAje25l +# d2xvY2F0aW9uKCdsb2NhdGVfbG9nJyl9IikgeyB8cHJjfAogICAgICAgICAg +# cHJlX3BhdGhzID0gcHJjLnJlYWRsaW5lcwogICAgICAgICAgcHJlX3BhdGhz +# LmVhY2ggeyB8cW18CiAgICAgICAgICAgIHFtLnN0cmlwIQogICAgICAgICAg +# ICBpZiBGaWxlLmV4aXN0cz8ocW0pCiAgICAgICAgICAgICAgc3RhdCA9IEZp +# bGUuc3RhdChxbSkKICAgICAgICAgICAgICAKICAgICAgICAgICAgICBpZiAo +# bm90IChzdGF0LnN5bWxpbms/IG9yIHN0YXQuZGlyZWN0b3J5PykpIGFuZCBz +# dGF0LmV4ZWN1dGFibGU/CiAgICAgICAgICAgICAgICBxbWFrZV9wYXRocyA8 +# PCBxbQogICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbmQKICAgICAg +# ICAgIH0KICAgICAgICB9CiAgICAgIGVuZAogICAgICAKICAgICAgQHFtYWtl +# ID0gUU1ha2UubmV3KHFtYWtlX3BhdGhzLCBAbG9nX2ZpbGUpCiAgICAgIAog +# ICAgICBjZmcgPSBTZXR1cC5uZXcKICAgICAgY29uZmlndXJlKGNmZykKICAg +# ICAgCiAgICAgIHByaW50ICI9PiBTZWFyY2hpbmcgZm9yICN7Y2ZnLnF0fS4u +# LiAiCiAgICAgIGlmIEBxbWFrZS5maW5kX3FtYWtlKGNmZy5xdC52ZXJzaW9u +# LCBjZmcucXQub3ApCiAgICAgICAgcHV0cyAiKCN7QHFtYWtlLnBhdGh9KSBb +# WUVTXSIKICAgICAgZWxzZQogICAgICAgIHB1dHMgIltOT10iCiAgICAgICAg +# ZXhpdCgtMSkKICAgICAgZW5kCiAgICAgIAogICAgICBAb3B0aW9ucyA9IGNm +# Zy5vcHRpb25zCiAgICAgIEBwYWNrYWdlcyA9IGNmZy5wYWNrYWdlcwogICAg +# ICBAdGVzdHMgPSBjZmcudGVzdHMKICAgICAgQHBrZ19jb25maWdzID0gY2Zn +# LnBrZ19jb25maWdzCiAgICAgIEBzdGF0dXNGaWxlID0gRGlyLmdldHdkKyIv +# dXBkYXRlLW1ha2VmaWxlIgogICAgZW5kCiAgICAKICAgIGRlZiBmaW5kX3Bh +# Y2thZ2VzICMgVE9ETzogc29wb3J0YXIgaW5mb3JtYWNpb24gcGFyYSBlbCBz +# aXN0ZW1hIG9wZXJhdGl2byBzb2JyZSBjb21vIGluc3RhbGFyIGVsIHBhcXVl +# dGUKICAgICAgQHBhY2thZ2VzLmVhY2ggeyB8cGFja2FnZXwKICAgICAgICBw +# cmludCAiPT4gU2VhcmNoaW5nIGZvciBwYWNrYWdlOiAje3BhY2thZ2VbOm5h +# bWVdfS4uLiAgIgogICAgICAgIHBrZ2NvbmZpZyA9IFBrZ0NvbmZpZy5uZXco +# cGFja2FnZVs6bmFtZV0pCiAgICAgICAgYmVnaW4KICAgICAgICAgIHNldHVw +# X3BrZ2NvbmZpZyhwa2djb25maWcsIEBhcmd1bWVudHMpCiAgICAgICAgcmVz +# Y3VlIE5vTWV0aG9kRXJyb3IgPT4gZQogICAgICAgICAgaWYgbm90IGUubWVz +# c2FnZSA9fiAvc2V0dXBfcGtnY29uZmlnLwogICAgICAgICAgICBwdXRzICJF +# cnJvcjogI3tlLm1lc3NhZ2V9IgogICAgICAgICAgICBwdXRzIGUuYmFja3Ry +# YWNlCiAgICAgICAgICAgIGV4aXQoLTEpCiAgICAgICAgICBlbmQKICAgICAg +# ICBlbmQKICAgICAgICAKICAgICAgICBpZiBub3QgcGtnY29uZmlnLmZpbmQo +# cGFja2FnZVs6bmFtZV0pCiAgICAgICAgICBwdXRzICJbTk9dIgogICAgICAg +# ICAgCiAgICAgICAgICBvcHRpb25hbCA9IHBhY2thZ2VbOm9wdGlvbmFsXS5u +# aWw/ID8gZmFsc2UgOiBwYWNrYWdlWzpvcHRpb25hbF0KICAgICAgICAgIAog +# ICAgICAgICAgaWYgbm90IG9wdGlvbmFsCiAgICAgICAgICAgIHB1dHMgIj0+ +# IFRoZSBwYWNrYWdlICcje3BhY2thZ2VbOm5hbWVdfScgaXMgcmVxdWlyZWQu +# IgogICAgICAgICAgICBleGl0KC0xKQogICAgICAgICAgZW5kCiAgICAgICAg +# ZWxzZQogICAgICAgICAgcHV0cyAiW1lFU10iCiAgICAgICAgICBnbG9iYWwg +# PSBwYWNrYWdlWzpnbG9iYWxdLm5pbD8gPyBmYWxzZSA6IHBhY2thZ2VbOmds +# b2JhbF0KICAgICAgICAgIAogICAgICAgICAgcW9uZnBrZyA9IEBjb25maWcK +# ICAgICAgICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAgICAgICAg +# ICBxb25mcGtnID0gUGFja2FnZS5uZXcocGFja2FnZVs6bmFtZV0pCiAgICAg +# ICAgICBlbmQKICAgICAgICAgIAogICAgICAgICAgCiMgICAgICAgICAgIHBr +# Z2NvbmZpZy5yZXF1aXJlcy5lYWNoIHsgfHJlcXwKIyAgICAgICAgICAgICBA +# Y29uZmlnLmFkZF9xb25mX3BhY2thZ2UocmVxKQojICAgICAgICAgICB9CiAg +# ICAgICAgICAKICAgICAgICAgIHFvbmZwa2cuYWRkX2xpYihwa2djb25maWcu +# bGlicykKICAgICAgICAgIAogICAgICAgICAgcGtnY29uZmlnLmluY2x1ZGVf +# cGF0aC5lYWNoIHsgfGluY3BhdGh8CiAgICAgICAgICAgIHFvbmZwa2cuYWRk +# X2luY2x1ZGVfcGF0aChpbmNwYXRoKQogICAgICAgICAgfQogICAgICAgICAg +# CiAgICAgICAgICBwa2djb25maWcuZGVmaW5lcy5lYWNoIHsgfGRlZmluZXwK +# ICAgICAgICAgICAgcW9uZnBrZy5hZGRfZGVmaW5lKGRlZmluZSkKICAgICAg +# ICAgIH0KICAgICAgICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAg +# ICAgICAgICBAY29uZmlnLmFkZF9xb25mX3BhY2thZ2UocW9uZnBrZykKICAg +# ICAgICAgIGVsc2UKICAgICAgICAgICAgQGNvbmZpZy5hZGRfcW9uZl9mZWF0 +# dXJlKHBhY2thZ2VbOm5hbWVdKQogICAgICAgICAgZW5kCiAgICAgICAgZW5k +# CiAgICAgIH0KICAgIGVuZAogICAgCiAgICBkZWYgcnVuX3Rlc3RzCiAgICAg +# IEB0ZXN0cy5lYWNoIHsgfHRlc3RvcHR8CiAgICAgICAgcHJpbnQgIj0+IFRl +# c3RpbmcgI3t0ZXN0b3B0WzpuYW1lXX0uLi4gICIKICAgICAgICAKICAgICAg +# ICB0c3QgPSBUZXN0Lm5ldyh0ZXN0b3B0LCBAY29uZmlnLCBAbG9nX2ZpbGUp +# CiAgICAgICAgCiAgICAgICAgYmVnaW4KICAgICAgICAgIHNldHVwX3Rlc3Qo +# dGVzdG9wdFs6aWRdLCB0c3QsIEBhcmd1bWVudHMpCiAgICAgICAgcmVzY3Vl +# IE5vTWV0aG9kRXJyb3IgPT4gZQogICAgICAgICAgaWYgbm90IGUubWVzc2Fn +# ZSA9fiAvc2V0dXBfdGVzdC8KICAgICAgICAgICAgcHV0cyAiRXJyb3I6ICN7 +# ZX0iCiAgICAgICAgICAgIHB1dHMgZS5iYWNrdHJhY2UKICAgICAgICAgICAg +# ZXhpdCgtMSkKICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgICAgIAog +# ICAgICAgIG9wdGlvbmFsID0gdGVzdG9wdFs6b3B0aW9uYWxdLm5pbD8gPyBm +# YWxzZSA6IHRlc3RvcHRbOm9wdGlvbmFsXQogICAgICAgIGlmIHRzdC5ydW4o +# QHFtYWtlKQogICAgICAgICAgZ2xvYmFsID0gdGVzdG9wdFs6Z2xvYmFsXS5u +# aWw/ID8gZmFsc2UgOiB0ZXN0b3B0WzpnbG9iYWxdCiAgICAgICAgICAKICAg +# ICAgICAgIHFvbmZwa2cgPSBAY29uZmlnCiAgICAgICAgICAKICAgICAgICAg +# IGlmIG5vdCBnbG9iYWwKICAgICAgICAgICAgcW9uZnBrZyA9IFBhY2thZ2Uu +# bmV3KHRzdC5pZCkKICAgICAgICAgIGVuZAogICAgICAgICAgCiAgICAgICAg +# ICB0c3QuaW5jbHVkZV9wYXRoLmVhY2ggeyB8aW5jcGF0aHwKICAgICAgICAg +# ICAgcW9uZnBrZy5hZGRfaW5jbHVkZV9wYXRoKGluY3BhdGgpCiAgICAgICAg +# ICB9CiAgICAgICAgICAKICAgICAgICAgIHRzdC5kZWZpbmVzLmVhY2ggeyB8 +# ZGVmaW5lfAogICAgICAgICAgICBxb25mcGtnLmFkZF9kZWZpbmUoZGVmaW5l +# KQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBxb25mcGtnLmFk +# ZF9saWIodHN0LmxpYnMudG9fcykKICAgICAgICAgIAogICAgICAgICAgaWYg +# bm90IGdsb2JhbAogICAgICAgICAgICBAY29uZmlnLmFkZF9xb25mX3BhY2th +# Z2UocW9uZnBrZykKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgQGNvbmZp +# Zy5hZGRfcW9uZl9mZWF0dXJlKHRzdC5pZCkKICAgICAgICAgIGVuZAogICAg +# ICAgICAgcHV0cyAiW09LXSIKICAgICAgICBlbHNlCiAgICAgICAgICBwdXRz +# ICJbRkFJTEVEXSIKICAgICAgICAgIAogICAgICAgICAgaWYgbm90IG9wdGlv +# bmFsCiAgICAgICAgICAgIHB1dHMgIj0+ICN7dGVzdG9wdFs6bmFtZV19IGlz +# IHJlcXVpcmVkIgogICAgICAgICAgICBleGl0KC0xKQogICAgICAgICAgZW5k +# CiAgICAgICAgZW5kCiAgICAgIH0KICAgIGVuZAogICAgCiAgICBkZWYgZ2Vu +# ZXJhdGVfbWFrZWZpbGVzCiAgICAgIHB1dHMgIj0+IENyZWF0aW5nIG1ha2Vm +# aWxlcy4uLiIKICAgICAgQHFtYWtlLnJ1bigiIiwgdHJ1ZSkKICAgICAgCiAg +# ICAgIHB1dHMgIj0+IFVwZGF0aW5nIG1ha2VmaWxlcy4uLiIKICAgICAgCiAg +# ICAgIEBtYWtlZmlsZXMgPSBNYWtlZmlsZTo6ZmluZF9tYWtlZmlsZXMoRGly +# LmdldHdkKQogICAgICBAbWFrZWZpbGVzLmVhY2ggeyB8bWFrZWZpbGV8CiAg +# ICAgICAgICBNYWtlZmlsZTo6b3ZlcnJpZGUobWFrZWZpbGUsIEZpbGUuZXhw +# YW5kX3BhdGgoQGFyZ3VtZW50c1sicHJlZml4Il0udG9fcyksIEBzdGF0dXNG +# aWxlKQogICAgICB9CiAgICAgIAogICAgICBGaWxlLm9wZW4oQHN0YXR1c0Zp +# bGUsICJ3IiApIHsgfGZpbGV8CiAgICAgICAgZmlsZSA8PCAlQAoje0ZpbGUu +# cmVhZChuZXdsb2NhdGlvbigibWFrZWZpbGUucmIiKSl9ClFvbmY6Ok1ha2Vm +# aWxlOjpvdmVycmlkZSggQVJHVlswXS50b19zLCAiI3tAYXJndW1lbnRzWyJw +# cmVmaXgiXX0iLCAiI3tAc3RhdHVzRmlsZX0iICkKQAogICAgICB9CiAgICBl +# bmQKICAgIAogICAgZGVmIGdldF9hcmdzKGFyZ3YpCiAgICAgIG9wdGMgPSAw +# CiAgICAgIGxhc3Rfb3B0ID0gIiIKICAgICAgCiAgICAgIEBvcHRpb25zLmVh +# Y2ggeyB8b3B0aW9ufAogICAgICAgIGdpdmVuX29wdGlvbiA9IG5pbAogICAg +# ICAgIAogICAgICAgIGFyZ3YuZWFjaCB7IHxhcmd8CiAgICAgICAgICBhcmcu +# c3RyaXAhCiAgICAgICAgICBnaXZlbiA9IGZhbHNlCiAgICAgICAgICAKICAg +# ICAgICAgIGNhc2Ugb3B0aW9uWzp0eXBlXS50b19zCiAgICAgICAgICAgIHdo +# ZW4gInN0cmluZyIKICAgICAgICAgICAgICBpZiBhcmcgPX4gLy0tI3tvcHRp +# b25bOm5hbWVdfT0oW1xXXHddKikvCiAgICAgICAgICAgICAgICBnaXZlbiA9 +# IHRydWUKICAgICAgICAgICAgICAgIGdpdmVuX29wdGlvbiA9ICQxCiAgICAg +# ICAgICAgICAgZW5kCiAgICAgICAgICAgIHdoZW4gInBhdGgiCiAgICAgICAg +# ICAgICAgaWYgYXJnID1+IC8tLSN7b3B0aW9uWzpuYW1lXX09KFtcV1x3XSop +# LwogICAgICAgICAgICAgICAgZ2l2ZW4gPSB0cnVlCiAgICAgICAgICAgICAg +# ICBnaXZlbl9vcHRpb24gPSBGaWxlLmV4cGFuZF9wYXRoKCQxKQogICAgICAg +# ICAgICAgIGVuZAogICAgICAgICAgICB3aGVuICJib29sIgogICAgICAgICAg +# ICAgIGlmIGFyZyA9fiAvLS11c2UtI3tvcHRpb25bOm5hbWVdfT0oXHcrKS8K +# ICAgICAgICAgICAgICAgIGdpdmVuID0gdHJ1ZQogICAgICAgICAgICAgICAg +# Z2l2ZW5fb3B0aW9uID0gJDEKICAgICAgICAgICAgICBlbmQKICAgICAgICAg +# ICAgZWxzZQogICAgICAgICAgICAgIGlmIGFyZyA9fiAvLS0je29wdGlvbls6 +# bmFtZV19LwogICAgICAgICAgICAgICAgZ2l2ZW5fb3B0aW9uID0gInllcyIK +# ICAgICAgICAgICAgICAgIGdpdmVuID0gdHJ1ZQogICAgICAgICAgICAgIGVu +# ZAogICAgICAgICAgZW5kCiAgICAgICAgICAKICAgICAgICAgIGlmIGdpdmVu +# CiAgICAgICAgICAgIGFyZ3YuZGVsZXRlKGFyZykKICAgICAgICAgIGVuZAog +# ICAgICAgIH0KICAgICAgICAKICAgICAgICBvcHRpb25bOnZhbHVlXSA9IGdp +# dmVuX29wdGlvbgogICAgICB9CiAgICAgIAogICAgICBmcm9udGVuZF9rZXkg +# PSAidGsiCiAgICAgIGFyZ3YuZWFjaCB7IHx1bmtub3dufAogICAgICAgIHVu +# a25vd24uc3RyaXAhCiAgICAgICAgaWYgdW5rbm93biA9fiAvLS13aXRoLWNv +# bmZpZy1mcm9udGVuZD0oXHcrKS8KICAgICAgICAgIGZyb250ZW5kX2tleSA9 +# ICQxCiAgICAgICAgZWxzaWYgdW5rbm93biA9fiAvLS1oZWxwLwogICAgICAg +# ICAgdXNhZ2UKICAgICAgICAgIGV4aXQoMCkKICAgICAgICBlbHNpZiB1bmtu +# b3duID1+IC8tLXZlcnNpb24vCiAgICAgICAgICBwdXRzICJRT25mICN7VkVS +# U0lPTn0gWyN7VkVSU0lPTl9EQVRFfV0iCiAgICAgICAgICBleGl0KDApCiAg +# ICAgICAgZW5kCiAgICAgIH0KICAgICAgCiAgICAgIGZyb250ZW5kID0gRnJv +# bnRlbmRGYWN0b3J5LmNyZWF0ZShmcm9udGVuZF9rZXkpCiAgICAgIGlmIGZy +# b250ZW5kLm5pbD8KICAgICAgICBwdXRzICI9PiBJbnZhbGlkIGZyb250ZW5k +# IgogICAgICAgIHVzYWdlKCkKICAgICAgICBleGl0KC0xKQogICAgICBlbHNp +# ZiBub3QgZnJvbnRlbmQucGFyc2UoQG9wdGlvbnMpCiAgICAgICAgdXNhZ2Uo +# KQogICAgICAgIGV4aXQoLTEpCiAgICAgIGVuZAogICAgICAKICAgICAgQG9w +# dGlvbnMuZWFjaCB7IHxvcHRpb258CiAgICAgICAgdmFsdWUgPSBvcHRpb25b +# OnZhbHVlXS5uaWw/ID8gb3B0aW9uWzpkZWZhdWx0XS50b19zIDogb3B0aW9u +# Wzp2YWx1ZV0KICAgICAgICBAYXJndW1lbnRzW29wdGlvbls6bmFtZV1dID0g +# dmFsdWUKICAgICAgfQogICAgICAKICAgIGVuZAogICAgCiAgICBkZWYgc2F2 +# ZShwYXRoKQogICAgICBiZWdpbgogICAgICAgIHNldHVwX2NvbmZpZyhAY29u +# ZmlnLCBAYXJndW1lbnRzKQogICAgICByZXNjdWUgTm9NZXRob2RFcnJvciA9 +# PiBlCiAgICAgICAgaWYgbm90IGUubWVzc2FnZSA9fiAvc2V0dXBfY29uZmln +# LwogICAgICAgICAgcHV0cyAiRXJyb3I6ICN7ZX0iCiAgICAgICAgICBwdXRz +# IGUuYmFja3RyYWNlCiAgICAgICAgICBleGl0KC0xKQogICAgICAgIGVuZAog +# ICAgICBlbmQKICAgICAgCiAgICAgIEBjb25maWcuYWRkX2RlZmluZSglQF9f +# UFJFRklYX189J1xcXFwiJyN7RmlsZS5leHBhbmRfcGF0aCBAYXJndW1lbnRz +# WyJwcmVmaXgiXX0nXFxcXCInQCkKICAgICAgCiAgICAgIHNhdmVfcGtnY29u +# ZmlnCiAgICAgIEBjb25maWcuc2F2ZShwYXRoKQogICAgICAKICAgICAgbGF1 +# bmNoZXIgPSBuaWwKICAgICAgaWYgRGV0ZWN0T1Mub3M/ID09IDEgIyBXaW5k +# b3dzCiAgICAgICAgbGF1bmNoZXIgPSBGaWxlLm5ldygibGF1bmNoZXIuYmF0 +# IiwgInciKQogICAgICAgIAogICAgICAgIGxhdW5jaGVyIDw8ICJzZXQgUEFU +# SD0je0Bjb25maWcuYnVpbGRfZGlyLmdzdWIoJy8nLCAnXFwnKX1cXGJpbjsj +# e0Bjb25maWcuYnVpbGRfZGlyLmdzdWIoJy8nLCAnXFwnKX1cXGxpYjsje0Bj +# b25maWcubGlicmFyeV9wYXRoLmpvaW4oIjoiKX07JVBBVEglXG4iCiAgICAg +# ICAgbGF1bmNoZXIgPDwgIiUxXG4iCiAgICAgIGVsc2UKICAgICAgICBsYXVu +# Y2hlciA9IEZpbGUubmV3KCJsYXVuY2hlci5zaCIsInciKQogICAgICAgIGxh +# dW5jaGVyIDw8ICIjIS9iaW4vYmFzaFxuIgogICAgICAgIGxhdW5jaGVyIDw8 +# ICJleHBvcnQgUEFUSD0je0Bjb25maWcuYnVpbGRfZGlyfS9iaW46JHtQQVRI +# fVxuIgogICAgICAgIGxhdW5jaGVyIDw8ICJleHBvcnQgTERfTElCUkFSWV9Q +# QVRIPSN7QGNvbmZpZy5idWlsZF9kaXJ9L2Jpbjoje0Bjb25maWcuYnVpbGRf +# ZGlyfS9saWI6I3tAY29uZmlnLmxpYnJhcnlfcGF0aC5qb2luKCI6Iil9OiR7 +# TERfTElCUkFSWV9QQVRIfToke0RZX0xEX0xJQlJBUllfUEFUSH1cbiIKICAg +# ICAgICBsYXVuY2hlciA8PCAiZXhwb3J0IERZTERfTElCUkFSWV9QQVRIPSR7 +# TERfTElCUkFSWV9QQVRIfVxuIgogICAgICAgIGxhdW5jaGVyIDw8ICJBUFA9 +# JDFcbiIKICAgICAgICBsYXVuY2hlciA8PCAic2hpZnRcbiIKICAgICAgICBs +# YXVuY2hlciA8PCAiZWNobyBMYXVuY2hpbmc6ICRBUFBcbiIKICAgICAgICBs +# YXVuY2hlciA8PCAiJEFQUCAkKlxuIgogICAgICBlbmQKICAgICAgCiAgICAg +# IEZpbGUuY2htb2QoMDc1NSwgbGF1bmNoZXIucGF0aCkKICAgICAgCiAgICBl +# bmQKICAgIAogICAgZGVmIHNhdmVfcGtnY29uZmlnCiAgICAgIGlmIG5vdCBA +# cGtnX2NvbmZpZ3MuZW1wdHk/CiAgICAgICAgQHBrZ19jb25maWdzLmVhY2gg +# eyB8cGtnX2NvbmZpZ3wKICAgICAgICAgIEZpbGUub3BlbiggcGtnX2NvbmZp +# Z1s6cGFja2FnZV9uYW1lXSsiLnBjIiwgInciKSBkbyB8ZmlsZXwKICAgICAg +# ICAgICAgZmlsZSA8PCAicHJlZml4PSIgPDwgQGFyZ3VtZW50c1sicHJlZml4 +# Il0gPDwgIlxuIgogICAgICAgICAgICBmaWxlIDw8ICJleGVjX3ByZWZpeD0k +# e3ByZWZpeH0iIDw8ICJcbiIKICAgICAgICAgICAgZmlsZSA8PCAibGliZGly +# PSN7cGtnX2NvbmZpZ1s6bGliZGlyXS5uaWw/ID8gIiR7cHJlZml4fS9saWIi +# IDogcGtnX2NvbmZpZ1s6bGliZGlyXSB9IiA8PCAiXG4iCiAgICAgICAgICAg +# IGZpbGUgPDwgImluY2x1ZGVkaXI9I3twa2dfY29uZmlnWzppbmNsdWRlZGly +# XS5uaWw/ID8gIiR7cHJlZml4fS9pbmNsdWRlIiA6IHBrZ19jb25maWdbOmlu +# Y2x1ZGVkaXJdIH0iIDw8ICJcblxuXG4iCiAgICAgICAgICAgIAogICAgICAg +# ICAgICBmaWxlIDw8ICJOYW1lOiAiIDw8IHBrZ19jb25maWdbOnBhY2thZ2Vf +# bmFtZV0gPDwgIlxuIgogICAgICAgICAgICBmaWxlIDw8ICJEZXNjcmlwdGlv +# bjogIiA8PCBwa2dfY29uZmlnWzpkZXNjcmlwdGlvbl0gPDwgIlxuIgogICAg +# ICAgICAgICBmaWxlIDw8ICJSZXF1aXJlczogIiA8PCBwa2dfY29uZmlnWzpy +# ZXF1aXJlc10uam9pbigiICIpIDw8ICJcbiIgaWYgcGtnX2NvbmZpZ1s6cmVx +# dWlyZXNdLmNsYXNzID09IEFycmF5CiAgICAgICAgICAgIGZpbGUgPDwgIlZl +# cnNpb246ICIgPDwgcGtnX2NvbmZpZ1s6dmVyc2lvbl0gPDwgIlxuIgogICAg +# ICAgICAgICAKICAgICAgICAgICAgZmlsZSA8PCAiTGliczogIiA8PCBwa2df +# Y29uZmlnWzpsaWJzXSA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwgIkNm +# bGFnczogIiA8PCBwa2dfY29uZmlnWzpjZmxhZ3NdIDw8ICJcbiIKICAgICAg +# ICAgIGVuZAogICAgICAgIH0KICAgICAgZW5kCiAgICBlbmQKICAgIAogICAg +# CiAgICBkZWYgbG9nKHR4dCkKICAgICAgRmlsZS5vcGVuKEBsb2dfZmlsZSwg +# ImEiKSBkbyB8ZnwKICAgICAgICBmIDw8IHR4dCA8PCAiXG4iCiAgICAgIGVu +# ZAogICAgZW5kCiAgICAKICAgIGRlZiB1c2FnZQogICAgICBwdXRzICJPcHRp +# b25zOiIKICAgICAgQG9wdGlvbnMuZWFjaCB7IHxvcHRpb258CiAgICAgICAg +# Y2FzZSBvcHRpb25bOnR5cGVdCiAgICAgICAgICB3aGVuICJzdHJpbmciCiAg +# ICAgICAgICAgIHByaW50ICJcbiAgLS0je29wdGlvbls6bmFtZV19PVt2YWx1 +# ZV0iCiAgICAgICAgICAgIHByaW50ICJcdFx0Li4uLi4uI3tvcHRpb25bOmRl +# c2NyaXB0aW9uXX0gIgogICAgICAgICAgICAKICAgICAgICAgICAgaWYgbm90 +# IG9wdGlvbls6ZGVmYXVsdF0ubmlsPwogICAgICAgICAgICAgIHByaW50ICJb +# ZGVmYXVsdD0je29wdGlvbls6ZGVmYXVsdF19XSIKICAgICAgICAgICAgZW5k +# CiAgICAgICAgICB3aGVuICJwYXRoIgogICAgICAgICAgICBwcmludCAiXG4g +# IC0tI3tvcHRpb25bOm5hbWVdfT1bL2EvcGF0aF0iCiAgICAgICAgICAgIHBy +# aW50ICJcdFx0Li4uLi4uI3tvcHRpb25bOmRlc2NyaXB0aW9uXX0gIgogICAg +# ICAgICAgICAKICAgICAgICAgICAgaWYgbm90IG9wdGlvbls6ZGVmYXVsdF0u +# bmlsPwogICAgICAgICAgICAgIHByaW50ICJbZGVmYXVsdD0je29wdGlvbls6 +# ZGVmYXVsdF19XSIKICAgICAgICAgICAgZW5kCiAgICAgICAgICB3aGVuICJi +# b29sIgogICAgICAgICAgICBwcmludCAiXG4gIC0tdXNlLSN7b3B0aW9uWzpu +# YW1lXX09W3llc3xub10iCiAgICAgICAgICAgIGlmIG5vdCBvcHRpb25bOmRl +# ZmF1bHRdLm5pbD8KICAgICAgICAgICAgICBkZWZhdWx0ID0gb3B0aW9uWzpk +# ZWZhdWx0XQogICAgICAgICAgICAgIGlmIGRlZmF1bHQgPT0gdHJ1ZSBvciBk +# ZWZhdWx0ID09ICJ5ZXMiIG9yIGRlZmF1bHQgPT0gInRydWUiCiAgICAgICAg +# ICAgICAgICBkZWZhdWx0ID0gInllcyIKICAgICAgICAgICAgICBlbHNpZiBk +# ZWZhdWx0ID09IGZhbHNlIG9yIGRlZmF1bHQgPT0gIm5vIiBvciBkZWZhdWx0 +# ID09ICJmYWxzZSIKICAgICAgICAgICAgICAgIGRlZmF1bHQgPSAibm8iCiAg +# ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZGVmYXVsdCA9ICJu +# byIKICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAKICAgICAgICAg +# ICAgICBwcmludCAiXHRcdC4uLi4uLiN7b3B0aW9uWzpkZXNjcmlwdGlvbl19 +# IFtkZWZhdWx0PSN7ZGVmYXVsdH1dIgogICAgICAgICAgICBlbmQKICAgICAg +# ICAgIGVsc2UKICAgICAgICAgICAgcHJpbnQgIlxuICAtLSN7b3B0aW9uWzpu +# YW1lXX0iCiAgICAgICAgICAgIHByaW50ICJcdFx0Li4uLi4uI3tvcHRpb25b +# OmRlc2NyaXB0aW9uXX0iCiAgICAgICAgZW5kCiAgICAgIH0KICAgICAgCiAg +# ICAgIHByaW50ICJcbiAgLS13aXRoLWNvbmZpZy1mcm9udGVuZD1bcGxhaW58 +# dGtdIgogICAgICBwcmludCAiXHRcdC4uLi4uLlNldHMgdGhlIGZyb250ZW5k +# IHRvIGNvbmZpZ3VyZSB0aGUgYXBwbGljYXRpb24gW2RlZmF1bHQ9dGtdIgog +# ICAgICBwcmludCAiXG4gIC0taGVscCIKICAgICAgcHJpbnQgIlxuICAtLXZl +# cnNpb24iCiAgICAgIHByaW50ICJcdFx0Li4uLi4uU2hvd3MgdGhpcyBtZXNz +# YWdlIgogICAgICAKICAgICAgcHV0cyAiIgogICAgZW5kCiAgZW5kCmVuZAoK +# YmVnaW4KICBsb2FkICJzZXR1cC5yYiIKcmVzY3VlIExvYWRFcnJvcgogIEZp +# bGUub3BlbihvbGRsb2NhdGlvbigic2V0dXAucmIiKSwgInciKSBkbyB8Zmls +# ZXwKICAgIGZpbGUgPDwgRmlsZS5yZWFkKCJzZXR1cF9yYi50cGwiKSA8PCAi +# XG4iCiAgZW5kCiAgcHV0cyAiPT4gQSB0ZW1wbGF0ZSBmaWxlIHdhcyBnZW5l +# cmF0ZWQgaW4gc2V0dXAucmIsIHBsZWFzZSBlZGl0IGl0IGFuZCByZXJ1biB0 +# aGUgY29uZmlndXJlIHNjcmlwdC4iCiAgZXhpdCgtMSkKZW5kCgppZiBfX0ZJ +# TEVfXyA9PSAkMAogIHFvbmYgPSBRb25mOjpDb25maWd1cmUubmV3CiAgcW9u +# Zi5nZXRfYXJncyhBUkdWKQogIHFvbmYuZmluZF9wYWNrYWdlcwogIHFvbmYu +# cnVuX3Rlc3RzCiAgCiAgcW9uZi5zYXZlKCJjb25maWcucHJpIikKICAKICBx +# b25mLmdlbmVyYXRlX21ha2VmaWxlcwplbmQKCgoKAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAABxb25maWd1cmUvZnJvbnRlbmRmYWN0b3J5LnJiAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAw -# MDAwMDA2NDMAMTA2NzM3NDAzMDMAMDE0NzQ2ACAwAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy -# ICAAa3Jhd2VrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApyZXF1aXJlICdwbGFpbl9mcm9u -# dGVuZCcKCm1vZHVsZSBRb25mCgpjbGFzcyBGcm9udGVuZEZhY3RvcnkKICBk -# ZWYgc2VsZi5jcmVhdGUobmFtZSA9ICJ0ayIpCiAgICBjYXNlIG5hbWUKICAg -# ICAgd2hlbiAicGxhaW4iCiAgICAgICAgUGxhaW5Gcm9udGVuZC5uZXcKICAg -# ICAgd2hlbiAidGsiCiAgICAgICAgaGF2ZV90ayA9IGZhbHNlCgogICAgICAg -# IGJlZ2luCiAgICAgICAgICBoYXZlX3RrID0gcmVxdWlyZSAndGsnCiAgICAg -# ICAgcmVzY3VlIExvYWRFcnJvcgogICAgICAgICAgcmV0dXJuIGNyZWF0ZSgi -# cGxhaW4iKQogICAgICAgIGVuZAogICAgICAgIAogICAgICAgIHJlcXVpcmUg -# J3RrX2Zyb250ZW5kJwogICAgICAgIFRrRnJvbnRlbmQubmV3CiAgICAgIGVs -# c2UKICAgICAgICBuaWwKICAgIGVuZAogIGVuZAplbmQKCmVuZAoKAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9u -# ZmlndXJlL2Zyb250ZW5kLnJifgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAxNzUxADAwMDAwMDAwMTIzADEw -# NjcyNTcxMjE2ADAxMzU1MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAKbW9kdWxlIFFvbmYKCmNsYXNzIEJhY2tlbmQKICBk -# ZWYgaW5pdGlhbGl6ZQogIGVuZAogIAogIGRlZiBwYXJzZQogIGVuZAplbmQK -# CmVuZAoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA @@ -1925,446 +2345,26 @@ end # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9zZXR1 -# cF9yYi50cGx+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw -# NjQ0ADAwMDE3NTEAMDAwMTc1MQAwMDAwMDAwNTcxMgAxMDY3MzAyNzc0NgAw -# MTM3NjcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAACgoKIyBzZXR1cCBpcyBhIG9iamVjdCB0aGF0IGhlbHBzIHRvIGNvbmZp -# Z3VyZSB0aGUgcHJvamVjdAojIEl0IGNvbnRhaW5zIHNvbWUgbWV0aG9kcyBs -# aWtlOgojICAgYWRkX29wdGlvbgojICAgZmluZF9wYWNrYWdlCiMgICBhZGRf -# dGVzdAojICAgZ2VuZXJhdGVfcGtnY29uZmlnCmRlZiBjb25maWd1cmUoc2V0 -# dXApCiMjIyMgCiMjIyMgYWRkX29wdGlvbiBhZGRzIGFuIG9wdGlvbiB0byB0 -# aGUgc2NyaXB0LCBpdCBoYXMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgojIyMj -# IDpuYW1lICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIG9wdGlvbi4KIyMjIyA6 -# dHlwZSAgICAgICAgIFRoZSB0eXBlIG9mIHRoZSBvcHRpb24gKCJwYXRoIiwg -# InN0cmluZyIsICJib29sIiBvciAidm9pZCIpLgojIyMjIDpvcHRpb25hbCAg -# ICAgU2F5cyBpZiB0aGUgb3B0aW9uIGlzIHJlcXVpcmVkIG9yIG5vdC4KIyMj -# IyA6ZGVzY3JpcHRpb24gIERlc2NyaXB0aW9uIG9mIHRoZSBvcHRpb24KIyMj -# IyA6ZGVmYXVsdCAgICAgIFRoZSBkZWZhdWx0IHZhbHVlCiMjIyMgCiMgICBz -# ZXR1cC5hZGRfb3B0aW9uKDpuYW1lID0+ICJvcHRpb24tbmFtZSIsIDp0eXBl -# ID0+ICJwYXRoIiwgOm9wdGlvbmFsID0+IGZhbHNlLCA6ZGVzY3JpcHRpb24g -# PT4gIlNldHMgYW4gb3B0aW9uIikKICAKIyMjIyAKIyMjIyBmaW5kX3BhY2th -# Z2Ugc2VhcmNoIGZvciBhIHBrZ2NvbmZpZyBzcGVjIGluIHlvdXIgY29tcHV0 -# ZXIsIGl0IHNlYXJjaCBpbiB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25t -# ZW50IHZhcmlhYmxlIG9yIExEX0xJQlJBUllfUEFUSAojIyMjIAojIyMjIEZp -# cnN0IG9wdGlvbiBpcyB0aGUgcGFja2FnZSBuYW1lIGFuZCBpZiBpdCBpcyBv -# cHRpb25hbCBvciBub3QKIyMjIyAKIyAgIHNldHVwLmZpbmRfcGFja2FnZSgi -# ZGJ1cy0xIiwgZmFsc2UpCgojIyMjIAojIyMjIGFkZF90ZXN0IGFkZHMgYW5k -# IHJ1biBhIHRlc3QgZm9yIHNvbWUgZmVhdHVyZSBvciBwYWNrYWdlLCB0aGUg -# b3B0aW9ucyBhcmU6CiMjIyMgICA6aWQgICAgICAgICAgIFRoZSBpZCBvZiB0 -# aGUgdGVzdAojIyMjICAgOm5hbWUgICAgICAgICBUaGUgdGVzdCBuYW1lCiMj -# IyMgICA6ZGVmaW5lcyAgICAgIERlZmluZXMgdG8gdGVzdAojIyMjICAgOmlu -# Y2x1ZGVwYXRoICBBIGxpc3Qgd2l0aCB0aGUgaW5jbHVkZSBwYXRoCiMjIyMg -# ICA6bGlicyAgICAgICAgIFRoZSBsaWJzIHJlcXVpcmVkIGZvciB0aGUgdGVz -# dAojIyMjICAgOm9wdGlvbmFsICAgICBUcnVlIGlmIHRoZSB0ZXN0IGlzIG9w -# dGlvbmFsCiMjIyMgICA6Y3VzdG9tICAgICAgIEEgY29kZSB0byB0ZXN0CiMj -# IyMgCiMgc2V0dXAuYWRkX3Rlc3QoOmlkID0+ICJmZWF0dXJlIiwgOm5hbWUg -# PT4gIkZlYXR1cmUgc3VwcG9ydCIsIDpkZWZpbmVzID0+IFsiSEFWRV9GRUFU -# VVJFIl0sIDpvcHRpb25hbCA9PiB0cnVlLCA6aGVhZGVycyA9PiBbImZlYXR1 -# cmUuaCJdLCA6bGlicyA9PiAiLWxmZWF0dXJlIiAgKQoKIyMjIyAKIyMjIyBn -# ZW5lcmF0ZV9wa2djb25maWcgR2VuZXJhdGVzIGEgc2ltcGxlIHBrZ2NvbmZp -# ZyBmaWxlCiMjIyMgVGhlIG9wdGlvbnMgYXJlOgojIyMjICAgOnBhY2thZ2Vf -# bmFtZSAgVGhlIHBhY2thZ2UgbmFtZSAKIyMjIyAgIDpuYW1lICAgICAgICAg -# IFRoZSBhcHBsaWNhdGlvbiBuYW1lCiMjIyMgICA6ZGVzY3JpcHRpb24gICBU -# aGUgYXBwbGljYXRpb24gZGVzY3JpcHRpb24KIyMjIyAgIDp2ZXJzaW9uICAg -# ICAgIFRoZSB2ZXJzaW9uIG9mIHRoZSBhcHBsaWNhdGlvbgojIyMjICAgOmxp -# YmRpciAgICAgICAgVGhlIGRpcmVjdG9yeSB3aGVyZSBsaWJyYXJpZXMgYXJl -# LCBieSBkZWZhdWx0IGlzICQocHJlZml4KS9saWIKIyMjIyAgIDppbmNsdWRl -# ZGlyICAgIFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGVhZGVycyBhcmUsIGJ5IGRl -# ZmF1bHQgaXMgJChwcmVmaXgpL2luY2x1ZGUKIyMjIyAgIDpsaWJzICAgICAg -# ICAgIExpYnJhcmllcyB0aGF0IGxpbmtzIHRoZSBwYWNrYWdlCiMjIyMgICA6 -# Y2ZsYWdzICAgICAgICBDZmxhZ3MgZm9yIHRoZSBwYWNrYWdlCiMjIyMgICA6 -# cmVxdWlyZXMgICAgICBBIGxpc3Qgb2YgcGFja2FnZSBuYW1lcyByZXF1aXJl -# ZCBmb3IgdGhpcyBwYWNrYWdlLgojIyMjIAojIHNldHVwLmdlbmVyYXRlX3Br -# Z2NvbmZpZyg6cGFja2FnZV9uYW1lID0+ICJkbGliLWVkaXRvciIsIDpuYW1l -# ID0+ICJETGliIFF0IGxpYnJhcnkiLCA6ZGVzY3JpcHRpb24gPT4gIkEgZXh0 -# ZW5zaW9uIGZvciBRdDQiLCA6dmVyc2lvbiA9PiAiMC4xYmV0YSIsIDpsaWJk -# aXIgPT4gbmlsLCA6aW5jbHVkZWRpciA9PiBuaWwsIDpsaWJzID0+ICItTCR7 -# bGliZGlyfSAtbGRjb3JlIC1sZGd1aSAtbGRlZGl0b3IiLCA6Y2ZsYWdzID0+ -# ICItSSR7aW5jbHVkZWRpcn0iLCA6cmVxdWlyZXMgPT4gWyJzb21lcGFja2Fn -# ZSIsICJvdGhlcnBhY2thZ2UiIF0gKQplbmQKCiMgVGhpcyBtZXRob2QgaXMg -# Y2FsbGVkIGJlZm9yZSB0byBzZWFyY2ggYSBwYWNrYWdlCmRlZiBzZXR1cF9w -# a2djb25maWcocGtnY29uZmlnLCBhcmdzKQojICAgY2FzZSBwa2djb25maWcu -# aWQKIyAgICAgd2hlbiAiZGJ1cy0xIgojICAgICAgIHBrZ2NvbmZpZy5hZGRf -# c2VhcmNoX3BhdGgoIi9hL3BhdGgvdG8vdGhlL3BjIikKIyAgIGVuZAplbmQK -# CmRlZiBzZXR1cF90ZXN0KGlkLCB0c3QsIGFyZ3MpCiMgICBjYXNlIGlkCiMg -# ICAgIHdoZW4gImZlYXR1cmUiCiMgICAgICAgdHN0LmFkZF9kZWZpbmUoIk1Z -# REVGSU5FIikKIyAgICAgICB0c3QuYWRkX2xpYigiLWxteWxpYiIpCiMgICAg -# ICAgdHN0LmFkZF9pbmNsdWRlX3BhdGgoIi9zb21lL2luY2x1ZGUvcGF0aC9y -# ZXF1aXJlZC90by9jb21waWxlL3RoZS90ZXN0IikKIyAgIGVuZAplbmQKCmRl -# ZiBzZXR1cF9jb25maWcoY2ZnLCBhcmdzKQojICAgY2ZnLmFkZF9pbmNsdWRl -# X3BhdGggRmlsZS5leHBhbmRfcGF0aCgic3JjIikKIyAgIGNmZy5hZGRfZGVm -# aW5lKCJfX1NURENfQ09OU1RBTlRfTUFDUk9TIikKIyAgIGNmZy5hZGRfcXRt -# b2R1bGUoInhtbCIpCiMgICBjZmcuYWRkX3F0bW9kdWxlKCJuZXR3b3JrIikK -# ZW5kCgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL21ha2VmaWxlLnJiAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MQAwMDAx -# NzUxADAwMDAwMDAyMjA2ADEwNzEyMTI2MDc2ADAxMzMxMAAgMAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCnJlcXVpcmUgJ3Ji -# Y29uZmlnJw0KDQptb2R1bGUgUW9uZg0KICBjbGFzcyBNYWtlZmlsZQ0KICAg -# IGRlZiBzZWxmLmZpbmRfbWFrZWZpbGVzKHBhdGgpDQogICAgICBtYWtlZmls -# ZXMgPSBbXQ0KICAgICAgRGlyLmZvcmVhY2gocGF0aCkgeyB8ZnwNCiAgICAg -# ICAgZmlsZSA9ICIje3BhdGh9LyN7Zn0iDQogICAgICAgIGlmIEZpbGUuc3Rh -# dChmaWxlKS5kaXJlY3Rvcnk/DQogICAgICAgICAgaWYgbm90IGYgPX4gL15c -# Li8NCiAgICAgICAgICAgIG1ha2VmaWxlcy5jb25jYXQgZmluZF9tYWtlZmls -# ZXMoZmlsZSkNCiAgICAgICAgICBlbmQNCiAgICAgICAgZWxzaWYgZi5kb3du -# Y2FzZSA9fiAvXm1ha2VmaWxlKC5kZWJ1Z3wucmVsZWFzZSl7MCwxfS8NCiAg -# ICAgICAgICBtYWtlZmlsZXMgPDwgZmlsZQ0KICAgICAgICBlbmQNCiAgICAg -# IH0NCiAgICAgIG1ha2VmaWxlcw0KICAgIGVuZA0KICAgIA0KICAgIGRlZiBz -# ZWxmLm92ZXJyaWRlKG1ha2VmaWxlLCBkZXN0ZGlyLCBzdGF0dXNGaWxlKQ0K -# ICAgICAgbmV3bWFrZWZpbGUgPSAiIg0KICAgICAgDQogICAgICBydWJ5X2Jp -# biA9ICIjezo6Q29uZmlnOjpDT05GSUdbImJpbmRpciJdfS8jezo6Q29uZmln -# OjpDT05GSUdbInJ1YnlfaW5zdGFsbF9uYW1lIl19Ig0KICAgICAgDQogICAg -# ICBpZiBGaWxlOjpBTFRfU0VQQVJBVE9SDQogICAgICAgIHJ1YnlfYmluLmdz -# dWIhKCIvIiwgRmlsZTo6QUxUX1NFUEFSQVRPUikNCiAgICAgICAgZGVzdGRp -# ci5nc3ViISgiLyIsIEZpbGU6OkFMVF9TRVBBUkFUT1IpDQogICAgICBlbmQN -# CiAgICAgIA0KICAgICAgRmlsZS5vcGVuKG1ha2VmaWxlLCAiciIpIHsgfGZ8 -# DQogICAgICAgIGxpbmVzID0gZi5yZWFkbGluZXMNCiAgICAgIAkNCiAgICAg -# ICAgbGluZXMuZWFjaCB7IHxsaW5lfA0KICAgICAgICAgIGlmIGxpbmUgPX4g -# L15JTlNUQUxMX0RJUi8NCiAgICAgICAgICAJbmV3bWFrZWZpbGUgKz0gIklO -# U1RBTExfUk9PVCA9ICN7ZGVzdGRpcn1cbiINCiAgICAgICAgICBlbmQNCiAg -# ICAgICAgICBuZXdtYWtlZmlsZSArPSBsaW5lDQogICAgICAgIH0NCiAgICAg -# IH0NCiAgICAgIA0KICAgICAgRmlsZS5vcGVuKG1ha2VmaWxlLCAidyIpIHsg -# fGZ8DQogICAgICAgIGYgPDwgbmV3bWFrZWZpbGUNCiAgICAgIH0NCiAgICBl -# bmQNCiAgZW5kDQplbmQNCg0KDQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxb25maWd1 -# cmUvaW5pdC5yYn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAMDAwMDY0NAAwMDAxNzUxADAwMDE3NTEAMDAwMDAwMDAzMzAAMTA2NzM1 -# MDIwNDMAMDEyNjY2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAa3Jhd2VrAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAApyZXF1aXJlICdxb25mJwoKRGlyLmNoZGlyKEZpbGUuZGly -# bmFtZShvbGRsb2NhdGlvbigicW9uZi5yYiIpKSkKCnFvbmYgPSBRb25mOjpD -# b25maWd1cmUubmV3CnFvbmYuZ2V0X2FyZ3MoQVJHVikKcW9uZi5maW5kX3Bh -# Y2thZ2VzCnFvbmYucnVuX3Rlc3RzCgpxb25mLnNhdmUoRmlsZS5leHBhbmRf -# cGF0aCgiY29uZmlnLnByaSIpKQoKcW9uZi5nZW5lcmF0ZV9tYWtlZmlsZXMK -# CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcW9uZmlndXJlL2luaXQucmIA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQA -# MDAwMTc1MQAwMDAxNzUxADAwMDAwMDAwMzA2ADEwNjczNzQwMzAzADAxMjQ3 -# NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAB1c3RhciAgAGtyYXdlawAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK -# cmVxdWlyZSAncW9uZicKCkRpci5jaGRpcihGaWxlLmRpcm5hbWUob2xkbG9j -# YXRpb24oInFvbmYucmIiKSkpCgpxb25mID0gUW9uZjo6Q29uZmlndXJlLm5l -# dwpxb25mLmdldF9hcmdzKEFSR1YpCnFvbmYuZmluZF9wYWNrYWdlcwpxb25m -# LnJ1bl90ZXN0cwoKcW9uZi5zYXZlKCJjb25maWcucHJpIikKCnFvbmYuZ2Vu -# ZXJhdGVfbWFrZWZpbGVzCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAHFvbmZpZ3VyZS9xb25mLnJifgAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTEAMDAw -# MTc1MQAwMDAwMDAyNjQ2NAAxMDcwMjMxMzIyMwAwMTI2NzcAIDAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAdXN0YXIgIABrcmF3ZWsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnJlcXVpcmUgJ3Rl -# c3QnCnJlcXVpcmUgJ3BrZ2NvbmZpZycKcmVxdWlyZSAnZnJvbnRlbmRmYWN0 -# b3J5JwpyZXF1aXJlICdjb25maWcnCnJlcXVpcmUgJ3FtYWtlJwpyZXF1aXJl -# ICdtYWtlZmlsZScKCm1vZHVsZSBRb25mCiAgY2xhc3MgUXRWZXJzaW9uCiAg -# ICBhdHRyX3JlYWRlciA6dmVyc2lvbiwgOm9wICMgMDogZXF1YWwgMTogZ3Jl -# YXRlciAyOiBncmVhdGVyIGVxdWFsCiAgICAKICAgIGRlZiBpbml0aWFsaXpl -# KHZlcnNpb24pCiAgICAgIEBvcCA9IDIKICAgICAgcGFyc2UodmVyc2lvbikK -# ICAgIGVuZAogICAgCiAgICBkZWYgPT0odmVyKQogICAgICBAb3AgPSAwCiAg -# ICAgIHBhcnNlKHZlcikKICAgIGVuZAogICAgCiAgICBkZWYgPih2ZXIpCiAg -# ICAgIEBvcCA9IDEKICAgICAgcGFyc2UodmVyKQogICAgZW5kCiAgICAKICAg -# IGRlZiA+PSh2ZXIpCiAgICAgIEBvcCA9IDIKICAgICAgcGFyc2UodmVyKQog -# ICAgZW5kCiAgICAKICAgIGRlZiB0b19zCiAgICAgIHMgPSAiUXQgIgogICAg -# ICBjYXNlIEBvcAogICAgICAgIHdoZW4gMAogICAgICAgICAgcys9Ij09Igog -# ICAgICAgIHdoZW4gMQogICAgICAgICAgcys9Ij4iCiAgICAgICAgZWxzZQog -# ICAgICAgICAgcys9Ij49IgogICAgICBlbmQKICAgICAgcys9ICIgIitAdmVy -# c2lvbgogICAgICAKICAgICAgcwogICAgZW5kCiAgICAKICAgIHByaXZhdGUK -# ICAgIGRlZiBwYXJzZSh2ZXJzaW9uKQogICAgICBAdmVyc2lvbiA9IHZlcnNp -# b24udG9fcwogICAgICB2ZXIgPSBAdmVyc2lvbi50b19zLnNwbGl0KCcuJykK -# ICAgICAgc2l6ZSA9IHZlci5zaXplCiAgICAgICAgCiAgICAgIGZpbmFsdmVy -# ID0gW10KICAgICAgMy50aW1lcyB7IHxpfAogICAgICAgIHRwID0gdmVyW2ld -# CiAgICAgICAgCiAgICAgICAgaWYgdHAubmlsPwogICAgICAgICAgdHAgPSAi -# MCIKICAgICAgICBlbmQKICAgICAgICAKICAgICAgICBmaW5hbHZlciA8PCB0 -# cAogICAgICB9CiAgICAgIAogICAgICBAdmVyc2lvbiA9IGZpbmFsdmVyLmpv -# aW4oIi4iKQogICAgZW5kCiAgZW5kCiAgCiAgY2xhc3MgU2V0dXAKICAgIGF0 -# dHJfcmVhZGVyIDpvcHRpb25zLCA6cGFja2FnZXMsIDp0ZXN0cywgOnBrZ19j -# b25maWdzCiAgICBkZWYgaW5pdGlhbGl6ZQogICAgICBAb3B0aW9ucyA9IFtd -# CiAgICAgIEBwYWNrYWdlcyA9IFtdCiAgICAgIEB0ZXN0cyA9IFtdCiAgICAg -# IEBwa2dfY29uZmlncyA9IFtdCiAgICAgIEBxdF92ZXJzaW9uID0gUXRWZXJz -# aW9uLm5ldygiNC4wLjAiKQogICAgICAKICAgICAgYWRkX29wdGlvbig6bmFt -# ZSA9PiAicHJlZml4IiwgOnR5cGUgPT4gInBhdGgiLCA6ZGVmYXVsdCA9PiAi -# L3Vzci9sb2NhbC8iLCA6b3B0aW9uYWwgPT4gdHJ1ZSwgOmRlc2NyaXB0aW9u -# ID0+ICJTZXRzIHRoZSBpbnN0YWxsIHByZWZpeCIpCiAgICBlbmQKICAgIAog -# ICAgZGVmIGFkZF9vcHRpb24ob3B0aW9uKQogICAgICBpZiBub3Qgb3B0aW9u -# Wzp0eXBlXS5uaWw/CiAgICAgICAgb3B0aW9uWzp0eXBlXS5kb3duY2FzZSEK -# ICAgICAgZW5kCiAgICAgIAogICAgICBAb3B0aW9ucyA8PCBvcHRpb24KICAg -# IGVuZAogICAgCiAgICBkZWYgZmluZF9wYWNrYWdlKG9wdGlvbnMpCiAgICAg -# IEBwYWNrYWdlcyA8PCBvcHRpb25zCiAgICBlbmQKICAgIAogICAgZGVmIGFk -# ZF90ZXN0KG9wdGlvbikKICAgICAgcmFpc2UgIlBsZWFzZSBzZXQgYSB2YWxp -# ZCBuYW1lIHRvIHRoZSB0ZXN0IiBpZiBvcHRpb25bOm5hbWVdLnRvX3MuZW1w -# dHk/CiAgICAgIHJhaXNlICJQbGVhc2Ugc2V0IGEgdmFsaWQgaWQgdG8gdGhl -# IHRlc3QiIGlmIG9wdGlvbls6aWRdLnRvX3MuZW1wdHk/CiAgICAgIAogICAg -# ICBAdGVzdHMgPDwgb3B0aW9uCiAgICBlbmQKICAgIAogICAgZGVmIGdlbmVy -# YXRlX3BrZ2NvbmZpZyhvcHRpb25zKQogICAgICByYWlzZSAiUGxlYXNlIHNl -# dCBhIHZhbGlkIG5hbWUiIGlmIG9wdGlvbnNbOnBhY2thZ2VfbmFtZV0udG9f -# cy5lbXB0eT8KICAgICAgQHBrZ19jb25maWdzIDw8IG9wdGlvbnMKICAgIGVu -# ZAogICAgCiAgICBkZWYgcXQKICAgICAgQHF0X3ZlcnNpb24KICAgIGVuZAog -# ICAgCiAgZW5kCiAgCiAgY2xhc3MgQ29uZmlndXJlCiAgICBkZWYgaW5pdGlh -# bGl6ZQogICAgICBAYXJndW1lbnRzID0ge30KICAgICAgQGNvbmZpZyA9IENv -# bmZpZy5uZXcKICAgICAgCiAgICAgIEBsb2dfZmlsZSA9IG9sZGxvY2F0aW9u -# KCJjb25maWcubG9nIikKICAgICAgCiAgICAgIEZpbGUub3BlbihAbG9nX2Zp -# bGUsICJ3IikgZG8gfGZ8CiAgICAgICAgZiA8PCAiPT09PT09PT4gR2VuZXJh -# dGVkIGF0ICN7VGltZS5ub3d9IDw9PT09PT09XG4iCiAgICAgIGVuZAogICAg -# ICAKICAgICAgQHFtYWtlID0gUU1ha2UubmV3KEBsb2dfZmlsZSkKICAgICAg -# CiAgICAgIGNmZyA9IFNldHVwLm5ldwogICAgICBjb25maWd1cmUoY2ZnKQog -# ICAgICAKICAgICAgcHJpbnQgIj0+IFNlYXJjaGluZyBmb3IgI3tjZmcucXR9 -# Li4uICIKICAgICAgaWYgQHFtYWtlLmZpbmRfcW1ha2UoY2ZnLnF0LnZlcnNp -# b24sIGNmZy5xdC5vcCkKICAgICAgICBwdXRzICJbWUVTXSIKICAgICAgZWxz -# ZQogICAgICAgIHB1dHMgIltOT10iCiAgICAgICAgZXhpdCAtMQogICAgICBl -# bmQKICAgICAgCiAgICAgIEBvcHRpb25zID0gY2ZnLm9wdGlvbnMKICAgICAg -# QHBhY2thZ2VzID0gY2ZnLnBhY2thZ2VzCiAgICAgIEB0ZXN0cyA9IGNmZy50 -# ZXN0cwogICAgICBAcGtnX2NvbmZpZ3MgPSBjZmcucGtnX2NvbmZpZ3MKICAg -# ICAgQHN0YXR1c0ZpbGUgPSBEaXIuZ2V0d2QrIi91cGRhdGUtbWFrZWZpbGUi -# CiAgICBlbmQKICAgIAogICAgZGVmIGZpbmRfcGFja2FnZXMgIyBUT0RPOiBz -# b3BvcnRhciBpbmZvcm1hY2lvbiBwYXJhIGVsIHNpc3RlbWEgb3BlcmF0aXZv -# IHNvYnJlIGNvbW8gaW5zdGFsYXIgZWwgcGFxdWV0ZQogICAgICBAcGFja2Fn -# ZXMuZWFjaCB7IHxwYWNrYWdlfAogICAgICAgIHByaW50ICI9PiBTZWFyY2hp -# bmcgZm9yIHBhY2thZ2U6ICN7cGFja2FnZVs6bmFtZV19Li4uICAiCiAgICAg -# ICAgcGtnY29uZmlnID0gUGtnQ29uZmlnLm5ldyhwYWNrYWdlWzpuYW1lXSkK -# ICAgICAgICBiZWdpbgogICAgICAgICAgc2V0dXBfcGtnY29uZmlnKHBrZ2Nv -# bmZpZywgQGFyZ3VtZW50cykKICAgICAgICByZXNjdWUgTm9NZXRob2RFcnJv -# ciA9PiBlCiAgICAgICAgICBpZiBub3QgZS5tZXNzYWdlID1+IC9zZXR1cF9w -# a2djb25maWcvCiAgICAgICAgICAgIHB1dHMgIkVycm9yOiAje2UubWVzc2Fn -# ZX0iCiAgICAgICAgICAgIHB1dHMgZS5iYWNrdHJhY2UKICAgICAgICAgICAg -# ZXhpdCAtMQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgICAgCiAg -# ICAgICAgaWYgbm90IHBrZ2NvbmZpZy5maW5kKHBhY2thZ2VbOm5hbWVdKQog -# ICAgICAgICAgcHV0cyAiW05PXSIKICAgICAgICAgIAogICAgICAgICAgb3B0 -# aW9uYWwgPSBwYWNrYWdlWzpvcHRpb25hbF0ubmlsPyA/IGZhbHNlIDogcGFj -# a2FnZVs6b3B0aW9uYWxdCiAgICAgICAgICAKICAgICAgICAgIGlmIG5vdCBv -# cHRpb25hbAogICAgICAgICAgICBwdXRzICI9PiBUaGUgcGFja2FnZSAnI3tw -# YWNrYWdlWzpuYW1lXX0nIGlzIHJlcXVpcmVkLiIKICAgICAgICAgICAgZXhp -# dCAtMQogICAgICAgICAgZW5kCiAgICAgICAgZWxzZQogICAgICAgICAgcHV0 -# cyAiW1lFU10iCiAgICAgICAgICBnbG9iYWwgPSBwYWNrYWdlWzpnbG9iYWxd -# Lm5pbD8gPyBmYWxzZSA6IHBhY2thZ2VbOmdsb2JhbF0KICAgICAgICAgIAog -# ICAgICAgICAgcW9uZnBrZyA9IEBjb25maWcKICAgICAgICAgIAogICAgICAg -# ICAgaWYgbm90IGdsb2JhbAogICAgICAgICAgICBxb25mcGtnID0gUGFja2Fn -# ZS5uZXcocGFja2FnZVs6bmFtZV0pCiAgICAgICAgICBlbmQKICAgICAgICAg -# IAogICAgICAgICAgCiMgICAgICAgICAgIHBrZ2NvbmZpZy5yZXF1aXJlcy5l -# YWNoIHsgfHJlcXwKIyAgICAgICAgICAgICBAY29uZmlnLmFkZF9xb25mX3Bh -# Y2thZ2UocmVxKQojICAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAg -# IHFvbmZwa2cuYWRkX2xpYihwa2djb25maWcubGlicykKICAgICAgICAgIAog -# ICAgICAgICAgcGtnY29uZmlnLmluY2x1ZGVfcGF0aC5lYWNoIHsgfGluY3Bh -# dGh8CiAgICAgICAgICAgIHFvbmZwa2cuYWRkX2luY2x1ZGVfcGF0aChpbmNw -# YXRoKQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICBwa2djb25m -# aWcuZGVmaW5lcy5lYWNoIHsgfGRlZmluZXwKICAgICAgICAgICAgcW9uZnBr -# Zy5hZGRfZGVmaW5lKGRlZmluZSkKICAgICAgICAgIH0KICAgICAgICAgIAog -# ICAgICAgICAgaWYgbm90IGdsb2JhbAogICAgICAgICAgICBAY29uZmlnLmFk -# ZF9xb25mX3BhY2thZ2UocW9uZnBrZykKICAgICAgICAgIGVsc2UKICAgICAg -# ICAgICAgQGNvbmZpZy5hZGRfcW9uZl9mZWF0dXJlKHBhY2thZ2VbOm5hbWVd -# KQogICAgICAgICAgZW5kCiAgICAgICAgZW5kCiAgICAgIH0KICAgIGVuZAog -# ICAgCiAgICBkZWYgcnVuX3Rlc3RzCiAgICAgIEB0ZXN0cy5lYWNoIHsgfHRl -# c3RvcHR8CiAgICAgICAgcHJpbnQgIj0+IFRlc3RpbmcgI3t0ZXN0b3B0Wzpu -# YW1lXX0uLi4gICIKICAgICAgICAKICAgICAgICB0c3QgPSBUZXN0Lm5ldyh0 -# ZXN0b3B0LCBAY29uZmlnLCBAbG9nX2ZpbGUpCiAgICAgICAgCiAgICAgICAg -# YmVnaW4KICAgICAgICAgIHNldHVwX3Rlc3QodGVzdG9wdFs6aWRdLCB0c3Qs -# IEBhcmd1bWVudHMpCiAgICAgICAgcmVzY3VlIE5vTWV0aG9kRXJyb3IgPT4g -# ZQogICAgICAgICAgaWYgbm90IGUubWVzc2FnZSA9fiAvc2V0dXBfdGVzdC8K -# ICAgICAgICAgICAgcHV0cyAiRXJyb3I6ICN7ZX0iCiAgICAgICAgICAgIHB1 -# dHMgZS5iYWNrdHJhY2UKICAgICAgICAgICAgZXhpdCAtMQogICAgICAgICAg -# ZW5kCiAgICAgICAgZW5kCiAgICAgICAgCiAgICAgICAgb3B0aW9uYWwgPSB0 -# ZXN0b3B0WzpvcHRpb25hbF0ubmlsPyA/IGZhbHNlIDogdGVzdG9wdFs6b3B0 -# aW9uYWxdCiAgICAgICAgaWYgdHN0LnJ1bihAcW1ha2UpCiAgICAgICAgICBn -# bG9iYWwgPSB0ZXN0b3B0WzpnbG9iYWxdLm5pbD8gPyBmYWxzZSA6IHRlc3Rv -# cHRbOmdsb2JhbF0KICAgICAgICAgIAogICAgICAgICAgcW9uZnBrZyA9IEBj -# b25maWcKICAgICAgICAgIAogICAgICAgICAgaWYgbm90IGdsb2JhbAogICAg -# ICAgICAgICBxb25mcGtnID0gUGFja2FnZS5uZXcodHN0LmlkKQogICAgICAg -# ICAgZW5kCiAgICAgICAgICAKICAgICAgICAgIHRzdC5pbmNsdWRlX3BhdGgu -# ZWFjaCB7IHxpbmNwYXRofAogICAgICAgICAgICBxb25mcGtnLmFkZF9pbmNs -# dWRlX3BhdGgoaW5jcGF0aCkKICAgICAgICAgIH0KICAgICAgICAgIAogICAg -# ICAgICAgdHN0LmRlZmluZXMuZWFjaCB7IHxkZWZpbmV8CiAgICAgICAgICAg -# IHFvbmZwa2cuYWRkX2RlZmluZShkZWZpbmUpCiAgICAgICAgICB9CiAgICAg -# ICAgICAKICAgICAgICAgIHFvbmZwa2cuYWRkX2xpYih0c3QubGlicy50b19z -# KQogICAgICAgICAgCiAgICAgICAgICBpZiBub3QgZ2xvYmFsCiAgICAgICAg -# ICAgIEBjb25maWcuYWRkX3FvbmZfcGFja2FnZShxb25mcGtnKQogICAgICAg -# ICAgZWxzZQogICAgICAgICAgICBAY29uZmlnLmFkZF9xb25mX2ZlYXR1cmUo -# dHN0LmlkKQogICAgICAgICAgZW5kCiAgICAgICAgICBwdXRzICJbT0tdIgog -# ICAgICAgIGVsc2UKICAgICAgICAgIHB1dHMgIltGQUlMRURdIgogICAgICAg -# ICAgCiAgICAgICAgICBpZiBub3Qgb3B0aW9uYWwKICAgICAgICAgICAgcHV0 -# cyAiPT4gI3t0ZXN0b3B0WzpuYW1lXX0gaXMgcmVxdWlyZWQiCiAgICAgICAg -# ICAgIGV4aXQgLTEKICAgICAgICAgIGVuZAogICAgICAgIGVuZAogICAgICB9 -# CiAgICBlbmQKICAgIAogICAgZGVmIGdlbmVyYXRlX21ha2VmaWxlcwogICAg -# ICBwdXRzICI9PiBDcmVhdGluZyBtYWtlZmlsZXMuLi4iCiAgICAgIEBxbWFr -# ZS5ydW4oIiIsIHRydWUpCiAgICAgIAogICAgICBwdXRzICI9PiBVcGRhdGlu -# ZyBtYWtlZmlsZXMuLi4iCiAgICAgIAogICAgICBAbWFrZWZpbGVzID0gTWFr -# ZWZpbGU6OmZpbmRfbWFrZWZpbGVzKERpci5nZXR3ZCkKICAgICAgQG1ha2Vm -# aWxlcy5lYWNoIHsgfG1ha2VmaWxlfAogICAgICAgICAgTWFrZWZpbGU6Om92 -# ZXJyaWRlKG1ha2VmaWxlLCBGaWxlLmV4cGFuZF9wYXRoKEBhcmd1bWVudHNb -# InByZWZpeCJdLnRvX3MpLCBAc3RhdHVzRmlsZSkKICAgICAgfQogICAgICAK -# ICAgICAgRmlsZS5vcGVuKEBzdGF0dXNGaWxlLCAidyIgKSB7IHxmaWxlfAog -# ICAgICAgIGZpbGUgPDwgJUAKI3tGaWxlLnJlYWQobmV3bG9jYXRpb24oIm1h -# a2VmaWxlLnJiIikpfQpRb25mOjpNYWtlZmlsZTo6b3ZlcnJpZGUoIEFSR1Zb -# MF0udG9fcywgIiN7QGFyZ3VtZW50c1sicHJlZml4Il19IiwgIiN7QHN0YXR1 -# c0ZpbGV9IiApCkAKICAgICAgfQogICAgZW5kCiAgICAKICAgIGRlZiBnZXRf -# YXJncyhhcmd2KQogICAgICBvcHRjID0gMAogICAgICBsYXN0X29wdCA9ICIi -# CiAgICAgIAogICAgICBAb3B0aW9ucy5lYWNoIHsgfG9wdGlvbnwKICAgICAg -# ICBnaXZlbl9vcHRpb24gPSBuaWwKICAgICAgICAKICAgICAgICBhcmd2LmVh -# Y2ggeyB8YXJnfAogICAgICAgICAgYXJnLnN0cmlwIQogICAgICAgICAgZ2l2 -# ZW4gPSBmYWxzZQogICAgICAgICAgCiAgICAgICAgICBjYXNlIG9wdGlvbls6 -# dHlwZV0udG9fcwogICAgICAgICAgICB3aGVuICJzdHJpbmciCiAgICAgICAg -# ICAgICAgaWYgYXJnID1+IC8tLSN7b3B0aW9uWzpuYW1lXX09KFtcV1x3XSop -# LwogICAgICAgICAgICAgICAgZ2l2ZW4gPSB0cnVlCiAgICAgICAgICAgICAg -# ICBnaXZlbl9vcHRpb24gPSAkMQogICAgICAgICAgICAgIGVuZAogICAgICAg -# ICAgICB3aGVuICJwYXRoIgogICAgICAgICAgICAgIGlmIGFyZyA9fiAvLS0j -# e29wdGlvbls6bmFtZV19PShbXFdcd10qKS8KICAgICAgICAgICAgICAgIGdp -# dmVuID0gdHJ1ZQogICAgICAgICAgICAgICAgZ2l2ZW5fb3B0aW9uID0gRmls -# ZS5leHBhbmRfcGF0aCgkMSkKICAgICAgICAgICAgICBlbmQKICAgICAgICAg -# ICAgd2hlbiAiYm9vbCIKICAgICAgICAgICAgICBpZiBhcmcgPX4gLy0tdXNl -# LSN7b3B0aW9uWzpuYW1lXX09KFx3KykvCiAgICAgICAgICAgICAgICBnaXZl -# biA9IHRydWUKICAgICAgICAgICAgICAgIGdpdmVuX29wdGlvbiA9ICQxCiAg -# ICAgICAgICAgICAgZW5kCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg -# ICBpZiBhcmcgPX4gLy0tI3tvcHRpb25bOm5hbWVdfS8KICAgICAgICAgICAg -# ICAgIGdpdmVuX29wdGlvbiA9ICJ5ZXMiCiAgICAgICAgICAgICAgICBnaXZl -# biA9IHRydWUKICAgICAgICAgICAgICBlbmQKICAgICAgICAgIGVuZAogICAg -# ICAgICAgCiAgICAgICAgICBpZiBnaXZlbgogICAgICAgICAgICBhcmd2LmRl -# bGV0ZShhcmcpCiAgICAgICAgICBlbmQKICAgICAgICB9CiAgICAgICAgCiAg -# ICAgICAgb3B0aW9uWzp2YWx1ZV0gPSBnaXZlbl9vcHRpb24KICAgICAgfQog -# ICAgICAKICAgICAgZnJvbnRlbmRfa2V5ID0gInRrIgogICAgICBhcmd2LmVh -# Y2ggeyB8dW5rbm93bnwKICAgICAgICB1bmtub3duLnN0cmlwIQogICAgICAg -# IGlmIHVua25vd24gPX4gLy0td2l0aC1jb25maWctZnJvbnRlbmQ9KFx3Kykv -# CiAgICAgICAgICBmcm9udGVuZF9rZXkgPSAkMQogICAgICAgIGVsc2lmIHVu -# a25vd24gPX4gLy0taGVscC8KICAgICAgICAgIHVzYWdlCiAgICAgICAgICBl -# eGl0IDAKICAgICAgICBlbmQKICAgICAgfQogICAgICAKICAgICAgZnJvbnRl -# bmQgPSBGcm9udGVuZEZhY3RvcnkuY3JlYXRlKGZyb250ZW5kX2tleSkKICAg -# ICAgaWYgZnJvbnRlbmQubmlsPwogICAgICAgIHB1dHMgIj0+IEludmFsaWQg -# ZnJvbnRlbmQiCiAgICAgICAgdXNhZ2UoKQogICAgICAgIGV4aXQgLTEKICAg -# ICAgZWxzaWYgbm90IGZyb250ZW5kLnBhcnNlKEBvcHRpb25zKQogICAgICAg -# IHVzYWdlKCkKICAgICAgICBleGl0IC0xCiAgICAgIGVuZAogICAgICAKICAg -# ICAgQG9wdGlvbnMuZWFjaCB7IHxvcHRpb258CiAgICAgICAgdmFsdWUgPSBv -# cHRpb25bOnZhbHVlXS5uaWw/ID8gb3B0aW9uWzpkZWZhdWx0XS50b19zIDog -# b3B0aW9uWzp2YWx1ZV0KICAgICAgICBAYXJndW1lbnRzW29wdGlvbls6bmFt -# ZV1dID0gdmFsdWUKICAgICAgfQogICAgICAKICAgIGVuZAogICAgCiAgICBk -# ZWYgc2F2ZShwYXRoKQogICAgICBiZWdpbgogICAgICAgIHNldHVwX2NvbmZp -# ZyhAY29uZmlnLCBAYXJndW1lbnRzKQogICAgICByZXNjdWUgTm9NZXRob2RF -# cnJvciA9PiBlCiAgICAgICAgaWYgbm90IGUubWVzc2FnZSA9fiAvc2V0dXBf -# Y29uZmlnLwogICAgICAgICAgcHV0cyAiRXJyb3I6ICN7ZX0iCiAgICAgICAg -# ICBwdXRzIGUuYmFja3RyYWNlCiAgICAgICAgICBleGl0IC0xCiAgICAgICAg -# ZW5kCiAgICAgIGVuZAogICAgICAKICAgICAgQGNvbmZpZy5hZGRfZGVmaW5l -# KCVAX19QUkVGSVhfXz0nXFxcXCInI3tGaWxlLmV4cGFuZF9wYXRoIEBhcmd1 -# bWVudHNbInByZWZpeCJdfSdcXFxcIidAKQogICAgICAKICAgICAgc2F2ZV9w -# a2djb25maWcKICAgICAgQGNvbmZpZy5zYXZlKHBhdGgpCiAgICBlbmQKICAg -# IAogICAgZGVmIHNhdmVfcGtnY29uZmlnCiAgICAgIGlmIG5vdCBAcGtnX2Nv -# bmZpZ3MuZW1wdHk/CiAgICAgICAgQHBrZ19jb25maWdzLmVhY2ggeyB8cGtn -# X2NvbmZpZ3wKICAgICAgICAgIEZpbGUub3BlbiggcGtnX2NvbmZpZ1s6cGFj -# a2FnZV9uYW1lXSsiLnBjIiwgInciKSBkbyB8ZmlsZXwKICAgICAgICAgICAg -# ZmlsZSA8PCAicHJlZml4PSIgPDwgQGFyZ3VtZW50c1sicHJlZml4Il0gPDwg -# IlxuIgogICAgICAgICAgICBmaWxlIDw8ICJleGVjX3ByZWZpeD0ke3ByZWZp -# eH0iIDw8ICJcbiIKICAgICAgICAgICAgZmlsZSA8PCAibGliZGlyPSN7cGtn -# X2NvbmZpZ1s6bGliZGlyXS5uaWw/ID8gIiR7cHJlZml4fS9saWIiIDogcGtn -# X2NvbmZpZ1s6bGliZGlyXSB9IiA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUg -# PDwgImluY2x1ZGVkaXI9I3twa2dfY29uZmlnWzppbmNsdWRlZGlyXS5uaWw/ -# ID8gIiR7cHJlZml4fS9pbmNsdWRlIiA6IHBrZ19jb25maWdbOmluY2x1ZGVk -# aXJdIH0iIDw8ICJcblxuXG4iCiAgICAgICAgICAgIAogICAgICAgICAgICBm -# aWxlIDw8ICJOYW1lOiAiIDw8IHBrZ19jb25maWdbOnBhY2thZ2VfbmFtZV0g -# PDwgIlxuIgogICAgICAgICAgICBmaWxlIDw8ICJEZXNjcmlwdGlvbjogIiA8 -# PCBwa2dfY29uZmlnWzpkZXNjcmlwdGlvbl0gPDwgIlxuIgogICAgICAgICAg -# ICBmaWxlIDw8ICJSZXF1aXJlczogIiA8PCBwa2dfY29uZmlnWzpyZXF1aXJl -# c10uam9pbigiICIpIDw8ICJcbiIgaWYgcGtnX2NvbmZpZ1s6cmVxdWlyZXNd -# LmNsYXNzID09IEFycmF5CiAgICAgICAgICAgIGZpbGUgPDwgIlZlcnNpb246 -# ICIgPDwgcGtnX2NvbmZpZ1s6dmVyc2lvbl0gPDwgIlxuIgogICAgICAgICAg -# ICAKICAgICAgICAgICAgZmlsZSA8PCAiTGliczogIiA8PCBwa2dfY29uZmln -# WzpsaWJzXSA8PCAiXG4iCiAgICAgICAgICAgIGZpbGUgPDwgIkNmbGFnczog -# IiA8PCBwa2dfY29uZmlnWzpjZmxhZ3NdIDw8ICJcbiIKICAgICAgICAgIGVu -# ZAogICAgICAgIH0KICAgICAgZW5kCiAgICBlbmQKICAgIAogICAgCiAgICBk -# ZWYgbG9nKHR4dCkKICAgICAgRmlsZS5vcGVuKEBsb2dfZmlsZSwgImEiKSBk -# byB8ZnwKICAgICAgICBmIDw8IHR4dCA8PCAiXG4iCiAgICAgIGVuZAogICAg -# ZW5kCiAgICAKICAgIGRlZiB1c2FnZQogICAgICBwdXRzICJPcHRpb25zOiIK -# ICAgICAgQG9wdGlvbnMuZWFjaCB7IHxvcHRpb258CiAgICAgICAgY2FzZSBv -# cHRpb25bOnR5cGVdCiAgICAgICAgICB3aGVuICJzdHJpbmciCiAgICAgICAg -# ICAgIHByaW50ICJcbiAgLS0je29wdGlvbls6bmFtZV19PVt2YWx1ZV0iCiAg -# ICAgICAgICAgIHByaW50ICJcdFx0Li4uLi4uI3tvcHRpb25bOmRlc2NyaXB0 -# aW9uXX0gIgogICAgICAgICAgICAKICAgICAgICAgICAgaWYgbm90IG9wdGlv -# bls6ZGVmYXVsdF0ubmlsPwogICAgICAgICAgICAgIHByaW50ICJbZGVmYXVs -# dD0je29wdGlvbls6ZGVmYXVsdF19XSIKICAgICAgICAgICAgZW5kCiAgICAg -# ICAgICB3aGVuICJwYXRoIgogICAgICAgICAgICBwcmludCAiXG4gIC0tI3tv -# cHRpb25bOm5hbWVdfT1bL2EvcGF0aF0iCiAgICAgICAgICAgIHByaW50ICJc -# dFx0Li4uLi4uI3tvcHRpb25bOmRlc2NyaXB0aW9uXX0gIgogICAgICAgICAg -# ICAKICAgICAgICAgICAgaWYgbm90IG9wdGlvbls6ZGVmYXVsdF0ubmlsPwog -# ICAgICAgICAgICAgIHByaW50ICJbZGVmYXVsdD0je29wdGlvbls6ZGVmYXVs -# dF19XSIKICAgICAgICAgICAgZW5kCiAgICAgICAgICB3aGVuICJib29sIgog -# ICAgICAgICAgICBwcmludCAiXG4gIC0tdXNlLSN7b3B0aW9uWzpuYW1lXX09 -# W3llc3xub10iCiAgICAgICAgICAgIGlmIG5vdCBvcHRpb25bOmRlZmF1bHRd -# Lm5pbD8KICAgICAgICAgICAgICBkZWZhdWx0ID0gb3B0aW9uWzpkZWZhdWx0 -# XQogICAgICAgICAgICAgIGlmIGRlZmF1bHQgPT0gdHJ1ZSBvciBkZWZhdWx0 -# ID09ICJ5ZXMiIG9yIGRlZmF1bHQgPT0gInRydWUiCiAgICAgICAgICAgICAg -# ICBkZWZhdWx0ID0gInllcyIKICAgICAgICAgICAgICBlbHNpZiBkZWZhdWx0 -# ID09IGZhbHNlIG9yIGRlZmF1bHQgPT0gIm5vIiBvciBkZWZhdWx0ID09ICJm -# YWxzZSIKICAgICAgICAgICAgICAgIGRlZmF1bHQgPSAibm8iCiAgICAgICAg -# ICAgICAgZWxzZQogICAgICAgICAgICAgICAgZGVmYXVsdCA9ICJubyIKICAg -# ICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAKICAgICAgICAgICAgICBw -# cmludCAiXHRcdC4uLi4uLiN7b3B0aW9uWzpkZXNjcmlwdGlvbl19IFtkZWZh -# dWx0PSN7ZGVmYXVsdH1dIgogICAgICAgICAgICBlbmQKICAgICAgICAgIGVs -# c2UKICAgICAgICAgICAgcHJpbnQgIlxuICAtLSN7b3B0aW9uWzpuYW1lXX0i -# CiAgICAgICAgICAgIHByaW50ICJcdFx0Li4uLi4uI3tvcHRpb25bOmRlc2Ny -# aXB0aW9uXX0iCiAgICAgICAgZW5kCiAgICAgIH0KICAgICAgCiAgICAgIHBy -# aW50ICJcbiAgLS13aXRoLWNvbmZpZy1mcm9udGVuZD1bcGxhaW58dGtdIgog -# ICAgICBwcmludCAiXHRcdC4uLi4uLlNldHMgdGhlIGZyb250ZW5kIHRvIGNv -# bmZpZ3VyZSB0aGUgYXBwbGljYXRpb24gW2RlZmF1bHQ9dGtdIgogICAgICBw -# cmludCAiXG4gIC0taGVscCIKICAgICAgcHJpbnQgIlx0XHQuLi4uLi5TaG93 -# cyB0aGlzIG1lc3NhZ2UiCiAgICAgIAogICAgICBwdXRzICIiCiAgICBlbmQK -# ICBlbmQKZW5kCgpiZWdpbgogIGxvYWQgInNldHVwLnJiIgpyZXNjdWUgTG9h -# ZEVycm9yCiAgRmlsZS5vcGVuKG9sZGxvY2F0aW9uKCJzZXR1cC5yYiIpLCAi -# dyIpIGRvIHxmaWxlfAogICAgZmlsZSA8PCBGaWxlLnJlYWQoInNldHVwX3Ji -# LnRwbCIpIDw8ICJcbiIKICBlbmQKICBwdXRzICI9PiBBIHRlbXBsYXRlIGZp -# bGUgd2FzIGdlbmVyYXRlZCBpbiBzZXR1cC5yYiwgcGxlYXNlIGVkaXQgaXQg -# YW5kIHJlcnVuIHRoZSBjb25maWd1cmUgc2NyaXB0LiIKICBleGl0IC0xCmVu -# ZAoKaWYgX19GSUxFX18gPT0gJDAKICBxb25mID0gUW9uZjo6Q29uZmlndXJl -# Lm5ldwogIHFvbmYuZ2V0X2FyZ3MoQVJHVikKICBxb25mLmZpbmRfcGFja2Fn -# ZXMKICBxb25mLnJ1bl90ZXN0cwogIAogIHFvbmYuc2F2ZSgiY29uZmlnLnBy -# aSIpCiAgCiAgcW9uZi5nZW5lcmF0ZV9tYWtlZmlsZXMKZW5kCgoKCgAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/setup.rb b/setup.rb index babc588..7f5e333 100644 --- a/setup.rb +++ b/setup.rb @@ -1,8 +1,8 @@ def configure(setup) setup.qt >= 4.3 - setup.add_option(:name => "dlib-dir", :type => "path", :optional => false, :description => "Sets the dlib dir") - setup.add_option(:name => "yamf-dir", :type => "path", :optional => false, :description => "Sets the yamf dir") + setup.add_option(:name => "dlib-dir", :type => "path", :optional => true, :description => "Sets the dlib dir") + setup.add_option(:name => "yamf-dir", :type => "path", :optional => true, :description => "Sets the yamf dir") setup.find_package(:name => "yamf", :optional => false, :global => true) -- 2.11.4.GIT