misp-circl-feed/feeds/circl/misp/571de51c-4f04-491f-b34a-4567950d210f.json

577 lines
No EOL
145 KiB
JSON

{
"type": "bundle",
"id": "bundle--571de51c-4f04-491f-b34a-4567950d210f",
"objects": [
{
"type": "identity",
"spec_version": "2.1",
"id": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-05-17T16:17:00.000Z",
"modified": "2016-05-17T16:17:00.000Z",
"name": "CIRCL",
"identity_class": "organization"
},
{
"type": "report",
"spec_version": "2.1",
"id": "report--571de51c-4f04-491f-b34a-4567950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-05-17T16:17:00.000Z",
"modified": "2016-05-17T16:17:00.000Z",
"name": "OSINT - TWO BYTES TO $951M (SWIFT payment system abuse)",
"published": "2016-05-17T16:17:14Z",
"object_refs": [
"observed-data--571de55b-62c4-4164-a6b8-4912950d210f",
"url--571de55b-62c4-4164-a6b8-4912950d210f",
"x-misp-attribute--571de56d-9d20-4984-9f77-475b950d210f",
"indicator--571de5a5-b484-480f-bf60-4d4b950d210f",
"indicator--571de5a5-c824-4d41-a44b-43da950d210f",
"indicator--571de5a5-d18c-4a5a-b7d8-4b30950d210f",
"indicator--571de5a5-e3f8-46bb-a301-43ff950d210f",
"indicator--571de5be-0198-4c01-a9c7-4bd002de0b81",
"indicator--571de5be-2994-4d3e-ae5b-4aef02de0b81",
"observed-data--571de5be-97cc-48d7-b0df-432102de0b81",
"url--571de5be-97cc-48d7-b0df-432102de0b81",
"indicator--571de5be-8280-488c-a1bf-437502de0b81",
"indicator--571de5be-f358-4523-b8ee-41a202de0b81",
"observed-data--571de5be-941c-4514-b651-4a9202de0b81",
"url--571de5be-941c-4514-b651-4a9202de0b81",
"indicator--571de5bf-ad68-4e97-8c1b-412702de0b81",
"indicator--571de5bf-064c-4a4c-a302-4bdf02de0b81",
"observed-data--571de5bf-0df4-421c-bb52-4f7c02de0b81",
"url--571de5bf-0df4-421c-bb52-4f7c02de0b81",
"indicator--571de5bf-f638-4ae5-820f-473002de0b81",
"indicator--571de5bf-0b34-45ba-b14c-44fd02de0b81",
"observed-data--571de5bf-b9bc-48f8-9821-478602de0b81",
"url--571de5bf-b9bc-48f8-9821-478602de0b81",
"indicator--571de5ef-8fa8-4d8e-a3e1-4c79950d210f",
"indicator--571de60d-6454-4aa4-b4e7-4352950d210f",
"observed-data--571de6a3-4548-4238-8b4d-4396950d210f",
"file--571de6a3-4548-4238-8b4d-4396950d210f",
"artifact--571de6a3-4548-4238-8b4d-4396950d210f"
],
"labels": [
"Threat-Report",
"misp:tool=\"MISP-STIX-Converter\"",
"circl:topic=\"finance\"",
"type:OSINT"
],
"object_marking_refs": [
"marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9"
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de55b-62c4-4164-a6b8-4912950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:37:31.000Z",
"modified": "2016-04-25T09:37:31.000Z",
"first_observed": "2016-04-25T09:37:31Z",
"last_observed": "2016-04-25T09:37:31Z",
"number_observed": 1,
"object_refs": [
"url--571de55b-62c4-4164-a6b8-4912950d210f"
],
"labels": [
"misp:type=\"link\"",
"misp:category=\"External analysis\""
]
},
{
"type": "url",
"spec_version": "2.1",
"id": "url--571de55b-62c4-4164-a6b8-4912950d210f",
"value": "http://baesystemsai.blogspot.lu/2016/04/two-bytes-to-951m.html"
},
{
"type": "x-misp-attribute",
"spec_version": "2.1",
"id": "x-misp-attribute--571de56d-9d20-4984-9f77-475b950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:37:49.000Z",
"modified": "2016-04-25T09:37:49.000Z",
"labels": [
"misp:type=\"comment\"",
"misp:category=\"External analysis\""
],
"x_misp_category": "External analysis",
"x_misp_type": "comment",
"x_misp_value": "In February 2016 one of the largest cyber heists was committed and subsequently disclosed. An unknown attacker gained access to the Bangladesh Bank\u00e2\u20ac\u2122s (BB) SWIFT payment system and reportedly instructed an American bank to transfer money from BB\u00e2\u20ac\u2122s account to accounts in The Philippines. The attackers attempted to steal $951m, of which $81m is still unaccounted for. \r\n\r\nThe technical details of the attack have yet to be made public, however we\u00e2\u20ac\u2122ve recently identified tools uploaded to online malware repositories that we believe are linked to the heist. The custom malware was submitted by a user in Bangladesh, and contains sophisticated functionality for interacting with local SWIFT Alliance Access software running in the victim infrastructure. \r\n\r\nThis malware appears to be just part of a wider attack toolkit, and would have been used to cover the attackers\u00e2\u20ac\u2122 tracks as they sent forged payment instructions to make the transfers. This would have hampered the detection and response to the attack, giving more time for the subsequent money laundering to take place. \r\n\r\nThe tools are highly configurable and given the correct access could feasibly be used for similar attacks in the future."
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5a5-b484-480f-bf60-4d4b950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:38:45.000Z",
"modified": "2016-04-25T09:38:45.000Z",
"description": "evtdiag.exe",
"pattern": "[file:hashes.SHA1 = '525a8e3ae4e3df8c9c61f2a49e38541d196e9228']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:38:45Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha1\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5a5-c824-4d41-a44b-43da950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:38:45.000Z",
"modified": "2016-04-25T09:38:45.000Z",
"description": "evtsys.exe",
"pattern": "[file:hashes.SHA1 = '76bab478dcc70f979ce62cd306e9ba50ee84e37e']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:38:45Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha1\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5a5-d18c-4a5a-b7d8-4b30950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:38:45.000Z",
"modified": "2016-04-25T09:38:45.000Z",
"description": "nroff_b.exe",
"pattern": "[file:hashes.SHA1 = '70bf16597e375ad691f2c1efa194dbe7f60e4eeb']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:38:45Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha1\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5a5-e3f8-46bb-a301-43ff950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:38:45.000Z",
"modified": "2016-04-25T09:38:45.000Z",
"description": "gpca.dat",
"pattern": "[file:hashes.SHA1 = '6207b92842b28a438330a2bf0ee8dcab7ef0a163']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:38:45Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha1\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5be-0198-4c01-a9c7-4bd002de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"description": "gpca.dat - Xchecked via VT: 6207b92842b28a438330a2bf0ee8dcab7ef0a163",
"pattern": "[file:hashes.SHA256 = 'b07b37f0246bd436addbe5d702b12485d7bc8a9ef1475b54bff513a18e68fef7']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:10Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha256\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5be-2994-4d3e-ae5b-4aef02de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"description": "gpca.dat - Xchecked via VT: 6207b92842b28a438330a2bf0ee8dcab7ef0a163",
"pattern": "[file:hashes.MD5 = 'f7272bb1374bf3af193ea1d1845b27fd']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:10Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"md5\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de5be-97cc-48d7-b0df-432102de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"first_observed": "2016-04-25T09:39:10Z",
"last_observed": "2016-04-25T09:39:10Z",
"number_observed": 1,
"object_refs": [
"url--571de5be-97cc-48d7-b0df-432102de0b81"
],
"labels": [
"misp:type=\"link\"",
"misp:category=\"External analysis\""
]
},
{
"type": "url",
"spec_version": "2.1",
"id": "url--571de5be-97cc-48d7-b0df-432102de0b81",
"value": "https://www.virustotal.com/file/b07b37f0246bd436addbe5d702b12485d7bc8a9ef1475b54bff513a18e68fef7/analysis/1461049792/"
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5be-8280-488c-a1bf-437502de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"description": "nroff_b.exe - Xchecked via VT: 70bf16597e375ad691f2c1efa194dbe7f60e4eeb",
"pattern": "[file:hashes.SHA256 = '5b7c970fee7ebe08d50665f278d47d0e34c04acc19a91838de6a3fc63a8e5630']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:10Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha256\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5be-f358-4523-b8ee-41a202de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"description": "nroff_b.exe - Xchecked via VT: 70bf16597e375ad691f2c1efa194dbe7f60e4eeb",
"pattern": "[file:hashes.MD5 = '1d0e79feb6d7ed23eb1bf7f257ce4fee']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:10Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"md5\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de5be-941c-4514-b651-4a9202de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:10.000Z",
"modified": "2016-04-25T09:39:10.000Z",
"first_observed": "2016-04-25T09:39:10Z",
"last_observed": "2016-04-25T09:39:10Z",
"number_observed": 1,
"object_refs": [
"url--571de5be-941c-4514-b651-4a9202de0b81"
],
"labels": [
"misp:type=\"link\"",
"misp:category=\"External analysis\""
]
},
{
"type": "url",
"spec_version": "2.1",
"id": "url--571de5be-941c-4514-b651-4a9202de0b81",
"value": "https://www.virustotal.com/file/5b7c970fee7ebe08d50665f278d47d0e34c04acc19a91838de6a3fc63a8e5630/analysis/1460698377/"
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5bf-ad68-4e97-8c1b-412702de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"description": "evtsys.exe - Xchecked via VT: 76bab478dcc70f979ce62cd306e9ba50ee84e37e",
"pattern": "[file:hashes.SHA256 = 'ae086350239380f56470c19d6a200f7d251c7422c7bc5ce74730ee8bab8e6283']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:11Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha256\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5bf-064c-4a4c-a302-4bdf02de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"description": "evtsys.exe - Xchecked via VT: 76bab478dcc70f979ce62cd306e9ba50ee84e37e",
"pattern": "[file:hashes.MD5 = '5d0ffbc8389f27b0649696f0ef5b3cfe']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:11Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"md5\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de5bf-0df4-421c-bb52-4f7c02de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"first_observed": "2016-04-25T09:39:11Z",
"last_observed": "2016-04-25T09:39:11Z",
"number_observed": 1,
"object_refs": [
"url--571de5bf-0df4-421c-bb52-4f7c02de0b81"
],
"labels": [
"misp:type=\"link\"",
"misp:category=\"External analysis\""
]
},
{
"type": "url",
"spec_version": "2.1",
"id": "url--571de5bf-0df4-421c-bb52-4f7c02de0b81",
"value": "https://www.virustotal.com/file/ae086350239380f56470c19d6a200f7d251c7422c7bc5ce74730ee8bab8e6283/analysis/1461067332/"
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5bf-f638-4ae5-820f-473002de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"description": "evtdiag.exe - Xchecked via VT: 525a8e3ae4e3df8c9c61f2a49e38541d196e9228",
"pattern": "[file:hashes.SHA256 = '4659dadbf5b07c8c3c36ae941f71b631737631bc3fded2fe2af250ceba98959a']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:11Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"sha256\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5bf-0b34-45ba-b14c-44fd02de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"description": "evtdiag.exe - Xchecked via VT: 525a8e3ae4e3df8c9c61f2a49e38541d196e9228",
"pattern": "[file:hashes.MD5 = '24d76abbc0a10e4c977a28b33c879248']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:11Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Payload delivery"
}
],
"labels": [
"misp:type=\"md5\"",
"misp:category=\"Payload delivery\"",
"misp:to_ids=\"True\""
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de5bf-b9bc-48f8-9821-478602de0b81",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:11.000Z",
"modified": "2016-04-25T09:39:11.000Z",
"first_observed": "2016-04-25T09:39:11Z",
"last_observed": "2016-04-25T09:39:11Z",
"number_observed": 1,
"object_refs": [
"url--571de5bf-b9bc-48f8-9821-478602de0b81"
],
"labels": [
"misp:type=\"link\"",
"misp:category=\"External analysis\""
]
},
{
"type": "url",
"spec_version": "2.1",
"id": "url--571de5bf-b9bc-48f8-9821-478602de0b81",
"value": "https://www.virustotal.com/file/4659dadbf5b07c8c3c36ae941f71b631737631bc3fded2fe2af250ceba98959a/analysis/1461049613/"
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de5ef-8fa8-4d8e-a3e1-4c79950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:39:59.000Z",
"modified": "2016-04-25T09:39:59.000Z",
"description": "The configuration file contains a list of transaction IDs, some additional environment information, and the following IP address to be used for command-and-control (C&C):",
"pattern": "[network-traffic:dst_ref.type = 'ipv4-addr' AND network-traffic:dst_ref.value = '196.202.103.174']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-04-25T09:39:59Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Network activity"
}
],
"labels": [
"misp:type=\"ip-dst\"",
"misp:category=\"Network activity\"",
"misp:to_ids=\"True\""
]
},
{
"type": "indicator",
"spec_version": "2.1",
"id": "indicator--571de60d-6454-4aa4-b4e7-4352950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-05-17T16:17:00.000Z",
"modified": "2016-05-17T16:17:00.000Z",
"pattern": "[file:name = '\\\\Users\\\\Administrator\\\\AppData\\\\Local\\\\Allians\\\\gpca.dat']",
"pattern_type": "stix",
"pattern_version": "2.1",
"valid_from": "2016-05-17T16:17:00Z",
"kill_chain_phases": [
{
"kill_chain_name": "misp-category",
"phase_name": "Artifacts dropped"
}
],
"labels": [
"misp:type=\"filename\"",
"misp:category=\"Artifacts dropped\"",
"misp:to_ids=\"True\""
]
},
{
"type": "observed-data",
"spec_version": "2.1",
"id": "observed-data--571de6a3-4548-4238-8b4d-4396950d210f",
"created_by_ref": "identity--55f6ea5e-2c60-40e5-964f-47a8950d210f",
"created": "2016-04-25T09:42:59.000Z",
"modified": "2016-04-25T09:42:59.000Z",
"first_observed": "2016-04-25T09:42:59Z",
"last_observed": "2016-04-25T09:42:59Z",
"number_observed": 1,
"object_refs": [
"file--571de6a3-4548-4238-8b4d-4396950d210f",
"artifact--571de6a3-4548-4238-8b4d-4396950d210f"
],
"labels": [
"misp:type=\"attachment\"",
"misp:category=\"External analysis\""
]
},
{
"type": "file",
"spec_version": "2.1",
"id": "file--571de6a3-4548-4238-8b4d-4396950d210f",
"name": "http://baesystemsai.blogspot.lu/2016/04/two-bytes-to-951m.html",
"content_ref": "artifact--571de6a3-4548-4238-8b4d-4396950d210f"
},
{
"type": "artifact",
"spec_version": "2.1",
"id": "artifact--571de6a3-4548-4238-8b4d-4396950d210f",
"payload_bin": "PCFET0NUWVBFIGh0bWw+CjxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyB4bWxuczpiPSdodHRwOi8vd3d3Lmdvb2dsZS5jb20vMjAwNS9nbWwvYicgeG1sbnM6ZGF0YT0naHR0cDovL3d3dy5nb29nbGUuY29tLzIwMDUvZ21sL2RhdGEnIHhtbG5zOmV4cHI9J2h0dHA6Ly93d3cuZ29vZ2xlLmNvbS8yMDA1L2dtbC9leHByJz4KPGhlYWQ+CjxsaW5rIGhyZWY9J2h0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2Fuczo3MDAsNDAwLDMwMHxWaWdhfFBUK1NlcmlmOjQwMCw3MDAsNDAwaXRhbGljLDcwMGl0YWxpYycgcmVsPSdzdHlsZXNoZWV0Jy8+CjxsaW5rIGhyZWY9J2h0dHA6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9zd2FsZDo0MDAsNzAwLDMwMCcgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycvPgo8bWV0YSBjaGFyc2V0PSd1dGYtOCcvPgo8bWV0YSBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wJyBuYW1lPSd2aWV3cG9ydCcvPgo8bWV0YSBjb250ZW50PSdJRT1lZGdlLGNocm9tZT0xJyBodHRwLWVxdWl2PSdYLVVBLUNvbXBhdGlibGUnLz4KPG1ldGEgY29udGVudD0ndGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnLz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbigpIHsgKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYyhhKXt0aGlzLnQ9e307dGhpcy50aWNrPWZ1bmN0aW9uKGEsYyxiKXt2YXIgZD12b2lkIDAhPWI/YjoobmV3IERhdGUpLmdldFRpbWUoKTt0aGlzLnRbYV09W2QsY107aWYodm9pZCAwPT1iKXRyeXt3aW5kb3cuY29uc29sZS50aW1lU3RhbXAoIkNTSS8iK2EpfWNhdGNoKGUpe319O3RoaXMudGljaygic3RhcnQiLG51bGwsYSl9dmFyIGE7d2luZG93LnBlcmZvcm1hbmNlJiYoYT13aW5kb3cucGVyZm9ybWFuY2UudGltaW5nKTt2YXIgaD1hP25ldyBjKGEucmVzcG9uc2VTdGFydCk6bmV3IGM7d2luZG93LmpzdGltaW5nPXtUaW1lcjpjLGxvYWQ6aH07aWYoYSl7dmFyIGI9YS5uYXZpZ2F0aW9uU3RhcnQsZT1hLnJlc3BvbnNlU3RhcnQ7MDxiJiZlPj1iJiYod2luZG93LmpzdGltaW5nLnNydD1lLWIpfWlmKGEpe3ZhciBkPXdpbmRvdy5qc3RpbWluZy5sb2FkOzA8YiYmZT49YiYmKGQudGljaygiX3d0c3J0Iix2b2lkIDAsYiksZC50aWNrKCJ3dHNydF8iLAoiX3d0c3J0IixlKSxkLnRpY2soInRic2RfIiwid3RzcnRfIikpfXRyeXthPW51bGwsd2luZG93LmNocm9tZSYmd2luZG93LmNocm9tZS5jc2kmJihhPU1hdGguZmxvb3Iod2luZG93LmNocm9tZS5jc2koKS5wYWdlVCksZCYmMDxiJiYoZC50aWNrKCJfdGJuZCIsdm9pZCAwLHdpbmRvdy5jaHJvbWUuY3NpKCkuc3RhcnRFKSxkLnRpY2soInRibmRfIiwiX3RibmQiLGIpKSksbnVsbD09YSYmd2luZG93Lmd0YkV4dGVybmFsJiYoYT13aW5kb3cuZ3RiRXh0ZXJuYWwucGFnZVQoKSksbnVsbD09YSYmd2luZG93LmV4dGVybmFsJiYoYT13aW5kb3cuZXh0ZXJuYWwucGFnZVQsZCYmMDxiJiYoZC50aWNrKCJfdGJuZCIsdm9pZCAwLHdpbmRvdy5leHRlcm5hbC5zdGFydEUpLGQudGljaygidGJuZF8iLCJfdGJuZCIsYikpKSxhJiYod2luZG93LmpzdGltaW5nLnB0PWEpfWNhdGNoKGspe319KSgpO3dpbmRvdy50aWNrQWJvdmVGb2xkPWZ1bmN0aW9uKGMpe3ZhciBhPTA7aWYoYy5vZmZzZXRQYXJlbnQpe2RvIGErPWMub2Zmc2V0VG9wO3doaWxlKGM9Yy5vZmZzZXRQYXJlbnQpfWM9YTs3NTA+PWMmJndpbmRvdy5qc3RpbWluZy5sb2FkLnRpY2soImFmdCIpfTt2YXIgZj0hMTtmdW5jdGlvbiBnKCl7Znx8KGY9ITAsd2luZG93LmpzdGltaW5nLmxvYWQudGljaygiZmlyc3RTY3JvbGxUaW1lIikpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyP3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGcsITEpOndpbmRvdy5hdHRhY2hFdmVudCgib25zY3JvbGwiLGcpOwogfSkoKTs8L3NjcmlwdD4KPG1ldGEgY29udGVudD0nYmxvZ2dlcicgbmFtZT0nZ2VuZXJhdG9yJy8+CjxsaW5rIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzL2Zhdmljb24uaWNvJyByZWw9J2ljb24nIHR5cGU9J2ltYWdlL3gtaWNvbicvPgo8bGluayBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS8yMDE2LzA0L3R3by1ieXRlcy10by05NTFtLmh0bWwnIHJlbD0nY2Fub25pY2FsJy8+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgdGl0bGU9IkJBRSBTeXN0ZW1zIFRocmVhdCBSZXNlYXJjaCBCbG9nIC0gQXRvbSIgaHJlZj0iaHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vZmVlZHMvcG9zdHMvZGVmYXVsdCIgLz4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRpdGxlPSJCQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZyAtIFJTUyIgaHJlZj0iaHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vZmVlZHMvcG9zdHMvZGVmYXVsdD9hbHQ9cnNzIiAvPgo8bGluayByZWw9InNlcnZpY2UucG9zdCIgdHlwZT0iYXBwbGljYXRpb24vYXRvbSt4bWwiIHRpdGxlPSJCQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZyAtIEF0b20iIGhyZWY9Imh0dHBzOi8vd3d3LmJsb2dnZXIuY29tL2ZlZWRzLzczNDU1MTUwODU4Mzg0MjI3OTkvcG9zdHMvZGVmYXVsdCIgLz4KCjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgdGl0bGU9IkJBRSBTeXN0ZW1zIFRocmVhdCBSZXNlYXJjaCBCbG9nIC0gQXRvbSIgaHJlZj0iaHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vZmVlZHMvMzU1NDQ2MDU2MzYwMTY4ODk4L2NvbW1lbnRzL2RlZmF1bHQiIC8+CjxsaW5rIGhyZWY9J2h0dHBzOi8vMi5icC5ibG9nc3BvdC5jb20vLWtKZzhvN2xZSHp3L1Z4aE1sMXFCQ3JJL0FBQUFBQUFBQWZBL24tVXVySUk4cTJFeXlhVWxZTXd2Z05qVmRXQTRpSzdPZ0NMY0IvczY0MC9zY2hlbWUxLnBuZycgcmVsPSdpbWFnZV9zcmMnLz4KPG1ldGEgY29udGVudD0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vMjAxNi8wNC90d28tYnl0ZXMtdG8tOTUxbS5odG1sJyBwcm9wZXJ0eT0nb2c6dXJsJy8+CjxtZXRhIGNvbnRlbnQ9J2h0dHBzOi8vMi5icC5ibG9nc3BvdC5jb20vLWtKZzhvN2xZSHp3L1Z4aE1sMXFCQ3JJL0FBQUFBQUFBQWZBL24tVXVySUk4cTJFeXlhVWxZTXd2Z05qVmRXQTRpSzdPZ0NMY0IvdzEyMDAtaDYzMC1wLW51L3NjaGVtZTEucG5nJyBwcm9wZXJ0eT0nb2c6aW1hZ2UnLz4KPCEtLVtpZiBJRV0+IDxzY3JpcHQ+IChmdW5jdGlvbigpIHsgdmFyIGh0bWw1ID0gKCJhYmJyLGFydGljbGUsYXNpZGUsYXVkaW8sY2FudmFzLGRhdGFsaXN0LGRldGFpbHMsIiArICJmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFyayxtZW51LG1ldGVyLG5hdixvdXRwdXQsIiArICJwcm9ncmVzcyxzZWN0aW9uLHRpbWUsdmlkZW8iKS5zcGxpdCgnLCcpOyBmb3IgKHZhciBpID0gMDsgaSA8IGh0bWw1Lmxlbmd0aDsgaSsrKSB7IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaHRtbDVbaV0pOyB9IHRyeSB7IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdCYWNrZ3JvdW5kSW1hZ2VDYWNoZScsIGZhbHNlLCB0cnVlKTsgfSBjYXRjaChlKSB7fSB9KSgpOyA8L3NjcmlwdD4gPCFbZW5kaWZdLS0+Cjx0aXRsZT5CQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZzogVHdvIGJ5dGVzIHRvICQ5NTFtPC90aXRsZT4KPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0naHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vc3RhdGljL3YxL3dpZGdldHMvMzY0NTkxMTI3Ni13aWRnZXRfY3NzX2J1bmRsZS5jc3MnIC8+CjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy8vd3d3Lmdvb2dsZS5jb20vdWRzL2Nzcy9nc2VhcmNoLmNzcycgLz4KPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0naHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vZHluLWNzcy9hdXRob3JpemF0aW9uLmNzcz90YXJnZXRCbG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ6eD1jODg1ZGM4MC1jNjZiLTQ3NTgtOGViMS1jZDhmYTk1YmRhYTgnIC8+CjxzdHlsZSBpZD0ncGFnZS1za2luLTEnIHR5cGU9J3RleHQvY3NzJz48IS0tCi8qCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClZhcmlhYmxlIEAgVGVtcGxhdGUgRGVzaWduZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPFZhcmlhYmxlIG5hbWU9ImtleWNvbG9yIiBkZXNjcmlwdGlvbj0iTWFpbiBDb2xvciIgdHlwZT0iY29sb3IiIGRlZmF1bHQ9IiM2NmJiZGQiLz4KPFZhcmlhYmxlIG5hbWU9ImJvZHkuYmFja2dyb3VuZCIgZGVzY3JpcHRpb249IkJvZHkgQmFja2dyb3VuZCIgdHlwZT0iYmFja2dyb3VuZCIKY29sb3I9InRyYW5zcGFyZW50IiBkZWZhdWx0PSIkKGNvbG9yKSBub25lIHJlcGVhdCBzY3JvbGwgdG9wIGxlZnQiLz4KPEdyb3VwIGRlc2NyaXB0aW9uPSJCb2R5IiBzZWxlY3Rvcj0iYm9keSI+CjxWYXJpYWJsZSBuYW1lPSJib2R5LmZvbnQiIGRlc2NyaXB0aW9uPSJGb250IiB0eXBlPSJmb250IgpkZWZhdWx0PSJub3JtYWwgbm9ybWFsIDE2cHgvMS43ZW0gJ1BUIFNlcmlmJywgR2VvcmdpYSwgU2VyaWYiLz4KPFZhcmlhYmxlIG5hbWU9ImJvZHkudGV4dC5jb2xvciIgZGVzY3JpcHRpb249IlRleHQgQ29sb3IiIHR5cGU9ImNvbG9yIiBkZWZhdWx0PSIjNTU1Ii8+CjxWYXJpYWJsZSBuYW1lPSJib2R5LmxpbmsuY29sb3IiIGRlc2NyaXB0aW9uPSJMaW5rIENvbG9yIiB0eXBlPSJjb2xvciIgZGVmYXVsdD0iIzc1OGVlMiIvPgo8L0dyb3VwPgo8R3JvdXAgZGVzY3JpcHRpb249IkhlYWRpbmciIHNlbGVjdG9yPSIucG9zdCBoMywgLndpZGdldCBoMiI+CjxWYXJpYWJsZSBuYW1lPSJoZWFkaW5nLmZvbnQiIGRlc2NyaXB0aW9uPSJUaXRsZSBGb250IiB0eXBlPSJmb250IgpkZWZhdWx0PSJub3JtYWwgbm9ybWFsIDE0cHgvMS44ZW0gJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwiLz4KPFZhcmlhYmxlIG5hbWU9ImhlYWRpbmcuY29sb3IiIGRlc2NyaXB0aW9uPSJUaXRsZSBDb2xvciIgdHlwZT0iY29sb3IiIGRlZmF1bHQ9IiMyMjIyMjIiLz4KPC9Hcm91cD4KPEdyb3VwIGRlc2NyaXB0aW9uPSJFbGVtZW50IiBzZWxlY3Rvcj0iLnBvc3QgaDMsIC53aWRnZXQgaDIiPgo8VmFyaWFibGUgbmFtZT0icG9zdC50aXRsZS5mb250IiBkZXNjcmlwdGlvbj0iUG9zdCBUaXRsZSBGb250IiB0eXBlPSJmb250IgpkZWZhdWx0PSJub3JtYWwgbm9ybWFsIDQ4cHgvMWVtICdWaWdhJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCIvPgo8VmFyaWFibGUgbmFtZT0id2lkZ2V0LnRpdGxlLmZvbnQiIGRlc2NyaXB0aW9uPSJXaWRnZXQgVGl0bGUgRm9udCIgdHlwZT0iZm9udCIKZGVmYXVsdD0ibm9ybWFsIG5vcm1hbCAxNnB4LzEuOGVtICdPcGVuIFNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsIi8+CjxWYXJpYWJsZSBuYW1lPSJicmFuZGluZy5mb250IiBkZXNjcmlwdGlvbj0iVGFnbGluZSBGb250IiB0eXBlPSJmb250IgpkZWZhdWx0PSIzMDAgbm9ybWFsIDQ4cHgvMS4yZW0gJ09wZW4gU2FucycsIEhlbHZldGljYSwgQXJpYWwiLz4KPC9Hcm91cD4KPEdyb3VwIGRlc2NyaXB0aW9uPSJBZGRpdGlvbmFsIiBzZWxlY3Rvcj0iLm5hdmlnYXRpb24iPgo8VmFyaWFibGUgbmFtZT0ibmF2aWdhdGlvbi5mb250IiBkZXNjcmlwdGlvbj0iTmF2aWdhdGlvbiBGb250IiB0eXBlPSJmb250IgpkZWZhdWx0PSJib2xkIG5vcm1hbCAxM3B4LzEuNmVtICdPcGVuIHNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsIi8+CjxWYXJpYWJsZSBuYW1lPSJzY2hlbWUuY29sb3IiIGRlc2NyaXB0aW9uPSJTY2hlbWUgQ29sb3IiIHR5cGU9ImNvbG9yIiBkZWZhdWx0PSIjN2M5OGU0Ii8+CjwvR3JvdXA+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjAwLiBUYWJsZSBvZiBDb250ZW50Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjAxLiBSZXNldCBDU1MKMDIuIEdsb2JhbAoqIGZvbnQtZmFtaWx5OiBQVCBTZXJpZiwgT3BlbiBTYW5zLCBTYW5zLXNlcmlmOwoqIGZvbnQtc2l6ZTogMTZweDsKMDMuIEhlYWRlcgotIExvZ28KLSBOYXZpZ2F0aW9uCjA0LiBUYWdsaW5lCjA1LiBTbGlkZXRvZ2dsZQowNi4gTWFpbgotIFByaW1hcnkgQ29udGVudAotIEJsb2cgcGFnZXIKLSBDb21tZW50cwowNy4gU2lkZWJhcgowOC4gV2lkZ2V0cwotIEZsaWNrcgotIFBvcHVsYXIgcG9zdHMKLSBTZWFyY2gKMDkuIEZvb3RlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQowMS4gUmVzZXQgQ1NTCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmJvZHksIGh0bWwgIHsgaGVpZ2h0OiAxMDAlfQpodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsCmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwKYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLApkZWwsIGRmbiwgZW0sIGZvbnQsIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsCnNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsCmIsIHUsIGksIGNlbnRlciwKZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwKZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsCnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkIHsKbWFyZ2luOiAwOwpwYWRkaW5nOiAwOwpib3JkZXI6IDA7Cm91dGxpbmU6IDA7CmZvbnQtc2l6ZTogMTAwJTsKdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwp9CmJvZHkgeyBsaW5lLWhlaWdodDogMX0Kb2wsIHVsIHsgbGlzdC1zdHlsZTogbm9uZX0KYmxvY2txdW90ZSwgcSB7IHF1b3Rlczogbm9uZX0KYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIsIHE6YmVmb3JlLCBxOmFmdGVyIHsgY29udGVudDogJyc7IGNvbnRlbnQ6IG5vbmV9Cjpmb2N1cyB7IG91dGxpbmU6IDB9CmRlbCB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdofQp0YWJsZSB7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwfQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQowMi4gR2xvYmFsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmJvZHkgewpjb2xvcjogIzU1NTU1NTsKZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwp9Ci5jb250YWluZXIgewpiYWNrZ3JvdW5kOiAjZmZmOwp9Ci5jb250ZW50LXdyYXBwZXIgewpiYWNrZ3JvdW5kOiAjZmZmOwp3aWR0aDogMTAyMHB4OwptYXJnaW46IDAgYXV0bzsKcGFkZGluZzogMjBweCAwIDUwcHg7Cn0KLyoKKiBTaG9ydGNvZGUKKi8KLmxlZnQgewpmbG9hdDpsZWZ0Cn0KLnJpZ2h0IHsKZmxvYXQ6cmlnaHQKfQouY2VudGVyIHsKdGV4dC1hbGlnbjpjZW50ZXIKfQouY2xlYXIgewpjbGVhcjpib3RoCn0KdWw6YWZ0ZXIgewp2aXNpYmlsaXR5OiBoaWRkZW47CmRpc3BsYXk6IGJsb2NrOwpoZWlnaHQ6IDA7CmNsZWFyOiBib3RoOwp9CnByZSB7CnBhZGRpbmc6MTBweDsKbWFyZ2luOjIwcHggMDsKYm9yZGVyOjFweCBzb2xpZCAjZGRkOwpiYWNrZ3JvdW5kOiNlOGU4ZTg7Cm92ZXJmbG93OmF1dG87Cn0KcHJlIGJyewpkaXNwbGF5Om5vbmU7Cn0KY29kZSB7CmZvbnQ6MWVtLzEuMmVtICdjb3VyaWVyIG5ldycsIGNvdXJpZXIsIG1vbm9zcGFjZTsKfQphOmxpbmsgewpjb2xvcjogIzMzMzsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CmE6dmlzaXRlZCwKYTpob3ZlciB7CmNvbG9yOiAjMzMzOwp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQpoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsKZm9udC1mYW1pbHk6ICdPc3dhbGQnLCBzYW5zLXNlcmlmOwpmb250LXdlaWdodDogNzAwOwp9Ci8qCiogQnV0dG9uCiovCi5idXR0b24gewpmb250OiBib2xkIG5vcm1hbCAxM3B4LzEuNmVtICdPcGVuIHNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsOwp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwpiYWNrZ3JvdW5kLWNvbG9yOiAjNzU4ZWUyOwpwYWRkaW5nOiA3cHggMTVweDsKdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CmJvcmRlci1yYWRpdXM6IDJweDsKb3ZlcmZsb3c6IGhpZGRlbjsKY3Vyc29yOiBwb2ludGVyOwpkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CmNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMDMuIEhlYWRlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoub3V0ZXItaGVhZGVyIHsKYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIHJnYigyNTIsNzYsMik7CndpZHRoOiAxMDAlOwp9Ci5oZWFkZXItd3JhcHBlciB7CmJhY2tncm91bmQ6ICNmZmY7CndpZHRoOiAxMDIwcHg7Cm1hcmdpbjogMCBhdXRvOwpwYWRkaW5nOiAzMHB4IDAgMDsKY2xlYXI6IGJvdGg7Cn0KLmhlYWRlciBoMSB7CmNvbG9yOiAjMzMzOwpmb250LWZhbWlseTogJ09zd2FsZCcsIHNhbnMtc2VyaWY7CmZvbnQtc2l6ZTogMjJweDsKZm9udC13ZWlnaHQ6IDcwMDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouaGVhZGVyIC5kZXNjcmlwdGlvbiB7CmZvbnQtc2l6ZTogMTBweDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQojaGVhZGVyIHsKbWFyZ2luLWJvdHRvbTogMTZweDsKfQoudG9wLW1lbnUgewpmbG9hdDogcmlnaHQ7Cn0KLnRvcC1tZW51IGxpIHsKZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci50b3AtbWVudSBhIHsKY29sb3I6ICMzYTNhM2E7CmZvbnQtc2l6ZTogMTJweDsKcGFkZGluZzogMCA1cHg7Cn0KLyoKKiBOYXZpZ2F0aW9uCiovCi5uYXZpZ2F0aW9uIHsKd2lkdGg6IDEwMCU7Cn0KLm5hdmlnYXRpb24gaDIgewpkaXNwbGF5OiBub25lOwp9Ci5uYXZpZ2F0aW9uIHVsIHsKZmxvYXQ6IGxlZnQ7Cn0KLm5hdmlnYXRpb24gdWwgbGkgewpkaXNwbGF5OiBpbmxpbmU7CmZsb2F0OiBsZWZ0Owp9Ci5uYXZpZ2F0aW9uIHVsIGxpIGEgewpkaXNwbGF5OiBibG9jazsKZm9udDogMTZweC8xLjYgQXJpYWwsIHNhbnMtc2VyaWY7CmNvbG9yOiAjMjIyOwpwYWRkaW5nOiAxMHB4IDE2cHg7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoubmF2aWdhdGlvbiBsaS5zZWxlY3RlZCBhLAoubmF2aWdhdGlvbiB1bCBsaSBhOmhvdmVyIHsKYmFja2dyb3VuZDogcmdiKDI1Miw3NiwyKTsKY29sb3I6ICNmZmY7Cn0KLlBhZ2VMaXN0IExJLnNlbGVjdGVkIEEgewpmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7Cn0KLlBhZ2VMaXN0IHsKZmxvYXQ6IGxlZnQ7CndpZHRoOiBhdXRvOwp9Ci5DdXN0b21TZWFyY2ggewpmbG9hdDogbGVmdDsKaGVpZ2h0OiA0NXB4OwpsaW5lLWhlaWdodDogNDVweDsKbWFyZ2luLWxlZnQ6IDElOwp3aWR0aDogMjIlOwp9CmlucHV0LmdzYy1pbnB1dCB7CmJvcmRlci1yYWRpdXM6IDJweDsKcGFkZGluZzogOHB4IDZweCAhaW1wb3J0YW50Owp3aWR0aDogOTQlICFpbXBvcnRhbnQ7Cn0KaW5wdXQuZ3NjLXNlYXJjaC1idXR0b24gewpiYWNrZ3JvdW5kOiAjMzMzOwpib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKY29sb3I6ICNmYWZhZmE7CmZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjsKZm9udC1zaXplOiAxM3B4Owpmb250LXdlaWdodDogNzAwOwptYXJnaW4tdG9wOiA2cHg7Cm1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7Cm91dGxpbmU6IG5vbmU7CnBhZGRpbmc6IDhweCAxNHB4Owp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwotd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CmJvcmRlci1yYWRpdXM6IDA7Cn0KaW5wdXQuZ3NjLXNlYXJjaC1idXR0b246aG92ZXIgewpiYWNrZ3JvdW5kOiByZ2IoMjUyLDc2LDIpOwp9CmRpdiNCbG9nQXJjaGl2ZTEgewpkaXNwbGF5OiBub25lOwp9CnRhYmxlLmdzYy1zZWFyY2gtYm94IHRkLmdzYy1pbnB1dCB7CnBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsKfQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQowNC4gVGFnbGluZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwouYnJhbmRpbmcgewpwb3NpdGlvbjogcmVsYXRpdmU7CndpZHRoOiAxMDAlOwp9Ci5icmFuZGluZy13cmFwIHsKd2lkdGg6IDEwMjBweDsKbWFyZ2luOiBhdXRvOwpwb3NpdGlvbjogYWJzb2x1dGU7CnRvcDogMDsKcmlnaHQ6IDA7CmxlZnQ6IDA7Cn0KLmJyYW5kaW5nIC5zaWRlYmFyIHsKcGFkZGluZzogMCAhaW1wb3J0YW50OwptYXJnaW46IDA7CnRleHQtYWxpZ246IGNlbnRlcjsKY29sb3I6ICNmZmY7CmZvbnQ6IDMwMCBub3JtYWwgNDhweC8xLjJlbSAnT3BlbiBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbDsKfQouYnJhbmRpbmcgLnNpZGViYXIgLmJ1dHRvbiB7CmJhY2tncm91bmQ6IHRyYW5zcGFyZW50Owpib3JkZXI6IDJweCBzb2xpZCAjZmZmOwp9Ci5icmFuZGluZyAuc2lkZWJhciAud2lkZ2V0IHsKbWFyZ2luOiAwOwpwYWRkaW5nOiAwOwp9Ci5iYW5uZXItdGV4dCB7CmJvcmRlci1sZWZ0OiA3cHggc29saWQgIzMzMzsKZmxvYXQ6IGxlZnQ7Cm1hcmdpbi10b3A6IDIwcHg7CnBhZGRpbmc6IDRweCAwOwp3aWR0aDogNTIwcHg7Cn0KLmJhbm5lci10ZXh0IC53aWRnZXQtY29udGVudCBzcGFuOmZpcnN0LW9mLXR5cGUsCi5iYW5uZXItdGV4dCAud2lkZ2V0LWNvbnRlbnQgYSwKLmJhbm5lci10ZXh0IC53aWRnZXQtY29udGVudCBwIHsKYmFja2dyb3VuZDogIzMzMyAhaW1wb3J0YW50Owpjb2xvcjogI2ZmZiAhaW1wb3J0YW50Owpmb250LWZhbWlseTogJ09zd2FsZCcsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKZm9udC1zaXplOiAzNnB4ICFpbXBvcnRhbnQ7CmZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsKbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50OwpwYWRkaW5nOiAwIDhweCAwIDAgIWltcG9ydGFudDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50Owp3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDsKfQouYmFubmVyLWxvZ28gewpmbG9hdDogcmlnaHQ7Cm1hcmdpbi10b3A6IDIwcHg7Cn0KZGl2I0ltYWdlMSAud2lkZ2V0LWNvbnRlbnQgaW1nIHsKbWluLWhlaWdodDogMTkwcHg7Cm1heC1oZWlnaHQ6IDMwMHB4Owp9CmRpdiNJbWFnZTIgewptYXJnaW46IGF1dG87CndpZHRoOiAxMDIwcHg7Cn0KZGl2I0ltYWdlMiAud2lkZ2V0LWNvbnRlbnQgewpwb3NpdGlvbjogYWJzb2x1dGU7CnRvcDogMjJweDsKcmlnaHQ6IDIyJTsKfQpkaXYjSW1hZ2UyIC53aWRnZXQtY29udGVudCBpbWcgewp3aWR0aDogMjEwcHg7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMDUuIFNsaWRldG9nZ2xlICN0aGVHcmlkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi5zbGlkZXRvZ2dsZSB7CnBhZGRpbmc6IDQwcHggMDsKYmFja2dyb3VuZDogIzQ0NDsKY29sb3I6ICNhYWE7CnRleHQtYWxpZ246IGNlbnRlcjsKZGlzcGxheTogbm9uZTsKfQouc2xpZGVzIHsKd2lkdGg6IDEwMjBweDsKbWFyZ2luOiAwIGF1dG87CmJhY2tncm91bmQ6IHVybChodHRwOi8vMy5icC5ibG9nc3BvdC5jb20vLUZGbXgwRk1rWDhNL1VmWFRUdDVHX2lJL0FBQUFBQUFBQ1NzL3ZKN1lqVnRyX1lRL3MxNjAwL2JvcmRlcl9zbGlkZXMucG5nKSByZXBlYXQteSBjZW50ZXIgY2VudGVyOwp9Ci5zbGlkZXMgLmdyaWQgewp3aWR0aDogMzQwcHg7CnBhZGRpbmc6IDA7Cn0KLnNsaWRlcyAuZ3JpZCAud2lkZ2V0IHsKcGFkZGluZzogMCAyMHB4OwpiYWNrZ3JvdW5kOiBub25lOwptYXJnaW4tYm90dG9tOiAwOwp9Ci5zbGlkZXMgLmdyaWQgLndpZGdldCBoMiB7CmJhY2tncm91bmQ6IG5vbmU7CmNvbG9yOiAjYmJiOwp9Ci5ncmlkIGEsCi5ncmlkIGE6dmlzaXRlZCB7CmNvbG9yOiAjZjJmMmYyOwp9Ci5ncmlkIGE6aG92ZXIgewpjb2xvcjogI2ZmZjsKdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMDYuIE1haW4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLm1haW4td3JhcHBlciB7CndpZHRoOiA3MDBweDsKfQovKgoqIFByaW1hcnkgY29udGVudAoqLwoucG9zdC1vdXRlciB7CnBhZGRpbmctYm90dG9tOiA1MHB4Owpib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsKbWFyZ2luOiAwIDEwcHggIWltcG9ydGFudDsKdGV4dC1hbGlnbjogaW5oZXJpdCAhaW1wb3J0YW50Owp9Ci5wb3N0IGgzLmVudHJ5LXRpdGxlIGEsIC5wb3N0IGgzLmVudHJ5LXRpdGxlIHsKY29sb3I6ICM0NDQ7Cm1hcmdpbjogMTBweCAwIDMwcHggMDsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwpmb250LWZhbWlseTogJ09zd2FsZCcsIHNhbnMtc2VyaWY7CmZvbnQtc2l6ZTogMjRweDsKZm9udC13ZWlnaHQ6IDcwMDsKbGluZS1oZWlnaHQ6IDEuNTsKfQoucG9zdC1ib2R5IHsKZm9udC1zaXplOiAxNXB4OwpsaW5lLWhlaWdodDogMS41ZW07CmZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsKfQoucG9zdC1ib2R5IGltZywKLnBvc3QtYm9keSBpZnJhbWUgewptYXgtd2lkdGg6IDEwMCU7CmhlaWdodDogYXV0bzsKbWFyZ2luLXRvcDogLTVweDsKbWFyaWduLWJvdHRvbTogMTBweDsKfQoucG9zdC1ib2R5IGgxLAoucG9zdC1ib2R5IGgyLAoucG9zdC1ib2R5IGgzLAoucG9zdC1ib2R5IGg0LAoucG9zdC1ib2R5IGg1LAoucG9zdC1ib2R5IGg2IHsKbWFyZ2luLXRvcDogMjBweDsKbWFyZ2luLWJvdHRvbTogMjBweApmb250LXNpemU6IDQ4cHg7CmxpbmUtaGVpZ2h0OiAxLjJlbTsKZm9udC13ZWlnaHQ6IG5vcm1hbDsKfQoucG9zdC1ib2R5IGgyIHsKZm9udC1zaXplOiAzN3B4Owp9Ci5wb3N0LWJvZHkgaDMgewpmb250LXNpemU6IDMycHg7CmxpbmUtaGVpZ2h0OiAxLjVlbTsKfQoucG9zdC1ib2R5IGg0IHsKZm9udC1zaXplOiAyN3B4OwpsaW5lLWhlaWdodDogMS42ZW07Cn0KLnBvc3QtYm9keSBoNSB7CmZvbnQtc2l6ZTogMjBweDsKbGluZS1oZWlnaHQ6IDEuOGVtOwp9Ci5wb3N0LWJvZHkgaDYgewpmb250LXNpemU6IDE4cHg7CmxpbmUtaGVpZ2h0OiAxLjhlbTsKfQoucG9zdC1ib2R5IGJsb2NrcXVvdGUgewpmb250LXN0eWxlOiBpdGFsaWM7CmxpbmUtaGVpZ2h0OiAxLjZlbTsKZm9udC1zaXplOiAyMnB4OwptYXJnaW46IDMwcHggMCAyMHB4IC0yMHB4OwpwYWRkaW5nLWxlZnQ6IDE1cHg7CmJvcmRlci1sZWZ0OiA1cHggc29saWQgIzc1OGVlMjsKfQoucG9zdC1ib2R5IGJsb2NrcXVvdGUgcCB7CnBhZGRpbmc6IDA7Cm1hcmdpbjogMDsKfQoucG9zdC1ib2R5IGE6bGluaywKLnBvc3QtYm9keSBhOnZpc2l0ZWQgewp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQoucG9zdC1oZWFkZXItbGluZS0wIHsKYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjYzFjMWMxOwpjb2xvcjogI2FhYTsKbWFyZ2luLWJvdHRvbTogMjBweDsKcGFkZGluZy10b3A6IDIwcHg7Cn0KLnBvc3QtaGVhZGVyLWxpbmUtMCBhIHsKY29sb3I6ICNhYWE7CnRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwp9Ci5wb3N0LWZvb3RlciB7CmZvbnQ6IG5vcm1hbCAxM3B4LzEuNmVtICdPcGVuIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsOwpjb2xvcjogI2FhYTsKbWFyZ2luLXRvcDogNDBweDsKfQouanVtcC1saW5rIGEgewpjb2xvcjogI2ZmZjsKZm9udDogYm9sZCBub3JtYWwgMTNweC8xLjZlbSAnT3BlbiBzYW5zJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKYmFja2dyb3VuZDogIzQ0NDsKcGFkZGluZzogMTBweCAyMHB4Owpib3JkZXItcmFkaXVzOiAycHg7Cn0KLmJyZWFkY3J1bWJzIHsKZm9udC1zaXplOiAxMnB4OwptYXJnaW4tYm90dG9tOiAyNHB4OwpwYWRkaW5nLWxlZnQ6IDEwcHg7Cn0KLmJyZWFkY3J1bWJzIGEgewp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50Owp9Ci8qCiogQmxvZyBwYWdlcgoqLwojYmxvZy1wYWdlciB7Cm1hcmdpbi10b3A6IDYwcHg7CmNsZWFyOiBib3RoOwp9CiNibG9nLXBhZ2VyIGEgewpmbG9hdDogbGVmdDsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwpjb2xvcjogI2ZmZjsKYmFja2dyb3VuZDogI2NjYzsKcGFkZGluZzogMTBweCAyMHB4Owp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwpmb250OiBib2xkIG5vcm1hbCAxM3B4LzEuNmVtICdPcGVuIHNhbnMnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsOwpib3JkZXItcmFkaXVzOiAycHg7Cn0KI2Jsb2ctcGFnZXIgYTpob3ZlciB7CmJhY2tncm91bmQ6IHJnYigyNTIsNzYsMikgdXJsKGh0dHA6Ly8yLmJwLmJsb2dzcG90LmNvbS8tVjAxMFJOSjF3N28vVWY0SWtGTmQ4akkvQUFBQUFBQUFDVDAvRlZsRFUtdEExOHcvczE2MDAvaWNvbl9ob21lLnBuZykgbm8tcmVwZWF0IGNlbnRlcjsKfQojYmxvZy1wYWdlciBzcGFuIHsKZmxvYXQ6IGxlZnQ7Cm1hcmdpbi1yaWdodDogNXB4Owp9CiNibG9nLXBhZ2VyIC5ob21lLWxpbmsgewptYXJnaW4tcmlnaHQ6IDVweDsKd2lkdGg6IDJweDsKdGV4dC1pbmRlbnQ6IC05MDBweDsKb3ZlcmZsb3c6IGhpZGRlbjsKYmFja2dyb3VuZDogIzMzMyB1cmwoaHR0cDovLzIuYnAuYmxvZ3Nwb3QuY29tLy1WMDEwUk5KMXc3by9VZjRJa0ZOZDhqSS9BQUFBQUFBQUNUMC9GVmxEVS10QTE4dy9zMTYwMC9pY29uX2hvbWUucG5nKSBuby1yZXBlYXQgY2VudGVyOwp9Ci5mZWVkLWxpbmtzIHsKZGlzcGxheTogbm9uZTsKfQouc3RhdHVzLW1zZy1ib3JkZXIgewpib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKfQouc3RhdHVzLW1zZy1iZyB7CmJhY2tncm91bmQtY29sb3I6ICNlYWVhZWEgIWltcG9ydGFudDsKfQouYmxvZy1wb3N0cy5oZmVlZCB7CmJveC1zaXppbmc6IGJvcmRlci1ib3g7CmZsb2F0OiBsZWZ0OwptYXJnaW4tYm90dG9tOiAyMHB4Owp3aWR0aDogMTAwJTsKfQouYmxvZy1wYWdlci1vbGRlci1saW5rOmhvdmVyLAouYmxvZy1wYWdlci1uZXdlci1saW5rOmhvdmVyIHsKYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50OwpiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLDc2LDIpOwp9Ci8qCiogQ29tbWVudHMKKi8KLmNvbW1lbnRzIHsKbWFyZ2luLXRvcDogNDBweDsKcGFkZGluZy10b3A6IDIwcHg7CmJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjOwp9Ci5jb21tZW50cyBoNCB7CmJhY2tncm91bmQ6IHVybChodHRwOi8vMy5icC5ibG9nc3BvdC5jb20vLVlBYnNkWkVka25ZL1VmNEVVbVE5VGdJL0FBQUFBQUFBQ1RrL3NSeWRHTHc3OUxvL3MxNjAwL2ljb25fY29tbWVudHMucG5nKSBuby1yZXBlYXQgbGVmdCA1cHg7Cm1hcmdpbi1ib3R0b206IDIwcHg7CnBhZGRpbmctYm90dG9tOiAyMHB4OwpwYWRkaW5nLWxlZnQ6IDMwcHg7CmNsZWFyOiBib3RoOwpmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7Cn0KLmNvbW1lbnQtaGVhZGVyIC51c2VyIHsKcGFkZGluZy1yaWdodDoxMHB4OwptYXJnaW4tcmlnaHQ6MTBweDsKYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGRkOwp9Ci5jb21tZW50LWhlYWRlciAudXNlciBhIHsKZm9udDogbm9ybWFsIG5vcm1hbCAxNnB4LzFlbSAnVmlnYScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWw7CnRleHQtZGVjb3JhdGlvbjpub25lOwp9Ci5jb21tZW50LWhlYWRlciBzcGFuLmJsb2ctYXV0aG9yLAouY29tbWVudC1oZWFkZXIgc3Bhbi5pY29uIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQouY29tbWVudC1oZWFkZXIgLmRhdGV0aW1lIGEgewpmb250LXNpemU6IDEycHg7CmNvbG9yOiAjYWFhOwp9Ci5jb21tZW50LXRocmVhZCBsaSAuY29tbWVudC1ibG9jayB7CmJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjZGRkOwpwYWRkaW5nLWJvdHRvbToxMHB4Owp9Ci5jb21tZW50LWNvbnRlbnQgewp9Ci5jb21tZW50cyBibG9ja3F1b3RlIHsKbWFyZ2luLWJvdHRvbToyMHB4OwpwYWRkaW5nOjEwcHggMDsKYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDsKbGluZS1oZWlnaHQ6MS42ZW07Cn0KI2NvbW1lbnQtaG9sZGVyIC5jb21tZW50LWJsb2NrIC5jb21tZW50LWFjdGlvbnMgYSB7CmZvbnQtc2l6ZToxMnB4OwptYXJnaW4tcmlnaHQ6MTBweDsKYmFja2dyb3VuZC1wb3NpdGlvbjotMTVweCBjZW50ZXI7Ci1vLXRyYW5zaXRpb246IGFsbCAwLjVzOwotbW96LXRyYW5zaXRpb246IGFsbCAwLjVzOwotd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzOwp9CiNjb21tZW50LWhvbGRlciAuYXZhdGFyLWltYWdlLWNvbnRhaW5lciB7CmJvcmRlci1yYWRpdXM6IDJweDsKb3ZlcmZsb3c6IGhpZGRlbjsKfQojY29tbWVudC1ob2xkZXIgLmF2YXRhci1pbWFnZS1jb250YWluZXIgaW1nIHsKfQojY29tbWVudHMtYmxvY2suYXZhdGFyLWNvbW1lbnQtaW5kZW50ICB7CnBvc2l0aW9uOnJlbGF0aXZlOwptYXJnaW46MCBhdXRvOwp9Ci53aWRnZXQtY29udGVudC5saXN0LWxhYmVsLXdpZGdldC1jb250ZW50IHNwYW4gewpjb2xvcjogcmdiKDI1Miw3NiwyKTsKZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwpmb250LXNpemU6IDE0cHg7CmxpbmUtaGVpZ2h0OiAxLjU7Cn0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMDcuIFNpZGViYXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI3NpZGViYXIgewptYXJnaW4tYm90dG9tOiAtNDBweDsKfQojc2lkZWJhciAud2lkZ2V0IGgyIHsKbWFyZ2luLWxlZnQ6IC0xNXB4OwptYXJnaW4tcmlnaHQ6IC0xNXB4OwpwYWRkaW5nOiAxMnB4IDE1cHg7CmZvbnQtZmFtaWx5OiAnT3N3YWxkJywgc2Fucy1zZXJpZjsKZm9udC1zaXplOiAxNnB4Owpjb2xvcjogIzQ0NDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKYmFja2dyb3VuZDogI2UxZTFlMTsKfQojc2lkZWJhciAud2lkZ2V0IGE6bGluaywKI3NpZGViYXIgLndpZGdldCBhOnZpc2l0ZWQgewp0ZXh0LWRlY29yYXRpb246IG5vbmU7CmZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsKZm9udC1zaXplOiAxM3B4OwpsaW5lLWhlaWdodDogMS41Owp9Ci5zaWRlYmFyLXdyYXBwZXIgewp3aWR0aDogMzAwcHg7Cm1hcmdpbi1sZWZ0OiAyMHB4Owpib3JkZXItcmFkaXVzOiAycHg7Cn0KLnNpZGViYXIgLndpZGdldCBoMiB7Cm1hcmdpbi1ib3R0b206IDIwcHg7Cn0KLnNpZGViYXIgLndpZGdldCB7Cm1hcmdpbi1ib3R0b206IDIwcHg7Cn0KLnNpZGViYXIgLndpZGdldCBpbWcsCi5zaWRlYmFyIC53aWRnZXQgaWZyYW1lIHsKd2lkdGg6IDEwMCU7CmhlaWdodDogYXV0bzsKfQpkaXYjTGFiZWwyLApkaXYjUG9wdWxhclBvc3RzMSB7CmJhY2tncm91bmQ6ICNlZmVmZWY7CnBhZGRpbmc6IDAgMTVweCAxNXB4Owp9CmRpdiNIVE1MMSB7CmJhY2tncm91bmQ6ICNlZmVmZWY7CnBhZGRpbmc6IDA7Cn0KI0hUTUwxIGgyLnRpdGxlIHsKYmFja2dyb3VuZDogI2UxZTFlMTsKZm9udC1zaXplOiAxNnB4OwptYXJnaW46IDA7CnBhZGRpbmc6IDEycHggMTVweDsKfQojSFRNTDEgLndpZGdldC1jb250ZW50IHsKcGFkZGluZzogMTVweDsKfQojSFRNTDEgcCB7CmNvbG9yOiAjMmMyYzJjOwpmb250LXNpemU6IDEzcHg7CmxpbmUtaGVpZ2h0OiAxLjU7Cn0KLmNvbnRhY3QtaW5mbyB7CmJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2MxYzFjMTsKZmxvYXQ6IGxlZnQ7Cm1hcmdpbjogMTVweCAtMTVweCAwOwpwYWRkaW5nOiAxNXB4Owp3aWR0aDogMTAwJTsKfQouY29udGFjdC1pbmZvIGE6Zmlyc3Qtb2YtdHlwZSB7CmNvbG9yOiByZ2IoMjUyLDc2LDIpOwp9Ci5jb250YWN0LWJ0biB7CmJhY2tncm91bmQtY29sb3I6ICMzMzM7CmJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9iYWVzeXN0ZW1zL2Nzcy9jc3MtaW1nL2ltZ19yaWdodGFycm93X3doaXRlX3BhZDEwLnBuZycpOwpiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7CmJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CmJvcmRlci1yYWRpdXM6IDhweDsKY29sb3I6ICNmZmYgIWltcG9ydGFudDsKZGlzcGxheTogYmxvY2s7CmZsb2F0OiBsZWZ0OwptYXJnaW4tYm90dG9tOiAyMHB4OwpwYWRkaW5nOiA4cHggMjRweCA4cHggMTBweDsKfQouY29udGFjdC1idG46aG92ZXIgewpiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLDc2LDIpOwp9CnNwYW4udGFnLWNvdW50IHsKYmFja2dyb3VuZDogIzJjMmMyYzsKY29sb3I6ICNmZmYgIWltcG9ydGFudDsKZmxvYXQ6IHJpZ2h0Owpmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CmZvbnQtd2VpZ2h0OiBib2xkOwpwYWRkaW5nOiAwIDVweDsKfQoud2lkZ2V0LWNvbnRlbnQubGlzdC1sYWJlbC13aWRnZXQtY29udGVudCBsaSB7CmJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzFjMWMxOwptYXJnaW4tYm90dG9tOiA1cHg7CnBhZGRpbmctYm90dG9tOiA1cHg7Cn0KLndpZGdldC1jb250ZW50Lmxpc3QtbGFiZWwtd2lkZ2V0LWNvbnRlbnQgbGk6bGFzdC1vZi10eXBlIHsKYm9yZGVyOiBub25lOwp9Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjA4LiBXaWRnZXRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi53aWRnZXQgYSB7CnRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQovKgoqIEZsaWNrcgoqLwouZmxpY2tyX3dyYXAgewptYXJnaW4tbGVmdDogLTVweDsKbWFyZ2luLXJpZ2h0OiAtNXB4Owp9Ci5mbGlja3JfYmFkZ2VfaW1hZ2UgewpmbG9hdDogbGVmdDsKbWFyZ2luOiA1cHg7CmhlaWdodDogNjBweDsKd2lkdGg6IDYwcHg7CmJvcmRlci1yYWRpdXM6IDJweDsKb3ZlcmZsb3c6IGhpZGRlbjsKfQouZmxpY2tyX2JhZGdlX2ltYWdlIGltZyB7CmhlaWdodDogMTAwJTsKd2lkdGg6IDEwMCU7Cn0KLmdyaWQgLmZsaWNrcl93cmFwIHsKbWFyZ2luLWxlZnQ6IC03cHg7Cm1hcmdpbi1yaWdodDogLTdweDsKfQouZ3JpZCAuZmxpY2tyX2JhZGdlX2ltYWdlIHsKbWFyZ2luOiA3cHg7CmhlaWdodDogNjQuNXB4Owp3aWR0aDogNjQuNXB4Owp9Ci8qCiogUG9wdWxhciBQb3N0cwoqLwouUG9wdWxhclBvc3RzIHVsIGxpIHsKbWFyZ2luLWJvdHRvbTogNXB4OwpwYWRkaW5nLWJvdHRvbTogNXB4Owpib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxYzFjMTsKfQouUG9wdWxhclBvc3RzIHVsIGxpOmxhc3Qtb2YtdHlwZSB7CmJvcmRlcjogbm9uZTsKfQouUG9wdWxhclBvc3RzIC5pdGVtLXRpdGxlIHsKZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsKbWluLWhlaWdodDogNjBweDsKd2lkdGg6IDc0JTsKfQouUG9wdWxhclBvc3RzIC5pdGVtLXRpdGxlIGEgewpmb250LXdlaWdodDogYm9sZDsKZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CmxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDsKZGlzcGxheTogYmxvY2s7Cm1hcmdpbi10b3A6IDVweDsKdGV4dC1kZWNvcmF0aW9uOiBub25lOwpmb250LWZhbWlseTogJ09zd2FsZCcsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouUG9wdWxhclBvc3RzIC5pdGVtLXNuaXBwZXQgewpmb250LXNpemU6IDE0cHg7CmxpbmUtaGVpZ2h0OiAxLjZlbTsKfQouUG9wdWxhclBvc3RzIC5pdGVtLXRodW1ibmFpbCB7CndpZHRoOiA2MHB4OwpoZWlnaHQ6IDYwcHg7CmJvcmRlci1yYWRpdXM6IDJweDsKb3ZlcmZsb3c6IGhpZGRlbjsKbWFyZ2luLXJpZ2h0OiAxMHB4OwptYXJnaW4tdG9wOiA1cHg7Cn0KLlBvcHVsYXJQb3N0cyAuaXRlbS10aHVtYm5haWwgaW1nIHsKd2lkdGg6IDYwcHg7CmhlaWdodDogNjBweDsKfQoucG9zdC1sYWJlbHMgYSB7CmZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50Owpmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKfQovKgoqIFNlYXJjaAoqLwojc2VhcmNoZm9ybSB7CmJhY2tncm91bmQ6ICNmZmY7CnBhZGRpbmc6IDEwcHg7CmJvcmRlci1yYWRpdXM6IDJweDsKYm9yZGVyOiAxcHggc29saWQgI2UxZTFlMTsKb3ZlcmZsb3c6IGhpZGRlbjsKfQojc2VhcmNoZm9ybTphZnRlciB7CmNvbnRlbnQ6ICIuIjsKdmlzaWJpbGl0eTogaGlkZGVuOwpkaXNwbGF5OiBibG9jazsKaGVpZ2h0OiAwOwpjbGVhcjogYm90aDsKfQojc2VhcmNoZm9ybSBsYWJlbCB7CmRpc3BsYXk6bm9uZTsKfQojc2VhcmNoZm9ybSAjcyB7CndpZHRoOiAxNTBweDsKYm9yZGVyOiAwOwpwYWRkaW5nOiAwOwpmbG9hdDogbGVmdDsKY29sb3I6ICNhYWE7Cn0KI3NlYXJjaGZvcm0gI3NlYXJjaHN1Ym1pdCB7CmJhY2tncm91bmQ6IHVybChodHRwOi8vMS5icC5ibG9nc3BvdC5jb20vLUhyQ2tiVnpsUkxjL1VlODlLajhpaGxJL0FBQUFBQUFBQ1NFL1B2UEN6d1VvTGxZL3MxNjAwL2ljb25fc2VhcmNoLnBuZykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7CndpZHRoOiAyMHB4OwpmbG9hdDogcmlnaHQ7CmJvcmRlcjogMDsKcGFkZGluZzogMDsKdGV4dC1pbmRlbnQ6IC05MDBweDsKfQouc3RhdHVzLW1zZy13cmFwIHsKZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7Cm1hcmdpbjogMjBweCBhdXRvICFpbXBvcnRhbnQ7CndpZHRoOiAxMDAlICFpbXBvcnRhbnQ7Cn0KLnN0YXR1cy1tc2ctYm9keSB7CnRleHQtYWxpZ246IGluaGVyaXQgIWltcG9ydGFudDsKcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7Cn0KLnN0YXR1cy1tc2ctYmcgewpiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7Cn0KLnN0YXR1cy1tc2ctYm9keSBhIHsKYmFja2dyb3VuZDogI2NjYzsKYm9yZGVyLXJhZGl1czogMnB4Owpjb2xvcjogI2ZmZjsKZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmOwpmb250LXNpemU6IDEzcHg7CmZvbnQtd2VpZ2h0OiBib2xkOwpmbG9hdDogcmlnaHQ7Cm1hcmdpbjogLTEwcHggMjBweCAwIDA7CnBhZGRpbmc6IDEwcHggMjBweDsKdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouc3RhdHVzLW1zZy1ib2R5IGE6aG92ZXIgewpiYWNrZ3JvdW5kOiByZ2IoMjUyLDc2LDIpOwp9Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjA5LiBDcmVkaXQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZm9vdGVyLmNyZWRpdCB7CmJhY2tncm91bmQ6ICM0NDQ7CnBhZGRpbmc6IDQwcHggMDsKY29sb3I6ICNjY2M7CnRleHQtYWxpZ246IGNlbnRlcjsKfQpmb290ZXIuY3JlZGl0IGEgewpjb2xvcjogI2ZmZjsKfQpmb290ZXIuY3JlZGl0IGE6aG92ZXIgewp0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKfQpmb290ZXIgeyBjb2xvciA6ICNGRkZGRkYgfQpmb290ZXIgbmF2IHsgaGVpZ2h0IDogOTZweDsgYmFja2dyb3VuZCA6ICMyMjIgfQpmb290ZXIgLndyYXAgeyB3aWR0aDogMTAyMHB4OyBtYXJnaW46IGF1dG87IH0KZm9vdGVyIGRpdiNzb2NpYWwgeyBiYWNrZ3JvdW5kIDogIzAwMDAwMDsgZm9udC13ZWlnaHQgOiA3MDA7IHBhZGRpbmctdG9wIDogNDBweCB9CmZvb3RlciBkaXYjc29jaWFsIGRpdiNjb25uZWN0IHsgZmxvYXQgOiBsZWZ0OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTRweDsgfQpmb290ZXIgZGl2I3NvY2lhbCBzcGFuI2Nvbm5lY3QtdGV4dCB7IGRpc3BsYXkgOiBpbmxpbmUtYmxvY2s7IGxpbmUtaGVpZ2h0IDogMjVweDsgcG9zaXRpb24gOiByZWxhdGl2ZTsgdG9wIDogLTZweDsgbWFyZ2luLXJpZ2h0IDogNXB4IH0KZm9vdGVyIGRpdiNjb3B5cmlnaHQgeyBiYWNrZ3JvdW5kIDogIzAwMDAwMDsgZm9udC1zaXplIDogODAlOyBwYWRkaW5nLXRvcCA6IDEzcHg7IHBhZGRpbmctYm90dG9tIDogNTBweCB9Ci8qIFVQREFURUQgU09DSUFMIElDT05TICovCi5zb2NpYWwtaWNvbi1saXN0IHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDI2cHggMCAyNnB4IDEwcHg7IGxpc3Qtc3R5bGU6IG5vbmU7IH0KLnNvY2lhbC1pY29uLWxpc3QgbGkgeyBmbG9hdDogbGVmdDsgbWFyZ2luLXJpZ2h0OiAxMHB4OyBjdXJzb3I6IHBvaW50ZXI7IGhlaWdodDogNDRweDsgd2lkdGg6IDQ0cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQouc29jaWFsLWljb24tbGlzdCBsaSBhIHsgaGVpZ2h0OiAwOyB3aWR0aDogMDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMjJweDsgbGVmdDogMjJweDsgbWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kLXNpemU6IDQ0cHggNDRweDsgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyBib3JkZXItcmFkaXVzOiAyMnB4OyB0cmFuc2l0aW9uOiB3aWR0aCAxLjFzIGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKSwgaGVpZ2h0IDEuMXMgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpLCB0b3AgMS4xcyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSksIGxlZnQgMS4xcyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSksIGJvcmRlci1yYWRpdXMgMS41cyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSkgMC4yczsgfQouc29jaWFsLWljb24tbGlzdCBsaTpob3ZlciBhIHsgd2lkdGg6IDQ0cHg7IGhlaWdodDogNDRweDsgYm9yZGVyLXJhZGl1czogMHB4OyB0b3A6IDA7IGxlZnQ6IDA7IH0KLnNvY2lhbC1pY29uLWxpc3QgLnR3aXR0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHVybCgiaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9iYWVzeXN0ZW1zL2ltYWdlcy9zb2NpYWwvdHdpdHRlci5wbmciKTsgfQouc29jaWFsLWljb24tbGlzdCAudHdpdHRlci1pY29uOmhvdmVyIGEgeyBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vYmFlc3lzdGVtcy9pbWFnZXMvc29jaWFsL3R3aXR0ZXJDb2xvdXIucG5nIik7IH0KLnNvY2lhbC1pY29uLWxpc3QgLmZiLWljb24geyBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vYmFlc3lzdGVtcy9pbWFnZXMvc29jaWFsL2ZhY2Vib29rLnBuZyIpOyB9Ci5zb2NpYWwtaWNvbi1saXN0IC5mYi1pY29uOmhvdmVyIGEgeyBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vYmFlc3lzdGVtcy9pbWFnZXMvc29jaWFsL2ZhY2Vib29rQ29sb3VyLnBuZyIpOyB9Ci5zb2NpYWwtaWNvbi1saXN0IC5pbi1pY29uIHsgYmFja2dyb3VuZDogdXJsKCJodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2JhZXN5c3RlbXMvaW1hZ2VzL3NvY2lhbC9saW5rZWRpbi5wbmciKTsgfQouc29jaWFsLWljb24tbGlzdCAuaW4taWNvbjpob3ZlciBhIHsgYmFja2dyb3VuZDogdXJsKCJodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2JhZXN5c3RlbXMvaW1hZ2VzL3NvY2lhbC9saW5rZWRpbkNvbG91ci5wbmciKTsgfQouc29jaWFsLWljb24tbGlzdCAuZmxpY2tyLWljb24geyBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vYmFlc3lzdGVtcy9pbWFnZXMvc29jaWFsL2ZsaWNrci5wbmciKTsgfQouc29jaWFsLWljb24tbGlzdCAuZmxpY2tyLWljb246aG92ZXIgYSB7IGJhY2tncm91bmQ6IHVybCgiaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9iYWVzeXN0ZW1zL2ltYWdlcy9zb2NpYWwvZmxpY2tyQ29sb3VyLnBuZyIpOyB9Ci5zb2NpYWwtaWNvbi1saXN0IC55b3V0dWJlLWljb24geyBiYWNrZ3JvdW5kOiB1cmwoImh0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vYmFlc3lzdGVtcy9pbWFnZXMvc29jaWFsL3lvdXR1YmUucG5nIik7IH0KLnNvY2lhbC1pY29uLWxpc3QgLnlvdXR1YmUtaWNvbjpob3ZlciBhIHsgYmFja2dyb3VuZDogdXJsKCJodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2JhZXN5c3RlbXMvaW1hZ2VzL3NvY2lhbC95b3V0dWJlQ29sb3VyLnBuZyIpOyB9Ci8qIEZPT1RFUiBVUERBVEVTICovCi5mb290ZXJXcmFwcGVyIHsgYmFja2dyb3VuZDogdXJsKCJodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2JhZXN5c3RlbXMvY3NzL2Nzcy1pbWcvZ3JleV9sb2dvLnBuZyIpIHJpZ2h0IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgbWFyZ2luOiBhdXRvOyBtaW4taGVpZ2h0OiA5NnB4O30KLmJvdHRvbS1iYXIgeyBiYWNrZ3JvdW5kOiAjMTExOyBtaW4taGVpZ2h0OiA0OHB4OyB9Ci5mb290ZXJMaXN0IHsgcGFkZGluZzogMTJweCAwOyBmbG9hdDogbGVmdDsgbGlzdC1zdHlsZTogbm9uZTsgbGluZS1oZWlnaHQ6IDI0cHg7IH0KLmZvb3Rlckxpc3QgbGkgeyBmbG9hdDogbGVmdDsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5mb290ZXJMaXN0IGxpIGEgeyBjb2xvcjogIzY2NjsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM2NjY7IHBhZGRpbmc6IDAgMTBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9Ci5mb290ZXJMaXN0IGxpOmxhc3QtY2hpbGQgYSB7IGJvcmRlcjogbm9uZTsgfQouY29weSB7IGZsb2F0OiByaWdodDsgcGFkZGluZzogMTJweCAwOyBjb2xvcjogIzY2NjsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMjRweDsgfQouY29weXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyBsaW5lLWhlaWdodDogMjRweDsgY29sb3I6ICM2NjY7IGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB4OyBwYWRkaW5nOiAxMnB4IDA7IH0KCi0tPjwvc3R5bGU+CjwhLS0gPSAvIGpRdWVyeSAvPSAtLT4KPHNjcmlwdCBzcmM9J2h0dHA6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMS43LjIvanF1ZXJ5Lm1pbi5qcyc+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSdodHRwOi8vaS1iaXlhbi5jb20vanMvaHRtbDUuanMnPjwvc2NyaXB0Pgo8IS0tID0gLyBKUyBUcmlnZ2VyIC8gPSAtLT4KPCEtLSA9IC8gY29uZGl0aW9uYWwgc3RhdGVtZW50IC8gPSAtLT4KPCEtLSA9IC8gUmVzcG9uc2l2ZSAvID0gLS0+CjxzdHlsZT4KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNDBweCkgewogICAgICAuaGVhZGVyLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiA5MDBweDsKICAgICAgfQogICAgICAuYnJhbmRpbmcgLnNpZGViYXIgewogICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICB9CiAgICAgIC5jb250ZW50LXdyYXBwZXIgewogICAgICAgIHdpZHRoOiA5MDBweDsKICAgICAgfQogICAgICAubWFpbi13cmFwcGVyIHsKICAgICAgICB3aWR0aDogNTgwcHg7CgkJcGFkZGluZzogMCA2MHB4OwoJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgIH0KICAgICAgLnNsaWRlcyB7CiAgICAgICAgd2lkdGg6IDc2MHB4OwogICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7CiAgICAgIH0KICAgICAgLnNsaWRlcyAuZ3JpZCB7CiAgICAgICAgd2lkdGg6IDIzMy4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM3B4OwogICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OwogICAgICAgIG1hcmdpbi1yaWdodDoxMHB4OwogICAgICB9CgkgIC5uYXZpZ2F0aW9uIHVsIGxpIGEgewoJICAgIGZvbnQtc2l6ZTogMTRweDsKCQlwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICAgIH0KCSAgLmJyYW5kaW5nLXdyYXAgewoJCXdpZHRoOiA5MDBweDsKICAgICAgfQoJICAuc2lkZWJhci13cmFwcGVyIHsKCQltYXJnaW46IDAgMTBweDsKICAgICAgfQoJICBmb290ZXIgLndyYXAgewoJCXdpZHRoOiA4ODBweDsKCQlwYWRkaW5nOiAwIDEwcHg7CiAgICAgIH0KCSAgLmJhbm5lci10ZXh0IHNwYW4gewoJCWZvbnQtc2l6ZTogMzJweDsKICAgICAgfQogICAgfQoKCUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkyMHB4KSB7CgkgIC5oZWFkZXItd3JhcHBlciB7CgkJd2lkdGg6IDc0MHB4OwogICAgICB9CgkgICNoZWFkZXIgewoJCW1hcmdpbi1sZWZ0OiAyJTsKICAgICAgfQoJICAuUGFnZUxpc3QgewoJCWZsb2F0OiBub25lOwoJCW1hcmdpbjogYXV0bzsKCQl3aWR0aDogOTYlOwogICAgICB9CgkgIC5DdXN0b21TZWFyY2ggewoJCWZsb2F0OiBub25lOwoJCW1hcmdpbjogYXV0bzsKCQl3aWR0aDogNDAlOwogICAgICB9CgkgIC5icmFuZGluZy13cmFwIHsKCQl3aWR0aDogNzQwcHg7CiAgICAgIH0KCSAgLmNvbnRlbnQtd3JhcHBlciB7CgkJd2lkdGg6IDc0MHB4OwogICAgICB9CgkgIC5tYWluLXdyYXBwZXIgewoJCXdpZHRoOiA0NjBweDsKCQlwYWRkaW5nOiAwIDIwcHg7CiAgICAgIH0KCSAgLnBvc3QtYm9keSAudGh1bWJzIHsKCQl3aWR0aDogMTIwcHg7CgkJaGVpZ2h0OiAxMjBweDsKICAgICAgfQoJICAuc2lkZWJhci13cmFwcGVyIHsKCQl3aWR0aDogMjYwcHg7CiAgICAgIH0KCSAgLlBvcHVsYXJQb3N0cyAuaXRlbS10aXRsZSB7CgkJd2lkdGg6IDY4JTsKICAgICAgfQoJICBmb290ZXIgLndyYXAgewoJCXdpZHRoOiA3MjBweDsKICAgICAgfQoKICAgIH0KCiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkgewogICAgICAuaGVhZGVyLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwoJCXBhZGRpbmctdG9wOiAyMHB4OwogICAgICB9CiAgICAgIC5oZWFkZXIsIC5uYXZpZ2F0aW9uIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBmbG9hdDogbm9uZTsKICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgICAgLmhlYWRlciBpbWcgewogICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgICAgfQoJICBkaXYjaGVhZGVyIHsKCQl3aWR0aDogYXV0bzsKCQlmbG9hdDogbGVmdDsKCQltYXJnaW46IC0xOHB4IDAgMjBweCAyM3B4OwogICAgICB9CiAgICAgIC5uYXZpZ2F0aW9uIHsKICAgICAgICBtYXJnaW4tdG9wOiAzMHB4OwogICAgICB9CiAgICAgIC5uYXZpZ2F0aW9uIHVsIGxpIHsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgZGlzcGxheTogaW5saW5lOwogICAgICB9CiAgICAgIC5icmFuZGluZyAuc2lkZWJhciB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIH0KCSAgLmJyYW5kaW5nLXdyYXAgewoJCXdpZHRoOiA5MCU7CgkJbWFyZ2luOiBhdXRvOwogICAgICB9CgkgIGRpdiNJbWFnZTEgLndpZGdldC1jb250ZW50IGltZyB7CgkJbWluLWhlaWdodDogMjAwcHg7CiAgICAgIH0KICAgICAgLmNvbnRlbnQtd3JhcHBlciB7CiAgICAgICAgd2lkdGg6IDUwMHB4OwogICAgICB9CiAgICAgIC5zaWRlYmFyLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgICBtYXJnaW46IDQwcHggMCAwIDA7CiAgICAgIH0KICAgICAgLnNsaWRlcyB7CiAgICAgICAgd2lkdGg6IDUwMHB4OwogICAgICB9CiAgICAgIC5zbGlkZXMgLmdyaWQgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIG1hcmdpbjogMCAwIDMwcHggMDsKICAgICAgICBwYWRkaW5nOiAwIDAgMzBweCAwOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzc3NzsKICAgICAgfQogICAgICBmb290ZXIuY3JlZGl0IC5mb290ZXIgewogICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgfQoJICBmb290ZXIgLndyYXAgewoJCXdpZHRoOiA5NiU7CgkJcGFkZGluZzogMCAyJTsKICAgICAgfQogICAgfQoKCUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYyMHB4KSB7CgkgIC5jb250ZW50LXdyYXBwZXIgewoJCXdpZHRoOiA5MCU7CiAgICAgIH0KCSAgLm1haW4td3JhcHBlciB7CgkJd2lkdGg6IDEwMCU7CiAgICAgIH0KICAgIH0KCQkKICA8L3N0eWxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGE9IiZtPTEiLGQ9IihefCYpbT0iLGU9Ij8iLGY9Ij9tPTEiO2Z1bmN0aW9uIGcoKXt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZixjPWIuc3BsaXQoZSk7c3dpdGNoKGMubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIGIrZjtjYXNlIDI6cmV0dXJuIDA8PWNbMV0uc2VhcmNoKGQpP251bGw6YithO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciBoPW5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPWguaW5kZXhPZigiTW9iaWxlIikmJi0xIT1oLmluZGV4T2YoIldlYktpdCIpJiYtMT09aC5pbmRleE9mKCJpUGFkIil8fC0xIT1oLmluZGV4T2YoIk9wZXJhIE1pbmkiKXx8LTEhPWguaW5kZXhPZigiSUVNb2JpbGUiKSl7dmFyIGs9ZygpO2smJndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGspfTsKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgppZiAod2luZG93LmpzdGltaW5nKSB3aW5kb3cuanN0aW1pbmcubG9hZC50aWNrKCdoZWFkRW5kJyk7Cjwvc2NyaXB0PjwvaGVhZD4KPGJvZHkgY2xhc3M9J2xvYWRpbmcnPgo8ZGl2IGNsYXNzPSduYXZiYXIgc2VjdGlvbicgaWQ9J25hdmJhcic+PGRpdiBjbGFzcz0nd2lkZ2V0IE5hdmJhcicgZGF0YS12ZXJzaW9uPScxJyBpZD0nTmF2YmFyMSc+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgZnVuY3Rpb24gc2V0QXR0cmlidXRlT25sb2FkKG9iamVjdCwgYXR0cmlidXRlLCB2YWwpIHsKICAgICAgaWYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsCiAgICAgICAgICBmdW5jdGlvbigpeyBvYmplY3RbYXR0cmlidXRlXSA9IHZhbDsgfSwgZmFsc2UpOwogICAgICB9IGVsc2UgewogICAgICAgIHdpbmRvdy5hdHRhY2hFdmVudCgnb25sb2FkJywgZnVuY3Rpb24oKXsgb2JqZWN0W2F0dHJpYnV0ZV0gPSB2YWw7IH0pOwogICAgICB9CiAgICB9CiAgPC9zY3JpcHQ+CjxkaXYgaWQ9Im5hdmJhci1pZnJhbWUtY29udGFpbmVyIj48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGx1c29uZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICBnYXBpLmxvYWQoImdhcGkuaWZyYW1lczpnYXBpLmlmcmFtZXMuc3R5bGUuYnViYmxlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoZ2FwaS5pZnJhbWVzICYmIGdhcGkuaWZyYW1lcy5nZXRDb250ZXh0KSB7CiAgICAgICAgICAgIGdhcGkuaWZyYW1lcy5nZXRDb250ZXh0KCkub3BlbkNoaWxkKHsKICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vd3d3LmJsb2dnZXIuY29tL25hdmJhci5nP3RhcmdldEJsb2dJRFwwNzU3MzQ1NTE1MDg1ODM4NDIyNzk5XDQ2YmxvZ05hbWVcNzVCQUUrU3lzdGVtcytUaHJlYXQrUmVzZWFyY2grQmxvZ1w0NnB1Ymxpc2hNb2RlXDc1UFVCTElTSF9NT0RFX0JMT0dTUE9UXDQ2bmF2YmFyVHlwZVw3NUxJR0hUXDQ2bGF5b3V0VHlwZVw3NUxBWU9VVFNcNDZzZWFyY2hSb290XDc1aHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vc2VhcmNoXDQ2YmxvZ0xvY2FsZVw3NWVuX0dCXDQ2dlwwNzUyXDQ2aG9tZXBhZ2VVcmxcNzVodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS9cNDZ0YXJnZXRQb3N0SURcMDc1MzU1NDQ2MDU2MzYwMTY4ODk4XDQ2YmxvZ1Bvc3RPclBhZ2VVcmxcNzVodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS8yMDE2LzA0L3R3by1ieXRlcy10by05NTFtLmh0bWxcNDZ2dFwwNzU2OTExNDc1MjMwNzU5OTQ5MTE3JywKICAgICAgICAgICAgICAgIHdoZXJlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF2YmFyLWlmcmFtZS1jb250YWluZXIiKSwKICAgICAgICAgICAgICAgIGlkOiAibmF2YmFyLWlmcmFtZSIKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIDwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKGZ1bmN0aW9uKCkgewp2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CnNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CnNjcmlwdC5zcmMgPSAnLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvZ29vZ2xlX3RvcF9leHAuanMnOwp2YXIgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07CmlmIChoZWFkKSB7CmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfX0pKCk7Cjwvc2NyaXB0Pgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nb3V0ZXItd3JhcHBlcic+CjxkaXYgY2xhc3M9J2NvbnRhaW5lcic+CjxkaXYgY2xhc3M9J291dGVyLWhlYWRlcic+CjxoZWFkZXIgY2xhc3M9J2hlYWRlci13cmFwcGVyJz4KPGRpdiBjbGFzcz0ndG9wLW1lbnUnPgo8dWw+CjxsaT48YSBocmVmPSdodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2VuL2N5YmVyc2VjdXJpdHkvcmVzb3VyY2VzJyB0YXJnZXQ9J19ibGFuayc+UmVzb3VyY2VzPC9hPjwvbGk+CjxsaT48YSBocmVmPSdodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2VuL2N5YmVyc2VjdXJpdHkvY29udGFjdC11cycgdGFyZ2V0PSdfYmxhbmsnPkNvbnRhY3QgdXM8L2E+PC9saT4KPC91bD4KPC9kaXY+CjxkaXYgY2xhc3M9J2hlYWRlciBsZWZ0IHNlY3Rpb24nIGlkPSdoZWFkZXInPjxkaXYgY2xhc3M9J3dpZGdldCBIZWFkZXInIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0hlYWRlcjEnPgo8ZGl2IGlkPSdoZWFkZXItaW5uZXInPgo8ZGl2IGNsYXNzPSd0aXRsZXdyYXBwZXInPgo8aDEgY2xhc3M9J3RpdGxlJz4KPGEgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvJz5CQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZzwvYT4KPC9oMT4KPC9kaXY+CjxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9ud3JhcHBlcic+CjxwIGNsYXNzPSdkZXNjcmlwdGlvbic+PHNwYW4+Cjwvc3Bhbj48L3A+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J25hdmlnYXRpb24gcmlnaHQgc2VjdGlvbicgaWQ9J25hdmlnYXRpb24nPjxkaXYgY2xhc3M9J3dpZGdldCBQYWdlTGlzdCcgZGF0YS12ZXJzaW9uPScxJyBpZD0nUGFnZUxpc3QxJz4KPGgyPlBhZ2VzPC9oMj4KPGRpdiBjbGFzcz0nd2lkZ2V0LWNvbnRlbnQnPgo8dWw+CjxsaT48YSBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8nPkhvbWU8L2E+PC9saT4KPGxpPjxhIGhyZWY9J2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vZW4vY3liZXJzZWN1cml0eS9wcm9kdWN0cyc+UHJvZHVjdHM8L2E+PC9saT4KPGxpPjxhIGhyZWY9J2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vZW4vY3liZXJzZWN1cml0eS9zb2x1dGlvbnMnPlNvbHV0aW9uczwvYT48L2xpPgo8bGk+PGEgaHJlZj0naHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L25ld3MtYW5kLWV2ZW50cyc+TmV3cyAmIEV2ZW50czwvYT48L2xpPgo8bGk+PGEgaHJlZj0naHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L3BhcnRuZXJzJz5QYXJ0bmVyczwvYT48L2xpPgo8bGk+PGEgaHJlZj0naHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L2Fib3V0LXVzJz5BYm91dCBVczwvYT48L2xpPgo8bGk+PGEgaHJlZj0naHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L2NhcmVlcnMnPkNhcmVlcnM8L2E+PC9saT4KPC91bD4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8c3BhbiBjbGFzcz0nd2lkZ2V0LWl0ZW0tY29udHJvbCc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbic+CjxhIGNsYXNzPSdxdWlja2VkaXQnIGhyZWY9Jy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ3aWRnZXRUeXBlPVBhZ2VMaXN0JndpZGdldElkPVBhZ2VMaXN0MSZhY3Rpb249ZWRpdFdpZGdldCZzZWN0aW9uSWQ9bmF2aWdhdGlvbicgb25jbGljaz0ncmV0dXJuIF9XaWRnZXRNYW5hZ2VyLl9Qb3B1cENvbmZpZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiUGFnZUxpc3QxIikpOycgdGFyZ2V0PSdjb25maWdQYWdlTGlzdDEnIHRpdGxlPSdFZGl0Jz4KPGltZyBhbHQ9JycgaGVpZ2h0PScxOCcgc3JjPScvL2ltZzEuYmxvZ2Jsb2cuY29tL2ltZy9pY29uMThfd3JlbmNoX2FsbGJrZy5wbmcnIHdpZHRoPScxOCcvPgo8L2E+Cjwvc3Bhbj4KPC9zcGFuPgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSd3aWRnZXQgQmxvZ0FyY2hpdmUnIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0Jsb2dBcmNoaXZlMSc+CjxoMj5CbG9nIEFyY2hpdmU8L2gyPgo8ZGl2IGNsYXNzPSd3aWRnZXQtY29udGVudCc+CjxkaXYgaWQ9J0FyY2hpdmVMaXN0Jz4KPGRpdiBpZD0nQmxvZ0FyY2hpdmUxX0FyY2hpdmVMaXN0Jz4KPHVsIGNsYXNzPSdoaWVyYXJjaHknPgo8bGkgY2xhc3M9J2FyY2hpdmVkYXRlIGV4cGFuZGVkJz4KPGEgY2xhc3M9J3RvZ2dsZScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJz4KPHNwYW4gY2xhc3M9J3ppcHB5IHRvZ2dsZS1vcGVuJz4KCiAgICAgICAgJiM5NjYwOyYjMTYwOwogICAgICAKPC9zcGFuPgo8L2E+CjxhIGNsYXNzPSdwb3N0LWNvdW50LWxpbmsnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzL3NlYXJjaD91cGRhdGVkLW1pbj0yMDE2LTAxLTAxVDAwOjAwOjAwWiZhbXA7dXBkYXRlZC1tYXg9MjAxNy0wMS0wMVQwMDowMDowMFomYW1wO21heC1yZXN1bHRzPTMnPgoyMDE2CjwvYT4KPHNwYW4gY2xhc3M9J3Bvc3QtY291bnQnIGRpcj0nbHRyJz4oMyk8L3NwYW4+Cjx1bCBjbGFzcz0naGllcmFyY2h5Jz4KPGxpIGNsYXNzPSdhcmNoaXZlZGF0ZSBleHBhbmRlZCc+CjxhIGNsYXNzPSd0b2dnbGUnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSc+CjxzcGFuIGNsYXNzPSd6aXBweSB0b2dnbGUtb3Blbic+CgogICAgICAgICYjOTY2MDsmIzE2MDsKICAgICAgCjwvc3Bhbj4KPC9hPgo8YSBjbGFzcz0ncG9zdC1jb3VudC1saW5rJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE2XzA0XzAxX2FyY2hpdmUuaHRtbCc+CkFwcmlsCjwvYT4KPHNwYW4gY2xhc3M9J3Bvc3QtY291bnQnIGRpcj0nbHRyJz4oMik8L3NwYW4+Cjx1bCBjbGFzcz0ncG9zdHMnPgo8bGk+PGEgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvMjAxNi8wNC90d28tYnl0ZXMtdG8tOTUxbS5odG1sJz5Ud28gYnl0ZXMgdG8gJDk1MW08L2E+PC9saT4KPGxpPjxhIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTYvMDQvbXVsdGlwbGUtdnVsbmVyYWJpbGl0aWVzLWFmZmVjdGluZy5odG1sJz5NdWx0aXBsZSB2dWxuZXJhYmlsaXRpZXMgYWZmZWN0aW5nIHNldmVyYWwgQVNVUyBSby4uLjwvYT48L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8dWwgY2xhc3M9J2hpZXJhcmNoeSc+CjxsaSBjbGFzcz0nYXJjaGl2ZWRhdGUgY29sbGFwc2VkJz4KPGEgY2xhc3M9J3RvZ2dsZScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJz4KPHNwYW4gY2xhc3M9J3ppcHB5Jz4KCiAgICAgICAgJiM5NjU4OyYjMTYwOwogICAgICAKPC9zcGFuPgo8L2E+CjxhIGNsYXNzPSdwb3N0LWNvdW50LWxpbmsnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTZfMDFfMDFfYXJjaGl2ZS5odG1sJz4KSmFudWFyeQo8L2E+CjxzcGFuIGNsYXNzPSdwb3N0LWNvdW50JyBkaXI9J2x0cic+KDEpPC9zcGFuPgo8L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8dWwgY2xhc3M9J2hpZXJhcmNoeSc+CjxsaSBjbGFzcz0nYXJjaGl2ZWRhdGUgY29sbGFwc2VkJz4KPGEgY2xhc3M9J3RvZ2dsZScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJz4KPHNwYW4gY2xhc3M9J3ppcHB5Jz4KCiAgICAgICAgJiM5NjU4OyYjMTYwOwogICAgICAKPC9zcGFuPgo8L2E+CjxhIGNsYXNzPSdwb3N0LWNvdW50LWxpbmsnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzL3NlYXJjaD91cGRhdGVkLW1pbj0yMDE1LTAxLTAxVDAwOjAwOjAwWiZhbXA7dXBkYXRlZC1tYXg9MjAxNi0wMS0wMVQwMDowMDowMFomYW1wO21heC1yZXN1bHRzPTMnPgoyMDE1CjwvYT4KPHNwYW4gY2xhc3M9J3Bvc3QtY291bnQnIGRpcj0nbHRyJz4oMyk8L3NwYW4+Cjx1bCBjbGFzcz0naGllcmFyY2h5Jz4KPGxpIGNsYXNzPSdhcmNoaXZlZGF0ZSBjb2xsYXBzZWQnPgo8YSBjbGFzcz0ndG9nZ2xlJyBocmVmPSdqYXZhc2NyaXB0OnZvaWQoMCknPgo8c3BhbiBjbGFzcz0nemlwcHknPgoKICAgICAgICAmIzk2NTg7JiMxNjA7CiAgICAgIAo8L3NwYW4+CjwvYT4KPGEgY2xhc3M9J3Bvc3QtY291bnQtbGluaycgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvMjAxNV8xMl8wMV9hcmNoaXZlLmh0bWwnPgpEZWNlbWJlcgo8L2E+CjxzcGFuIGNsYXNzPSdwb3N0LWNvdW50JyBkaXI9J2x0cic+KDEpPC9zcGFuPgo8L2xpPgo8L3VsPgo8dWwgY2xhc3M9J2hpZXJhcmNoeSc+CjxsaSBjbGFzcz0nYXJjaGl2ZWRhdGUgY29sbGFwc2VkJz4KPGEgY2xhc3M9J3RvZ2dsZScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJz4KPHNwYW4gY2xhc3M9J3ppcHB5Jz4KCiAgICAgICAgJiM5NjU4OyYjMTYwOwogICAgICAKPC9zcGFuPgo8L2E+CjxhIGNsYXNzPSdwb3N0LWNvdW50LWxpbmsnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTVfMTFfMDFfYXJjaGl2ZS5odG1sJz4KTm92ZW1iZXIKPC9hPgo8c3BhbiBjbGFzcz0ncG9zdC1jb3VudCcgZGlyPSdsdHInPigxKTwvc3Bhbj4KPC9saT4KPC91bD4KPHVsIGNsYXNzPSdoaWVyYXJjaHknPgo8bGkgY2xhc3M9J2FyY2hpdmVkYXRlIGNvbGxhcHNlZCc+CjxhIGNsYXNzPSd0b2dnbGUnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSc+CjxzcGFuIGNsYXNzPSd6aXBweSc+CgogICAgICAgICYjOTY1ODsmIzE2MDsKICAgICAgCjwvc3Bhbj4KPC9hPgo8YSBjbGFzcz0ncG9zdC1jb3VudC1saW5rJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE1XzA2XzAxX2FyY2hpdmUuaHRtbCc+Ckp1bmUKPC9hPgo8c3BhbiBjbGFzcz0ncG9zdC1jb3VudCcgZGlyPSdsdHInPigxKTwvc3Bhbj4KPC9saT4KPC91bD4KPC9saT4KPC91bD4KPHVsIGNsYXNzPSdoaWVyYXJjaHknPgo8bGkgY2xhc3M9J2FyY2hpdmVkYXRlIGNvbGxhcHNlZCc+CjxhIGNsYXNzPSd0b2dnbGUnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKSc+CjxzcGFuIGNsYXNzPSd6aXBweSc+CgogICAgICAgICYjOTY1ODsmIzE2MDsKICAgICAgCjwvc3Bhbj4KPC9hPgo8YSBjbGFzcz0ncG9zdC1jb3VudC1saW5rJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy9zZWFyY2g/dXBkYXRlZC1taW49MjAxMy0wMS0wMVQwMDowMDowMFomYW1wO3VwZGF0ZWQtbWF4PTIwMTQtMDEtMDFUMDA6MDA6MDBaJmFtcDttYXgtcmVzdWx0cz0zJz4KMjAxMwo8L2E+CjxzcGFuIGNsYXNzPSdwb3N0LWNvdW50JyBkaXI9J2x0cic+KDMpPC9zcGFuPgo8dWwgY2xhc3M9J2hpZXJhcmNoeSc+CjxsaSBjbGFzcz0nYXJjaGl2ZWRhdGUgY29sbGFwc2VkJz4KPGEgY2xhc3M9J3RvZ2dsZScgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApJz4KPHNwYW4gY2xhc3M9J3ppcHB5Jz4KCiAgICAgICAgJiM5NjU4OyYjMTYwOwogICAgICAKPC9zcGFuPgo8L2E+CjxhIGNsYXNzPSdwb3N0LWNvdW50LWxpbmsnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTNfMTFfMDFfYXJjaGl2ZS5odG1sJz4KTm92ZW1iZXIKPC9hPgo8c3BhbiBjbGFzcz0ncG9zdC1jb3VudCcgZGlyPSdsdHInPigzKTwvc3Bhbj4KPC9saT4KPC91bD4KPC9saT4KPC91bD4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjxzcGFuIGNsYXNzPSd3aWRnZXQtaXRlbS1jb250cm9sJz4KPHNwYW4gY2xhc3M9J2l0ZW0tY29udHJvbCBibG9nLWFkbWluJz4KPGEgY2xhc3M9J3F1aWNrZWRpdCcgaHJlZj0nLy93d3cuYmxvZ2dlci5jb20vcmVhcnJhbmdlP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JndpZGdldFR5cGU9QmxvZ0FyY2hpdmUmd2lkZ2V0SWQ9QmxvZ0FyY2hpdmUxJmFjdGlvbj1lZGl0V2lkZ2V0JnNlY3Rpb25JZD1uYXZpZ2F0aW9uJyBvbmNsaWNrPSdyZXR1cm4gX1dpZGdldE1hbmFnZXIuX1BvcHVwQ29uZmlnKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJCbG9nQXJjaGl2ZTEiKSk7JyB0YXJnZXQ9J2NvbmZpZ0Jsb2dBcmNoaXZlMScgdGl0bGU9J0VkaXQnPgo8aW1nIGFsdD0nJyBoZWlnaHQ9JzE4JyBzcmM9Jy8vaW1nMS5ibG9nYmxvZy5jb20vaW1nL2ljb24xOF93cmVuY2hfYWxsYmtnLnBuZycgd2lkdGg9JzE4Jy8+CjwvYT4KPC9zcGFuPgo8L3NwYW4+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPC9kaXY+CjwvZGl2PjxkaXYgY2xhc3M9J3dpZGdldCBDdXN0b21TZWFyY2gnIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0N1c3RvbVNlYXJjaDEnPgo8aDIgY2xhc3M9J3RpdGxlJz5TZWFyY2g8L2gyPgo8ZGl2IGNsYXNzPSd3aWRnZXQtY29udGVudCc+CjxkaXYgaWQ9J0N1c3RvbVNlYXJjaDFfZm9ybSc+CjxzcGFuIGNsYXNzPSdjc2Utc3RhdHVzJz5Mb2FkaW5nLi4uPC9zcGFuPgo8L2Rpdj4KPC9kaXY+CjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+CiAgICAgICN1ZHMtc2VhcmNoQ29udHJvbCAuZ3MtcmVzdWx0IC5ncy10aXRsZSwKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5ncy1yZXN1bHQgLmdzLXRpdGxlICosCiAgICAgICN1ZHMtc2VhcmNoQ29udHJvbCAuZ3NjLXJlc3VsdHMgLmdzYy10cmFpbGluZy1tb3JlLXJlc3VsdHMsCiAgICAgICN1ZHMtc2VhcmNoQ29udHJvbCAuZ3NjLXJlc3VsdHMgLmdzYy10cmFpbGluZy1tb3JlLXJlc3VsdHMgKiB7CiAgICAgICAgY29sb3I6IzAwYzsKICAgICAgfQoKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5ncy1yZXN1bHQgLmdzLXRpdGxlIGE6dmlzaXRlZCwKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5ncy1yZXN1bHQgLmdzLXRpdGxlIGE6dmlzaXRlZCAqIHsKICAgICAgICBjb2xvcjojMDBjOwogICAgICB9CgogICAgICAjdWRzLXNlYXJjaENvbnRyb2wgLmdzLXJlbGF0aXZlUHVibGlzaGVkRGF0ZSwKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5ncy1wdWJsaXNoZWREYXRlIHsKICAgICAgICBjb2xvcjogIzZmNmY2ZjsKICAgICAgfQoKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5ncy1yZXN1bHQgYS5ncy12aXNpYmxlVXJsLAogICAgICAjdWRzLXNlYXJjaENvbnRyb2wgLmdzLXJlc3VsdCAuZ3MtdmlzaWJsZVVybCB7CiAgICAgICAgY29sb3I6ICMwMGM7CiAgICAgIH0KCiAgICAgICN1ZHMtc2VhcmNoQ29udHJvbCAuZ3NjLXJlc3VsdHMgewogICAgICAgIGJvcmRlci1jb2xvcjogIzZmNmY2ZjsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA5M2NhOwogICAgICB9CgogICAgICAjdWRzLXNlYXJjaENvbnRyb2wgLmdzYy10YWJoQWN0aXZlIHsKICAgICAgICBib3JkZXItY29sb3I6ICM2ZjZmNmY7CiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzZmNmY2ZjsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA5M2NhOwogICAgICAgIGNvbG9yOiAjNTU1NTU1OwogICAgICB9CgogICAgICAjdWRzLXNlYXJjaENvbnRyb2wgLmdzYy10YWJoSW5hY3RpdmUgewogICAgICAgIGJvcmRlci1jb2xvcjogIzZmNmY2ZjsKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICAgICBjb2xvcjogIzAwYzsKICAgICAgfQoKICAgICAgI3Vkcy1zZWFyY2hDbGVhclJlc3VsdHMgewogICAgICAgIGJvcmRlci1jb2xvcjogIzZmNmY2ZjsKICAgICAgfQoKICAgICAgI3Vkcy1zZWFyY2hDbGVhclJlc3VsdHM6aG92ZXIgewogICAgICAgIGJvcmRlci1jb2xvcjogIzZmNmY2ZjsKICAgICAgfQoKICAgICAgI3Vkcy1zZWFyY2hDb250cm9sIC5nc2MtY3Vyc29yLXBhZ2UgewogICAgICAgIGNvbG9yOiAjMDBjOwogICAgICB9CgogICAgICAjdWRzLXNlYXJjaENvbnRyb2wgLmdzYy1jdXJzb3ItY3VycmVudC1wYWdlIHsKICAgICAgICBjb2xvcjogIzU1NTU1NTsKICAgICAgfQogICAgPC9zdHlsZT4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8c3BhbiBjbGFzcz0nd2lkZ2V0LWl0ZW0tY29udHJvbCc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbic+CjxhIGNsYXNzPSdxdWlja2VkaXQnIGhyZWY9Jy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ3aWRnZXRUeXBlPUN1c3RvbVNlYXJjaCZ3aWRnZXRJZD1DdXN0b21TZWFyY2gxJmFjdGlvbj1lZGl0V2lkZ2V0JnNlY3Rpb25JZD1uYXZpZ2F0aW9uJyBvbmNsaWNrPSdyZXR1cm4gX1dpZGdldE1hbmFnZXIuX1BvcHVwQ29uZmlnKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJDdXN0b21TZWFyY2gxIikpOycgdGFyZ2V0PSdjb25maWdDdXN0b21TZWFyY2gxJyB0aXRsZT0nRWRpdCc+CjxpbWcgYWx0PScnIGhlaWdodD0nMTgnIHNyYz0nLy9pbWcxLmJsb2dibG9nLmNvbS9pbWcvaWNvbjE4X3dyZW5jaF9hbGxia2cucG5nJyB3aWR0aD0nMTgnLz4KPC9hPgo8L3NwYW4+Cjwvc3Bhbj4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8L2hlYWRlcj48IS0tIEVORCBIZWFkZXJXcmFwcGVyIC0tPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9J2JyYW5kaW5nJz4KPGRpdiBjbGFzcz0nc2lkZWJhciB0YWdsaW5lIHNlY3Rpb24nIGlkPSd0YWdsaW5lJz48ZGl2IGNsYXNzPSd3aWRnZXQgSW1hZ2UnIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0ltYWdlMSc+CjxkaXYgY2xhc3M9J3dpZGdldC1jb250ZW50Jz4KPGltZyBhbHQ9J0JBRSBTeXN0ZW1zIEFJIEJsb2cgQmFubmVyJyBoZWlnaHQ9JzE4MCcgaWQ9J0ltYWdlMV9pbWcnIHNyYz0naHR0cDovLzMuYnAuYmxvZ3Nwb3QuY29tLy1zb00xNm9kSllTcy9WaTQtY1ExZGRkSS9BQUFBQUFBQUFRTS9YWUVZaEd2cVBXNC9zMTYwMC1yL1RocmVhdCUyQlJlc2VhcmNoJTJCQmxvZyUyQkJhbm5lci5qcGcnIHdpZHRoPScxNjAwJy8+Cjxici8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjxzcGFuIGNsYXNzPSd3aWRnZXQtaXRlbS1jb250cm9sJz4KPHNwYW4gY2xhc3M9J2l0ZW0tY29udHJvbCBibG9nLWFkbWluJz4KPGEgY2xhc3M9J3F1aWNrZWRpdCcgaHJlZj0nLy93d3cuYmxvZ2dlci5jb20vcmVhcnJhbmdlP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JndpZGdldFR5cGU9SW1hZ2Umd2lkZ2V0SWQ9SW1hZ2UxJmFjdGlvbj1lZGl0V2lkZ2V0JnNlY3Rpb25JZD10YWdsaW5lJyBvbmNsaWNrPSdyZXR1cm4gX1dpZGdldE1hbmFnZXIuX1BvcHVwQ29uZmlnKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJJbWFnZTEiKSk7JyB0YXJnZXQ9J2NvbmZpZ0ltYWdlMScgdGl0bGU9J0VkaXQnPgo8aW1nIGFsdD0nJyBoZWlnaHQ9JzE4JyBzcmM9Jy8vaW1nMS5ibG9nYmxvZy5jb20vaW1nL2ljb24xOF93cmVuY2hfYWxsYmtnLnBuZycgd2lkdGg9JzE4Jy8+CjwvYT4KPC9zcGFuPgo8L3NwYW4+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J2JyYW5kaW5nLXdyYXAnPgo8ZGl2IGNsYXNzPSdiYW5uZXItdGV4dCBzZWN0aW9uJyBpZD0nYmFuLXRleHQnPjxkaXYgY2xhc3M9J3dpZGdldCBUZXh0JyBkYXRhLXZlcnNpb249JzEnIGlkPSdUZXh0MSc+CjxkaXYgY2xhc3M9J3dpZGdldC1jb250ZW50Jz4KPHNwYW4+VGhyZWF0IFJlc2VhcmNoIEJsb2c8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjxzcGFuIGNsYXNzPSd3aWRnZXQtaXRlbS1jb250cm9sJz4KPHNwYW4gY2xhc3M9J2l0ZW0tY29udHJvbCBibG9nLWFkbWluJz4KPGEgY2xhc3M9J3F1aWNrZWRpdCcgaHJlZj0nLy93d3cuYmxvZ2dlci5jb20vcmVhcnJhbmdlP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JndpZGdldFR5cGU9VGV4dCZ3aWRnZXRJZD1UZXh0MSZhY3Rpb249ZWRpdFdpZGdldCZzZWN0aW9uSWQ9YmFuLXRleHQnIG9uY2xpY2s9J3JldHVybiBfV2lkZ2V0TWFuYWdlci5fUG9wdXBDb25maWcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRleHQxIikpOycgdGFyZ2V0PSdjb25maWdUZXh0MScgdGl0bGU9J0VkaXQnPgo8aW1nIGFsdD0nJyBoZWlnaHQ9JzE4JyBzcmM9Jy8vaW1nMS5ibG9nYmxvZy5jb20vaW1nL2ljb24xOF93cmVuY2hfYWxsYmtnLnBuZycgd2lkdGg9JzE4Jy8+CjwvYT4KPC9zcGFuPgo8L3NwYW4+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J2Jhbm5lci1sb2dvJz4KPGltZyBzcmM9J2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vY3MvQkFFLVN0YXRpYy9pbWcvbG9nb19iYWVzeXN0ZW1zX2VuLnBuZycvPgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdzbGlkZXRvZ2dsZSc+CjxkaXYgY2xhc3M9J3NsaWRlcyc+CjxkaXYgY2xhc3M9J3NpZGViYXIgZ3JpZCBsZWZ0IHNlY3Rpb24nIGlkPSdncmlkMSc+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdzaWRlYmFyIGdyaWQgbGVmdCBzZWN0aW9uJyBpZD0nZ3JpZDInPjxkaXYgY2xhc3M9J3dpZGdldCBIVE1MJyBkYXRhLXZlcnNpb249JzEnIGlkPSdIVE1MMyc+CjxoMiBjbGFzcz0ndGl0bGUnPkZsaWNrcjwvaDI+CjxkaXYgY2xhc3M9J3dpZGdldC1jb250ZW50Jz4KPC9kaXY+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPHNwYW4gY2xhc3M9J3dpZGdldC1pdGVtLWNvbnRyb2wnPgo8c3BhbiBjbGFzcz0naXRlbS1jb250cm9sIGJsb2ctYWRtaW4nPgo8YSBjbGFzcz0ncXVpY2tlZGl0JyBocmVmPScvL3d3dy5ibG9nZ2VyLmNvbS9yZWFycmFuZ2U/YmxvZ0lEPTczNDU1MTUwODU4Mzg0MjI3OTkmd2lkZ2V0VHlwZT1IVE1MJndpZGdldElkPUhUTUwzJmFjdGlvbj1lZGl0V2lkZ2V0JnNlY3Rpb25JZD1ncmlkMicgb25jbGljaz0ncmV0dXJuIF9XaWRnZXRNYW5hZ2VyLl9Qb3B1cENvbmZpZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiSFRNTDMiKSk7JyB0YXJnZXQ9J2NvbmZpZ0hUTUwzJyB0aXRsZT0nRWRpdCc+CjxpbWcgYWx0PScnIGhlaWdodD0nMTgnIHNyYz0nLy9pbWcxLmJsb2dibG9nLmNvbS9pbWcvaWNvbjE4X3dyZW5jaF9hbGxia2cucG5nJyB3aWR0aD0nMTgnLz4KPC9hPgo8L3NwYW4+Cjwvc3Bhbj4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0nc2lkZWJhciBncmlkIGxlZnQgc2VjdGlvbicgaWQ9J2dyaWQzJz48ZGl2IGNsYXNzPSd3aWRnZXQgTGFiZWwnIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0xhYmVsMSc+CjxoMj5MYWJlbHM8L2gyPgo8ZGl2IGNsYXNzPSd3aWRnZXQtY29udGVudCBsaXN0LWxhYmVsLXdpZGdldC1jb250ZW50Jz4KPHVsPgo8bGk+CjxhIGRpcj0nbHRyJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy9zZWFyY2gvbGFiZWwvVGhyZWF0JTIwUmVzZWFyY2gnPlRocmVhdCBSZXNlYXJjaDwvYT4KPC9saT4KPC91bD4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8c3BhbiBjbGFzcz0nd2lkZ2V0LWl0ZW0tY29udHJvbCc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbic+CjxhIGNsYXNzPSdxdWlja2VkaXQnIGhyZWY9Jy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ3aWRnZXRUeXBlPUxhYmVsJndpZGdldElkPUxhYmVsMSZhY3Rpb249ZWRpdFdpZGdldCZzZWN0aW9uSWQ9Z3JpZDMnIG9uY2xpY2s9J3JldHVybiBfV2lkZ2V0TWFuYWdlci5fUG9wdXBDb25maWcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkxhYmVsMSIpKTsnIHRhcmdldD0nY29uZmlnTGFiZWwxJyB0aXRsZT0nRWRpdCc+CjxpbWcgYWx0PScnIGhlaWdodD0nMTgnIHNyYz0nLy9pbWcxLmJsb2dibG9nLmNvbS9pbWcvaWNvbjE4X3dyZW5jaF9hbGxia2cucG5nJyB3aWR0aD0nMTgnLz4KPC9hPgo8L3NwYW4+Cjwvc3Bhbj4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjb250YWluZXInPgo8ZGl2IGNsYXNzPSdjb250ZW50LXdyYXBwZXInPgo8ZGl2IGNsYXNzPSdtYWluLXdyYXBwZXIgbGVmdCc+CjxkaXYgY2xhc3M9J21haW4gc2VjdGlvbicgaWQ9J21haW4nPjxkaXYgY2xhc3M9J3dpZGdldCBCbG9nJyBkYXRhLXZlcnNpb249JzEnIGlkPSdCbG9nMSc+CjxkaXYgY2xhc3M9J2Jsb2ctcG9zdHMgaGZlZWQnPgo8ZGl2IGNsYXNzPSdicmVhZGNydW1icyc+PHNwYW4+PGEgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvJyByZWw9J3RhZyc+SG9tZTwvYT48L3NwYW4+ICYjMTg3OyA8c3Bhbj5VbmxhYmVsbGVkPC9zcGFuPiAmIzE4NzsgPHNwYW4+VHdvIGJ5dGVzIHRvICQ5NTFtPC9zcGFuPjwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtb3V0ZXIiPgogICAgICAgIAoKICAgICAgICAgIDxkaXYgY2xhc3M9ImRhdGUtcG9zdHMiPgogICAgICAgIAo8ZGl2IGNsYXNzPSdwb3N0LW91dGVyIGJsb2ctb3V0ZXInPgo8ZGl2IGNsYXNzPSdwb3N0IGhlbnRyeSB1bmN1c3RvbWl6ZWQtcG9zdC10ZW1wbGF0ZScgaXRlbXByb3A9J2Jsb2dQb3N0JyBpdGVtc2NvcGU9J2l0ZW1zY29wZScgaXRlbXR5cGU9J2h0dHA6Ly9zY2hlbWEub3JnL0Jsb2dQb3N0aW5nJz4KPG1ldGEgY29udGVudD0naHR0cHM6Ly8yLmJwLmJsb2dzcG90LmNvbS8ta0pnOG83bFlIencvVnhoTWwxcUJDckkvQUFBQUFBQUFBZkEvbi1VdXJJSThxMkV5eWFVbFlNd3ZnTmpWZFdBNGlLN09nQ0xjQi9zNjQwL3NjaGVtZTEucG5nJyBpdGVtcHJvcD0naW1hZ2VfdXJsJy8+CjxtZXRhIGNvbnRlbnQ9JzczNDU1MTUwODU4Mzg0MjI3OTknIGl0ZW1wcm9wPSdibG9nSWQnLz4KPG1ldGEgY29udGVudD0nMzU1NDQ2MDU2MzYwMTY4ODk4JyBpdGVtcHJvcD0ncG9zdElkJy8+CjxhIG5hbWU9JzM1NTQ0NjA1NjM2MDE2ODg5OCc+PC9hPgo8ZGl2IGNsYXNzPSdwb3N0LWhlYWRlci1saW5lLTAnPgo8c3BhbiBjbGFzcz0ncG9zdC1hdXRob3IgdmNhcmQnPgpQb3N0ZWQgYnkKPHNwYW4gY2xhc3M9J2ZuJyBpdGVtcHJvcD0nYXV0aG9yJyBpdGVtc2NvcGU9J2l0ZW1zY29wZScgaXRlbXR5cGU9J2h0dHA6Ly9zY2hlbWEub3JnL1BlcnNvbic+CjxzcGFuIGl0ZW1wcm9wPSduYW1lJz5TZXJnZWkgU2hldmNoZW5rbzwvc3Bhbj4KPC9zcGFuPgo8L3NwYW4+CjxzcGFuIGNsYXNzPSdkYXRlLWZvb3Rlcic+LSBNb25kYXksIDI1IEFwcmlsIDIwMTY8L3NwYW4+CjwvZGl2Pgo8aDMgY2xhc3M9J3Bvc3QtdGl0bGUgZW50cnktdGl0bGUnIGl0ZW1wcm9wPSduYW1lJz4KVHdvIGJ5dGVzIHRvICQ5NTFtCjwvaDM+CjxkaXYgY2xhc3M9J3Bvc3QtaGVhZGVyJz4KPGRpdiBjbGFzcz0ncG9zdC1oZWFkZXItbGluZS0xJz4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdwb3N0LWJvZHkgZW50cnktY29udGVudCcgaWQ9J3Bvc3QtYm9keS0zNTU0NDYwNTYzNjAxNjg4OTgnIGl0ZW1wcm9wPSdhcnRpY2xlQm9keSc+CkluIEZlYnJ1YXJ5IDIwMTYgb25lIG9mIHRoZSBsYXJnZXN0IGN5YmVyIGhlaXN0cyB3YXMgY29tbWl0dGVkIGFuZCBzdWJzZXF1ZW50bHkgZGlzY2xvc2VkLiBBbiB1bmtub3duIGF0dGFja2VyIGdhaW5lZCBhY2Nlc3MgdG8gdGhlIEJhbmdsYWRlc2ggQmFuayYjODIxNztzIChCQikgU1dJRlQgcGF5bWVudCBzeXN0ZW0gYW5kIHJlcG9ydGVkbHkgaW5zdHJ1Y3RlZCBhbiBBbWVyaWNhbiBiYW5rIHRvIHRyYW5zZmVyIG1vbmV5IGZyb20gQkImIzgyMTc7cyBhY2NvdW50IHRvIGFjY291bnRzIGluIFRoZSBQaGlsaXBwaW5lcy4gVGhlIGF0dGFja2VycyBhdHRlbXB0ZWQgdG8gc3RlYWwgJDk1MW0sIG9mIHdoaWNoICQ4MW0gaXMgc3RpbGwgdW5hY2NvdW50ZWQgZm9yLgo8YnIgLz4KPGJyIC8+ClRoZSB0ZWNobmljYWwgZGV0YWlscyBvZiB0aGUgYXR0YWNrIGhhdmUgeWV0IHRvIGJlIG1hZGUgcHVibGljLCBob3dldmVyIHdlJiM4MjE3O3ZlIHJlY2VudGx5IGlkZW50aWZpZWQgdG9vbHMgdXBsb2FkZWQgdG8gb25saW5lIG1hbHdhcmUgcmVwb3NpdG9yaWVzIHRoYXQgd2UgYmVsaWV2ZSBhcmUgbGlua2VkIHRvIHRoZSBoZWlzdC4gVGhlIGN1c3RvbSBtYWx3YXJlIHdhcyBzdWJtaXR0ZWQgYnkgYSB1c2VyIGluIEJhbmdsYWRlc2gsIGFuZCBjb250YWlucyBzb3BoaXN0aWNhdGVkIGZ1bmN0aW9uYWxpdHkgZm9yIGludGVyYWN0aW5nIHdpdGggbG9jYWwgU1dJRlQgQWxsaWFuY2UgQWNjZXNzIHNvZnR3YXJlIHJ1bm5pbmcgaW4gdGhlIHZpY3RpbSBpbmZyYXN0cnVjdHVyZS4KPGJyIC8+CjxiciAvPgpUaGlzIG1hbHdhcmUgYXBwZWFycyB0byBiZSBqdXN0IHBhcnQgb2YgYSB3aWRlciBhdHRhY2sgdG9vbGtpdCwgYW5kIHdvdWxkIGhhdmUgYmVlbiB1c2VkIHRvIGNvdmVyIHRoZSBhdHRhY2tlcnMmIzgyMTc7IHRyYWNrcyBhcyB0aGV5IHNlbnQgZm9yZ2VkIHBheW1lbnQgaW5zdHJ1Y3Rpb25zIHRvIG1ha2UgdGhlIHRyYW5zZmVycy4gVGhpcyB3b3VsZCBoYXZlIGhhbXBlcmVkIHRoZSBkZXRlY3Rpb24gYW5kIHJlc3BvbnNlIHRvIHRoZSBhdHRhY2ssIGdpdmluZyBtb3JlIHRpbWUgZm9yIHRoZSBzdWJzZXF1ZW50IG1vbmV5IGxhdW5kZXJpbmcgdG8gdGFrZSBwbGFjZS4KPGJyIC8+CjxiciAvPgpUaGUgdG9vbHMgYXJlIGhpZ2hseSBjb25maWd1cmFibGUgYW5kIGdpdmVuIHRoZSBjb3JyZWN0IGFjY2VzcyBjb3VsZCBmZWFzaWJseSBiZSB1c2VkIGZvciBzaW1pbGFyIGF0dGFja3MgaW4gdGhlIGZ1dHVyZS48YnIgLz4KPGg1Pk1hbHdhcmUgc2FtcGxlczwvaDU+CjxiciAvPgo8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXI6IG5vbmU7IHdpZHRoOiAxMDAlcHg7Ij4KICAgIDx0Ym9keT4KICAgIDx0cj4KICAgICAgICA8dGQgc3R5bGU9ImJhY2tncm91bmQ6ICMzZDQxNDY7IGJvcmRlcjogc29saWQgIzNkNDE0NiAxLjBwdDsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogNDcuMTIlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSI0NyUiPlNIQTEKICAgICAgICA8L3RkPgogICAgICAgIDx0ZCBzdHlsZT0iYmFja2dyb3VuZDogIzNkNDE0NjsgYm9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlcjogc29saWQgIzNkNDE0NiAxLjBwdDsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMjEuNTglOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMSUiPkNvbXBpbGUgdGltZQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJiYWNrZ3JvdW5kOiAjM2Q0MTQ2OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiAxNC43MiU7IiB2YWxpZ249InRvcCIgd2lkdGg9IjE0JSI+U2l6ZSAoYnl0ZXMpCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQgc3R5bGU9ImJhY2tncm91bmQ6ICMzZDQxNDY7IGJvcmRlci1sZWZ0OiBub25lOyBib3JkZXI6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZzogMGNtIDUuNHB0IDBjbSA1LjRwdDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDE2LjU2JTsiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTYlIj5GaWxlbmFtZQogICAgICAgIDwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyLXRvcDogbm9uZTsgYm9yZGVyOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogNDcuMTIlOyIgdmFsaWduPSJib3R0b20iIHdpZHRoPSI0NyUiPjUyNWE4ZTNhZTRlM2RmOGM5YzYxZjJhNDllMzg1NDFkMTk2ZTkyMjgKICAgICAgICA8L3RkPgogICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyLWJvdHRvbTogc29saWQgIzNkNDE0NiAxLjBwdDsgYm9yZGVyLWxlZnQ6IG5vbmU7IGJvcmRlci1yaWdodDogc29saWQgIzNkNDE0NiAxLjBwdDsgYm9yZGVyLXRvcDogbm9uZTsgcGFkZGluZzogMGNtIDUuNHB0IDBjbSA1LjRwdDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDIxLjU4JTsiIHZhbGlnbj0idG9wIiB3aWR0aD0iMjElIj4yMDE2LTAyLTA1IDExOjQ2OjIwCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci1ib3R0b206IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci1sZWZ0OiBub25lOyBib3JkZXItcmlnaHQ6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci10b3A6IG5vbmU7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiAxNC43MiU7IiB2YWxpZ249InRvcCIgd2lkdGg9IjE0JSI+NjUsNTM2CiAgICAgICAgPC90ZD4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci1ib3R0b206IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci1sZWZ0OiBub25lOyBib3JkZXItcmlnaHQ6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci10b3A6IG5vbmU7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiAxNi41NiU7IiB2YWxpZ249InRvcCIgd2lkdGg9IjE2JSI+ZXZ0ZGlhZy5leGUKICAgICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci10b3A6IG5vbmU7IGJvcmRlcjogc29saWQgIzNkNDE0NiAxLjBwdDsgcGFkZGluZzogMGNtIDUuNHB0IDBjbSA1LjRwdDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDQ3LjEyJTsiIHZhbGlnbj0iYm90dG9tIiB3aWR0aD0iNDclIj43NmJhYjQ3OGRjYzcwZjk3OWNlNjJjZDMwNmU5YmE1MGVlODRlMzdlCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci1ib3R0b206IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci1sZWZ0OiBub25lOyBib3JkZXItcmlnaHQ6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci10b3A6IG5vbmU7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiAyMS41OCU7IiB2YWxpZ249InRvcCIgd2lkdGg9IjIxJSI+MjAxNi0wMi0wNCAxMzo0NTozOQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTQuNzIlOyIgdmFsaWduPSJib3R0b20iIHdpZHRoPSIxNCUiPjE2LDM4NAogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTYuNTYlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNiUiPmV2dHN5cy5leGUKICAgICAgICA8L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci10b3A6IG5vbmU7IGJvcmRlcjogc29saWQgIzNkNDE0NiAxLjBwdDsgcGFkZGluZzogMGNtIDUuNHB0IDBjbSA1LjRwdDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDQ3LjEyJTsiIHZhbGlnbj0iYm90dG9tIiB3aWR0aD0iNDclIj43MGJmMTY1OTdlMzc1YWQ2OTFmMmMxZWZhMTk0ZGJlN2Y2MGU0ZWViCiAgICAgICAgPC90ZD4KICAgICAgICA8dGQgc3R5bGU9ImJvcmRlci1ib3R0b206IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci1sZWZ0OiBub25lOyBib3JkZXItcmlnaHQ6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IGJvcmRlci10b3A6IG5vbmU7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiAyMS41OCU7IiB2YWxpZ249InRvcCIgd2lkdGg9IjIxJSI+MjAxNi0wMi0wNSAwODo1NToxOQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTQuNzIlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNCUiPjI0LDU3NgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTYuNTYlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNiUiPm5yb2ZmX2IuZXhlCiAgICAgICAgPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItdG9wOiBub25lOyBib3JkZXI6IHNvbGlkICMzZDQxNDYgMS4wcHQ7IHBhZGRpbmc6IDBjbSA1LjRwdCAwY20gNS40cHQ7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHdpZHRoOiA0Ny4xMiU7IiB2YWxpZ249ImJvdHRvbSIgd2lkdGg9IjQ3JSI+NjIwN2I5Mjg0MmIyOGE0MzgzMzBhMmJmMGVlOGRjYWI3ZWYwYTE2MwogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMjEuNTglOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIyMSUiPk4vQQogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTQuNzIlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNCUiPjMzLDg0OAogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkIHN0eWxlPSJib3JkZXItYm90dG9tOiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItbGVmdDogbm9uZTsgYm9yZGVyLXJpZ2h0OiBzb2xpZCAjM2Q0MTQ2IDEuMHB0OyBib3JkZXItdG9wOiBub25lOyBwYWRkaW5nOiAwY20gNS40cHQgMGNtIDUuNHB0OyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogMTYuNTYlOyIgdmFsaWduPSJ0b3AiIHdpZHRoPSIxNiUiPmdwY2EuZGF0CiAgICAgICAgPC90ZD4KICAgIDwvdHI+CjwvdGJvZHk+CjwvdGFibGU+CjxiciAvPgpXZSBiZWxpZXZlIGFsbCBmaWxlcyB3ZXJlIGNyZWF0ZWQgYnkgdGhlIHNhbWUgYWN0b3IocyksIGJ1dCB0aGUgbWFpbiBmb2N1cyBvZiB0aGUgcmVwb3J0IHdpbGwgYmUgb24gPGNvZGU+NTI1YThlM2FlNGUzZGY4YzljNjFmMmE0OWUzODU0MWQxOTZlOTIyODwvY29kZT4gYXMgdGhpcyBpcyB0aGUgY29tcG9uZW50IHRoYXQgY29udGFpbnMgbG9naWMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIFNXSUZUIHNvZnR3YXJlLgo8YnIgLz4KPGJyIC8+ClRoZSBtYWx3YXJlIHJlZ2lzdGVycyBpdHNlbGYgYXMgYSBzZXJ2aWNlIGFuZCBvcGVyYXRlcyB3aXRoaW4gYW4gZW52aXJvbm1lbnQgcnVubmluZyBTV0lGVCYjODIxNztzIEFsbGlhbmNlIHNvZnR3YXJlIHN1aXRlLCBwb3dlcmVkIGJ5IGFuIE9yYWNsZSBEYXRhYmFzZS4KPGJyIC8+CjxiciAvPgo8YSBocmVmPSJodHRwczovLzIuYnAuYmxvZ3Nwb3QuY29tLy1rSmc4bzdsWUh6dy9WeGhNbDFxQkNySS9BQUFBQUFBQUFmQS9uLVV1cklJOHEyRXl5YVVsWU13dmdOalZkV0E0aUs3T2dDTGNCL3MxNjAwL3NjaGVtZTEucG5nIiBpbWFnZWFuY2hvcj0iMSI+PGltZyBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly8yLmJwLmJsb2dzcG90LmNvbS8ta0pnOG83bFlIencvVnhoTWwxcUJDckkvQUFBQUFBQUFBZkEvbi1VdXJJSThxMkV5eWFVbFlNd3ZnTmpWZFdBNGlLN09nQ0xjQi9zNjQwL3NjaGVtZTEucG5nIiAvPjwvYT4KPGJyIC8+CjxiciAvPgpUaGUgbWFpbiBwdXJwb3NlIGlzIHRvIGluc3BlY3QgU1dJRlQgbWVzc2FnZXMgZm9yIHN0cmluZ3MgZGVmaW5lZCBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLiBGcm9tIHRoZXNlIG1lc3NhZ2VzLCB0aGUgbWFsd2FyZSBjYW4gZXh0cmFjdCBmaWVsZHMgc3VjaCBhcyB0cmFuc2ZlciByZWZlcmVuY2VzIGFuZCBTV0lGVCBhZGRyZXNzZXMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgc3lzdGVtIGRhdGFiYXNlLiBUaGVzZSBkZXRhaWxzIGFyZSB0aGVuIHVzZWQgdG8gZGVsZXRlIHNwZWNpZmljIHRyYW5zYWN0aW9ucywgb3IgdXBkYXRlIHRyYW5zYWN0aW9uIGFtb3VudHMgYXBwZWFyaW5nIGluIGJhbGFuY2UgcmVwb3J0aW5nIG1lc3NhZ2VzIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgQ29udmVydGlibGUgQ3VycmVuY3kgYXZhaWxhYmxlIGluIHNwZWNpZmljIGFjY291bnRzLgo8YnIgLz4KPGJyIC8+ClRoaXMgZnVuY3Rpb25hbGl0eSBydW5zIGluIGEgbG9vcCB1bnRpbCA2YW0gb24gNnRoIEZlYnJ1YXJ5IDIwMTYuIFRoaXMgaXMgc2lnbmlmaWNhbnQgZ2l2ZW4gdGhlIHRyYW5zZmVycyBhcmUgYmVsaWV2ZWQgdG8gaGF2ZSBvY2N1cnJlZCBpbiB0aGUgdHdvIGRheXMgcHJpb3IgdG8gdGhpcyBkYXRlLiBUaGUgdG9vbCB3YXMgY3VzdG9tIG1hZGUgZm9yIHRoaXMgam9iLCBhbmQgc2hvd3MgYSBzaWduaWZpY2FudCBsZXZlbCBvZiBrbm93bGVkZ2Ugb2YgU1dJRlQgQWxsaWFuY2UgQWNjZXNzIHNvZnR3YXJlIGFzIHdlbGwgYXMgZ29vZCBtYWx3YXJlIGNvZGluZyBza2lsbHMuCjxiciAvPgo8aDU+TWFsd2FyZSBjb25maWcgYW5kIGxvZ2dpbmc8L2g1Pgo8YnIgLz4KV2hlbiBydW4sIHRoZSBtYWx3YXJlIGRlY3J5cHRzIHRoZSBjb250ZW50cyBvZiBpdHMgY29uZmlndXJhdGlvbiBmaWxlLCB1c2luZyB0aGUgUkM0IGtleTo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+NGUgMzggMWYgYTcgN2YgMDggY2MgYWEgMGQgNTYgZWQgZWYgZjkgZWQgMDggZWY8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KVGhpcyBjb25maWd1cmF0aW9uIGlzIGxvY2F0ZWQgaW4gdGhlIGZvbGxvd2luZyBkaXJlY3Rvcnkgb24gdGhlIHZpY3RpbSBkZXZpY2U6CjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT5bUk9PVF9EUklWRV06XFVzZXJzXEFkbWluaXN0cmF0b3JcQXBwRGF0YVxMb2NhbFxBbGxpYW5zXGdwY2EuZGF0PC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+ClRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29udGFpbnMgYSBsaXN0IG9mIHRyYW5zYWN0aW9uIElEcywgc29tZSBhZGRpdGlvbmFsIGVudmlyb25tZW50IGluZm9ybWF0aW9uLCBhbmQgdGhlIGZvbGxvd2luZyBJUCBhZGRyZXNzIHRvIGJlIHVzZWQgZm9yIGNvbW1hbmQtYW5kLWNvbnRyb2wgKEMmYW1wO0MpOgo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+MTk2LjIwMi4xMDMuMTc0PC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+ClRoZSBzYW1wbGUgYWxzbyB1c2VzIHRoZSBmb2xsb3dpbmcgZmlsZSBmb3IgbG9nZ2luZzoKPGJyIC8+CjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IHBhZGRpbmc6IDJwdDsiPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBtYXJnaW4tbGVmdDogNXB4OyI+Cjxjb2RlPltST09UX0RSSVZFXTpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXExvY2FsXEFsbGlhbnNccmVjYXMuZGF0PC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+CjxoNT5Nb2R1bGUgcGF0Y2hpbmc8L2g1Pgo8YnIgLz4KVGhlIG1hbHdhcmUgZW51bWVyYXRlcyBhbGwgcHJvY2Vzc2VzLCBhbmQgaWYgYSBwcm9jZXNzIGhhcyB0aGUgbW9kdWxlIDxjb2RlPmxpYm9yYWRiLmRsbDwvY29kZT4gbG9hZGVkIGluIGl0LCBpdCB3aWxsIHBhdGNoIDIgYnl0ZXMgaW4gaXRzIG1lbW9yeSBhdCBhIHNwZWNpZmljIG9mZnNldC4gVGhlIHBhdGNoIHdpbGwgcmVwbGFjZSAyIGJ5dGVzIDxjb2RlPjB4NzU8L2NvZGU+IGFuZCA8Y29kZT4weDA0PC9jb2RlPiB3aXRoIHRoZSBieXRlcyA8Y29kZT4weDkwPC9jb2RlPiBhbmQgPGNvZGU+MHg5MDwvY29kZT4uCjxiciAvPgo8YnIgLz4KVGhlc2UgdHdvIGJ5dGVzIGFyZSB0aGUgSk5aIG9wY29kZSwgYnJpZWZseSBleHBsYWluZWQgYXMgPGVtPidpZiB0aGUgcmVzdWx0IG9mIHRoZSBwcmV2aW91cyBjb21wYXJpc29uIG9wZXJhdGlvbiBpcyBub3QgemVybywgdGhlbiBqdW1wIGludG8gdGhlIGFkZHJlc3MgdGhhdCBmb2xsb3dzIHRoaXMgaW5zdHJ1Y3Rpb24sIHBsdXMgNCBieXRlcyc8L2VtPi4KPGJyIC8+CjxiciAvPgpFc3NlbnRpYWxseSwgdGhpcyBvcGNvZGUgaXMgYSBjb25kaXRpb25hbCBqdW1wIGluc3RydWN0aW9uIHRoYXQgZm9sbG93cyBzb21lIGltcG9ydGFudCBjaGVjaywgc3VjaCBhcyBhIGtleSB2YWxpZGl0eSBjaGVjayBvciBhdXRob3Jpc2F0aW9uIHN1Y2Nlc3MgY2hlY2suIAo8YnIgLz4KPGJyIC8+CjxhIGhyZWY9Imh0dHBzOi8vMy5icC5ibG9nc3BvdC5jb20vLXczY3g5NFpmc19zL1Z4aE1xQ0dnb3hJL0FBQUFBQUFBQWZFL3hkV2htY1JmSnQwbDgyVTRFY0xxamZ1R3JoM2twaGJPQUNMY0IvczE2MDAvc2NoZW1lMi5wbmciIGltYWdlYW5jaG9yPSIxIj48aW1nIGJvcmRlcj0iMCIgc3JjPSJodHRwczovLzMuYnAuYmxvZ3Nwb3QuY29tLy13M2N4OTRaZnNfcy9WeGhNcUNHZ294SS9BQUFBQUFBQUFmRS94ZFdobWNSZkp0MGw4MlU0RWNMcWpmdUdyaDNrcGhiT0FDTGNCL3M2NDAvc2NoZW1lMi5wbmciIC8+PC9hPgo8YnIgLz4KPGJyIC8+ClRoZSBwYXRjaCB3aWxsIHJlcGxhY2UgdGhpcyAyLWJ5dGUgY29uZGl0aW9uYWwganVtcCB3aXRoIDIgJ2RvLW5vdGhpbmcnIChOT1ApIGluc3RydWN0aW9ucywgZWZmZWN0aXZlbHkgZm9yY2luZyB0aGUgaG9zdCBhcHBsaWNhdGlvbiB0byBiZWxpZXZlIHRoYXQgdGhlIGZhaWxlZCBjaGVjayBoYXMgaW4gZmFjdCBzdWNjZWVkZWQuCjxiciAvPgo8YnIgLz4KRm9yIGV4YW1wbGUsIHRoZSBvcmlnaW5hbCBjb2RlIGNvdWxkIGxvb2sgbGlrZToKPGJyIC8+CjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IHBhZGRpbmc6IDJwdDsiPgombmJzcDs4NSZuYnNwO0MwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsiPnRlc3QmbmJzcDtlYXgsJm5ic3A7ZWF4PC9zcGFuPiZuYnNwOzsmbmJzcDtzb21lJm5ic3A7aW1wb3J0YW50Jm5ic3A7Y2hlY2s8YnIgLz4KJm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiNmYzRjMDI7Ij43NSZuYnNwOzA0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7am56Jm5ic3A7Jm5ic3A7ZmFpbGVkPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOzsmbmJzcDtpZiZuYnNwO2ZhaWxlZCwmbmJzcDtqdW1wJm5ic3A7dG8mbmJzcDsnZmFpbGVkJyZuYnNwO2xhYmVsJm5ic3A7YmVsb3c8YnIgLz4KJm5ic3A7MzMmbmJzcDtjMCZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJjb2xvcjogYmxhY2s7Ij54b3ImbmJzcDsmbmJzcDtlYXgsJm5ic3A7ZWF4PC9zcGFuPiZuYnNwOzsmbmJzcDtvdGhlcndpc2UsJm5ic3A7c2V0Jm5ic3A7cmVzdWx0Jm5ic3A7dG8mbmJzcDswJm5ic3A7KHN1Y2Nlc3MpPGJyIC8+CiZuYnNwO2ViJm5ic3A7MTcmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyI+am1wJm5ic3A7Jm5ic3A7ZXhpdDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs7Jm5ic3A7YW5kJm5ic3A7dGhlbiZuYnNwO2V4aXQ8YnIgLz4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsiPmZhaWxlZDo8L3NwYW4+PGJyIC8+CiZuYnNwO0I4Jm5ic3A7MDEmbmJzcDswMCZuYnNwOzAwJm5ic3A7MDAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyI+bW92Jm5ic3A7Jm5ic3A7ZWF4LCZuYnNwOzE8L3NwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7OyZuYnNwO3NldCZuYnNwO3Jlc3VsdCZuYnNwO3RvJm5ic3A7MSZuYnNwOyhmYWlsdXJlKQo8L2Rpdj4KPGJyIC8+Ck9uY2UgaXQncyBwYXRjaGVkLCBpdCB3b3VsZCBsb29rIGxpa2U6CjxiciAvPjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IHBhZGRpbmc6IDJwdDsiPgombmJzcDs4NSZuYnNwO0MwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsiPnRlc3QmbmJzcDtlYXgsJm5ic3A7ZWF4PC9zcGFuPiZuYnNwOzsmbmJzcDtzb21lJm5ic3A7aW1wb3J0YW50Jm5ic3A7Y2hlY2s8YnIgLz4KJm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiAjZmM0YzAyOyI+OTAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtub3A8L3NwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7OyZuYnNwOydkbyBub3RoaW5nJyBpbiBwbGFjZSBvZiAweDc1PGJyIC8+CiZuYnNwOzxzcGFuIHN0eWxlPSJjb2xvcjogI2ZjNGMwMjsiPjkwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7bm9wPC9zcGFuPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzsmbmJzcDsnZG8gbm90aGluZycgaW4gcGxhY2Ugb2YgMHgwNDxiciAvPgombmJzcDszMyZuYnNwO2MwJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsiPnhvciZuYnNwOyZuYnNwO2VheCwmbmJzcDtlYXg8L3NwYW4+Jm5ic3A7OyZuYnNwO2Fsd2F5cyBzZXQgcmVzdWx0IHRvIDAgKHN1Y2Nlc3MpPGJyIC8+CiZuYnNwO2ViJm5ic3A7MTcmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyI+am1wJm5ic3A7Jm5ic3A7ZXhpdDwvc3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs7Jm5ic3A7YW5kJm5ic3A7dGhlbiZuYnNwO2V4aXQ8YnIgLz4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOiBibGFjazsiPmZhaWxlZDo8L3NwYW4+PGJyIC8+CiZuYnNwO0I4Jm5ic3A7MDEmbmJzcDswMCZuYnNwOzAwJm5ic3A7MDAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6IGJsYWNrOyI+bW92Jm5ic3A7Jm5ic3A7ZWF4LCZuYnNwOzE8L3NwYW4+Jm5ic3A7Jm5ic3A7Jm5ic3A7OyZuYnNwO25ldmVyIHJlYWNoZWQ6IHNldCByZXN1bHQgdG8gMSAoZmFpbCkKPC9kaXY+CjxiciAvPgpBcyBhIHJlc3VsdCwgdGhlIGltcG9ydGFudCBjaGVjayByZXN1bHQgd2lsbCBiZSBpZ25vcmVkLCBhbmQgdGhlIGNvZGUgd2lsbCBuZXZlciBqdW1wIHRvICdmYWlsZWQnLiBJbnN0ZWFkLCBpdCB3aWxsIHByb2NlZWQgaW50byBzZXR0aW5nIHJlc3VsdCB0byAwIChzdWNjZXNzKS4KPGJyIC8+PGJyIC8+ClRoZSA8Y29kZT5saWJvcmFkYi5kbGw8L2NvZGU+IG1vZHVsZSBiZWxvbmdzIHRvIFNXSUZUJ3MgQWxsaWFuY2Ugc29mdHdhcmUgc3VpdGUsIHBvd2VyZWQgYnkgT3JhY2xlIERhdGFiYXNlLCBhbmQgaXMgcmVzcG9uc2libGUgZm9yOgo8YnIgLz48YnIgLz4KPHVsPgo8bGk+Jm5ic3A7Jm5ic3A7Jm5ic3A7JiM4MjI2OyZuYnNwOyZuYnNwO1JlYWRpbmcgdGhlIEFsbGlhbmNlIGRhdGFiYXNlIHBhdGggZnJvbSB0aGUgcmVnaXN0cnk7PC9saT4KPGxpPiZuYnNwOyZuYnNwOyZuYnNwOyYjODIyNjsmbmJzcDsmbmJzcDtTdGFydGluZyB0aGUgZGF0YWJhc2U7PC9saT4KPGxpPiZuYnNwOyZuYnNwOyZuYnNwOyYjODIyNjsmbmJzcDsmbmJzcDtQZXJmb3JtaW5nIGRhdGFiYXNlIGJhY2t1cCAmYW1wOyByZXN0b3JlIGZ1bmN0aW9ucy48L2xpPgo8L3VsPgo8YnIgLz4KQnkgbW9kaWZ5aW5nIHRoZSBsb2NhbCBpbnN0YW5jZSBvZiBTV0lGVCBBbGxpYW5jZSBBY2Nlc3Mgc29mdHdhcmUsIHRoZSBtYWx3YXJlIGdyYW50cyBpdHNlbGYgdGhlIGFiaWxpdHkgdG8gZXhlY3V0ZSBkYXRhYmFzZSB0cmFuc2FjdGlvbnMgd2l0aGluIHRoZSB2aWN0aW0gbmV0d29yay48YnIgLz4KPGg1PlNXSUZUIG1lc3NhZ2UgbW9uaXRvcmluZzwvaDU+CjxiciAvPgpUaGUgbWFsd2FyZSBtb25pdG9ycyBTV0lGVCBGaW5hbmNpYWwgQXBwbGljYXRpb24gKEZJTikgbWVzc2FnZXMsIGJ5IHBhcnNpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlcyA8Y29kZT4qLnByYzwvY29kZT4gYW5kIDxjb2RlPiouZmFsPC9jb2RlPiBsb2NhdGVkIHdpdGhpbiB0aGUgZGlyZWN0b3JpZXM6CjxiciAvPjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IHBhZGRpbmc6IDJwdDsiPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBtYXJnaW4tbGVmdDogNXB4OyI+Cjxjb2RlPltST09UX0RSSVZFXTpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXExvY2FsXEFsbGlhbnNcbWNtXGluXDxiciAvPltST09UX0RSSVZFXTpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXExvY2FsXEFsbGlhbnNcbWNtXG91dFw8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KSXQgcGFyc2VzIHRoZSBtZXNzYWdlcywgbG9va2luZyBmb3Igc3RyaW5ncyBkZWZpbmVkIGluIDxjb2RlPmdwY2EuZGF0PC9jb2RlPi4gV2UgZXhwZWN0IHRoZXNlIHdpbGwgYmUgdW5pcXVlIGlkZW50aWZpZXJzIHRoYXQgaWRlbnRpZnkgbWFsaWNpb3VzIHRyYW5zYWN0aW9ucyBpbml0aWF0ZWQgYnkgdGhlIGF0dGFja2Vycy4gSWYgcHJlc2VudCwgaXQgdGhlbiBhdHRlbXB0cyB0byBleHRyYWN0IGEgPGNvZGU+TUVTR19UUk5fUkVGPC9jb2RlPiBhbmQgPGNvZGU+TUVTR19TRU5ERVJfU1dJRlRfQUREUkVTUzwvY29kZT4gZnJvbSB0aGF0IHNhbWUgbWVzc2FnZSBieSBsb29raW5nIGZvciB0aGUgZm9sbG93aW5nIGhhcmQgY29kZWQgc3RyaW5nczoKPGJyIC8+CjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IHBhZGRpbmc6IDJwdDsiPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBtYXJnaW4tbGVmdDogNXB4OyI+Cjxjb2RlPgoiRklOIDkwMCBDb25maXJtYXRpb24gb2YgRGViaXQiPGJyIC8+CiIyMDogVHJhbnNhY3Rpb24iPGJyIC8+CiJTZW5kZXIgICA6IjxiciAvPgpbYWRkaXRpb25hbCBmaWx0ZXJzIGZyb20gdGhlIGRlY3J5cHRlZCBjb25maWd1cmF0aW9uIGZpbGUgZ3BjYS5kYXRdCjwvY29kZT48L2Rpdj4KPC9kaXY+CjxiciAvPgpUaGUgbWFsd2FyZSB3aWxsIHVzZSB0aGlzIGV4dHJhY3RlZCBkYXRhIHRvIGZvcm0gdmFsaWQgU1FMIHN0YXRlbWVudHMuIEl0IGF0dGVtcHRzIHRvIHJldHJpZXZlIHRoZSBTV0lGVCB1bmlxdWUgbWVzc2FnZSBJRCAoPGNvZGU+TUVTR19TX1VNSUQ8L2NvZGU+KSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB0cmFuc2ZlciByZWZlcmVuY2UgYW5kIHNlbmRlciBhZGRyZXNzIHJldHJpZXZlZCBlYXJsaWVyOgo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+ClNFTEVDVCBNRVNHX1NfVU1JRCBGUk9NIFNBQU9XTkVSLk1FU0dfJXMgV0hFUkUgTUVTR19TRU5ERVJfU1dJRlRfQUREUkVTUyBMSUtFICclJSVzJSUnIEFORCBNRVNHX1RSTl9SRUYgTElLRSAnJSUlcyUlJzsKPC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+ClRoZSA8Y29kZT5NRVNHX1NfVU1JRDwvY29kZT4gaXMgdGhlbiBwYXNzZWQgdG8gPGNvZGU+REVMRVRFPC9jb2RlPiBzdGF0ZW1lbnRzLCBkZWxldGluZyB0aGUgdHJhbnNhY3Rpb24gZnJvbSB0aGUgbG9jYWwgZGF0YWJhc2UuCjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT4KREVMRVRFIEZST00gU0FBT1dORVIuTUVTR18lcyBXSEVSRSBNRVNHX1NfVU1JRCA9ICclcyc7PGJyIC8+CkRFTEVURSBGUk9NIFNBQU9XTkVSLlRFWFRfJXMgV0hFUkUgVEVYVF9TX1VNSUQgPSAnJXMnOwo8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KVGhlIFNRTCBzdGF0ZW1lbnRzIGFyZSBkcm9wcGVkIGludG8gYSB0ZW1wb3JhcnkgZmlsZSB3aXRoIHRoZSAnU1FMJyBwcmVmaXguIFRoZSBTUUwgc3RhdGVtZW50cyBhcmUgcHJlcGVuZGVkIHdpdGggdGhlIGZvbGxvd2luZyBwcmVmaXhlZCBzdGF0ZW1lbnRzOgo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+CnNldCBoZWFkaW5nIG9mZjs8YnIgLz4Kc2V0IGxpbmVzaXplIDMyNTY3OzxiciAvPgpTRVQgRkVFREJBQ0sgT0ZGOzxiciAvPgpTRVQgRUNITyBPRkY7PGJyIC8+ClNFVCBGRUVEIE9GRjs8YnIgLz4KU0VUIFZFUklGWSBPRkY7CjwvY29kZT48L2Rpdj4KPC9kaXY+CjxiciAvPgpPbmNlIHRoZSB0ZW1wb3JhcnkgZmlsZSB3aXRoIHRoZSBTUUwgc3RhdGVtZW50cyBpcyBjb25zdHJ1Y3RlZCwgaXQgaXMgZXhlY3V0ZWQgZnJvbSBhIHNoZWxsIHNjcmlwdCB3aXRoIDxjb2RlPidzeXNkYmEnPC9jb2RlPiBwZXJtaXNzaW9ucy4gQW4gZXhhbXBsZSBpcyBzaG93biBiZWxvdzoKPGJyIC8+CjxiciAvPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBib3JkZXI6IHNvbGlkICNhNmE2YTYgMS4wcHQ7IHBhZGRpbmc6IDJwdDsiPgo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyBtYXJnaW4tbGVmdDogNXB4OyI+Cjxjb2RlPgpjbWQuZXhlIC9jIGVjaG8gZXhpdCB8IHNxbHBsdXMgLVMgLyBhcyBzeXNkYmEgQFtTUUxfU3RhdGVtZW50c10gJmd0OyBbT1VUUFVUX0ZJTEVdCjwvY29kZT48L2Rpdj4KPC9kaXY+CjxiciAvPgo8aDU+TG9naW4gbW9uaXRvcmluZzwvaDU+CjxiciAvPgpBZnRlciBzdGFydCB1cCB0aGUgbWFsd2FyZSBmYWxscyBpbnRvIGEgbG9vcCB3aGVyZSBpdCBjb25zdGFudGx5IGNoZWNrcyBmb3IgdGhlIGpvdXJuYWwgcmVjb3JkIHRoYXQgY29udGFpbnMgdGhlICJMb2dpbiIgc3RyaW5nIGluIGl0Ogo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+ClNFTEVDVCAqIEZST00gKFNFTEVDVCBKUk5MX0RJU1BMQVlfVEVYVCwgSlJOTF9EQVRFX1RJTUUgRlJPTSBTQUFPV05FUi5KUk5MXyVzIFdIRVJFIEpSTkxfRElTUExBWV9URVhUIExJS0UgJyUlTFQgQkJIT0JEREhBOiBMb2clJScgT1JERVIgQlkgSlJOTF9EQVRFX1RJTUUgREVTQykgQSBXSEVSRSBST1dOVU0gPSAxOwo8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KTk9URTogPGNvZGU+JiM4MjE2O0JCSE9CRERIJiM4MjE3OzwvY29kZT4gaXMgdGhlIFNXSUZUIGNvZGUgZm9yIHRoZSBCYW5nbGFkZXNoIEJhbmsgaW4gRGhha2EuCjxiciAvPgo8YnIgLz4KSWYgaXQgZmFpbHMgdG8gZmluZCB0aGUgIkxvZ2luIiByZWNvcmQsIGl0IGZhbGxzIGFzbGVlcCBmb3IgNSBzZWNvbmRzIGFuZCB0aGVuIHRyaWVzIGFnYWluLiBPbmNlIHRoZSAiTG9naW4iIHJlY29yZCBpcyBmb3VuZCwgdGhlIG1hbHdhcmUgc2VuZHMgYSBHRVQgcmVxdWVzdCB0byB0aGUgcmVtb3RlIEMmYW1wO0MuCjxiciAvPgo8YnIgLz4KVGhlIEdFVCByZXF1ZXN0IGhhcyB0aGUgZm9ybWF0Ogo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+CltDJmFtcDtDX3NlcnZlcl0vYWw/W2RhdGFdCjwvY29kZT48L2Rpdj4KPC9kaXY+CjxiciAvPgpUaGUgbWFsd2FyZSBub3RpZmllcyB0aGUgcmVtb3RlIEMmYW1wO0MgZWFjaCBob3VyIG9mIGV2ZW50cywgc2VuZGluZyA8Y29kZT4iLS0tTyI8L2NvZGU+IGlmIHRoZSAiTG9naW4iIChvcGVuKSBldmVudCBvY2N1cnJlZCwgPGNvZGU+Ii0tLUMiPC9jb2RlPiBpbiBjYXNlICJMb2dvdXQiIChjbG9zZSkgZXZlbnQgb2NjdXJyZWQsIG9yIDxjb2RlPiItLS1OIjwvY29kZT4gaWYgbmVpdGhlciBvZiB0aGUgZXZlbnRzIG9jY3VycmVkLCBlLmcuOgo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+CltDJmFtcDtDX3NlcnZlcl0vYWw/LS0tTwo8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KPGg1Pk1hbmlwdWxhdGluZyBiYWxhbmNlczwvaDU+CjxiciAvPgpUaGUgbWFsd2FyZSBtb25pdG9ycyBhbGwgU1dJRlQgbWVzc2FnZXMgZm91bmQgaW46CjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT4KW1JPT1RfRFJJVkVdOlxVc2Vyc1xBZG1pbmlzdHJhdG9yXEFwcERhdGFcTG9jYWxcQWxsaWFuc1xtY3BcaW5cKi4qPGJyIC8+CltST09UX0RSSVZFXTpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXExvY2FsXEFsbGlhbnNcbWNwXG91dFwqLio8YnIgLz4KW1JPT1RfRFJJVkVdOlxVc2Vyc1xBZG1pbmlzdHJhdG9yXEFwcERhdGFcTG9jYWxcQWxsaWFuc1xtY3BcdW5rXCouKjxiciAvPgpbUk9PVF9EUklWRV06XFVzZXJzXEFkbWluaXN0cmF0b3JcQXBwRGF0YVxMb2NhbFxBbGxpYW5zXG1jc1xuZnpwPGJyIC8+CltST09UX0RSSVZFXTpcVXNlcnNcQWRtaW5pc3RyYXRvclxBcHBEYXRhXExvY2FsXEFsbGlhbnNcbWNzXG5memY8YnIgLz4KW1JPT1RfRFJJVkVdOlxVc2Vyc1xBZG1pbmlzdHJhdG9yXEFwcERhdGFcTG9jYWxcQWxsaWFuc1xtY3NcZm9mcDxiciAvPgpbUk9PVF9EUklWRV06XFVzZXJzXEFkbWluaXN0cmF0b3JcQXBwRGF0YVxMb2NhbFxBbGxpYW5zXG1jc1xmb2ZmCjwvY29kZT48L2Rpdj4KPC9kaXY+CjxiciAvPgpUaGUgbWVzc2FnZXMgYXJlIHBhcnNlZCBsb29raW5nIGZvciBpbmZvcm1hdGlvbiB0YWdnZWQgd2l0aCB0aGUgZm9sbG93aW5nIHN0cmluZ3M6CjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT4KIjE5QTogQW1vdW50IjxiciAvPgoiOiBEZWJpdCI8YnIgLz4KIkRlYml0L0NyZWRpdCAgIDoiPGJyIC8+CiJTZW5kZXIgICA6IjxiciAvPgoiQW1vdW50ICAgICAgICAgOiI8YnIgLz4KIkZFREVSQUwgUkVTRVJWRSBCQU5LIjxiciAvPgoiICAgIEQiPGJyIC8+CiIgICAgQyI8YnIgLz4KIjYyRjogIjxiciAvPgomIzgyMjA7NjBGOiAiPGJyIC8+CiI2ME06ICI8YnIgLz4KIjYyTTogIjxiciAvPgoiQ3JlZGl0IjxiciAvPgoiRGViaXQiPGJyIC8+CiIgNjQ6ICI8YnIgLz4KIiAyMDogVHJhbnNhY3Rpb24iPGJyIC8+CiI5MEI6IFByaWNlIgo8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KRm9yIGV4YW1wbGUsIHRoZSA8Y29kZT4iNjJGOiI8L2NvZGU+IGZpZWxkIHNwZWNpZmllcyB0aGUgY2xvc2luZyBiYWxhbmNlLCA8Y29kZT4iNjBGOiI8L2NvZGU+IGlzIG9wZW5pbmcgYmFsYW5jZSwgPGNvZGU+IjE5QToiPC9jb2RlPiBpcyB0cmFuc2FjdGlvbiBhbW91bnQuCjxiciAvPgo8YnIgLz4KVGhlIG1hbHdhcmUgYWxzbyBjaGVja3MgaWYgdGhlIG1lc3NhZ2VzIGNvbnRhaW4gYSBmaWx0ZXIgc3BlY2lmaWVkIHdpdGhpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIDxjb2RlPmdwY2EuZGF0PC9jb2RlPi4KPGJyIC8+CjxiciAvPgpUaGUgbG9nZ2VkIGluIGFjY291bnQsIGFzIHNlZW4gZnJvbSB0aGUgam91cm5hbCwgaXMgdGhlbiB1c2VkIHRvIGNoZWNrIGhvdyBtdWNoIENvbnZlcnRpYmxlIEN1cnJlbmN5IGFtb3VudCAoPGNvZGU+TUVTR19GSU5fQ0NZX0FNT1VOVDwvY29kZT4pIGl0IGhhcyBhdmFpbGFibGU6CjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT4KU0VMRUNUIE1FU0dfRklOX0NDWV9BTU9VTlQgRlJPTSBTQUFPV05FUi5NRVNHXyVzIFdIRVJFIE1FU0dfU19VTUlEID0gJyVzJzsKPC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+CkFsdGVybmF0aXZlbHksIGl0IGNhbiBxdWVyeSBmb3IgYSBtZXNzYWdlIGZvciBhIHNwZWNpZmllZCBzZW5kZXIgd2l0aCBhIHNwZWNpZmllZCBhbW91bnQgb2YgQ29udmVydGlibGUgQ3VycmVuY3k6CjxiciAvPgo8YnIgLz4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgYm9yZGVyOiBzb2xpZCAjYTZhNmE2IDEuMHB0OyBwYWRkaW5nOiAycHQ7Ij4KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogI2YyZjJmMjsgbWFyZ2luLWxlZnQ6IDVweDsiPgo8Y29kZT4KU0VMRUNUIE1FU0dfU19VTUlEIEZST00gU0FBT1dORVIuTUVTR18lcyBXSEVSRSBNRVNHX1NFTkRFUl9TV0lGVF9BRERSRVNTIExJS0UgJyUlJXMlJScgQU5EIE1FU0dfRklOX0NDWV9BTU9VTlQgTElLRSAnJSUlcyUlJzsKPC9jb2RlPjwvZGl2Pgo8L2Rpdj4KPGJyIC8+ClRoZSBhbW91bnQgb2YgQ29udmVydGlibGUgQ3VycmVuY3kgaXMgdGhlbiBtYW5pcHVsYXRlZCBpbiB0aGUgbWVzc2FnZSBieSBjaGFuZ2luZyBpdCB0byB0aGUgYXJiaXRyYXJ5IHZhbHVlICg8Y29kZT5TRVQgTUVTR19GSU5fQ0NZX0FNT1VOVDwvY29kZT4pOgo8YnIgLz4KPGJyIC8+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IGJvcmRlcjogc29saWQgI2E2YTZhNiAxLjBwdDsgcGFkZGluZzogMnB0OyI+CjxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICNmMmYyZjI7IG1hcmdpbi1sZWZ0OiA1cHg7Ij4KPGNvZGU+ClVQREFURSBTQUFPV05FUi5NRVNHXyVzIFNFVCBNRVNHX0ZJTl9DQ1lfQU1PVU5UID0gJyVzJyBXSEVSRSBNRVNHX1NfVU1JRCA9ICclcyc7PGJyIC8+ClVQREFURSBTQUFPV05FUi5URVhUXyVzIFNFVCBURVhUX0RBVEFfQkxPQ0sgPSBVVExfUkFXLkNBU1RfVE9fVkFSQ0hBUjIoJyVzJykgV0hFUkUgVEVYVF9TX1VNSUQgPSAnJXMnOwo8L2NvZGU+PC9kaXY+CjwvZGl2Pgo8YnIgLz4KPGg1PlByaW50ZXIgbWFuaXB1bGF0aW9uPC9oNT4KPGJyIC8+CkluIG9yZGVyIHRvIGhpZGUgdGhlIGZyYXVkdWxlbnQgdHJhbnNhY3Rpb25zIGNhcnJpZWQgb3V0IGJ5IHRoZSBhdHRhY2tlcihzKSwgdGhlIGRhdGFiYXNlL21lc3NhZ2UgbWFuaXB1bGF0aW9ucyBhcmUgbm90IHN1ZmZpY2llbnQuIFNXSUZUIG5ldHdvcmsgYWxzbyBnZW5lcmF0ZXMgY29uZmlybWF0aW9uIG1lc3NhZ2VzLCBhbmQgdGhlc2UgbWVzc2FnZXMgYXJlIHNlbnQgYnkgdGhlIHNvZnR3YXJlIGZvciBwcmludGluZy4gSWYgdGhlIGZyYXVkdWxlbnQgdHJhbnNhY3Rpb24gY29uZmlybWF0aW9ucyBhcmUgcHJpbnRlZCBvdXQsIHRoZSBiYW5raW5nIG9mZmljaWFscyBjYW4gc3BvdCBhbiBhbm9tYWx5IGFuZCB0aGVuIHJlc3BvbmQgYXBwcm9wcmlhdGVseSB0byBzdG9wIHN1Y2ggdHJhbnNhY3Rpb25zIGZyb20gaGFwcGVuaW5nLgo8YnIgLz4KPGJyIC8+CkhlbmNlLCB0aGUgbWFsd2FyZSBhbHNvIGludGVyY2VwdHMgdGhlIGNvbmZpcm1hdGlvbiBTV0lGVCBtZXNzYWdlcyBhbmQgdGhlbiBzZW5kcyBmb3IgcHJpbnRpbmcgdGhlICdkb2N0b3JlZCcgKG1hbmlwdWxhdGVkKSBjb3BpZXMgb2Ygc3VjaCBtZXNzYWdlcyBpbiBvcmRlciB0byBjb3ZlciB1cCB0aGUgZnJhdWR1bGVudCB0cmFuc2FjdGlvbnMuCjxiciAvPgo8YnIgLz4KVG8gYWNoaWV2ZSB0aGF0LCB0aGUgU1dJRlQgbWVzc2FnZXMgdGhlIG1hbHdhcmUgbG9jYXRlcyBhcmUgcmVhZCwgcGFyc2VkLCBhbmQgY29udmVydGVkIGludG8gUFJUIGZpbGVzIHRoYXQgZGVzY3JpYmUgdGhlIHRleHQgaW4gUHJpbnRlciBDb21tYW5kIExhbmd1YWdlIChQQ0wpLgo8YnIgLz4KPGJyIC8+ClRoZXNlIHRlbXBvcmFyeSBQUlQgZmlsZXMgYXJlIHRoZW4gc3VibWl0dGVkIGZvciBwcmludGluZyBieSB1c2luZyBhbm90aGVyIGV4ZWN1dGFibGUgZmlsZSBjYWxsZWQgPGNvZGU+bnJvZmYuZXhlPC9jb2RlPiwgYSBsZWdpdGltYXRlIHRvb2wgZnJvbSB0aGUgU1dJRlQgc29mdHdhcmUgc3VpdGUuIAo8YnIgLz4KPGJyIC8+ClRoZSBQQ0wgbGFuZ3VhZ2UgdXNlZCBzcGVjaWZpZXMgdGhlIHByaW50ZXIgbW9kZWwsIHdoaWNoIGlzIDxlbT4iSFAgTGFzZXJKZXQgNDAwIE00MDEiPC9lbT46CjxiciAvPgo8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly8zLmJwLmJsb2dzcG90LmNvbS8taXMwc2JFSGltSjQvVnhoTXZlSnNiU0kvQUFBQUFBQUFBZkkvQVJ5YnE2eUpTOVVwTHpuTXExNkMwNWJ5MEhEWU1JQ2J3Q0xjQi9zMTYwMC9ocF9wcmludGVyLnBuZyIgaW1hZ2VhbmNob3I9IjEiPjxpbWcgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vMy5icC5ibG9nc3BvdC5jb20vLWlzMHNiRUhpbUo0L1Z4aE12ZUpzYlNJL0FBQUFBQUFBQWZJL0FSeWJxNnlKUzlVcEx6bk1xMTZDMDVieTBIRFlNSUNid0NMY0IvczMyMC9ocF9wcmludGVyLnBuZyIgLz48L2E+CjxiciAvPgo8YnIgLz4KT25jZSBzZW50IGZvciBwcmludGluZywgdGhlIFBSVCBmaWxlcyBhcmUgdGhlbiBvdmVyd3JpdHRlbiB3aXRoICcwJ3MgKHJlbGlhYmx5IGRlbGV0ZWQpLjxiciAvPgo8aDU+Q09OQ0xVU0lPTlM8L2g1Pgo8YnIgLz4KVGhlIGFuYWx5c2VkIHNhbXBsZSBhbGxvd3MgYSBnbGltcHNlIGludG8gdGhlIHRvb2xraXQgb2Ygb25lIG9mIHRoZSB0ZWFtIGluIHdlbGwtcGxhbm5lZCBiYW5rIGhlaXN0LiBNYW55IHBpZWNlcyBvZiB0aGUgcHV6emxlIGFyZSBzdGlsbCBtaXNzaW5nIHRob3VnaDogaG93IHRoZSBhdHRhY2tlcnMgc2VudCB0aGUgZnJhdWR1bGVudCB0cmFuc2ZlcnM7IGhvdyB0aGUgbWFsd2FyZSB3YXMgaW1wbGFudGVkOyBhbmQgY3J1Y2lhbGx5LCB3aG8gd2FzIGJlaGluZCB0aGlzLjxiciAvPgo8YnIgLz4KVGhpcyBtYWx3YXJlIHdhcyB3cml0dGVuIGJlc3Bva2UgZm9yIGF0dGFja2luZyBhIHNwZWNpZmljIHZpY3RpbSBpbmZyYXN0cnVjdHVyZSwgYnV0IHRoZSBnZW5lcmFsIHRvb2xzLCB0ZWNobmlxdWVzIGFuZCBwcm9jZWR1cmVzIHVzZWQgaW4gdGhlIGF0dGFjayBtYXkgYWxsb3cgdGhlIGdhbmcgdG8gc3RyaWtlIGFnYWluLiBBbGwgZmluYW5jaWFsIGluc3RpdHV0aW9ucyB3aG8gcnVuIFNXSUZUIEFsbGlhbmNlIEFjY2VzcyBhbmQgc2ltaWxhciBzeXN0ZW1zIHNob3VsZCBiZSBzZXJpb3VzbHkgcmV2aWV3aW5nIHRoZWlyIHNlY3VyaXR5IG5vdyB0byBtYWtlIHN1cmUgdGhleSB0b28gYXJlIG5vdCBleHBvc2VkLiAKPGJyIC8+CjxiciAvPgpUaGlzIGF0dGFja2VyIHB1dCBzaWduaWZpY2FudCBlZmZvcnQgaW50byBkZWxldGluZyBldmlkZW5jZSBvZiB0aGVpciBhY3Rpdml0aWVzLCBzdWJ2ZXJ0aW5nIG5vcm1hbCBidXNpbmVzcyBwcm9jZXNzZXMgdG8gcmVtYWluIHVuZGV0ZWN0ZWQgYW5kIGhhbXBlcmluZyB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgdmljdGltLiBUaGUgd2lkZXIgbGVzc29uIGxlYXJuZWQgaGVyZSBtYXkgYmUgdGhhdCBjcmltaW5hbHMgYXJlIGNvbmR1Y3RpbmcgbW9yZSBhbmQgbW9yZSBzb3BoaXN0aWNhdGVkIGF0dGFja3MgYWdhaW5zdCB2aWN0aW0gb3JnYW5pc2F0aW9ucywgcGFydGljdWxhcmx5IGluIHRoZSBhcmVhIG9mIG5ldHdvcmsgaW50cnVzaW9ucyAod2hpY2ggaGFzIHRyYWRpdGlvbmFsbHkgYmVlbiB0aGUgZG9tYWluIG9mIHRoZSAmIzgyMTY7QVBUJiM4MjE3OyBhY3RvcikuIEFzIHRoZSB0aHJlYXQgZXZvbHZlcywgYnVzaW5lc3NlcyBhbmQgb3RoZXIgbmV0d29yayBvd25lcnMgbmVlZCB0byBlbnN1cmUgdGhleSBhcmUgcHJlcGFyZWQgdG8ga2VlcCB1cCB3aXRoIHRoZSBldm9sdmluZyBjaGFsbGVuZ2Ugb2Ygc2VjdXJpbmcgY3JpdGljYWwgc3lzdGVtcy4KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9J3Bvc3QtZm9vdGVyJz4KPGRpdiBjbGFzcz0ncG9zdC1mb290ZXItbGluZSBwb3N0LWZvb3Rlci1saW5lLTEnPgo8c3BhbiBjbGFzcz0ncG9zdC10aW1lc3RhbXAnPgphdAo8bWV0YSBjb250ZW50PSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS8yMDE2LzA0L3R3by1ieXRlcy10by05NTFtLmh0bWwnIGl0ZW1wcm9wPSd1cmwnLz4KPGEgY2xhc3M9J3RpbWVzdGFtcC1saW5rJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE2LzA0L3R3by1ieXRlcy10by05NTFtLmh0bWwnIHJlbD0nYm9va21hcmsnIHRpdGxlPSdwZXJtYW5lbnQgbGluayc+PGFiYnIgY2xhc3M9J3B1Ymxpc2hlZCcgaXRlbXByb3A9J2RhdGVQdWJsaXNoZWQnIHRpdGxlPScyMDE2LTA0LTI1VDA4OjAwOjAwKzAxOjAwJz4wODowMDwvYWJicj48L2E+Cjwvc3Bhbj4KPHNwYW4gY2xhc3M9J3JlYWN0aW9uLWJ1dHRvbnMnPgo8L3NwYW4+CjxzcGFuIGNsYXNzPSdzdGFyLXJhdGluZ3MnPgo8L3NwYW4+CjxzcGFuIGNsYXNzPSdwb3N0LWNvbW1lbnQtbGluayc+Cjwvc3Bhbj4KPHNwYW4gY2xhc3M9J3Bvc3QtYmFja2xpbmtzIHBvc3QtY29tbWVudC1saW5rJz4KPC9zcGFuPgo8c3BhbiBjbGFzcz0ncG9zdC1pY29ucyc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbiBwaWQtMTQ4MTI5MDEyMic+CjxhIGhyZWY9J2h0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3Bvc3QtZWRpdC5nP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JnBvc3RJRD0zNTU0NDYwNTYzNjAxNjg4OTgmZnJvbT1wZW5jaWwnIHRpdGxlPSdFZGl0IFBvc3QnPgo8aW1nIGFsdD0nJyBjbGFzcz0naWNvbi1hY3Rpb24nIGhlaWdodD0nMTgnIHNyYz0nLy9pbWcyLmJsb2dibG9nLmNvbS9pbWcvaWNvbjE4X2VkaXRfYWxsYmtnLmdpZicgd2lkdGg9JzE4Jy8+CjwvYT4KPC9zcGFuPgo8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdwb3N0LWZvb3Rlci1saW5lIHBvc3QtZm9vdGVyLWxpbmUtMic+CjxzcGFuIGNsYXNzPSdwb3N0LWxhYmVscyc+Cjwvc3Bhbj4KPGJyLz48c3BhbiBjbGFzcz0ncG9zdC1sb2NhdGlvbic+Cjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9J3Bvc3QtZm9vdGVyLWxpbmUgcG9zdC1mb290ZXItbGluZS0zJz4KPGRpdiBjbGFzcz0ncG9zdC1zaGFyZS1idXR0b25zIGdvb2ctaW5saW5lLWJsb2NrJz4KPGEgY2xhc3M9J2dvb2ctaW5saW5lLWJsb2NrIHNoYXJlLWJ1dHRvbiBzYi1lbWFpbCcgaHJlZj0naHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vc2hhcmUtcG9zdC5nP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JnBvc3RJRD0zNTU0NDYwNTYzNjAxNjg4OTgmdGFyZ2V0PWVtYWlsJyB0YXJnZXQ9J19ibGFuaycgdGl0bGU9J0VtYWlsIFRoaXMnPjxzcGFuIGNsYXNzPSdzaGFyZS1idXR0b24tbGluay10ZXh0Jz5FbWFpbCBUaGlzPC9zcGFuPjwvYT48YSBjbGFzcz0nZ29vZy1pbmxpbmUtYmxvY2sgc2hhcmUtYnV0dG9uIHNiLWJsb2cnIGhyZWY9J2h0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3NoYXJlLXBvc3QuZz9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZwb3N0SUQ9MzU1NDQ2MDU2MzYwMTY4ODk4JnRhcmdldD1ibG9nJyBvbmNsaWNrPSd3aW5kb3cub3Blbih0aGlzLmhyZWYsICJfYmxhbmsiLCAiaGVpZ2h0PTI3MCx3aWR0aD00NzUiKTsgcmV0dXJuIGZhbHNlOycgdGFyZ2V0PSdfYmxhbmsnIHRpdGxlPSdCbG9nVGhpcyEnPjxzcGFuIGNsYXNzPSdzaGFyZS1idXR0b24tbGluay10ZXh0Jz5CbG9nVGhpcyE8L3NwYW4+PC9hPjxhIGNsYXNzPSdnb29nLWlubGluZS1ibG9jayBzaGFyZS1idXR0b24gc2ItdHdpdHRlcicgaHJlZj0naHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vc2hhcmUtcG9zdC5nP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JnBvc3RJRD0zNTU0NDYwNTYzNjAxNjg4OTgmdGFyZ2V0PXR3aXR0ZXInIHRhcmdldD0nX2JsYW5rJyB0aXRsZT0nU2hhcmUgdG8gVHdpdHRlcic+PHNwYW4gY2xhc3M9J3NoYXJlLWJ1dHRvbi1saW5rLXRleHQnPlNoYXJlIHRvIFR3aXR0ZXI8L3NwYW4+PC9hPjxhIGNsYXNzPSdnb29nLWlubGluZS1ibG9jayBzaGFyZS1idXR0b24gc2ItZmFjZWJvb2snIGhyZWY9J2h0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3NoYXJlLXBvc3QuZz9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZwb3N0SUQ9MzU1NDQ2MDU2MzYwMTY4ODk4JnRhcmdldD1mYWNlYm9vaycgb25jbGljaz0nd2luZG93Lm9wZW4odGhpcy5ocmVmLCAiX2JsYW5rIiwgImhlaWdodD00MzAsd2lkdGg9NjQwIik7IHJldHVybiBmYWxzZTsnIHRhcmdldD0nX2JsYW5rJyB0aXRsZT0nU2hhcmUgdG8gRmFjZWJvb2snPjxzcGFuIGNsYXNzPSdzaGFyZS1idXR0b24tbGluay10ZXh0Jz5TaGFyZSB0byBGYWNlYm9vazwvc3Bhbj48L2E+PGRpdiBjbGFzcz0nZ29vZy1pbmxpbmUtYmxvY2sgZHVtbXktY29udGFpbmVyJz48ZzpwbHVzb25lIHNvdXJjZT0nYmxvZ2dlcjpibG9nOnBsdXNvbmUnIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLzIwMTYvMDQvdHdvLWJ5dGVzLXRvLTk1MW0uaHRtbCcgc2l6ZT0nbWVkaXVtJyB3aWR0aD0nMzAwJyBhbm5vdGF0aW9uPSdpbmxpbmUnLz48L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9J2NvbW1lbnRzJyBpZD0nY29tbWVudHMnPgo8YSBuYW1lPSdjb21tZW50cyc+PC9hPgo8aDQ+Tm8gY29tbWVudHM6PC9oND4KPGRpdiBpZD0nQmxvZzFfY29tbWVudHMtYmxvY2std3JhcHBlcic+CjxkbCBjbGFzcz0nYXZhdGFyLWNvbW1lbnQtaW5kZW50JyBpZD0nY29tbWVudHMtYmxvY2snPgo8L2RsPgo8L2Rpdj4KPHAgY2xhc3M9J2NvbW1lbnQtZm9vdGVyJz4KPGRpdiBjbGFzcz0nY29tbWVudC1mb3JtJz4KPGEgbmFtZT0nY29tbWVudC1mb3JtJz48L2E+CjxoNCBpZD0nY29tbWVudC1wb3N0LW1lc3NhZ2UnPlBvc3QgYSBDb21tZW50PC9oND4KPHA+CjwvcD4KPGEgaHJlZj0naHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vY29tbWVudC1pZnJhbWUuZz9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZwb3N0SUQ9MzU1NDQ2MDU2MzYwMTY4ODk4JyBpZD0nY29tbWVudC1lZGl0b3Itc3JjJz48L2E+CjxpZnJhbWUgYWxsb3d0cmFuc3BhcmVuY3k9J3RydWUnIGNsYXNzPSdibG9nZ2VyLWlmcmFtZS1jb2xvcml6ZSBibG9nZ2VyLWNvbW1lbnQtZnJvbS1wb3N0JyBmcmFtZWJvcmRlcj0nMCcgaGVpZ2h0PSc0MTAnIGlkPSdjb21tZW50LWVkaXRvcicgbmFtZT0nY29tbWVudC1lZGl0b3InIHNyYz0nJyB3aWR0aD0nMTAwJSc+PC9pZnJhbWU+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3N0YXRpYy92MS9qc2Jpbi8xODY5MzU1MjkxLWNvbW1lbnRfZnJvbV9wb3N0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KICAgICAgQkxPR19DTVRfY3JlYXRlSWZyYW1lKCdodHRwczovL3d3dy5ibG9nZ2VyLmNvbS9ycGNfcmVsYXkuaHRtbCcsICcwNjk4OTAwMzg2NDEzMjEwOTU4MycpOwogICAgPC9zY3JpcHQ+CjwvZGl2Pgo8L3A+CjxkaXYgaWQ9J2JhY2tsaW5rcy1jb250YWluZXInPgo8ZGl2IGlkPSdCbG9nMV9iYWNrbGlua3MtY29udGFpbmVyJz4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CgogICAgICAgIDwvZGl2PjwvZGl2PgogICAgICAKPC9kaXY+CjxkaXYgY2xhc3M9J2Jsb2ctcGFnZXInIGlkPSdibG9nLXBhZ2VyJz4KPGEgY2xhc3M9J2hvbWUtbGluaycgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvJz5Ib21lPC9hPgo8c3BhbiBpZD0nYmxvZy1wYWdlci1vbGRlci1saW5rJz4KPGEgY2xhc3M9J2Jsb2ctcGFnZXItb2xkZXItbGluaycgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvMjAxNi8wNC9tdWx0aXBsZS12dWxuZXJhYmlsaXRpZXMtYWZmZWN0aW5nLmh0bWwnIGlkPSdCbG9nMV9ibG9nLXBhZ2VyLW9sZGVyLWxpbmsnIHRpdGxlPSdPbGRlciBQb3N0Jz5PbGRlciBQb3N0PC9hPgo8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjxkaXYgY2xhc3M9J3Bvc3QtZmVlZHMnPgo8ZGl2IGNsYXNzPSdmZWVkLWxpbmtzJz4KU3Vic2NyaWJlIHRvOgo8YSBjbGFzcz0nZmVlZC1saW5rJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS9mZWVkcy8zNTU0NDYwNTYzNjAxNjg4OTgvY29tbWVudHMvZGVmYXVsdCcgdGFyZ2V0PSdfYmxhbmsnIHR5cGU9J2FwcGxpY2F0aW9uL2F0b20reG1sJz5Qb3N0IENvbW1lbnRzIChBdG9tKTwvYT4KPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+d2luZG93Ll9fX2djZmcgPSB7J2xhbmcnOiAnZW5fR0InfTs8L3NjcmlwdD4KPC9kaXY+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdzaWRlYmFyLXdyYXBwZXIgcmlnaHQnPgo8ZGl2IGNsYXNzPSdzaWRlYmFyIHNlY3Rpb24nIGlkPSdzaWRlYmFyJz48ZGl2IGNsYXNzPSd3aWRnZXQgTGFiZWwnIGRhdGEtdmVyc2lvbj0nMScgaWQ9J0xhYmVsMic+CjxoMj5GaWx0ZXI8L2gyPgo8ZGl2IGNsYXNzPSd3aWRnZXQtY29udGVudCBsaXN0LWxhYmVsLXdpZGdldC1jb250ZW50Jz4KPHVsPgo8bGk+CjxhIGRpcj0nbHRyJyBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy9zZWFyY2gvbGFiZWwvVGhyZWF0JTIwUmVzZWFyY2gnPlRocmVhdCBSZXNlYXJjaDwvYT4KPHNwYW4gY2xhc3M9J3RhZy1jb3VudCc+ODwvc3Bhbj4KPC9saT4KPC91bD4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8c3BhbiBjbGFzcz0nd2lkZ2V0LWl0ZW0tY29udHJvbCc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbic+CjxhIGNsYXNzPSdxdWlja2VkaXQnIGhyZWY9Jy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ3aWRnZXRUeXBlPUxhYmVsJndpZGdldElkPUxhYmVsMiZhY3Rpb249ZWRpdFdpZGdldCZzZWN0aW9uSWQ9c2lkZWJhcicgb25jbGljaz0ncmV0dXJuIF9XaWRnZXRNYW5hZ2VyLl9Qb3B1cENvbmZpZyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiTGFiZWwyIikpOycgdGFyZ2V0PSdjb25maWdMYWJlbDInIHRpdGxlPSdFZGl0Jz4KPGltZyBhbHQ9JycgaGVpZ2h0PScxOCcgc3JjPScvL2ltZzEuYmxvZ2Jsb2cuY29tL2ltZy9pY29uMThfd3JlbmNoX2FsbGJrZy5wbmcnIHdpZHRoPScxOCcvPgo8L2E+Cjwvc3Bhbj4KPC9zcGFuPgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSd3aWRnZXQgUG9wdWxhclBvc3RzJyBkYXRhLXZlcnNpb249JzEnIGlkPSdQb3B1bGFyUG9zdHMxJz4KPGgyPlBvcHVsYXIgUG9zdHM8L2gyPgo8ZGl2IGNsYXNzPSd3aWRnZXQtY29udGVudCBwb3B1bGFyLXBvc3RzJz4KPHVsPgo8bGk+CjxkaXYgY2xhc3M9J2l0ZW0tdGh1bWJuYWlsLW9ubHknPgo8ZGl2IGNsYXNzPSdpdGVtLXRodW1ibmFpbCc+CjxhIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTUvMDYvbmV3LW1hYy1vcy1tYWx3YXJlLWV4cGxvaXRzLW1hY2tlZXBlci5odG1sJyB0YXJnZXQ9J19ibGFuayc+CjxpbWcgYWx0PScnIGJvcmRlcj0nMCcgc3JjPSdodHRwOi8vMy5icC5ibG9nc3BvdC5jb20vLVotbGV0a2xRZHJBL1ZXNUlNNVR0cUhJL0FBQUFBQUFBQWJZL0UxQ2tzWXBneWRZL3c3Mi1oNzItcC1udS9tYWNrZWVwZXIucG5nJy8+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9J2l0ZW0tdGl0bGUnPjxhIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTUvMDYvbmV3LW1hYy1vcy1tYWx3YXJlLWV4cGxvaXRzLW1hY2tlZXBlci5odG1sJz5OZXcgTWFjIE9TIE1hbHdhcmUgRXhwbG9pdHMgTWFjS2VlcGVyPC9hPjwvZGl2Pgo8L2Rpdj4KPGRpdiBzdHlsZT0nY2xlYXI6IGJvdGg7Jz48L2Rpdj4KPC9saT4KPGxpPgo8ZGl2IGNsYXNzPSdpdGVtLXRodW1ibmFpbC1vbmx5Jz4KPGRpdiBjbGFzcz0naXRlbS10aHVtYm5haWwnPgo8YSBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE2LzAxL3Rlc3RpbmcteW91ci1kZWZlbmNlcy1hZ2FpbnN0LXNxbC1pbmplY3Rpb24uaHRtbCcgdGFyZ2V0PSdfYmxhbmsnPgo8aW1nIGFsdD0nJyBib3JkZXI9JzAnIHNyYz0naHR0cDovLzQuYnAuYmxvZ3Nwb3QuY29tLy03YnpFYzdyTzFhWS9WcE8zN0xVd1dmSS9BQUFBQUFBQUFSZy9pWXJEcmJ4VFFDNC93NzItaDcyLXAtbnUvRGlhZ3JhbSUyQjIlMkJKUEVHJTJCMi5qcGcnLz4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0naXRlbS10aXRsZSc+PGEgaHJlZj0naHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvMjAxNi8wMS90ZXN0aW5nLXlvdXItZGVmZW5jZXMtYWdhaW5zdC1zcWwtaW5qZWN0aW9uLmh0bWwnPlRlc3RpbmcgWW91ciBEZWZlbmNlcyBBZ2FpbnN0IFNRTCBJbmplY3Rpb248L2E+PC9kaXY+CjwvZGl2Pgo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2Pgo8L2xpPgo8bGk+CjxkaXYgY2xhc3M9J2l0ZW0tdGh1bWJuYWlsLW9ubHknPgo8ZGl2IGNsYXNzPSdpdGVtLXRodW1ibmFpbCc+CjxhIGhyZWY9J2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTUvMTIvYS1idW1wZXItaGFydmVzdC1jcnlwdG9sb2NrZXItYWRkcmVzcy5odG1sJyB0YXJnZXQ9J19ibGFuayc+CjxpbWcgYWx0PScnIGJvcmRlcj0nMCcgc3JjPSdodHRwOi8vMy5icC5ibG9nc3BvdC5jb20vLTVyZ3g1c3FNYWNFL1ZsNG84LU8yNFRJL0FBQUFBQUFBQUV3LzJySVNHa2VzVVpFL3c3Mi1oNzItcC1udS8zMjAteC0zMjAtY3J5cHRvLmpwZycvPgo8L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdpdGVtLXRpdGxlJz48YSBocmVmPSdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE1LzEyL2EtYnVtcGVyLWhhcnZlc3QtY3J5cHRvbG9ja2VyLWFkZHJlc3MuaHRtbCc+QSBCdW1wZXIgSGFydmVzdCAtIENyeXB0b2xvY2tlciBBZGRyZXNzIEJvb2sgVGhlZnQ8L2E+PC9kaXY+CjwvZGl2Pgo8ZGl2IHN0eWxlPSdjbGVhcjogYm90aDsnPjwvZGl2Pgo8L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjxzcGFuIGNsYXNzPSd3aWRnZXQtaXRlbS1jb250cm9sJz4KPHNwYW4gY2xhc3M9J2l0ZW0tY29udHJvbCBibG9nLWFkbWluJz4KPGEgY2xhc3M9J3F1aWNrZWRpdCcgaHJlZj0nLy93d3cuYmxvZ2dlci5jb20vcmVhcnJhbmdlP2Jsb2dJRD03MzQ1NTE1MDg1ODM4NDIyNzk5JndpZGdldFR5cGU9UG9wdWxhclBvc3RzJndpZGdldElkPVBvcHVsYXJQb3N0czEmYWN0aW9uPWVkaXRXaWRnZXQmc2VjdGlvbklkPXNpZGViYXInIG9uY2xpY2s9J3JldHVybiBfV2lkZ2V0TWFuYWdlci5fUG9wdXBDb25maWcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlBvcHVsYXJQb3N0czEiKSk7JyB0YXJnZXQ9J2NvbmZpZ1BvcHVsYXJQb3N0czEnIHRpdGxlPSdFZGl0Jz4KPGltZyBhbHQ9JycgaGVpZ2h0PScxOCcgc3JjPScvL2ltZzEuYmxvZ2Jsb2cuY29tL2ltZy9pY29uMThfd3JlbmNoX2FsbGJrZy5wbmcnIHdpZHRoPScxOCcvPgo8L2E+Cjwvc3Bhbj4KPC9zcGFuPgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSd3aWRnZXQgSFRNTCcgZGF0YS12ZXJzaW9uPScxJyBpZD0nSFRNTDEnPgo8aDIgY2xhc3M9J3RpdGxlJz5Db250YWN0PC9oMj4KPGRpdiBjbGFzcz0nd2lkZ2V0LWNvbnRlbnQnPgo8cD5Gb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvciB0byB0YWxrIHRvIGFuIGV4cGVydCwgcGxlYXNlIGNvbnRhY3QgdXMuPC9wPgo8ZGl2IGNsYXNzPSJjb250YWN0LWluZm8iPgo8YSBocmVmPSJtYWlsdG86bGVhcm5AYmFlc3lzdGVtcy5jb20iPmxlYXJuQGJhZXN5c3RlbXMuY29tPC9hPgo8YnIvPjxici8+PGJyLz4KPGEgaHJlZj0iaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L2NvbnRhY3QtdXMgIiBjbGFzcz0iY29udGFjdC1idG4iPkNvbnRhY3Q8L2E+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0nY2xlYXInPjwvZGl2Pgo8c3BhbiBjbGFzcz0nd2lkZ2V0LWl0ZW0tY29udHJvbCc+CjxzcGFuIGNsYXNzPSdpdGVtLWNvbnRyb2wgYmxvZy1hZG1pbic+CjxhIGNsYXNzPSdxdWlja2VkaXQnIGhyZWY9Jy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSUQ9NzM0NTUxNTA4NTgzODQyMjc5OSZ3aWRnZXRUeXBlPUhUTUwmd2lkZ2V0SWQ9SFRNTDEmYWN0aW9uPWVkaXRXaWRnZXQmc2VjdGlvbklkPXNpZGViYXInIG9uY2xpY2s9J3JldHVybiBfV2lkZ2V0TWFuYWdlci5fUG9wdXBDb25maWcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkhUTUwxIikpOycgdGFyZ2V0PSdjb25maWdIVE1MMScgdGl0bGU9J0VkaXQnPgo8aW1nIGFsdD0nJyBoZWlnaHQ9JzE4JyBzcmM9Jy8vaW1nMS5ibG9nYmxvZy5jb20vaW1nL2ljb24xOF93cmVuY2hfYWxsYmtnLnBuZycgd2lkdGg9JzE4Jy8+CjwvYT4KPC9zcGFuPgo8L3NwYW4+CjxkaXYgY2xhc3M9J2NsZWFyJz48L2Rpdj4KPC9kaXY+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+CjwvZGl2PjwhLS0gRU5EIENvbnRlbnRXcmFwcGVyIC0tPgo8L2Rpdj4KPGZvb3Rlcj4KPG5hdj4KPGRpdiBjbGFzcz0nd3JhcCc+CjxkaXYgY2xhc3M9J2Zvb3RlcldyYXBwZXInPgo8dWwgY2xhc3M9J3NvY2lhbC1pY29uLWxpc3QnPgo8bGkgY2xhc3M9J3R3aXR0ZXItaWNvbic+CjxhIGhyZWY9J2h0dHBzOi8vdHdpdHRlci5jb20vYmFlc3lzdGVtc19haSc+PC9hPgo8L2xpPgo8bGkgY2xhc3M9J2ZiLWljb24nPgo8YSBocmVmPSdodHRwczovL2ZhY2Vib29rLmNvbS9iYWVzeXN0ZW1zYXBwbGllZGludGVsbGlnZW5jZSc+PC9hPgo8L2xpPgo8bGkgY2xhc3M9J2luLWljb24nPgo8YSBocmVmPSdodHRwczovL2xpbmtlZGluLmNvbS9jb21wYW55L2JhZXN5c3RlbXNhaSc+PC9hPgo8L2xpPgo8bGkgY2xhc3M9J2ZsaWNrci1pY29uJz4KPGEgaHJlZj0naHR0cHM6Ly9mbGlja3IuY29tL3Bob3Rvcy9iYWVfc3lzdGVtc3BsYyc+PC9hPgo8L2xpPgo8bGkgY2xhc3M9J3lvdXR1YmUtaWNvbic+CjxhIGhyZWY9J2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3VzZXIvQkFFU3lzdGVtc0FJJz48L2E+CjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPC9uYXY+CjxkaXYgY2xhc3M9J2JvdHRvbS1iYXInPgo8ZGl2IGNsYXNzPSd3cmFwJz4KPHVsIGNsYXNzPSdmb290ZXJMaXN0Jz4KPGxpPjxhIGhyZWY9J2h0dHBzOi8vYmFlc3lzdGVtcy5jb20vcGFnZS9hY2Nlc3NpYmlsaXR5Jz5BY2Nlc3NpYmlsaXR5PC9hPjwvbGk+CjxsaT48YSBocmVmPSdodHRwczovL2JhZXN5c3RlbXMuY29tL3BhZ2UvdGVybXNfY29uZGl0aW9ucyc+VGVybXMgJiBjb25kaXRpb25zPC9hPjwvbGk+CjxsaT48YSBocmVmPSdodHRwczovL2JhZXN5c3RlbXMuY29tL3BhZ2UvQkFFU18wMzU1NjgvcHJpdmFjeSc+UHJpdmFjeTwvYT48L2xpPgo8bGk+PGEgaHJlZj0naHR0cHM6Ly9iYWVzeXN0ZW1zLmNvbS9wYWdlL3NpdGVtYXAnPlNpdGVtYXA8L2E+PC9saT4KPC91bD4KPHAgY2xhc3M9J2NvcHlyaWdodCc+JiMxNjk7IDIwMTUgQkFFIFN5c3RlbXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQ8L3A+CjwvZGl2Pgo8L2Rpdj4KPC9mb290ZXI+CjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmlmICh3aW5kb3cuanN0aW1pbmcpIHdpbmRvdy5qc3RpbWluZy5sb2FkLnRpY2soJ3dpZGdldEpzQmVmb3JlJyk7Cjwvc2NyaXB0PgoKPCEtLSAnVMO6IGVyZXMgZWwgcmVzcG9uc2FibGUgZGUgaW5mb3JtYXIgYSBsb3MgdmlzaXRhbnRlcyBkZSB0dSBibG9nIGRlIGxhcyBjb29raWVzIHF1ZSB1dGlsaXphcyBlbiDDqWwuIFBhcmEgbcOhcyBpbmZvcm1hY2nDs24sIHZlIGEgaHR0cDovL3d3dy5ibG9nZ2VyLmNvbS9nby9jb29raWVjaG9pY2VzLicgLS0+CjxzY3JpcHQgc3JjPSIvanMvY29va2llY2hvaWNlcy5qcyIgZGVmZXI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICB3aW5kb3cuY29va2llQ2hvaWNlcyAmJiBjb29raWVDaG9pY2VzLnNob3dDb29raWVDb25zZW50QmFyICYmIGNvb2tpZUNob2ljZXMuc2hvd0Nvb2tpZUNvbnNlbnRCYXIoCiAgICAgICAgKHdpbmRvdy5jb29raWVPcHRpb25zICYmIGNvb2tpZU9wdGlvbnMubXNnKSB8fCAnRXN0ZSBzaXRpbyBlbXBsZWEgY29va2llcyBkZSBHb29nbGUgcGFyYSBwcmVzdGFyIHN1cyBzZXJ2aWNpb3MsIHBhcmEgcGVyc29uYWxpemFyIGFudW5jaW9zIHkgcGFyYSBhbmFsaXphciBlbCB0csOhZmljby4gR29vZ2xlIHJlY2liZSBpbmZvcm1hY2nDs24gc29icmUgdHUgdXNvIGRlIGVzdGUgc2l0aW8gd2ViLiBTaSB1dGlsaXphcyBlc3RlIHNpdGlvIHdlYiwgc2Ugc29icmVlbnRpZW5kZSBxdWUgYWNlcHRhcyBlbCB1c28gZGUgY29va2llcy4nLAogICAgICAgICh3aW5kb3cuY29va2llT3B0aW9ucyAmJiBjb29raWVPcHRpb25zLmNsb3NlKSB8fCAnRW50ZW5kaWRvJywKICAgICAgICAod2luZG93LmNvb2tpZU9wdGlvbnMgJiYgY29va2llT3B0aW9ucy5sZWFybikgfHwgJ03DoXMgaW5mb3JtYWNpw7NuJywKICAgICAgICAod2luZG93LmNvb2tpZU9wdGlvbnMgJiYgY29va2llT3B0aW9ucy5saW5rKSB8fCAnaHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vZ28vYmxvZ3Nwb3QtY29va2llcycpOwogIH0pOwo8L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3N0YXRpYy92MS93aWRnZXRzLzIxMjk4NTc5OTYtd2lkZ2V0cy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2FwaXMuZ29vZ2xlLmNvbS9qcy9wbHVzb25lLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgppZiAodHlwZW9mKEJMT0dfYXR0YWNoQ3NpT25sb2FkKSAhPSAndW5kZWZpbmVkJyAmJiBCTE9HX2F0dGFjaENzaU9ubG9hZCAhPSBudWxsKSB7IHdpbmRvd1snYmxvZ2dlcl90ZW1wbGF0ZXNfZXhwZXJpbWVudF9pZCddID0gInRlbXBsYXRlc1YxIjt3aW5kb3dbJ2Jsb2dnZXJfYmxvZ19pZCddID0gJzczNDU1MTUwODU4Mzg0MjI3OTknO0JMT0dfYXR0YWNoQ3NpT25sb2FkKCdpdGVtXycpOyB9X1dpZGdldE1hbmFnZXIuX0luaXQoJy8vd3d3LmJsb2dnZXIuY29tL3JlYXJyYW5nZT9ibG9nSURceDNkNzM0NTUxNTA4NTgzODQyMjc5OScsJy8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS5lcy8yMDE2LzA0L3R3by1ieXRlcy10by05NTFtLmh0bWwnLCc3MzQ1NTE1MDg1ODM4NDIyNzk5Jyk7Cl9XaWRnZXRNYW5hZ2VyLl9TZXREYXRhQ29udGV4dChbeyduYW1lJzogJ29wdGlvbnMnLCAnZGF0YSc6IHt9fSwgeyduYW1lJzogJ2Jsb2cnLCAnZGF0YSc6IHsnYmxvZ0lkJzogJzczNDU1MTUwODU4Mzg0MjI3OTknLCAnYmxvZ2dlclVybCc6ICdodHRwczovL3d3dy5ibG9nZ2VyLmNvbScsICd0aXRsZSc6ICdCQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZycsICdwYWdlVHlwZSc6ICdpdGVtJywgJ3Bvc3RJZCc6ICczNTU0NDYwNTYzNjAxNjg4OTgnLCAndXJsJzogJ2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLzIwMTYvMDQvdHdvLWJ5dGVzLXRvLTk1MW0uaHRtbCcsICdjYW5vbmljYWxVcmwnOiAnaHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20vMjAxNi8wNC90d28tYnl0ZXMtdG8tOTUxbS5odG1sJywgJ2hvbWVwYWdlVXJsJzogJ2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzLycsICdjYW5vbmljYWxIb21lcGFnZVVybCc6ICdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS8nLCAnYmxvZ3Nwb3RGYXZpY29uVXJsJzogJ2h0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tLmVzL2Zhdmljb24uaWNvJywgJ2VuYWJsZWRDb21tZW50UHJvZmlsZUltYWdlcyc6IHRydWUsICdhZHVsdENvbnRlbnQnOiBmYWxzZSwgJ2FuYWx5dGljc0FjY291bnROdW1iZXInOiAnJywgJ3VzZVVuaXZlcnNhbEFuYWx5dGljcyc6IGZhbHNlLCAncGFnZU5hbWUnOiAnVHdvIGJ5dGVzIHRvICQ5NTFtJywgJ3BhZ2VUaXRsZSc6ICdCQUUgU3lzdGVtcyBUaHJlYXQgUmVzZWFyY2ggQmxvZzogVHdvIGJ5dGVzIHRvICQ5NTFtJywgJ2VuY29kaW5nJzogJ1VURi04JywgJ2xvY2FsZSc6ICdlbl9HQicsICdsb2NhbGVVbmRlcnNjb3JlRGVsaW1pdGVkJzogJ2VuX2diJywgJ2lzUHJpdmF0ZSc6IGZhbHNlLCAnaXNNb2JpbGUnOiBmYWxzZSwgJ2lzTW9iaWxlUmVxdWVzdCc6IGZhbHNlLCAnbW9iaWxlQ2xhc3MnOiAnJywgJ2lzUHJpdmF0ZUJsb2cnOiBmYWxzZSwgJ2xhbmd1YWdlRGlyZWN0aW9uJzogJ2x0cicsICdmZWVkTGlua3MnOiAnXDc0bGluayByZWxcNzVcNDJhbHRlcm5hdGVcNDIgdHlwZVw3NVw0MmFwcGxpY2F0aW9uL2F0b20reG1sXDQyIHRpdGxlXDc1XDQyQkFFIFN5c3RlbXMgVGhyZWF0IFJlc2VhcmNoIEJsb2cgLSBBdG9tXDQyIGhyZWZcNzVcNDJodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS9mZWVkcy9wb3N0cy9kZWZhdWx0XDQyIC9cNzZcblw3NGxpbmsgcmVsXDc1XDQyYWx0ZXJuYXRlXDQyIHR5cGVcNzVcNDJhcHBsaWNhdGlvbi9yc3MreG1sXDQyIHRpdGxlXDc1XDQyQkFFIFN5c3RlbXMgVGhyZWF0IFJlc2VhcmNoIEJsb2cgLSBSU1NcNDIgaHJlZlw3NVw0Mmh0dHA6Ly9iYWVzeXN0ZW1zYWkuYmxvZ3Nwb3QuY29tL2ZlZWRzL3Bvc3RzL2RlZmF1bHQ/YWx0XDc1cnNzXDQyIC9cNzZcblw3NGxpbmsgcmVsXDc1XDQyc2VydmljZS5wb3N0XDQyIHR5cGVcNzVcNDJhcHBsaWNhdGlvbi9hdG9tK3htbFw0MiB0aXRsZVw3NVw0MkJBRSBTeXN0ZW1zIFRocmVhdCBSZXNlYXJjaCBCbG9nIC0gQXRvbVw0MiBocmVmXDc1XDQyaHR0cHM6Ly93d3cuYmxvZ2dlci5jb20vZmVlZHMvNzM0NTUxNTA4NTgzODQyMjc5OS9wb3N0cy9kZWZhdWx0XDQyIC9cNzZcblxuXDc0bGluayByZWxcNzVcNDJhbHRlcm5hdGVcNDIgdHlwZVw3NVw0MmFwcGxpY2F0aW9uL2F0b20reG1sXDQyIHRpdGxlXDc1XDQyQkFFIFN5c3RlbXMgVGhyZWF0IFJlc2VhcmNoIEJsb2cgLSBBdG9tXDQyIGhyZWZcNzVcNDJodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS9mZWVkcy8zNTU0NDYwNTYzNjAxNjg4OTgvY29tbWVudHMvZGVmYXVsdFw0MiAvXDc2XG4nLCAnbWVUYWcnOiAnJywgJ29wZW5JZE9wVGFnJzogJycsICdwb3N0SW1hZ2VUaHVtYm5haWxVcmwnOiAnaHR0cHM6Ly8yLmJwLmJsb2dzcG90LmNvbS8ta0pnOG83bFlIencvVnhoTWwxcUJDckkvQUFBQUFBQUFBZkEvbi1VdXJJSThxMkV5eWFVbFlNd3ZnTmpWZFdBNGlLN09nQ0xjQi9zNzItYy9zY2hlbWUxLnBuZycsICdwb3N0SW1hZ2VVcmwnOiAnaHR0cHM6Ly8yLmJwLmJsb2dzcG90LmNvbS8ta0pnOG83bFlIencvVnhoTWwxcUJDckkvQUFBQUFBQUFBZkEvbi1VdXJJSThxMkV5eWFVbFlNd3ZnTmpWZFdBNGlLN09nQ0xjQi9zNjQwL3NjaGVtZTEucG5nJywgJ2xhdGVuY3lIZWFkU2NyaXB0JzogJ1w3NHNjcmlwdCB0eXBlXDc1XDQydGV4dC9qYXZhc2NyaXB0XDQyXDc2KGZ1bmN0aW9uKCkgeyAoZnVuY3Rpb24oKXtmdW5jdGlvbiBjKGEpe3RoaXMudFw3NXt9O3RoaXMudGlja1w3NWZ1bmN0aW9uKGEsYyxiKXt2YXIgZFw3NXZvaWQgMCFcNzViP2I6KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy50W2FdXDc1W2QsY107aWYodm9pZCAwXDc1XDc1Yil0cnl7d2luZG93LmNvbnNvbGUudGltZVN0YW1wKFw0MkNTSS9cNDIrYSl9Y2F0Y2goZSl7fX07dGhpcy50aWNrKFw0MnN0YXJ0XDQyLG51bGwsYSl9dmFyIGE7d2luZG93LnBlcmZvcm1hbmNlXDQ2XDQ2KGFcNzV3aW5kb3cucGVyZm9ybWFuY2UudGltaW5nKTt2YXIgaFw3NWE/bmV3IGMoYS5yZXNwb25zZVN0YXJ0KTpuZXcgYzt3aW5kb3cuanN0aW1pbmdcNzV7VGltZXI6Yyxsb2FkOmh9O2lmKGEpe3ZhciBiXDc1YS5uYXZpZ2F0aW9uU3RhcnQsZVw3NWEucmVzcG9uc2VTdGFydDswXDc0Ylw0Nlw0NmVcNzZcNzViXDQ2XDQ2KHdpbmRvdy5qc3RpbWluZy5zcnRcNzVlLWIpfWlmKGEpe3ZhciBkXDc1d2luZG93LmpzdGltaW5nLmxvYWQ7MFw3NGJcNDZcNDZlXDc2XDc1Ylw0Nlw0NihkLnRpY2soXDQyX3d0c3J0XDQyLHZvaWQgMCxiKSxkLnRpY2soXDQyd3RzcnRfXDQyLFxuXDQyX3d0c3J0XDQyLGUpLGQudGljayhcNDJ0YnNkX1w0MixcNDJ3dHNydF9cNDIpKX10cnl7YVw3NW51bGwsd2luZG93LmNocm9tZVw0Nlw0NndpbmRvdy5jaHJvbWUuY3NpXDQ2XDQ2KGFcNzVNYXRoLmZsb29yKHdpbmRvdy5jaHJvbWUuY3NpKCkucGFnZVQpLGRcNDZcMDQ2MFw3NGJcNDZcNDYoZC50aWNrKFw0Ml90Ym5kXDQyLHZvaWQgMCx3aW5kb3cuY2hyb21lLmNzaSgpLnN0YXJ0RSksZC50aWNrKFw0MnRibmRfXDQyLFw0Ml90Ym5kXDQyLGIpKSksbnVsbFw3NVw3NWFcNDZcNDZ3aW5kb3cuZ3RiRXh0ZXJuYWxcNDZcNDYoYVw3NXdpbmRvdy5ndGJFeHRlcm5hbC5wYWdlVCgpKSxudWxsXDc1XDc1YVw0Nlw0NndpbmRvdy5leHRlcm5hbFw0Nlw0NihhXDc1d2luZG93LmV4dGVybmFsLnBhZ2VULGRcNDZcMDQ2MFw3NGJcNDZcNDYoZC50aWNrKFw0Ml90Ym5kXDQyLHZvaWQgMCx3aW5kb3cuZXh0ZXJuYWwuc3RhcnRFKSxkLnRpY2soXDQydGJuZF9cNDIsXDQyX3RibmRcNDIsYikpKSxhXDQ2XDQ2KHdpbmRvdy5qc3RpbWluZy5wdFw3NWEpfWNhdGNoKGspe319KSgpO3dpbmRvdy50aWNrQWJvdmVGb2xkXDc1ZnVuY3Rpb24oYyl7dmFyIGFcMDc1MDtpZihjLm9mZnNldFBhcmVudCl7ZG8gYStcNzVjLm9mZnNldFRvcDt3aGlsZShjXDc1Yy5vZmZzZXRQYXJlbnQpfWNcNzVhOzc1MFw3Nlw3NWNcNDZcNDZ3aW5kb3cuanN0aW1pbmcubG9hZC50aWNrKFw0MmFmdFw0Mil9O3ZhciBmXDc1ITE7ZnVuY3Rpb24gZygpe2Z8fChmXDc1ITAsd2luZG93LmpzdGltaW5nLmxvYWQudGljayhcNDJmaXJzdFNjcm9sbFRpbWVcNDIpKX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj93aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcNDJzY3JvbGxcNDIsZywhMSk6d2luZG93LmF0dGFjaEV2ZW50KFw0Mm9uc2Nyb2xsXDQyLGcpO1xuIH0pKCk7XDc0L3NjcmlwdFwwNzYnLCAnbW9iaWxlSGVhZFNjcmlwdCc6ICcnLCAnYWRzZW5zZUhvc3RJZCc6ICdjYS1ob3N0LXB1Yi0xNTU2MjIzMzU1MTM5MTA5JywgJ3ZpZXcnOiAnJywgJ2R5bmFtaWNWaWV3c0NvbW1lbnRzU3JjJzogJy8vd3d3LmJsb2dibG9nLmNvbS9keW5hbWljdmlld3MvNDIyNGMxNWM0ZTdjOTMyMS9qcy9jb21tZW50cy5qcycsICdkeW5hbWljVmlld3NTY3JpcHRTcmMnOiAnLy93d3cuYmxvZ2Jsb2cuY29tL2R5bmFtaWN2aWV3cy9mYzVhZDk2YjY1ZmYyMTIwJywgJ3BsdXNPbmVBcGlTcmMnOiAnaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20vanMvcGx1c29uZS5qcycsICdzZic6ICduJywgJ3RmJzogJyd9fSwgeyduYW1lJzogJ2ZlYXR1cmVzJywgJ2RhdGEnOiB7J3dpZGdldFZpc2liaWxpdHknOiB0cnVlfX0sIHsnbmFtZSc6ICdtZXNzYWdlcycsICdkYXRhJzogeydhZHNHb0hlcmUnOiAnQWRzIGdvIGhlcmUnLCAnYXJjaGl2ZSc6ICdBcmNoaXZlJywgJ2F1dGhvclNhaWQnOiAnJTEgc2FpZC4uLicsICdhdXRob3JTYWlkV2l0aExpbmsnOiAnXDc0YSBocmVmXDc1XDQyJTJcNDIgcmVsXDc1XDQybm9mb2xsb3dcNDJcNzYlMVw3NC9hXDc2IHNhaWQuLi4nLCAnYmxvZ0FyY2hpdmUnOiAnQmxvZyBBcmNoaXZlJywgJ2J5JzogJ0J5JywgJ2J5QXV0aG9yJzogJ0J5ICUxJywgJ2J5QXV0aG9yTGluayc6ICdCeSBcNzRhIGhyZWZcNzVcNDIlMlw0Mlw3NiUxXDc0L2FcMDc2JywgJ2NvbmZpZ3VyYXRpb25SZXF1aXJlZCc6ICdDb25maWd1cmF0aW9uIHJlcXVpcmVkJywgJ2RlbGV0ZUJhY2tsaW5rJzogJ0RlbGV0ZSBCYWNrbGluaycsICdkZWxldGVDb21tZW50JzogJ0RlbGV0ZSBDb21tZW50JywgJ2VkaXQnOiAnRWRpdCcsICdlbWFpbEFkZHJlc3MnOiAnRW1haWwgQWRkcmVzcycsICdnZXRFbWFpbE5vdGlmaWNhdGlvbnMnOiAnR2V0IGVtYWlsIG5vdGlmaWNhdGlvbnMnLCAnaGlkZGVuJzogJ0hpZGRlbicsICdrZWVwUmVhZGluZyc6ICdLZWVwIHJlYWRpbmcnLCAnbGFiZWxzJzogJ0xhYmVscycsICdsb2FkTW9yZVBvc3RzJzogJ0xvYWQgbW9yZSBwb3N0cycsICdsb2FkaW5nJzogJ0xvYWRpbmcuLi4nLCAnbXlCbG9nTGlzdCc6ICdNeSBCbG9nIExpc3QnLCAnbXlGYXZvcml0ZVNpdGVzJzogJ015IGZhdm91cml0ZSBzaXRlcycsICduZXdlcic6ICdOZXdlcicsICduZXdlclBvc3RzJzogJ05ld2VyIFBvc3RzJywgJ25ld2VzdCc6ICdOZXdlc3QnLCAnbm9SZXN1bHRzRm91bmQnOiAnTm8gcmVzdWx0cyBmb3VuZCcsICdub1RpdGxlJzogJ05vIHRpdGxlJywgJ251bWJlck9mQ29tbWVudHMnOiAne251bUNvbW1lbnRzLHBsdXJhbCwgXDA3NTB7Tm8gY29tbWVudHN9XDA3NTF7MSBjb21tZW50fW90aGVyeyMgY29tbWVudHN9fScsICdvbGRlcic6ICdPbGRlcicsICdvbGRlclBvc3RzJzogJ09sZGVyIFBvc3RzJywgJ29sZGVzdCc6ICdPbGRlc3QnLCAnb25seVRlYW1NZW1iZXJzQ2FuQ29tbWVudCc6ICdOb3RlOiBvbmx5IGEgbWVtYmVyIG9mIHRoaXMgYmxvZyBtYXkgcG9zdCBhIGNvbW1lbnQuJywgJ3BvcHVsYXJQb3N0cyc6ICdQb3B1bGFyIFBvc3RzJywgJ3BvcHVsYXJQb3N0c0Zyb21UaGlzQmxvZyc6ICdQb3B1bGFyIHBvc3RzIGZyb20gdGhpcyBibG9nJywgJ3Bvc3RBQ29tbWVudCc6ICdQb3N0IGEgQ29tbWVudCcsICdwb3N0ZWRCeSc6ICdQb3N0ZWQgYnknLCAncG9zdGVkQnlBdXRob3InOiAnUG9zdGVkIGJ5ICUxJywgJ3Bvc3RlZEJ5QXV0aG9yTGluayc6ICdQb3N0ZWQgYnkgXDc0YSBocmVmXDc1XDQyJTJcNDJcNzYlMVw3NC9hXDA3NicsICdyZWFkTW9yZSc6ICdSZWFkIG1vcmUnLCAncmVwb3J0QWJ1c2UnOiAnUmVwb3J0IEFidXNlJywgJ3NlYXJjaCc6ICdTZWFyY2gnLCAnc2VhcmNoQmxvZyc6ICdTZWFyY2ggYmxvZycsICdzaGFyZSc6ICdTaGFyZScsICdzaG93QWxsJzogJ1Nob3cgQWxsJywgJ3Nob3dMZXNzJzogJ1Nob3cgbGVzcycsICdzaG93TW9yZSc6ICdTaG93IG1vcmUnLCAnc29tZU9mTXlGYXZvcml0ZVNpdGVzJzogJ1NvbWUgb2YgbXkgZmF2b3VyaXRlIHNpdGVzJywgJ3N1YnNjcmliZSc6ICdTdWJzY3JpYmUnLCAnc3Vic2NyaWJlVG8nOiAnU3Vic2NyaWJlIHRvOicsICdzdWJzY3JpYmVUb1RoaXNCbG9nJzogJ1N1YnNjcmliZSB0byB0aGlzIGJsb2cnLCAndGhlcmVzTm90aGluZ0hlcmUnOiAnVGhlcmVcNDdzIG5vdGhpbmcgaGVyZS4nLCAndmlld0FsbCc6ICdWaWV3IGFsbCcsICd2aXNpYmxlJzogJ1Zpc2libGUnLCAndmlzaXRQcm9maWxlJzogJ1Zpc2l0IHByb2ZpbGUnLCAnd2lkZ2V0Tm90QXZhaWxhYmxlSW5QcmV2aWV3JzogJ1RoaXMgY29udGVudCBpcyBub3QgYXZhaWxhYmxlIGluIGJsb2cgcHJldmlldy4nLCAnd2lkZ2V0Tm90QXZhaWxhYmxlT25IdHRwcyc6ICdUaGlzIGNvbnRlbnQgaXNuXDQ3dCBhdmFpbGFibGUgb3ZlciBlbmNyeXB0ZWQgY29ubmVjdGlvbnMgeWV0Lid9fSwgeyduYW1lJzogJ3NraW4nLCAnZGF0YSc6IHsndmFycyc6IHsnbmF2aWdhdGlvbl9mb250JzogJ2JvbGQgbm9ybWFsIDEzcHgvMS42ZW0gXDQ3T3BlbiBzYW5zXDQ3LCBcNDdIZWx2ZXRpY2EgTmV1ZVw0NywgSGVsdmV0aWNhLCBBcmlhbCcsICdrZXljb2xvcic6ICcjMjA5M2NhJywgJ2hlYWRpbmdfZm9udCc6ICdub3JtYWwgbm9ybWFsIDE0cHgvMS44ZW0gXDQ3VmlnYVw0NywgXDQ3SGVsdmV0aWNhIE5ldWVcNDcsIEhlbHZldGljYSwgQXJpYWwnLCAnaGVhZGluZ19jb2xvcic6ICcjMDAwMDAwJywgJ3NjaGVtZV9jb2xvcic6ICcjNzU4ZWUyJywgJ2JvZHlfYmFja2dyb3VuZCc6ICcjMjA5M2NhIHVybCgvL3RoZW1lcy5nb29nbGV1c2VyY29udGVudC5jb20vaW1hZ2U/aWRcMDc1MXkzZUMyN0NtMG1OMF9lN1ZMSWdQMnRhZzgzVXZTRWd6cl9jaDVTZGxuWW5KOC1iSkluTHFTVzlVTmY2XzFIbEpiMk4zKSBuby1yZXBlYXQgZml4ZWQgdG9wIGNlbnRlciAvKiBDcmVkaXQ6IEEzMzBQaWxvdCAoaHR0cDovL3d3dy5pc3RvY2twaG90by5jb20vZ29vZ2xlaW1hZ2VzLnBocD9pZFwwNzU2ODU3Mzg3XDQ2cGxhdGZvcm1cNzVibG9nZ2VyKSAqLycsICd3aWRnZXRfdGl0bGVfZm9udCc6ICdub3JtYWwgbm9ybWFsIDE2cHgvMS44ZW0gXDQ3VmlnYVw0NywgXDQ3SGVsdmV0aWNhIE5ldWVcNDcsIEhlbHZldGljYSwgQXJpYWwnLCAnYnJhbmRpbmdfZm9udCc6ICczMDAgbm9ybWFsIDQ4cHgvMS4yZW0gXDQ3T3BlbiBTYW5zXDQ3LCBIZWx2ZXRpY2EsIEFyaWFsJywgJ3Bvc3RfdGl0bGVfZm9udCc6ICdub3JtYWwgbm9ybWFsIDQ4cHgvMWVtIFw0N1ZpZ2FcNDcsIFw0N0hlbHZldGljYSBOZXVlXDQ3LCBIZWx2ZXRpY2EsIEFyaWFsJywgJ2JvZHlfZm9udCc6ICdub3JtYWwgbm9ybWFsIDE2cHgvMS43ZW0gXDQ3UFQgU2VyaWZcNDcsIEdlb3JnaWEsIFNlcmlmJywgJ2JvZHlfdGV4dF9jb2xvcic6ICcjNTU1NTU1JywgJ2JvZHlfbGlua19jb2xvcic6ICcjNzU4ZWUyJ30sICdvdmVycmlkZSc6ICcnfX0sIHsnbmFtZSc6ICd2aWV3JywgJ2RhdGEnOiB7J2NsYXNzaWMnOiB7J25hbWUnOiAnY2xhc3NpYycsICd1cmwnOiAnP3ZpZXdcNzVjbGFzc2ljJ30sICdmbGlwY2FyZCc6IHsnbmFtZSc6ICdmbGlwY2FyZCcsICd1cmwnOiAnP3ZpZXdcNzVmbGlwY2FyZCd9LCAnbWFnYXppbmUnOiB7J25hbWUnOiAnbWFnYXppbmUnLCAndXJsJzogJz92aWV3XDc1bWFnYXppbmUnfSwgJ21vc2FpYyc6IHsnbmFtZSc6ICdtb3NhaWMnLCAndXJsJzogJz92aWV3XDc1bW9zYWljJ30sICdzaWRlYmFyJzogeyduYW1lJzogJ3NpZGViYXInLCAndXJsJzogJz92aWV3XDc1c2lkZWJhcid9LCAnc25hcHNob3QnOiB7J25hbWUnOiAnc25hcHNob3QnLCAndXJsJzogJz92aWV3XDc1c25hcHNob3QnfSwgJ3RpbWVzbGlkZSc6IHsnbmFtZSc6ICd0aW1lc2xpZGUnLCAndXJsJzogJz92aWV3XDc1dGltZXNsaWRlJ30sICd0aXRsZSc6ICdUd28gYnl0ZXMgdG8gJDk1MW0nLCAnZGVzY3JpcHRpb24nOiAnSW4gRmVicnVhcnkgMjAxNiBvbmUgb2YgdGhlIGxhcmdlc3QgY3liZXIgaGVpc3RzIHdhcyBjb21taXR0ZWQgYW5kIHN1YnNlcXVlbnRseSBkaXNjbG9zZWQuIEFuIHVua25vd24gYXR0YWNrZXIgZ2FpbmVkIGFjY2VzcyB0byB0aGUgQmFuZ2xhZGUuLi4nLCAnZmVhdHVyZWRJbWFnZSc6ICdodHRwczovLzIuYnAuYmxvZ3Nwb3QuY29tLy1rSmc4bzdsWUh6dy9WeGhNbDFxQkNySS9BQUFBQUFBQUFmQS9uLVV1cklJOHEyRXl5YVVsWU13dmdOalZkV0E0aUs3T2dDTGNCL3M2NDAvc2NoZW1lMS5wbmcnfX1dKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfTmF2YmFyVmlldycsIG5ldyBfV2lkZ2V0SW5mbygnTmF2YmFyMScsICduYXZiYXInLCBudWxsLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTmF2YmFyMScpLCB7fSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfSGVhZGVyVmlldycsIG5ldyBfV2lkZ2V0SW5mbygnSGVhZGVyMScsICdoZWFkZXInLCBudWxsLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnSGVhZGVyMScpLCB7fSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfUGFnZUxpc3RWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdQYWdlTGlzdDEnLCAnbmF2aWdhdGlvbicsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQYWdlTGlzdDEnKSwgeyd0aXRsZSc6ICdQYWdlcycsICdsaW5rcyc6IFt7J2hyZWYnOiAnaHR0cDovL2JhZXN5c3RlbXNhaS5ibG9nc3BvdC5jb20uZXMvJywgJ3RpdGxlJzogJ0hvbWUnLCAnaXNDdXJyZW50UGFnZSc6IGZhbHNlfSwgeydocmVmJzogJ2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vZW4vY3liZXJzZWN1cml0eS9wcm9kdWN0cycsICd0aXRsZSc6ICdQcm9kdWN0cycsICdpc0N1cnJlbnRQYWdlJzogZmFsc2V9LCB7J2hyZWYnOiAnaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L3NvbHV0aW9ucycsICd0aXRsZSc6ICdTb2x1dGlvbnMnLCAnaXNDdXJyZW50UGFnZSc6IGZhbHNlfSwgeydocmVmJzogJ2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vZW4vY3liZXJzZWN1cml0eS9uZXdzLWFuZC1ldmVudHMnLCAndGl0bGUnOiAnTmV3cyBcNDYgRXZlbnRzJywgJ2lzQ3VycmVudFBhZ2UnOiBmYWxzZX0sIHsnaHJlZic6ICdodHRwOi8vd3d3LmJhZXN5c3RlbXMuY29tL2VuL2N5YmVyc2VjdXJpdHkvcGFydG5lcnMnLCAndGl0bGUnOiAnUGFydG5lcnMnLCAnaXNDdXJyZW50UGFnZSc6IGZhbHNlfSwgeydocmVmJzogJ2h0dHA6Ly93d3cuYmFlc3lzdGVtcy5jb20vZW4vY3liZXJzZWN1cml0eS9hYm91dC11cycsICd0aXRsZSc6ICdBYm91dCBVcycsICdpc0N1cnJlbnRQYWdlJzogZmFsc2V9LCB7J2hyZWYnOiAnaHR0cDovL3d3dy5iYWVzeXN0ZW1zLmNvbS9lbi9jeWJlcnNlY3VyaXR5L2NhcmVlcnMnLCAndGl0bGUnOiAnQ2FyZWVycycsICdpc0N1cnJlbnRQYWdlJzogZmFsc2V9XSwgJ21vYmlsZSc6IGZhbHNlfSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfQmxvZ0FyY2hpdmVWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdCbG9nQXJjaGl2ZTEnLCAnbmF2aWdhdGlvbicsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCbG9nQXJjaGl2ZTEnKSwgeydsYW5ndWFnZURpcmVjdGlvbic6ICdsdHInLCAnbG9hZGluZ01lc3NhZ2UnOiAnTG9hZGluZy4uLid9LCAnZGlzcGxheU1vZGVGdWxsJykpOwpfV2lkZ2V0TWFuYWdlci5fUmVnaXN0ZXJXaWRnZXQoJ19DdXN0b21TZWFyY2hWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdDdXN0b21TZWFyY2gxJywgJ25hdmlnYXRpb24nLCBudWxsLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQ3VzdG9tU2VhcmNoMScpLCB7J3RpdGxlJzogJ1NlYXJjaCcsICdpbmNsdWRlQmxvZyc6IHRydWUsICdpbmNsdWRlUG9zdExpbmtzJzogdHJ1ZSwgJ2luY2x1ZGVXZWInOiBmYWxzZSwgJ2xpbmtMaXN0cyc6IFtdLCAnYmxvZ1VybCc6ICdodHRwOi8vYmFlc3lzdGVtc2FpLmJsb2dzcG90LmNvbS8nLCAnbG9hZGluZ01zZyc6ICdMb2FkaW5nLi4uJywgJ3RoaXNCbG9nTXNnJzogJ1RoaXMgQmxvZycsICdsaW5rZWRGcm9tSGVyZU1zZyc6ICdMaW5rZWQgRnJvbSBIZXJlJywgJ3RoZVdlYk1zZyc6ICdUaGUgV2ViJywgJ2JhY2tncm91bmRDb2xvcic6ICcjMjA5M2NhJywgJ3RleHRDb2xvcic6ICcjNTU1NTU1JywgJ2RhdGVDb2xvcic6ICcjNmY2ZjZmJywgJ2xpbmtDb2xvcic6ICcjMDBjJywgJ3VybENvbG9yJzogJyMwMGMnLCAndmlzaXRlZExpbmtDb2xvcic6ICcjMDBjJywgJ2JvcmRlckNvbG9yJzogJyM2ZjZmNmYnLCAnYWN0aXZlQm9yZGVyQ29sb3InOiAnIzZmNmY2ZicsICdjc2VfdWEnOiB0cnVlfSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfSW1hZ2VWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdJbWFnZTEnLCAndGFnbGluZScsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdJbWFnZTEnKSwgeydyZXNpemUnOiBmYWxzZX0sICdkaXNwbGF5TW9kZUZ1bGwnKSk7Cl9XaWRnZXRNYW5hZ2VyLl9SZWdpc3RlcldpZGdldCgnX1RleHRWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdUZXh0MScsICdiYW4tdGV4dCcsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdUZXh0MScpLCB7fSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfSFRNTFZpZXcnLCBuZXcgX1dpZGdldEluZm8oJ0hUTUwzJywgJ2dyaWQyJywgbnVsbCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0hUTUwzJyksIHt9LCAnZGlzcGxheU1vZGVGdWxsJykpOwpfV2lkZ2V0TWFuYWdlci5fUmVnaXN0ZXJXaWRnZXQoJ19MYWJlbFZpZXcnLCBuZXcgX1dpZGdldEluZm8oJ0xhYmVsMScsICdncmlkMycsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdMYWJlbDEnKSwge30sICdkaXNwbGF5TW9kZUZ1bGwnKSk7Cl9XaWRnZXRNYW5hZ2VyLl9SZWdpc3RlcldpZGdldCgnX0Jsb2dWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdCbG9nMScsICdtYWluJywgbnVsbCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0Jsb2cxJyksIHsnY210SW50ZXJhY3Rpb25zRW5hYmxlZCc6IGZhbHNlLCAnbGlnaHRib3hFbmFibGVkJzogdHJ1ZSwgJ2xpZ2h0Ym94TW9kdWxlVXJsJzogJ2h0dHBzOi8vd3d3LmJsb2dnZXIuY29tL3N0YXRpYy92MS9qc2Jpbi80MDM2MDE2MTktbGJ4X19lbl9nYi5qcycsICdsaWdodGJveENzc1VybCc6ICdodHRwczovL3d3dy5ibG9nZ2VyLmNvbS9zdGF0aWMvdjEvdi1jc3MvMzA2NzUyNjM0LWxpZ2h0Ym94X2J1bmRsZS5jc3MnfSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKX1dpZGdldE1hbmFnZXIuX1JlZ2lzdGVyV2lkZ2V0KCdfTGFiZWxWaWV3JywgbmV3IF9XaWRnZXRJbmZvKCdMYWJlbDInLCAnc2lkZWJhcicsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdMYWJlbDInKSwge30sICdkaXNwbGF5TW9kZUZ1bGwnKSk7Cl9XaWRnZXRNYW5hZ2VyLl9SZWdpc3RlcldpZGdldCgnX1BvcHVsYXJQb3N0c1ZpZXcnLCBuZXcgX1dpZGdldEluZm8oJ1BvcHVsYXJQb3N0czEnLCAnc2lkZWJhcicsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQb3B1bGFyUG9zdHMxJyksIHt9LCAnZGlzcGxheU1vZGVGdWxsJykpOwpfV2lkZ2V0TWFuYWdlci5fUmVnaXN0ZXJXaWRnZXQoJ19IVE1MVmlldycsIG5ldyBfV2lkZ2V0SW5mbygnSFRNTDEnLCAnc2lkZWJhcicsIG51bGwsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdIVE1MMScpLCB7fSwgJ2Rpc3BsYXlNb2RlRnVsbCcpKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg=="
},
{
"type": "marking-definition",
"spec_version": "2.1",
"id": "marking-definition--613f2e26-407d-48c7-9eca-b8e91df99dc9",
"created": "2017-01-20T00:00:00.000Z",
"definition_type": "tlp",
"name": "TLP:WHITE",
"definition": {
"tlp": "white"
}
}
]
}