# HG changeset patch # User tduigou # Date 1748251431 0 # Node ID 07e902da89ad00ed28951c06916a71b4e2e9ad48 # Parent 296e5145a862640ec9d5df19e5e139c4dd6ac1f8 planemo upload for repository https://github.com/Edinburgh-Genome-Foundry/DnaCauldron/tree/master commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae diff -r 296e5145a862 -r 07e902da89ad cloning_similation.xml --- a/cloning_similation.xml Fri May 23 12:53:50 2025 +0000 +++ b/cloning_similation.xml Mon May 26 09:23:51 2025 +0000 @@ -369,7 +369,7 @@ **Parameters**: --------------- -* **Assemby csv**: csv file containes the construct names with their parts. +* **Assemby csv**: csv file containes the construct names with their parts. (Without Header) * **GenBank files**: Upload all the parts sequences for your assembli(es). Don't forget the receptor vector(s). * **Domesticated GenBank**: Dimesticated GenBank list (Optional) * **Topology**: Can be "circular", "linear". diff -r 296e5145a862 -r 07e902da89ad cloning_simulation.py --- a/cloning_simulation.py Fri May 23 12:53:50 2025 +0000 +++ b/cloning_simulation.py Mon May 26 09:23:51 2025 +0000 @@ -59,7 +59,10 @@ repository.collections["parts"][new_id] = repository.collections["parts"].pop(key) ######################################################## #print (f"repo: {vars(repository)}") - any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated()) + #any(pandas.read_csv(csv_file, index_col=0, header=None).duplicated()) + df=pandas.read_csv(csv_file, index_col=0, header=None) + if df.duplicated().any(): + raise ValueError("Duplicate rows found in the data!") if assembly_type == "Type2sRestrictionAssembly": assembly_class = dnacauldron.Type2sRestrictionAssembly @@ -82,6 +85,7 @@ assembly_plan = dnacauldron.AssemblyPlan.from_spreadsheet( name="auto_from_filename", path=new_csvname, + header=[0], assembly_class=assembly_class ) if enzyme != 'auto': diff -r 296e5145a862 -r 07e902da89ad output.html --- a/output.html Fri May 23 12:53:50 2025 +0000 +++ b/output.html Mon May 26 09:23:51 2025 +0000 @@ -285,7 +285,7 @@ var md = window.markdownit({ html: true, }); - target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzEvMS9kYXRhc2V0X2IxMTQ5NTJkLTc5NWYtNDg3Mi1hNTA4LTFiNjhmNzFmNjg0My5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy83LzcvMi9kYXRhc2V0Xzc3MjgzOTJiLTZjZWMtNDg2NC1iYjIxLTc5YzUzMzBmMzRkYi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzkvNi9kYXRhc2V0X2Y5NmExYzZmLWNjNWItNDk2OS05NDdlLWQwYzVkOWJjMTg2MS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzIvZC9kYXRhc2V0XzkyZDc0ZGJiLTMyMDAtNDE4Mi1iMWMxLWI5MTZkOGI5NjM2YS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80L2UvNy9kYXRhc2V0XzRlN2YzOTc1LWUwYzQtNDA0My1hMWQ2LWU3OThkNDNjODhiZC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzIvOS9kYXRhc2V0X2IyOWI2ZWRlLWZkN2QtNGRiNy04MTJhLWU0NzE5ODQ4YzlkOS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9kLzAvYi9kYXRhc2V0X2QwYjhiNTVlLWQzMjktNDU2Ni1iOGEyLTg3MDhmMjNkNTdkMi5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzcvZS9kYXRhc2V0X2Y3ZTA4NGRhLTdhYmMtNGIwYi1hNzVhLWQ3YmUwODhlMzBlZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82LzIvZS9kYXRhc2V0XzYyZWNlNzlkLWMwY2MtNDU0YS1iYmQ4LTFjOTQzZmYwYmNjZS5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy83LzIvZGF0YXNldF83NzI4MzkyYi02Y2VjLTQ4NjQtYmIyMS03OWM1MzMwZjM0ZGIuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvOS82L2RhdGFzZXRfZjk2YTFjNmYtY2M1Yi00OTY5LTk0N2UtZDBjNWQ5YmMxODYxLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy81L2QvOS9kYXRhc2V0XzVkOWZhMzlkLTU4YTAtNDM4NS1hNTJhLWNmZjU2NmFiNjU2OS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8yL2QvZGF0YXNldF85MmQ3NGRiYi0zMjAwLTQxODItYjFjMS1iOTE2ZDhiOTYzNmEuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZS83L2RhdGFzZXRfNGU3ZjM5NzUtZTBjNC00MDQzLWExZDYtZTc5OGQ0M2M4OGJkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy85LzYvNS9kYXRhc2V0Xzk2NWQ1YTFjLTViMTEtNDRjNC1iMWJjLTM5MmNiMmUzNGJkYS5kYXQ6cGFydF9GLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi8yLzkvZGF0YXNldF9iMjliNmVkZS1mZDdkLTRkYjctODEyYS1lNDcxOTg0OGM5ZDkuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMC9iL2RhdGFzZXRfZDBiOGI1NWUtZDMyOS00NTY2LWI4YTItODcwOGYyM2Q1N2QyLmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2MvMS9kYXRhc2V0X2JjMTA3NjY1LTBlMzgtNDJmZS04MTgzLWVkYjNiM2YyMjI0OC5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi83L2UvZGF0YXNldF9mN2UwODRkYS03YWJjLTRiMGItYTc1YS1kN2JlMDg4ZTMwZWUuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvMi9lL2RhdGFzZXRfNjJlY2U3OWQtYzBjYy00NTRhLWJiZDgtMWM5NDNmZjBiY2NlLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8yLzQvNy9kYXRhc2V0XzI0NzY4ODdmLTc3ZTctNDk1NS04ZTczLWEwYjU3YjUwMDA5ZC5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzUzMWI1Yzc0LTg1NzctNGJhMi04NmNmLWQ4ZjI1ZjE2ZTE2OS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuNzhpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0ODU5ODYtM2I4Ny00Njc1LWIzYzUtY2RiMmQwMjg3YzJhLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNi8wL2RhdGFzZXRfYTYwOWY3YzItMDQyZS00NDEyLTk4YTgtMjA1NmZlNjk4NTMzLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYS82LzAvZGF0YXNldF9hNjA5ZjdjMi0wNDJlLTQ0MTItOThhOC0yMDU2ZmU2OTg1MzMuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfZmY2M2JjMTEtOGU0NC00NzUzLWEyNDgtMzI5ZmI0NGVlM2IxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuMzdpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuMzZpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjM1aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcHVsYjdrZWNwL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iLzcvNy9kYXRhc2V0X2I3NzEzMjI3LTZjOTctNDY4NC1hYzlhLTc2NjUwNjMxYTBhOS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mL2UvOS9kYXRhc2V0X2ZlOWE4ZWM2LTVkMGYtNGY4OS05MzRmLWE0NmJiOWZmOGRiNy5kYXQsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1NzYzODU0LTMyN2UtNDcyZi05Y2IzLWEzY2M3MmI4Zjc2Yi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZS85L2RhdGFzZXRfZmU5YThlYzYtNWQwZi00Zjg5LTkzNGYtYTQ2YmI5ZmY4ZGI3LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTc2Mzg1NC0zMjdlLTQ3MmYtOWNiMy1hM2NjNzJiOGY3NmIuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF8xZDUzMTI5Yi1hMzk2LTQyOWItOTk3MS0yZDAwYjk5M2U0OGEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4zN2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS8zL2RhdGFzZXRfNTEzMjk0YzQtYjFiZi00YTAyLWEzN2QtNmY0YmQ3NDQzNmQ5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2EvNy85L2RhdGFzZXRfYTc5ODI5ZWYtNjQ1MC00MDRhLThkNTktZmE0MmRkYjkxY2EzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzcvYy83L2RhdGFzZXRfN2M3NGQ0YzMtMzhiNS00MGE3LTljNzEtNDgyNTAyZTZlNWY4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzUvMS9jL2RhdGFzZXRfNTFjMzE4NGQtZmQ3ZS00OWE4LWFmNTEtZTI5YmJmN2E4YTM3LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC80L2RhdGFzZXRfMjQ0OTM1NzktYTcwMy00Yjk0LWFjMDktZTI4M2Y1OTAzNWIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9hLzcvOS9kYXRhc2V0X2E3OTgyOWVmLTY0NTAtNDA0YS04ZDU5LWZhNDJkZGI5MWNhMy5kYXQ6R0ZQLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNy9jLzcvZGF0YXNldF83Yzc0ZDRjMy0zOGI1LTQwYTctOWM3MS00ODI1MDJlNmU1ZjguZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNS8xL2MvZGF0YXNldF81MWMzMTg0ZC1mZDdlLTQ5YTgtYWY1MS1lMjliYmY3YThhMzcuZGF0OnByb21vdGVyLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80LzQvZGF0YXNldF8yNDQ5MzU3OS1hNzAzLTRiOTQtYWMwOS1lMjgzZjU5MDM1YjAuZGF0OlJGUC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvYi80L2RhdGFzZXRfY2I0YmZkMTYtZGI1Yy00N2NlLTk4ZjUtYTVjNTA2NWQ0ZGQ0LmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfNDc0OTExMzItOTAxZC00MjQ5LTljMWUtZGZkMTJmZWFlMTdlLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MiV84paI4paI4paI4paI4paI4paI4paOICAgfCA1LzggWzAwOjAwPDAwOjAwLCA0OS4wNWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMiwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDgsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNywgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJCQVNJQ0Fzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXB1bGI3a2VjcC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNSk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS80LzAvZGF0YXNldF85NDBhMDQ4YS1lYzlmLTRjYzktOTk5MC1mMGYxYmI5YzAxZGIuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNC81LzcvZGF0YXNldF80NTdkNjgwYS03ZmQ1LTQyY2UtODc0Ny1hNzgyNjcwODNkYTkuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMy9mL2UvZGF0YXNldF8zZmVlYTYyYi1jMzViLTRmNjUtOTM3ZC0zMjMzZGI2YmYwZWMuZGF0LC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdCaW9Ccmlja1N0YW5kYXJkQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZC81LzkvZGF0YXNldF9kNTkxOTAyYi03MjRkLTQ0NmQtYmFkNS0xZWNmNTM5ZjQxOTMuZGF0OkJCYV9FMDA0MF9HRlAuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzUvNy9kYXRhc2V0XzQ1N2Q2ODBhLTdmZDUtNDJjZS04NzQ3LWE3ODI2NzA4M2RhOS5kYXQ6QkJhX0oyMzExOV9wcm9tLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS9hLzkvZGF0YXNldF8xYTlhYTRjOC00Mzg3LTRiNjUtYTYzOC0xMDMzNDY1MDYwZDcuZGF0OkJCYV9KMjMxMTlfcHJvbV9mbGF3ZWQuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zL2YvZS9kYXRhc2V0XzNmZWVhNjJiLWMzNWItNGY2NS05MzdkLTMyMzNkYjZiZjBlYy5kYXQ6QkJhX0o2MTA0OF90ZXJtLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvZi85LzEvZGF0YXNldF9mOTE3ZjQyZC05ZDE0LTRiNWUtYWE0Zi1iMDRlMDZhNTYzNTcuZGF0OkJCYV9LNjExMDk0X2Jhci5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXB1bGI3a2VjcC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzM1L291dHB1dHMvZGF0YXNldF8zMzJhNjBiNS0xYjdlLTQwZDYtYjRkOS1hMDdmMDViYzlkNGIuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzMgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2NyV84paI4paI4paI4paI4paI4paI4paLICAgfCAyLzMgWzAwOjAxPDAwOjAwLCAgMS44OWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDMvMyBbMDA6MDE8MDA6MDAsICAxLjU1aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAzfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA5LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJpb0JyaWNrU3RhbmRhcmRBc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDYpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvZi9hL2RhdGFzZXRfY2ZhMWM2MjgtMWJhZC00ODY0LTk3YzktZjVmZjhhZTNiYjk0LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2UvZC81L2RhdGFzZXRfZWQ1OTEwMGQtYTRlNy00ZWI4LTk5NjUtODgxN2E4ZTQ0MDAwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvMS83L2RhdGFzZXRfMDE3MmJkY2UtY2E0OS00NWQ0LWFmMmQtMTJhNTMwNGI1NWNhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvZC85L2RhdGFzZXRfMWQ5YjNkNGMtZWVkMy00NDRlLTg3ZTYtMjljMDRlOTE1YzBkLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvNC9jL2RhdGFzZXRfMjRjNTU1ZWMtMTUzNi00ZWY2LWEwN2QtMjBkNzQ0ZjNiNWZjLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8zL2RhdGFzZXRfZjMzYWY2YjYtY2NlMy00OWIyLWExN2UtOWExNjhhZDA2NWY5LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzIvOS83L2RhdGFzZXRfMjk3ZWM2ZGEtNGU1NS00NTM0LTk0YzctOTAzZTdlMTA3NjMyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvMy8yL2RhdGFzZXRfZjMyYTkwNjItOWNmNy00OGQ5LTlkZGItZWYwYzAyNTI2NTY0LmRhdCcgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzAvOS8yL2RhdGFzZXRfMDkyZTNkNjktMzRhMC00YzAyLTk1OTMtODU5ZmExNzAxNmZiLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9lL2QvNS9kYXRhc2V0X2VkNTkxMDBkLWE0ZTctNGViOC05OTY1LTg4MTdhOGU0NDAwMC5kYXQ6cGFydF9CLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMC8xLzcvZGF0YXNldF8wMTcyYmRjZS1jYTQ5LTQ1ZDQtYWYyZC0xMmE1MzA0YjU1Y2EuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2QvMi8yL2RhdGFzZXRfZDIyNDc1ZjMtNmMyZi00YzUyLTkxNjQtMTIyNDhiYTVkMmE4LmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8xL2QvOS9kYXRhc2V0XzFkOWIzZDRjLWVlZDMtNDQ0ZS04N2U2LTI5YzA0ZTkxNWMwZC5kYXQ6cGFydF9FLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi80L2MvZGF0YXNldF8yNGM1NTVlYy0xNTM2LTRlZjYtYTA3ZC0yMGQ3NDRmM2I1ZmMuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2MvMi8zL2RhdGFzZXRfYzIzZjQ3NWItZjgyNi00MzMzLTg2NDEtNjZlNjhiZmFkNDJhLmRhdDpwYXJ0X0cuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2YvZi9hL2RhdGFzZXRfZmZhOGRmYTYtZGYzNC00MTJiLTg0YWUtMzI1YTNlMzg5YTg4LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMy9kYXRhc2V0X2YzM2FmNmI2LWNjZTMtNDliMi1hMTdlLTlhMTY4YWQwNjVmOS5kYXQ6cGFydF9JLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMi85LzcvZGF0YXNldF8yOTdlYzZkYS00ZTU1LTQ1MzQtOTRjNy05MDNlN2UxMDc2MzIuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvMC83L2RhdGFzZXRfMzA3ODVjN2YtMDYyOC00ZTYzLWJlNDUtNzcyNzJmZGVkYjUwLmRhdDpwYXJ0X0suZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy9mLzMvMi9kYXRhc2V0X2YzMmE5MDYyLTljZjctNDhkOS05ZGRiLWVmMGMwMjUyNjU2NC5kYXQ6cGFydF9MLmdiJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcHVsYjdrZWNwL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvNDkvb3V0cHV0cy9kYXRhc2V0X2RhNmY4YjkyLTAzYmEtNDU2MS04MWE0LTJhYzUxMGFmZjhjNi5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDNpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODFpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEyLCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDcpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvZC82L2RhdGFzZXRfNGQ2NjRjMjEtMDYwNi00OGYyLWE0MDMtYzk3MGVhZGE1NDY5LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvZi83L2RhdGFzZXRfYmY3OGFmNzktMmQxMy00ZmQ1LTg4NTgtYTBmY2YwNTI3MTI1LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvYy9mL2RhdGFzZXRfNmNmNmY1OWYtM2NlZS00NTM5LTg1ZTItMGI1Nzg2YjQyYThhLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzMvOC8xL2RhdGFzZXRfMzgxOGFmYjQtMTE4NC00M2IxLWFhNDgtMTNlZmFiYjdlY2M4LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzkvMC9lL2RhdGFzZXRfOTBlMzc3YjYtYzUzZS00Mjc3LThjNTQtYzM2MTc2OWVlNTJmLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzYvZS85L2RhdGFzZXRfNmU5NzY3YmYtMDg1ZC00OGQwLTlhZDMtNTk2ZTQzNTIyNGYzLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvNC9iL2RhdGFzZXRfMTRiZDM2OWItODQxMC00ODRlLTg0MDItMzNhYWM5OTk4Yjg0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvOS8xL2RhdGFzZXRfNDkxNDAyOTItNWJiMi00YjJlLWJmMDItODc0MDI3NDFkMTIwLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzL2IvNC8yL2RhdGFzZXRfYjQyNzhkMTYtZDU2ZC00Y2JmLThmYzYtMTAwZjEwYTVhMTQyLmRhdCwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXB1bGI3a2VjcC9maWxlcy9iL2YvNy9kYXRhc2V0X2JmNzhhZjc5LTJkMTMtNGZkNS04ODU4LWEwZmNmMDUyNzEyNS5kYXQ6cGFydF9BLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvNi9jL2YvZGF0YXNldF82Y2Y2ZjU5Zi0zY2VlLTQ1MzktODVlMi0wYjU3ODZiNDJhOGEuZGF0OnBhcnRfQi5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzgvYy8xL2RhdGFzZXRfOGMxYTQ1MDktZjc5My00YjFhLTlmYzItNTk5YjgzNmU2ZDFlLmRhdDpwYXJ0X0MuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy8zLzgvMS9kYXRhc2V0XzM4MThhZmI0LTExODQtNDNiMS1hYTQ4LTEzZWZhYmI3ZWNjOC5kYXQ6cGFydF9ELmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvOS8wL2UvZGF0YXNldF85MGUzNzdiNi1jNTNlLTQyNzctOGM1NC1jMzYxNzY5ZWU1MmYuZGF0OnBhcnRfRS5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzQvNS85L2RhdGFzZXRfNDU5NDQ0MmEtOGQyYi00Zjk3LWEyODAtOGRlYjc5MTVkYTljLmRhdDpwYXJ0X0YuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy82L2UvOS9kYXRhc2V0XzZlOTc2N2JmLTA4NWQtNDhkMC05YWQzLTU5NmU0MzUyMjRmMy5kYXQ6cGFydF9HLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvMS80L2IvZGF0YXNldF8xNGJkMzY5Yi04NDEwLTQ4NGUtODQwMi0zM2FhYzk5OThiODQuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvMS84L2RhdGFzZXRfMTE4MGQxODktOGY0OS00ODExLThlNzktOTU3YzdiZjMxOWU0LmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXB1bGI3a2VjcC9maWxlcy80LzkvMS9kYXRhc2V0XzQ5MTQwMjkyLTViYjItNGIyZS1iZjAyLTg3NDAyNzQxZDEyMC5kYXQ6cGFydF9KLmdiLC90bXAvdG1wdWxiN2tlY3AvZmlsZXMvYi80LzIvZGF0YXNldF9iNDI3OGQxNi1kNTZkLTRjYmYtOGZjNi0xMDBmMTBhNWExNDIuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcHVsYjdrZWNwL2ZpbGVzLzEvOC8wL2RhdGFzZXRfMTgwMjE3NTItYTE4Ni00YjYzLWJhNjgtYjU2ZGE2NGM3ZTlhLmRhdDpwYXJ0X0wuZ2InIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wdWxiN2tlY3Avam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC82My9vdXRwdXRzL2RhdGFzZXRfNWU5NzJhYzMtYTFjMC00OGM0LTlkYjgtNjQ4MzQzOTM3ODkxLmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi4zOWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMTlpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS43OWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCBOb25lIGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTQsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wdWxiN2tlY3AvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgo8L2RldGFpbHM+Cg==')); + target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iNyIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iNyIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSI3IFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjciIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSI3IiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDcgfAp8IFBhc3NlZCAgICAgfCA3IHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAxKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2EvYS9kYXRhc2V0X2JhYTU5YjE0LTdmYjUtNGVmYy1hNzVkLTIyOGQyNmI3MGFkYy5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzcvYi9kYXRhc2V0X2Y3YmRlMzc1LTJjNmItNGUyMy05MTE3LWU5NmJiNGMzZjZlNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2EvNS9kYXRhc2V0X2JhNWM5ZDEwLWU0N2UtNGNlZC05YWFmLWE1MWJmMThlNzkzMi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2YvNi9kYXRhc2V0X2JmNmU2NDgyLWFmYWEtNDc5MC1hYzc0LTIzZjUzMmZhNDhhZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8xL2IvOC9kYXRhc2V0XzFiOGM3YjQ3LWZkYmEtNDA0Ni05NTNhLTg5ZGMwYzA3YWUxNC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy81L2YvNS9kYXRhc2V0XzVmNTMyMWI5LWZhOWEtNGE3My05NTczLTg5MGQwYzAwMjA5ZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NTdhNzYyLTdjMzYtNDExMS1hMDE1LTJiNjFjYWFkNGU1Yi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzcvMC9kYXRhc2V0X2Y3MDAwZmMyLTdlMDQtNDU2MS04NzVjLWI4NDYxNGY1MTk2Ni5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zL2QvZi9kYXRhc2V0XzNkZmRlYjFiLTk1ODItNGUxNS1hNGY4LWZmMDAyYmE5YmYwOS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzMvYi9kYXRhc2V0X2UzYjI2ZDc3LTVkMDUtNGEwZi1hZGY3LTAxNmJmODZjNWViMy5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzIvMS9kYXRhc2V0XzMyMTc0OTJlLWJjOTctNGQ2MS04N2ZkLWI5ZDFmMmU0NTM0ZC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mLzgvZi9kYXRhc2V0X2Y4ZjA0MzAyLTU5OGMtNDU5Ni05OWExLTZjN2Q4NGI2MTNkNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2YvNi9kYXRhc2V0XzlmNjdjYmZkLWNhMDYtNDkyNi1iMDQyLTc0YTBkNDNiNTg1YS5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZi83L2IvZGF0YXNldF9mN2JkZTM3NS0yYzZiLTRlMjMtOTExNy1lOTZiYjRjM2Y2ZTYuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2IvYS81L2RhdGFzZXRfYmE1YzlkMTAtZTQ3ZS00Y2VkLTlhYWYtYTUxYmYxOGU3OTMyLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9iL2YvNi9kYXRhc2V0X2JmNmU2NDgyLWFmYWEtNDc5MC1hYzc0LTIzZjUzMmZhNDhhZC5kYXQ6cGFydF9DLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9iLzgvZGF0YXNldF8xYjhjN2I0Ny1mZGJhLTQwNDYtOTUzYS04OWRjMGMwN2FlMTQuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvZi81L2RhdGFzZXRfNWY1MzIxYjktZmE5YS00YTczLTk1NzMtODkwZDBjMDAyMDlkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy84LzUvNS9kYXRhc2V0Xzg1NTdhNzYyLTdjMzYtNDExMS1hMDE1LTJiNjFjYWFkNGU1Yi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvZi83LzAvZGF0YXNldF9mNzAwMGZjMi03ZTA0LTQ1NjEtODc1Yy1iODQ2MTRmNTE5NjYuZGF0OnBhcnRfRy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzMvZC9mL2RhdGFzZXRfM2RmZGViMWItOTU4Mi00ZTE1LWE0ZjgtZmYwMDJiYTliZjA5LmRhdDpwYXJ0X0guZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzMvYi9kYXRhc2V0X2UzYjI2ZDc3LTVkMDUtNGEwZi1hZGY3LTAxNmJmODZjNWViMy5kYXQ6cGFydF9JLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMy8yLzEvZGF0YXNldF8zMjE3NDkyZS1iYzk3LTRkNjEtODdmZC1iOWQxZjJlNDUzNGQuZGF0OnBhcnRfSi5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2YvOC9mL2RhdGFzZXRfZjhmMDQzMDItNTk4Yy00NTk2LTk5YTEtNmM3ZDg0YjYxM2Q2LmRhdDpwYXJ0X0suZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2YvNi9kYXRhc2V0XzlmNjdjYmZkLWNhMDYtNDkyNi1iMDQyLTc0YTBkNDNiNTg1YS5kYXQ6cGFydF9MLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcF9pYmtkY2owL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMTQvb3V0cHV0cy9kYXRhc2V0XzQ5MTY0ZDg1LTliZmYtNDdmNS1iOGVlLWRlMDAxZDE1NWZkMy5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvNCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDUwJXzilojilojilojilojiloggICAgIHwgMi80IFswMDowMDwwMDowMCwgIDIuNDFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDMvNCBbMDA6MDE8MDA6MDAsICAyLjIxaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNC80IFswMDowMjwwMDowMCwgIDEuODFpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDR9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDEsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiVHlwZTJzUmVzdHJpY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wX2lia2RjajAvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDIpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvYi8yL2RhdGFzZXRfNWIyZTAxZDktZTYzYi00NWUxLTg1MjMtZTg4NTcwYWVjYmQxLmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvNi8zL2RhdGFzZXRfNTYzMzA4NGQtMDEyMy00OGJhLWI3MzMtMDg2NTUwYTk1OTQ0LmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnR2lic29uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvNS82LzMvZGF0YXNldF81NjMzMDg0ZC0wMTIzLTQ4YmEtYjczMy0wODY1NTBhOTU5NDQuZGF0OmdpYnNvbl9zZXF1ZW5jZXMuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8xNy9vdXRwdXRzL2RhdGFzZXRfODFjODMwN2EtOGUwMy00OTc1LWIzZWMtMTExNWY0ZjQ3Mjg0LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC81IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNDAlfOKWiOKWiOKWiOKWiCAgICAgIHwgMi81IFswMDowMDwwMDowMCwgIDQuNDJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA2MCV84paI4paI4paI4paI4paI4paIICAgIHwgMy81IFswMDowMDwwMDowMCwgIDQuNDFpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA4MCV84paI4paI4paI4paI4paI4paI4paI4paIICB8IDQvNSBbMDA6MDA8MDA6MDAsICA0LjQwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgNS81IFswMDowMTwwMDowMCwgIDMuNjNpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAyLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDMsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiR2lic29uQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcF9pYmtkY2owL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyAzKTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzYvYy9kYXRhc2V0XzM2Yzk2NDJjLWM5ODAtNGE1Zi1iYWJlLWUxMTQwNDUwOTY1Yi5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mL2QvNy9kYXRhc2V0X2ZkN2ZlZWM4LWQ4MzktNGFhYy1iYTU5LTU0ZDQwNDJkNzJkNC5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8wLzkvNy9kYXRhc2V0XzA5N2QzYWY1LTQ4ZDctNGIxNS05MDYzLTE5Y2MxMTU4NWQ4Mi5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0xpZ2FzZUN5Y2xpbmdSZWFjdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2YvZC83L2RhdGFzZXRfZmQ3ZmVlYzgtZDgzOS00YWFjLWJhNTktNTRkNDA0MmQ3MmQ0LmRhdDpSRlBfR0ZQX3BsYXNtaWRfQk9zLmZhLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC85LzcvZGF0YXNldF8wOTdkM2FmNS00OGQ3LTRiMTUtOTA2My0xOWNjMTE1ODVkODIuZGF0OlJGUF9HRlBfcGxhc21pZF9wYXJ0cy5mYScgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBfaWJrZGNqMC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzIxL291dHB1dHMvZGF0YXNldF9kZDM5YTM5Ni04NGFkLTQzNTAtOGQ5Yi1hMGVmYWZkNWVhMmEuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzIgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCAyLzIgWzAwOjAwPDAwOjAwLCAgMi4yM2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDIsICd2YWxpZF9hc3NlbWJsaWVzJzogMH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogNSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgZG9tZXN0aWNhdGVkXF9pbnB1dCB8IGAgTm9uZSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJMaWdhc2VDeWNsaW5nUmVhY3Rpb25Bc3NlbWJseSIgYCB8CiAgICAgICB8IHRvcG9sb2d5IHwgYCAiY2lyY3VsYXIiIGAgfAogICAgICAgfCBhZHYgfCBgIHsiZW56eW1lIjogImF1dG8iLCAidXNlX2ZpbGVfbmFtZXNfYXNfaWRzIjogdHJ1ZX0gYCB8CiAgICAgICB8IGNocm9tSW5mbyB8IGAgIi90bXAvdG1wX2lia2RjajAvZ2FsYXh5LWRldi90b29sLWRhdGEvc2hhcmVkL3Vjc2MvY2hyb20vPy5sZW4iIGAgfAogICAgICAgfCBkYmtleSB8IGAgIj8iIGAgfAogICAgICAgfCBcX1xfaW5wdXRcX2V4dCB8IGAgImlucHV0IiBgIHwKCgoKICAgIDwvZGl2PjwvZGV0YWlscz4KCgoqIDxkZXRhaWxzIGNsYXNzPSJyY29ybmVycyBsaWdodC1ncmVlbiI+PHN1bW1hcnkgY2xhc3M9ImxpZ2h0LWdyZWVuIj4mIzk5ODk7IGNsb25pbmdfc2ltdWxhdGlvbiAoVGVzdCAjIDQpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcl96aXAnICYmIG1rZGlyICdvdXRkaXJfZ2InICYmIGNwICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzIvNS8xL2RhdGFzZXRfMjUxZDQxM2YtMGZlOC00MmNkLThhNzYtN2VmNzdjZGU2ZjE1LmRhdCcgJ2Fzc2VtYmx5X2Nzdi5jc3YnICYmIHB5dGhvbiAnL2hvbWUvcmtoYWxlZC9nYWxheHl0b29scy90b29scy9jbG9uaW5nX3NpbXVsYXRpb24vY2xvbmluZ19zaW11bGF0aW9uLnB5JyAtLXBhcnRzX2ZpbGVzICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzcvZC84L2RhdGFzZXRfN2Q4OTNiYmYtYjRlMC00ZDY0LWJhZmMtMjFiYTE1NjYyMzdkLmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2MvYy8yL2RhdGFzZXRfY2MyMzE0ZmEtOTI0Zi00N2MwLWI4OWEtNjYxZmI3ODc5MGE0LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzgvZC8wL2RhdGFzZXRfOGQwOTdjOTctN2JkNS00OGViLTlmOWUtZjViOTJjZTE5NDU4LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzUvOS8xL2RhdGFzZXRfNTkxODkzMDUtZTgzMi00MTkxLWJlN2MtNDk2YzAxYzhhYmE2LmRhdCwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzQvMC8yL2RhdGFzZXRfNDAyNTAwZDctNjUzMi00MDA4LTk0NDUtYzBjZjdmZWQ1MzUwLmRhdCcgLS1kb21lc3RpY2F0ZWRfc2VxICcnIC0tYXNzZW1ibHlfY3N2ICdhc3NlbWJseV9jc3YuY3N2JyAtLWFzc2VtYmx5X3BsYW5fbmFtZSAnQkFTSUNBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy83L2QvOC9kYXRhc2V0XzdkODkzYmJmLWI0ZTAtNGQ2NC1iYWZjLTIxYmExNTY2MjM3ZC5kYXQ6R0ZQLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvYy9jLzIvZGF0YXNldF9jYzIzMTRmYS05MjRmLTQ3YzAtYjg5YS02NjFmYjc4NzkwYTQuZGF0OnAxNUFfa2FuLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvOC9kLzAvZGF0YXNldF84ZDA5N2M5Ny03YmQ1LTQ4ZWItOWY5ZS1mNWI5MmNlMTk0NTguZGF0OnByb21vdGVyLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvNS85LzEvZGF0YXNldF81OTE4OTMwNS1lODMyLTQxOTEtYmU3Yy00OTZjMDFjOGFiYTYuZGF0OlJGUC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzQvMC8yL2RhdGFzZXRfNDAyNTAwZDctNjUzMi00MDA4LTk0NDUtYzBjZjdmZWQ1MzUwLmRhdDpvbGlnb3MuZmEnIC0tZmlsZV9uYW1lX21hcHBpbmdfZG9tICcnIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC8yOC9vdXRwdXRzL2RhdGFzZXRfOGU2YjMxZWItODRiMy00MTg0LTkyZWItMzMzODRhZTUwODU3LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC8xMCBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzggWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA3NSV84paI4paI4paI4paI4paI4paI4paI4paMICB8IDYvOCBbMDA6MDA8MDA6MDAsIDQ5LjM4aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAyLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogOCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiAwfQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIHsidmFsdWVzIjogW3siaWQiOiA3LCAic3JjIjogImhkY2EifV19IGAgfAogICAgICAgfCBkb21lc3RpY2F0ZWRcX2lucHV0IHwgYCBOb25lIGAgfAogICAgICAgfCBhc3NlbWJseVxfcGxhblxfbmFtZSB8IGAgIkJBU0lDQXNzZW1ibHkiIGAgfAogICAgICAgfCB0b3BvbG9neSB8IGAgImNpcmN1bGFyIiBgIHwKICAgICAgIHwgYWR2IHwgYCB7ImVuenltZSI6ICJhdXRvIiwgInVzZV9maWxlX25hbWVzX2FzX2lkcyI6IHRydWV9IGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcF9pYmtkY2owL2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBjbG9uaW5nX3NpbXVsYXRpb24gKFRlc3QgIyA1KTwvc3VtbWFyeT48ZGl2IGNsYXNzPSJwYWRkZWQiPgoKICAgICoqQ29tbWFuZCBMaW5lOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIG1rZGlyICdvdXRkaXJfemlwJyAmJiBta2RpciAnb3V0ZGlyX2diJyAmJiBjcCAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy9mL2QvOS9kYXRhc2V0X2ZkOTEzYzBmLWVhOTgtNGI4ZC1hMTcwLTk2MTE0NmMyMDFkNS5kYXQnICdhc3NlbWJseV9jc3YuY3N2JyAmJiBweXRob24gJy9ob21lL3JraGFsZWQvZ2FsYXh5dG9vbHMvdG9vbHMvY2xvbmluZ19zaW11bGF0aW9uL2Nsb25pbmdfc2ltdWxhdGlvbi5weScgLS1wYXJ0c19maWxlcyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzgvNC9kYXRhc2V0XzM4NDAyZjM5LWExZDMtNDk1ZS1hZmVkLWJmODMzNWI0Y2RiNi5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy85L2MvOC9kYXRhc2V0XzljOGVhNDUzLTE2YjktNGI5ZC1iMTcxLTlkNWMwMzIyYWRmOS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzEvYS9kYXRhc2V0XzMxYTQ2ZmJiLTAyNjctNDJlMy1iOWQzLWM2MDgwNGVkZDMwYy5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9lLzIvNy9kYXRhc2V0X2UyNzhlNmVhLTMxNDYtNDlmYS1hNGY1LWJlY2Y3NjZlNGY1ZS5kYXQsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82L2EvMS9kYXRhc2V0XzZhMTlkMzdmLTU0ZTEtNGM5NC1hMmIxLTFhN2YzNzgyMGFhZC5kYXQnIC0tZG9tZXN0aWNhdGVkX3NlcSAnJyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ0Jpb0JyaWNrU3RhbmRhcmRBc3NlbWJseScgLS1maWxlX25hbWVfbWFwcGluZyAnL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzgvNC9kYXRhc2V0XzM4NDAyZjM5LWExZDMtNDk1ZS1hZmVkLWJmODMzNWI0Y2RiNi5kYXQ6QkJhX0UwMDQwX0dGUC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvYy84L2RhdGFzZXRfOWM4ZWE0NTMtMTZiOS00YjlkLWIxNzEtOWQ1YzAzMjJhZGY5LmRhdDpCQmFfSjIzMTE5X3Byb20uZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zLzEvYS9kYXRhc2V0XzMxYTQ2ZmJiLTAyNjctNDJlMy1iOWQzLWM2MDgwNGVkZDMwYy5kYXQ6QkJhX0oyMzExOV9wcm9tX2ZsYXdlZC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvMi83L2RhdGFzZXRfZTI3OGU2ZWEtMzE0Ni00OWZhLWE0ZjUtYmVjZjc2NmU0ZjVlLmRhdDpCQmFfSjYxMDQ4X3Rlcm0uZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82L2EvMS9kYXRhc2V0XzZhMTlkMzdmLTU0ZTEtNGM5NC1hMmIxLTFhN2YzNzgyMGFhZC5kYXQ6QkJhX0s2MTEwOTRfYmFyLmdiJyAtLWZpbGVfbmFtZV9tYXBwaW5nX2RvbSAnJyAtLXVzZV9maWxlX25hbWVzX2FzX2lkICd0cnVlJyAtLW91dGRpcl9zaW11bGF0aW9uICdvdXRkaXJfemlwJyAtLW91dGRpcl9nYiAnb3V0ZGlyX2diJyAtLW91dHB1dF9zaW11bGF0aW9uICdvdXRwdXRfemlwLnppcCcgLS1lbnp5bWUgJ2F1dG8nIC0tdG9wb2xvZ3kgJ2NpcmN1bGFyJyAmJiBjcCAnb3V0cHV0X3ppcC56aXAnICcvdG1wL3RtcF9pYmtkY2owL2pvYl93b3JraW5nX2RpcmVjdG9yeS8wMDAvMzUvb3V0cHV0cy9kYXRhc2V0X2EzZjJlYWIxLWJiZTEtNDAxZS1iNDM2LWI3ZmZjNjk4ZWUzYS5kYXQnCiAgICAgIGBgYAogICAgKipFeGl0IENvZGU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgMAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgRXJyb3I6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgIGFzc2VtYmx5OiAgIDAlfCAgICAgICAgICB8IDAvMyBbMDA6MDA8PywgP2l0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDY3JXzilojilojilojilojilojilojilosgICB8IDIvMyBbMDA6MDE8MDA6MDAsICAxLjkwaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAxMDAlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiHwgMy8zIFswMDowMTwwMDowMCwgIDEuNTRpdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBTaW11bGF0aW5nIGFzc2VtYmx5IHBsYW4gYXNzYW1ibHkuLi4KICAgICAgeydjYW5jZWxsZWRfYXNzZW1ibGllcyc6IDAsICdlcnJvcmVkX2Fzc2VtYmxpZXMnOiAwLCAndmFsaWRfYXNzZW1ibGllcyc6IDN9CiAgICAgIEdlbmVyYXRpbmcgYXNzZW1ibGllcyByZXBvcnRzLi4uCgogICAgICBgYGAKICAgICoqVHJhY2ViYWNrOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBgYGAKICAgKipKb2IgUGFyYW1ldGVyczoqKgoKICAgKiAgIHwgSm9iIHBhcmFtZXRlciB8IFBhcmFtZXRlciB2YWx1ZSB8CiAgICAgICB8IC0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfAogICAgICAgfCBnZW5iYW5rXF9maWxlcyB8IGAgeyJ2YWx1ZXMiOiBbeyJpZCI6IDksICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIE5vbmUgYCB8CiAgICAgICB8IGFzc2VtYmx5XF9wbGFuXF9uYW1lIHwgYCAiQmlvQnJpY2tTdGFuZGFyZEFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNik8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOS83L2IvZGF0YXNldF85N2IxNmZhOS01M2FiLTRlNjUtOWRlNy1lMzAxMTJiY2RkMDYuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOC8yLzMvZGF0YXNldF84MjNjZmM0Yy05OGRiLTQ5NGQtYTAzYi01MTgxMTc5YTM1ODEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi8wL2EvZGF0YXNldF82MGE1M2IyYy05MjdlLTRjMzMtYjZiMC0yZTkyNzI2NjA0NGUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8zLzUvZGF0YXNldF9kMzU3OTk2ZC00NWMzLTQ3MTUtYjhlYi1lYTZiYjgzNmIxOGUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9hL2MvZGF0YXNldF9kYWNmZDdlMi1mNWZmLTQ4MjEtOGQ3MC1mNzMzMDdmNzk5N2UuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvOS9iLzMvZGF0YXNldF85YjNmOTM1Ny1jMWNjLTQzYzktYTgxYy1jMTAwNDgzYjNhMGQuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNS9lLzQvZGF0YXNldF81ZTQzMTUwYy0zYzdjLTQwNzItOTcyMC1mZGMwODVjZDZkOGIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9kL2UvZGF0YXNldF8yZGU3NWE0MS03NjczLTRjZWYtYWE2My0yY2Y2ZDk0NjZlOGMuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9mLzMvZGF0YXNldF9lZjNmMDQyMy1mMWRkLTQ2MmItOGQ2OC1lNjhjZDZkNTlkODIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9hLzIvZGF0YXNldF9lYTI5NzYwOS04N2M0LTRiZmMtYWJmZC0wODRmYmNjOTRkNWIuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi8wL2QvZGF0YXNldF82MGQ5MTlmZi05YjU0LTQ4NTYtYjNkMC05ODM2MTE0YzI1NzUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC84L2UvZGF0YXNldF8wOGVmZWY2ZC0xM2M0LTRlMWItYTE1NS04NTllMGEwZGY5ODkuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZS83LzIvZGF0YXNldF9lNzJmYWNjMi0wYmQ4LTQ5ZTgtOTRlNi02YjI1NTg1M2IwMzAuZGF0JyAtLWFzc2VtYmx5X2NzdiAnYXNzZW1ibHlfY3N2LmNzdicgLS1hc3NlbWJseV9wbGFuX25hbWUgJ1R5cGUyc1Jlc3RyaWN0aW9uQXNzZW1ibHknIC0tZmlsZV9uYW1lX21hcHBpbmcgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvOC8yLzMvZGF0YXNldF84MjNjZmM0Yy05OGRiLTQ5NGQtYTAzYi01MTgxMTc5YTM1ODEuZGF0OnBhcnRfQS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzYvMC9hL2RhdGFzZXRfNjBhNTNiMmMtOTI3ZS00YzMzLWI2YjAtMmU5MjcyNjYwNDRlLmRhdDpwYXJ0X0IuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9kLzMvNS9kYXRhc2V0X2QzNTc5OTZkLTQ1YzMtNDcxNS1iOGViLWVhNmJiODM2YjE4ZS5kYXQ6cGFydF9DLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9hL2MvZGF0YXNldF9kYWNmZDdlMi1mNWZmLTQ4MjEtOGQ3MC1mNzMzMDdmNzk5N2UuZGF0OnBhcnRfRC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvYi8zL2RhdGFzZXRfOWIzZjkzNTctYzFjYy00M2M5LWE4MWMtYzEwMDQ4M2IzYTBkLmRhdDpwYXJ0X0UuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy81L2UvNC9kYXRhc2V0XzVlNDMxNTBjLTNjN2MtNDA3Mi05NzIwLWZkYzA4NWNkNmQ4Yi5kYXQ6cGFydF9GLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9kL2UvZGF0YXNldF8yZGU3NWE0MS03NjczLTRjZWYtYWE2My0yY2Y2ZDk0NjZlOGMuZGF0OnBhcnRfRy5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZS9mLzMvZGF0YXNldF9lZjNmMDQyMy1mMWRkLTQ2MmItOGQ2OC1lNjhjZDZkNTlkODIuZGF0OnBhcnRfSC5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvYS8yL2RhdGFzZXRfZWEyOTc2MDktODdjNC00YmZjLWFiZmQtMDg0ZmJjYzk0ZDViLmRhdDpwYXJ0X0kuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy82LzAvZC9kYXRhc2V0XzYwZDkxOWZmLTliNTQtNDg1Ni1iM2QwLTk4MzYxMTRjMjU3NS5kYXQ6cGFydF9KLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMC84L2UvZGF0YXNldF8wOGVmZWY2ZC0xM2M0LTRlMWItYTE1NS04NTllMGEwZGY5ODkuZGF0OnBhcnRfSy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2UvNy8yL2RhdGFzZXRfZTcyZmFjYzItMGJkOC00OWU4LTk0ZTYtNmIyNTU4NTNiMDMwLmRhdDpwYXJ0X0wuZ2InIC0tdXNlX2ZpbGVfbmFtZXNfYXNfaWQgJ3RydWUnIC0tb3V0ZGlyX3NpbXVsYXRpb24gJ291dGRpcl96aXAnIC0tb3V0ZGlyX2diICdvdXRkaXJfZ2InIC0tb3V0cHV0X3NpbXVsYXRpb24gJ291dHB1dF96aXAuemlwJyAtLWVuenltZSAnYXV0bycgLS10b3BvbG9neSAnY2lyY3VsYXInICYmIGNwICdvdXRwdXRfemlwLnppcCcgJy90bXAvdG1wX2lia2RjajAvam9iX3dvcmtpbmdfZGlyZWN0b3J5LzAwMC80OS9vdXRwdXRzL2RhdGFzZXRfMmJjYTIzOGUtNTQyMS00NTZkLWJmOTgtMWJkNDRlNjVmYzc2LmRhdCcKICAgICAgYGBgCiAgICAqKkV4aXQgQ29kZToqKgoKICAgICogYGBgY29uc29sZQogICAgICAwCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBFcnJvcjoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKICAgICAgYXNzZW1ibHk6ICAgMCV8ICAgICAgICAgIHwgMC80IFswMDowMDw/LCA/aXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNTAlfOKWiOKWiOKWiOKWiOKWiCAgICAgfCAyLzQgWzAwOjAwPDAwOjAwLCAgMi40NGl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogIDc1JXzilojilojilojilojilojilojilojilowgIHwgMy80IFswMDowMTwwMDowMCwgIDIuMjJpdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6IDEwMCV84paI4paI4paI4paI4paI4paI4paI4paI4paI4paIfCA0LzQgWzAwOjAyPDAwOjAwLCAgMS44MWl0L3MsIG5vdz1Ob25lXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICBgYGAKICAgICoqU3RhbmRhcmQgT3V0cHV0OioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIFNpbXVsYXRpbmcgYXNzZW1ibHkgcGxhbiBhc3NhbWJseS4uLgogICAgICB7J2NhbmNlbGxlZF9hc3NlbWJsaWVzJzogMCwgJ2Vycm9yZWRfYXNzZW1ibGllcyc6IDAsICd2YWxpZF9hc3NlbWJsaWVzJzogNH0KICAgICAgR2VuZXJhdGluZyBhc3NlbWJsaWVzIHJlcG9ydHMuLi4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IGdlbmJhbmtcX2ZpbGVzIHwgYCB7InZhbHVlcyI6IFt7ImlkIjogMTIsICJzcmMiOiAiaGRjYSJ9XX0gYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxMSwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCiogPGRldGFpbHMgY2xhc3M9InJjb3JuZXJzIGxpZ2h0LWdyZWVuIj48c3VtbWFyeSBjbGFzcz0ibGlnaHQtZ3JlZW4iPiYjOTk4OTsgY2xvbmluZ19zaW11bGF0aW9uIChUZXN0ICMgNyk8L3N1bW1hcnk+PGRpdiBjbGFzcz0icGFkZGVkIj4KCiAgICAqKkNvbW1hbmQgTGluZToqKgoKICAgICogYGBgY29uc29sZQogICAgICBta2RpciAnb3V0ZGlyX3ppcCcgJiYgbWtkaXIgJ291dGRpcl9nYicgJiYgY3AgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvNS8wLzQvZGF0YXNldF81MDQyMjEzYy04YmI2LTQ4ZTAtOTUwMS0wNzBlNTVhOWE4YzAuZGF0JyAnYXNzZW1ibHlfY3N2LmNzdicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2Nsb25pbmdfc2ltdWxhdGlvbi9jbG9uaW5nX3NpbXVsYXRpb24ucHknIC0tcGFydHNfZmlsZXMgJy90bXAvdG1wX2lia2RjajAvZmlsZXMvZC9kLzgvZGF0YXNldF9kZDhkOTc0NC1kN2YwLTQ2YWUtYjI2Zi1kZTk2MWUzZjUwMzMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvYS9hLzYvZGF0YXNldF9hYTY0ZDlmMi1mMzUxLTQ3NzYtYWFiNi02NDhhNWZhNWY2ZGEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9kL2IvZGF0YXNldF8xZGJjYTU4Yy1iZDEyLTQ4YzctYmJmZS00OWVmODgwMWY4YzMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8zLzkvZGF0YXNldF9kMzk2ZDdkZi04ZTlkLTQ0MWItYjA0ZS1hYmFhYTBjOTBhN2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNC8xLzMvZGF0YXNldF80MTMwZGRiNC02ZWI2LTRmYTEtYmQyMS0zM2VhNjNkYzRmMmEuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9lLzkvZGF0YXNldF8yZTkwNzczOS0xODFkLTQ0YmMtOGJjNC0zNWQyNTJlMDA1MzUuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvOS9kLzMvZGF0YXNldF85ZDMwNTNlMi02MzBkLTRmYmEtOWIwOC0wOWY1OTAxM2FiOTYuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82LzMvZGF0YXNldF8yNjM2NDg3Ny1mNDgyLTRiNGQtODM0Ni02MWEyZjUwZjFjY2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi9mLzYvZGF0YXNldF82ZjY0ZjgyOC1iZThlLTRlNzItYTk0MC04NzM5NjI1NmZlM2YuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvZC8yLzQvZGF0YXNldF9kMjQ5MmYzYi04ZWE5LTQwZTctOGJkYS1hMTViNTA2YTIyYWMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMy9hLzgvZGF0YXNldF8zYTg1NzY3NS0wMjdjLTRiMjgtYmY2OS03NTkxZGI1NjkyMTMuZGF0LC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82L2QvZGF0YXNldF8yNmRmMmM1MC00Y2JlLTQ1ZjUtYmEwNy1iZThmYjg5Y2ZiN2MuZGF0JyAtLWRvbWVzdGljYXRlZF9zZXEgJycgLS1hc3NlbWJseV9jc3YgJ2Fzc2VtYmx5X2Nzdi5jc3YnIC0tYXNzZW1ibHlfcGxhbl9uYW1lICdUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5JyAtLWZpbGVfbmFtZV9tYXBwaW5nICcvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvZC84L2RhdGFzZXRfZGQ4ZDk3NDQtZDdmMC00NmFlLWIyNmYtZGU5NjFlM2Y1MDMzLmRhdDpwYXJ0X0EuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy9hL2EvNi9kYXRhc2V0X2FhNjRkOWYyLWYzNTEtNDc3Ni1hYWI2LTY0OGE1ZmE1ZjZkYS5kYXQ6cGFydF9CLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMS9kL2IvZGF0YXNldF8xZGJjYTU4Yy1iZDEyLTQ4YzctYmJmZS00OWVmODgwMWY4YzMuZGF0OnBhcnRfQy5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvMy85L2RhdGFzZXRfZDM5NmQ3ZGYtOGU5ZC00NDFiLWIwNGUtYWJhYWEwYzkwYTdmLmRhdDpwYXJ0X0QuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy80LzEvMy9kYXRhc2V0XzQxMzBkZGI0LTZlYjYtNGZhMS1iZDIxLTMzZWE2M2RjNGYyYS5kYXQ6cGFydF9FLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi9lLzkvZGF0YXNldF8yZTkwNzczOS0xODFkLTQ0YmMtOGJjNC0zNWQyNTJlMDA1MzUuZGF0OnBhcnRfRi5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzLzkvZC8zL2RhdGFzZXRfOWQzMDUzZTItNjMwZC00ZmJhLTliMDgtMDlmNTkwMTNhYjk2LmRhdDpwYXJ0X0cuZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8yLzYvMy9kYXRhc2V0XzI2MzY0ODc3LWY0ODItNGI0ZC04MzQ2LTYxYTJmNTBmMWNjZi5kYXQ6cGFydF9ILmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvNi9mLzYvZGF0YXNldF82ZjY0ZjgyOC1iZThlLTRlNzItYTk0MC04NzM5NjI1NmZlM2YuZGF0OnBhcnRfSS5nYiwvdG1wL3RtcF9pYmtkY2owL2ZpbGVzL2QvMi80L2RhdGFzZXRfZDI0OTJmM2ItOGVhOS00MGU3LThiZGEtYTE1YjUwNmEyMmFjLmRhdDpwYXJ0X0ouZ2IsL3RtcC90bXBfaWJrZGNqMC9maWxlcy8zL2EvOC9kYXRhc2V0XzNhODU3Njc1LTAyN2MtNGIyOC1iZjY5LTc1OTFkYjU2OTIxMy5kYXQ6cGFydF9LLmdiLC90bXAvdG1wX2lia2RjajAvZmlsZXMvMi82L2QvZGF0YXNldF8yNmRmMmM1MC00Y2JlLTQ1ZjUtYmEwNy1iZThmYjg5Y2ZiN2MuZGF0OnBhcnRfTC5nYicgLS1maWxlX25hbWVfbWFwcGluZ19kb20gJycgLS11c2VfZmlsZV9uYW1lc19hc19pZCAndHJ1ZScgLS1vdXRkaXJfc2ltdWxhdGlvbiAnb3V0ZGlyX3ppcCcgLS1vdXRkaXJfZ2IgJ291dGRpcl9nYicgLS1vdXRwdXRfc2ltdWxhdGlvbiAnb3V0cHV0X3ppcC56aXAnIC0tZW56eW1lICdhdXRvJyAtLXRvcG9sb2d5ICdjaXJjdWxhcicgJiYgY3AgJ291dHB1dF96aXAuemlwJyAnL3RtcC90bXBfaWJrZGNqMC9qb2Jfd29ya2luZ19kaXJlY3RvcnkvMDAwLzYzL291dHB1dHMvZGF0YXNldF80ZTM5ZjNiNy0yODk5LTQxMGUtYTMyZi00NzI3MDk3MGFlMTQuZGF0JwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIEVycm9yOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIAogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICBhc3NlbWJseTogICAwJXwgICAgICAgICAgfCAwLzQgWzAwOjAwPD8sID9pdC9zLCBub3c9Tm9uZV0KICAgICAgYXNzZW1ibHk6ICA1MCV84paI4paI4paI4paI4paIICAgICB8IDIvNCBbMDA6MDA8MDA6MDAsICAyLjQyaXQvcywgbm93PU5vbmVdCiAgICAgIGFzc2VtYmx5OiAgNzUlfOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWjCAgfCAzLzQgWzAwOjAxPDAwOjAwLCAgMi4yMWl0L3MsIG5vdz1Ob25lXQogICAgICBhc3NlbWJseTogMTAwJXzilojilojilojilojilojilojilojilojilojiloh8IDQvNCBbMDA6MDI8MDA6MDAsICAxLjgxaXQvcywgbm93PU5vbmVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIGBgYAogICAgKipTdGFuZGFyZCBPdXRwdXQ6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgU2ltdWxhdGluZyBhc3NlbWJseSBwbGFuIGFzc2FtYmx5Li4uCiAgICAgIHsnY2FuY2VsbGVkX2Fzc2VtYmxpZXMnOiAwLCAnZXJyb3JlZF9hc3NlbWJsaWVzJzogMCwgJ3ZhbGlkX2Fzc2VtYmxpZXMnOiA0fQogICAgICBHZW5lcmF0aW5nIGFzc2VtYmxpZXMgcmVwb3J0cy4uLgoKICAgICAgYGBgCiAgICAqKlRyYWNlYmFjazoqKgoKICAgICogYGBgY29uc29sZQogICAgICAKICAgICAgYGBgCiAgICoqSm9iIFBhcmFtZXRlcnM6KioKCiAgICogICB8IEpvYiBwYXJhbWV0ZXIgfCBQYXJhbWV0ZXIgdmFsdWUgfAogICAgICAgfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tIHwKICAgICAgIHwgZ2VuYmFua1xfZmlsZXMgfCBgIE5vbmUgYCB8CiAgICAgICB8IGRvbWVzdGljYXRlZFxfaW5wdXQgfCBgIHsidmFsdWVzIjogW3siaWQiOiAxNCwgInNyYyI6ICJoZGNhIn1dfSBgIHwKICAgICAgIHwgYXNzZW1ibHlcX3BsYW5cX25hbWUgfCBgICJUeXBlMnNSZXN0cmljdGlvbkFzc2VtYmx5IiBgIHwKICAgICAgIHwgdG9wb2xvZ3kgfCBgICJjaXJjdWxhciIgYCB8CiAgICAgICB8IGFkdiB8IGAgeyJlbnp5bWUiOiAiYXV0byIsICJ1c2VfZmlsZV9uYW1lc19hc19pZHMiOiB0cnVlfSBgIHwKICAgICAgIHwgY2hyb21JbmZvIHwgYCAiL3RtcC90bXBfaWJrZGNqMC9nYWxheHktZGV2L3Rvb2wtZGF0YS9zaGFyZWQvdWNzYy9jaHJvbS8/LmxlbiIgYCB8CiAgICAgICB8IGRia2V5IHwgYCAiPyIgYCB8CiAgICAgICB8IFxfXF9pbnB1dFxfZXh0IHwgYCAiaW5wdXQiIGAgfAoKCgogICAgPC9kaXY+PC9kZXRhaWxzPgoKCjwvZGV0YWlscz4K')); \ No newline at end of file diff -r 296e5145a862 -r 07e902da89ad output.json --- a/output.json Fri May 23 12:53:50 2025 +0000 +++ b/output.json Mon May 26 09:23:51 2025 +0000 @@ -11,93 +11,93 @@ "inputs": { "adv|use_file_names_as_ids": true, "assembly_csv": { - "id": "106ff655f8a511fe", + "id": "0a696a8b22798e06", "src": "hda" }, "assembly_plan_name": "Type2sRestrictionAssembly", "genbank_files": { - "id": "8094a24bdbd328fd", + "id": "cb6d3fbb91be6861", "src": "hdca" }, "topology": "circular" }, "job": { - "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmpulb7kecp/files/b/1/1/dataset_b114952d-795f-4872-a508-1b68f71f6843.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmpulb7kecp/files/7/7/2/dataset_7728392b-6cec-4864-bb21-79c5330f34db.dat:part_A.gb,/tmp/tmpulb7kecp/files/f/9/6/dataset_f96a1c6f-cc5b-4969-947e-d0c5d9bc1861.dat:part_B.gb,/tmp/tmpulb7kecp/files/5/d/9/dataset_5d9fa39d-58a0-4385-a52a-cff566ab6569.dat:part_C.gb,/tmp/tmpulb7kecp/files/9/2/d/dataset_92d74dbb-3200-4182-b1c1-b916d8b9636a.dat:part_D.gb,/tmp/tmpulb7kecp/files/4/e/7/dataset_4e7f3975-e0c4-4043-a1d6-e798d43c88bd.dat:part_E.gb,/tmp/tmpulb7kecp/files/9/6/5/dataset_965d5a1c-5b11-44c4-b1bc-392cb2e34bda.dat:part_F.gb,/tmp/tmpulb7kecp/files/b/2/9/dataset_b29b6ede-fd7d-4db7-812a-e4719848c9d9.dat:part_G.gb,/tmp/tmpulb7kecp/files/d/0/b/dataset_d0b8b55e-d329-4566-b8a2-8708f23d57d2.dat:part_H.gb,/tmp/tmpulb7kecp/files/b/c/1/dataset_bc107665-0e38-42fe-8183-edb3b3f22248.dat:part_I.gb,/tmp/tmpulb7kecp/files/f/7/e/dataset_f7e084da-7abc-4b0b-a75a-d7be088e30ee.dat:part_J.gb,/tmp/tmpulb7kecp/files/6/2/e/dataset_62ece79d-c0cc-454a-bbd8-1c943ff0bcce.dat:part_K.gb,/tmp/tmpulb7kecp/files/2/4/7/dataset_2476887f-77e7-4955-8e73-a0b57b50009d.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmpulb7kecp/job_working_directory/000/14/outputs/dataset_531b5c74-8577-4ba2-86cf-d8f25f16e169.dat'", + "command_line": "mkdir 'outdir_zip' && mkdir 'outdir_gb' && cp '/tmp/tmp_ibkdcj0/files/b/a/a/dataset_baa59b14-7fb5-4efc-a75d-228d26b70adc.dat' 'assembly_csv.csv' && python '/home/rkhaled/galaxytools/tools/cloning_simulation/cloning_simulation.py' --parts_files '/tmp/tmp_ibkdcj0/files/f/7/b/dataset_f7bde375-2c6b-4e23-9117-e96bb4c3f6e6.dat,/tmp/tmp_ibkdcj0/files/b/a/5/dataset_ba5c9d10-e47e-4ced-9aaf-a51bf18e7932.dat,/tmp/tmp_ibkdcj0/files/b/f/6/dataset_bf6e6482-afaa-4790-ac74-23f532fa48ad.dat,/tmp/tmp_ibkdcj0/files/1/b/8/dataset_1b8c7b47-fdba-4046-953a-89dc0c07ae14.dat,/tmp/tmp_ibkdcj0/files/5/f/5/dataset_5f5321b9-fa9a-4a73-9573-890d0c00209d.dat,/tmp/tmp_ibkdcj0/files/8/5/5/dataset_8557a762-7c36-4111-a015-2b61caad4e5b.dat,/tmp/tmp_ibkdcj0/files/f/7/0/dataset_f7000fc2-7e04-4561-875c-b84614f51966.dat,/tmp/tmp_ibkdcj0/files/3/d/f/dataset_3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09.dat,/tmp/tmp_ibkdcj0/files/e/3/b/dataset_e3b26d77-5d05-4a0f-adf7-016bf86c5eb3.dat,/tmp/tmp_ibkdcj0/files/3/2/1/dataset_3217492e-bc97-4d61-87fd-b9d1f2e4534d.dat,/tmp/tmp_ibkdcj0/files/f/8/f/dataset_f8f04302-598c-4596-99a1-6c7d84b613d6.dat,/tmp/tmp_ibkdcj0/files/9/f/6/dataset_9f67cbfd-ca06-4926-b042-74a0d43b585a.dat' --domesticated_seq '' --assembly_csv 'assembly_csv.csv' --assembly_plan_name 'Type2sRestrictionAssembly' --file_name_mapping '/tmp/tmp_ibkdcj0/files/f/7/b/dataset_f7bde375-2c6b-4e23-9117-e96bb4c3f6e6.dat:part_A.gb,/tmp/tmp_ibkdcj0/files/b/a/5/dataset_ba5c9d10-e47e-4ced-9aaf-a51bf18e7932.dat:part_B.gb,/tmp/tmp_ibkdcj0/files/b/f/6/dataset_bf6e6482-afaa-4790-ac74-23f532fa48ad.dat:part_C.gb,/tmp/tmp_ibkdcj0/files/1/b/8/dataset_1b8c7b47-fdba-4046-953a-89dc0c07ae14.dat:part_D.gb,/tmp/tmp_ibkdcj0/files/5/f/5/dataset_5f5321b9-fa9a-4a73-9573-890d0c00209d.dat:part_E.gb,/tmp/tmp_ibkdcj0/files/8/5/5/dataset_8557a762-7c36-4111-a015-2b61caad4e5b.dat:part_F.gb,/tmp/tmp_ibkdcj0/files/f/7/0/dataset_f7000fc2-7e04-4561-875c-b84614f51966.dat:part_G.gb,/tmp/tmp_ibkdcj0/files/3/d/f/dataset_3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09.dat:part_H.gb,/tmp/tmp_ibkdcj0/files/e/3/b/dataset_e3b26d77-5d05-4a0f-adf7-016bf86c5eb3.dat:part_I.gb,/tmp/tmp_ibkdcj0/files/3/2/1/dataset_3217492e-bc97-4d61-87fd-b9d1f2e4534d.dat:part_J.gb,/tmp/tmp_ibkdcj0/files/f/8/f/dataset_f8f04302-598c-4596-99a1-6c7d84b613d6.dat:part_K.gb,/tmp/tmp_ibkdcj0/files/9/f/6/dataset_9f67cbfd-ca06-4926-b042-74a0d43b585a.dat:part_L.gb' --file_name_mapping_dom '' --use_file_names_as_id 'true' --outdir_simulation 'outdir_zip' --outdir_gb 'outdir_gb' --output_simulation 'output_zip.zip' --enzyme 'auto' --topology 'circular' && cp 'output_zip.zip' '/tmp/tmp_ibkdcj0/job_working_directory/000/14/outputs/dataset_49164d85-9bff-47f5-b8ee-de001d155fd3.dat'", "command_version": "", "copied_from_job_id": null, - "create_time": "2025-05-23T12:13:12.978945", + "create_time": "2025-05-26T08:56:03.115650", "dependencies": [], "exit_code": 0, - "external_id": "178458", + "external_id": "78665", "galaxy_version": "24.2", "handler": null, - "history_id": "8094a24bdbd328fd", - "id": "a843aa6880d39864", + "history_id": "cb6d3fbb91be6861", + "id": "2ff5b0f6b4cfbb73", "inputs": { "assembly_csv": { - "id": "106ff655f8a511fe", + "id": "0a696a8b22798e06", "src": "hda", - "uuid": "b114952d-795f-4872-a508-1b68f71f6843" + "uuid": "baa59b14-7fb5-4efc-a75d-228d26b70adc" }, "genbank_files1": { - "id": "8094a24bdbd328fd", + "id": "cb6d3fbb91be6861", "src": "hda", - "uuid": "7728392b-6cec-4864-bb21-79c5330f34db" + "uuid": "f7bde375-2c6b-4e23-9117-e96bb4c3f6e6" }, "genbank_files10": { - "id": "54ed1ed3b165c7b4", + "id": "7ede2556a40dc9ba", "src": "hda", - "uuid": "f7e084da-7abc-4b0b-a75a-d7be088e30ee" + "uuid": "3217492e-bc97-4d61-87fd-b9d1f2e4534d" }, "genbank_files11": { - "id": "aa441ebc75addcb0", + "id": "76608081d307dc20", "src": "hda", - "uuid": "62ece79d-c0cc-454a-bbd8-1c943ff0bcce" + "uuid": "f8f04302-598c-4596-99a1-6c7d84b613d6" }, "genbank_files12": { - "id": "41108ccf3c813abd", + "id": "0551bf01e3dbca02", "src": "hda", - "uuid": "2476887f-77e7-4955-8e73-a0b57b50009d" + "uuid": "9f67cbfd-ca06-4926-b042-74a0d43b585a" }, "genbank_files2": { - "id": "6c2020bf7be1ec65", + "id": "18a1e53d7b8ec0fa", "src": "hda", - "uuid": "f96a1c6f-cc5b-4969-947e-d0c5d9bc1861" + "uuid": "ba5c9d10-e47e-4ced-9aaf-a51bf18e7932" }, "genbank_files3": { - "id": "8a7a2aba20929ed0", + "id": "afdf3d24f0e34eea", "src": "hda", - "uuid": "5d9fa39d-58a0-4385-a52a-cff566ab6569" + "uuid": "bf6e6482-afaa-4790-ac74-23f532fa48ad" }, "genbank_files4": { - "id": "53ad8e2eaf8a05d9", + "id": "285751a21c9d1d68", "src": "hda", - "uuid": "92d74dbb-3200-4182-b1c1-b916d8b9636a" + "uuid": "1b8c7b47-fdba-4046-953a-89dc0c07ae14" }, "genbank_files5": { - "id": "85b2c5efa0bce20f", + "id": "48e4779cf88cf124", "src": "hda", - "uuid": "4e7f3975-e0c4-4043-a1d6-e798d43c88bd" + "uuid": "5f5321b9-fa9a-4a73-9573-890d0c00209d" }, "genbank_files6": { - "id": "3758c7315f184c9a", + "id": "2bf3ecab9316a382", "src": "hda", - "uuid": "965d5a1c-5b11-44c4-b1bc-392cb2e34bda" + "uuid": "8557a762-7c36-4111-a015-2b61caad4e5b" }, "genbank_files7": { - "id": "cc5b73713462c207", + "id": "d51bf47fbc922335", "src": "hda", - "uuid": "b29b6ede-fd7d-4db7-812a-e4719848c9d9" + "uuid": "f7000fc2-7e04-4561-875c-b84614f51966" }, "genbank_files8": { - "id": "abedd81ff2360f10", + "id": "590bb56cc83504dc", "src": "hda", - "uuid": "d0b8b55e-d329-4566-b8a2-8708f23d57d2" + "uuid": "3dfdeb1b-9582-4e15-a4f8-ff002ba9bf09" }, "genbank_files9": { - "id": "83d0643dcafc650b", + "id": "ff96e44e65db99f8", "src": "hda", - "uuid": "bc107665-0e38-42fe-8183-edb3b3f22248" + "uuid": "e3b26d77-5d05-4a0f-adf7-016bf86c5eb3" } }, "job_messages": [], @@ -108,60 +108,60 @@ "model_class": "Job", "output_collections": { "construct_gb": { - "id": "6c2020bf7be1ec65", + "id": "18a1e53d7b8ec0fa", "src": "hdca" } }, "outputs": { "__new_primary_file_construct_gb|construct_1__": { - "id": "03b30db777cad5e1", + "id": "be5466d8eb2c2229", "src": "hda", - "uuid": "21d43ad8-7969-4897-bade-2bde4913b7c5" + "uuid": "2c83aaa9-63df-43a5-b008-9a361a9fc312" }, "__new_primary_file_construct_gb|construct_2__": { - "id": "d7483ddd36cf3921", + "id": "a37f81f30817f4ff", "src": "hda", - "uuid": "9420de76-fe00-401e-9cef-039d76b41e8f" + "uuid": "8ba2ce56-ba8b-4ff8-bcc0-54d0a2ad3b09" }, "__new_primary_file_construct_gb|construct_3__": { - "id": "2239b1a77a4b659c", + "id": "b4705f371a43addc", "src": "hda", - "uuid": "e360b3e5-97c6-49be-9e0e-4ff44209fb03" + "uuid": "47741e71-6bf6-46ec-9353-25bb48d895ed" }, "__new_primary_file_construct_gb|construct_4__": { - "id": "b9f6f443461a8e55", + "id": "0dc911fcb05967a3", "src": "hda", - "uuid": "580f1a4e-e43c-4396-9ae5-d441a0f64d1a" + "uuid": "6aa740ec-6985-4d66-8427-b1652fa06f3a" }, "output_zip": { - "id": "a843aa6880d39864", + "id": "2ff5b0f6b4cfbb73", "src": "hda", - "uuid": "531b5c74-8577-4ba2-86cf-d8f25f16e169" + "uuid": "49164d85-9bff-47f5-b8ee-de001d155fd3" } }, "params": { "__input_ext": "\"input\"", "adv": "{\"enzyme\": \"auto\", \"use_file_names_as_ids\": true}", "assembly_plan_name": "\"Type2sRestrictionAssembly\"", - "chromInfo": "\"/tmp/tmpulb7kecp/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", + "chromInfo": "\"/tmp/tmp_ibkdcj0/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\"", "dbkey": "\"?\"", "domesticated_input": null, "genbank_files": "{\"values\": [{\"id\": 1, \"src\": \"hdca\"}]}", "topology": "\"circular\"" }, "state": "ok", - "stderr": "\rassembly: 0%| | 0/4 [00:00