ZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50Ly5jbGFzc3BhdGggYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8uY2xhc3NwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxMmY2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LmphciIgc291cmNlcGF0aD0ibGliL2FudHNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1hbnRsci5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtYW50bHJzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtYXBhY2hlLWJjZWwuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LWFwYWNoZS1iY2Vsc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LWFwYWNoZS1ic2YuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LWFwYWNoZS1ic2ZzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtYXBhY2hlLWxvZzRqLmphciIgc291cmNlcGF0aD0ibGliL2FudC1hcGFjaGUtbG9nNGpzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtYXBhY2hlLW9yby5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtYXBhY2hlLW9yb3NyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1hcGFjaGUtcmVnZXhwLmphciIgc291cmNlcGF0aD0ibGliL2FudC1hcGFjaGUtcmVnZXhwc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LWFwYWNoZS1yZXNvbHZlci5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtYXBhY2hlLXJlc29sdmVyc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LWNvbW1vbnMtbG9nZ2luZy5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtY29tbW9ucy1sb2dnaW5nc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LWNvbW1vbnMtbmV0LmphciIgc291cmNlcGF0aD0ibGliL2FudC1jb21tb25zLW5ldHNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1qYWkuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LWphaXNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1qYXZhbWFpbC5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtamF2YW1haWxzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtamRlcGVuZC5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtamRlcGVuZHNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1qbWYuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LWptZnNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1qc2NoLmphciIgc291cmNlcGF0aD0ibGliL2FudC1qc2Noc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LWp1bml0LmphciIgc291cmNlcGF0aD0ibGliL2FudC1qdW5pdHNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1sYXVuY2hlci5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtbGF1bmNoZXJzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtbmV0cmV4eC5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtbmV0cmV4eHNyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1ub2RlcHMuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LW5vZGVwc3NyYy56aXAiLz4KKwk8Y2xhc3NwYXRoZW50cnkgZXhwb3J0ZWQ9InRydWUiIGtpbmQ9ImxpYiIgcGF0aD0ibGliL2FudC1zdGFydGVhbS5qYXIiIHNvdXJjZXBhdGg9ImxpYi9hbnQtc3RhcnRlYW1zcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtc3R5bGVib29rLmphciIgc291cmNlcGF0aD0ibGliL2FudC1zdHlsZWJvb2tzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtc3dpbmcuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LXN3aW5nc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBleHBvcnRlZD0idHJ1ZSIga2luZD0ibGliIiBwYXRoPSJsaWIvYW50LXRyYXguamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LXRyYXhzcmMuemlwIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBraW5kPSJsaWIiIHBhdGg9ImxpYi9hbnQtd2VibG9naWMuamFyIiBzb3VyY2VwYXRoPSJsaWIvYW50LXdlYmxvZ2ljc3JjLnppcCIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSjJTRS0xLjIiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJqYXZhQmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50Ly5jdnNpZ25vcmUgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5NGQwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2phdmFCaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8ucHJvamVjdCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50Ly5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3Y2Q0NTUKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC8ucHJvamVjdApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5vcmcuYXBhY2hlLmFudDwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCTwvYnVpbGRTcGVjPgorCTxuYXR1cmVzPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+CisJPC9uYXR1cmVzPgorPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L01FVEEtSU5GL01BTklGRVNULk1GCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhhNWJkMDgKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMCwwICsxLDEwNyBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKK0J1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5hcGFjaGUuYW50CitCdW5kbGUtVmVyc2lvbjogMS43LjAucXVhbGlmaWVyCitCdW5kbGUtQ2xhc3NQYXRoOiBsaWIvYW50LmphciwKKyBsaWIvYW50LWFudGxyLmphciwKKyBsaWIvYW50LWFwYWNoZS1iY2VsLmphciwKKyBsaWIvYW50LWFwYWNoZS1ic2YuamFyLAorIGxpYi9hbnQtYXBhY2hlLWxvZzRqLmphciwKKyBsaWIvYW50LWFwYWNoZS1vcm8uamFyLAorIGxpYi9hbnQtYXBhY2hlLXJlZ2V4cC5qYXIsCisgbGliL2FudC1hcGFjaGUtcmVzb2x2ZXIuamFyLAorIGxpYi9hbnQtY29tbW9ucy1sb2dnaW5nLmphciwKKyBsaWIvYW50LWNvbW1vbnMtbmV0LmphciwKKyBsaWIvYW50LWphaS5qYXIsCisgbGliL2FudC1qYXZhbWFpbC5qYXIsCisgbGliL2FudC1qZGVwZW5kLmphciwKKyBsaWIvYW50LWptZi5qYXIsCisgbGliL2FudC1qc2NoLmphciwKKyBsaWIvYW50LWp1bml0LmphciwKKyBsaWIvYW50LWxhdW5jaGVyLmphciwKKyBsaWIvYW50LW5ldHJleHguamFyLAorIGxpYi9hbnQtbm9kZXBzLmphciwKKyBsaWIvYW50LXN0YXJ0ZWFtLmphciwKKyBsaWIvYW50LXN0eWxlYm9vay5qYXIsCisgbGliL2FudC1zd2luZy5qYXIsCisgbGliL2FudC10cmF4LmphciwKKyBsaWIvYW50LXdlYmxvZ2ljLmphcgorQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQorQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCitFeHBvcnQtUGFja2FnZTogaW1hZ2VzLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LAorIG9yZy5hcGFjaGUudG9vbHMuYW50LmRpc3BhdGNoLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LmZpbHRlcnMsCisgb3JnLmFwYWNoZS50b29scy5hbnQuZmlsdGVycy51dGlsLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LmhlbHBlciwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC5pbnB1dCwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC5sYXVuY2gsCisgb3JnLmFwYWNoZS50b29scy5hbnQubGlzdGVuZXIsCisgb3JnLmFwYWNoZS50b29scy5hbnQubG9hZGVyLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLmNvbXBpbGVycywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5jb25kaXRpb24sCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMuY3ZzbGliLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLmVtYWlsLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmNjbSwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5jbGVhcmNhc2UsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuZGVwZW5kLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmRlcGVuZC5jb25zdGFudHBvb2wsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuZG90bmV0LAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmVqYiwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5leHRlbnNpb24sCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuZXh0ZW5zaW9uLnJlc29sdmVycywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5pMThuLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmltYWdlLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmoyZWUsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuamF2YWNjLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmphdmFoLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmpkZXBlbmQsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuamxpbmssCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuanNwLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLmpzcC5jb21waWxlcnMsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuanVuaXQsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuanVuaXQueHNsLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLm5hdGl2ZTJhc2NpaSwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5uZXQsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwucGVyZm9yY2UsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwucHZjcywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5zY20sCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuc2NyaXB0LAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLnNvcywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5zb3VuZCwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50YXNrZGVmcy5vcHRpb25hbC5zcGxhc2gsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwuc3NoLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLnN0YXJ0ZWFtLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLnVuaXgsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMub3B0aW9uYWwudnNzLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnRhc2tkZWZzLm9wdGlvbmFsLndpbmRvd3MsCisgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMucm1pYywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50eXBlcywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50eXBlcy5jb25kaXRpb25zLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnR5cGVzLm1hcHBlcnMsCisgb3JnLmFwYWNoZS50b29scy5hbnQudHlwZXMub3B0aW9uYWwsCisgb3JnLmFwYWNoZS50b29scy5hbnQudHlwZXMub3B0aW9uYWwuZGVwZW5kLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnR5cGVzLm9wdGlvbmFsLmltYWdlLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnR5cGVzLnJlc29sdmVyLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnR5cGVzLnJlc291cmNlcywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50eXBlcy5yZXNvdXJjZXMuY29tcGFyYXRvcnMsCisgb3JnLmFwYWNoZS50b29scy5hbnQudHlwZXMucmVzb3VyY2VzLnNlbGVjdG9ycywKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC50eXBlcy5zZWxlY3RvcnMsCisgb3JnLmFwYWNoZS50b29scy5hbnQudHlwZXMuc2VsZWN0b3JzLm1vZGlmaWVkc2VsZWN0b3IsCisgb3JnLmFwYWNoZS50b29scy5hbnQudHlwZXMuc3BpLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnV0aWwsCisgb3JnLmFwYWNoZS50b29scy5hbnQudXRpbC5kZXBlbmQsCisgb3JnLmFwYWNoZS50b29scy5hbnQudXRpbC5kZXBlbmQuYmNlbCwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC51dGlsLmZhY2FkZSwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC51dGlsLmphdmExNSwKKyBvcmcuYXBhY2hlLnRvb2xzLmFudC51dGlsLm9wdGlvbmFsLAorIG9yZy5hcGFjaGUudG9vbHMuYW50LnV0aWwucmVnZXhwLAorIG9yZy5hcGFjaGUudG9vbHMuYnppcDIsCisgb3JnLmFwYWNoZS50b29scy5tYWlsLAorIG9yZy5hcGFjaGUudG9vbHMudGFyLAorIG9yZy5hcGFjaGUudG9vbHMuemlwCitSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2Uub3NnaQorQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS4yCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9NRVRBLUlORi9lY2xpcHNlLmluZiBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L01FVEEtSU5GL2VjbGlwc2UuaW5mCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxY2MxODUKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9NRVRBLUlORi9lY2xpcHNlLmluZgpAQCAtMCwwICsxIEBACitqYXJwcm9jZXNzb3IuZXhjbHVkZS5jaGlsZHJlbi5zaWduPXRydWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9hYm91dC5odG1sIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMjU2Zjg0Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXQuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIvPgorPHRpdGxlPkFib3V0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5IGxhbmc9IkVOLVVTIj4KKzxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgorIAorPHA+QXByaWwgMTYsIDIwMDc8L3A+CQorPGgzPkxpY2Vuc2U8L2gzPgorCis8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKK2luZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KKworPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKK2JlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKK2FwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gIENoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyAKK3Byb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuICBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiAgVW5sZXNzIG90aGVyd2lzZQoraW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQKK2FuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi48L3A+CisKKzxoMz5UaGlyZCBQYXJ0eSBDb250ZW50PC9oMz4KKworPHA+VGhlIENvbnRlbnQgaW5jbHVkZXMgaXRlbXMgdGhhdCBoYXZlIGJlZW4gc291cmNlZCBmcm9tIHRoaXJkIHBhcnRpZXMgYXMgc2V0IG91dCBiZWxvdy4gSWYgeW91IAorZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBmb2xsb3dpbmcgaXMgcHJvdmlkZWQgCitmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5LCBhbmQgeW91IHNob3VsZCBsb29rIHRvIHRoZSBSZWRpc3RyaWJ1dG9yJnJzcXVvO3MgbGljZW5zZSBmb3IgCit0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UuPC9wPgorCis8aDQ+QW50IDEuNy4wPC9oND4KKzxwPlRoZSBwbHVnLWluIGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gYXMgcGFydCBvZiB0aGUgQW50IHByb2plY3QuPC9wPgorCis8cD5UaGUgQW50IGJpbmFyeSBjb2RlIGluIGFudC5qYXIgYW5kIHRoZSBzY3JpcHRzIGFudCwgYW50LmJhdCwgYW50LmNtZCwgYW50ZW52LmNtZCwgYW50UnVuLCBhbnRSdW4uYmF0LCBhbnRSdW4ucGwsIGNvbXBsZXRlLWFudC1jbWQucGwsIGVudnNldC5jbWQsIGxjcC5iYXQsIHJ1bmFudC5wbCwgcnVuYW50LnB5IGFuZCBydW5yYy5jbWQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHBsdWctaW4gd2l0aCBubyBtb2RpZmljYXRpb25zLgorVGhlIEFudCBzb3VyY2UgY29kZSBpcyBsb2NhdGVkIGluIHRoZSB6aXAgZmlsZXMgbmFtZWQgYW50LSpzcmMuemlwLjwvcD4KKworPHA+WW91ciB1c2Ugb2YgdGhlIEFudCBjb2RlIGFuZCB0aGUgc2NyaXB0cyBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGNvbnRhaW5lZAoraW4gdGhlIGZpbGUgPGEgaHJlZj0iYWJvdXRfZmlsZXMvYXNsLXYyMC50eHQiIHRhcmdldD0iX2JsYW5rIj5hc2wtdjIwLnR4dDwvYT4gYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLmh0bWw8L2E+LgorCis8cD5UaGUgbmFtZXMgJnF1b3Q7QW50JnF1b3Q7IGFuZCAmcXVvdDtBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiZxdW90OyBtdXN0IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyAKK3NvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAgRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QgPGEgaHJlZj0ibWFpbHRvOmFwYWNoZUBhcGFjaGUub3JnIj5hcGFjaGVAYXBhY2hlLm9yZzwvYT4uPC9wPgorCis8cD5UaGUgQXBhY2hlIGF0dHJpYnV0aW9uIDxhIGhyZWY9ImFib3V0X2ZpbGVzL05PVElDRSIgdGFyZ2V0PSJfYmxhbmsiPk5PVElDRTwvYT4gZmlsZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBDb250ZW50IGluIGFjY29yZGFuY2Ugd2l0aCA0ZCBvZiB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLjwvcD4KKworPHA+QW50IGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgc29mdHdhcmU6PC9wPgorCis8YmxvY2txdW90ZT4KKwk8aDQ+RE9NPC9oND4KKwk8cD5ET00gaXMgZGV2ZWxvcGVkIGJ5IHRoZSBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtLiAgWW91ciB1c2Ugb2YgRE9NIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBsaWNlbnNlIGZvdW5kIGluIHRoZQorCWZpbGUgPGEgaHJlZj0iYWJvdXRfZmlsZXMvTElDRU5TRS5kb20uaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPkxJQ0VOU0UuZG9tLmh0bWw8L2E+IHdoaWNoIGlzIGluY2x1ZGVkIHdpdGggdGhpcyBwbHVnLWluIGFuZCBjYW4gYWxzbyBiZSBmb3VuZCBhdAorCTxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvY29weXJpZ2h0LXNvZnR3YXJlLTE5OTgwNzIwIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy53My5vcmcvQ29uc29ydGl1bS9MZWdhbC9jb3B5cmlnaHQtc29mdHdhcmUtMTk5ODA3MjA8L2E+LjwvcD4KKwkKKwk8aDQ+U0FYPC9oND4KKwkKKwk8cD5TQVggaXMgZGV2ZWxvcGVkIGJ5IHRoZSBTQVggcHJvamVjdCAoPGEgaHJlZj0iaHR0cDovL3d3dy5zYXhwcm9qZWN0Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cuc2F4cHJvamVjdC5vcmc8L2E+KS4gIFlvdXIgdXNlIG9mIFNBWCBpcyBzdWJqZWN0IHRvIHRoZQorCXRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBsaWNlbnNlIGZvdW5kIGluIHRoZSBmaWxlIDxhIGhyZWY9ImFib3V0X2ZpbGVzL0xJQ0VOU0Uuc2F4LnR4dCIgdGFyZ2V0PSJfYmxhbmsiPkxJQ0VOU0Uuc2F4LnR4dDwvYT4gd2hpY2ggaXMgaW5jbHVkZWQgd2l0aCB0aGlzIHBsdWctaW4uPC9wPgorPC9ibG9ja3F1b3RlPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2Fib3V0X2ZpbGVzL0xJQ0VOU0UuZG9tLmh0bWwgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9hYm91dF9maWxlcy9MSUNFTlNFLmRvbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3ZTc4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9hYm91dF9maWxlcy9MSUNFTlNFLmRvbS5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TGljZW5zZTwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Cis8L2hlYWQ+Cis8Ym9keSBsYW5nPSJFTi1VUyI+Cis8cD5UaGlzIGxpY2Vuc2UgY2FtZSBmcm9tOjxicj4KKzxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvY29weXJpZ2h0LXNvZnR3YXJlLTE5OTgwNzIwIj5odHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZS0xOTk4MDcyMDwvYT48L3A+CisKKzxwPgorVzNDriBTT0ZUV0FSRSBOT1RJQ0UgQU5EIExJQ0VOU0U8YnI+CitDb3B5cmlnaHQgqSAxOTk0LTIwMDEgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvIj5Xb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtPC9hPiwgKDxhIGhyZWY9Imh0dHA6Ly93d3cubGNzLm1pdC5lZHUvIj5NYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5PC9hPiwgCis8YSBocmVmPSJodHRwOi8vd3d3LmlucmlhLmZyLyI+SW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCBlbiBBdXRvbWF0aXF1ZTwvYT4sIDxhIGhyZWY9Imh0dHA6Ly93d3cua2Vpby5hYy5qcC8iPktlaW8gVW5pdmVyc2l0eTwvYT4pLiBBbGwgUmlnaHRzIFJlc2VydmVkLjxicj4KKzxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvIj5odHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsLzwvYT48L3A+CisKKzxwPgorVGhpcyBXM0Mgd29yayAoaW5jbHVkaW5nIHNvZnR3YXJlLCBkb2N1bWVudHMsIG9yIG90aGVyIHJlbGF0ZWQ8YnI+CitpdGVtcykgaXMgYmVpbmcgcHJvdmlkZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIHVuZGVyIHRoZTxicj4KK2ZvbGxvd2luZyBsaWNlbnNlLiBCeSBvYnRhaW5pbmcsIHVzaW5nIGFuZC9vciBjb3B5aW5nIHRoaXMgd29yayw8YnI+Cit5b3UgKHRoZSBsaWNlbnNlZSkgYWdyZWUgdGhhdCB5b3UgaGF2ZSByZWFkLCB1bmRlcnN0b29kLCBhbmQgd2lsbDxicj4KK2NvbXBseSB3aXRoIHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kIGNvbmRpdGlvbnM6PGJyPgorUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZTxicj4KK2FuZCBpdHMgZG9jdW1lbnRhdGlvbiwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiygZm9yIGFueTxicj4KK3B1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIG9yIHJveWFsdHkgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQ8YnI+Cit5b3UgaW5jbHVkZSB0aGUgZm9sbG93aW5nIG9uIEFMTCBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIGFuZDxicj4KK2RvY3VtZW50YXRpb24gb3IgcG9ydGlvbnMgdGhlcmVvZiwgaW5jbHVkaW5nIG1vZGlmaWNhdGlvbnMsIHRoYXQ8YnI+Cit5b3UgbWFrZTo8L3A+CisKKzxwPgorVGhlIGZ1bGwgdGV4dCBvZiB0aGlzIE5PVElDRSBpbiBhIGxvY2F0aW9uIHZpZXdhYmxlIHRvIHVzZXJzIG9mPGJyPgordGhlIHJlZGlzdHJpYnV0ZWQgb3IgZGVyaXZhdGl2ZSB3b3JrLjwvcD4KKworPHA+CitBbnkgcHJlLWV4aXN0aW5nIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBkaXNjbGFpbWVycywgbm90aWNlcywgb3I8YnI+Cit0ZXJtcyBhbmQgY29uZGl0aW9ucy4gSWYgbm9uZSBleGlzdCwgYSBzaG9ydCBub3RpY2Ugb2YgdGhlPGJyPgorZm9sbG93aW5nIGZvcm0gKGh5cGVydGV4dCBpcyBwcmVmZXJyZWQsIHRleHQgaXMgcGVybWl0dGVkKSBzaG91bGQ8YnI+CitiZSB1c2VkIHdpdGhpbiB0aGUgYm9keSBvZiBhbnkgcmVkaXN0cmlidXRlZCBvciBkZXJpdmF0aXZlIGNvZGU6PGJyPgorIkNvcHlyaWdodCCpIFskZGF0ZS1vZi1zb2Z0d2FyZV0gV29ybGQgV2lkZSBXZWIgQ29uc29ydGl1bSwgKE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mPGJyPgorVGVjaG5vbG9neSwgSW5zdGl0dXQgTmF0aW9uYWwgZGU8YnI+CitSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0IGVuIEF1dG9tYXRpcXVlLCBLZWlvIFVuaXZlcnNpdHkpLiBBbGwgUmlnaHRzIFJlc2VydmVkLjxicj4KK2h0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvIjwvcD4KKworPHA+CitOb3RpY2Ugb2YgYW55IGNoYW5nZXMgb3IgbW9kaWZpY2F0aW9ucyB0byB0aGUgVzNDIGZpbGVzLDxicj4KK2luY2x1ZGluZyB0aGUgZGF0ZSBjaGFuZ2VzIHdlcmUgbWFkZS4gKFdlIHJlY29tbWVuZCB5b3UgcHJvdmlkZSA8YnI+CitVUklzIHRvIHRoZSBsb2NhdGlvbiBmcm9tIHdoaWNoIHRoZSBjb2RlIGlzIGRlcml2ZWQuKTwvcD4KKworPHA+CitUSElTIFNPRlRXQVJFIEFORCBET0NVTUVOVEFUSU9OIElTIFBST1ZJREVEICJBUyBJUywiIEFORDxicj4KK0NPUFlSSUdIVCBIT0xERVJTIE1BS0UgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1I8YnI+CitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPLCBXQVJSQU5USUVTIE9GPGJyPgorTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEFOWSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgVEhBVCBUSEU8YnI+CitVU0UgT0YgVEhFIFNPRlRXQVJFIE9SIERPQ1VNRU5UQVRJT04gV0lMTCBOT1QgSU5GUklOR0UgQU5ZIFRISVJEPGJyPgorUEFSVFkgUEFURU5UUywgQ09QWVJJR0hUUywgVFJBREVNQVJLUyBPUiBPVEhFUiBSSUdIVFMuPGJyPgorQ09QWVJJR0hUIEhPTERFUlMgV0lMTCBOT1QgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCw8YnI+CitTUEVDSUFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBBTlkgVVNFIE9GIFRIRTxicj4KK1NPRlRXQVJFIE9SIERPQ1VNRU5UQVRJT04uPC9wPgorCis8cD4KK1RoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXJzIG1heSBOT1QgYmUgdXNlZCBpbjxicj4KK2FkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIHRoZSBzb2Z0d2FyZSB3aXRob3V0PGJyPgorc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gVGl0bGUgdG8gY29weXJpZ2h0IGluIHRoaXM8YnI+Citzb2Z0d2FyZSBhbmQgYW55IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiB3aWxsIGF0IGFsbCB0aW1lcyByZW1haW48YnI+Cit3aXRoIGNvcHlyaWdodCBob2xkZXJzLjwvcD4KKworPHA+CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CitUaGlzIGZvcm11bGF0aW9uIG9mIFczQydzIG5vdGljZSBhbmQgbGljZW5zZSBiZWNhbWUgYWN0aXZlIG9uPGJyPgorQXVndXN0IDE0IDE5OTggc28gYXMgdG8gaW1wcm92ZSBjb21wYXRpYmlsaXR5IHdpdGggR1BMLiBUaGlzPGJyPgordmVyc2lvbiBlbnN1cmVzIHRoYXQgVzNDIHNvZnR3YXJlIGxpY2Vuc2luZyB0ZXJtcyBhcmUgbm8gbW9yZTxicj4KK3Jlc3RyaWN0aXZlIHRoYW4gR1BMIGFuZCBjb25zZXF1ZW50bHkgVzNDIHNvZnR3YXJlIG1heSBiZTxicj4KK2Rpc3RyaWJ1dGVkIGluIEdQTCBwYWNrYWdlcy4gU2VlIHRoZSBvbGRlciBmb3JtdWxhdGlvbiBmb3IgdGhlPGJyPgorcG9saWN5IHByaW9yIHRvIHRoaXMgZGF0ZS4gUGxlYXNlIHNlZSBvdXIgQ29weXJpZ2h0IEZBUSBmb3IgY29tbW9uIDxicj4KK3F1ZXN0aW9ucyBhYm91dCB1c2luZyBtYXRlcmlhbHMgZnJvbTxicj4KK291ciBzaXRlLCBpbmNsdWRpbmcgc3BlY2lmaWMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHBhY2thZ2VzIGxpa2U8YnI+CitsaWJ3d3csIEFtYXlhLCBhbmQgSmlnc2F3LiA8YnI+CitPdGhlciBxdWVzdGlvbnMgYWJvdXQgdGhpcyBub3RpY2UgY2FuIGJlPGJyPgorZGlyZWN0ZWQgdG8gc2l0ZS1wb2xpY3lAdzMub3JnLjwvcD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2Fib3V0X2ZpbGVzL0xJQ0VOU0Uuc2F4LnR4dCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2Fib3V0X2ZpbGVzL0xJQ0VOU0Uuc2F4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNDZiM2RjCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXRfZmlsZXMvTElDRU5TRS5zYXgudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMgbGljZW5zZSBjYW1lIGZyb206IGh0dHA6Ly93d3cubWVnZ2luc29uLmNvbS9TQVgvY29weWluZy5odG1sCisgIEhvd2V2ZXIgcGxlYXNlIG5vdGUgZnV0dXJlIHZlcnNpb25zIG9mIFNBWCBtYXkgYmUgY292ZXJlZCAKKyAgdW5kZXIgaHR0cDovL3NheHByb2plY3Qub3JnLz9zZWxlY3RlZD1wZAorCisKK1RoaXMgcGFnZSBpcyBub3cgb3V0IG9mIGRhdGUgLS0gc2VlIHRoZSBuZXcgU0FYIHNpdGUgYXQgCitodHRwOi8vd3d3LnNheHByb2plY3Qub3JnLyBmb3IgbW9yZSB1cC10by1kYXRlCityZWxlYXNlcyBhbmQgb3RoZXIgaW5mb3JtYXRpb24uIFBsZWFzZSBjaGFuZ2UgeW91ciBib29rbWFya3MuCisKKworU0FYMiBpcyBGcmVlIQorCitJIGhlcmVieSBhYmFuZG9uIGFueSBwcm9wZXJ0eSByaWdodHMgdG8gU0FYIDIuMCAodGhlIFNpbXBsZSBBUEkgZm9yCitYTUwpLCBhbmQgcmVsZWFzZSBhbGwgb2YgdGhlIFNBWCAyLjAgc291cmNlIGNvZGUsIGNvbXBpbGVkIGNvZGUsIGFuZAorZG9jdW1lbnRhdGlvbiBjb250YWluZWQgaW4gdGhpcyBkaXN0cmlidXRpb24gaW50byB0aGUgUHVibGljIERvbWFpbi4KK1NBWCBjb21lcyB3aXRoIE5PIFdBUlJBTlRZIG9yIGd1YXJhbnRlZSBvZiBmaXRuZXNzIGZvciBhbnkKK3B1cnBvc2UuCisKK0RhdmlkIE1lZ2dpbnNvbiwgZGF2aWRAbWVnZ2luc29uLmNvbQorMjAwMC0wNS0wNQpkaWZmIC0tZ2l0IGEvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXRfZmlsZXMvTk9USUNFIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXRfZmlsZXMvTk9USUNFCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmYjZkZGUKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9hYm91dF9maWxlcy9OT1RJQ0UKQEAgLTAsMCArMSwxNSBAQAorICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgPT0gIE5PVElDRSBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNlY3Rpb24gNCBkIG9mICAgICAgICAgICAgICAgICAgICA9PQorICAgPT0gIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PQorICAgPT0gIGluIHRoaXMgY2FzZSBmb3IgdGhlIEFwYWNoZSBBbnQgZGlzdHJpYnV0aW9uLiAgICAgICAgICAgICAgICAgICAgICA9PQorICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICBUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5CisgICBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pLgorCisgICBUaGlzIHByb2R1Y3QgaW5jbHVkZXMgYWxzbyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgOgorICAgICAtIHRoZSBXM0MgY29uc29ydGl1bSAoaHR0cDovL3d3dy53M2Mub3JnKSAsCisgICAgIC0gdGhlIFNBWCBwcm9qZWN0IChodHRwOi8vd3d3LnNheHByb2plY3Qub3JnKQorCisgICBQbGVhc2UgcmVhZCB0aGUgZGlmZmVyZW50IExJQ0VOU0UgZmlsZXMgcHJlc2VudCBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YKKyAgIHRoaXMgZGlzdHJpYnV0aW9uLgpkaWZmIC0tZ2l0IGEvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXRfZmlsZXMvYXNsLXYyMC50eHQgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9hYm91dF9maWxlcy9hc2wtdjIwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNjQ1Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYWJvdXRfZmlsZXMvYXNsLXYyMC50eHQKQEAgLTAsMCArMSwyMDIgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKworICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKworICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKKyAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisgICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisgICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKKyAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKworICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9idWlsZC5wcm9wZXJ0aWVzIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYzdkNmZlCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDIxIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNyBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9IGxpYi8qLmphcixcCisgICAgICAgICAgICAgICBiaW4vKixcCisgICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICBhYm91dC5odG1sLFwKKyAgICAgICAgICAgICAgIE1FVEEtSU5GLyxcCisgICAgICAgICAgICAgICBhYm91dF9maWxlcy8sXAorICAgICAgICAgICAgICAgZXRjLworc3JjLmluY2x1ZGVzID0gbGliLyouemlwLFwKKyAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAorICAgICAgICAgICAgICAgYWJvdXRfZmlsZXMvLFwKKyAgICAgICAgICAgICAgIGV0Yy8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hhbmdlbG9nLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9jaGFuZ2Vsb2cueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMGQxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hhbmdlbG9nLnhzbApAQCAtMCwwICsxLDE0NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCis8eHNsOnN0eWxlc2hlZXQKKyAgICB4bWxuczp4c2w9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybScKKyAgICB2ZXJzaW9uPScxLjAnPgorCis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAyLDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgIAorICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgIAorICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgIAorLS0+CisgIDx4c2w6cGFyYW0gbmFtZT0idGl0bGUiLz4KKyAgPHhzbDpwYXJhbSBuYW1lPSJtb2R1bGUiLz4KKyAgPHhzbDpwYXJhbSBuYW1lPSJjdnN3ZWIiLz4KKworICA8eHNsOm91dHB1dCBtZXRob2Q9Imh0bWwiIGluZGVudD0ieWVzIiBlbmNvZGluZz0iVVMtQVNDSUkiCisgICAgICAgICAgICAgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgICAgICAgICAgICBkb2N0eXBlLXN5c3RlbT0iaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQwMS9zdHJpY3QuZHRkIi8+CisKKyAgPCEtLSBDb3B5IHN0YW5kYXJkIGRvY3VtZW50IGVsZW1lbnRzLiAgRWxlbWVudHMgdGhhdAorICAgICAgIHNob3VsZCBiZSBpZ25vcmVkIG11c3QgYmUgZmlsdGVyZWQgYnkgYXBwbHktdGVtcGxhdGVzCisgICAgICAgdGFncy4gLS0+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorICAgIDx4c2w6Y29weT4KKyAgICAgIDx4c2w6Y29weS1vZiBzZWxlY3Q9ImF0dHJpYnV0ZTo6KlsuICE9ICcnXSIvPgorICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPgorICAgIDwveHNsOmNvcHk+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNoYW5nZWxvZyI+CisgICAgPGh0bWw+CisgICAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGl0bGUiLz48L3RpdGxlPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgIGJvZHksIHAgeworICAgICAgICAgICAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CisgICAgICAgICAgICBmb250LXNpemU6IDgwJTsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKKyAgICAgICAgICB9CisgICAgICAgICAgdHIsIHRkIHsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworICAgICAgICAgICAgYmFja2dyb3VuZDogI2VlZWVlMDsKKyAgICAgICAgICB9CisgICAgICAgICAgdGQgeworICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OworICAgICAgICAgIH0KKyAgICAgIC5kYXRlQW5kQXV0aG9yIHsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgICAgICAgYmFja2dyb3VuZDogI2E2Y2FmMDsKKyAgICAgICAgICAgIHBhZGRpbmctbGVmdDogM3B4OworICAgICAgfQorICAgICAgICAgIGEgeworICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7CisgICAgICAgICAgfQorICAgICAgICAgIHByZSB7CisgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICA8L2hlYWQ+CisgICAgICA8Ym9keT4KKyAgICAgICAgPGgxPgorICAgICAgICAgIDxhIG5hbWU9InRvcCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0aXRsZSIvPjwvYT4KKyAgICAgICAgPC9oMT4KKyAgICAgICAgPHAgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0Ij5EZXNpZ25lZCBmb3IgdXNlIHdpdGggPGEgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnLyI+QXBhY2hlIEFudDwvYT4uPC9wPgorICAgICAgICA8aHIvPgorICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjEiPgorICAgICAgICAgIAorICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi8vZW50cnkiPgorICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iZGF0ZSIgZGF0YS10eXBlPSJ0ZXh0IiBvcmRlcj0iZGVzY2VuZGluZyIvPgorICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0idGltZSIgZGF0YS10eXBlPSJ0ZXh0IiBvcmRlcj0iZGVzY2VuZGluZyIvPgorICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAKKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgCisgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImVudHJ5Ij4KKyAgICA8dHI+CisgICAgICA8dGQgY2xhc3M9ImRhdGVBbmRBdXRob3IiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGF0ZSIvPjx4c2w6dGV4dD4gPC94c2w6dGV4dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0idGltZSIvPjx4c2w6dGV4dD4gPC94c2w6dGV4dD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iYXV0aG9yIi8+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPgorICAgICAgICA8cHJlPgorPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJtc2ciLz48L3ByZT4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZmlsZSIvPgorICAgICAgICA8L3VsPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJkYXRlIj4KKyAgICA8aT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvaT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGltZSI+CisgICAgPGk+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L2k+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImF1dGhvciI+CisgICAgPGk+CisgICAgICA8YT4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+bWFpbHRvOjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvYT4KKyAgICA8L2k+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiPgorICAgIDxsaT4KKyAgICAgIDxhPgorICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICA8eHNsOndoZW4gdGVzdD0ic3RyaW5nLWxlbmd0aChwcmV2cmV2aXNpb24pID0gMCAiPgorICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRjdnN3ZWIiLz48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG1vZHVsZSIgLz4vPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiIC8+P3Jldj08eHNsOnZhbHVlLW9mIHNlbGVjdD0icmV2aXNpb24iIC8+JmFtcDtjb250ZW50LXR5cGU9dGV4dC94LWN2c3dlYi1tYXJrdXA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgPC94c2w6d2hlbj4KKyAgICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY3Zzd2ViIi8+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRtb2R1bGUiIC8+Lzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lIiAvPj9yMT08eHNsOnZhbHVlLW9mIHNlbGVjdD0icmV2aXNpb24iIC8+JmFtcDtyMj08eHNsOnZhbHVlLW9mIHNlbGVjdD0icHJldnJldmlzaW9uIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgIDwveHNsOm90aGVyd2lzZT4KKyAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIgLz4gKDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJyZXZpc2lvbiIvPik8L2E+CisgICAgPC9saT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPCEtLSBBbnkgZWxlbWVudHMgd2l0aGluIGEgbXNnIGFyZSBwcm9jZXNzZWQsCisgICAgICAgc28gdGhhdCB3ZSBjYW4gcHJlc2VydmUgSFRNTCB0YWdzLiAtLT4KKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibXNnIj4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+CisgIDwveHNsOnRlbXBsYXRlPgorICAKKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hlY2tzdHlsZS9jaGVja3N0eWxlLWZyYW1lcy54c2wgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hlY2tzdHlsZS9jaGVja3N0eWxlLWZyYW1lcy54c2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGNhYThiNwotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9jaGVja3N0eWxlL2NoZWNrc3R5bGUtZnJhbWVzLnhzbApAQCAtMCwwICsxLDI5MyBAQAorPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIiB2ZXJzaW9uPSIxLjAiCisgICAgeG1sbnM6bHhzbHQ9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy94c2x0IgorICAgIHhtbG5zOnJlZGlyZWN0PSJvcmcuYXBhY2hlLnhhbGFuLmxpYi5SZWRpcmVjdCIKKyAgICBleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0icmVkaXJlY3QiPgorCis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAyLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICAKKyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICAKKy0tPgorCisgICAgPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVTLUFTQ0lJIi8+CisgICAgPHhzbDpkZWNpbWFsLWZvcm1hdCBkZWNpbWFsLXNlcGFyYXRvcj0iLiIgZ3JvdXBpbmctc2VwYXJhdG9yPSIsIiAvPgorCisgICAgPHhzbDpwYXJhbSBuYW1lPSJvdXRwdXQuZGlyIiBzZWxlY3Q9IicuJyIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0iYmFzZWRpciIgc2VsZWN0PSInLiciLz4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNoZWNrc3R5bGUiPgorICAgICAgICA8IS0tIGNyZWF0ZSB0aGUgaW5kZXguaHRtbCAtLT4KKyAgICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vaW5kZXguaHRtbCI+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCIvPgorICAgICAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgICAgIDwhLS0gY3JlYXRlIHRoZSBzdHlsZXNoZWV0LmNzcyAtLT4KKyAgICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vc3R5bGVzaGVldC5jc3MiPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlc2hlZXQuY3NzIi8+CisgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICAgICAgPCEtLSBjcmVhdGUgdGhlIG92ZXJ2aWV3LXN1bW1hcnkuaHRtbCBhdCB0aGUgcm9vdCAtLT4KKyAgICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vb3ZlcnZpZXctZnJhbWUuaHRtbCI+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9Im92ZXJ2aWV3Ii8+CisgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICAgICAgPCEtLSBjcmVhdGUgdGhlIGFsbC1jbGFzc2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgICAgICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2FsbGNsYXNzZXMtZnJhbWUuaHRtbCI+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImFsbC5jbGFzc2VzIi8+CisgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICAgICAgPCEtLSBwcm9jZXNzIGFsbCBmaWxlcyAtLT4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWxlW2NvdW50KGVycm9yKSAhPSAwXSIvPgorICAgIDwveHNsOnRlbXBsYXRlPgorCisgICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJpbmRleC5odG1sIj4KKyAgICAgICAgPGh0bWw+CisgICAgICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgICAgICA8dGl0bGU+Q2hlY2tTdHlsZSBBdWRpdDwvdGl0bGU+CisgICAgICAgICAgICA8L2hlYWQ+CisgICAgICAgICAgICA8ZnJhbWVzZXQgY29scz0iMjAlLDgwJSI+CisgICAgICAgICAgICAgICAgPGZyYW1lIHNyYz0iYWxsY2xhc3Nlcy1mcmFtZS5odG1sIiBuYW1lPSJmaWxlTGlzdEZyYW1lIi8+CisgICAgICAgICAgICAgICAgPGZyYW1lIHNyYz0ib3ZlcnZpZXctZnJhbWUuaHRtbCIgbmFtZT0iZmlsZUZyYW1lIi8+CisgICAgICAgICAgICA8L2ZyYW1lc2V0PgorICAgICAgICAgICAgPG5vZnJhbWVzPgorICAgICAgICAgICAgICAgIDxoMj5GcmFtZSBBbGVydDwvaDI+CisgICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICAgIFRoaXMgZG9jdW1lbnQgaXMgZGVzaWduZWQgdG8gYmUgdmlld2VkIHVzaW5nIHRoZSBmcmFtZXMgZmVhdHVyZS4KKyAgICAgICAgICAgICAgICAgICAgSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UsIHlvdSBhcmUgdXNpbmcgYSBub24tZnJhbWUtY2FwYWJsZSB3ZWIgY2xpZW50LgorICAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDwvbm9mcmFtZXM+CisgICAgICAgIDwvaHRtbD4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciI+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1hbGlnbjpyaWdodCI+PGgyPkNoZWNrU3R5bGUgQXVkaXQ8L2gyPjwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGV4dC1hbGlnbjpyaWdodCI+RGVzaWduZWQgZm9yIHVzZSB3aXRoCisgICAgICAgICAgICAgICAgICA8YSBocmVmPSdodHRwOi8vY2hlY2tzdHlsZS5zb3VyY2Vmb3JnZS5uZXQvJz5DaGVja1N0eWxlPC9hPiBhbmQKKyAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J2h0dHA6Ly9hbnQuYXBhY2hlLm9yZy8nPkFudDwvYT4uPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxociBzaXplPSIxIi8+CisgICAgPC94c2w6dGVtcGxhdGU+CisKKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjaGVja3N0eWxlIiBtb2RlPSJvdmVydmlldyI+CisgICAgICAgIDxodG1sPgorICAgICAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGVzaGVldC5jc3MiLz4KKyAgICAgICAgICAgIDwvaGVhZD4KKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDwhLS0gcGFnZSBoZWFkZXIgLS0+CisgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKworICAgICAgICAgICAgICAgIDwhLS0gU3VtbWFyeSBwYXJ0IC0tPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ic3VtbWFyeSIvPgorICAgICAgICAgICAgICAgIDxociBzaXplPSIxIiB3aWR0aD0iMTAwJSIgYWxpZ249ImxlZnQiLz4KKworICAgICAgICAgICAgICAgIDwhLS0gRmlsZSBsaXN0IHBhcnQgLS0+CisgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJmaWxlbGlzdCIvPgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+CisgICAgPC94c2w6dGVtcGxhdGU+CisKKyAgICA8eHNsOnRlbXBsYXRlIG5hbWU9InN0eWxlc2hlZXQuY3NzIj4KKyAgICAgICAgLmJhbm5lcmNlbGwgeworICAgICAgICBib3JkZXI6IDBweDsKKyAgICAgICAgcGFkZGluZzogMHB4OworICAgICAgICB9CisgICAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW4tbGVmdDogMTA7CisgICAgICAgIG1hcmdpbi1yaWdodDogMTA7CisgICAgICAgIGZvbnQ6bm9ybWFsIDgwJSBhcmlhbCxoZWx2ZXRpY2Esc2Fuc2VyaWY7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsKKyAgICAgICAgY29sb3I6IzAwMDAwMDsKKyAgICAgICAgfQorICAgICAgICAub2Rkcm93IHRkIHsKKyAgICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjsKKyAgICAgICAgfQorICAgICAgICAuZXZlbnJvdyB0ZCB7CisgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CisgICAgICAgIH0KKyAgICAgICAgdGgsIHRkIHsKKyAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICAgICAgfQorICAgICAgICB0aCB7CisgICAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CisgICAgICAgIGJhY2tncm91bmQ6ICNjY2M7CisgICAgICAgIGNvbG9yOiBibGFjazsKKyAgICAgICAgfQorICAgICAgICB0YWJsZSwgdGgsIHRkIHsKKyAgICAgICAgZm9udC1zaXplOjEwMCU7CisgICAgICAgIGJvcmRlcjogbm9uZQorICAgICAgICB9CisgICAgICAgIHRhYmxlLmxvZyB0ciB0ZCwgdHIgdGggeworCisgICAgICAgIH0KKyAgICAgICAgaDIgeworICAgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgICBmb250LXNpemU6MTQwJTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogNTsKKyAgICAgICAgfQorICAgICAgICBoMyB7CisgICAgICAgIGZvbnQtc2l6ZToxMDAlOworICAgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgICBiYWNrZ3JvdW5kOiAjNTI1RDc2OworICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDsKKyAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKKyAgICAgICAgfQorICAgIDwveHNsOnRlbXBsYXRlPgorCisgICAgPCEtLQorICAgIENyZWF0ZXMgYW4gYWxsLWNsYXNzZXMuaHRtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaW5rIHRvIGFsbCBmaWxlcy4KKyAgICAtLT4KKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjaGVja3N0eWxlIiBtb2RlPSJhbGwuY2xhc3NlcyI+CisgICAgICAgIDxodG1sPgorICAgICAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGVzaGVldC5jc3MiLz4KKyAgICAgICAgICAgIDwvaGVhZD4KKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgIDxoMj5GaWxlczwvaDI+CisgICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEZvciBlYWNoIGZpbGUgY3JlYXRlIGl0cyBwYXJ0IC0tPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWxlW2NvdW50KGVycm9yKSAhPSAwXSIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcihAbmFtZSwgJGJhc2VkaXIpIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+CisgICAgPC94c2w6dGVtcGxhdGU+CisKKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjaGVja3N0eWxlIiBtb2RlPSJmaWxlbGlzdCI+CisgICAgICAgIDxoMz5GaWxlczwvaDM+CisgICAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aD5OYW1lPC90aD4KKyAgICAgICAgICAgICAgICA8dGg+RXJyb3JzPC90aD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZpbGVbY291bnQoZXJyb3IpICE9IDBdIiBtb2RlPSJmaWxlbGlzdCI+CisgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iY291bnQoZXJyb3IpIiBvcmRlcj0iZGVzY2VuZGluZyIgZGF0YS10eXBlPSJudW1iZXIiLz4KKyAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgPC90YWJsZT4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiIG1vZGU9ImZpbGVsaXN0Ij4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZWQtcm93Ii8+CisgICAgICAgICAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD5maWxlcy88L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoQG5hbWUsICRiYXNlZGlyKSIvPjx4c2w6dGV4dD4uaHRtbDwveHNsOnRleHQ+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcihAbmFtZSwgJGJhc2VkaXIpIi8+CisgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iY291bnQoZXJyb3IpIi8+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9ImZpbGVGcmFtZSI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0PmZpbGVzLzwveHNsOnRleHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcihAbmFtZSwgJGJhc2VkaXIpIi8+PHhzbDp0ZXh0Pi5odG1sPC94c2w6dGV4dD4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKEBuYW1lLCAkYmFzZWRpcikiLz4KKyAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorICAgIDwveHNsOnRlbXBsYXRlPgorCisgICAgPCEtLQorICAgIHRyYW5zZm9ybSBzdHJpbmcgbGlrZSBhL2IvYyB0byAuLi8uLi8uLi8KKyAgICBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0cmFuc2Zvcm0gaW50byBhIGRlc2NlbmRpbmcgZGlyZWN0b3J5IHBhdGgKKyAgICAtLT4KKyAgICA8eHNsOnRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgICAgICA8eHNsOnBhcmFtIG5hbWU9InBhdGgiLz4KKyAgICAgICAgPHhzbDppZiB0ZXN0PSJjb250YWlucygkcGF0aCwnLycpIj4KKyAgICAgICAgICAgIDx4c2w6dGV4dD4uLi88L3hzbDp0ZXh0PgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYXRoIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKCRwYXRoLCcvJykiLz48L3hzbDp3aXRoLXBhcmFtPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC94c2w6aWY+CisgICAgICAgIDx4c2w6aWYgdGVzdD0ibm90KGNvbnRhaW5zKCRwYXRoLCcvJykpIGFuZCBub3QoJHBhdGggPSAnJykiPgorICAgICAgICAgICAgPHhzbDp0ZXh0Pi4uLzwveHNsOnRleHQ+CisgICAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOnRlbXBsYXRlPgorCisgICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmlsZSI+CisgICAgICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2ZpbGVzL3tzdWJzdHJpbmctYWZ0ZXIoQG5hbWUsICRiYXNlZGlyKX0uaHRtbCI+CisgICAgICAgICAgICA8aHRtbD4KKyAgICAgICAgICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj48eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGF0aCI+PHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhdGgiIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKEBuYW1lLCAkYmFzZWRpcikiLz48L3hzbDpjYWxsLXRlbXBsYXRlPjx4c2w6dGV4dD5zdHlsZXNoZWV0LmNzczwveHNsOnRleHQ+PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8L2xpbms+CisgICAgICAgICAgICAgICAgPC9oZWFkPgorICAgICAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICAgICAgICAgICAgICA8aDM+RmlsZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKEBuYW1lLCAkYmFzZWRpcikiLz48L2gzPgorICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImxvZyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RXJyb3IgRGVzY3JpcHRpb248L3RoPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5MaW5lOkNvbHVtbjwvdGg+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImVycm9yIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGVkLXJvdyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgdGl0bGU9IntAc291cmNlfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBtZXNzYWdlIi8+PC9hPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGxpbmUiLz48eHNsOmlmIHRlc3Q9IkBjb2x1bW4iPjo8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGNvbHVtbiIvPjwveHNsOmlmPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgIDwvYm9keT4KKyAgICAgICAgICAgIDwvaHRtbD4KKyAgICAgICAgPC9yZWRpcmVjdDp3cml0ZT4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNoZWNrc3R5bGUiIG1vZGU9InN1bW1hcnkiPgorICAgICAgICA8aDM+U3VtbWFyeTwvaDM+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZmlsZUNvdW50IiBzZWxlY3Q9ImNvdW50KGZpbGUpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZXJyb3JDb3VudCIgc2VsZWN0PSJjb3VudChmaWxlL2Vycm9yKSIvPgorICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImZpbGVFcnJvckNvdW50IiBzZWxlY3Q9ImNvdW50KGZpbGVbY291bnQoZXJyb3IpICE9IDBdKSIvPgorICAgICAgICA8dGFibGUgY2xhc3M9ImxvZyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGg+VG90YWwgRmlsZXM8L3RoPgorICAgICAgICAgICAgICAgIDx0aD5GaWxlcyBXaXRoIEVycm9yczwvdGg+CisgICAgICAgICAgICAgICAgPHRoPkVycm9yczwvdGg+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGVkLXJvdyIvPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZpbGVDb3VudCIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmlsZUVycm9yQ291bnQiLz48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGVycm9yQ291bnQiLz48L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iYWx0ZXJuYXRlZC1yb3ciPgorICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgbW9kIDIgPSAxIj5vZGRyb3c8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDAiPmV2ZW5yb3c8L3hzbDppZj4KKyAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgIDwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hlY2tzdHlsZS9jaGVja3N0eWxlLXRleHQueHNsIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NoZWNrc3R5bGUvY2hlY2tzdHlsZS10ZXh0LnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MWQ0OTZjCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NoZWNrc3R5bGUvY2hlY2tzdHlsZS10ZXh0LnhzbApAQCAtMCwwICsxLDMzIEBACis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCI+CisKKzwhLS0KKyAgICBDb3B5cmlnaHQgIDIwMDMtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgIAorICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgIAorICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgIAorLS0+CisKKyAgICA8eHNsOnN0cmlwLXNwYWNlIGVsZW1lbnRzPSJjaGVja3N0eWxlIi8+CisgICAgPHhzbDpwcmVzZXJ2ZS1zcGFjZSBlbGVtZW50cz0iZmlsZSIvPgorICAgIDx4c2w6b3V0cHV0IG1ldGhvZD0idGV4dCIvPgorICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNoZWNrc3R5bGUvZmlsZS9lcnJvciI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi9AbmFtZSIvPgorICAgICAgICA8eHNsOnRleHQ+OjwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbGluZSIvPgorICAgICAgICA8eHNsOnRleHQ+OjwveHNsOnRleHQ+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAY29sdW1uIi8+CisgICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBtZXNzYWdlIi8+CisgICAgPC94c2w6dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgorCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY2hlY2tzdHlsZS9jaGVja3N0eWxlLXhkb2MueHNsIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NoZWNrc3R5bGUvY2hlY2tzdHlsZS14ZG9jLnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjNhYzBlCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NoZWNrc3R5bGUvY2hlY2tzdHlsZS14ZG9jLnhzbApAQCAtMCwwICsxLDEyOSBAQAorPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIiB2ZXJzaW9uPSIxLjAiCisgICAgeG1sbnM6bHhzbHQ9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy94c2x0IgorICAgIHhtbG5zOnJlZGlyZWN0PSJvcmcuYXBhY2hlLnhhbGFuLmxpYi5SZWRpcmVjdCIKKyAgICBleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0icmVkaXJlY3QiPgorCis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAzLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICAKKyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICAKKy0tPgorCisgICAgPHhzbDpvdXRwdXQgbWV0aG9kPSJ4bWwiIGluZGVudD0ieWVzIi8+CisgICAgPHhzbDpkZWNpbWFsLWZvcm1hdCBkZWNpbWFsLXNlcGFyYXRvcj0iLiIgZ3JvdXBpbmctc2VwYXJhdG9yPSIsIiAvPgorCisgICAgPHhzbDpwYXJhbSBuYW1lPSJvdXRwdXQuZGlyIiBzZWxlY3Q9IicuJyIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0iYmFzZWRpciIgc2VsZWN0PSInLiciLz4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNoZWNrc3R5bGUiPgorICAgICAgPGRvY3VtZW50PgorICAgICAgICA8cHJvcGVydGllcz4KKyAgICAgICAgICA8dGl0bGU+Q2hlY2tzdHlsZSBBdWRpdDwvdGl0bGU+CisgICAgICAgIDwvcHJvcGVydGllcz4KKworICAgICAgICA8Ym9keT4KKyAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InN1bW1hcnkiLz4KKyAgICAgICAgICA8IS0tIEZpbGUgbGlzdCBwYXJ0IC0tPgorICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iZmlsZWxpc3QiLz4KKyAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZpbGVbY291bnQoZXJyb3IpICE9IDBdIi8+CisgICAgICAgIDwvYm9keT4KKyAgICAgIDwvZG9jdW1lbnQ+CisgICAgPC94c2w6dGVtcGxhdGU+CisKKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJjaGVja3N0eWxlIiBtb2RlPSJmaWxlbGlzdCI+CisgICAgICA8c2VjdGlvbiBuYW1lPSJGaWxlcyI+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+CisgICAgICAgICAgICAgICAgPHRoPkVycm9yczwvdGg+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWxlW2NvdW50KGVycm9yKSAhPSAwXSIgbW9kZT0iZmlsZWxpc3QiPgorICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9ImNvdW50KGVycm9yKSIgb3JkZXI9ImRlc2NlbmRpbmciIGRhdGEtdHlwZT0ibnVtYmVyIi8+CisgICAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgIDwvdGFibGU+CisgICAgICA8L3NlY3Rpb24+CisgICAgPC94c2w6dGVtcGxhdGU+CisKKyAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJmaWxlIiBtb2RlPSJmaWxlbGlzdCI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGVkLXJvdyIvPgorICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICA8YT4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+ZmlsZXM8L3hzbDp0ZXh0Pjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoQG5hbWUsICRiYXNlZGlyKSIvPjx4c2w6dGV4dD4uaHRtbDwveHNsOnRleHQ+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcihAbmFtZSwgJGJhc2VkaXIpIi8+CisgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iY291bnQoZXJyb3IpIi8+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiPgorICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vZmlsZXN7c3Vic3RyaW5nLWFmdGVyKEBuYW1lLCAkYmFzZWRpcil9LnhtbCI+CisgICAgICAgIDxkb2N1bWVudD4KKyAgICAgICAgICA8cHJvcGVydGllcz4KKyAgICAgICAgICAgIDx0aXRsZT5DaGVja3N0eWxlIEF1ZGl0PC90aXRsZT4KKyAgICAgICAgICA8L3Byb3BlcnRpZXM+CisKKyAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgIDxzZWN0aW9uIG5hbWU9IkRldGFpbHMgZm9yIHtzdWJzdHJpbmctYWZ0ZXIoQG5hbWUsICRiYXNlZGlyKX0iPgorICAgICAgICAgICAgICA8dGFibGU+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgPHRoPkVycm9yIERlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICAgICAgICAgICAgICA8dGg+TGluZTwvdGg+CisgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImVycm9yIj4KKyAgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGVkLXJvdyIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgdGl0bGU9IntAc291cmNlfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBtZXNzYWdlIi8+PC9hPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGxpbmUiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgIDwvc2VjdGlvbj4KKyAgICAgICAgICA8L2JvZHk+CisgICAgICAgIDwvZG9jdW1lbnQ+CisgICAgICA8L3JlZGlyZWN0OndyaXRlPgorICAgIDwveHNsOnRlbXBsYXRlPgorCisgICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hlY2tzdHlsZSIgbW9kZT0ic3VtbWFyeSI+CisgICAgICA8c2VjdGlvbiBuYW1lPSJTdW1tYXJ5Ij4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmaWxlQ291bnQiIHNlbGVjdD0iY291bnQoZmlsZSkiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJlcnJvckNvdW50IiBzZWxlY3Q9ImNvdW50KGZpbGUvZXJyb3IpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZmlsZUVycm9yQ291bnQiIHNlbGVjdD0iY291bnQoZmlsZVtjb3VudChlcnJvcikgIT0gMF0pIi8+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGg+RmlsZXM8L3RoPgorICAgICAgICAgICAgICAgIDx0aD5GaWxlcyBXaXRoIEVycm9yczwvdGg+CisgICAgICAgICAgICAgICAgPHRoPkVycm9yczwvdGg+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGVkLXJvdyIvPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZpbGVDb3VudCIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmlsZUVycm9yQ291bnQiLz48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGVycm9yQ291bnQiLz48L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgIDwvc2VjdGlvbj4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKworICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iYWx0ZXJuYXRlZC1yb3ciPgorICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgbW9kIDIgPSAxIj5vZGRyb3c8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDAiPmV2ZW5yb3c8L3hzbDppZj4KKyAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgIDwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KKwpkaWZmIC0tZ2l0IGEvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NvdmVyYWdlLWZyYW1lcy54c2wgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvY292ZXJhZ2UtZnJhbWVzLnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mODA4OTA4Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2NvdmVyYWdlLWZyYW1lcy54c2wKQEAgLTAsMCArMSw0OTYgQEAKKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIgorICAgIHhtbG5zOmx4c2x0PSJodHRwOi8veG1sLmFwYWNoZS5vcmcveHNsdCIKKyAgICB4bWxuczpyZWRpcmVjdD0ib3JnLmFwYWNoZS54YWxhbi5saWIuUmVkaXJlY3QiCisgICAgZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9InJlZGlyZWN0Ij4KKzx4c2w6b3V0cHV0IG1ldGhvZD0iaHRtbCIgaW5kZW50PSJ5ZXMiLz4KKzx4c2w6ZGVjaW1hbC1mb3JtYXQgZGVjaW1hbC1zZXBhcmF0b3I9Ii4iIGdyb3VwaW5nLXNlcGFyYXRvcj0iLCIgLz4KKzwhLS0KKyAgICBDb3B5cmlnaHQgIDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgIAorICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgIAorICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgIAorLS0+CisKKzwhLS0KKworIFNhbXBsZSBzdHlsZXNoZWV0IHRvIGJlIHVzZWQgd2l0aCBKUHJvYmUgMy4wIFhNTCBvdXRwdXQuCisKKyBJdCBjcmVhdGVzIGEgc2V0IG9mIEhUTUwgZmlsZXMgYSBsYSBqYXZhZG9jIHdoZXJlIHlvdSBjYW4gYnJvd3NlIGVhc2lseQorIHRocm91Z2ggYWxsIHBhY2thZ2VzIGFuZCBjbGFzc2VzLgorCisgSXQgaXMgYmVzdCB1c2VkIHdpdGggSlByb2JlIENvdmVyYWdlIEFudCB0YXNrIHRoYXQgZ2l2ZXMgeW91IHRoZSBiZW5lZml0Cisgb2YgYSByZWZlcmVuY2UgY2xhc3NwYXRoIHNvIHRoYXQgeW91IGhhdmUgdGhlIGxpc3Qgb2YgY2xhc3Nlcy9tZXRob2RzCisgdGhhdCBhcmUgbm90IHVzZWQgYXQgYWxsIGluIGEgZ2l2ZW4gY2xhc3NwYXRoLgorCisgQGF1dGhvciBTdGVwaGFuZSBCYWlsbGlleiA8YSBocmVmPSJtYWlsdG86c2JhaWxsaWV6QGFwYWNoZS5vcmciLz4KKworLS0+CisKKzwhLS0gZGVmYXVsdCBvdXRwdXQgZGlyZWN0b3J5IGlzIGN1cnJlbnQgZGlyZWN0b3J5IC0tPgorPHhzbDpwYXJhbSBuYW1lPSJvdXRwdXQuZGlyIiBzZWxlY3Q9IicuJyIvPgorCis8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBSb290IGVsZW1lbnQKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii9zbmFwc2hvdCI+CisgICAgPCEtLSBjcmVhdGUgdGhlIGluZGV4Lmh0bWwgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vaW5kZXguaHRtbCI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJpbmRleC5odG1sIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIHRoZSBzdHlsZXNoZWV0LmNzcyAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9zdHlsZXNoZWV0LmNzcyI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzdHlsZXNoZWV0LmNzcyIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSB0aGUgb3ZlcnZpZXctcGFja2FnZXMuaHRtbCBhdCB0aGUgcm9vdCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9Im92ZXJ2aWV3LnBhY2thZ2VzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIHRoZSBhbGwtcGFja2FnZXMuaHRtbCBhdCB0aGUgcm9vdCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9vdmVydmlldy1mcmFtZS5odG1sIj4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJhbGwucGFja2FnZXMiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIGFsbC1jbGFzc2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vYWxsY2xhc3Nlcy1mcmFtZS5odG1sIj4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJhbGwuY2xhc3NlcyIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIHByb2Nlc3MgYWxsIHBhY2thZ2VzIC0tPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlIiBtb2RlPSJ3cml0ZSIvPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBGcmFtZXNldCBkZWZpbml0aW9uLiBFbnRyeSBwb2ludCBmb3IgdGhlIHJlcG9ydC4KKyAgICAzIGZyYW1lczogcGFja2FnZUxpc3RGcmFtZSwgY2xhc3NMaXN0RnJhbWUsIGNsYXNzRnJhbWUKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCI+Cis8aHRtbD4KKyAgICA8aGVhZD48dGl0bGU+Q292ZXJhZ2UgUmVzdWx0cy48L3RpdGxlPjwvaGVhZD4KKyAgICA8ZnJhbWVzZXQgY29scz0iMjAlLDgwJSI+CisgICAgICAgIDxmcmFtZXNldCByb3dzPSIzMCUsNzAlIj4KKyAgICAgICAgICAgIDxmcmFtZSBzcmM9Im92ZXJ2aWV3LWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VMaXN0RnJhbWUiLz4KKyAgICAgICAgICAgIDxmcmFtZSBzcmM9ImFsbGNsYXNzZXMtZnJhbWUuaHRtbCIgbmFtZT0iY2xhc3NMaXN0RnJhbWUiLz4KKyAgICAgICAgPC9mcmFtZXNldD4KKyAgICAgICAgPGZyYW1lIHNyYz0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiBuYW1lPSJjbGFzc0ZyYW1lIi8+CisgICAgPC9mcmFtZXNldD4KKyAgICA8bm9mcmFtZXM+CisgICAgICAgIDxoMj5GcmFtZSBBbGVydDwvaDI+CisgICAgICAgIDxwPgorICAgICAgICBUaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlLCB5b3UgYXJlIHVzaW5nIGEgbm9uLWZyYW1lLWNhcGFibGUgd2ViIGNsaWVudC4KKyAgICAgICAgPC9wPgorICAgIDwvbm9mcmFtZXM+Cis8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFN0eWxlc2hlZXQgQ1NTIHVzZWQKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKzwhLS0gdGhpcyBpcyB0aGUgc3R5bGVzaGVldCBjc3MgdG8gdXNlIGZvciBuZWFybHkgZXZlcnl0aGluZyAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiPgorICAgIC5iYW5uZXJjZWxsIHsKKyAgICAgIGJvcmRlcjogMHB4OworICAgICAgcGFkZGluZzogMHB4OworICAgIH0KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbi1sZWZ0OiAxMDsKKyAgICAgIG1hcmdpbi1yaWdodDogMTA7CisgICAgICBmb250Om5vcm1hbCA4MCUgYXJpYWwsaGVsdmV0aWNhLHNhbnNlcmlmOworICAgICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOworICAgICAgY29sb3I6IzAwMDAwMDsKKyAgICB9CisgICAgLmEgdGQgeworICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjsKKyAgICB9CisgICAgLmIgdGQgeworICAgICAgYmFja2dyb3VuZDogI2ZmZjsKKyAgICB9CisgICAgdGgsIHRkIHsKKyAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICB0aCB7CisgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgYmFja2dyb3VuZDogI2NjYzsKKyAgICAgIGNvbG9yOiBibGFjazsKKyAgICB9CisgICAgdGFibGUsIHRoLCB0ZCB7CisgICAgICBmb250LXNpemU6MTAwJTsKKyAgICAgIGJvcmRlcjogbm9uZQorICAgIH0KKyAgICB0YWJsZS5sb2cgdHIgdGQsIHRyIHRoIHsKKworICAgIH0KKyAgICBoMiB7CisgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgZm9udC1zaXplOjE0MCU7CisgICAgICBtYXJnaW4tYm90dG9tOiA1OworICAgIH0KKyAgICBoMyB7CisgICAgICBmb250LXNpemU6MTAwJTsKKyAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CisgICAgICBiYWNrZ3JvdW5kOiAjNTI1RDc2OworICAgICAgY29sb3I6IHdoaXRlOworICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgICAgcGFkZGluZzogNXB4OworICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7CisgICAgICBtYXJnaW4tbGVmdDogMnB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMDsKKyAgICB9Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIExpc3Qgb2YgYWxsIGNsYXNzZXMgaW4gYWxsIHBhY2thZ2VzCisgICAgVGhpcyB3aWxsIGJlIHRoZSBmaXJzdCBwYWdlIGluIHRoZSBjbGFzc0xpc3RGcmFtZQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic25hcHNob3QiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayIvPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5PgorICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgorICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0icGFja2FnZS9jbGFzcyI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IihhbmNlc3Rvcjo6cGFja2FnZSlbbGFzdCgpXS9AbmFtZSIvPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImxpbmsiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJub3QoJHBhY2thZ2UubmFtZT0nJykiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0cmFuc2xhdGUoJHBhY2thZ2UubmFtZSwnLicsJy8nKSIvPjx4c2w6dGV4dD4vPC94c2w6dGV4dD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjx4c2w6dGV4dD4uaHRtbDwveHNsOnRleHQ+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOnZhcmlhYmxlPgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD0iY2xhc3NGcmFtZSIgaHJlZj0ieyRsaW5rfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBsaXN0IG9mIGFsbCBwYWNrYWdlcyAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InNuYXBzaG90IiBtb2RlPSJhbGwucGFja2FnZXMiPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIi8+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8aDI+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPkhvbWU8L2E+PC9oMj4KKyAgICAgICAgICAgIDxoMj5QYWNrYWdlczwvaDI+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJwYWNrYWdlIj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiIG9yZGVyPSJhc2NlbmRpbmciLz4KKyAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJ7dHJhbnNsYXRlKEBuYW1lLCcuJywnLycpfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBvdmVydmlldyBvZiBzdGF0aXN0aWNzIGluIHBhY2thZ2VzIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ic25hcHNob3QiIG1vZGU9Im92ZXJ2aWV3LnBhY2thZ2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayIvPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IG9ubG9hZD0ib3BlbignYWxsY2xhc3Nlcy1mcmFtZS5odG1sJywnY2xhc3NMaXN0RnJhbWUnKSI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgICAgIDxoMz5TdW1tYXJ5PC9oMz4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDwhLS10aCB3aWR0aD0iMTAlIiBub3dyYXA9Im5vd3JhcCI+RGF0ZTwvdGg+CisgICAgICAgICAgICAgICAgPHRoIHdpZHRoPSIxMCUiIG5vd3JhcD0ibm93cmFwIj5FbGFwc2VkIHRpbWU8L3RoLS0+CisgICAgICAgICAgICAgICAgPHRoIHdpZHRoPSIxMCUiIG5vd3JhcD0ibm93cmFwIj5SZXBvcnRlZCBDbGFzc2VzPC90aD4KKyAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwJSIgbm93cmFwPSJub3dyYXAiPk1ldGhvZHMgSGl0PC90aD4KKyAgICAgICAgICAgICAgICA8dGggd2lkdGg9IjEwJSIgbm93cmFwPSJub3dyYXAiPkxpbmVzIEhpdDwvdGg+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyIGNsYXNzPSJhIj4KKyAgICAgICAgICAgICAgICA8IS0tdGQgbm93cmFwPSJub3dyYXAiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJleGVjdXRpb25fbG9nL0Bwcm9ncmFtX3N0YXJ0Ii8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoZXhlY3V0aW9uX2xvZy9AZWxhcHNlZF90aW1lIGRpdiAxMDAwLCcwLjAnKSIvPnNlY3M8L3RkLS0+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJjb3VudChwYWNrYWdlL2NsYXNzKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJmb3JtYXQtbnVtYmVyKGNvdi5kYXRhL0BoaXRfbWV0aG9kcyBkaXYgY292LmRhdGEvQHRvdGFsX21ldGhvZHMsJzAuMCUnKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJmb3JtYXQtbnVtYmVyKGNvdi5kYXRhL0BoaXRfbGluZXMgZGl2IGNvdi5kYXRhL0B0b3RhbF9saW5lcywnMC4wJScpIi8+PC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnk7Ij4KKyAgICAgICAgVG8gZW5zdXJlIGFjY3VyYXRlIHRlc3QgcnVucyBvbiBKYXZhIGFwcGxpY2F0aW9ucywgZGV2ZWxvcGVycyBuZWVkIHRvIGtub3cgaG93IG11Y2ggb2YKKyAgICAgICAgdGhlIGNvZGUgaGFzIGJlZW4gdGVzdGVkLCBhbmQgd2hlcmUgdG8gZmluZCBhbnkgdW50ZXN0ZWQgY29kZS4gQ292ZXJhZ2UgaGVscHMgeW91CisgICAgICAgIGxvY2F0ZSB1bnRlc3RlZCBjb2RlLCBhbmQgbWVhc3VyZSBwcmVjaXNlbHkgaG93IG11Y2ggY29kZSBoYXMgYmVlbiBleGVyY2lzZWQuCisgICAgICAgIFRoZSByZXN1bHQgaXMgYSBoaWdoZXIgcXVhbGl0eSBhcHBsaWNhdGlvbiBpbiBhIHNob3J0ZXIgcGVyaW9kIG9mIHRpbWUuCisgICAgICAgIDxwLz4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKworICAgICAgICA8aDM+UGFja2FnZXM8L2gzPgorICAgICAgICA8dGFibGUgY2xhc3M9ImxvZyIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InBhY2thZ2VbMV0iIG1vZGU9InN0YXRzLmhlYWRlciIvPgorICAgICAgICAgICAgPCEtLSBkaXNwbGF5IHBhY2thZ2VzIGFuZCBzb3J0IHRoZW0gdmlhIHRoZWlyIGNvdmVyYWdlIHJhdGUgLS0+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0icGFja2FnZSI+CisgICAgICAgICAgICAgICAgPHhzbDpzb3J0IGRhdGEtdHlwZT0ibnVtYmVyIiBzZWxlY3Q9ImNvdi5kYXRhL0BoaXRfbGluZXMgZGl2IGNvdi5kYXRhL0B0b3RhbF9saW5lcyIvPgorICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGUtcm93Ii8+CisgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSJ7dHJhbnNsYXRlKEBuYW1lLCcuJywnLycpfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZm9ybWF0LW51bWJlcihjb3YuZGF0YS9AaGl0X21ldGhvZHMgZGl2IGNvdi5kYXRhL0B0b3RhbF9tZXRob2RzLCcwLjAlJykiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoY292LmRhdGEvQGhpdF9saW5lcyBkaXYgY292LmRhdGEvQHRvdGFsX2xpbmVzLCcwLjAlJykiLz48L3RkPgorICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VGb290ZXIiLz4KKyAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLQorIGRldGFpbGVkIGluZm8gZm9yIGEgcGFja2FnZS4gSXQgd2lsbCBvdXRwdXQgdGhlIGxpc3Qgb2YgY2xhc3NlcworLCB0aGUgc3VtbWFyeSBwYWdlLCBhbmQgdGhlIGluZm8gZm9yIGVhY2ggY2xhc3MKKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFja2FnZSIgbW9kZT0id3JpdGUiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5kaXIiPgorICAgICAgICA8eHNsOmlmIHRlc3Q9Im5vdChAbmFtZSA9ICcnKSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRyYW5zbGF0ZShAbmFtZSwnLicsJy8nKSIvPjwveHNsOmlmPgorICAgICAgICA8eHNsOmlmIHRlc3Q9IkBuYW1lID0gJyciPi48L3hzbDppZj4KKyAgICA8L3hzbDp2YXJpYWJsZT4KKworICAgIDwhLS0gY3JlYXRlIGEgY2xhc3Nlcy1saXN0Lmh0bWwgaW4gdGhlIHBhY2thZ2UgZGlyZWN0b3J5IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3BhY2thZ2UtZnJhbWUuaHRtbCI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iY2xhc3Nlcy5saXN0Ii8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIGEgcGFja2FnZS1zdW1tYXJ5Lmh0bWwgaW4gdGhlIHBhY2thZ2UgZGlyZWN0b3J5IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3BhY2thZ2Utc3VtbWFyeS5odG1sIj4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJwYWNrYWdlLnN1bW1hcnkiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBmb3IgZWFjaCBjbGFzcywgY3JlYXRlcyBhIEBuYW1lLmh0bWwgLS0+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9ImNsYXNzIj4KKyAgICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0veyRwYWNrYWdlLmRpcn0ve0BuYW1lfS5odG1sIj4KKyAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iY2xhc3MuZGV0YWlscyIvPgorICAgICAgICA8L3JlZGlyZWN0OndyaXRlPgorICAgIDwveHNsOmZvci1lYWNoPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gbGlzdCBvZiBjbGFzc2VzIGluIGEgcGFja2FnZSAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InBhY2thZ2UiIG1vZGU9ImNsYXNzZXMubGlzdCI+CisgICAgPGh0bWw+CisgICAgICAgIDxIRUFEPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvSEVBRD4KKyAgICAgICAgPEJPRFk+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxIMj48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+PC9IMj4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKworICAgICAgICAgICAgPEgyPkNsYXNzZXM8L0gyPgorICAgICAgICAgICAgPFRBQkxFIFdJRFRIPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iY2xhc3MiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IntAbmFtZX0uaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2E+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICAgICAgPC9UQUJMRT4KKyAgICAgICAgPC9CT0RZPgorICAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIHN1bW1hcnkgb2YgYSBwYWNrYWdlIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFja2FnZSIgbW9kZT0icGFja2FnZS5zdW1tYXJ5Ij4KKyAgICA8SFRNTD4KKyAgICAgICAgPEhFQUQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC9IRUFEPgorICAgICAgICA8IS0tIHdoZW4gbG9hZGluZyB0aGlzIHBhY2thZ2UsIGl0IHdpbGwgb3BlbiB0aGUgY2xhc3NlcyBpbnRvIHRoZSBmcmFtZSAtLT4KKyAgICAgICAgPEJPRFkgb25sb2FkPSJvcGVuKCdwYWNrYWdlLWZyYW1lLmh0bWwnLCdjbGFzc0xpc3RGcmFtZScpIj4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgICAgICAgICA8aDM+UGFja2FnZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2gzPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ic3RhdHMuaGVhZGVyIi8+CisgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJzdGF0cyIvPgorICAgICAgICAgICAgPC90YWJsZT4KKworICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJjb3VudChjbGFzcykgJmd0OyAwIj4KKyAgICAgICAgICAgICAgICA8SDM+Q2xhc3NlczwvSDM+CisgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InN0YXRzLmhlYWRlciIvPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNsYXNzIiBtb2RlPSJzdGF0cyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgZGF0YS10eXBlPSJudW1iZXIiIHNlbGVjdD0iY292LmRhdGEvQGhpdF9saW5lcyBkaXYgY292LmRhdGEvQHRvdGFsX2xpbmVzIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgPC94c2w6aWY+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUZvb3RlciIvPgorICAgICAgICA8L0JPRFk+CisgICAgPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gZGV0YWlscyBvZiBhIGNsYXNzIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2xhc3MiIG1vZGU9ImNsYXNzLmRldGFpbHMiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IihhbmNlc3Rvcjo6cGFja2FnZSlbbGFzdCgpXS9AbmFtZSIvPgorICAgIDxIVE1MPgorICAgICAgICA8SEVBRD4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IiRwYWNrYWdlLm5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvSEVBRD4KKyAgICAgICAgPEJPRFk+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICAgICAgPEgzPkNsYXNzIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAnJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+LjwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvSDM+CisKKyAgICAgICAgICAgIDwhLS0gY2xhc3Mgc3VtbWFyeSAtLT4KKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InN0YXRzLmhlYWRlciIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ic3RhdHMiLz4KKyAgICAgICAgICAgIDwvdGFibGU+CisKKyAgICAgICAgICAgIDwhLS0gZGV0YWlscyBvZiBtZXRob2RzIC0tPgorICAgICAgICAgICAgPEgzPk1ldGhvZHM8L0gzPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibWV0aG9kWzFdIiBtb2RlPSJzdGF0cy5oZWFkZXIiLz4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Im1ldGhvZCIgbW9kZT0ic3RhdHMiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgZGF0YS10eXBlPSJudW1iZXIiIHNlbGVjdD0iY292LmRhdGEvQGhpdF9saW5lcyBkaXYgY292LmRhdGEvQHRvdGFsX2xpbmVzIi8+CisgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIi8+CisgICAgICAgIDwvQk9EWT4KKyAgICA8L0hUTUw+CisKKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIFBhZ2UgSGVhZGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIj4KKyAgPCEtLSBqYWthcnRhIGxvZ28gLS0+CisgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiPgorICA8dHI+CisgICAgPHRkIGNsYXNzPSJiYW5uZXJjZWxsIiByb3dzcGFuPSIyIj4KKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvIj4KKyAgICAgIDxpbWcgc3JjPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2ltYWdlcy9qYWthcnRhLWxvZ28uZ2lmIiBhbHQ9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmciIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiLz4KKyAgICAgIDwvYT4KKyAgICA8L3RkPgorICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxoMj5Tb3VyY2UgQ29kZSBDb3ZlcmFnZTwvaDI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPkRlc2lnbmVkIGZvciB1c2Ugd2l0aCA8YSBocmVmPSdodHRwOi8vd3d3LnNpdHJha2EuY29tL2pwcm9iZSc+U2l0cmFrYSBKUHJvYmU8L2E+IGFuZCA8YSBocmVmPSdodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnJz5BbnQ8L2E+LjwvdGQ+CisgICAgICAgIDwvdHI+CisgIDwvdGFibGU+CisgICAgPGhyIHNpemU9IjEiLz4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIFBhZ2UgRm9vdGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIj4KKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyPjx0ZD48aHIgbm9zaGFkZT0ieWVzIiBzaXplPSIxIi8+PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD4KKyAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiM1MjVENzYiIHNpemU9Ii0xIj48ZW0+CisgICAgICBDb3B5cmlnaHQgJiMxNjk7IDE5OTktMjAwMSwgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgICAgIDwvZW0+PC9mb250PjwvZGl2PgorICAgICAgPC90ZD48L3RyPgorICAgIDwvdGFibGU+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG5hbWU9InRhYmxlLmhlYWRlciI+CisgICAgPHRyPgorICAgICAgICA8dGggd2lkdGg9IjgwJSI+TmFtZTwvdGg+CisgICAgICAgIDx0aCB3aWR0aD0iMTAlIiBub3dyYXA9Im5vd3JhcCI+TWV0aG9kcyBIaXQ8L3RoPgorICAgICAgICA8dGggd2lkdGg9IjEwJSIgbm93cmFwPSJub3dyYXAiPkxpbmVzIEhpdDwvdGg+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJtZXRob2QiIG1vZGU9InN0YXRzLmhlYWRlciI+CisgICAgPHRyPgorICAgICAgICA8dGggd2lkdGg9IjkwJSI+TmFtZTwvdGg+CisgICAgICAgIDx0aCB3aWR0aD0iMTAlIiBub3dyYXA9Im5vd3JhcCI+TGluZXMgSGl0PC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJtZXRob2QiIG1vZGU9InN0YXRzIj4KKyAgICA8dHI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYWx0ZXJuYXRlLXJvdyIvPgorICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZm9ybWF0LW51bWJlcihjb3YuZGF0YS9AaGl0X2xpbmVzIGRpdiBjb3YuZGF0YS9AdG90YWxfbGluZXMsJzAuMCUnKSIvPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFja2FnZXxjbGFzcyIgbW9kZT0ic3RhdHMuaGVhZGVyIj4KKyAgICA8dHI+CisgICAgICAgIDx0aCB3aWR0aD0iODAlIj5OYW1lPC90aD4KKyAgICAgICAgPHRoIHdpZHRoPSIxMCUiIG5vd3JhcD0ibm93cmFwIj5NZXRob2RzIEhpdDwvdGg+CisgICAgICAgIDx0aCB3aWR0aD0iMTAlIiBub3dyYXA9Im5vd3JhcCI+TGluZXMgSGl0PC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJwYWNrYWdlfGNsYXNzIiBtb2RlPSJzdGF0cyI+CisgICAgPHRyPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZS1yb3ciLz4KKyAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZm9ybWF0LW51bWJlcihjb3YuZGF0YS9AaGl0X21ldGhvZHMgZGl2IGNvdi5kYXRhL0B0b3RhbF9tZXRob2RzLCcwLjAlJykiLz48L3RkPgorICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoY292LmRhdGEvQGhpdF9saW5lcyBkaXYgY292LmRhdGEvQHRvdGFsX2xpbmVzLCcwLjAlJykiLz48L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLQorICAgIHRyYW5zZm9ybSBzdHJpbmcgbGlrZSBhLmIuYyB0byAuLi8uLi8uLi8KKyAgICBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0cmFuc2Zvcm0gaW50byBhIGRlc2NlbmRpbmcgZGlyZWN0b3J5IHBhdGgKKy0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYXRoIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InBhdGgiLz4KKyAgICA8eHNsOmlmIHRlc3Q9ImNvbnRhaW5zKCRwYXRoLCcuJykiPgorICAgICAgICA8eHNsOnRleHQ+Li4vPC94c2w6dGV4dD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhdGgiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoJHBhdGgsJy4nKSIvPjwveHNsOndpdGgtcGFyYW0+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoY29udGFpbnMoJHBhdGgsJy4nKSkgYW5kIG5vdCgkcGF0aCA9ICcnKSI+CisgICAgICAgIDx4c2w6dGV4dD4uLi88L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjcmVhdGUgdGhlIGxpbmsgdG8gdGhlIHN0eWxlc2hlZXQgYmFzZWQgb24gdGhlIHBhY2thZ2UgbmFtZSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiLz4KKyAgICA8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgVElUTEU9IlN0eWxlIj48eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj48eHNsOmlmIHRlc3Q9Im5vdCgkcGFja2FnZS5uYW1lID0gJ3VubmFtZWQgcGFja2FnZScpIj48eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGF0aCI+PHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhdGgiIHNlbGVjdD0iJHBhY2thZ2UubmFtZSIvPjwveHNsOmNhbGwtdGVtcGxhdGU+PC94c2w6aWY+c3R5bGVzaGVldC5jc3M8L3hzbDphdHRyaWJ1dGU+PC9MSU5LPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gYWx0ZXJuYXRlZCByb3cgc3R5bGUgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZS1yb3ciPgorPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgbW9kIDIgPSAxIj5hPC94c2w6aWY+CisgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDAiPmI8L3hzbDppZj4KKzwveHNsOmF0dHJpYnV0ZT4KKzwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgorCisKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qZGVwZW5kLWZyYW1lcy54c2wgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvamRlcGVuZC1mcmFtZXMueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhMmE4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvamRlcGVuZC1mcmFtZXMueHNsCkBAIC0wLDAgKzEsNDg1IEBACis8eHNsOnN0eWxlc2hlZXQgIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIiB2ZXJzaW9uPSIxLjAiCisgIHhtbG5zOmx4c2x0PSJodHRwOi8veG1sLmFwYWNoZS5vcmcveHNsdCIKKyAgeG1sbnM6cmVkaXJlY3Q9Im9yZy5hcGFjaGUueGFsYW4ubGliLlJlZGlyZWN0IgorICBleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0icmVkaXJlY3QiPgorPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVTLUFTQ0lJIi8+Cis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAyLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICAKKyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICAKKy0tPgorPCEtLQorCisgU2FtcGxlIHN0eWxlc2hlZXQgdG8gYmUgdXNlZCB3aXRoIEpEZXBlbmQgWE1MIG91dHB1dC4KKworIEl0IGNyZWF0ZXMgYSBzZXQgb2YgSFRNTCBmaWxlcyBhIGxhIGphdmFkb2Mgd2hlcmUgeW91IGNhbiBicm93c2UgZWFzaWx5CisgdGhyb3VnaCBhbGwgcGFja2FnZXMgYW5kIGNsYXNzZXMuCisKKyBAYXV0aG9yIDxhIGhyZWY9Im1haWx0bzpqdHVsbGV5QG5vdmVsbC5jb20iPkplZmYgVHVsbGV5PC9hPgorCisgIC0tPgorPHhzbDpwYXJhbSBuYW1lPSJvdXRwdXQuZGlyIiBzZWxlY3Q9IicuJyIvPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJKRGVwZW5kIj4KKyAgIDwhLS0gY3JlYXRlIHRoZSBpbmRleC5odG1sIC0tPgorICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vaW5kZXguaHRtbCI+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCIvPgorICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICA8IS0tIGNyZWF0ZSB0aGUgc3R5bGVzaGVldC5jc3MgLS0+CisgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3N0eWxlc2hlZXQuY3NzIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiLz4KKyAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgIDwhLS0gY3JlYXRlIHRoZSBvdmVydmlldy1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgPCEtLSBjcmVhdGUgdGhlIG92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9vdmVydmlldy1wYWNrYWdlcy5odG1sIj4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InBhY2thZ2VzLmRldGFpbHMiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgPCEtLSBjcmVhdGUgdGhlIG92ZXJ2aWV3LWN5Y2xlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vb3ZlcnZpZXctY3ljbGVzLmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iY3ljbGVzLmRldGFpbHMiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgPCEtLSBjcmVhdGUgdGhlIG92ZXJ2aWV3LWN5Y2xlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vb3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iZXhwbGFuYXRpb25zIi8+CisgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgPCEtLSBjcmVhdGUgdGhlIGFsbC1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vYWxsLXBhY2thZ2VzLmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iUGFja2FnZXMiIG1vZGU9ImFsbC5wYWNrYWdlcyIvPgorICA8L3JlZGlyZWN0OndyaXRlPgorCisgIDwhLS0gY3JlYXRlIHRoZSBhbGwtY3ljbGVzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2FsbC1jeWNsZXMuaHRtbCI+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJDeWNsZXMiIG1vZGU9ImFsbC5jeWNsZXMiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKzwveHNsOnRlbXBsYXRlPgorCisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCI+Cis8aHRtbD4KKyAgIDxoZWFkPgorICAgICAgPHRpdGxlPkpEZXBlbmQgQW5hbHlzaXM8L3RpdGxlPgorICAgPC9oZWFkPgorICAgICAgPGZyYW1lc2V0IGNvbHM9IjIwJSw4MCUiPgorICAgICAgICAgPGZyYW1lc2V0IHJvd3M9IjMwJSw3MCUiPgorICAgICAgICAgICAgPGZyYW1lIHNyYz0iYWxsLXBhY2thZ2VzLmh0bWwiIG5hbWU9InBhY2thZ2VMaXN0RnJhbWUiLz4KKyAgICAgICAgICAgIDxmcmFtZSBzcmM9ImFsbC1jeWNsZXMuaHRtbCIgbmFtZT0iY2xhc3NMaXN0RnJhbWUiLz4KKyAgICAgICAgIDwvZnJhbWVzZXQ+CisgICAgICAgICA8ZnJhbWUgc3JjPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIG5hbWU9ImNsYXNzRnJhbWUiLz4KKyAgICAgIDwvZnJhbWVzZXQ+CisgICAgICA8bm9mcmFtZXM+CisgICAgICAgICA8aDI+RnJhbWUgQWxlcnQ8L2gyPgorICAgICAgICAgPHA+CisgICAgICAgICAgICBUaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlLCB5b3UgYXJlIHVzaW5nIGEgbm9uLWZyYW1lLWNhcGFibGUgd2ViIGNsaWVudC4KKyAgICAgICAgIDwvcD4KKyAgICAgIDwvbm9mcmFtZXM+Cis8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSB0aGlzIGlzIHRoZSBzdHlsZXNoZWV0IGNzcyB0byB1c2UgZm9yIG5lYXJseSBldmVyeXRoaW5nIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdHlsZXNoZWV0LmNzcyI+CisgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIGJvZHkgeworICAgIGZvbnQ6bm9ybWFsIDY4JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYTsKKyAgICBjb2xvcjojMDAwMDAwOworICAgIH0KKyAgICB0YWJsZSB0ciB0ZCwgdHIgdGggeworICAgICAgZm9udC1zaXplOiA2OCU7CisgICAgfQorICAgIHRhYmxlLmRldGFpbHMgdHIgdGh7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgdGV4dC1hbGlnbjpsZWZ0OworICAgIGJhY2tncm91bmQ6I2E2Y2FmMDsKKyAgICB9CisgICAgdGFibGUuZGV0YWlscyB0ciB0ZHsKKyAgICBiYWNrZ3JvdW5kOiNlZWVlZTA7CisgICAgfQorCisgICAgcCB7CisgICAgbGluZS1oZWlnaHQ6MS41ZW07CisgICAgbWFyZ2luLXRvcDowLjVlbTsgbWFyZ2luLWJvdHRvbToxLjBlbTsKKyAgICBtYXJnaW4tbGVmdDoyZW07CisgICAgbWFyZ2luLXJpZ2h0OjJlbTsKKyAgICB9CisgICAgaDEgeworICAgIG1hcmdpbjogMHB4IDBweCA1cHg7IGZvbnQ6IDE2NSUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKKyAgICB9CisgICAgaDIgeworICAgIG1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTI1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgIH0KKyAgICBoMyB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTE1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgIH0KKyAgICBoNCB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgIH0KKyAgICBoNSB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgIH0KKyAgICBoNiB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgIH0KKyAgICAuRXJyb3IgeworICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOnJlZDsKKyAgICB9CisgICAgLkZhaWx1cmUgeworICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOnB1cnBsZTsKKyAgICB9CisgICAgLlByb3BlcnRpZXMgeworICAgIHRleHQtYWxpZ246cmlnaHQ7CisgICAgfQorICA8L3N0eWxlPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IkpEZXBlbmQiIG1vZGU9Im92ZXJ2aWV3LnBhY2thZ2VzIj4KKyAgIDxodG1sPgorICAgICAgPGhlYWQ+CisgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIvPgorICAgICAgPC9oZWFkPgorICAgICAgPGJvZHk+CisgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICA8dGFibGUgd2lkdGg9IjEwMCUiPjx0ciBhbGlnbj0ibGVmdCI+PGgyPlN1bW1hcnk8L2gyPjx0ZD4KKyAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgW3N1bW1hcnldCisgIFs8YSBocmVmPSJvdmVydmlldy1wYWNrYWdlcy5odG1sIj5wYWNrYWdlczwvYT5dCisgIFs8YSBocmVmPSJvdmVydmlldy1jeWNsZXMuaHRtbCI+Y3ljbGVzPC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sIj5leHBsYW5hdGlvbnM8L2E+XQorICAgPC90ZD48L3RyPjwvdGFibGU+CisgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiIGNsYXNzPSJkZXRhaWxzIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgIDx0aD5QYWNrYWdlPC90aD4KKyAgICAgICAgICAgICAgIDx0aD5Ub3RhbCBDbGFzc2VzPC90aD4KKyAgICAgICAgICAgICAgIDx0aD48YSBocmVmPSJvdmVydmlldy1leHBsYW5hdGlvbnMuaHRtbCNFWG51bWJlciI+QWJzdHJhY3QgQ2xhc3NlczwvYT48L3RoPgorICAgICAgICAgICAgICAgPHRoPjxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sI0VYbnVtYmVyIj5Db25jcmV0ZSBDbGFzc2VzPC9hPjwvdGg+CisgICAgICAgICAgICAgICA8dGg+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhhZmZlcmVudCI+QWZmZXJlbnQgQ291cGxpbmdzPC9hPjwvdGg+CisgICAgICAgICAgICAgICA8dGg+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhlZmZlcmVudCI+RWZmZXJlbnQgQ291cGxpbmdzPC9hPjwvdGg+CisgICAgICAgICAgICAgICA8dGg+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhhYnN0cmFjdG5lc3MiPkFic3RyYWN0bmVzczwvYT48L3RoPgorICAgICAgICAgICAgICAgPHRoPjxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sI0VYaW5zdGFiaWxpdHkiPkluc3RhYmlsaXR5PC9hPjwvdGg+CisgICAgICAgICAgICAgICA8dGg+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhkaXN0YW5jZSI+RGlzdGFuY2U8L2E+PC90aD4KKworICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIuL1BhY2thZ2VzL1BhY2thZ2UiPgorICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJjb3VudChlcnJvcikgPSAwIj4KKyAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8YT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPm92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwjUEs8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9Ub3RhbENsYXNzZXMiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0Fic3RyYWN0Q2xhc3NlcyIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQ29uY3JldGVDbGFzc2VzIi8+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9DYSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQ2UiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0EiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0kiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0QiLz48L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iLi9QYWNrYWdlcy9QYWNrYWdlIj4KKyAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoZXJyb3IpICZndDsgMCI+CisgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSI4Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZXJyb3IiLz48L3RkPgorICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICA8L3RhYmxlPgorICAgICAgPC9ib2R5PgorICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IkpEZXBlbmQiIG1vZGU9InBhY2thZ2VzLmRldGFpbHMiPgorICAgPGh0bWw+CisgICAgICA8aGVhZD4KKyAgICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIvPgorICAgICAgPC9oZWFkPgorICAgICAgPGJvZHk+CisgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICA8dGFibGUgd2lkdGg9IjEwMCUiPjx0ciBhbGlnbj0ibGVmdCI+PGgyPlBhY2thZ2VzPC9oMj48dGQ+CisgIDwvdGQ+PHRkIGFsaWduPSJyaWdodCI+CisgIFs8YSBocmVmPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPnN1bW1hcnk8L2E+XQorICBbcGFja2FnZXNdCisgIFs8YSBocmVmPSJvdmVydmlldy1jeWNsZXMuaHRtbCI+Y3ljbGVzPC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sIj5leHBsYW5hdGlvbnM8L2E+XQorICAgPC90ZD48L3RyPjwvdGFibGU+CisKKyAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vUGFja2FnZXMvUGFja2FnZSI+CisgICAgPHhzbDppZiB0ZXN0PSJjb3VudChlcnJvcikgPSAwIj4KKyAgICAgIDxoMz48YT48eHNsOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIj5QSzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwveHNsOmF0dHJpYnV0ZT4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT48L2gzPgorCisgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPjx0cj4KKyAgICAgICAgPHRkPjxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sI0VYYWZmZXJlbnQiPkFmZmVyZW50IENvdXBsaW5nczwvYT46IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9DYSIvPjwvdGQ+CisgICAgICAgIDx0ZD48YSBocmVmPSJvdmVydmlldy1leHBsYW5hdGlvbnMuaHRtbCNFWGVmZmVyZW50Ij5FZmZlcmVudCBDb3VwbGluZ3M8L2E+OiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQ2UiLz48L3RkPgorICAgICAgICA8dGQ+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhhYnN0cmFjdG5lc3MiPkFic3RyYWN0bmVzczwvYT46IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9BIi8+PC90ZD4KKyAgICAgICAgPHRkPjxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sI0VYaW5zdGFiaWxpdHkiPkluc3RhYmlsaXR5PC9hPjogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0kiLz48L3RkPgorICAgICAgICA8dGQ+PGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwjRVhkaXN0YW5jZSI+RGlzdGFuY2U8L2E+OiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvRCIvPjwvdGQ+CisgICAgICA8L3RyPjwvdGFibGU+CisKKyAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9ImRldGFpbHMiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoPkFic3RyYWN0IENsYXNzZXM8L3RoPgorICAgICAgICAgIDx0aD5Db25jcmV0ZSBDbGFzc2VzPC90aD4KKyAgICAgICAgICA8dGg+VXNlZCBieSBQYWNrYWdlczwvdGg+CisgICAgICAgICAgPHRoPlVzZXMgUGFja2FnZXM8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjUlIj4KKyAgICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KEFic3RyYWN0Q2xhc3Nlcy9DbGFzcyk9MCI+CisgICAgICAgICAgICAgIDxpPk5vbmU8L2k+CisgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJBYnN0cmFjdENsYXNzZXMvQ2xhc3MiPgorICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+PGJyLz4KKyAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjUlIj4KKyAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoQ29uY3JldGVDbGFzc2VzL0NsYXNzKT0wIj4KKyAgICAgICAgICAgICAgPGk+Tm9uZTwvaT4KKyAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9IkNvbmNyZXRlQ2xhc3Nlcy9DbGFzcyI+CisgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJub2RlKCkiLz48YnIvPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJjb3VudChVc2VkQnkvUGFja2FnZSk9MCI+CisgICAgICAgICAgICAgIDxpPk5vbmU8L2k+CisgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJVc2VkQnkvUGFja2FnZSI+CisgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+b3ZlcnZpZXctcGFja2FnZXMuaHRtbCNQSzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJub2RlKCkiLz48L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5vZGUoKSIvPgorICAgICAgICAgICAgICA8L2E+PGJyLz4KKyAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjUlIj4KKyAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoRGVwZW5kc1Vwb24vUGFja2FnZSk9MCI+CisgICAgICAgICAgICAgIDxpPk5vbmU8L2k+CisgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJEZXBlbmRzVXBvbi9QYWNrYWdlIj4KKyAgICAgICAgICAgICAgPGE+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj5vdmVydmlldy1wYWNrYWdlcy5odG1sI1BLPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5vZGUoKSIvPjwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+CisgICAgICAgICAgICAgIDwvYT48YnIvPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+CisgICAgPC94c2w6aWY+CisgIDwveHNsOmZvci1lYWNoPgorICA8IS0tIHRoaXMgaXMgb2Z0ZW4gYSBsb25nIGxpc3Rpbmc7IHByb3ZpZGUgYSBsb3dlciBuYXZpZ2F0aW9uIHRhYmxlIGFsc28gLS0+CisgIDx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyIGFsaWduPSJsZWZ0Ij48dGQ+PC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+c3VtbWFyeTwvYT5dCisgIFtwYWNrYWdlc10KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LWN5Y2xlcy5odG1sIj5jeWNsZXM8L2E+XQorICBbPGEgaHJlZj0ib3ZlcnZpZXctZXhwbGFuYXRpb25zLmh0bWwiPmV4cGxhbmF0aW9uczwvYT5dCisgICA8L3RkPjwvdHI+PC90YWJsZT4KKyAgICAgIDwvYm9keT4KKyAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJKRGVwZW5kIiBtb2RlPSJjeWNsZXMuZGV0YWlscyI+CisgICA8aHRtbD4KKyAgICAgIDxoZWFkPgorICAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ic3R5bGVzaGVldC5jc3MiLz4KKyAgICAgIDwvaGVhZD4KKyAgICAgIDxib2R5PgorICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKyAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHIgYWxpZ249ImxlZnQiPjxoMj5DeWNsZXM8L2gyPjx0ZD4KKyAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+c3VtbWFyeTwvYT5dCisgIFs8YSBocmVmPSJvdmVydmlldy1wYWNrYWdlcy5odG1sIj5wYWNrYWdlczwvYT5dCisgIFtjeWNsZXNdCisgIFs8YSBocmVmPSJvdmVydmlldy1leHBsYW5hdGlvbnMuaHRtbCI+ZXhwbGFuYXRpb25zPC9hPl0KKyAgIDwvdGQ+PC90cj48L3RhYmxlPgorICA8IS0tPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+PHRkPgorICA8L3RkPjx0ZCBhbGlnbj0icmlnaHQiPgorICAgIFs8YSBocmVmPSIjTlZzdW1tYXJ5Ij5zdW1tYXJ5PC9hPl0KKyAgWzxhIGhyZWY9IiNOVnBhY2thZ2VzIj5wYWNrYWdlczwvYT5dCisgIFs8YSBocmVmPSIjTlZjeWNsZXMiPmN5Y2xlczwvYT5dCisgICBbPGEgaHJlZj0iI05WZXhwbGFuYXRpb25zIj5leHBsYW5hdGlvbnM8L2E+XQorICA8L3RkPjwvdHI+PC90YWJsZT4gLS0+CisKKyAgPHhzbDppZiB0ZXN0PSJjb3VudChDeWNsZXMvUGFja2FnZSkgPSAwIj4KKyAgICA8cD5UaGVyZSBhcmUgbm8gY3ljbGljIGRlcGVuZGFuY2llcy48L3A+CisgIDwveHNsOmlmPgorICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iQ3ljbGVzL1BhY2thZ2UiPgorICAgICA8aDM+PGE+PHhzbDphdHRyaWJ1dGUgbmFtZT0ibmFtZSI+I0NZPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBOYW1lIi8+PC94c2w6YXR0cmlidXRlPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJATmFtZSIvPjwvYT48L2gzPjxwPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJQYWNrYWdlIj4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PGJyLz4KKyAgICA8L3hzbDpmb3ItZWFjaD48L3A+CisgIDwveHNsOmZvci1lYWNoPgorICA8IS0tIHRoaXMgaXMgb2Z0ZW4gYSBsb25nIGxpc3Rpbmc7IHByb3ZpZGUgYSBsb3dlciBuYXZpZ2F0aW9uIHRhYmxlIGFsc28gLS0+CisgIDx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyIGFsaWduPSJsZWZ0Ij48dGQ+PC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+c3VtbWFyeTwvYT5dCisgIFs8YSBocmVmPSJvdmVydmlldy1wYWNrYWdlcy5odG1sIj5wYWNrYWdlczwvYT5dCisgIFtjeWNsZXNdCisgIFs8YSBocmVmPSJvdmVydmlldy1leHBsYW5hdGlvbnMuaHRtbCI+ZXhwbGFuYXRpb25zPC9hPl0KKyAgIDwvdGQ+PC90cj48L3RhYmxlPgorICA8L2JvZHk+CisgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJKRGVwZW5kIiBtb2RlPSJleHBsYW5hdGlvbnMiPgorICAgPGh0bWw+CisgICAgICA8aGVhZD4KKyAgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InN0eWxlc2hlZXQuY3NzIi8+CisgICAgICA8L2hlYWQ+CisgICAgICA8Ym9keT4KKyAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisKKyAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHIgYWxpZ249ImxlZnQiPjxoMj5FeHBsYW5hdGlvbnM8L2gyPjx0ZD4KKyAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+c3VtbWFyeTwvYT5dCisgIFs8YSBocmVmPSJvdmVydmlldy1wYWNrYWdlcy5odG1sIj5wYWNrYWdlczwvYT5dCisgIFs8YSBocmVmPSJvdmVydmlldy1jeWNsZXMuaHRtbCI+Y3ljbGVzPC9hPl0KKyAgW2V4cGxhbmF0aW9uc10KKyAgIDwvdGQ+PC90cj48L3RhYmxlPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgZXhwbGFuYXRpb25zIGFyZSBmb3IgcXVpY2sgcmVmZXJlbmNlIGFuZCBhcmUgbGlmdGVkIGRpcmVjdGx5IGZyb20gdGhlIG9yaWdpbmFsIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2xhcmt3YXJlLmNvbS9zb2Z0d2FyZS9KRGVwZW5kLmh0bWwiPkpEZXBlbmQgZG9jdW1lbnRhdGlvbjwvYT4uPC9wPgorCisgIDxoMz48YSBuYW1lPSJFWG51bWJlciI+TnVtYmVyIG9mIENsYXNzZXM8L2E+PC9oMz4KKyAgICA8cD5UaGUgbnVtYmVyIG9mIGNvbmNyZXRlIGFuZCBhYnN0cmFjdCBjbGFzc2VzIChhbmQgaW50ZXJmYWNlcykgaW4gdGhlIHBhY2thZ2UgaXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBleHRlbnNpYmlsaXR5IG9mIHRoZSBwYWNrYWdlLjwvcD4KKyAgPGgzPjxhIG5hbWU9IkVYYWZmZXJlbnQiPkFmZmVyZW50IENvdXBsaW5nczwvYT48L2gzPgorICAgIDxwPlRoZSBudW1iZXIgb2Ygb3RoZXIgcGFja2FnZXMgdGhhdCBkZXBlbmQgdXBvbiBjbGFzc2VzIHdpdGhpbiB0aGUgcGFja2FnZSBpcyBhbiBpbmRpY2F0b3Igb2YgdGhlIHBhY2thZ2UncyByZXNwb25zaWJpbGl0eS4gPC9wPgorICA8aDM+PGEgbmFtZT0iRVhlZmZlcmVudCI+RWZmZXJlbnQgQ291cGxpbmdzPC9hPjwvaDM+CisgICAgPHA+VGhlIG51bWJlciBvZiBvdGhlciBwYWNrYWdlcyB0aGF0IHRoZSBjbGFzc2VzIGluIHRoZSBwYWNrYWdlIGRlcGVuZCB1cG9uIGlzIGFuIGluZGljYXRvciBvZiB0aGUgcGFja2FnZSdzIGluZGVwZW5kZW5jZS4gPC9wPgorICA8aDM+PGEgbmFtZT0iRVhhYnN0cmFjdG5lc3MiPkFic3RyYWN0bmVzczwvYT48L2gzPgorICAgIDxwPlRoZSByYXRpbyBvZiB0aGUgbnVtYmVyIG9mIGFic3RyYWN0IGNsYXNzZXMgKGFuZCBpbnRlcmZhY2VzKSBpbiB0aGUgYW5hbHl6ZWQgcGFja2FnZSB0byB0aGUgdG90YWwgbnVtYmVyIG9mIGNsYXNzZXMgaW4gdGhlIGFuYWx5emVkIHBhY2thZ2UuIDwvcD4KKyAgICA8cD5UaGUgcmFuZ2UgZm9yIHRoaXMgbWV0cmljIGlzIDAgdG8gMSwgd2l0aCBBPTAgaW5kaWNhdGluZyBhIGNvbXBsZXRlbHkgY29uY3JldGUgcGFja2FnZSBhbmQgQT0xIGluZGljYXRpbmcgYSBjb21wbGV0ZWx5IGFic3RyYWN0IHBhY2thZ2UuIDwvcD4KKyAgPGgzPjxhIG5hbWU9IkVYaW5zdGFiaWxpdHkiPkluc3RhYmlsaXR5PC9hPjwvaDM+CisgICAgPHA+VGhlIHJhdGlvIG9mIGVmZmVyZW50IGNvdXBsaW5nIChDZSkgdG8gdG90YWwgY291cGxpbmcgKENlIC8gKENlICsgQ2EpKS4gVGhpcyBtZXRyaWMgaXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBwYWNrYWdlJ3MgcmVzaWxpZW5jZSB0byBjaGFuZ2UuIDwvcD4KKyAgICA8cD5UaGUgcmFuZ2UgZm9yIHRoaXMgbWV0cmljIGlzIDAgdG8gMSwgd2l0aCBJPTAgaW5kaWNhdGluZyBhIGNvbXBsZXRlbHkgc3RhYmxlIHBhY2thZ2UgYW5kIEk9MSBpbmRpY2F0aW5nIGEgY29tcGxldGVseSBpbnN0YWJsZSBwYWNrYWdlLiA8L3A+CisgIDxoMz48YSBuYW1lPSJFWGRpc3RhbmNlIj5EaXN0YW5jZTwvYT48L2gzPgorICAgIDxwPlRoZSBwZXJwZW5kaWN1bGFyIGRpc3RhbmNlIG9mIGEgcGFja2FnZSBmcm9tIHRoZSBpZGVhbGl6ZWQgbGluZSBBICsgSSA9IDEuIFRoaXMgbWV0cmljIGlzIGFuIGluZGljYXRvciBvZiB0aGUgcGFja2FnZSdzIGJhbGFuY2UgYmV0d2VlbiBhYnN0cmFjdG5lc3MgYW5kIHN0YWJpbGl0eS4gPC9wPgorICAgIDxwPkEgcGFja2FnZSBzcXVhcmVseSBvbiB0aGUgbWFpbiBzZXF1ZW5jZSBpcyBvcHRpbWFsbHkgYmFsYW5jZWQgd2l0aCByZXNwZWN0IHRvIGl0cyBhYnN0cmFjdG5lc3MgYW5kIHN0YWJpbGl0eS4gSWRlYWwgcGFja2FnZXMgYXJlIGVpdGhlciBjb21wbGV0ZWx5IGFic3RyYWN0IGFuZCBzdGFibGUgKHg9MCwgeT0xKSBvciBjb21wbGV0ZWx5IGNvbmNyZXRlIGFuZCBpbnN0YWJsZSAoeD0xLCB5PTApLiA8L3A+CisgICAgPHA+VGhlIHJhbmdlIGZvciB0aGlzIG1ldHJpYyBpcyAwIHRvIDEsIHdpdGggRD0wIGluZGljYXRpbmcgYSBwYWNrYWdlIHRoYXQgaXMgY29pbmNpZGVudCB3aXRoIHRoZSBtYWluIHNlcXVlbmNlIGFuZCBEPTEgaW5kaWNhdGluZyBhIHBhY2thZ2UgdGhhdCBpcyBhcyBmYXIgZnJvbSB0aGUgbWFpbiBzZXF1ZW5jZSBhcyBwb3NzaWJsZS4gPC9wPgorCisgICAgICA8L2JvZHk+CisgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCitDcmVhdGVzIGFuIGh0bWwgZmlsZSB0aGF0IGNvbnRhaW5zIGEgbGluayB0byBhbGwgcGFja2FnZSBsaW5rcyBpbiBvdmVydmlldy1wYWNrYWdlcy5odG1sLgorICBAYnVnIHRoZXJlIHdpbGwgYmUgYSBwcm9ibGVtIGhlcmUsIEkgZG9uJ3Qga25vdyB5ZXQgaG93IHRvIGhhbmRsZSB1bm5hbWVkIHBhY2thZ2UgOigKKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iSkRlcGVuZC9QYWNrYWdlcyIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIvPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHIgYWxpZ249ImxlZnQiPjx0ZD48L3RkPjx0ZCBub3dyYXA9Im5vd3JhcCIgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5zdW1tYXJ5PC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+cGFja2FnZXM8L2E+XQorICBbPGEgaHJlZj0ib3ZlcnZpZXctY3ljbGVzLmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+Y3ljbGVzPC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPmV4cGxhbmF0aW9uczwvYT5dCisgICA8L3RkPjwvdHI+PC90YWJsZT4KKyAgICAgIDxoMj5QYWNrYWdlczwvaDI+CisgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJQYWNrYWdlW2NvdW50KGVycm9yKT0wXSIgbW9kZT0iYWxsLnBhY2thZ2VzLmxpbmsiPgorICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJQYWNrYWdlW2NvdW50KGVycm9yKSAmZ3Q7IDBdIiBtb2RlPSJhbGwucGFja2FnZXMubm9saW5rIj4KKyAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICA8L3RhYmxlPgorICAgIDwvYm9keT4KKyAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IkpEZXBlbmQvUGFja2FnZXMvUGFja2FnZSIgbW9kZT0iYWxsLnBhY2thZ2VzLmxpbmsiPgorICA8dHI+CisgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgIDxhIGhyZWY9Im92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwjUEt7QG5hbWV9IiB0YXJnZXQ9ImNsYXNzRnJhbWUiPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgIDwvYT4KKyAgICA8L3RkPgorICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0KK0kgZG8gbm90IGtub3cgSkRlcGVuZCBlbm91Z2ggdG8ga25vdyBpZiBldmVyeSBlcnJvciByZXN1bHRzIGluIGEgbm9uLWFuYWx5emVkIHBhY2thZ2UsCitidXQgdGhhdCBpcyBob3cgSSBhbSBwcmVzZW50aW5nIGl0IHRvIHRoZSB2aWV3ZXIuICBUaGlzIG1heSBuZWVkIHRvIGNoYW5nZS4KKyAgQGJ1ZyB0aGVyZSB3aWxsIGJlIGEgcHJvYmxlbSBoZXJlLCBJIGRvbid0IGtub3cgeWV0IGhvdyB0byBoYW5kbGUgdW5uYW1lZCBwYWNrYWdlIDooCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IkpEZXBlbmQvUGFja2FnZXMvUGFja2FnZSIgbW9kZT0iYWxsLnBhY2thZ2VzLm5vbGluayI+CisgIDx0cj4KKyAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgIE5vdCBBbmFseXplZDogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tCitDcmVhdGVzIGFuIGh0bWwgZmlsZSB0aGF0IGNvbnRhaW5zIGEgbGluayB0byBhbGwgcGFja2FnZSBsaW5rcyBpbiBvdmVydmlldy1jeWNsZXMuaHRtbC4KKyAgQGJ1ZyB0aGVyZSB3aWxsIGJlIGEgcHJvYmxlbSBoZXJlLCBJIGRvbid0IGtub3cgeWV0IGhvdyB0byBoYW5kbGUgdW5uYW1lZCBwYWNrYWdlIDooCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IkpEZXBlbmQvQ3ljbGVzIiBtb2RlPSJhbGwuY3ljbGVzIj4KKyAgPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXNoZWV0LmNzcyIvPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHIgYWxpZ249ImxlZnQiPjx0ZD48L3RkPjx0ZCBub3dyYXA9Im5vd3JhcCIgYWxpZ249InJpZ2h0Ij4KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5zdW1tYXJ5PC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+cGFja2FnZXM8L2E+XQorICBbPGEgaHJlZj0ib3ZlcnZpZXctY3ljbGVzLmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+Y3ljbGVzPC9hPl0KKyAgWzxhIGhyZWY9Im92ZXJ2aWV3LWV4cGxhbmF0aW9ucy5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPmV4cGxhbmF0aW9uczwvYT5dCisgICA8L3RkPjwvdHI+PC90YWJsZT4KKyAgICAgIDxoMj5DeWNsZXM8L2gyPgorICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IlBhY2thZ2UiIG1vZGU9ImFsbC5jeWNsZXMiPgorICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQE5hbWUiLz4KKyAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgIDwvdGFibGU+CisgICAgPC9ib2R5PgorICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iSkRlcGVuZC9DeWNsZXMvUGFja2FnZSIgbW9kZT0iYWxsLmN5Y2xlcyI+CisgIDx0cj4KKyAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgICAgPGEgaHJlZj0ib3ZlcnZpZXctY3ljbGVzLmh0bWwjQ1l7QE5hbWV9IiB0YXJnZXQ9ImNsYXNzRnJhbWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJATmFtZSIvPjwvYT4KKyAgICA8L3RkPgorICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gUGFnZSBIRUFERVIgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiPgorICAgPGgxPkpEZXBlbmQgQW5hbHlzaXM8L2gxPgorICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICA8dHI+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij48L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCI+RGVzaWduZWQgZm9yIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2xhcmt3YXJlLmNvbS9zb2Z0d2FyZS9KRGVwZW5kLmh0bWwiPkpEZXBlbmQ8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnIj5BbnQ8L2E+LjwvdGQ+CisgIDwvdHI+CisgIDwvdGFibGU+CisgIDxociBzaXplPSIxIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qZGVwZW5kLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qZGVwZW5kLnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMWU1ZTJkCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2pkZXBlbmQueHNsCkBAIC0wLDAgKzEsMjc1IEBACis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCI+CisKKzwhLS0KKyAgICBDb3B5cmlnaHQgIDIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgIAorICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgIAorICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAgIAorLS0+CisKKzx4c2w6b3V0cHV0IG1ldGhvZD0iaHRtbCIgaW5kZW50PSJ5ZXMiICBlbmNvZGluZz0iVVMtQVNDSUkiLz4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iSkRlcGVuZCI+CisgICAgPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5KRGVwZW5kIEFuYWx5c2lzPC90aXRsZT4KKyAgICAgICAgCisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBmb250Om5vcm1hbCA2OCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2E7CisgICAgICAgIGNvbG9yOiMwMDAwMDA7CisgICAgICB9CisgICAgICB0YWJsZSB0ciB0ZCwgdHIgdGggeworICAgICAgICAgIGZvbnQtc2l6ZTogNjglOworICAgICAgfQorICAgICAgdGFibGUuZGV0YWlscyB0ciB0aHsKKyAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgIHRleHQtYWxpZ246bGVmdDsKKyAgICAgICAgYmFja2dyb3VuZDojYTZjYWYwOworICAgICAgfQorICAgICAgdGFibGUuZGV0YWlscyB0ciB0ZHsKKyAgICAgICAgYmFja2dyb3VuZDojZWVlZWUwOworICAgICAgfQorICAgICAgCisgICAgICBwIHsKKyAgICAgICAgbGluZS1oZWlnaHQ6MS41ZW07CisgICAgICAgIG1hcmdpbi10b3A6MC41ZW07IG1hcmdpbi1ib3R0b206MS4wZW07CisgICAgICAgIG1hcmdpbi1sZWZ0OjJlbTsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OjJlbTsKKyAgICAgIH0KKyAgICAgIGgxIHsKKyAgICAgICAgbWFyZ2luOiAwcHggMHB4IDVweDsgZm9udDogMTY1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgaDIgeworICAgICAgICBtYXJnaW4tdG9wOiAxZW07IG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEyNSUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKKyAgICAgIH0KKyAgICAgIGgzIHsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTE1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgaDQgeworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMDAlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCisgICAgICB9CisgICAgICBoNSB7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEwMCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKKyAgICAgIH0KKyAgICAgIGg2IHsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgLkVycm9yIHsKKyAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6cmVkOworICAgICAgfQorICAgICAgLkZhaWx1cmUgeworICAgICAgICBmb250LXdlaWdodDpib2xkOyBjb2xvcjpwdXJwbGU7CisgICAgICB9CisgICAgICAuUHJvcGVydGllcyB7CisgICAgICAgIHRleHQtYWxpZ246cmlnaHQ7CisgICAgICB9CisgICAgICA8L3N0eWxlPgorICAgICAgICAKKyAgICAgICAgCisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgIDwhLS1oMT5KRGVwZW5kIFJlcG9ydDwvaDE+CisgICAgPHVsPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIuL1BhY2thZ2VzL1BhY2thZ2UiPgorICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgIDxsaT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L2xpPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvdWwtLT4KKyAgICAKKyAgICA8aDE+PGEgbmFtZT0idG9wIj5KRGVwZW5kIEFuYWx5c2lzPC9hPjwvaDE+CisgICAgPHAgYWxpZ249InJpZ2h0Ij5EZXNpZ25lZCBmb3IgdXNlIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5jbGFya3dhcmUuY29tL3NvZnR3YXJlL0pEZXBlbmQuaHRtbCI+SkRlcGVuZDwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmciPkFudDwvYT4uPC9wPgorICAgIDxociBzaXplPSIyIiAvPgorICAgIAorICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyPjx0ZD4KKyAgICA8YSBuYW1lPSJOVnN1bW1hcnkiPjxoMj5TdW1tYXJ5PC9oMj48L2E+CisgICAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgICBbPGEgaHJlZj0iI05Wc3VtbWFyeSI+c3VtbWFyeTwvYT5dCisgICAgWzxhIGhyZWY9IiNOVnBhY2thZ2VzIj5wYWNrYWdlczwvYT5dCisgICAgWzxhIGhyZWY9IiNOVmN5Y2xlcyI+Y3ljbGVzPC9hPl0KKyAgICBbPGEgaHJlZj0iI05WZXhwbGFuYXRpb25zIj5leHBsYW5hdGlvbnM8L2E+XQorICAgIDwvdGQ+PC90cj48L3RhYmxlPgorICAgIAorICAgIDx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9ImRldGFpbHMiPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGg+UGFja2FnZTwvdGg+CisgICAgICAgICAgICA8dGg+VG90YWwgQ2xhc3NlczwvdGg+CisgICAgICAgICAgICA8dGg+PGEgaHJlZj0iI0VYbnVtYmVyIj5BYnN0cmFjdCBDbGFzc2VzPC9hPjwvdGg+CisgICAgICAgICAgICA8dGg+PGEgaHJlZj0iI0VYbnVtYmVyIj5Db25jcmV0ZSBDbGFzc2VzPC9hPjwvdGg+CisgICAgICAgICAgICA8dGg+PGEgaHJlZj0iI0VYYWZmZXJlbnQiPkFmZmVyZW50IENvdXBsaW5nczwvYT48L3RoPgorICAgICAgICAgICAgPHRoPjxhIGhyZWY9IiNFWGVmZmVyZW50Ij5FZmZlcmVudCBDb3VwbGluZ3M8L2E+PC90aD4KKyAgICAgICAgICAgIDx0aD48YSBocmVmPSIjRVhhYnN0cmFjdG5lc3MiPkFic3RyYWN0bmVzczwvYT48L3RoPgorICAgICAgICAgICAgPHRoPjxhIGhyZWY9IiNFWGluc3RhYmlsaXR5Ij5JbnN0YWJpbGl0eTwvYT48L3RoPgorICAgICAgICAgICAgPHRoPjxhIGhyZWY9IiNFWGRpc3RhbmNlIj5EaXN0YW5jZTwvYT48L3RoPgorICAgICAgICAgICAgCisgICAgICAgIDwvdHI+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vUGFja2FnZXMvUGFja2FnZSI+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoZXJyb3IpID0gMCI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGE+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPiNQSzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvVG90YWxDbGFzc2VzIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQWJzdHJhY3RDbGFzc2VzIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQ29uY3JldGVDbGFzc2VzIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvQ2EiLz48L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9DZSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0EiLz48L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9JIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvRCIvPjwvdGQ+CisgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIuL1BhY2thZ2VzL1BhY2thZ2UiPgorICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KGVycm9yKSAmZ3Q7IDAiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiBjb2xzcGFuPSI4Ij48eHNsOnZhbHVlLW9mIHNlbGVjdD0iZXJyb3IiLz48L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC94c2w6aWY+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgPC90YWJsZT4KKyAgICAKKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPjx0cj48dGQ+CisgICAgPGEgbmFtZT0iTlZwYWNrYWdlcyI+PGgyPlBhY2thZ2VzPC9oMj48L2E+CisgICAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgICBbPGEgaHJlZj0iI05Wc3VtbWFyeSI+c3VtbWFyeTwvYT5dCisgICAgWzxhIGhyZWY9IiNOVnBhY2thZ2VzIj5wYWNrYWdlczwvYT5dCisgICAgWzxhIGhyZWY9IiNOVmN5Y2xlcyI+Y3ljbGVzPC9hPl0KKyAgICBbPGEgaHJlZj0iI05WZXhwbGFuYXRpb25zIj5leHBsYW5hdGlvbnM8L2E+XQorICAgIDwvdGQ+PC90cj48L3RhYmxlPgorICAgIAorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIuL1BhY2thZ2VzL1BhY2thZ2UiPgorICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KGVycm9yKSA9IDAiPgorICAgICAgICAgICAgPGgzPjxhPjx4c2w6YXR0cmlidXRlIG5hbWU9Im5hbWUiPlBLPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvaDM+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+PHRyPgorICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIjRVhhZmZlcmVudCI+QWZmZXJlbnQgQ291cGxpbmdzPC9hPjogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0NhIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iI0VYZWZmZXJlbnQiPkVmZmVyZW50IENvdXBsaW5nczwvYT46IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9DZSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IiNFWGFic3RyYWN0bmVzcyI+QWJzdHJhY3RuZXNzPC9hPjogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IlN0YXRzL0EiLz48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSIjRVhpbnN0YWJpbGl0eSI+SW5zdGFiaWxpdHk8L2E+OiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iU3RhdHMvSSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IiNFWGRpc3RhbmNlIj5EaXN0YW5jZTwvYT46IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJTdGF0cy9EIi8+PC90ZD4KKyAgICAgICAgICAgIDwvdHI+PC90YWJsZT4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0iZGV0YWlscyI+CisgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICA8dGg+QWJzdHJhY3QgQ2xhc3NlczwvdGg+CisgICAgICAgICAgICAgICAgICAgIDx0aD5Db25jcmV0ZSBDbGFzc2VzPC90aD4KKyAgICAgICAgICAgICAgICAgICAgPHRoPlVzZWQgYnkgUGFja2FnZXM8L3RoPgorICAgICAgICAgICAgICAgICAgICA8dGg+VXNlcyBQYWNrYWdlczwvdGg+CisgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjI1JSI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoQWJzdHJhY3RDbGFzc2VzL0NsYXNzKT0wIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aT5Ob25lPC9pPgorICAgICAgICAgICAgICAgICAgICAgICAgPC94c2w6aWY+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iQWJzdHJhY3RDbGFzc2VzL0NsYXNzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+PGJyLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJjb3VudChDb25jcmV0ZUNsYXNzZXMvQ2xhc3MpPTAiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpPk5vbmU8L2k+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJDb25jcmV0ZUNsYXNzZXMvQ2xhc3MiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJub2RlKCkiLz48YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjI1JSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KFVzZWRCeS9QYWNrYWdlKT0wIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aT5Ob25lPC9pPgorICAgICAgICAgICAgICAgICAgICAgICAgPC94c2w6aWY+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iVXNlZEJ5L1BhY2thZ2UiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj4jUEs8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iMjUlIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoRGVwZW5kc1Vwb24vUGFja2FnZSk9MCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGk+Tm9uZTwvaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9IkRlcGVuZHNVcG9uL1BhY2thZ2UiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj4jUEs8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibm9kZSgpIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC94c2w6aWY+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgCisgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+PHRkPgorICAgIDxhIG5hbWU9Ik5WY3ljbGVzIj48aDI+Q3ljbGVzPC9oMj48L2E+CisgICAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgICBbPGEgaHJlZj0iI05Wc3VtbWFyeSI+c3VtbWFyeTwvYT5dCisgICAgWzxhIGhyZWY9IiNOVnBhY2thZ2VzIj5wYWNrYWdlczwvYT5dCisgICAgWzxhIGhyZWY9IiNOVmN5Y2xlcyI+Y3ljbGVzPC9hPl0KKyAgICBbPGEgaHJlZj0iI05WZXhwbGFuYXRpb25zIj5leHBsYW5hdGlvbnM8L2E+XQorICAgIDwvdGQ+PC90cj48L3RhYmxlPgorICAgIAorICAgIDx4c2w6aWYgdGVzdD0iY291bnQoQ3ljbGVzL1BhY2thZ2UpID0gMCI+CisgICAgICAgIDxwPlRoZXJlIGFyZSBubyBjeWNsaWMgZGVwZW5kYW5jaWVzLjwvcD4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iQ3ljbGVzL1BhY2thZ2UiPgorICAgICAgICA8aDM+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBOYW1lIi8+PC9oMz48cD4KKyAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9IlBhY2thZ2UiPgorICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48YnIvPgorICAgICAgICA8L3hzbDpmb3ItZWFjaD48L3A+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgCisgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj48dHI+PHRkPgorICAgIDxhIG5hbWU9Ik5WZXhwbGFuYXRpb25zIj48aDI+RXhwbGFuYXRpb25zPC9oMj48L2E+CisgICAgPC90ZD48dGQgYWxpZ249InJpZ2h0Ij4KKyAgICBbPGEgaHJlZj0iI05Wc3VtbWFyeSI+c3VtbWFyeTwvYT5dCisgICAgWzxhIGhyZWY9IiNOVnBhY2thZ2VzIj5wYWNrYWdlczwvYT5dCisgICAgWzxhIGhyZWY9IiNOVmN5Y2xlcyI+Y3ljbGVzPC9hPl0KKyAgICBbPGEgaHJlZj0iI05WZXhwbGFuYXRpb25zIj5leHBsYW5hdGlvbnM8L2E+XQorICAgIDwvdGQ+PC90cj48L3RhYmxlPgorICAgIAorICAgIDxwPlRoZSBmb2xsb3dpbmcgZXhwbGFuYXRpb25zIGFyZSBmb3IgcXVpY2sgcmVmZXJlbmNlIGFuZCBhcmUgbGlmdGVkIGRpcmVjdGx5IGZyb20gdGhlIG9yaWdpbmFsIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2xhcmt3YXJlLmNvbS9zb2Z0d2FyZS9KRGVwZW5kLmh0bWwiPkpEZXBlbmQgZG9jdW1lbnRhdGlvbjwvYT4uPC9wPgorICAgIAorICAgIDxoMz48YSBuYW1lPSJFWG51bWJlciI+TnVtYmVyIG9mIENsYXNzZXM8L2E+PC9oMz4KKyAgICAgICAgPHA+VGhlIG51bWJlciBvZiBjb25jcmV0ZSBhbmQgYWJzdHJhY3QgY2xhc3NlcyAoYW5kIGludGVyZmFjZXMpIGluIHRoZSBwYWNrYWdlIGlzIGFuIGluZGljYXRvciBvZiB0aGUgZXh0ZW5zaWJpbGl0eSBvZiB0aGUgcGFja2FnZS48L3A+CisgICAgPGgzPjxhIG5hbWU9IkVYYWZmZXJlbnQiPkFmZmVyZW50IENvdXBsaW5nczwvYT48L2gzPgorICAgICAgICA8cD5UaGUgbnVtYmVyIG9mIG90aGVyIHBhY2thZ2VzIHRoYXQgZGVwZW5kIHVwb24gY2xhc3NlcyB3aXRoaW4gdGhlIHBhY2thZ2UgaXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBwYWNrYWdlJ3MgcmVzcG9uc2liaWxpdHkuIDwvcD4KKyAgICA8aDM+PGEgbmFtZT0iRVhlZmZlcmVudCI+RWZmZXJlbnQgQ291cGxpbmdzPC9hPjwvaDM+CisgICAgICAgIDxwPlRoZSBudW1iZXIgb2Ygb3RoZXIgcGFja2FnZXMgdGhhdCB0aGUgY2xhc3NlcyBpbiB0aGUgcGFja2FnZSBkZXBlbmQgdXBvbiBpcyBhbiBpbmRpY2F0b3Igb2YgdGhlIHBhY2thZ2UncyBpbmRlcGVuZGVuY2UuIDwvcD4KKyAgICA8aDM+PGEgbmFtZT0iRVhhYnN0cmFjdG5lc3MiPkFic3RyYWN0bmVzczwvYT48L2gzPiAKKyAgICAgICAgPHA+VGhlIHJhdGlvIG9mIHRoZSBudW1iZXIgb2YgYWJzdHJhY3QgY2xhc3NlcyAoYW5kIGludGVyZmFjZXMpIGluIHRoZSBhbmFseXplZCBwYWNrYWdlIHRvIHRoZSB0b3RhbCBudW1iZXIgb2YgY2xhc3NlcyBpbiB0aGUgYW5hbHl6ZWQgcGFja2FnZS4gPC9wPgorICAgICAgICA8cD5UaGUgcmFuZ2UgZm9yIHRoaXMgbWV0cmljIGlzIDAgdG8gMSwgd2l0aCBBPTAgaW5kaWNhdGluZyBhIGNvbXBsZXRlbHkgY29uY3JldGUgcGFja2FnZSBhbmQgQT0xIGluZGljYXRpbmcgYSBjb21wbGV0ZWx5IGFic3RyYWN0IHBhY2thZ2UuIDwvcD4KKyAgICA8aDM+PGEgbmFtZT0iRVhpbnN0YWJpbGl0eSI+SW5zdGFiaWxpdHk8L2E+PC9oMz4KKyAgICAgICAgPHA+VGhlIHJhdGlvIG9mIGVmZmVyZW50IGNvdXBsaW5nIChDZSkgdG8gdG90YWwgY291cGxpbmcgKENlIC8gKENlICsgQ2EpKS4gVGhpcyBtZXRyaWMgaXMgYW4gaW5kaWNhdG9yIG9mIHRoZSBwYWNrYWdlJ3MgcmVzaWxpZW5jZSB0byBjaGFuZ2UuIDwvcD4KKyAgICAgICAgPHA+VGhlIHJhbmdlIGZvciB0aGlzIG1ldHJpYyBpcyAwIHRvIDEsIHdpdGggST0wIGluZGljYXRpbmcgYSBjb21wbGV0ZWx5IHN0YWJsZSBwYWNrYWdlIGFuZCBJPTEgaW5kaWNhdGluZyBhIGNvbXBsZXRlbHkgaW5zdGFibGUgcGFja2FnZS4gPC9wPgorICAgIDxoMz48YSBuYW1lPSJFWGRpc3RhbmNlIj5EaXN0YW5jZTwvYT48L2gzPgorICAgICAgICA8cD5UaGUgcGVycGVuZGljdWxhciBkaXN0YW5jZSBvZiBhIHBhY2thZ2UgZnJvbSB0aGUgaWRlYWxpemVkIGxpbmUgQSArIEkgPSAxLiBUaGlzIG1ldHJpYyBpcyBhbiBpbmRpY2F0b3Igb2YgdGhlIHBhY2thZ2UncyBiYWxhbmNlIGJldHdlZW4gYWJzdHJhY3RuZXNzIGFuZCBzdGFiaWxpdHkuIDwvcD4KKyAgICAgICAgPHA+QSBwYWNrYWdlIHNxdWFyZWx5IG9uIHRoZSBtYWluIHNlcXVlbmNlIGlzIG9wdGltYWxseSBiYWxhbmNlZCB3aXRoIHJlc3BlY3QgdG8gaXRzIGFic3RyYWN0bmVzcyBhbmQgc3RhYmlsaXR5LiBJZGVhbCBwYWNrYWdlcyBhcmUgZWl0aGVyIGNvbXBsZXRlbHkgYWJzdHJhY3QgYW5kIHN0YWJsZSAoeD0wLCB5PTEpIG9yIGNvbXBsZXRlbHkgY29uY3JldGUgYW5kIGluc3RhYmxlICh4PTEsIHk9MCkuIDwvcD4KKyAgICAgICAgPHA+VGhlIHJhbmdlIGZvciB0aGlzIG1ldHJpYyBpcyAwIHRvIDEsIHdpdGggRD0wIGluZGljYXRpbmcgYSBwYWNrYWdlIHRoYXQgaXMgY29pbmNpZGVudCB3aXRoIHRoZSBtYWluIHNlcXVlbmNlIGFuZCBEPTEgaW5kaWNhdGluZyBhIHBhY2thZ2UgdGhhdCBpcyBhcyBmYXIgZnJvbSB0aGUgbWFpbiBzZXF1ZW5jZSBhcyBwb3NzaWJsZS4gPC9wPgorICAgIAorICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qdW5pdC1mcmFtZXMteGFsYW4xLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qdW5pdC1mcmFtZXMteGFsYW4xLnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMTRlNDU5Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2p1bml0LWZyYW1lcy14YWxhbjEueHNsCkBAIC0wLDAgKzEsNzE2IEBACis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCIKKyAgICB4bWxuczpseHNsdD0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hzbHQiCisgICAgeG1sbnM6cmVkaXJlY3Q9Im9yZy5hcGFjaGUueGFsYW4ubGliLlJlZGlyZWN0IgorICAgIHhtbG5zOnN0cmluZ3V0aWxzPSJ4YWxhbjovL29yZy5hcGFjaGUudG9vbHMuYW50LnV0aWwuU3RyaW5nVXRpbHMiCisgICAgZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9InJlZGlyZWN0Ij4KKzx4c2w6b3V0cHV0IG1ldGhvZD0iaHRtbCIgaW5kZW50PSJ5ZXMiIGVuY29kaW5nPSJVUy1BU0NJSSIvPgorPHhzbDpkZWNpbWFsLWZvcm1hdCBkZWNpbWFsLXNlcGFyYXRvcj0iLiIgZ3JvdXBpbmctc2VwYXJhdG9yPSIsIi8+Cis8IS0tCisgICBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorCisgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8IS0tCisKKyBTYW1wbGUgc3R5bGVzaGVldCB0byBiZSB1c2VkIHdpdGggQW50IEpVbml0UmVwb3J0IG91dHB1dC4KKworIEl0IGNyZWF0ZXMgYSBzZXQgb2YgSFRNTCBmaWxlcyBhIGxhIGphdmFkb2Mgd2hlcmUgeW91IGNhbiBicm93c2UgZWFzaWx5CisgdGhyb3VnaCBhbGwgcGFja2FnZXMgYW5kIGNsYXNzZXMuCisKKy0tPgorPHhzbDpwYXJhbSBuYW1lPSJvdXRwdXQuZGlyIiBzZWxlY3Q9IicuJyIvPgorCisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZXMiPgorICAgIDwhLS0gY3JlYXRlIHRoZSBpbmRleC5odG1sIC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2luZGV4Lmh0bWwiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSB0aGUgc3R5bGVzaGVldC5jc3MgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vc3R5bGVzaGVldC5jc3MiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIG92ZXJ2aWV3LXBhY2thZ2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj4KKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJvdmVydmlldy5wYWNrYWdlcyIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSB0aGUgYWxsLXBhY2thZ2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vb3ZlcnZpZXctZnJhbWUuaHRtbCI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iYWxsLnBhY2thZ2VzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIHRoZSBhbGwtY2xhc3Nlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2FsbGNsYXNzZXMtZnJhbWUuaHRtbCI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iYWxsLmNsYXNzZXMiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBwcm9jZXNzIGFsbCBwYWNrYWdlcyAtLT4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iLi90ZXN0c3VpdGVbbm90KC4vQHBhY2thZ2UgPSBwcmVjZWRpbmctc2libGluZzo6dGVzdHN1aXRlL0BwYWNrYWdlKV0iPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFja2FnZSI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibmFtZSIgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwveHNsOmZvci1lYWNoPgorPC94c2w6dGVtcGxhdGU+CisKKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im5hbWUiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InBhY2thZ2UuZGlyIj4KKyAgICAgICAgPHhzbDppZiB0ZXN0PSJub3QoJG5hbWUgPSAnJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0cmFuc2xhdGUoJG5hbWUsJy4nLCcvJykiLz48L3hzbDppZj4KKyAgICAgICAgPHhzbDppZiB0ZXN0PSIkbmFtZSA9ICcnIj4uPC94c2w6aWY+CisgICAgPC94c2w6dmFyaWFibGU+CisgICAgPCEtLVByb2Nlc3NpbmcgcGFja2FnZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4gaW4gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRvdXRwdXQuZGlyIi8+IC0tPgorICAgIDwhLS0gY3JlYXRlIGEgY2xhc3Nlcy1saXN0Lmh0bWwgaW4gdGhlIHBhY2thZ2UgZGlyZWN0b3J5IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3BhY2thZ2UtZnJhbWUuaHRtbCI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjbGFzc2VzLmxpc3QiPgorICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgYSBwYWNrYWdlLXN1bW1hcnkuaHRtbCBpbiB0aGUgcGFja2FnZSBkaXJlY3RvcnkgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0veyRwYWNrYWdlLmRpcn0vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFja2FnZS5zdW1tYXJ5Ij4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gZm9yIGVhY2ggY2xhc3MsIGNyZWF0ZXMgYSBAbmFtZS5odG1sIC0tPgorICAgIDwhLS0gQGJ1ZyB0aGVyZSB3aWxsIGJlIGEgcHJvYmxlbSB3aXRoIGlubmVyIGNsYXNzZXMgaGF2aW5nIHRoZSBzYW1lIG5hbWUsIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gLS0+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii90ZXN0c3VpdGVzL3Rlc3RzdWl0ZVtAcGFja2FnZSA9ICRuYW1lXSI+CisgICAgICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3tAbmFtZX0uaHRtbCI+CisgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImNsYXNzLmRldGFpbHMiLz4KKyAgICAgICAgPC9yZWRpcmVjdDp3cml0ZT4KKyAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKC4vc3lzdGVtLW91dCkhPTAiPgorICAgICAgICAgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0veyRwYWNrYWdlLmRpcn0ve0BuYW1lfS1vdXQudHh0Ij4KKyAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLi9zeXN0ZW0tb3V0IiAvPgorICAgICAgICAgICAgPC9yZWRpcmVjdDp3cml0ZT4KKyAgICAgICAgPC94c2w6aWY+CisgICAgICAgIDx4c2w6aWYgdGVzdD0ic3RyaW5nLWxlbmd0aCguL3N5c3RlbS1lcnIpIT0wIj4KKyAgICAgICAgICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3tAbmFtZX0tZXJyLnR4dCI+CisgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4vc3lzdGVtLWVyciIgLz4KKyAgICAgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisgICAgICAgIDwveHNsOmlmPgorICAgIDwveHNsOmZvci1lYWNoPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iaW5kZXguaHRtbCI+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlVuaXQgVGVzdCBSZXN1bHRzLjwvdGl0bGU+CisgICAgPC9oZWFkPgorICAgIDxmcmFtZXNldCBjb2xzPSIyMCUsODAlIj4KKyAgICAgICAgPGZyYW1lc2V0IHJvd3M9IjMwJSw3MCUiPgorICAgICAgICAgICAgPGZyYW1lIHNyYz0ib3ZlcnZpZXctZnJhbWUuaHRtbCIgbmFtZT0icGFja2FnZUxpc3RGcmFtZSIvPgorICAgICAgICAgICAgPGZyYW1lIHNyYz0iYWxsY2xhc3Nlcy1mcmFtZS5odG1sIiBuYW1lPSJjbGFzc0xpc3RGcmFtZSIvPgorICAgICAgICA8L2ZyYW1lc2V0PgorICAgICAgICA8ZnJhbWUgc3JjPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIG5hbWU9ImNsYXNzRnJhbWUiLz4KKyAgICAgICAgPG5vZnJhbWVzPgorICAgICAgICAgICAgPGgyPkZyYW1lIEFsZXJ0PC9oMj4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFRoaXMgZG9jdW1lbnQgaXMgZGVzaWduZWQgdG8gYmUgdmlld2VkIHVzaW5nIHRoZSBmcmFtZXMgZmVhdHVyZS4gSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UsIHlvdSBhcmUgdXNpbmcgYSBub24tZnJhbWUtY2FwYWJsZSB3ZWIgY2xpZW50LgorICAgICAgICAgICAgPC9wPgorICAgICAgICA8L25vZnJhbWVzPgorICAgIDwvZnJhbWVzZXQ+Cis8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSB0aGlzIGlzIHRoZSBzdHlsZXNoZWV0IGNzcyB0byB1c2UgZm9yIG5lYXJseSBldmVyeXRoaW5nIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdHlsZXNoZWV0LmNzcyI+Citib2R5IHsKKyAgICBmb250Om5vcm1hbCA2OCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2E7CisgICAgY29sb3I6IzAwMDAwMDsKK30KK3RhYmxlIHRyIHRkLCB0YWJsZSB0ciB0aCB7CisgICAgZm9udC1zaXplOiA2OCU7Cit9Cit0YWJsZS5kZXRhaWxzIHRyIHRoeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIHRleHQtYWxpZ246bGVmdDsKKyAgICBiYWNrZ3JvdW5kOiNhNmNhZjA7Cit9Cit0YWJsZS5kZXRhaWxzIHRyIHRkeworICAgIGJhY2tncm91bmQ6I2VlZWVlMDsKK30KKworcCB7CisgICAgbGluZS1oZWlnaHQ6MS41ZW07CisgICAgbWFyZ2luLXRvcDowLjVlbTsgbWFyZ2luLWJvdHRvbToxLjBlbTsKK30KK2gxIHsKKyAgICBtYXJnaW46IDBweCAwcHggNXB4OyBmb250OiAxNjUlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCit9CitoMiB7CisgICAgbWFyZ2luLXRvcDogMWVtOyBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMjUlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCit9CitoMyB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTE1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorfQoraDQgeworICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEwMCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKK30KK2g1IHsKKyAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMDAlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCit9CitoNiB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorfQorLkVycm9yIHsKKyAgICBmb250LXdlaWdodDpib2xkOyBjb2xvcjpyZWQ7Cit9CisuRmFpbHVyZSB7CisgICAgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6cHVycGxlOworfQorLlByb3BlcnRpZXMgeworICB0ZXh0LWFsaWduOnJpZ2h0OworfQorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgVGhpcyBwYWdlIGlzIGNyZWF0ZWQgZm9yIGV2ZXJ5IHRlc3RzdWl0ZSBjbGFzcy4KKyAgICBJdCBwcmludHMgYSBzdW1tYXJ5IG9mIHRoZSB0ZXN0c3VpdGUgYW5kIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0CisgICAgdGVzdGNhc2UgbWV0aG9kcy4KKyAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZSIgbW9kZT0iY2xhc3MuZGV0YWlscyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iQHBhY2thZ2UiLz4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImNsYXNzLm5hbWUiPjx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAnJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+LjwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwveHNsOnZhcmlhYmxlPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICA8dGl0bGU+VW5pdCBUZXN0IFJlc3VsdHM6IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY2xhc3MubmFtZSIvPjwvdGl0bGU+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+CisgICAgICAgIHZhciBUZXN0Q2FzZXMgPSBuZXcgQXJyYXkoKTsKKyAgICAgICAgdmFyIGN1cjsKKyAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJwcm9wZXJ0aWVzIi8+CisgICAgICAgPC9zY3JpcHQ+CisgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij48IVtDREFUQVsKKyAgICAgICAgZnVuY3Rpb24gZGlzcGxheVByb3BlcnRpZXMgKG5hbWUpIHsKKyAgICAgICAgICB2YXIgd2luID0gd2luZG93Lm9wZW4oJycsJ0pVbml0U3lzdGVtUHJvcGVydGllcycsJ3Njcm9sbGJhcnM9MSxyZXNpemFibGU9MScpOworICAgICAgICAgIHZhciBkb2MgPSB3aW4uZG9jdW1lbnQub3BlbigpOworICAgICAgICAgIGRvYy53cml0ZSgiPGh0bWw+PGhlYWQ+PHRpdGxlPlByb3BlcnRpZXMgb2YgIiArIG5hbWUgKyAiPC90aXRsZT4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoImJvZHkge2ZvbnQ6bm9ybWFsIDY4JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYTsgY29sb3I6IzAwMDAwMDsgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgidGFibGUgdHIgdGQsIHRhYmxlIHRyIHRoIHsgZm9udC1zaXplOiA2OCU7IH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoInRhYmxlLnByb3BlcnRpZXMgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IGJvcmRlci1sZWZ0OnNvbGlkIDEgI2NjY2NjYzsgYm9yZGVyLXRvcDpzb2xpZCAxICNjY2NjY2M7IHBhZGRpbmc6NXB4OyB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJ0YWJsZS5wcm9wZXJ0aWVzIHRoIHsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItcmlnaHQ6c29saWQgMSAjY2NjY2NjOyBib3JkZXItYm90dG9tOnNvbGlkIDEgI2NjY2NjYzsgYmFja2dyb3VuZC1jb2xvcjojZWVlZWVlOyB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJ0YWJsZS5wcm9wZXJ0aWVzIHRkIHsgZm9udDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgYm9yZGVyLXJpZ2h0OnNvbGlkIDEgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxICNjY2NjY2M7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZmY7IH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoImgzIHsgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTE1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYSB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8L3N0eWxlPiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPC9oZWFkPjxib2R5PiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPGgzPlByb3BlcnRpZXMgb2YgIiArIG5hbWUgKyAiPC9oMz4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjxkaXYgYWxpZ249XCJyaWdodFwiPjxhIGhyZWY9XCJqYXZhc2NyaXB0OndpbmRvdy5jbG9zZSgpO1wiPkNsb3NlPC9hPjwvZGl2PiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPHRhYmxlIGNsYXNzPSdwcm9wZXJ0aWVzJz4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjx0cj48dGg+TmFtZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPiIpOworICAgICAgICAgIGZvciAocHJvcCBpbiBUZXN0Q2FzZXNbbmFtZV0pIHsKKyAgICAgICAgICAgIGRvYy53cml0ZSgiPHRyPjx0aD4iICsgcHJvcCArICI8L3RoPjx0ZD4iICsgVGVzdENhc2VzW25hbWVdW3Byb3BdICsgIjwvdGQ+PC90cj4iKTsKKyAgICAgICAgICB9CisgICAgICAgICAgZG9jLndyaXRlKCI8L3RhYmxlPiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPC9ib2R5PjwvaHRtbD4iKTsKKyAgICAgICAgICBkb2MuY2xvc2UoKTsKKyAgICAgICAgICB3aW4uZm9jdXMoKTsKKyAgICAgICAgfQorICAgICAgXV0+CisgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgICAgICAgICA8aDM+Q2xhc3MgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRjbGFzcy5uYW1lIi8+PC9oMz4KKworCisgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImRldGFpbHMiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iOTUlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIi8+CisgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJwcmludC50ZXN0Ii8+CisgICAgICAgICAgICA8L3RhYmxlPgorCisgICAgICAgICAgICA8aDI+VGVzdHM8L2gyPgorICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJkZXRhaWxzIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9Ijk1JSI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0ZXN0Y2FzZS50ZXN0LmhlYWRlciIvPgorICAgICAgICAgICAgICA8IS0tCisgICAgICAgICAgICAgIHRlc3QgY2FuIGV2ZW4gbm90IGJlIHN0YXJ0ZWQgYXQgYWxsIChmYWlsdXJlIHRvIGxvYWQgdGhlIGNsYXNzKQorICAgICAgICAgICAgICBzbyByZXBvcnQgdGhlIGVycm9yIGRpcmVjdGx5CisgICAgICAgICAgICAgIC0tPgorICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iLi9lcnJvciI+CisgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRXJyb3IiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9lcnJvciIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC94c2w6aWY+CisgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuL3Rlc3RjYXNlIiBtb2RlPSJwcmludC50ZXN0Ii8+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iUHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgPGE+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPmphdmFzY3JpcHQ6ZGlzcGxheVByb3BlcnRpZXMoJzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcGFja2FnZSIvPi48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4nKTs8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgIFByb3BlcnRpZXMgJiMxODc7CisgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9InN0cmluZy1sZW5ndGgoLi9zeXN0ZW0tb3V0KSE9MCI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iUHJvcGVydGllcyI+CisgICAgICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+Li88eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4tb3V0LnR4dDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQgJiMxODc7CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKC4vc3lzdGVtLWVycikhPTAiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8YT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPi4vPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+LWVyci50eHQ8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyICYjMTg3OworICAgICAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgPC9ib2R5PgorICAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCisgIDwhLS0KKyAgIFdyaXRlIHByb3BlcnRpZXMgaW50byBhIEphdmFTY3JpcHQgZGF0YSBzdHJ1Y3R1cmUuCisgICBUaGlzIGlzIGJhc2VkIG9uIHRoZSBvcmlnaW5hbCBpZGVhIGJ5IEVyaWsgSGF0Y2hlciAoZWhhdGNoZXJAYXBhY2hlLm9yZykKKyAgIC0tPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwcm9wZXJ0aWVzIj4KKyAgICBjdXIgPSBUZXN0Q2FzZXNbJzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi9AcGFja2FnZSIvPi48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLi4vQG5hbWUiLz4nXSA9IG5ldyBBcnJheSgpOworICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJwcm9wZXJ0eSI+CisgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgY3VyWyc8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4nXSA9ICc8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iSlMtZXNjYXBlIj48eHNsOndpdGgtcGFyYW0gbmFtZT0ic3RyaW5nIiBzZWxlY3Q9IkB2YWx1ZSIvPjwveHNsOmNhbGwtdGVtcGxhdGU+JzsKKyAgICA8L3hzbDpmb3ItZWFjaD4KKyAgPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgVGhpcyBwYWdlIGlzIGNyZWF0ZWQgZm9yIGV2ZXJ5IHBhY2thZ2UuCisgICAgSXQgcHJpbnRzIHRoZSBuYW1lIG9mIGFsbCBjbGFzc2VzIHRoYXQgYmVsb25ncyB0byB0aGlzIHBhY2thZ2UuCisgICAgQHBhcmFtIG5hbWUgdGhlIHBhY2thZ2UgbmFtZSB0byBwcmludCBjbGFzc2VzLgorICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorPCEtLSBsaXN0IG9mIGNsYXNzZXMgaW4gYSBwYWNrYWdlIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJjbGFzc2VzLmxpc3QiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0ibmFtZSIvPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx0aXRsZT5Vbml0IFRlc3QgQ2xhc3NlczogPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC90aXRsZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5PgorICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aDI+PGEgaHJlZj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSIkbmFtZSA9ICcnIj4mbHQ7bm9uZSZndDs8L3hzbDppZj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvYT48L2gyPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8L3RhYmxlPgorCisgICAgICAgICAgICA8aDI+Q2xhc3NlczwvaDI+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIvdGVzdHN1aXRlcy90ZXN0c3VpdGVbLi9AcGFja2FnZSA9ICRuYW1lXSI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ie0BuYW1lfS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIENyZWF0ZXMgYW4gYWxsLWNsYXNzZXMuaHRtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaW5rIHRvIGFsbCBwYWNrYWdlLXN1bW1hcnkuaHRtbAorICAgIG9uIGVhY2ggY2xhc3MuCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZXMiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8dGl0bGU+QWxsIFVuaXQgVGVzdCBDbGFzc2VzPC90aXRsZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5PgorICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgorICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InRlc3RzdWl0ZSIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlIiBtb2RlPSJhbGwuY2xhc3NlcyI+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iQHBhY2thZ2UiLz4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICA8YSB0YXJnZXQ9ImNsYXNzRnJhbWUiPgorICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9Im5vdCgkcGFja2FnZS5uYW1lPScnKSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0idHJhbnNsYXRlKCRwYWNrYWdlLm5hbWUsJy4nLCcvJykiLz48eHNsOnRleHQ+LzwveHNsOnRleHQ+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjx4c2w6dGV4dD4uaHRtbDwveHNsOnRleHQ+CisgICAgICAgICAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCisgICAgQ3JlYXRlcyBhbiBodG1sIGZpbGUgdGhhdCBjb250YWlucyBhIGxpbmsgdG8gYWxsIHBhY2thZ2Utc3VtbWFyeS5odG1sIGZpbGVzIG9uCisgICAgZWFjaCBwYWNrYWdlIGV4aXN0aW5nIG9uIHRlc3RzdWl0ZXMuCisgICAgQGJ1ZyB0aGVyZSB3aWxsIGJlIGEgcHJvYmxlbSBoZXJlLCBJIGRvbid0IGtub3cgeWV0IGhvdyB0byBoYW5kbGUgdW5uYW1lZCBwYWNrYWdlIDooCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZXMiIG1vZGU9ImFsbC5wYWNrYWdlcyI+CisgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICAgICAgPHRpdGxlPkFsbCBVbml0IFRlc3QgUGFja2FnZXM8L3RpdGxlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8aDI+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPkhvbWU8L2E+PC9oMj4KKyAgICAgICAgICAgIDxoMj5QYWNrYWdlczwvaDI+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0idGVzdHN1aXRlW25vdCguL0BwYWNrYWdlID0gcHJlY2VkaW5nLXNpYmxpbmc6OnRlc3RzdWl0ZS9AcGFja2FnZSldIiBtb2RlPSJhbGwucGFja2FnZXMiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlIiBtb2RlPSJhbGwucGFja2FnZXMiPgorICAgIDx0cj4KKyAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgIDxhIGhyZWY9Ii4ve3RyYW5zbGF0ZShAcGFja2FnZSwnLicsJy8nKX0vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+CisgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJAcGFja2FnZSA9ICcnIj4mbHQ7bm9uZSZndDs8L3hzbDppZj4KKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlcyIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx0aXRsZT5Vbml0IFRlc3QgUmVzdWx0czogU3VtbWFyeTwvdGl0bGU+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keT4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0ib25sb2FkIj5vcGVuKCdhbGxjbGFzc2VzLWZyYW1lLmh0bWwnLCdjbGFzc0xpc3RGcmFtZScpPC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICA8aDI+U3VtbWFyeTwvaDI+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGVzdENvdW50IiBzZWxlY3Q9InN1bSh0ZXN0c3VpdGUvQHRlc3RzKSIvPgorICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImVycm9yQ291bnQiIHNlbGVjdD0ic3VtKHRlc3RzdWl0ZS9AZXJyb3JzKSIvPgorICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9ImZhaWx1cmVDb3VudCIgc2VsZWN0PSJzdW0odGVzdHN1aXRlL0BmYWlsdXJlcykiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0aW1lQ291bnQiIHNlbGVjdD0ic3VtKHRlc3RzdWl0ZS9AdGltZSkiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJzdWNjZXNzUmF0ZSIgc2VsZWN0PSIoJHRlc3RDb3VudCAtICRmYWlsdXJlQ291bnQgLSAkZXJyb3JDb3VudCkgZGl2ICR0ZXN0Q291bnQiLz4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJkZXRhaWxzIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9Ijk1JSI+CisgICAgICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgICAgICA8dGg+VGVzdHM8L3RoPgorICAgICAgICAgICAgPHRoPkZhaWx1cmVzPC90aD4KKyAgICAgICAgICAgIDx0aD5FcnJvcnM8L3RoPgorICAgICAgICAgICAgPHRoPlN1Y2Nlc3MgcmF0ZTwvdGg+CisgICAgICAgICAgICA8dGg+VGltZTwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkZXJyb3JDb3VudCAmZ3Q7IDAiPkVycm9yPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9IiRmYWlsdXJlQ291bnQgJmd0OyAwIj5GYWlsdXJlPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpvdGhlcndpc2U+UGFzczwveHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0ZXN0Q291bnQiLz48L3RkPgorICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmFpbHVyZUNvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGVycm9yQ291bnQiLz48L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXBlcmNlbnQiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iJHN1Y2Nlc3NSYXRlIi8+CisgICAgICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSIkdGltZUNvdW50Ii8+CisgICAgICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NSUiPgorICAgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeTsiPgorICAgICAgICBOb3RlOiA8ZW0+ZmFpbHVyZXM8L2VtPiBhcmUgYW50aWNpcGF0ZWQgYW5kIGNoZWNrZWQgZm9yIHdpdGggYXNzZXJ0aW9ucyB3aGlsZSA8ZW0+ZXJyb3JzPC9lbT4gYXJlIHVuYW50aWNpcGF0ZWQuCisgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisKKyAgICAgICAgPGgyPlBhY2thZ2VzPC9oMj4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJkZXRhaWxzIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9Ijk1JSI+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIi8+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0idGVzdHN1aXRlW25vdCguL0BwYWNrYWdlID0gcHJlY2VkaW5nLXNpYmxpbmc6OnRlc3RzdWl0ZS9AcGFja2FnZSldIj4KKyAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAcGFja2FnZSIgb3JkZXI9ImFzY2VuZGluZyIvPgorICAgICAgICAgICAgICAgIDwhLS0gZ2V0IHRoZSBub2RlIHNldCBjb250YWluaW5nIGFsbCB0ZXN0c3VpdGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBwYWNrYWdlIC0tPgorICAgICAgICAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iaW5zYW1lcGFja2FnZSIgc2VsZWN0PSIvdGVzdHN1aXRlcy90ZXN0c3VpdGVbLi9AcGFja2FnZSA9IGN1cnJlbnQoKS9AcGFja2FnZV0iLz4KKyAgICAgICAgICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgICAgICAgICA8IS0tIGRpc3BsYXkgYSBmYWlsdXJlIGlmIHRoZXJlIGlzIGFueSBmYWlsdXJlL2Vycm9yIGluIHRoZSBwYWNrYWdlIC0tPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0BlcnJvcnMpICZndDsgMCI+RXJyb3I8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQGZhaWx1cmVzKSAmZ3Q7IDAiPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPlBhc3M8L3hzbDpvdGhlcndpc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9Ii4ve3RyYW5zbGF0ZShAcGFja2FnZSwnLicsJy8nKX0vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9IkBwYWNrYWdlID0gJyciPiZsdDtub25lJmd0OzwveHNsOmlmPgorICAgICAgICAgICAgICAgICAgICA8L2E+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQHRlc3RzKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0BlcnJvcnMpIi8+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQGZhaWx1cmVzKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0B0aW1lKSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRpbnNhbWVwYWNrYWdlL0B0aW1lc3RhbXAiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRpbnNhbWVwYWNrYWdlL0Bob3N0bmFtZSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgICAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCisKKzx4c2w6dGVtcGxhdGUgbmFtZT0icGFja2FnZS5zdW1tYXJ5Ij4KKyAgICA8eHNsOnBhcmFtIG5hbWU9Im5hbWUiLz4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9Im9ubG9hZCI+b3BlbigncGFja2FnZS1mcmFtZS5odG1sJywnY2xhc3NMaXN0RnJhbWUnKTwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgICAgICAgICA8aDM+UGFja2FnZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2gzPgorCisgICAgICAgICAgICA8IS0tdGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjbGFzcy5tZXRyaWNzLmhlYWRlciIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0icHJpbnQubWV0cmljcyIvPgorICAgICAgICAgICAgPC90YWJsZS0tPgorCisgICAgICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9Imluc2FtZXBhY2thZ2UiIHNlbGVjdD0iL3Rlc3RzdWl0ZXMvdGVzdHN1aXRlWy4vQHBhY2thZ2UgPSAkbmFtZV0iLz4KKyAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iY291bnQoJGluc2FtZXBhY2thZ2UpICZndDsgMCI+CisgICAgICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgorICAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIi8+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iJGluc2FtZXBhY2thZ2UiIG1vZGU9InByaW50LnRlc3QiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC94c2w6aWY+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCisgICAgdHJhbnNmb3JtIHN0cmluZyBsaWtlIGEuYi5jIHRvIC4uLy4uLy4uLworICAgIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRyYW5zZm9ybSBpbnRvIGEgZGVzY2VuZGluZyBkaXJlY3RvcnkgcGF0aAorLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0icGF0aCIvPgorICAgIDx4c2w6aWYgdGVzdD0iY29udGFpbnMoJHBhdGgsJy4nKSI+CisgICAgICAgIDx4c2w6dGV4dD4uLi88L3hzbDp0ZXh0PgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGF0aCI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcigkcGF0aCwnLicpIi8+PC94c2w6d2l0aC1wYXJhbT4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOmlmIHRlc3Q9Im5vdChjb250YWlucygkcGF0aCwnLicpKSBhbmQgbm90KCRwYXRoID0gJycpIj4KKyAgICAgICAgPHhzbDp0ZXh0Pi4uLzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGNyZWF0ZSB0aGUgbGluayB0byB0aGUgc3R5bGVzaGVldCBiYXNlZCBvbiB0aGUgcGFja2FnZSBuYW1lIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJTdHlsZSI+PHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+PHhzbDppZiB0ZXN0PSJub3QoJHBhY2thZ2UubmFtZSA9ICd1bm5hbWVkIHBhY2thZ2UnKSI+PHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhdGgiPjx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYXRoIiBzZWxlY3Q9IiRwYWNrYWdlLm5hbWUiLz48L3hzbDpjYWxsLXRlbXBsYXRlPjwveHNsOmlmPnN0eWxlc2hlZXQuY3NzPC94c2w6YXR0cmlidXRlPjwvbGluaz4KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0gUGFnZSBIRUFERVIgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiPgorICAgIDxoMT5Vbml0IFRlc3QgUmVzdWx0czwvaDE+CisgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+RGVzaWduZWQgZm9yIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHA6Ly93d3cuanVuaXQub3JnLyI+SlVuaXQ8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnLyI+QW50PC9hPi48L3RkPgorICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgICA8aHIgc2l6ZT0iMSIvPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gY2xhc3MgaGVhZGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJ0ZXN0c3VpdGUudGVzdC5oZWFkZXIiPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0aCB3aWR0aD0iODAlIj5OYW1lPC90aD4KKyAgICAgICAgPHRoPlRlc3RzPC90aD4KKyAgICAgICAgPHRoPkVycm9yczwvdGg+CisgICAgICAgIDx0aD5GYWlsdXJlczwvdGg+CisgICAgICAgIDx0aCBub3dyYXA9Im5vd3JhcCI+VGltZShzKTwvdGg+CisgICAgICAgIDx0aCBub3dyYXA9Im5vd3JhcCI+VGltZSBTdGFtcDwvdGg+CisgICAgICAgIDx0aD5Ib3N0PC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gbWV0aG9kIGhlYWRlciAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0idGVzdGNhc2UudGVzdC5oZWFkZXIiPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0aD5OYW1lPC90aD4KKyAgICAgICAgPHRoPlN0YXR1czwvdGg+CisgICAgICAgIDx0aCB3aWR0aD0iODAlIj5UeXBlPC90aD4KKyAgICAgICAgPHRoIG5vd3JhcD0ibm93cmFwIj5UaW1lKHMpPC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjbGFzcyBpbmZvcm1hdGlvbiAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZSIgbW9kZT0icHJpbnQudGVzdCI+CisgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9IkBlcnJvcnNbLiZndDsgMF0iPkVycm9yPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iQGZhaWx1cmVzWy4mZ3Q7IDBdIj5GYWlsdXJlPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICA8eHNsOm90aGVyd2lzZT5QYXNzPC94c2w6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgIDx0ZD48YSBocmVmPSJ7QG5hbWV9Lmh0bWwiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT48L3RkPgorICAgICAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAdGVzdHMiLz48L3RkPgorICAgICAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAZXJyb3JzIi8+PC90ZD4KKyAgICAgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQGZhaWx1cmVzIi8+PC90ZD4KKyAgICAgICAgPHRkPjx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXRpbWUiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJAdGltZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQHRpbWVzdGFtcCIvPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBob3N0bmFtZSIvPjwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0Y2FzZSIgbW9kZT0icHJpbnQudGVzdCI+CisgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImVycm9yIj5FcnJvcjwveHNsOndoZW4+CisgICAgICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImZhaWx1cmUiPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPlRhYmxlUm93Q29sb3I8L3hzbDpvdGhlcndpc2U+CisgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvdGQ+CisgICAgICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImZhaWx1cmUiPgorICAgICAgICAgICAgICAgIDx0ZD5GYWlsdXJlPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmYWlsdXJlIi8+PC90ZD4KKyAgICAgICAgICAgIDwveHNsOndoZW4+CisgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iZXJyb3IiPgorICAgICAgICAgICAgICAgIDx0ZD5FcnJvcjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZXJyb3IiLz48L3RkPgorICAgICAgICAgICAgPC94c2w6d2hlbj4KKyAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPgorICAgICAgICAgICAgICAgIDx0ZD5TdWNjZXNzPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICAgIDwveHNsOm90aGVyd2lzZT4KKyAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICA8dGQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS10aW1lIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iQHRpbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0gTm90ZSA6IHRoZSBiZWxvdyB0ZW1wbGF0ZSBlcnJvciBhbmQgZmFpbHVyZSBhcmUgdGhlIHNhbWUgc3R5bGUKKyAgICAgICAgICAgIHNvIGp1c3QgY2FsbCB0aGUgc2FtZSBzdHlsZSBzdG9yZSBpbiB0aGUgdG9vbGtpdCB0ZW1wbGF0ZSAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZhaWx1cmUiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LWZhaWx1cmVzIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZXJyb3IiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LWZhaWx1cmVzIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBTdHlsZSBmb3IgdGhlIGVycm9yIGFuZCBmYWlsdXJlIGluIHRoZSB0ZXN0Y2FzZSB0ZW1wbGF0ZSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyI+CisgICAgPHhzbDpjaG9vc2U+CisgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJub3QoQG1lc3NhZ2UpIj5OL0E8L3hzbDp3aGVuPgorICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbWVzc2FnZSIvPgorICAgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICAgIDwhLS0gZGlzcGxheSB0aGUgc3RhY2t0cmFjZSAtLT4KKyAgICA8YnIvPjxici8+CisgICAgPGNvZGU+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJici1yZXBsYWNlIj4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ3b3JkIiBzZWxlY3Q9Ii4iLz4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L2NvZGU+CisgICAgPCEtLSB0aGUgbGF0dGVyIGlzIGJldHRlciBidXQgbWlnaHQgYmUgcHJvYmxlbWF0aWMgZm9yIG5vbi0yMSIgbW9uaXRvcnMuLi4gLS0+CisgICAgPCEtLXByZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvcHJlLS0+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJKUy1lc2NhcGUiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0ic3RyaW5nIi8+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0bXAxIiBzZWxlY3Q9InN0cmluZ3V0aWxzOnJlcGxhY2Uoc3RyaW5nKCRzdHJpbmcpLCdcJywnXFwnKSIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0idG1wMiIgc2VsZWN0PSJzdHJpbmd1dGlsczpyZXBsYWNlKHN0cmluZygkdG1wMSksJnF1b3Q7JyZxdW90OywmcXVvdDtcJmFwb3M7JnF1b3Q7KSIvPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdG1wMiIvPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIHRlbXBsYXRlIHRoYXQgd2lsbCBjb252ZXJ0IGEgY2FycmlhZ2UgcmV0dXJuIGludG8gYSBiciB0YWcKKyAgICBAcGFyYW0gd29yZCB0aGUgdGV4dCBmcm9tIHdoaWNoIHRvIGNvbnZlcnQgQ1IgdG8gQlIgdGFnCistLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iYnItcmVwbGFjZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ3b3JkIi8+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJiciI+PGJyLz48L3hzbDpwYXJhbT4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0nc3RyaW5ndXRpbHM6cmVwbGFjZShzdHJpbmcoJHdvcmQpLCImI3hBOyIsJGJyKScvPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iZGlzcGxheS10aW1lIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InZhbHVlIi8+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoJHZhbHVlLCcwLjAwMCcpIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXBlcmNlbnQiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0idmFsdWUiLz4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZm9ybWF0LW51bWJlcigkdmFsdWUsJzAuMDAlJykiLz4KKzwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qdW5pdC1mcmFtZXMueHNsIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL2p1bml0LWZyYW1lcy54c2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjI5ZThkZAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qdW5pdC1mcmFtZXMueHNsCkBAIC0wLDAgKzEsNzEyIEBACis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCIKKyAgICB4bWxuczpseHNsdD0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hzbHQiCisgICAgeG1sbnM6cmVkaXJlY3Q9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbi9yZWRpcmVjdCIKKyAgICB4bWxuczpzdHJpbmd1dGlscz0ieGFsYW46Ly9vcmcuYXBhY2hlLnRvb2xzLmFudC51dGlsLlN0cmluZ1V0aWxzIgorICAgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJyZWRpcmVjdCI+Cis8eHNsOm91dHB1dCBtZXRob2Q9Imh0bWwiIGluZGVudD0ieWVzIiBlbmNvZGluZz0iVVMtQVNDSUkiLz4KKzx4c2w6ZGVjaW1hbC1mb3JtYXQgZGVjaW1hbC1zZXBhcmF0b3I9Ii4iIGdyb3VwaW5nLXNlcGFyYXRvcj0iLCIvPgorPCEtLQorICAgQ29weXJpZ2h0IDIwMDEtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKworICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPCEtLQorCisgU2FtcGxlIHN0eWxlc2hlZXQgdG8gYmUgdXNlZCB3aXRoIEFudCBKVW5pdFJlcG9ydCBvdXRwdXQuCisKKyBJdCBjcmVhdGVzIGEgc2V0IG9mIEhUTUwgZmlsZXMgYSBsYSBqYXZhZG9jIHdoZXJlIHlvdSBjYW4gYnJvd3NlIGVhc2lseQorIHRocm91Z2ggYWxsIHBhY2thZ2VzIGFuZCBjbGFzc2VzLgorCistLT4KKzx4c2w6cGFyYW0gbmFtZT0ib3V0cHV0LmRpciIgc2VsZWN0PSInLiciLz4KKworCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0c3VpdGVzIj4KKyAgICA8IS0tIGNyZWF0ZSB0aGUgaW5kZXguaHRtbCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9pbmRleC5odG1sIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImluZGV4Lmh0bWwiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIHN0eWxlc2hlZXQuY3NzIC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3N0eWxlc2hlZXQuY3NzIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlc2hlZXQuY3NzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIHRoZSBvdmVydmlldy1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIGFsbC1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L292ZXJ2aWV3LWZyYW1lLmh0bWwiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImFsbC5wYWNrYWdlcyIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSB0aGUgYWxsLWNsYXNzZXMuaHRtbCBhdCB0aGUgcm9vdCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9hbGxjbGFzc2VzLWZyYW1lLmh0bWwiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImFsbC5jbGFzc2VzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gcHJvY2VzcyBhbGwgcGFja2FnZXMgLS0+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vdGVzdHN1aXRlW25vdCguL0BwYWNrYWdlID0gcHJlY2VkaW5nLXNpYmxpbmc6OnRlc3RzdWl0ZS9AcGFja2FnZSldIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhY2thZ2UiPgorICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0iQHBhY2thZ2UiLz4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKzwveHNsOnRlbXBsYXRlPgorCisKKzx4c2w6dGVtcGxhdGUgbmFtZT0icGFja2FnZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJwYWNrYWdlLmRpciI+CisgICAgICAgIDx4c2w6aWYgdGVzdD0ibm90KCRuYW1lID0gJycpIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0idHJhbnNsYXRlKCRuYW1lLCcuJywnLycpIi8+PC94c2w6aWY+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iJG5hbWUgPSAnJyI+LjwveHNsOmlmPgorICAgIDwveHNsOnZhcmlhYmxlPgorICAgIDwhLS1Qcm9jZXNzaW5nIHBhY2thZ2UgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+IGluIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkb3V0cHV0LmRpciIvPiAtLT4KKyAgICA8IS0tIGNyZWF0ZSBhIGNsYXNzZXMtbGlzdC5odG1sIGluIHRoZSBwYWNrYWdlIGRpcmVjdG9yeSAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS9wYWNrYWdlLWZyYW1lLmh0bWwiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY2xhc3Nlcy5saXN0Ij4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIGEgcGFja2FnZS1zdW1tYXJ5Lmh0bWwgaW4gdGhlIHBhY2thZ2UgZGlyZWN0b3J5IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3BhY2thZ2Utc3VtbWFyeS5odG1sIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhY2thZ2Uuc3VtbWFyeSI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibmFtZSIgc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGZvciBlYWNoIGNsYXNzLCBjcmVhdGVzIGEgQG5hbWUuaHRtbCAtLT4KKyAgICA8IS0tIEBidWcgdGhlcmUgd2lsbCBiZSBhIHByb2JsZW0gd2l0aCBpbm5lciBjbGFzc2VzIGhhdmluZyB0aGUgc2FtZSBuYW1lLCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuIC0tPgorICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIvdGVzdHN1aXRlcy90ZXN0c3VpdGVbQHBhY2thZ2UgPSAkbmFtZV0iPgorICAgICAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS97QGlkfV97QG5hbWV9Lmh0bWwiPgorICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJjbGFzcy5kZXRhaWxzIi8+CisgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisgICAgICAgIDx4c2w6aWYgdGVzdD0ic3RyaW5nLWxlbmd0aCguL3N5c3RlbS1vdXQpIT0wIj4KKyAgICAgICAgICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3tAaWR9X3tAbmFtZX0tb3V0LnR4dCI+CisgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4vc3lzdGVtLW91dCIgLz4KKyAgICAgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8eHNsOmlmIHRlc3Q9InN0cmluZy1sZW5ndGgoLi9zeXN0ZW0tZXJyKSE9MCI+CisgICAgICAgICAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS97QGlkfV97QG5hbWV9LWVyci50eHQiPgorICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuL3N5c3RlbS1lcnIiIC8+CisgICAgICAgICAgICA8L3JlZGlyZWN0OndyaXRlPgorICAgICAgICA8L3hzbDppZj4KKyAgICA8L3hzbDpmb3ItZWFjaD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG5hbWU9ImluZGV4Lmh0bWwiPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5Vbml0IFRlc3QgUmVzdWx0cy48L3RpdGxlPgorICAgIDwvaGVhZD4KKyAgICA8ZnJhbWVzZXQgY29scz0iMjAlLDgwJSI+CisgICAgICAgIDxmcmFtZXNldCByb3dzPSIzMCUsNzAlIj4KKyAgICAgICAgICAgIDxmcmFtZSBzcmM9Im92ZXJ2aWV3LWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VMaXN0RnJhbWUiLz4KKyAgICAgICAgICAgIDxmcmFtZSBzcmM9ImFsbGNsYXNzZXMtZnJhbWUuaHRtbCIgbmFtZT0iY2xhc3NMaXN0RnJhbWUiLz4KKyAgICAgICAgPC9mcmFtZXNldD4KKyAgICAgICAgPGZyYW1lIHNyYz0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiBuYW1lPSJjbGFzc0ZyYW1lIi8+CisgICAgICAgIDxub2ZyYW1lcz4KKyAgICAgICAgICAgIDxoMj5GcmFtZSBBbGVydDwvaDI+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBUaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlLCB5b3UgYXJlIHVzaW5nIGEgbm9uLWZyYW1lLWNhcGFibGUgd2ViIGNsaWVudC4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgPC9ub2ZyYW1lcz4KKyAgICA8L2ZyYW1lc2V0PgorPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gdGhpcyBpcyB0aGUgc3R5bGVzaGVldCBjc3MgdG8gdXNlIGZvciBuZWFybHkgZXZlcnl0aGluZyAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiPgorYm9keSB7CisgICAgZm9udDpub3JtYWwgNjglIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhOworICAgIGNvbG9yOiMwMDAwMDA7Cit9Cit0YWJsZSB0ciB0ZCwgdGFibGUgdHIgdGggeworICAgIGZvbnQtc2l6ZTogNjglOworfQordGFibGUuZGV0YWlscyB0ciB0aHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICB0ZXh0LWFsaWduOmxlZnQ7CisgICAgYmFja2dyb3VuZDojYTZjYWYwOworfQordGFibGUuZGV0YWlscyB0ciB0ZHsKKyAgICBiYWNrZ3JvdW5kOiNlZWVlZTA7Cit9CisKK3AgeworICAgIGxpbmUtaGVpZ2h0OjEuNWVtOworICAgIG1hcmdpbi10b3A6MC41ZW07IG1hcmdpbi1ib3R0b206MS4wZW07Cit9CitoMSB7CisgICAgbWFyZ2luOiAwcHggMHB4IDVweDsgZm9udDogMTY1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorfQoraDIgeworICAgIG1hcmdpbi10b3A6IDFlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTI1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorfQoraDMgeworICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDExNSUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKK30KK2g0IHsKKyAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMDAlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCit9CitoNSB7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorfQoraDYgeworICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEwMCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKK30KKy5FcnJvciB7CisgICAgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6cmVkOworfQorLkZhaWx1cmUgeworICAgIGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOnB1cnBsZTsKK30KKy5Qcm9wZXJ0aWVzIHsKKyAgdGV4dC1hbGlnbjpyaWdodDsKK30KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFRoaXMgcGFnZSBpcyBjcmVhdGVkIGZvciBldmVyeSB0ZXN0c3VpdGUgY2xhc3MuCisgICAgSXQgcHJpbnRzIGEgc3VtbWFyeSBvZiB0aGUgdGVzdHN1aXRlIGFuZCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dAorICAgIHRlc3RjYXNlIG1ldGhvZHMuCisgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0c3VpdGUiIG1vZGU9ImNsYXNzLmRldGFpbHMiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjbGFzcy5uYW1lIj48eHNsOmlmIHRlc3Q9Im5vdCgkcGFja2FnZS5uYW1lID0gJycpIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHBhY2thZ2UubmFtZSIvPi48L3hzbDppZj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3hzbDp2YXJpYWJsZT4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgPHRpdGxlPlVuaXQgVGVzdCBSZXN1bHRzOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGNsYXNzLm5hbWUiLz48L3RpdGxlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iJHBhY2thZ2UubmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgorICAgICAgICB2YXIgVGVzdENhc2VzID0gbmV3IEFycmF5KCk7CisgICAgICAgIHZhciBjdXI7CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0icHJvcGVydGllcyIvPgorICAgICAgIDwvc2NyaXB0PgorICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+PCFbQ0RBVEFbCisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlQcm9wZXJ0aWVzIChuYW1lKSB7CisgICAgICAgICAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKCcnLCdKVW5pdFN5c3RlbVByb3BlcnRpZXMnLCdzY3JvbGxiYXJzPTEscmVzaXphYmxlPTEnKTsKKyAgICAgICAgICB2YXIgZG9jID0gd2luLmRvY3VtZW50Lm9wZW4oKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjxodG1sPjxoZWFkPjx0aXRsZT5Qcm9wZXJ0aWVzIG9mICIgKyBuYW1lICsgIjwvdGl0bGU+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJib2R5IHtmb250Om5vcm1hbCA2OCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2E7IGNvbG9yOiMwMDAwMDA7IH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoInRhYmxlIHRyIHRkLCB0YWJsZSB0ciB0aCB7IGZvbnQtc2l6ZTogNjglOyB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJ0YWJsZS5wcm9wZXJ0aWVzIHsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyBib3JkZXItbGVmdDpzb2xpZCAxICNjY2NjY2M7IGJvcmRlci10b3A6c29saWQgMSAjY2NjY2NjOyBwYWRkaW5nOjVweDsgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgidGFibGUucHJvcGVydGllcyB0aCB7IHRleHQtYWxpZ246bGVmdDsgYm9yZGVyLXJpZ2h0OnNvbGlkIDEgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxICNjY2NjY2M7IGJhY2tncm91bmQtY29sb3I6I2VlZWVlZTsgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgidGFibGUucHJvcGVydGllcyB0ZCB7IGZvbnQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1yaWdodDpzb2xpZCAxICNjY2NjY2M7IGJvcmRlci1ib3R0b206c29saWQgMSAjY2NjY2NjOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmZmOyB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJoMyB7IG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDExNSUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgiPC9zdHlsZT4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjwvaGVhZD48Ym9keT4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjxoMz5Qcm9wZXJ0aWVzIG9mICIgKyBuYW1lICsgIjwvaDM+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8ZGl2IGFsaWduPVwicmlnaHRcIj48YSBocmVmPVwiamF2YXNjcmlwdDp3aW5kb3cuY2xvc2UoKTtcIj5DbG9zZTwvYT48L2Rpdj4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjx0YWJsZSBjbGFzcz0ncHJvcGVydGllcyc+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8dHI+PHRoPk5hbWU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4iKTsKKyAgICAgICAgICBmb3IgKHByb3AgaW4gVGVzdENhc2VzW25hbWVdKSB7CisgICAgICAgICAgICBkb2Mud3JpdGUoIjx0cj48dGg+IiArIHByb3AgKyAiPC90aD48dGQ+IiArIFRlc3RDYXNlc1tuYW1lXVtwcm9wXSArICI8L3RkPjwvdHI+Iik7CisgICAgICAgICAgfQorICAgICAgICAgIGRvYy53cml0ZSgiPC90YWJsZT4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjwvYm9keT48L2h0bWw+Iik7CisgICAgICAgICAgZG9jLmNsb3NlKCk7CisgICAgICAgICAgd2luLmZvY3VzKCk7CisgICAgICAgIH0KKyAgICAgIF1dPgorICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICAgICAgPGgzPkNsYXNzIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY2xhc3MubmFtZSIvPjwvaDM+CisKKworICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJkZXRhaWxzIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9Ijk1JSI+CisgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRlc3RzdWl0ZS50ZXN0LmhlYWRlciIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0icHJpbnQudGVzdCIvPgorICAgICAgICAgICAgPC90YWJsZT4KKworICAgICAgICAgICAgPGgyPlRlc3RzPC9oMj4KKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdGNhc2UudGVzdC5oZWFkZXIiLz4KKyAgICAgICAgICAgICAgPCEtLQorICAgICAgICAgICAgICB0ZXN0IGNhbiBldmVuIG5vdCBiZSBzdGFydGVkIGF0IGFsbCAoZmFpbHVyZSB0byBsb2FkIHRoZSBjbGFzcykKKyAgICAgICAgICAgICAgc28gcmVwb3J0IHRoZSBlcnJvciBkaXJlY3RseQorICAgICAgICAgICAgICAtLT4KKyAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9Ii4vZXJyb3IiPgorICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkVycm9yIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vZXJyb3IiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi90ZXN0Y2FzZSIgbW9kZT0icHJpbnQudGVzdCIvPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj5qYXZhc2NyaXB0OmRpc3BsYXlQcm9wZXJ0aWVzKCc8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz4uPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Jyk7PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzICYjMTg3OworICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKC4vc3lzdGVtLW91dCkhPTAiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8YT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPi4vPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBpZCIvPl88eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4tb3V0LnR4dDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQgJiMxODc7CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKC4vc3lzdGVtLWVycikhPTAiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgICAgICA8YT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPi4vPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBpZCIvPl88eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4tZXJyLnR4dDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIgJiMxODc7CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKyAgPCEtLQorICAgV3JpdGUgcHJvcGVydGllcyBpbnRvIGEgSmF2YVNjcmlwdCBkYXRhIHN0cnVjdHVyZS4KKyAgIFRoaXMgaXMgYmFzZWQgb24gdGhlIG9yaWdpbmFsIGlkZWEgYnkgRXJpayBIYXRjaGVyIChlaGF0Y2hlckBhcGFjaGUub3JnKQorICAgLS0+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InByb3BlcnRpZXMiPgorICAgIGN1ciA9IFRlc3RDYXNlc1snPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4uL0BwYWNrYWdlIi8+Ljx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi9AbmFtZSIvPiddID0gbmV3IEFycmF5KCk7CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InByb3BlcnR5Ij4KKyAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICBjdXJbJzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPiddID0gJzx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJKUy1lc2NhcGUiPjx4c2w6d2l0aC1wYXJhbSBuYW1lPSJzdHJpbmciIHNlbGVjdD0iQHZhbHVlIi8+PC94c2w6Y2FsbC10ZW1wbGF0ZT4nOworICAgIDwveHNsOmZvci1lYWNoPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBUaGlzIHBhZ2UgaXMgY3JlYXRlZCBmb3IgZXZlcnkgcGFja2FnZS4KKyAgICBJdCBwcmludHMgdGhlIG5hbWUgb2YgYWxsIGNsYXNzZXMgdGhhdCBiZWxvbmdzIHRvIHRoaXMgcGFja2FnZS4KKyAgICBAcGFyYW0gbmFtZSB0aGUgcGFja2FnZSBuYW1lIHRvIHByaW50IGNsYXNzZXMuCisgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+Cis8IS0tIGxpc3Qgb2YgY2xhc3NlcyBpbiBhIHBhY2thZ2UgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImNsYXNzZXMubGlzdCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIi8+CisgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICAgICAgPHRpdGxlPlVuaXQgVGVzdCBDbGFzc2VzOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L3RpdGxlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxoMj48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9IiRuYW1lID0gJyciPiZsdDtub25lJmd0OzwveHNsOmlmPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9hPjwvaDI+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisKKyAgICAgICAgICAgIDxoMj5DbGFzc2VzPC9oMj4KKyAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii90ZXN0c3VpdGVzL3Rlc3RzdWl0ZVsuL0BwYWNrYWdlID0gJG5hbWVdIj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJ7QGlkfV97QG5hbWV9Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCisgICAgQ3JlYXRlcyBhbiBhbGwtY2xhc3Nlcy5odG1sIGZpbGUgdGhhdCBjb250YWlucyBhIGxpbmsgdG8gYWxsIHBhY2thZ2Utc3VtbWFyeS5odG1sCisgICAgb24gZWFjaCBjbGFzcy4KKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlcyIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx0aXRsZT5BbGwgVW5pdCBUZXN0IENsYXNzZXM8L3RpdGxlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8aDI+Q2xhc3NlczwvaDI+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0idGVzdHN1aXRlIiBtb2RlPSJhbGwuY2xhc3NlcyI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0c3VpdGUiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgIDx0cj4KKyAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgIDxhIHRhcmdldD0iY2xhc3NGcmFtZSI+CisgICAgICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWU9JycpIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0cmFuc2xhdGUoJHBhY2thZ2UubmFtZSwnLicsJy8nKSIvPjx4c2w6dGV4dD4vPC94c2w6dGV4dD4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6aWY+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBpZCIvPl88eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48eHNsOnRleHQ+Lmh0bWw8L3hzbDp0ZXh0PgorICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIENyZWF0ZXMgYW4gaHRtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaW5rIHRvIGFsbCBwYWNrYWdlLXN1bW1hcnkuaHRtbCBmaWxlcyBvbgorICAgIGVhY2ggcGFja2FnZSBleGlzdGluZyBvbiB0ZXN0c3VpdGVzLgorICAgIEBidWcgdGhlcmUgd2lsbCBiZSBhIHByb2JsZW0gaGVyZSwgSSBkb24ndCBrbm93IHlldCBob3cgdG8gaGFuZGxlIHVubmFtZWQgcGFja2FnZSA6KAorLS0+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0c3VpdGVzIiBtb2RlPSJhbGwucGFja2FnZXMiPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx0aXRsZT5BbGwgVW5pdCBUZXN0IFBhY2thZ2VzPC90aXRsZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5PgorICAgICAgICAgICAgPGgyPjxhIGhyZWY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj5Ib21lPC9hPjwvaDI+CisgICAgICAgICAgICA8aDI+UGFja2FnZXM8L2gyPgorICAgICAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InRlc3RzdWl0ZVtub3QoLi9AcGFja2FnZSA9IHByZWNlZGluZy1zaWJsaW5nOjp0ZXN0c3VpdGUvQHBhY2thZ2UpXSIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQHBhY2thZ2UiLz4KKyAgICAgICAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZSIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICA8YSBocmVmPSIuL3t0cmFuc2xhdGUoQHBhY2thZ2UsJy4nLCcvJyl9L3BhY2thZ2Utc3VtbWFyeS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPgorICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcGFja2FnZSIvPgorICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iQHBhY2thZ2UgPSAnJyI+Jmx0O25vbmUmZ3Q7PC94c2w6aWY+CisgICAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InRlc3RzdWl0ZXMiIG1vZGU9Im92ZXJ2aWV3LnBhY2thZ2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8dGl0bGU+VW5pdCBUZXN0IFJlc3VsdHM6IFN1bW1hcnk8L3RpdGxlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9Im9ubG9hZCI+b3BlbignYWxsY2xhc3Nlcy1mcmFtZS5odG1sJywnY2xhc3NMaXN0RnJhbWUnKTwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKyAgICAgICAgPGgyPlN1bW1hcnk8L2gyPgorICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRlc3RDb3VudCIgc2VsZWN0PSJzdW0odGVzdHN1aXRlL0B0ZXN0cykiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJlcnJvckNvdW50IiBzZWxlY3Q9InN1bSh0ZXN0c3VpdGUvQGVycm9ycykiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmYWlsdXJlQ291bnQiIHNlbGVjdD0ic3VtKHRlc3RzdWl0ZS9AZmFpbHVyZXMpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGltZUNvdW50IiBzZWxlY3Q9InN1bSh0ZXN0c3VpdGUvQHRpbWUpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ic3VjY2Vzc1JhdGUiIHNlbGVjdD0iKCR0ZXN0Q291bnQgLSAkZmFpbHVyZUNvdW50IC0gJGVycm9yQ291bnQpIGRpdiAkdGVzdENvdW50Ii8+CisgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHRoPlRlc3RzPC90aD4KKyAgICAgICAgICAgIDx0aD5GYWlsdXJlczwvdGg+CisgICAgICAgICAgICA8dGg+RXJyb3JzPC90aD4KKyAgICAgICAgICAgIDx0aD5TdWNjZXNzIHJhdGU8L3RoPgorICAgICAgICAgICAgPHRoPlRpbWU8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICAgICAgICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iJGVycm9yQ291bnQgJmd0OyAwIj5FcnJvcjwveHNsOndoZW4+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkZmFpbHVyZUNvdW50ICZndDsgMCI+RmFpbHVyZTwveHNsOndoZW4+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPlBhc3M8L3hzbDpvdGhlcndpc2U+CisgICAgICAgICAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGVzdENvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZhaWx1cmVDb3VudCIvPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRlcnJvckNvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1wZXJjZW50Ij4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9IiRzdWNjZXNzUmF0ZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXRpbWUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iJHRpbWVDb3VudCIvPgorICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NSUiPgorICAgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeTsiPgorICAgICAgICBOb3RlOiA8ZW0+ZmFpbHVyZXM8L2VtPiBhcmUgYW50aWNpcGF0ZWQgYW5kIGNoZWNrZWQgZm9yIHdpdGggYXNzZXJ0aW9ucyB3aGlsZSA8ZW0+ZXJyb3JzPC9lbT4gYXJlIHVuYW50aWNpcGF0ZWQuCisgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisKKyAgICAgICAgPGgyPlBhY2thZ2VzPC9oMj4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJkZXRhaWxzIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9Ijk1JSI+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIi8+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0idGVzdHN1aXRlW25vdCguL0BwYWNrYWdlID0gcHJlY2VkaW5nLXNpYmxpbmc6OnRlc3RzdWl0ZS9AcGFja2FnZSldIj4KKyAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAcGFja2FnZSIgb3JkZXI9ImFzY2VuZGluZyIvPgorICAgICAgICAgICAgICAgIDwhLS0gZ2V0IHRoZSBub2RlIHNldCBjb250YWluaW5nIGFsbCB0ZXN0c3VpdGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBwYWNrYWdlIC0tPgorICAgICAgICAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iaW5zYW1lcGFja2FnZSIgc2VsZWN0PSIvdGVzdHN1aXRlcy90ZXN0c3VpdGVbLi9AcGFja2FnZSA9IGN1cnJlbnQoKS9AcGFja2FnZV0iLz4KKyAgICAgICAgICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgICAgICAgICA8IS0tIGRpc3BsYXkgYSBmYWlsdXJlIGlmIHRoZXJlIGlzIGFueSBmYWlsdXJlL2Vycm9yIGluIHRoZSBwYWNrYWdlIC0tPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0BlcnJvcnMpICZndDsgMCI+RXJyb3I8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQGZhaWx1cmVzKSAmZ3Q7IDAiPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPlBhc3M8L3hzbDpvdGhlcndpc2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9Ii4ve3RyYW5zbGF0ZShAcGFja2FnZSwnLicsJy8nKX0vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9IkBwYWNrYWdlID0gJyciPiZsdDtub25lJmd0OzwveHNsOmlmPgorICAgICAgICAgICAgICAgICAgICA8L2E+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQHRlc3RzKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0BlcnJvcnMpIi8+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW0oJGluc2FtZXBhY2thZ2UvQGZhaWx1cmVzKSIvPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0ic3VtKCRpbnNhbWVwYWNrYWdlL0B0aW1lKSIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgICAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG5hbWU9InBhY2thZ2Uuc3VtbWFyeSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIi8+CisgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJvbmxvYWQiPm9wZW4oJ3BhY2thZ2UtZnJhbWUuaHRtbCcsJ2NsYXNzTGlzdEZyYW1lJyk8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICAgICAgPGgzPlBhY2thZ2UgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRuYW1lIi8+PC9oMz4KKworICAgICAgICAgICAgPCEtLXRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iOTUlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY2xhc3MubWV0cmljcy5oZWFkZXIiLz4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InByaW50Lm1ldHJpY3MiLz4KKyAgICAgICAgICAgIDwvdGFibGUtLT4KKworICAgICAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJpbnNhbWVwYWNrYWdlIiBzZWxlY3Q9Ii90ZXN0c3VpdGVzL3Rlc3RzdWl0ZVsuL0BwYWNrYWdlID0gJG5hbWVdIi8+CisgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KCRpbnNhbWVwYWNrYWdlKSAmZ3Q7IDAiPgorICAgICAgICAgICAgICAgIDxoMj5DbGFzc2VzPC9oMj4KKyAgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImRldGFpbHMiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iOTUlIj4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InRlc3RzdWl0ZS50ZXN0LmhlYWRlciIvPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRpbnNhbWVwYWNrYWdlIiBtb2RlPSJwcmludC50ZXN0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIHRyYW5zZm9ybSBzdHJpbmcgbGlrZSBhLmIuYyB0byAuLi8uLi8uLi8KKyAgICBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0cmFuc2Zvcm0gaW50byBhIGRlc2NlbmRpbmcgZGlyZWN0b3J5IHBhdGgKKy0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYXRoIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InBhdGgiLz4KKyAgICA8eHNsOmlmIHRlc3Q9ImNvbnRhaW5zKCRwYXRoLCcuJykiPgorICAgICAgICA8eHNsOnRleHQ+Li4vPC94c2w6dGV4dD4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhdGgiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoJHBhdGgsJy4nKSIvPjwveHNsOndpdGgtcGFyYW0+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC94c2w6aWY+CisgICAgPHhzbDppZiB0ZXN0PSJub3QoY29udGFpbnMoJHBhdGgsJy4nKSkgYW5kIG5vdCgkcGF0aCA9ICcnKSI+CisgICAgICAgIDx4c2w6dGV4dD4uLi88L3hzbDp0ZXh0PgorICAgIDwveHNsOmlmPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjcmVhdGUgdGhlIGxpbmsgdG8gdGhlIHN0eWxlc2hlZXQgYmFzZWQgb24gdGhlIHBhY2thZ2UgbmFtZSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iU3R5bGUiPjx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPjx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAndW5uYW1lZCBwYWNrYWdlJykiPjx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYXRoIj48eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCIgc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+PC94c2w6Y2FsbC10ZW1wbGF0ZT48L3hzbDppZj5zdHlsZXNoZWV0LmNzczwveHNsOmF0dHJpYnV0ZT48L2xpbms+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIFBhZ2UgSEVBREVSIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIj4KKyAgICA8aDE+VW5pdCBUZXN0IFJlc3VsdHM8L2gxPgorICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgPHRyPgorICAgICAgICA8dGQgYWxpZ249ImxlZnQiPjwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPkRlc2lnbmVkIGZvciB1c2Ugd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3Lmp1bml0Lm9yZy8iPkpVbml0PC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy8iPkFudDwvYT4uPC90ZD4KKyAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGhyIHNpemU9IjEiLz4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIGNsYXNzIGhlYWRlciAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIj4KKyAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICA8dGggd2lkdGg9IjgwJSI+TmFtZTwvdGg+CisgICAgICAgIDx0aD5UZXN0czwvdGg+CisgICAgICAgIDx0aD5FcnJvcnM8L3RoPgorICAgICAgICA8dGg+RmFpbHVyZXM8L3RoPgorICAgICAgICA8dGggbm93cmFwPSJub3dyYXAiPlRpbWUocyk8L3RoPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBtZXRob2QgaGVhZGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJ0ZXN0Y2FzZS50ZXN0LmhlYWRlciI+CisgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPHRoPk5hbWU8L3RoPgorICAgICAgICA8dGg+U3RhdHVzPC90aD4KKyAgICAgICAgPHRoIHdpZHRoPSI4MCUiPlR5cGU8L3RoPgorICAgICAgICA8dGggbm93cmFwPSJub3dyYXAiPlRpbWUocyk8L3RoPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGNsYXNzIGluZm9ybWF0aW9uIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlIiBtb2RlPSJwcmludC50ZXN0Ij4KKyAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iQGVycm9yc1suJmd0OyAwXSI+RXJyb3I8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJAZmFpbHVyZXNbLiZndDsgMF0iPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPlBhc3M8L3hzbDpvdGhlcndpc2U+CisgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgPHRkPjxhIGhyZWY9IntAaWR9X3tAbmFtZX0uaHRtbCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkB0ZXN0cyIvPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBlcnJvcnMiLz48L3RkPgorICAgICAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAZmFpbHVyZXMiLz48L3RkPgorICAgICAgICA8dGQ+PHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9IkB0aW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdGNhc2UiIG1vZGU9InByaW50LnRlc3QiPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgICAgICAgICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJlcnJvciI+RXJyb3I8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJmYWlsdXJlIj5GYWlsdXJlPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICA8eHNsOm90aGVyd2lzZT5UYWJsZVJvd0NvbG9yPC94c2w6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3RkPgorICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJmYWlsdXJlIj4KKyAgICAgICAgICAgICAgICA8dGQ+RmFpbHVyZTwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZmFpbHVyZSIvPjwvdGQ+CisgICAgICAgICAgICA8L3hzbDp3aGVuPgorICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImVycm9yIj4KKyAgICAgICAgICAgICAgICA8dGQ+RXJyb3I8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImVycm9yIi8+PC90ZD4KKyAgICAgICAgICAgIDwveHNsOndoZW4+CisgICAgICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgICAgICA8dGQ+U3VjY2VzczwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgICAgIDwveHNsOmNob29zZT4KKyAgICAgICAgPHRkPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9IkB0aW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIE5vdGUgOiB0aGUgYmVsb3cgdGVtcGxhdGUgZXJyb3IgYW5kIGZhaWx1cmUgYXJlIHRoZSBzYW1lIHN0eWxlCisgICAgICAgICAgICBzbyBqdXN0IGNhbGwgdGhlIHNhbWUgc3R5bGUgc3RvcmUgaW4gdGhlIHRvb2xraXQgdGVtcGxhdGUgLS0+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJmYWlsdXJlIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyIvPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImVycm9yIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyIvPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gU3R5bGUgZm9yIHRoZSBlcnJvciBhbmQgZmFpbHVyZSBpbiB0aGUgdGVzdGNhc2UgdGVtcGxhdGUgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImRpc3BsYXktZmFpbHVyZXMiPgorICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICA8eHNsOndoZW4gdGVzdD0ibm90KEBtZXNzYWdlKSI+Ti9BPC94c2w6d2hlbj4KKyAgICAgICAgPHhzbDpvdGhlcndpc2U+CisgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG1lc3NhZ2UiLz4KKyAgICAgICAgPC94c2w6b3RoZXJ3aXNlPgorICAgIDwveHNsOmNob29zZT4KKyAgICA8IS0tIGRpc3BsYXkgdGhlIHN0YWNrdHJhY2UgLS0+CisgICAgPGJyLz48YnIvPgorICAgIDxjb2RlPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYnItcmVwbGFjZSI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0id29yZCIgc2VsZWN0PSIuIi8+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9jb2RlPgorICAgIDwhLS0gdGhlIGxhdHRlciBpcyBiZXR0ZXIgYnV0IG1pZ2h0IGJlIHByb2JsZW1hdGljIGZvciBub24tMjEiIG1vbml0b3JzLi4uIC0tPgorICAgIDwhLS1wcmU+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3ByZS0tPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iSlMtZXNjYXBlIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InN0cmluZyIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0idG1wMSIgc2VsZWN0PSJzdHJpbmd1dGlsczpyZXBsYWNlKHN0cmluZygkc3RyaW5nKSwnXCcsJ1xcJykiLz4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InRtcDIiIHNlbGVjdD0ic3RyaW5ndXRpbHM6cmVwbGFjZShzdHJpbmcoJHRtcDEpLCZxdW90OycmcXVvdDssJnF1b3Q7XCZhcG9zOyZxdW90OykiLz4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRtcDIiLz4KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0KKyAgICB0ZW1wbGF0ZSB0aGF0IHdpbGwgY29udmVydCBhIGNhcnJpYWdlIHJldHVybiBpbnRvIGEgYnIgdGFnCisgICAgQHBhcmFtIHdvcmQgdGhlIHRleHQgZnJvbSB3aGljaCB0byBjb252ZXJ0IENSIHRvIEJSIHRhZworLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImJyLXJlcGxhY2UiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0id29yZCIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0iYnIiPjxici8+PC94c2w6cGFyYW0+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9J3N0cmluZ3V0aWxzOnJlcGxhY2Uoc3RyaW5nKCR3b3JkKSwiJiN4QTsiLCRiciknLz4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ2YWx1ZSIvPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJmb3JtYXQtbnVtYmVyKCR2YWx1ZSwnMC4wMDAnKSIvPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iZGlzcGxheS1wZXJjZW50Ij4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InZhbHVlIi8+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoJHZhbHVlLCcwLjAwJScpIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CisKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9qdW5pdC1ub2ZyYW1lcy54c2wgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvanVuaXQtbm9mcmFtZXMueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1NDg3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvanVuaXQtbm9mcmFtZXMueHNsCkBAIC0wLDAgKzEsNDYxIEBACis8eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHZlcnNpb249IjEuMCIKKwl4bWxuczpseHNsdD0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hzbHQiCisJeG1sbnM6c3RyaW5ndXRpbHM9InhhbGFuOi8vb3JnLmFwYWNoZS50b29scy5hbnQudXRpbC5TdHJpbmdVdGlscyI+Cis8eHNsOm91dHB1dCBtZXRob2Q9Imh0bWwiIGluZGVudD0ieWVzIiBlbmNvZGluZz0iVVMtQVNDSUkiCisgIGRvY3R5cGUtcHVibGljPSItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgLz4KKzx4c2w6ZGVjaW1hbC1mb3JtYXQgZGVjaW1hbC1zZXBhcmF0b3I9Ii4iIGdyb3VwaW5nLXNlcGFyYXRvcj0iLCIgLz4KKzwhLS0KKyAgIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisgCis8IS0tCisgCisgU2FtcGxlIHN0eWxlc2hlZXQgdG8gYmUgdXNlZCB3aXRoIEFudCBKVW5pdFJlcG9ydCBvdXRwdXQuCisgCisgSXQgY3JlYXRlcyBhIG5vbi1mcmFtZWQgcmVwb3J0IHRoYXQgY2FuIGJlIHVzZWZ1bCB0byBzZW5kIHZpYQorIGUtbWFpbCBvciBzdWNoLgorIAorIEBhdXRob3IgU3RlcGhhbmUgQmFpbGxpZXogPGEgaHJlZj0ibWFpbHRvOnNiYWlsbGllekBhcGFjaGUub3JnIi8+CisgQGF1dGhvciBFcmlrIEhhdGNoZXIgPGEgaHJlZj0ibWFpbHRvOmVoYXRjaGVyQGFwYWNoZS5vcmciLz4KKyAKKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlcyI+CisgICAgPGh0bWw+CisgICAgICAgIDxoZWFkPgorICAgICAgICAgICAgPHRpdGxlPlVuaXQgVGVzdCBSZXN1bHRzPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIGZvbnQ6bm9ybWFsIDY4JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYTsKKyAgICAgICAgY29sb3I6IzAwMDAwMDsKKyAgICAgIH0KKyAgICAgIHRhYmxlIHRyIHRkLCB0YWJsZSB0ciB0aCB7CisgICAgICAgICAgZm9udC1zaXplOiA2OCU7CisgICAgICB9CisgICAgICB0YWJsZS5kZXRhaWxzIHRyIHRoeworICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgdGV4dC1hbGlnbjpsZWZ0OworICAgICAgICBiYWNrZ3JvdW5kOiNhNmNhZjA7CisgICAgICB9CisgICAgICB0YWJsZS5kZXRhaWxzIHRyIHRkeworICAgICAgICBiYWNrZ3JvdW5kOiNlZWVlZTA7CisgICAgICB9CisgICAgICAKKyAgICAgIHAgeworICAgICAgICBsaW5lLWhlaWdodDoxLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDowLjVlbTsgbWFyZ2luLWJvdHRvbToxLjBlbTsKKyAgICAgIH0KKyAgICAgIGgxIHsKKyAgICAgICAgbWFyZ2luOiAwcHggMHB4IDVweDsgZm9udDogMTY1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgaDIgeworICAgICAgICBtYXJnaW4tdG9wOiAxZW07IG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEyNSUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKKyAgICAgIH0KKyAgICAgIGgzIHsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTE1JSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgaDQgeworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMDAlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhCisgICAgICB9CisgICAgICBoNSB7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOyBmb250OiBib2xkIDEwMCUgdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2EKKyAgICAgIH0KKyAgICAgIGg2IHsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IGZvbnQ6IGJvbGQgMTAwJSB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYQorICAgICAgfQorICAgICAgLkVycm9yIHsKKyAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6cmVkOworICAgICAgfQorICAgICAgLkZhaWx1cmUgeworICAgICAgICBmb250LXdlaWdodDpib2xkOyBjb2xvcjpwdXJwbGU7CisgICAgICB9CisgICAgICAuUHJvcGVydGllcyB7CisgICAgICAgIHRleHQtYWxpZ246cmlnaHQ7CisgICAgICB9CisgICAgICA8L3N0eWxlPgorICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KKyAgICAgICAgdmFyIFRlc3RDYXNlcyA9IG5ldyBBcnJheSgpOworICAgICAgICB2YXIgY3VyOworICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iLi90ZXN0c3VpdGUiPiAgICAgIAorICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJwcm9wZXJ0aWVzIi8+CisgICAgICAgIDwveHNsOmZvci1lYWNoPgorCisgICAgICAgPC9zY3JpcHQ+CisgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij48IVtDREFUQVsKKyAgICAgICAgZnVuY3Rpb24gZGlzcGxheVByb3BlcnRpZXMgKG5hbWUpIHsKKyAgICAgICAgICB2YXIgd2luID0gd2luZG93Lm9wZW4oJycsJ0pVbml0U3lzdGVtUHJvcGVydGllcycsJ3Njcm9sbGJhcnM9MSxyZXNpemFibGU9MScpOworICAgICAgICAgIHZhciBkb2MgPSB3aW4uZG9jdW1lbnQub3BlbigpOworICAgICAgICAgIGRvYy53cml0ZSgiPGh0bWw+PGhlYWQ+PHRpdGxlPlByb3BlcnRpZXMgb2YgIiArIG5hbWUgKyAiPC90aXRsZT4iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjxzdHlsZT4iKQorICAgICAgICAgIGRvYy53cml0ZSgiYm9keSB7Zm9udDpub3JtYWwgNjglIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhOyBjb2xvcjojMDAwMDAwOyB9Iik7CisgICAgICAgICAgZG9jLndyaXRlKCJ0YWJsZSB0ciB0ZCwgdGFibGUgdHIgdGggeyBmb250LXNpemU6IDY4JTsgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgidGFibGUucHJvcGVydGllcyB7IGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgYm9yZGVyLWxlZnQ6c29saWQgMSAjY2NjY2NjOyBib3JkZXItdG9wOnNvbGlkIDEgI2NjY2NjYzsgcGFkZGluZzo1cHg7IH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoInRhYmxlLnByb3BlcnRpZXMgdGggeyB0ZXh0LWFsaWduOmxlZnQ7IGJvcmRlci1yaWdodDpzb2xpZCAxICNjY2NjY2M7IGJvcmRlci1ib3R0b206c29saWQgMSAjY2NjY2NjOyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWVlZWU7IH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoInRhYmxlLnByb3BlcnRpZXMgdGQgeyBmb250Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyBib3JkZXItcmlnaHQ6c29saWQgMSAjY2NjY2NjOyBib3JkZXItYm90dG9tOnNvbGlkIDEgI2NjY2NjYzsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmZjsgfSIpOworICAgICAgICAgIGRvYy53cml0ZSgiaDMgeyBtYXJnaW4tYm90dG9tOiAwLjVlbTsgZm9udDogYm9sZCAxMTUlIHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhIH0iKTsKKyAgICAgICAgICBkb2Mud3JpdGUoIjwvc3R5bGU+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8L2hlYWQ+PGJvZHk+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8aDM+UHJvcGVydGllcyBvZiAiICsgbmFtZSArICI8L2gzPiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPGRpdiBhbGlnbj1cInJpZ2h0XCI+PGEgaHJlZj1cImphdmFzY3JpcHQ6d2luZG93LmNsb3NlKCk7XCI+Q2xvc2U8L2E+PC9kaXY+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8dGFibGUgY2xhc3M9J3Byb3BlcnRpZXMnPiIpOworICAgICAgICAgIGRvYy53cml0ZSgiPHRyPjx0aD5OYW1lPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Iik7CisgICAgICAgICAgZm9yIChwcm9wIGluIFRlc3RDYXNlc1tuYW1lXSkgeworICAgICAgICAgICAgZG9jLndyaXRlKCI8dHI+PHRoPiIgKyBwcm9wICsgIjwvdGg+PHRkPiIgKyBUZXN0Q2FzZXNbbmFtZV1bcHJvcF0gKyAiPC90ZD48L3RyPiIpOworICAgICAgICAgIH0KKyAgICAgICAgICBkb2Mud3JpdGUoIjwvdGFibGU+Iik7CisgICAgICAgICAgZG9jLndyaXRlKCI8L2JvZHk+PC9odG1sPiIpOworICAgICAgICAgIGRvYy5jbG9zZSgpOworICAgICAgICAgIHdpbi5mb2N1cygpOworICAgICAgICB9CisgICAgICBdXT4gIAorICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvaGVhZD4KKyAgICAgICAgPGJvZHk+CisgICAgICAgICAgICA8YSBuYW1lPSJ0b3AiPjwvYT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+ICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPCEtLSBTdW1tYXJ5IHBhcnQgLS0+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3VtbWFyeSIvPgorICAgICAgICAgICAgPGhyIHNpemU9IjEiIHdpZHRoPSI5NSUiIGFsaWduPSJsZWZ0Ii8+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDwhLS0gUGFja2FnZSBMaXN0IHBhcnQgLS0+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFja2FnZWxpc3QiLz4KKyAgICAgICAgICAgIDxociBzaXplPSIxIiB3aWR0aD0iOTUlIiBhbGlnbj0ibGVmdCIvPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8IS0tIEZvciBlYWNoIHBhY2thZ2UgY3JlYXRlIGl0cyBwYXJ0IC0tPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhY2thZ2VzIi8+CisgICAgICAgICAgICA8aHIgc2l6ZT0iMSIgd2lkdGg9Ijk1JSIgYWxpZ249ImxlZnQiLz4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPCEtLSBGb3IgZWFjaCBjbGFzcyBjcmVhdGUgdGhlICBwYXJ0IC0tPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNsYXNzZXMiLz4KKyAgICAgICAgICAgIAorICAgICAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisgICAgCisgICAgCisgICAgCisgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgICAgPCEtLSBXcml0ZSBhIGxpc3Qgb2YgYWxsIHBhY2thZ2VzIHdpdGggYW4gaHlwZXJsaW5rIHRvIHRoZSBhbmNob3Igb2YgICAgLS0+CisgICAgPCEtLSBvZiB0aGUgcGFja2FnZSBuYW1lLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CisgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlbGlzdCI+ICAgCisgICAgICAgIDxoMj5QYWNrYWdlczwvaDI+CisgICAgICAgIE5vdGU6IHBhY2thZ2Ugc3RhdGlzdGljcyBhcmUgbm90IGNvbXB1dGVkIHJlY3Vyc2l2ZWx5LCB0aGV5IG9ubHkgc3VtIHVwIGFsbCBvZiBpdHMgdGVzdHN1aXRlcyBudW1iZXJzLgorICAgICAgICA8dGFibGUgY2xhc3M9ImRldGFpbHMiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iOTUlIj4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJ0ZXN0c3VpdGUudGVzdC5oZWFkZXIiLz4KKyAgICAgICAgICAgIDwhLS0gbGlzdCBhbGwgcGFja2FnZXMgcmVjdXJzaXZlbHkgLS0+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iLi90ZXN0c3VpdGVbbm90KC4vQHBhY2thZ2UgPSBwcmVjZWRpbmctc2libGluZzo6dGVzdHN1aXRlL0BwYWNrYWdlKV0iPgorICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgICAgICAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0ZXN0c3VpdGVzLWluLXBhY2thZ2UiIHNlbGVjdD0iL3Rlc3RzdWl0ZXMvdGVzdHN1aXRlWy4vQHBhY2thZ2UgPSBjdXJyZW50KCkvQHBhY2thZ2VdIi8+CisgICAgICAgICAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJ0ZXN0Q291bnQiIHNlbGVjdD0ic3VtKCR0ZXN0c3VpdGVzLWluLXBhY2thZ2UvQHRlc3RzKSIvPgorICAgICAgICAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZXJyb3JDb3VudCIgc2VsZWN0PSJzdW0oJHRlc3RzdWl0ZXMtaW4tcGFja2FnZS9AZXJyb3JzKSIvPgorICAgICAgICAgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iZmFpbHVyZUNvdW50IiBzZWxlY3Q9InN1bSgkdGVzdHN1aXRlcy1pbi1wYWNrYWdlL0BmYWlsdXJlcykiLz4KKyAgICAgICAgICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRpbWVDb3VudCIgc2VsZWN0PSJzdW0oJHRlc3RzdWl0ZXMtaW4tcGFja2FnZS9AdGltZSkiLz4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8IS0tIHdyaXRlIGEgc3VtbWFyeSBmb3IgdGhlIHBhY2thZ2UgLS0+CisgICAgICAgICAgICAgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgICAgICAgICAgICAgPCEtLSBzZXQgYSBuaWNlIGNvbG9yIGRlcGVuZGluZyBpZiB0aGVyZSBpcyBhbiBlcnJvci9mYWlsdXJlIC0tPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJjbGFzcyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iJGZhaWx1cmVDb3VudCAmZ3Q7IDAiPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSIkZXJyb3JDb3VudCAmZ3Q7IDAiPkVycm9yPC94c2w6d2hlbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwveHNsOmNob29zZT4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iI3tAcGFja2FnZX0iPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcGFja2FnZSIvPjwvYT48L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0ZXN0Q291bnQiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRlcnJvckNvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkZmFpbHVyZUNvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS10aW1lIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSIkdGltZUNvdW50Ii8+CisgICAgICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICA8L3RhYmxlPiAgICAgICAgCisgICAgPC94c2w6dGVtcGxhdGU+CisgICAgCisgICAgCisgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgICAgPCEtLSBXcml0ZSBhIHBhY2thZ2UgbGV2ZWwgcmVwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CisgICAgPCEtLSBJdCBjcmVhdGVzIGEgdGFibGUgd2l0aCB2YWx1ZXMgZnJvbSB0aGUgZG9jdW1lbnQ6ICAgICAgICAgICAgICAgICAgLS0+CisgICAgPCEtLSBOYW1lIHwgVGVzdHMgfCBFcnJvcnMgfCBGYWlsdXJlcyB8IFRpbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+CisgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlcyI+CisgICAgICAgIDwhLS0gY3JlYXRlIGFuIGFuY2hvciB0byB0aGlzIHBhY2thZ2UgbmFtZSAtLT4KKyAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii90ZXN0c3VpdGVzL3Rlc3RzdWl0ZVtub3QoLi9AcGFja2FnZSA9IHByZWNlZGluZy1zaWJsaW5nOjp0ZXN0c3VpdGUvQHBhY2thZ2UpXSI+CisgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgICAgICAgICAgICAgIDxhIG5hbWU9IntAcGFja2FnZX0iPjwvYT4KKyAgICAgICAgICAgICAgICA8aDM+UGFja2FnZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz48L2gzPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIi8+CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgPCEtLSBtYXRjaCB0aGUgdGVzdHN1aXRlcyBvZiB0aGlzIHBhY2thZ2UgLS0+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iL3Rlc3RzdWl0ZXMvdGVzdHN1aXRlWy4vQHBhY2thZ2UgPSBjdXJyZW50KCkvQHBhY2thZ2VdIiBtb2RlPSJwcmludC50ZXN0Ii8+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgICAgICA8YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KKyAgICAgICAgICAgICAgICA8cC8+CisgICAgICAgICAgICAgICAgPHAvPgorICAgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKyAgICAKKyAgICA8eHNsOnRlbXBsYXRlIG5hbWU9ImNsYXNzZXMiPgorICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0idGVzdHN1aXRlIj4KKyAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICA8IS0tIGNyZWF0ZSBhbiBhbmNob3IgdG8gdGhpcyBjbGFzcyBuYW1lIC0tPgorICAgICAgICAgICAgPGEgbmFtZT0ie0BuYW1lfSI+PC9hPgorICAgICAgICAgICAgPGgzPlRlc3RDYXNlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvaDM+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idGVzdGNhc2UudGVzdC5oZWFkZXIiLz4KKyAgICAgICAgICAgICAgPCEtLQorICAgICAgICAgICAgICB0ZXN0IGNhbiBldmVuIG5vdCBiZSBzdGFydGVkIGF0IGFsbCAoZmFpbHVyZSB0byBsb2FkIHRoZSBjbGFzcykKKyAgICAgICAgICAgICAgc28gcmVwb3J0IHRoZSBlcnJvciBkaXJlY3RseQorICAgICAgICAgICAgICAtLT4KKyAgICAgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9Ii4vZXJyb3IiPgorICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkVycm9yIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vZXJyb3IiLz48L3RkPgorICAgICAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi90ZXN0Y2FzZSIgbW9kZT0icHJpbnQudGVzdCIvPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9IlByb3BlcnRpZXMiPgorICAgICAgICAgICAgICAgIDxhPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj5qYXZhc2NyaXB0OmRpc3BsYXlQcm9wZXJ0aWVzKCc8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz4uPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Jyk7PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0aWVzICYjMTg3OworICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPHAvPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8YSBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KKyAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgPC94c2w6dGVtcGxhdGU+CisgICAgCisgICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJzdW1tYXJ5Ij4KKyAgICAgICAgPGgyPlN1bW1hcnk8L2gyPgorICAgICAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InRlc3RDb3VudCIgc2VsZWN0PSJzdW0odGVzdHN1aXRlL0B0ZXN0cykiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJlcnJvckNvdW50IiBzZWxlY3Q9InN1bSh0ZXN0c3VpdGUvQGVycm9ycykiLz4KKyAgICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJmYWlsdXJlQ291bnQiIHNlbGVjdD0ic3VtKHRlc3RzdWl0ZS9AZmFpbHVyZXMpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0idGltZUNvdW50IiBzZWxlY3Q9InN1bSh0ZXN0c3VpdGUvQHRpbWUpIi8+CisgICAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0ic3VjY2Vzc1JhdGUiIHNlbGVjdD0iKCR0ZXN0Q291bnQgLSAkZmFpbHVyZUNvdW50IC0gJGVycm9yQ291bnQpIGRpdiAkdGVzdENvdW50Ii8+CisgICAgICAgIDx0YWJsZSBjbGFzcz0iZGV0YWlscyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI5NSUiPgorICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHRoPlRlc3RzPC90aD4KKyAgICAgICAgICAgIDx0aD5GYWlsdXJlczwvdGg+CisgICAgICAgICAgICA8dGg+RXJyb3JzPC90aD4KKyAgICAgICAgICAgIDx0aD5TdWNjZXNzIHJhdGU8L3RoPgorICAgICAgICAgICAgPHRoPlRpbWU8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICAgICAgICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iJGZhaWx1cmVDb3VudCAmZ3Q7IDAiPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iJGVycm9yQ291bnQgJmd0OyAwIj5FcnJvcjwveHNsOndoZW4+CisgICAgICAgICAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdGVzdENvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGZhaWx1cmVDb3VudCIvPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRlcnJvckNvdW50Ii8+PC90ZD4KKyAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1wZXJjZW50Ij4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9IiRzdWNjZXNzUmF0ZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXRpbWUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iJHRpbWVDb3VudCIvPgorICAgICAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NSUiPgorICAgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeTsiPgorICAgICAgICBOb3RlOiA8aT5mYWlsdXJlczwvaT4gYXJlIGFudGljaXBhdGVkIGFuZCBjaGVja2VkIGZvciB3aXRoIGFzc2VydGlvbnMgd2hpbGUgPGk+ZXJyb3JzPC9pPiBhcmUgdW5hbnRpY2lwYXRlZC4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICA8L3hzbDp0ZW1wbGF0ZT4KKyAgICAKKyAgPCEtLQorICAgV3JpdGUgcHJvcGVydGllcyBpbnRvIGEgSmF2YVNjcmlwdCBkYXRhIHN0cnVjdHVyZS4KKyAgIFRoaXMgaXMgYmFzZWQgb24gdGhlIG9yaWdpbmFsIGlkZWEgYnkgRXJpayBIYXRjaGVyIChlaGF0Y2hlckBhcGFjaGUub3JnKQorICAgLS0+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InByb3BlcnRpZXMiPgorICAgIGN1ciA9IFRlc3RDYXNlc1snPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4uL0BwYWNrYWdlIi8+Ljx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi9AbmFtZSIvPiddID0gbmV3IEFycmF5KCk7CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9InByb3BlcnR5Ij4KKyAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICBjdXJbJzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPiddID0gJzx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJKUy1lc2NhcGUiPjx4c2w6d2l0aC1wYXJhbSBuYW1lPSJzdHJpbmciIHNlbGVjdD0iQHZhbHVlIi8+PC94c2w6Y2FsbC10ZW1wbGF0ZT4nOworICAgIDwveHNsOmZvci1lYWNoPgorICA8L3hzbDp0ZW1wbGF0ZT4KKyAgICAKKzwhLS0gUGFnZSBIRUFERVIgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiPgorICAgIDxoMT5Vbml0IFRlc3QgUmVzdWx0czwvaDE+CisgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+PC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+RGVzaWduZWQgZm9yIHVzZSB3aXRoIDxhIGhyZWY9J2h0dHA6Ly93d3cuanVuaXQub3JnJz5KVW5pdDwvYT4gYW5kIDxhIGhyZWY9J2h0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYW50Jz5BbnQ8L2E+LjwvdGQ+CisgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICAgIDxociBzaXplPSIxIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlIiBtb2RlPSJoZWFkZXIiPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0aCB3aWR0aD0iODAlIj5OYW1lPC90aD4KKyAgICAgICAgPHRoPlRlc3RzPC90aD4KKyAgICAgICAgPHRoPkVycm9yczwvdGg+CisgICAgICAgIDx0aD5GYWlsdXJlczwvdGg+CisgICAgICAgIDx0aCBub3dyYXA9Im5vd3JhcCI+VGltZShzKTwvdGg+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIGNsYXNzIGhlYWRlciAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0idGVzdHN1aXRlLnRlc3QuaGVhZGVyIj4KKyAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICA8dGggd2lkdGg9IjgwJSI+TmFtZTwvdGg+CisgICAgICAgIDx0aD5UZXN0czwvdGg+CisgICAgICAgIDx0aD5FcnJvcnM8L3RoPgorICAgICAgICA8dGg+RmFpbHVyZXM8L3RoPgorICAgICAgICA8dGggbm93cmFwPSJub3dyYXAiPlRpbWUocyk8L3RoPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBtZXRob2QgaGVhZGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJ0ZXN0Y2FzZS50ZXN0LmhlYWRlciI+CisgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPHRoPk5hbWU8L3RoPgorICAgICAgICA8dGg+U3RhdHVzPC90aD4KKyAgICAgICAgPHRoIHdpZHRoPSI4MCUiPlR5cGU8L3RoPgorICAgICAgICA8dGggbm93cmFwPSJub3dyYXAiPlRpbWUocyk8L3RoPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGNsYXNzIGluZm9ybWF0aW9uIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGVzdHN1aXRlIiBtb2RlPSJwcmludC50ZXN0Ij4KKyAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICA8IS0tIHNldCBhIG5pY2UgY29sb3IgZGVwZW5kaW5nIGlmIHRoZXJlIGlzIGFuIGVycm9yL2ZhaWx1cmUgLS0+CisgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgICAgICAgICAgIDx4c2w6Y2hvb3NlPgorICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJAZmFpbHVyZXNbLiZndDsgMF0iPkZhaWx1cmU8L3hzbDp3aGVuPgorICAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJAZXJyb3JzWy4mZ3Q7IDBdIj5FcnJvcjwveHNsOndoZW4+CisgICAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAKKyAgICAgICAgPCEtLSBwcmludCB0ZXN0c3VpdGUgaW5mb3JtYXRpb24gLS0+CisgICAgICAgIDx0ZD48YSBocmVmPSIje0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHRlc3RzIi8+PC90ZD4KKyAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAZXJyb3JzIi8+PC90ZD4KKyAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAZmFpbHVyZXMiLz48L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS10aW1lIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iQHRpbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0ZXN0Y2FzZSIgbW9kZT0icHJpbnQudGVzdCI+CisgICAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICAgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImZhaWx1cmUgfCBlcnJvciI+RXJyb3I8L3hzbDp3aGVuPgorICAgICAgICAgICAgPC94c2w6Y2hvb3NlPgorICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3RkPgorICAgICAgICA8eHNsOmNob29zZT4KKyAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJmYWlsdXJlIj4KKyAgICAgICAgICAgICAgICA8dGQ+RmFpbHVyZTwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZmFpbHVyZSIvPjwvdGQ+CisgICAgICAgICAgICA8L3hzbDp3aGVuPgorICAgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9ImVycm9yIj4KKyAgICAgICAgICAgICAgICA8dGQ+RXJyb3I8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImVycm9yIi8+PC90ZD4KKyAgICAgICAgICAgIDwveHNsOndoZW4+CisgICAgICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgICAgICA8dGQ+U3VjY2VzczwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgICAgIDwveHNsOmNob29zZT4KKyAgICAgICAgPHRkPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdGltZSI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9IkB0aW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJmYWlsdXJlIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyIvPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImVycm9yIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyIvPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gU3R5bGUgZm9yIHRoZSBlcnJvciBhbmQgZmFpbHVyZSBpbiB0aGUgdGVzY2FzZSB0ZW1wbGF0ZSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iZGlzcGxheS1mYWlsdXJlcyI+CisgICAgPHhzbDpjaG9vc2U+CisgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJub3QoQG1lc3NhZ2UpIj5OL0E8L3hzbDp3aGVuPgorICAgICAgICA8eHNsOm90aGVyd2lzZT4KKyAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbWVzc2FnZSIvPgorICAgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgPC94c2w6Y2hvb3NlPgorICAgIDwhLS0gZGlzcGxheSB0aGUgc3RhY2t0cmFjZSAtLT4KKyAgICA8Y29kZT4KKyAgICAgICAgPGJyLz48YnIvPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYnItcmVwbGFjZSI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0id29yZCIgc2VsZWN0PSIuIi8+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9jb2RlPgorICAgIDwhLS0gdGhlIGxhdGVyIGlzIGJldHRlciBidXQgbWlnaHQgYmUgcHJvYmxlbWF0aWMgZm9yIG5vbi0yMSIgbW9uaXRvcnMuLi4gLS0+CisgICAgPCEtLXByZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvcHJlLS0+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJKUy1lc2NhcGUiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0ic3RyaW5nIi8+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ0bXAxIiBzZWxlY3Q9InN0cmluZ3V0aWxzOnJlcGxhY2Uoc3RyaW5nKCRzdHJpbmcpLCdcJywnXFwnKSIvPgorICAgIDx4c2w6cGFyYW0gbmFtZT0idG1wMiIgc2VsZWN0PSJzdHJpbmd1dGlsczpyZXBsYWNlKHN0cmluZygkdG1wMSksJnF1b3Q7JyZxdW90OywmcXVvdDtcJmFwb3M7JnF1b3Q7KSIvPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdG1wMiIvPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIHRlbXBsYXRlIHRoYXQgd2lsbCBjb252ZXJ0IGEgY2FycmlhZ2UgcmV0dXJuIGludG8gYSBiciB0YWcKKyAgICBAcGFyYW0gd29yZCB0aGUgdGV4dCBmcm9tIHdoaWNoIHRvIGNvbnZlcnQgQ1IgdG8gQlIgdGFnCistLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iYnItcmVwbGFjZSI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJ3b3JkIi8+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJiciI+PGJyLz48L3hzbDpwYXJhbT4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0nc3RyaW5ndXRpbHM6cmVwbGFjZShzdHJpbmcoJHdvcmQpLCImI3hBOyIsJGJyKScvPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbmFtZT0iZGlzcGxheS10aW1lIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InZhbHVlIi8+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImZvcm1hdC1udW1iZXIoJHZhbHVlLCcwLjAwMCcpIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXBlcmNlbnQiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0idmFsdWUiLz4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZm9ybWF0LW51bWJlcigkdmFsdWUsJzAuMDAlJykiLz4KKzwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgorCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvbG9nLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9sb2cueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyNzI3OTAKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvbG9nLnhzbApAQCAtMCwwICsxLDIxMCBAQAorPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIiB2ZXJzaW9uPSIxLjAiPgorPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVTLUFTQ0lJIi8+Cis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAwLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICAKKyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICAKKy0tPgorIAorPCEtLQorCisgIFRoZSBwdXJwb3NlIGhhdmUgdGhpcyBYU0wgaXMgdG8gcHJvdmlkZSBhIG5pY2Ugd2F5IHRvIGxvb2sgYXQgdGhlIG91dHB1dAorICBmcm9tIHRoZSBBbnQgWG1sTG9nZ2VyIChpZTogYW50IC1saXN0ZW5lciBvcmcuYXBhY2hlLnRvb2xzLmFudC5YbWxMb2dnZXIgKQorICAKKyAgQGF1dGhvciA8YSBocmVmPSJtYWlsdG86c2JhaWxsaWV6QGFwYWNoZS5vcmciPlN0ZXBoYW5lIEJhaWxsaWV6PC9hPgorICAKKy0tPgorPHhzbDpkZWNpbWFsLWZvcm1hdCBkZWNpbWFsLXNlcGFyYXRvcj0iLiIgZ3JvdXBpbmctc2VwYXJhdG9yPSIsIiAvPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgIC5iYW5uZXJjZWxsIHsKKyAgICAgIGJvcmRlcjogMHB4OworICAgICAgcGFkZGluZzogMHB4OworICAgIH0KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogMDsKKyAgICAgIGZvbnQ6bm9ybWFsIDEwMCUgYXJpYWwsaGVsdmV0aWNhLHNhbnNlcmlmOworICAgICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOworICAgICAgY29sb3I6IzAwMDAwMDsKKyAgICB9CisgICAgdGFibGUuc3RhdHVzIHsKKyAgICAgIGZvbnQ6Ym9sZCA4MCUgYXJpYWwsaGVsdmV0aWNhLHNhbnNlcmlmOworICAgICAgYmFja2dyb3VuZC1jb2xvcjojNTI1RDc2OworICAgICAgY29sb3I6I2ZmZmZmZjsKKyAgICB9CisgICAgdGFibGUubG9nIHRyIHRkLCB0ciB0aCB7CisgICAgICBmb250LXNpemU6IDgwJTsKKyAgICB9CisgICAgLmVycm9yIHsKKyAgICAgIGNvbG9yOnJlZDsKKyAgICB9CisgICAgLndhcm4geworICAgICAgY29sb3I6YnJvd247CisgICAgfQorICAgIC5pbmZvIHsKKyAgICAgIGNvbG9yOmdyYXk7CisgICAgfQorICAgIC5kZWJ1Z3sKKyAgICAgIGNvbG9yOmdyYXk7CisgICAgfQorICAgIC5mYWlsZWQgeworICAgICAgZm9udC1zaXplOjgwJTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIGNvbG9yOiNGRkZGRkY7CisgICAgICBmb250LXdlaWdodDogYm9sZAorICAgIH0KKyAgICAuY29tcGxldGUgeworICAgICAgZm9udC1zaXplOjgwJTsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1MjVENzY7CisgICAgICBjb2xvcjojRkZGRkZGOworICAgICAgZm9udC13ZWlnaHQ6IGJvbGQKKyAgICB9CisgICAgLmEgdGQgeyAKKyAgICAgIGJhY2tncm91bmQ6ICNlZmVmZWY7CisgICAgfQorICAgIC5iIHRkIHsgCisgICAgICBiYWNrZ3JvdW5kOiAjZmZmOworICAgIH0KKyAgICB0aCwgdGQgeworICAgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIHRoIHsKKyAgICAgIGJhY2tncm91bmQ6ICNjY2M7CisgICAgICBjb2xvcjogYmxhY2s7CisgICAgfQorICAgIHRhYmxlLCB0aCwgdGQgeworICAgICAgYm9yZGVyOiBub25lCisgICAgfQorICAgIGgzIHsKKyAgICAgIGZvbnQ6Ym9sZCA4MCUgYXJpYWwsaGVsdmV0aWNhLHNhbnNlcmlmOworICAgICAgYmFja2dyb3VuZDogIzUyNUQ3NjsKKyAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgIG1hcmdpbi1yaWdodDogMnB4OworICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDA7CisgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPCEtLSBqYWthcnRhIGxvZ28gLS0+CisgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSI+CisgICAgPHRyPgorICAgICAgPHRkIHZhbGlnbj0idG9wIiBjbGFzcz0iYmFubmVyY2VsbCI+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvIj4KKyAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvaW1hZ2VzL2pha2FydGEtbG9nby5naWYiIGFsdD0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZyIgYWxpZ249ImxlZnQiIGJvcmRlcj0iMCIvPgorICAgICAgICA8L2E+CisgICAgICA8L3RkPgorICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOmJvdHRvbSI+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYW50Ij5BcGFjaGUgQW50PC9hPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgICAKKyAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisgICAgPHRyPjx0ZD48aHIgbm9zaGFkZT0ieWVzIiBzaXplPSIxIi8+PC90ZD48L3RyPgorICAgIDwvdGFibGU+CisKKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImJ1aWxkIi8+CisKKyAgICA8IS0tIEZPT1RFUiAtLT4KKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyPjx0ZD48aHIgbm9zaGFkZT0ieWVzIiBzaXplPSIxIi8+PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD4KKyAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiM1MjVENzYiIHNpemU9Ii0xIj48ZW0+CisgICAgICBDb3B5cmlnaHQgJiMxNjk7IDIwMDAtMjAwMiwgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgICAgIDwvZW0+PC9mb250PjwvZGl2PgorICAgICAgPC90ZD48L3RyPgorICAgIDwvdGFibGU+CisgIDwvYm9keT4KKzwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJidWlsZCI+CisgIDwhLS0gYnVpbGQgc3RhdHVzIC0tPgorICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgICAgIDx4c2w6aWYgdGVzdD0iQGVycm9yIj5mYWlsZWQ8L3hzbDppZj4KKyAgICAgIDx4c2w6aWYgdGVzdD0ibm90KEBlcnJvcikiPmNvbXBsZXRlPC94c2w6aWY+CisgICAgPC94c2w6YXR0cmlidXRlPgorICAgIDx0cj4KKyAgICAgIDx4c2w6aWYgdGVzdD0iQGVycm9yIj4KKyAgICAgICAgPHRkIG5vd3JhcD0ieWVzIj5CdWlsZCBGYWlsZWQ8L3RkPiAKKyAgICAgIDwveHNsOmlmPgorICAgICAgPHhzbDppZiB0ZXN0PSJub3QoQGVycm9yKSI+CisgICAgICAgIDx0ZCBub3dyYXA9InllcyI+QnVpbGQgQ29tcGxldGU8L3RkPgorICAgICAgPC94c2w6aWY+CisgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCIgbm93cmFwPSJ5ZXMiPlRvdGFsIFRpbWU6IDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdGltZSIvPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgY29sc3Bhbj0iMiI+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iQGVycm9yIj4KKyAgICAgICAgICA8dHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBlcnJvciIvPjwvdHQ+PGJyLz4KKyAgICAgICAgICA8aSBzdHlsZT0iZm9udC1zaXplOjgwJSI+U2VlIHRoZSA8YSBocmVmPSIjc3RhY2t0cmFjZSIgYWx0PSJDbGljayBmb3IgZGV0YWlscyI+c3RhY2t0cmFjZTwvYT4uPC9pPgorICAgICAgICA8L3hzbDppZj4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHNwYWNpbmc9IjIiIGNlbGxwYWRkaW5nPSIzIiB3aWR0aD0iMTAwJSIgc3R5bGU9ImZvbnQtc2l6ZTo4MCUiPgorICAgIDx0ciBjbGFzcz0iYSI+PHRkIHdpZHRoPSIxIj5hbnQuZmlsZTwvdGQ+PHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoLy9tZXNzYWdlW2NvbnRhaW5zKHRleHQoKSwnYW50LmZpbGUnKV0sICctPicpIi8+PC90ZD48L3RyPgorICAgIDx0ciBjbGFzcz0iYiI+PHRkIHdpZHRoPSIxIj5hbnQudmVyc2lvbjwvdGQ+PHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdWJzdHJpbmctYWZ0ZXIoLy9tZXNzYWdlW2NvbnRhaW5zKHRleHQoKSwnYW50LnZlcnNpb24nKV0sICctPicpIi8+PC90ZD48L3RyPgorICAgIDx0ciBjbGFzcz0iYSI+PHRkIHdpZHRoPSIxIj5qYXZhLnZlcnNpb248L3RkPjx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKC8vbWVzc2FnZVtjb250YWlucyh0ZXh0KCksJ2phdmEudm0udmVyc2lvbicpXSwgJy0+JykiLz48L3RkPjwvdHI+CisgICAgPHRyIGNsYXNzPSJiIj48dGQgd2lkdGg9IjEiPm9zLm5hbWU8L3RkPjx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nLWFmdGVyKC8vbWVzc2FnZVtjb250YWlucyh0ZXh0KCksJ29zLm5hbWUnKV0sICctPicpIi8+PC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8IS0tIGJ1aWxkIGluZm9ybWF0aW9uIC0tPgorICA8aDM+QnVpbGQgZXZlbnRzPC9oMz4KKyAgPHRhYmxlIGNsYXNzPSJsb2ciIGJvcmRlcj0iMSIgY2VsbHNwYWNpbmc9IjIiIGNlbGxwYWRkaW5nPSIzIiB3aWR0aD0iMTAwJSI+CisgIDx0cj4KKyAgICA8dGggbm93cmFwPSJ5ZXMiIGFsaWduPSJsZWZ0IiB3aWR0aD0iMSUiPnRhcmdldDwvdGg+CisgICAgPHRoIG5vd3JhcD0ieWVzIiBhbGlnbj0ibGVmdCIgd2lkdGg9IjElIj50YXNrPC90aD4KKyAgICA8dGggbm93cmFwPSJ5ZXMiIGFsaWduPSJsZWZ0Ij5tZXNzYWdlPC90aD4KKyAgPC90cj4KKyAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuLy9tZXNzYWdlW0Bwcmlvcml0eSAhPSAnZGVidWcnXSIvPgorICA8L3RhYmxlPgorICA8cD4KKyAgPCEtLSBzdGFja3RyYWNlIC0tPgorICA8eHNsOmlmIHRlc3Q9InN0YWNrdHJhY2UiPgorICA8YSBuYW1lPSJzdGFja3RyYWNlIi8+CisgIDxoMz5FcnJvciBkZXRhaWxzPC9oMz4KKyAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICA8dHI+PHRkPgorICAgICAgPHByZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3RhY2t0cmFjZSIvPjwvcHJlPgorICAgIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC94c2w6aWY+CisgIDwvcD4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIHJlcG9ydCBldmVyeSBtZXNzYWdlIGJ1dCB0aG9zZSB3aXRoIGRlYnVnIHByaW9yaXR5IC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibWVzc2FnZVtAcHJpb3JpdHkhPSdkZWJ1ZyddIj4KKyAgPHRyIHZhbGlnbj0idG9wIj4KKyAgICA8IS0tIGFsdGVybmF0ZWQgcm93IHN0eWxlIC0tPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDEiPmE8L3hzbDppZj4KKyAgICAgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDAiPmI8L3hzbDppZj4KKyAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgPHRkIG5vd3JhcD0ieWVzIiB3aWR0aD0iMSUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi8uLi9AbmFtZSIvPjwvdGQ+CisgICAgPHRkIG5vd3JhcD0ieWVzIiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCIgd2lkdGg9IjElIj5bIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuLi9AbmFtZSIvPiBdPC90ZD4KKyAgICA8dGQgY2xhc3M9IntAcHJpb3JpdHl9IiBub3dyYXA9InllcyI+CisgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0idGV4dCgpIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL21hdWRpdC1mcmFtZXMueHNsIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL21hdWRpdC1mcmFtZXMueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVhYWYxODAKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvbWF1ZGl0LWZyYW1lcy54c2wKQEAgLTAsMCArMSw1MTAgQEAKKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIgorICAgIHhtbG5zOmx4c2x0PSJodHRwOi8veG1sLmFwYWNoZS5vcmcveHNsdCIKKyAgICB4bWxuczpyZWRpcmVjdD0ib3JnLmFwYWNoZS54YWxhbi5saWIuUmVkaXJlY3QiCisgICAgZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9InJlZGlyZWN0Ij4KKzx4c2w6b3V0cHV0IG1ldGhvZD0iaHRtbCIgaW5kZW50PSJ5ZXMiIGVuY29kaW5nPSJVUy1BU0NJSSIvPgorPHhzbDpkZWNpbWFsLWZvcm1hdCBkZWNpbWFsLXNlcGFyYXRvcj0iLiIgZ3JvdXBpbmctc2VwYXJhdG9yPSIsIiAvPgorPCEtLQorICAgIENvcHlyaWdodCAgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorICAgCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAgCisgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICAgCistLT4KKzwhLS0KKworICAgIFN0eWxlc2hlZXQgdG8gdHJhbnNmb3JtIGFuIFhNTCBmaWxlIGdlbmVyYXRlZCBieSB0aGUgQW50IE1BdWRpdCB0YXNrIGludG8KKyAgICBhIHNldCBvZiBKYXZhRG9jLWxpa2UgSFRNTCBwYWdlIHRvIG1ha2UgcGFnZXMgbW9yZSBjb252ZW5pZW50IHRvIGJlIGJyb3dzZWQuCisKKyAgICBJdCB1c2UgdGhlIFhhbGFuIHJlZGlyZWN0IGV4dGVuc2lvbiB0byB3cml0ZSB0byBtdWx0aXBsZSBvdXRwdXQgZmlsZXMuCisKKyAgICBAYXV0aG9yIFN0ZXBoYW5lIEJhaWxsaWV6IDxhIGhyZWY9Im1haWx0bzpzYmFpbGxpZXpAYXBhY2hlLm9yZyIvPgorLS0+CisKKzx4c2w6cGFyYW0gbmFtZT0ib3V0cHV0LmRpciIgc2VsZWN0PSInLiciLz4KKworCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJjbGFzc2VzIj4KKyAgICA8IS0tIGNyZWF0ZSB0aGUgaW5kZXguaHRtbCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9pbmRleC5odG1sIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImluZGV4Lmh0bWwiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIHN0eWxlc2hlZXQuY3NzIC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3N0eWxlc2hlZXQuY3NzIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InN0eWxlc2hlZXQuY3NzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gY3JlYXRlIHRoZSBvdmVydmlldy1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBjcmVhdGUgdGhlIGFsbC1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L292ZXJ2aWV3LWZyYW1lLmh0bWwiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImFsbC5wYWNrYWdlcyIvPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSB0aGUgYWxsLWNsYXNzZXMuaHRtbCBhdCB0aGUgcm9vdCAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9hbGxjbGFzc2VzLWZyYW1lLmh0bWwiPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImFsbC5jbGFzc2VzIi8+CisgICAgPC9yZWRpcmVjdDp3cml0ZT4KKworICAgIDwhLS0gcHJvY2VzcyBhbGwgcGFja2FnZXMgLS0+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vY2xhc3Nbbm90KC4vQHBhY2thZ2UgPSBwcmVjZWRpbmctc2libGluZzo6Y2xhc3MvQHBhY2thZ2UpXSI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlIj4KKyAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJuYW1lIiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC94c2w6Zm9yLWVhY2g+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG5hbWU9InBhY2thZ2UiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0ibmFtZSIvPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5kaXIiPgorICAgICAgICA8eHNsOmlmIHRlc3Q9Im5vdCgkbmFtZSA9ICcnKSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRyYW5zbGF0ZSgkbmFtZSwnLicsJy8nKSIvPjwveHNsOmlmPgorICAgICAgICA8eHNsOmlmIHRlc3Q9IiRuYW1lID0gJyciPi48L3hzbDppZj4KKyAgICA8L3hzbDp2YXJpYWJsZT4KKyAgICA8IS0tUHJvY2Vzc2luZyBwYWNrYWdlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPiBpbiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG91dHB1dC5kaXIiLz4gLS0+CisgICAgPCEtLSBjcmVhdGUgYSBjbGFzc2VzLWxpc3QuaHRtbCBpbiB0aGUgcGFja2FnZSBkaXJlY3RvcnkgLS0+CisgICAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0veyRwYWNrYWdlLmRpcn0vcGFja2FnZS1mcmFtZS5odG1sIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNsYXNzZXMubGlzdCI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibmFtZSIgc2VsZWN0PSIkbmFtZSIvPgorICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgICA8IS0tIGNyZWF0ZSBhIHBhY2thZ2Utc3VtbWFyeS5odG1sIGluIHRoZSBwYWNrYWdlIGRpcmVjdG9yeSAtLT4KKyAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlLnN1bW1hcnkiPgorICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im5hbWUiIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorCisgICAgPCEtLSBmb3IgZWFjaCBjbGFzcywgY3JlYXRlcyBhIEBuYW1lLmh0bWwgLS0+CisgICAgPCEtLSBAYnVnIHRoZXJlIHdpbGwgYmUgYSBwcm9ibGVtIHdpdGggaW5uZXIgY2xhc3NlcyBoYXZpbmcgdGhlIHNhbWUgbmFtZSwgaXQgd2lsbCBiZSBvdmVyd3JpdHRlbiAtLT4KKyAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iL2NsYXNzZXMvY2xhc3NbQHBhY2thZ2UgPSAkbmFtZV0iPgorICAgICAgICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS97QG5hbWV9Lmh0bWwiPgorICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJjbGFzcy5kZXRhaWxzIi8+CisgICAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+CisgICAgPC94c2w6Zm9yLWVhY2g+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJpbmRleC5odG1sIj4KKzxIVE1MPgorICAgIDxIRUFEPjxUSVRMRT5BdWRpdCBSZXN1bHRzLjwvVElUTEU+PC9IRUFEPgorICAgIDxGUkFNRVNFVCBjb2xzPSIyMCUsODAlIj4KKyAgICAgICAgPEZSQU1FU0VUIHJvd3M9IjMwJSw3MCUiPgorICAgICAgICAgICAgPEZSQU1FIHNyYz0ib3ZlcnZpZXctZnJhbWUuaHRtbCIgbmFtZT0icGFja2FnZUxpc3RGcmFtZSIvPgorICAgICAgICAgICAgPEZSQU1FIHNyYz0iYWxsY2xhc3Nlcy1mcmFtZS5odG1sIiBuYW1lPSJjbGFzc0xpc3RGcmFtZSIvPgorICAgICAgICA8L0ZSQU1FU0VUPgorICAgICAgICA8RlJBTUUgc3JjPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIG5hbWU9ImNsYXNzRnJhbWUiLz4KKyAgICA8L0ZSQU1FU0VUPgorICAgIDxub2ZyYW1lcz4KKyAgICAgICAgPEgyPkZyYW1lIEFsZXJ0PC9IMj4KKyAgICAgICAgPFA+CisgICAgICAgIFRoaXMgZG9jdW1lbnQgaXMgZGVzaWduZWQgdG8gYmUgdmlld2VkIHVzaW5nIHRoZSBmcmFtZXMgZmVhdHVyZS4gSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UsIHlvdSBhcmUgdXNpbmcgYSBub24tZnJhbWUtY2FwYWJsZSB3ZWIgY2xpZW50LgorICAgICAgICA8L1A+CisgICAgPC9ub2ZyYW1lcz4KKzwvSFRNTD4KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0gdGhpcyBpcyB0aGUgc3R5bGVzaGVldCBjc3MgdG8gdXNlIGZvciBuZWFybHkgZXZlcnl0aGluZyAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiPgorICAgIC5iYW5uZXJjZWxsIHsKKyAgICAgIGJvcmRlcjogMHB4OworICAgICAgcGFkZGluZzogMHB4OworICAgIH0KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbi1sZWZ0OiAxMDsKKyAgICAgIG1hcmdpbi1yaWdodDogMTA7CisgICAgICBmb250Om5vcm1hbCA4MCUgYXJpYWwsaGVsdmV0aWNhLHNhbnNlcmlmOworICAgICAgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOworICAgICAgY29sb3I6IzAwMDAwMDsKKyAgICB9CisgICAgLmEgdGQgeworICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjsKKyAgICB9CisgICAgLmIgdGQgeworICAgICAgYmFja2dyb3VuZDogI2ZmZjsKKyAgICB9CisgICAgdGgsIHRkIHsKKyAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICB0aCB7CisgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgYmFja2dyb3VuZDogI2NjYzsKKyAgICAgIGNvbG9yOiBibGFjazsKKyAgICB9CisgICAgdGFibGUsIHRoLCB0ZCB7CisgICAgICBmb250LXNpemU6MTAwJTsKKyAgICAgIGJvcmRlcjogbm9uZQorICAgIH0KKyAgICB0YWJsZS5sb2cgdHIgdGQsIHRyIHRoIHsKKworICAgIH0KKyAgICBoMiB7CisgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgZm9udC1zaXplOjE0MCU7CisgICAgICBtYXJnaW4tYm90dG9tOiA1OworICAgIH0KKyAgICBoMyB7CisgICAgICBmb250LXNpemU6MTAwJTsKKyAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7CisgICAgICBiYWNrZ3JvdW5kOiAjNTI1RDc2OworICAgICAgY29sb3I6IHdoaXRlOworICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgICAgcGFkZGluZzogNXB4OworICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7CisgICAgICBtYXJnaW4tbGVmdDogMnB4OworICAgICAgbWFyZ2luLWJvdHRvbTogMDsKKyAgICB9Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIHByaW50IHRoZSB2aW9sYXRpb25zIG9mIHRoZSBjbGFzcyAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzIiBtb2RlPSJjbGFzcy5kZXRhaWxzIj4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgIDxIVE1MPgorICAgICAgICA8SEVBRD4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IiRwYWNrYWdlLm5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvSEVBRD4KKyAgICAgICAgPEJPRFk+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciIvPgorICAgICAgICAgICAgPEgzPkNsYXNzIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAnJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+LjwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvSDM+CisKKyAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjbGFzcy5hdWRpdC5oZWFkZXIiLz4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InByaW50LmF1ZGl0Ii8+CisgICAgICAgICAgICA8L3RhYmxlPgorCisgICAgICAgICAgICA8SDM+VmlvbGF0aW9uczwvSDM+CisgICAgICAgICAgICA8dGFibGUgY2xhc3M9ImxvZyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0idmlvbGF0aW9uLmF1ZGl0LmhlYWRlciIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi92aW9sYXRpb24iIG1vZGU9InByaW50LmF1ZGl0Ij4KKyAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IGRhdGEtdHlwZT0ibnVtYmVyIiBzZWxlY3Q9IkBsaW5lIi8+CisgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIi8+CisgICAgICAgIDwvQk9EWT4KKyAgICA8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGxpc3Qgb2YgY2xhc3NlcyBpbiBhIHBhY2thZ2UgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImNsYXNzZXMubGlzdCI+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJuYW1lIi8+CisgICAgPEhUTUw+CisgICAgICAgIDxIRUFEPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICAgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iJG5hbWUiLz4KKyAgICAgICAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgICAgIDwvSEVBRD4KKyAgICAgICAgPEJPRFk+CisgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxIMj48YSBocmVmPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG5hbWUiLz48L2E+PC9IMj4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKworICAgICAgICAgICAgPGgyPkNsYXNzZXM8L2gyPgorICAgICAgICAgICAgPFRBQkxFIFdJRFRIPSIxMDAlIj4KKyAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii9jbGFzc2VzL2NsYXNzWy4vQHBhY2thZ2UgPSAkbmFtZV0iIG1vZGU9ImNsYXNzZXMubGlzdCI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgPC9UQUJMRT4KKyAgICAgICAgPC9CT0RZPgorICAgIDwvSFRNTD4KKzwveHNsOnRlbXBsYXRlPgorPCEtLSB0aGUgY2xhc3MgdG8gbGlzdCAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzIiBtb2RlPSJjbGFzc2VzLmxpc3QiPgorICAgIDx0cj4KKyAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgIDwhLS0gQGJ1ZyBuYW1pbmcgdG8gZml4IGZvciBpbm5lciBjbGFzc2VzIC0tPgorICAgICAgICAgICAgPGEgaHJlZj0ie0BuYW1lfS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICAgIENyZWF0ZXMgYW4gYWxsLWNsYXNzZXMuaHRtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaW5rIHRvIGFsbCBwYWNrYWdlLXN1bW1hcnkuaHRtbAorICAgIG9uIGVhY2ggY2xhc3MuCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzZXMiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgIDxoMj5DbGFzc2VzPC9oMj4KKyAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuLy9jbGFzcyIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvYm9keT4KKyAgICA8L2h0bWw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2xhc3MiIG1vZGU9ImFsbC5jbGFzc2VzIj4KKyAgICA8IS0tIChhbmNlc3Rvcjo6cGFja2FnZSlbbGFzdCgpXSBpcyBidWdneSBpbiBNU1hNTDMgPyAtLT4KKyAgICA8eHNsOnZhcmlhYmxlIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSJAcGFja2FnZSIvPgorICAgIDx0cj4KKyAgICAgICAgPHRkIG5vd3JhcD0ibm93cmFwIj4KKyAgICAgICAgICAgIDxhIHRhcmdldD0iY2xhc3NGcmFtZSI+CisgICAgICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWU9JycpIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0cmFuc2xhdGUoJHBhY2thZ2UubmFtZSwnLicsJy8nKSIvPjx4c2w6dGV4dD4vPC94c2w6dGV4dD4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6aWY+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PHhzbDp0ZXh0Pi5odG1sPC94c2w6dGV4dD4KKyAgICAgICAgICAgICAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgICA8L2E+CisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCisKKzwhLS0KKyAgICBDcmVhdGVzIGFuIGh0bWwgZmlsZSB0aGF0IGNvbnRhaW5zIGEgbGluayB0byBhbGwgcGFja2FnZS1zdW1tYXJ5Lmh0bWwgZmlsZXMgb24KKyAgICBlYWNoIHBhY2thZ2UgZXhpc3Rpbmcgb24gdGVzdHN1aXRlcy4KKyAgICBAYnVnIHRoZXJlIHdpbGwgYmUgYSBwcm9ibGVtIGhlcmUsIEkgZG9uJ3Qga25vdyB5ZXQgaG93IHRvIGhhbmRsZSB1bm5hbWVkIHBhY2thZ2UgOigKKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2xhc3NlcyIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgICA8aHRtbD4KKyAgICAgICAgPGhlYWQ+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgICAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIvPgorICAgICAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICAgICAgPC9oZWFkPgorICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgIDxoMj48YSBocmVmPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+SG9tZTwvYT48L2gyPgorICAgICAgICAgICAgPGgyPlBhY2thZ2VzPC9oMj4KKyAgICAgICAgICAgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNsYXNzW25vdCguL0BwYWNrYWdlID0gcHJlY2VkaW5nLXNpYmxpbmc6OmNsYXNzL0BwYWNrYWdlKV0iIG1vZGU9ImFsbC5wYWNrYWdlcyI+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAcGFja2FnZSIgb3JkZXI9ImFzY2VuZGluZyIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+CisgICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9ib2R5PgorICAgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJjbGFzcyIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICA8YSBocmVmPSJ7dHJhbnNsYXRlKEBwYWNrYWdlLCcuJywnLycpfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj4KKyAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz4KKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY2xhc3NlcyIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiPgorICAgIDxodG1sPgorICAgICAgICA8aGVhZD4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L2hlYWQ+CisgICAgICAgIDxib2R5IG9ubG9hZD0ib3BlbignYWxsY2xhc3Nlcy1mcmFtZS5odG1sJywnY2xhc3NMaXN0RnJhbWUnKSI+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgICAgIDxoMz5TdW1tYXJ5PC9oMz4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aD5BdWRpdGVkIGNsYXNzZXM8L3RoPgorICAgICAgICAgICAgPHRoPlJlcG9ydGVkIGNsYXNzZXM8L3RoPgorICAgICAgICAgICAgPHRoPlZpb2xhdGlvbnM8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHIgY2xhc3M9ImEiPgorICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAYXVkaXRlZCIvPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkByZXBvcnRlZCIvPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2aW9sYXRpb25zIi8+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICAgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeTsiPgorICAgICAgICBOb3RlOiBSdWxlcyBjaGVja2VkIGhhdmUgb3JpZ2luYXRlZCBmcm9tIHN0eWxlIGd1aWRlbGluZXMgc3VnZ2VzdGVkIGJ5IHRoZSBsYW5ndWFnZSBkZXNpZ25lcnMsCisgICAgICAgIGV4cGVyaWVuY2UgZnJvbSB0aGUgSmF2YSBkZXZlbG9wbWVudCBjb21tdW5pdHkgYW5kIGluc2l0ZSBleHBlcmllbmNlLiBWaW9sYXRpb25zIGFyZSBnZW5lcmFsbHkKKyAgICAgICAgcmVwb3J0ZWQgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL2pscy9zZWNvbmRfZWRpdGlvbi9odG1sL2pUT0MuZG9jLmh0bWwiPkphdmEgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbnM8L2E+IChKTFMgeC54LngpCisgICAgICAgIGFuZCBNZXRhbWF0YSBBdWRpdCBydWxlcyAoeC54KS4KKyAgICAgICAgUGxlYXNlIGNvbnN1bHQgdGhlc2UgZG9jdW1lbnRzIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHZpb2xhdGlvbnMuCisgICAgICAgIDxwLz4KKyAgICAgICAgUnVsZXMgY2hlY2tlZCBhbHNvIGVuZm9yY2UgYWRoZXJlbmNlIHRvIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9jb2RlY29udi9odG1sL0NvZGVDb252VE9DLmRvYy5odG1sIj5TdW4gSmF2YSBjb2RpbmcgZ3VpZGVsaW5lczwvYT4gaW4gdXNlIGF0IEpha2FydGEuCisgICAgICAgIDxwLz4KKyAgICAgICAgT25lIHNob3VsZCBub3RlIHRoYXQgdGhlc2UgdmlvbGF0aW9ucyBkbyBub3QgbmVjZXNzYXJ5IHVuZGVybGluZSBlcnJvcnMgYnV0IHNob3VsZCBiZSB1c2VkCisgICAgICAgIGFzIGFuIGluZGljYXRpb24gZm9yIDxpPnBvc3NpYmxlPC9pPiBlcnJvcnMuIEFzIGFsd2F5cywgdXNlIHlvdXIgYmVzdCBqdWRnbWVudCBhbmQgcmV2aWV3CisgICAgICAgIHRoZW0gY2FyZWZ1bGx5LCBpdCBtaWdodCBzYXZlIHlvdSBob3VycyBvZiBkZWJ1Z2dpbmcuCisgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisKKyAgICAgICAgPGgzPlBhY2thZ2VzPC9oMz4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY2xhc3MuYXVkaXQuaGVhZGVyIi8+CisgICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iY2xhc3Nbbm90KC4vQHBhY2thZ2UgPSBwcmVjZWRpbmctc2libGluZzo6Y2xhc3MvQHBhY2thZ2UpXSI+CisgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQHBhY2thZ2UiIG9yZGVyPSJhc2NlbmRpbmciLz4KKyAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZS1yb3ciLz4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9Int0cmFuc2xhdGUoQHBhY2thZ2UsJy4nLCcvJyl9L3BhY2thZ2Utc3VtbWFyeS5odG1sIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz48L2E+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW0oL2NsYXNzZXMvY2xhc3NbLi9AcGFja2FnZSA9IGN1cnJlbnQoKS9AcGFja2FnZV0vQHZpb2xhdGlvbnMpIi8+PC90ZD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIi8+CisgICAgICAgIDwvYm9keT4KKyAgICAgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKworPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWNrYWdlLnN1bW1hcnkiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0ibmFtZSIvPgorICAgIDxIVE1MPgorICAgICAgICA8SEVBRD4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IiRuYW1lIi8+CisgICAgICAgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L0hFQUQ+CisgICAgICAgIDxCT0RZPgorICAgICAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0ib25sb2FkIj5vcGVuKCdwYWNrYWdlLWZyYW1lLmh0bWwnLCdjbGFzc0xpc3RGcmFtZScpPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKyAgICAgICAgICAgIDxoMz5QYWNrYWdlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbmFtZSIvPjwvaDM+CisKKyAgICAgICAgICAgIDwhLS10YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjbGFzcy5tZXRyaWNzLmhlYWRlciIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0icHJpbnQubWV0cmljcyIvPgorICAgICAgICAgICAgPC90YWJsZS0tPgorCisgICAgICAgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KC9jbGFzc2VzL2NsYXNzWy4vQHBhY2thZ2UgPSAkbmFtZV0pICZndDsgMCI+CisgICAgICAgICAgICAgICAgPEgzPkNsYXNzZXM8L0gzPgorICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY2xhc3MuYXVkaXQuaGVhZGVyIi8+CisgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iL2NsYXNzZXMvY2xhc3NbLi9AcGFja2FnZSA9ICRuYW1lXSIgbW9kZT0icHJpbnQuYXVkaXQiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICA8L3hzbDppZj4KKyAgICAgICAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIi8+CisgICAgICAgIDwvQk9EWT4KKyAgICA8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCisgICAgdHJhbnNmb3JtIHN0cmluZyBsaWtlIGEuYi5jIHRvIC4uLy4uLy4uLworICAgIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRyYW5zZm9ybSBpbnRvIGEgZGVzY2VuZGluZyBkaXJlY3RvcnkgcGF0aAorLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhdGgiPgorICAgIDx4c2w6cGFyYW0gbmFtZT0icGF0aCIvPgorICAgIDx4c2w6aWYgdGVzdD0iY29udGFpbnMoJHBhdGgsJy4nKSI+CisgICAgICAgIDx4c2w6dGV4dD4uLi88L3hzbDp0ZXh0PgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGF0aCI+CisgICAgICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcigkcGF0aCwnLicpIi8+PC94c2w6d2l0aC1wYXJhbT4KKyAgICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L3hzbDppZj4KKyAgICA8eHNsOmlmIHRlc3Q9Im5vdChjb250YWlucygkcGF0aCwnLicpKSBhbmQgbm90KCRwYXRoID0gJycpIj4KKyAgICAgICAgPHhzbDp0ZXh0Pi4uLzwveHNsOnRleHQ+CisgICAgPC94c2w6aWY+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGNyZWF0ZSB0aGUgbGluayB0byB0aGUgc3R5bGVzaGVldCBiYXNlZCBvbiB0aGUgcGFja2FnZSBuYW1lIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIvPgorICAgIDxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iU3R5bGUiPjx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPjx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAndW5uYW1lZCBwYWNrYWdlJykiPjx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYXRoIj48eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCIgc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+PC94c2w6Y2FsbC10ZW1wbGF0ZT48L3hzbDppZj5zdHlsZXNoZWV0LmNzczwveHNsOmF0dHJpYnV0ZT48L0xJTks+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBQYWdlIEhFQURFUiAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0icGFnZUhlYWRlciI+CisKKyAgPCEtLSBqYWthcnRhIGxvZ28gLS0+CisgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjEwMCUiPgorICA8dHI+CisgICAgPHRkIGNsYXNzPSJiYW5uZXJjZWxsIiByb3dzcGFuPSIyIj4KKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvIj4KKyAgICAgIDxpbWcgc3JjPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2ltYWdlcy9qYWthcnRhLWxvZ28uZ2lmIiBhbHQ9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmciIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiLz4KKyAgICAgIDwvYT4KKyAgICA8L3RkPgorICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxoMj5Tb3VyY2UgQ29kZSBBdWRpdDwvaDI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPkRlc2lnbmVkIGZvciB1c2Ugd2l0aCA8YSBocmVmPSdodHRwOi8vd3d3LndlYmdhaW4uY29tL3Byb2R1Y3RzL3F1YWxpdHlfYW5hbHl6ZXIvJz5XZWJnYWluIFFBL01ldGFtYXRhIEF1ZGl0PC9hPiBhbmQgPGEgaHJlZj0naHR0cDovL2pha2FydGEuYXBhY2hlLm9yZyc+QW50PC9hPi48L3RkPgorICAgICAgICA8L3RyPgorICA8L3RhYmxlPgorICAgIDxociBzaXplPSIxIi8+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBQYWdlIEhFQURFUiAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0icGFnZUZvb3RlciI+CisgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgIDx0cj48dGQ+PGhyIG5vc2hhZGU9InllcyIgc2l6ZT0iMSIvPjwvdGQ+PC90cj4KKyAgICAgIDx0cj48dGQ+CisgICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IGNvbG9yPSIjNTI1RDc2IiBzaXplPSItMSI+PGVtPgorICAgICAgQ29weXJpZ2h0ICYjMTY5OyAxOTk5LTIwMDEsIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAgICA8L2VtPjwvZm9udD48L2Rpdj4KKyAgICAgIDwvdGQ+PC90cj4KKyAgICA8L3RhYmxlPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjbGFzcyBoZWFkZXIgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImNsYXNzLmF1ZGl0LmhlYWRlciI+CisgICAgPHRyPgorICAgICAgICA8dGggd2lkdGg9IjgwJSI+TmFtZTwvdGg+CisgICAgICAgIDx0aD5WaW9sYXRpb25zPC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gbWV0aG9kIGhlYWRlciAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0idmlvbGF0aW9uLmF1ZGl0LmhlYWRlciI+CisgICAgPHRyPgorICAgICAgICA8dGg+TGluZTwvdGg+CisgICAgICAgIDx0aD5NZXNzYWdlPC90aD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjbGFzcyBpbmZvcm1hdGlvbiAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzIiBtb2RlPSJwcmludC5hdWRpdCI+CisgICAgPHRyPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGUtcm93Ii8+CisgICAgICAgIDx0ZD48YSBocmVmPSJ7QG5hbWV9Lmh0bWwiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvYT48L3RkPgorICAgICAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAdmlvbGF0aW9ucyIvPjwvdGQ+CisgICAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJ2aW9sYXRpb24iIG1vZGU9InByaW50LmF1ZGl0Ij4KKyAgICA8dHI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZS1yb3ciLz4KKyAgICAgICAgPHRkPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbGluZSIvPjwvdGQ+CisgICAgICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBtZXNzYWdlIi8+PC90ZD4KKyAgICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gYWx0ZXJuYXRlZCByb3cgc3R5bGUgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImFsdGVybmF0ZS1yb3ciPgorPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPgorICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgbW9kIDIgPSAxIj5hPC94c2w6aWY+CisgIDx4c2w6aWYgdGVzdD0icG9zaXRpb24oKSBtb2QgMiA9IDAiPmI8L3hzbDppZj4KKzwveHNsOmF0dHJpYnV0ZT4KKzwveHNsOnRlbXBsYXRlPgorCis8L3hzbDpzdHlsZXNoZWV0PgorCmRpZmYgLS1naXQgYS9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvbW1ldHJpY3MtZnJhbWVzLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy9tbWV0cmljcy1mcmFtZXMueHNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxMDVlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9ldGMvbW1ldHJpY3MtZnJhbWVzLnhzbApAQCAtMCwwICsxLDEwMzMgQEAKKzx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgdmVyc2lvbj0iMS4wIgorICB4bWxuczpseHNsdD0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hzbHQiCisgIHhtbG5zOnhhbGFuPSJodHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW4iCisgIHhtbG5zOnJlZGlyZWN0PSJvcmcuYXBhY2hlLnhhbGFuLmxpYi5SZWRpcmVjdCIKKyAgZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM9InhhbGFuIgorICBleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0icmVkaXJlY3QiPgorPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiBpbmRlbnQ9InllcyIgZW5jb2Rpbmc9IlVTLUFTQ0lJIi8+Cis8eHNsOmRlY2ltYWwtZm9ybWF0IGRlY2ltYWwtc2VwYXJhdG9yPSIuIiBncm91cGluZy1zZXBhcmF0b3I9IiwiIC8+Cis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgICAKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICAKKyAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgICAKKy0tPgorPCEtLQorICBAYXV0aG9yIFN0ZXBoYW5lIEJhaWxsaWV6IDxhIGhyZWY9Im1haWx0bzpzYmFpbGxpZXpAYXBhY2hlLm9yZyIvPgorICAtLT4KKzx4c2w6cGFyYW0gbmFtZT0ib3V0cHV0LmRpciIgc2VsZWN0PSInLiciLz4KKworPCEtLSBkZWZhdWx0IG1heCB2YWx1ZSBmb3IgdGhlIG1ldHJpY3MgLS0+Cis8eHNsOnBhcmFtIG5hbWU9InZnLm1heCIgc2VsZWN0PSIxMCIvPgorPHhzbDpwYXJhbSBuYW1lPSJsb2MubWF4IiBzZWxlY3Q9IjEwMDAiLz4KKzx4c2w6cGFyYW0gbmFtZT0iZGl0Lm1heCIgc2VsZWN0PSIxMCIvPgorPHhzbDpwYXJhbSBuYW1lPSJub2EubWF4IiBzZWxlY3Q9IjI1MCIvPgorPHhzbDpwYXJhbSBuYW1lPSJucm0ubWF4IiBzZWxlY3Q9IjUwIi8+Cis8eHNsOnBhcmFtIG5hbWU9Im5sbS5tYXgiIHNlbGVjdD0iMjUwIi8+Cis8eHNsOnBhcmFtIG5hbWU9IndtYy5tYXgiIHNlbGVjdD0iMjUwIi8+Cis8eHNsOnBhcmFtIG5hbWU9InJmYy5tYXgiIHNlbGVjdD0iNTAiLz4KKzx4c2w6cGFyYW0gbmFtZT0iZGFjLm1heCIgc2VsZWN0PSIxMCIvPgorPHhzbDpwYXJhbSBuYW1lPSJmYW5vdXQubWF4IiBzZWxlY3Q9IjEwIi8+Cis8eHNsOnBhcmFtIG5hbWU9ImNiby5tYXgiIHNlbGVjdD0iMTUiLz4KKzx4c2w6cGFyYW0gbmFtZT0ibGNvbS5tYXgiIHNlbGVjdD0iMTAiLz4KKzx4c2w6cGFyYW0gbmFtZT0ibm9jbC5tYXgiIHNlbGVjdD0iMTAiLz4KKworCis8IS0tIGNyZWF0ZSBhIHRyZWUgZnJhZ21lbnQgdG8gc3BlZWQgdXAgcHJvY2Vzc2luZyAtLT4KKzx4c2w6dmFyaWFibGUgbmFtZT0iZG9jdHJlZS52YXIiPgorICA8eHNsOmVsZW1lbnQgbmFtZT0iY2xhc3NlcyI+CisgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii4vL2NsYXNzIj4KKyAgICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJjbGFzcyI+CisgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9InBhY2thZ2UiPgorICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIoYW5jZXN0b3I6OnBhY2thZ2UpW2xhc3QoKV0vQG5hbWUiLz4KKyAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSJAKiIvPgorICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIj4KKyAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImNsYXNzLm5hbWUiLz4KKyAgICAgICAgPC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSJtZXRob2QiLz4KKyAgICAgIDwveHNsOmVsZW1lbnQ+CisgICAgPC94c2w6Zm9yLWVhY2g+CisgIDwveHNsOmVsZW1lbnQ+Cis8L3hzbDp2YXJpYWJsZT4KKworPHhzbDp2YXJpYWJsZSBuYW1lPSJkb2N0cmVlIiBzZWxlY3Q9InhhbGFuOm5vZGVzZXQoJGRvY3RyZWUudmFyKSIvPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJtZXRyaWNzIj4KKworICA8IS0tIGNyZWF0ZSB0aGUgaW5kZXguaHRtbCAtLT4KKyAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0vaW5kZXguaHRtbCI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImluZGV4Lmh0bWwiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICA8IS0tIGNyZWF0ZSB0aGUgc3R5bGVzaGVldC5jc3MgLS0+CisgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3N0eWxlc2hlZXQuY3NzIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ic3R5bGVzaGVldC5jc3MiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9tZXRyaWNzLXJlZmVyZW5jZS5odG1sIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCIvPgorICA8L3JlZGlyZWN0OndyaXRlPgorCisgIDwhLS0gY3JlYXRlIHRoZSBvdmVydmlldy1wYWNrYWdlcy5odG1sIGF0IHRoZSByb290IC0tPgorICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0ib3ZlcnZpZXcucGFja2FnZXMiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICA8IS0tIGNyZWF0ZSB0aGUgYWxsLXBhY2thZ2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L292ZXJ2aWV3LWZyYW1lLmh0bWwiPgorICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0iYWxsLnBhY2thZ2VzIi8+CisgIDwvcmVkaXJlY3Q6d3JpdGU+CisKKyAgPCEtLSBjcmVhdGUgdGhlIGFsbC1jbGFzc2VzLmh0bWwgYXQgdGhlIHJvb3QgLS0+CisgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L2FsbGNsYXNzZXMtZnJhbWUuaHRtbCI+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJhbGwuY2xhc3NlcyIvPgorICA8L3JlZGlyZWN0OndyaXRlPgorCisgIDwhLS0gcHJvY2VzcyBhbGwgcGFja2FnZXMgLS0+CisgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi8vcGFja2FnZSIvPgorPC94c2w6dGVtcGxhdGU+CisKKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFja2FnZSI+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5kaXIiPgorICAgIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAndW5uYW1lZCBwYWNrYWdlJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0cmFuc2xhdGUoJHBhY2thZ2UubmFtZSwnLicsJy8nKSIvPjwveHNsOmlmPgorICAgIDx4c2w6aWYgdGVzdD0iJHBhY2thZ2UubmFtZSA9ICd1bm5hbWVkIHBhY2thZ2UnIj4uPC94c2w6aWY+CisgIDwveHNsOnZhcmlhYmxlPgorICA8IS0tIGNyZWF0ZSBhIGNsYXNzZXMtbGlzdC5odG1sIGluIHRoZSBwYWNrYWdlIGRpcmVjdG9yeSAtLT4KKyAgPHJlZGlyZWN0OndyaXRlIGZpbGU9Inskb3V0cHV0LmRpcn0veyRwYWNrYWdlLmRpcn0vcGFja2FnZS1mcmFtZS5odG1sIj4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImNsYXNzZXMubGlzdCIvPgorICA8L3JlZGlyZWN0OndyaXRlPgorCisgIDwhLS0gY3JlYXRlIGEgcGFja2FnZS1zdW1tYXJ5Lmh0bWwgaW4gdGhlIHBhY2thZ2UgZGlyZWN0b3J5IC0tPgorICA8cmVkaXJlY3Q6d3JpdGUgZmlsZT0ieyRvdXRwdXQuZGlyfS97JHBhY2thZ2UuZGlyfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+CisgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJwYWNrYWdlLnN1bW1hcnkiLz4KKyAgPC9yZWRpcmVjdDp3cml0ZT4KKworICA8IS0tIGZvciBlYWNoIGNsYXNzLCBjcmVhdGVzIGEgQG5hbWUuaHRtbCAtLT4KKyAgPCEtLSBAYnVnIHRoZXJlIHdpbGwgYmUgYSBwcm9ibGVtIHdpdGggaW5uZXIgY2xhc3NlcyBoYXZpbmcgdGhlIHNhbWUgbmFtZSwgaXQgd2lsbCBiZSBvdmVyd3JpdHRlbiAtLT4KKyAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9IiRkb2N0cmVlL2NsYXNzZXMvY2xhc3NbQHBhY2thZ2UgPSBjdXJyZW50KCkvQG5hbWVdIj4KKyAgICAgIDwhLS1Qcm9jZXNzaW5nIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY2xhc3MubmFtZSIvPjx4c2w6dGV4dD4mIzEwOzwveHNsOnRleHQ+IC0tPgorICAgIDxyZWRpcmVjdDp3cml0ZSBmaWxlPSJ7JG91dHB1dC5kaXJ9L3skcGFja2FnZS5kaXJ9L3tAbmFtZX0uaHRtbCI+CisgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9ImNsYXNzLmRldGFpbHMiLz4KKyAgICA8L3JlZGlyZWN0OndyaXRlPgorICA8L3hzbDpmb3ItZWFjaD4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIGxpdHRsZSB0cmljayB0byBjb21wdXRlIHRoZSBjbGFzc25hbWUgZm9yIGlubmVyIGFuZCBub24gaW5uZXIgY2xhc3NlcyAtLT4KKzwhLS0gdGhpcyBpcyBhbGwgaW4gb25lIGxpbmUgdG8gYXZvaWQgQ1JMRiBpbiB0aGUgbmFtZSAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzIiBtb2RlPSJjbGFzcy5uYW1lIj4KKyAgICA8eHNsOmlmIHRlc3Q9InBhcmVudDo6Y2xhc3MiPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0icGFyZW50OjpjbGFzcyIgbW9kZT0iY2xhc3MubmFtZSIvPi48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz48L3hzbDppZj48eHNsOmlmIHRlc3Q9Im5vdChwYXJlbnQ6OmNsYXNzKSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC94c2w6aWY+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG5hbWU9ImluZGV4Lmh0bWwiPgorPEhUTUw+CisgIDxIRUFEPjxUSVRMRT5NZXRyaWNzIFJlc3VsdHMuPC9USVRMRT48L0hFQUQ+CisgIDxGUkFNRVNFVCBjb2xzPSIyMCUsODAlIj4KKyAgICA8RlJBTUVTRVQgcm93cz0iMzAlLDcwJSI+CisgICAgICA8RlJBTUUgc3JjPSJvdmVydmlldy1mcmFtZS5odG1sIiBuYW1lPSJwYWNrYWdlTGlzdEZyYW1lIi8+CisgICAgICA8RlJBTUUgc3JjPSJhbGxjbGFzc2VzLWZyYW1lLmh0bWwiIG5hbWU9ImNsYXNzTGlzdEZyYW1lIi8+CisgICAgPC9GUkFNRVNFVD4KKyAgICA8RlJBTUUgc3JjPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIG5hbWU9ImNsYXNzRnJhbWUiLz4KKyAgPC9GUkFNRVNFVD4KKyAgPG5vZnJhbWVzPgorICAgIDxIMj5GcmFtZSBBbGVydDwvSDI+CisgICAgPFA+CisgICAgVGhpcyBkb2N1bWVudCBpcyBkZXNpZ25lZCB0byBiZSB2aWV3ZWQgdXNpbmcgdGhlIGZyYW1lcyBmZWF0dXJlLiBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCisgICAgPC9QPgorICA8L25vZnJhbWVzPgorPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gdGhpcyBpcyB0aGUgc3R5bGVzaGVldCBjc3MgdG8gdXNlIGZvciBuZWFybHkgZXZlcnl0aGluZyAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgdGl0bGU9IlN0eWxlIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZXNoZWV0LmNzcyIvPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9InRleHQtYWxpZ246anVzdGlmeTsiPgorPGgyPk1ldHJpY3MgUmVmZXJlbmNlPC9oMj4KKzxhIGhyZWY9IiNWKEcpIj5WKEcpPC9hPiB8Cis8YSBocmVmPSIjTE9DIj5MT0M8L2E+IHwKKzxhIGhyZWY9IiNESVQiPkRJVDwvYT4gfAorPGEgaHJlZj0iI05PQSI+Tk9BPC9hPiB8Cis8YSBocmVmPSIjTlJNIj5OUk08L2E+IHwKKzxhIGhyZWY9IiNOTE0iPk5MTTwvYT4gfAorPGEgaHJlZj0iI1dNQyI+V01DPC9hPiB8Cis8YSBocmVmPSIjUkZDIj5SRkM8L2E+IHwKKzxhIGhyZWY9IiNEQUMiPkRBQzwvYT4gfAorPGEgaHJlZj0iI0ZBTk9VVCI+RkFOT1VUPC9hPiB8Cis8YSBocmVmPSIjQ0JPIj5DQk88L2E+IHwKKzxhIGhyZWY9IiNMQ09NIj5MQ09NPC9hPiB8Cis8YSBocmVmPSIjTk9DIj5OT0M8L2E+CisKKzxhIG5hbWU9IlYoRykiLz4KKzxoMz5DeWNsb21hdGljIENvbXBsZXhpdHkgLSBWKEcpPC9oMz4KK1RoaXMgbWV0cmljIHdhcyBpbnRyb2R1Y2VkIGluIHRoZSAxOTcwcyB0byBtZWFzdXJlIHRoZSBhbW91bnQgb2YgY29udHJvbAorZmxvdyBjb21wbGV4aXR5IG9yIGJyYW5jaGluZyBjb21wbGV4aXR5IGluIGEgbW9kdWxlIHN1Y2ggYXMgYQorc3Vicm91dGluZS4gSXQgZ2l2ZXMgdGhlIG51bWJlciBvZiBwYXRocyB0aGF0IG1heSBiZSB0YWtlbiB0aHJvdWdoIHRoZQorY29kZSwgYW5kIHdhcyBpbml0aWFsbHkgZGV2ZWxvcGVkIHRvIGdpdmUgc29tZSBtZWFzdXJlIG9mIHRoZSBjb3N0IG9mCitwcm9kdWNpbmcgYSB0ZXN0IGNhc2UgZm9yIHRoZSBtb2R1bGUgYnkgZXhlY3V0aW5nIGVhY2ggcGF0aC4KKzxwLz4KK01ldGhvZHMgd2l0aCBhIGhpZ2ggY3ljbG9tYXRpYyBjb21wbGV4aXR5IHRlbmQgdG8gYmUgbW9yZSBkaWZmaWN1bHQgdG8KK3VuZGVyc3RhbmQgYW5kIG1haW50YWluLiBJbiBnZW5lcmFsIHRoZSBtb3JlIGNvbXBsZXggdGhlIG1ldGhvZHMgb2YgYW4KK2FwcGxpY2F0aW9uLCB0aGUgbW9yZSBkaWZmaWN1bHQgaXQgd2lsbCBiZSB0byB0ZXN0IGl0LCBhbmQgdGhpcyB3aWxsIGFkdmVyc2VseQorYWZmZWN0IGl0cyByZWxpYWJpbGl0eS4KKzxwLz4KK1YoRykgaXMgYSBtZWFzdXJlIG9mIHRoZSBjb250cm9sIGZsb3cgY29tcGxleGl0eSBvZiBhIG1ldGhvZCBvcgorY29uc3RydWN0b3IuICBJdCBjb3VudHMgdGhlIG51bWJlciBvZiBicmFuY2hlcyBpbiB0aGUgYm9keSBvZiB0aGUgbWV0aG9kLAorZGVmaW5lZCBhczoKKzx1bD4KKzxsaT53aGlsZSBzdGF0ZW1lbnRzOzwvbGk+Cis8bGk+aWYgc3RhdGVtZW50czs8L2xpPgorPGxpPmZvciBzdGF0ZW1lbnRzLjwvbGk+Cis8L3VsPgorCitUaGUgbWV0cmljIGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdG8gY291bnQgZWFjaCBjYXNlIG9mIGEgc3dpdGNoCitzdGF0ZW1lbnQgYXMgd2VsbC4KKworPGEgbmFtZT0iTE9DIi8+Cis8aDM+TGluZXMgb2YgQ29kZSAtIExPQzwvaDM+CisKK1RoaXMgaXMgcGVyaGFwcyB0aGUgc2ltcGxlc3Qgb2YgYWxsIHRoZSBtZXRyaWNzIHRvIGRlZmluZSBhbmQgY29tcHV0ZS4KK0NvdW50aW5nIGxpbmVzIGhhcyBhIGxvbmcgaGlzdG9yeSBhcyBhIHNvZnR3YXJlIG1ldHJpYyBkYXRpbmcgZnJvbSBiZWZvcmUKK3RoZSByaXNlIG9mIHN0cnVjdHVyZWQgcHJvZ3JhbW1pbmcsIGFuZCBpdCBpcyBzdGlsbCBpbiB3aWRlc3ByZWFkIHVzZSB0b2RheS4KK1RoZSBzaXplIG9mIGEgbWV0aG9kIGFmZmVjdHMgdGhlIGVhc2Ugd2l0aCB3aGljaCBpdCBjYW4gYmUgdW5kZXJzdG9vZCwgaXRzCityZXVzYWJpbGl0eSBhbmQgaXRzIG1haW50YWluYWJpbGl0eS4gVGhlcmUgYXJlIGEgdmFyaWV0eSBvZiB3YXlzIHRoYXQgdGhlIHNpemUKK2NhbiBiZSBjYWxjdWxhdGVkLiBUaGVzZSBpbmNsdWRlIGNvdW50aW5nIGFsbCB0aGUgbGluZXMgb2YgY29kZSwgdGhlIG51bWJlcgorb2Ygc3RhdGVtZW50cywgdGhlIGJsYW5rIGxpbmVzIG9mIGNvZGUsIHRoZSBsaW5lcyBvZiBjb21tZW50YXJ5LCBhbmQgdGhlCitsaW5lcyBjb25zaXN0aW5nIG9ubHkgb2Ygc3ludGF4IHN1Y2ggYXMgYmxvY2sgZGVsaW1pdGVycy4KKzxwLz4KK1RoaXMgbWV0cmljIGNhbiBhbHNvIGJlIHVzZWQgZm9yIHNpemluZyBvdGhlciBjb25zdHJ1Y3RzIGFzIHdlbGwsIGZvcgorZXhhbXBsZSwgdGhlIG92ZXJhbGwgc2l6ZSBvZiBhIEphdmEgY2xhc3Mgb3IgcGFja2FnZSBjYW4gYmUgbWVhc3VyZWQgYnkKK2NvdW50aW5nIHRoZSBudW1iZXIgb2Ygc291cmNlIGxpbmVzIGl0IGNvbnNpc3RzIG9mLgorPHAvPgorTE9DIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZiBhIGNvbXBpbGF0aW9uIHVuaXQgKHNvdXJjZSBmaWxlKSwKK2NsYXNzIG9yIGludGVyZmFjZSwgbWV0aG9kLCBjb25zdHJ1Y3Rvciwgb3IgZmllbGQuICBJdCBjYW4gYmUgY29uZmlndXJlZCB0bworaWdub3JlOgorPHVsPgorPGxpPmJsYW5rIGxpbmVzOzwvbGk+Cis8bGk+bGluZXMgY29uc2lzdGluZyBvbmx5IG9mIGNvbW1lbnRzOzwvbGk+Cis8bGk+bGluZXMgY29uc2lzdGluZyBvbmx5IG9mIG9wZW5pbmcgYW5kIGNsb3NpbmcgYnJhY2VzLjwvbGk+Cis8L3VsPgorCis8YSBuYW1lPSJESVQiLz4KKzxoMz5EZXB0aCBvZiBJbmhlcml0YW5jZSBIaWVyYXJjaHkgLSBESVQ8L2gzPgorCitUaGlzIG1ldHJpYyBjYWxjdWxhdGVzIGhvdyBmYXIgZG93biB0aGUgaW5oZXJpdGFuY2UgaGllcmFyY2h5IGEgY2xhc3MgaXMKK2RlY2xhcmVkLiBJbiBKYXZhIGFsbCBjbGFzc2VzIGhhdmUgamF2YS5sYW5nLk9iamVjdCBhcyB0aGVpciB1bHRpbWF0ZQorc3VwZXJjbGFzcywgd2hpY2ggaXMgZGVmaW5lZCB0byBoYXZlIGEgZGVwdGggb2YgMS4gU28gYSBjbGFzcyB0aGF0CitpbW1lZGlhdGVseSBleHRlbmRzIGphdmEubGFuZy5PYmplY3QgaGFzIGEgbWV0cmljIHZhbHVlIG9mIDI7IGFueSBvZiBpdHMKK3N1YmNsYXNzZXMgd2lsbCBoYXZlIGEgdmFsdWUgb2YgMywgYW5kIHNvIG9uLgorPHAvPgorQSBjbGFzcyB0aGF0IGlzIGRlZXAgd2l0aGluIHRoZSB0cmVlIGluaGVyaXRzIG1vcmUgbWV0aG9kcyBhbmQgc3RhdGUKK3ZhcmlhYmxlcywgdGhlcmVieSBpbmNyZWFzaW5nIGl0cyBjb21wbGV4aXR5IGFuZCBtYWtpbmcgaXQgZGlmZmljdWx0IHRvCitwcmVkaWN0IGl0cyBiZWhhdmlvci4gSXQgY2FuIGJlIGhhcmRlciB0byB1bmRlcnN0YW5kIGEgc3lzdGVtIHdpdGggbWFueQoraW5oZXJpdGFuY2UgbGF5ZXJzLgorPHAvPgorRElUIGlzIGRlZmluZWQgZm9yIGNsYXNzZXMgYW5kIGludGVyZmFjZXM6Cis8dWw+Cis8bGk+YWxsIGludGVyZmFjZSB0eXBlcyBoYXZlIGEgZGVwdGggb2YgMTs8L2xpPgorPGxpPnRoZSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0IGhhcyBhIGRlcHRoIG9mIDE7PC9saT4KKzxsaT5hbGwgb3RoZXIgY2xhc3NlcyBoYXZlIGEgZGVwdGggb2YgMSArIHRoZSBkZXB0aCBvZiB0aGVpciBzdXBlciBjbGFzcy48L2xpPgorPC91bD4KKworPGEgbmFtZT0iTk9BIi8+Cis8aDM+TnVtYmVyIG9mIEF0dHJpYnV0ZXMgLSBOT0E8L2gzPgorCitUaGUgbnVtYmVyIG9mIGRpc3RpbmN0IHN0YXRlIHZhcmlhYmxlcyBpbiBhIGNsYXNzIHNlcnZlcyBhcyBvbmUgbWVhc3VyZSBvZgoraXRzIGNvbXBsZXhpdHkuIFRoZSBtb3JlIHN0YXRlIGEgY2xhc3MgcmVwcmVzZW50cyB0aGUgbW9yZSBkaWZmaWN1bHQgaXQgaXMgdG8KK21haW50YWluIGludmFyaWFudHMgZm9yIGl0LiBJdCBhbHNvIGhpbmRlcnMgY29tcHJlaGVuc2liaWxpdHkgYW5kIHJldXNlLgorPHAvPgorSW4gSmF2YSwgc3RhdGUgY2FuIGJlIGV4cG9zZWQgdG8gc3ViY2xhc3NlcyB0aHJvdWdoIHByb3RlY3RlZCBmaWVsZHMsIHdoaWNoCitlbnRhaWxzIHRoYXQgdGhlIHN1YmNsYXNzIGFsc28gYmUgYXdhcmUgb2YgYW5kIG1haW50YWluIGFueSBpbnZhcmlhbnRzLiBUaGlzCitpbnRlcmZlcmVuY2Ugd2l0aCB0aGUgY2xhc3MncyBkYXRhIGVuY2Fwc3VsYXRpb24gY2FuIGJlIGEgc291cmNlIG9mIGRlZmVjdHMKK2FuZCBoaWRkZW4gZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlIHN0YXRlIHZhcmlhYmxlcy4KKzxwLz4KK05PQSBpcyBkZWZpbmVkIGZvciBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzLiAgSXQgY291bnRzIHRoZSBudW1iZXIgb2YgZmllbGRzCitkZWNsYXJlZCBpbiB0aGUgY2xhc3Mgb3IgaW50ZXJmYWNlLgorCis8YSBuYW1lPSJOUk0iLz4KKzxoMz5OdW1iZXIgb2YgUmVtb3RlIE1ldGhvZHMgLSBOUk08L2gzPgorCitOUk0gaXMgZGVmaW5lZCBmb3IgY2xhc3Nlcy4gIEEgcmVtb3RlIG1ldGhvZCBjYWxsIGlzIGRlZmluZWQgYXMgYW4KK2ludm9jYXRpb24gb2YgYSBtZXRob2QgdGhhdCBpcyBub3QgZGVjbGFyZWQgaW4gYW55IG9mOgorPHVsPgorPGxpPnRoZSBjbGFzcyBpdHNlbGY7PC9saT4KKzxsaT5hIGNsYXNzIG9yIGludGVyZmFjZSB0aGF0IHRoZSBjbGFzcyBleHRlbmRzIG9yIGltcGxlbWVudHM7PC9saT4KKzxsaT5hIGNsYXNzIG9yIG1ldGhvZCB0aGF0IGV4dGVuZHMgdGhlIGNsYXNzLjwvbGk+Cis8L3VsPgorCitUaGUgdmFsdWUgaXMgdGhlIGNvdW50IG9mIGFsbCB0aGUgcmVtb3RlIG1ldGhvZCBjYWxscyBpbiBhbGwgb2YgdGhlIG1ldGhvZHMKK2FuZCBjb25zdHJ1Y3RvcnMgb2YgdGhlIGNsYXNzLgorCis8YSBuYW1lPSJOTE0iLz4KKzxoMz5OdW1iZXIgb2YgTG9jYWwgTWV0aG9kcyAtIE5MTTwvaDM+CisKK05MTSBpcyBkZWZpbmVkIGZvciBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzLiAgQSBsb2NhbCBtZXRob2QgaXMgZGVmaW5lZCBhcyBhCittZXRob2QgdGhhdCBpcyBkZWNsYXJlZCBpbiB0aGUgY2xhc3Mgb3IgaW50ZXJmYWNlLiBOTE0gY2FuIGJlIGNvbmZpZ3VyZWQgdG8KK2luY2x1ZGUgdGhlIGxvY2FsIG1ldGhvZHMgb2YgYWxsIG9mIHRoZSBjbGFzcydzIHN1cGVyY2xhc3Nlcy4gIE1ldGhvZHMgd2l0aAorcHVibGljLCBwcm90ZWN0ZWQsIHBhY2thZ2UgYW5kIHByaXZhdGUgdmlzaWJpbGl0eSBjYW4gYmUgaW5kZXBlbmRlbnRseQorY291bnRlZCBieSBzZXR0aW5nIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KKworPGEgbmFtZT0iV01DIi8+Cis8aDM+V2VpZ2h0ZWQgTWV0aG9kcyBwZXIgQ2xhc3MgLSBXTUM8L2gzPgorCitJZiB0aGUgbnVtYmVyIG9mIG1ldGhvZHMgaW4gYSBjbGFzcyBjYW4gYmUgZGV0ZXJtaW5lZCBkdXJpbmcgdGhlIGRlc2lnbgorYW5kIG1vZGVsaW5nIHBoYXNlIG9mIGEgcHJvamVjdCwgaXQgY2FuIGJlIHVzZWQgYXMgYSBwcmVkaWN0b3Igb2YgaG93CittdWNoIHRpbWUgYW5kIGVmZm9ydCBpcyBuZWVkZWQgdG8gZGV2ZWxvcCwgZGVidWcgYW5kIG1haW50YWluIGl0LiBUaGlzCittZXRyaWMgY2FuIGJlIGZ1cnRoZXIgcmVmaW5lZCBieSBpbmNvcnBvcmF0aW5nIGEgd2VpZ2h0aW5nIGZvciB0aGUKK2NvbXBsZXhpdHkgb2YgZWFjaCBtZXRob2QuIFRoZSB1c3VhbCB3ZWlnaHRpbmcgaXMgZ2l2ZW4gYnkgdGhlIGN5Y2xvbWF0aWMKK2NvbXBsZXhpdHkgb2YgdGhlIG1ldGhvZC4KKzxwLz4KK1RoZSBzdWJjbGFzc2VzIG9mIGEgY2xhc3MgaW5oZXJpdCBhbGwgb2YgaXRzIHB1YmxpYyBhbmQgcHJvdGVjdGVkIG1ldGhvZHMsCithbmQgcG9zc2libHkgaXRzIHBhY2thZ2UgbWV0aG9kcyBhcyB3ZWxsLCBzbyB0aGUgbnVtYmVyIG9mIG1ldGhvZHMgYQorY2xhc3MgaGFzIGRpcmVjdGx5IGltcGFjdHMgdGhlIGNvbXBsZXhpdHkgb2YgaXRzIHN1YmNsYXNzZXMuIENsYXNzZXMgd2l0aAorbGFyZ2UgbnVtYmVycyBvZiBtZXRob2RzIGFyZSBvZnRlbiBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgYXBwbGljYXRpb24sCityZWR1Y2luZyB0aGUgYWJpbGl0eSB0byByZXVzZSB0aGVtLgorPHAvPgorVGhlIGRlZmluaXRpb24gb2YgV01DIGlzIGJhc2VkIHVwb24gTkxNLCBhbmQgaXQgcHJvdmlkZXMgdGhlIHNhbWUKK2NvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgY291bnRpbmcgaW5oZXJpdGVkIG1ldGhvZHMgYW5kIG9mIHZhcnlpbmcKK3Zpc2liaWxpdHkuIFRoZSBtYWluIGRpZmZlcmVuY2UgaXMgdGhhdCBOTE0gYWx3YXlzIGNvdW50cyBlYWNoIG1ldGhvZCBhcyAxLAord2hlcmVhcyBXTUMgd2lsbCB3ZWlnaHQgZWFjaCBtZXRob2QuIFRoZXJlIGFyZSB0d28gd2VpZ2h0aW5nIHNjaGVtZXM6Cis8dWw+Cis8bGk+VihHKSB0aGUgY3ljbG9tYXRpYyBjb21wbGV4aXR5IG9mIHRoZSBtZXRob2QgaXMgdXNlZCBhcyBpdHMgd2VpZ2h0LgorICAgTWV0aG9kcyBmcm9tIGNsYXNzIGZpbGVzIGFyZSBnaXZlbiBhIFYoRykgb2YgMS48L2xpPgorPGxpPnRoZSBhcml0eSwgb3IgdGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIG9mIHRoZSBtZXRob2QgYXJlIHVzZWQgdG8KKyAgIGRldGVybWluZSB0aGUgd2VpZ2h0LjwvbGk+Cis8L3VsPgorCis8YSBuYW1lPSJSRkMiLz4KKzxoMz5SZXNwb25zZSBGb3IgQ2xhc3MgLSBSRkM8L2gzPgorCitUaGUgcmVzcG9uc2Ugc2V0IG9mIGEgY2xhc3MgaXMgdGhlIHNldCBvZiBhbGwgbWV0aG9kcyB0aGF0IGNhbiBiZSBpbnZva2VkIGFzCithIHJlc3VsdCBvZiBhIG1lc3NhZ2Ugc2VudCB0byBhbiBvYmplY3Qgb2YgdGhlIGNsYXNzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMKK2luIHRoZSBjbGFzcydzIGluaGVyaXRhbmNlIGhpZXJhcmNoeSBhbmQgbWV0aG9kcyB0aGF0IGNhbiBiZSBpbnZva2VkIG9uCitvdGhlciBvYmplY3RzLiBUaGUgUmVzcG9uc2UgRm9yIENsYXNzIG1ldHJpYyBpcyBkZWZpbmVkIHRvIGJlIHNpemUgb2YgdGhlCityZXNwb25zZSBzZXQgZm9yIHRoZSBjbGFzcy4gQSBjbGFzcyB3aGljaCBwcm92aWRlcyBhIGxhcmdlciByZXNwb25zZSBzZXQgaXMKK2NvbnNpZGVyZWQgdG8gYmUgbW9yZSBjb21wbGV4IHRoYW4gb25lIHdpdGggYSBzbWFsbGVyIHJlc3BvbnNlIHNldC4KKzxwLz4KK09uZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBpZiBhIG1ldGhvZCBjYWxsIG9uIGEgY2xhc3MgY2FuIHJlc3VsdCBpbiBhIGxhcmdlCitudW1iZXIgb2YgZGlmZmVyZW50IG1ldGhvZCBjYWxscyBvbiB0aGUgdGFyZ2V0IGFuZCBvdGhlciBjbGFzc2VzLCB0aGVuIGl0CitjYW4gYmUgaGFyZGVyIHRvIHRlc3QgdGhlIGJlaGF2aW9yIG9mIHRoZSBjbGFzcyBhbmQgZGVidWcgcHJvYmxlbXMuIEl0IHdpbGwKK3R5cGljYWxseSByZXF1aXJlIGEgZGVlcGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgdGhhdAorb2JqZWN0cyBvZiB0aGUgY2xhc3MgY2FuIGhhdmUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLgorPHAvPgorUkZDIGlzIGRlZmluZWQgYXMgdGhlIHN1bSBvZiBOTE0gYW5kIE5STSBmb3IgdGhlIGNsYXNzLiAgVGhlIGxvY2FsIG1ldGhvZHMKK2luY2x1ZGUgYWxsIG9mIHRoZSBwdWJsaWMsIHByb3RlY3RlZCwgcGFja2FnZSBhbmQgcHJpdmF0ZSBtZXRob2RzLCBidXQgbm90CittZXRob2RzIGRlY2xhcmVkIG9ubHkgaW4gYSBzdXBlcmNsYXNzLgorCis8YSBuYW1lPSJEQUMiLz4KKzxoMz5EYXRhIEFic3RyYWN0aW9uIENvdXBsaW5nIC0gREFDPC9oMz4KKworREFDIGlzIGRlZmluZWQgZm9yIGNsYXNzZXMgYW5kIGludGVyZmFjZXMuICBJdCBjb3VudHMgdGhlIG51bWJlciBvZiByZWZlcmVuY2UKK3R5cGVzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIGZpZWxkIGRlY2xhcmF0aW9ucyBvZiB0aGUgY2xhc3Mgb3IgaW50ZXJmYWNlLiAgVGhlCitjb21wb25lbnQgdHlwZXMgb2YgYXJyYXlzIGFyZSBhbHNvIGNvdW50ZWQuICBBbnkgZmllbGQgd2l0aCBhIHR5cGUgdGhhdCBpcworZWl0aGVyIGEgc3VwZXJ0eXBlIG9yIGEgc3VidHlwZSBvZiB0aGUgY2xhc3MgaXMgbm90IGNvdW50ZWQuCisKKzxhIG5hbWU9IkZBTk9VVCIvPgorPGgzPkZhbiBPdXQgLSBGQU5PVVQ8L2gzPgorCitGQU5PVVQgaXMgZGVmaW5lZCBmb3IgY2xhc3NlcyBhbmQgaW50ZXJmYWNlcywgY29uc3RydWN0b3JzIGFuZCBtZXRob2RzLiBJdAorY291bnRzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmNlIHR5cGVzIHRoYXQgYXJlIHVzZWQgaW46Cis8dWw+Cis8bGk+ZmllbGQgZGVjbGFyYXRpb25zOzwvbGk+Cis8bGk+Zm9ybWFsIHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlczs8L2xpPgorPGxpPnRocm93cyBkZWNsYXJhdGlvbnM7PC9saT4KKzxsaT5sb2NhbCB2YXJpYWJsZXMuPC9saT4KKzwvdWw+CisKK1RoZSBjb21wb25lbnQgdHlwZXMgb2YgYXJyYXlzIGFyZSBhbHNvIGNvdW50ZWQuIEFueSB0eXBlIHRoYXQgaXMgZWl0aGVyIGEKK3N1cGVydHlwZSBvciBhIHN1YnR5cGUgb2YgdGhlIGNsYXNzIGlzIG5vdCBjb3VudGVkLgorCis8YSBuYW1lPSJDQk8iLz4KKzxoMz5Db3VwbGluZyBCZXR3ZWVuIE9iamVjdHMgLSBDQk88L2gzPgorCitXaGVuIG9uZSBvYmplY3Qgb3IgY2xhc3MgdXNlcyBhbm90aGVyIG9iamVjdCBvciBjbGFzcyB0aGV5IGFyZSBzYWlkIHRvIGJlCitjb3VwbGVkLiBPbmUgbWFqb3Igc291cmNlIG9mIGNvdXBsaW5nIGlzIHRoYXQgYmV0d2VlbiBhIHN1cGVyY2xhc3MgYW5kIGEKK3N1YmNsYXNzLiBBIGNvdXBsaW5nIGlzIGFsc28gaW50cm9kdWNlZCB3aGVuIGEgbWV0aG9kIG9yIGZpZWxkIGluIGFub3RoZXIKK2NsYXNzIGlzIGFjY2Vzc2VkLCBvciB3aGVuIGFuIG9iamVjdCBvZiBhbm90aGVyIGNsYXNzIGlzIHBhc3NlZCBpbnRvIG9yIG91dAorb2YgYSBtZXRob2QgaW52b2NhdGlvbi4gQ291cGxpbmcgQmV0d2VlbiBPYmplY3RzIGlzIGEgbWVhc3VyZSBvZiB0aGUKK25vbi1pbmhlcml0YW5jZSBjb3VwbGluZyBiZXR3ZWVuIHR3byBvYmplY3RzLgorPHAvPgorQSBoaWdoIHZhbHVlIG9mIGNvdXBsaW5nIHJlZHVjZXMgdGhlIG1vZHVsYXJpdHkgb2YgdGhlIGNsYXNzIGFuZCBtYWtlcworcmV1c2UgbW9yZSBkaWZmaWN1bHQuIFRoZSBtb3JlIGluZGVwZW5kZW50IGEgY2xhc3MgaXMgdGhlIG1vcmUgbGlrZWx5IGl0IGlzCit0aGF0IGl0IHdpbGwgYmUgcG9zc2libGUgdG8gcmV1c2UgaXQgaW4gYW5vdGhlciBwYXJ0IG9mIHRoZSBzeXN0ZW0uIFdoZW4gYQorY2xhc3MgaXMgY291cGxlZCB0byBhbm90aGVyIGNsYXNzIGl0IGJlY29tZXMgc2Vuc2l0aXZlIHRvIGNoYW5nZXMgaW4gdGhhdAorY2xhc3MsIHRoZXJlYnkgbWFraW5nIG1haW50ZW5hbmNlIGZvciBkaWZmaWN1bHQuIEluIGFkZGl0aW9uLCBhIGNsYXNzIHRoYXQgaXMKK292ZXJseSBkZXBlbmRlbnQgb24gb3RoZXIgY2xhc3NlcyBjYW4gYmUgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgYW5kIHRlc3QgaW4KK2lzb2xhdGlvbi4KKzxwLz4KK0NCTyBpcyBkZWZpbmVkIGZvciBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzLCBjb25zdHJ1Y3RvcnMgYW5kIG1ldGhvZHMuIEl0Citjb3VudHMgdGhlIG51bWJlciBvZiByZWZlcmVuY2UgdHlwZXMgdGhhdCBhcmUgdXNlZCBpbjoKKzx1bD4KKzxsaT5maWVsZCBkZWNsYXJhdGlvbnM8L2xpPgorPGxpPmZvcm1hbCBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlwZXM8L2xpPgorPGxpPnRocm93cyBkZWNsYXJhdGlvbnM8L2xpPgorPGxpPmxvY2FsIHZhcmlhYmxlczwvbGk+Cis8L3VsPgorCitJdCBhbHNvIGNvdW50czoKKzx1bD4KKzxsaT50eXBlcyBmcm9tIHdoaWNoIGZpZWxkIGFuZCBtZXRob2Qgc2VsZWN0aW9ucyBhcmUgbWFkZTwvbGk+Cis8L3VsPgorCitUaGUgY29tcG9uZW50IHR5cGVzIG9mIGFycmF5cyBhcmUgYWxzbyBjb3VudGVkLiBBbnkgdHlwZSB0aGF0IGlzIGVpdGhlciBhCitzdXBlcnR5cGUgb3IgYSBzdWJ0eXBlIG9mIHRoZSBjbGFzcyBpcyBub3QgY291bnRlZC4KKworPGEgbmFtZT0iTENPTSIvPgorPGgzPkxhY2sgb2YgQ29oZXNpb24gT2YgTWV0aG9kcyAtIExDT008L2gzPgorCitUaGUgY29oZXNpb24gb2YgYSBjbGFzcyBpcyB0aGUgZGVncmVlIHRvIHdoaWNoIGl0cyBtZXRob2RzIGFyZSByZWxhdGVkIHRvCitlYWNoIG90aGVyLiBJdCBpcyBkZXRlcm1pbmVkIGJ5IGV4YW1pbmluZyB0aGUgcGF0dGVybiBvZiBzdGF0ZSB2YXJpYWJsZQorYWNjZXNzZXMgd2l0aGluIHRoZSBzZXQgb2YgbWV0aG9kcy4gSWYgYWxsIHRoZSBtZXRob2RzIGFjY2VzcyB0aGUgc2FtZSBzdGF0ZQordmFyaWFibGVzIHRoZW4gdGhleSBoYXZlIGhpZ2ggY29oZXNpb247IGlmIHRoZXkgYWNjZXNzIGRpc2pvaW50IHNldHMgb2YKK3ZhcmlhYmxlcyB0aGVuIHRoZSBjb2hlc2lvbiBpcyBsb3cuIEFuIGV4dHJlbWUgZXhhbXBsZSBvZiBsb3cgY29oZXNpb24KK3dvdWxkIGJlIGlmIG5vbmUgb2YgdGhlIG1ldGhvZHMgYWNjZXNzZWQgYW55IG9mIHRoZSBzdGF0ZSB2YXJpYWJsZXMuCisKK0lmIGEgY2xhc3MgZXhoaWJpdHMgbG93IG1ldGhvZCBjb2hlc2lvbiBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVzaWduIG9mIHRoZQorY2xhc3MgaGFzIHByb2JhYmx5IGJlZW4gcGFydGl0aW9uZWQgaW5jb3JyZWN0bHksIGFuZCBjb3VsZCBiZW5lZml0IGJ5IGJlaW5nCitzcGxpdCBpbnRvIG1vcmUgY2xhc3NlcyB3aXRoIGluZGl2aWR1YWxseSBoaWdoZXIgY29oZXNpb24uIE9uIHRoZSBvdGhlcgoraGFuZCwgYSBoaWdoIHZhbHVlIG9mIGNvaGVzaW9uIChhIGxvdyBsYWNrIG9mIGNvaGVzaW9uKSBpbXBsaWVzIHRoYXQgdGhlCitjbGFzcyBpcyB3ZWxsIGRlc2lnbmVkLiBBIGNvaGVzaXZlIGNsYXNzIHdpbGwgdGVuZCB0byBwcm92aWRlIGEgaGlnaCBkZWdyZWUKK29mIGVuY2Fwc3VsYXRpb24sIHdoZXJlYXMgYSBsYWNrIG9mIGNvaGVzaW9uIGRlY3JlYXNlcyBlbmNhcHN1bGF0aW9uIGFuZAoraW5jcmVhc2VzIGNvbXBsZXhpdHkuCis8cC8+CitBbm90aGVyIGZvcm0gb2YgY29oZXNpb24gdGhhdCBpcyB1c2VmdWwgZm9yIEphdmEgcHJvZ3JhbXMgaXMgY29oZXNpb24KK2JldHdlZW4gbmVzdGVkIGFuZCBlbmNsb3NpbmcgY2xhc3Nlcy4gQSBuZXN0ZWQgY2xhc3MgdGhhdCBoYXMgdmVyeSBsb3cKK2NvaGVzaW9uIHdpdGggaXRzIGVuY2xvc2luZyBjbGFzcyB3b3VsZCBwcm9iYWJseSBiZXR0ZXIgZGVzaWduZWQgYXMgYSBwZWVyCitjbGFzcyByYXRoZXIgdGhhbiBhIG5lc3RlZCBjbGFzcy4KKzxwLz4KK0xDT00gaXMgZGVmaW5lZCBmb3IgY2xhc3Nlcy4gT3BlcmF0aW9uYWxseSwgTENPTSB0YWtlcyBlYWNoIHBhaXIgb2YKK21ldGhvZHMgaW4gdGhlIGNsYXNzIGFuZCBkZXRlcm1pbmVzIHRoZSBzZXQgb2YgZmllbGRzIHRoZXkgZWFjaCBhY2Nlc3MuIElmCit0aGV5IGhhdmUgZGlzam9pbnQgc2V0cyBvZiBmaWVsZCBhY2Nlc3NlcyBpbmNyZWFzZSB0aGUgY291bnQgUCBieSBvbmUuIElmIHRoZXkKK3NoYXJlIGF0IGxlYXN0IG9uZSBmaWVsZCBhY2Nlc3MgdGhlbiBpbmNyZWFzZSBRIGJ5IG9uZS4gQWZ0ZXIgY29uc2lkZXJpbmcKK2VhY2ggcGFpciBvZiBtZXRob2RzLAorTENPTSA9IChQID4gUSkgPyAoUCAtIFEpIDogMAorPHAvPgorSW5kaXJlY3QgYWNjZXNzIHRvIGZpZWxkcyB2aWEgbG9jYWwgbWV0aG9kcyBjYW4gYmUgY29uc2lkZXJlZCBieSBzZXR0aW5nIGEKK21ldHJpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKworPGEgbmFtZT0iTk9DIi8+Cis8aDM+TnVtYmVyIE9mIENsYXNzZXMgLSBOT0M8L2gzPgorCitUaGUgb3ZlcmFsbCBzaXplIG9mIHRoZSBzeXN0ZW0gY2FuIGJlIGVzdGltYXRlZCBieSBjYWxjdWxhdGluZyB0aGUgbnVtYmVyCitvZiBjbGFzc2VzIGl0IGNvbnRhaW5zLiBBIGxhcmdlIHN5c3RlbSB3aXRoIG1vcmUgY2xhc3NlcyBpcyBtb3JlIGNvbXBsZXgKK3RoYW4gYSBzbWFsbGVyIG9uZSBiZWNhdXNlIHRoZSBudW1iZXIgb2YgcG90ZW50aWFsIGludGVyYWN0aW9ucyBiZXR3ZWVuCitvYmplY3RzIGlzIGhpZ2hlci4gVGhpcyByZWR1Y2VzIHRoZSBjb21wcmVoZW5zaWJpbGl0eSBvZiB0aGUgc3lzdGVtIHdoaWNoCitpbiB0dXJuIG1ha2VzIGl0IGhhcmRlciB0byB0ZXN0LCBkZWJ1ZyBhbmQgbWFpbnRhaW4uCis8cC8+CitJZiB0aGUgbnVtYmVyIG9mIGNsYXNzZXMgaW4gdGhlIHN5c3RlbSBjYW4gYmUgcHJvamVjdGVkIGR1cmluZyB0aGUgaW5pdGlhbAorZGVzaWduIHBoYXNlIG9mIHRoZSBwcm9qZWN0IGl0IGNhbiBzZXJ2ZSBhcyBhIGJhc2UgZm9yIGVzdGltYXRpbmcgdGhlIHRvdGFsCitlZmZvcnQgYW5kIGNvc3Qgb2YgZGV2ZWxvcGluZywgZGVidWdnaW5nIGFuZCBtYWludGFpbmluZyB0aGUgc3lzdGVtLgorPHAvPgorVGhlIE5PQyBtZXRyaWMgY2FuIGFsc28gdXNlZnVsbHkgYmUgYXBwbGllZCBhdCB0aGUgcGFja2FnZSBhbmQgY2xhc3MgbGV2ZWwKK2FzIHdlbGwgYXMgdGhlIHRvdGFsIHN5c3RlbS4KKzxwLz4KK05PQ0wgaXMgZGVmaW5lZCBmb3IgY2xhc3MgYW5kIGludGVyZmFjZXMuIEl0IGNvdW50cyB0aGUgbnVtYmVyIG9mIGNsYXNzZXMgb3IKK2ludGVyZmFjZXMgdGhhdCBhcmUgZGVjbGFyZWQuIFRoaXMgaXMgdXN1YWxseSAxLCBidXQgbmVzdGVkIGNsYXNzIGRlY2xhcmF0aW9ucword2lsbCBpbmNyZWFzZSB0aGlzIG51bWJlci4KKzwvYm9keT4KKzwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIHRoaXMgaXMgdGhlIHN0eWxlc2hlZXQgY3NzIHRvIHVzZSBmb3IgbmVhcmx5IGV2ZXJ5dGhpbmcgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InN0eWxlc2hlZXQuY3NzIj4KKyAgICAuYmFubmVyY2VsbCB7CisgICAgICBib3JkZXI6IDBweDsKKyAgICAgIHBhZGRpbmc6IDBweDsKKyAgICB9CisgICAgYm9keSB7CisgICAgICBtYXJnaW4tbGVmdDogMTA7CisgICAgICBtYXJnaW4tcmlnaHQ6IDEwOworICAgICAgZm9udDpub3JtYWwgODAlIGFyaWFsLGhlbHZldGljYSxzYW5zZXJpZjsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsKKyAgICAgIGNvbG9yOiMwMDAwMDA7CisgICAgfQorICAgIC5hIHRkIHsKKyAgICAgIGJhY2tncm91bmQ6ICNlZmVmZWY7CisgICAgfQorICAgIC5iIHRkIHsKKyAgICAgIGJhY2tncm91bmQ6ICNmZmY7CisgICAgfQorICAgIHRoLCB0ZCB7CisgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgdGggeworICAgICAgZm9udC13ZWlnaHQ6Ym9sZDsKKyAgICAgIGJhY2tncm91bmQ6ICNjY2M7CisgICAgICBjb2xvcjogYmxhY2s7CisgICAgfQorICAgIHRhYmxlLCB0aCwgdGQgeworICAgICAgZm9udC1zaXplOjEwMCU7CisgICAgICBib3JkZXI6IG5vbmUKKyAgICB9CisgICAgdGFibGUubG9nIHRyIHRkLCB0ciB0aCB7CisKKyAgICB9CisgICAgaDIgeworICAgICAgZm9udC13ZWlnaHQ6Ym9sZDsKKyAgICAgIGZvbnQtc2l6ZToxNDAlOworICAgICAgbWFyZ2luLWJvdHRvbTogNTsKKyAgICB9CisgICAgaDMgeworICAgICAgZm9udC1zaXplOjEwMCU7CisgICAgICBmb250LXdlaWdodDpib2xkOworICAgICAgYmFja2dyb3VuZDogIzUyNUQ3NjsKKyAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgIG1hcmdpbi1yaWdodDogMnB4OworICAgICAgbWFyZ2luLWxlZnQ6IDJweDsKKyAgICAgIG1hcmdpbi1ib3R0b206IDA7CisgICAgfQorICAgIC5FcnJvciB7CisgICAgICBmb250LXdlaWdodDpib2xkOyBjb2xvcjpyZWQ7CisgICAgfQorCis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBwcmludCB0aGUgbWV0cmljcyBvZiB0aGUgY2xhc3MgLS0+Cis8eHNsOnRlbXBsYXRlIG1hdGNoPSJjbGFzcyIgbW9kZT0iY2xhc3MuZGV0YWlscyI+CisgIDwhLS14c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IihhbmNlc3Rvcjo6cGFja2FnZSlbbGFzdCgpXS9AbmFtZSIvLS0+CisgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgIDxIVE1MPgorICAgIDxIRUFEPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IiRwYWNrYWdlLm5hbWUiLz4KKyAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9IRUFEPgorICAgIDxCT0RZPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKworICAgICAgPEgzPkNsYXNzIDx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAndW5uYW1lZCBwYWNrYWdlJykiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+LjwveHNsOmlmPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvSDM+CisgICAgICA8dGFibGUgY2xhc3M9ImxvZyIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsbC5tZXRyaWNzLmhlYWRlciIvPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InByaW50Lm1ldHJpY3MiLz4KKyAgICAgIDwvdGFibGU+CisKKyAgICAgIDxIMz5NZXRob2RzPC9IMz4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ibWV0aG9kLm1ldHJpY3MuaGVhZGVyIi8+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibWV0aG9kIiBtb2RlPSJwcmludC5tZXRyaWNzIi8+CisgICAgICA8L3RhYmxlPgorCisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGFnZUZvb3RlciIvPgorICAgIDwvQk9EWT4KKyAgPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBsaXN0IG9mIGNsYXNzZXMgaW4gYSBwYWNrYWdlIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0icGFja2FnZSIgbW9kZT0iY2xhc3Nlcy5saXN0Ij4KKyAgPEhUTUw+CisgICAgPEhFQUQ+CisgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgICAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJwYWNrYWdlLm5hbWUiIHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgICAgPC9IRUFEPgorICAgIDxCT0RZPgorICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCI+CisgICAgICAgICAgICA8SDI+PGEgaHJlZj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvSDI+CisgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+CisKKyAgICAgIDxIMj5DbGFzc2VzPC9IMj4KKyAgICAgIDxUQUJMRSBXSURUSD0iMTAwJSI+CisgICAgICAgIDwhLS0geGFsYW4tbm9kZXNldDpub2Rlc2V0IGZvciBYYWxhbiAxLjIuMiAtLT4KKyAgICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIkZG9jdHJlZS9jbGFzc2VzL2NsYXNzW0BwYWNrYWdlID0gY3VycmVudCgpL0BuYW1lXSI+CisgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgICAgICAgICA8YSBocmVmPSJ7QG5hbWV9Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC94c2w6Zm9yLWVhY2g+CisgICAgICA8L1RBQkxFPgorICAgIDwvQk9EWT4KKyAgPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLQorICBDcmVhdGVzIGFuIGFsbC1jbGFzc2VzLmh0bWwgZmlsZSB0aGF0IGNvbnRhaW5zIGEgbGluayB0byBhbGwgcGFja2FnZS1zdW1tYXJ5Lmh0bWwKKyAgb24gZWFjaCBjbGFzcy4KKy0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibWV0cmljcyIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICA8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJjcmVhdGUuc3R5bGVzaGVldC5saW5rIj4KKyAgICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InBhY2thZ2UubmFtZSIgc2VsZWN0PSInJyIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICA8aDI+Q2xhc3NlczwvaDI+CisgICAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIkZG9jdHJlZS9jbGFzc2VzL2NsYXNzIj4KKyAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiLz4KKyAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuIiBtb2RlPSJhbGwuY2xhc3NlcyIvPgorICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgPC90YWJsZT4KKyAgICA8L2JvZHk+CisgIDwvaHRtbD4KKzwveHNsOnRlbXBsYXRlPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJjbGFzcyIgbW9kZT0iYWxsLmNsYXNzZXMiPgorICAgIDx4c2w6dmFyaWFibGUgbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IkBwYWNrYWdlIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjbGFzcy5uYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgIDx0cj4KKyAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgPGEgdGFyZ2V0PSJjbGFzc0ZyYW1lIj4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+CisgICAgICAgICAgPHhzbDppZiB0ZXN0PSJub3QoJHBhY2thZ2UubmFtZT0ndW5uYW1lZCBwYWNrYWdlJykiPgorICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRyYW5zbGF0ZSgkcGFja2FnZS5uYW1lLCcuJywnLycpIi8+PHhzbDp0ZXh0Pi88L3hzbDp0ZXh0PgorICAgICAgICAgIDwveHNsOmlmPgorICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY2xhc3MubmFtZSIvPjx4c2w6dGV4dD4uaHRtbDwveHNsOnRleHQ+CisgICAgICAgIDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRjbGFzcy5uYW1lIi8+CisgICAgICA8L2E+CisgICAgPC90ZD4KKyAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tCisgIENyZWF0ZXMgYW4gaHRtbCBmaWxlIHRoYXQgY29udGFpbnMgYSBsaW5rIHRvIGFsbCBwYWNrYWdlLXN1bW1hcnkuaHRtbCBmaWxlcyBvbgorICBlYWNoIHBhY2thZ2UgZXhpc3Rpbmcgb24gdGVzdHN1aXRlcy4KKyAgQGJ1ZyB0aGVyZSB3aWxsIGJlIGEgcHJvYmxlbSBoZXJlLCBJIGRvbid0IGtub3cgeWV0IGhvdyB0byBoYW5kbGUgdW5uYW1lZCBwYWNrYWdlIDooCistLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1ldHJpY3MiIG1vZGU9ImFsbC5wYWNrYWdlcyI+CisgIDxodG1sPgorICAgIDxoZWFkPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9Ii4vcGFja2FnZS9AbmFtZSIvPgorICAgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICA8aDI+PGEgaHJlZj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiB0YXJnZXQ9ImNsYXNzRnJhbWUiPkhvbWU8L2E+PC9oMj4KKyAgICAgIDxoMj5QYWNrYWdlczwvaDI+CisgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuLy9wYWNrYWdlW25vdCguL0BuYW1lID0gJ3VubmFtZWQgcGFja2FnZScpXSIgbW9kZT0iYWxsLnBhY2thZ2VzIj4KKyAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgorICAgICAgICA8L3RhYmxlPgorICAgIDwvYm9keT4KKyAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InBhY2thZ2UiIG1vZGU9ImFsbC5wYWNrYWdlcyI+CisgIDx0cj4KKyAgICA8dGQgbm93cmFwPSJub3dyYXAiPgorICAgICAgPGEgaHJlZj0ie3RyYW5zbGF0ZShAbmFtZSwnLicsJy8nKX0vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIHRhcmdldD0iY2xhc3NGcmFtZSI+CisgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgorICAgICAgPC9hPgorICAgIDwvdGQ+CisgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8eHNsOnRlbXBsYXRlIG1hdGNoPSJtZXRyaWNzIiBtb2RlPSJvdmVydmlldy5wYWNrYWdlcyI+CisgIDxodG1sPgorICAgIDxoZWFkPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IicnIi8+CisgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9wZW4oJ2FsbGNsYXNzZXMtZnJhbWUuaHRtbCcsJ2NsYXNzTGlzdEZyYW1lJykiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIi8+CisgICAgPGgzPlN1bW1hcnk8L2gzPgorICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgIDx0cj4KKyAgICAgIDx0aD48YSBocmVmPSJtZXRyaWNzLXJlZmVyZW5jZS5odG1sI1YoRykiPlYoRyk8L2E+PC90aD4KKyAgICAgIDx0aD48YSBocmVmPSJtZXRyaWNzLXJlZmVyZW5jZS5odG1sI0xPQyI+TE9DPC9hPjwvdGg+CisgICAgICA8dGg+PGEgaHJlZj0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCNESVQiPkRJVDwvYT48L3RoPgorICAgICAgPHRoPjxhIGhyZWY9Im1ldHJpY3MtcmVmZXJlbmNlLmh0bWwjTk9BIj5OT0E8L2E+PC90aD4KKyAgICAgIDx0aD48YSBocmVmPSJtZXRyaWNzLXJlZmVyZW5jZS5odG1sI05STSI+TlJNPC9hPjwvdGg+CisgICAgICA8dGg+PGEgaHJlZj0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCNOTE0iPk5MTTwvYT48L3RoPgorICAgICAgPHRoPjxhIGhyZWY9Im1ldHJpY3MtcmVmZXJlbmNlLmh0bWwjV01DIj5XTUM8L2E+PC90aD4KKyAgICAgIDx0aD48YSBocmVmPSJtZXRyaWNzLXJlZmVyZW5jZS5odG1sI1JGQyI+UkZDPC9hPjwvdGg+CisgICAgICA8dGg+PGEgaHJlZj0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCNEQUMiPkRBQzwvYT48L3RoPgorICAgICAgPHRoPjxhIGhyZWY9Im1ldHJpY3MtcmVmZXJlbmNlLmh0bWwjRkFOT1VUIj5GQU5PVVQ8L2E+PC90aD4KKyAgICAgIDx0aD48YSBocmVmPSJtZXRyaWNzLXJlZmVyZW5jZS5odG1sI0NCTyI+Q0JPPC9hPjwvdGg+CisgICAgICA8dGg+PGEgaHJlZj0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCNMQ09NIj5MQ09NPC9hPjwvdGg+CisgICAgICA8dGg+PGEgaHJlZj0ibWV0cmljcy1yZWZlcmVuY2UuaHRtbCNOT0NMIj5OT0NMPC9hPjwvdGg+CisgICAgPC90cj4KKyAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InByaW50Lm1ldHJpY3MiLz4KKyAgICA8L3RhYmxlPgorICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAgICA8dHI+CisgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5OyI+CisgICAgTm90ZTogTWV0cmljcyBldmFsdWF0ZSB0aGUgcXVhbGl0eSBvZiBzb2Z0d2FyZSBieSBhbmFseXppbmcgdGhlIHByb2dyYW0gc291cmNlIGFuZCBxdWFudGlmeWluZworICAgIHZhcmlvdXMga2luZCBvZiBjb21wbGV4aXR5LiBDb21wbGV4aXR5IGlzIGEgY29tbW9uIHNvdXJjZSBvZiBwcm9ibGVtcyBhbmQgZGVmZWN0cyBpbiBzb2Z0d2FyZS4KKyAgICBIaWdoIGNvbXBsZXhpdHkgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgdG8gZGV2ZWxvcCwgdW5kZXJzdGFuZCwgbWFpbnRhaW4sIGV4dGVuZCwgdGVzdCBhbmQgZGVidWcKKyAgICBhIHByb2dyYW0uCisgICAgPHAvPgorICAgIFRoZSBwcmltYXJ5IHVzZSBvZiBtZXRyaWNzIGlzIHRvIGZvY3VzIHlvdXIgYXR0ZW50aW9uIG9uIHRob3NlIHBhcnRzIG9mIGNvZGUgdGhhdCBwb3RlbnRpYWxseSBhcmUKKyAgICBjb21wbGV4aXR5IGhvdCBzcG90cy4gT25jZSB0aGUgY29tcGxleCBhcmVhcyB5b3VyIHByb2dyYW0gaGF2ZSBiZWVuIHVuY292ZXJlZCwgeW91IGNhbiB0YWtlIHJlbWVkaWFsCisgICAgYWN0aW9ucy4KKyAgICBGb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBtZXRyaWNzIGFuZCB0aGVpciBtZWFuaW5nLCBwbGVhc2UgY29uc3VsdAorICAgIE1ldGFtYXRhIE1ldHJpY3MgbWFudWFsLgorICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8L3RhYmxlPgorCisgICAgPGgzPlBhY2thZ2VzPC9oMz4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSIxMDAlIj4KKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbGwubWV0cmljcy5oZWFkZXIiLz4KKyAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIuLy9wYWNrYWdlW25vdChAbmFtZSA9ICd1bm5hbWVkIHBhY2thZ2UnKV0iPgorICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIgb3JkZXI9ImFzY2VuZGluZyIvPgorICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4iIG1vZGU9InByaW50Lm1ldHJpY3MiLz4KKyAgICAgIDwveHNsOmZvci1lYWNoPgorICAgIDwvdGFibGU+CisgICAgPCEtLSBAYnVnIHRoZXJlIGNvdWxkIHNvbWUgY2xhc3NlcyBhdCB0aGlzIGxldmVsIChjbGFzc2VzIGluIHVubmFtZWQgcGFja2FnZSkgLS0+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VGb290ZXIiLz4KKyAgICA8L2JvZHk+CisgICAgPC9odG1sPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9InBhY2thZ2UiIG1vZGU9InBhY2thZ2Uuc3VtbWFyeSI+CisgIDxIVE1MPgorICAgIDxIRUFEPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImNyZWF0ZS5zdHlsZXNoZWV0LmxpbmsiPgorICAgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIiBzZWxlY3Q9IkBuYW1lIi8+CisgICAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgIDwvSEVBRD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9wZW4oJ3BhY2thZ2UtZnJhbWUuaHRtbCcsJ2NsYXNzTGlzdEZyYW1lJykiPgorICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InBhZ2VIZWFkZXIiLz4KKyAgICAgIDwhLS0gY3JlYXRlIGFuIGFuY2hvciB0byB0aGlzIHBhY2thZ2UgbmFtZSAtLT4KKyAgICAgIDxoMz5QYWNrYWdlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPjwvaDM+CisKKyAgICAgIDx0YWJsZSBjbGFzcz0ibG9nIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1IiBjZWxsc3BhY2luZz0iMiIgd2lkdGg9IjEwMCUiPgorICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYWxsLm1ldHJpY3MuaGVhZGVyIi8+CisgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0icHJpbnQubWV0cmljcyIvPgorICAgICAgPC90YWJsZT4KKworICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5OyI+CisgICAgICBOb3RlOiBNZXRyaWNzIGV2YWx1YXRlIHRoZSBxdWFsaXR5IG9mIHNvZnR3YXJlIGJ5IGFuYWx5emluZyB0aGUgcHJvZ3JhbSBzb3VyY2UgYW5kIHF1YW50aWZ5aW5nCisgICAgICB2YXJpb3VzIGtpbmQgb2YgY29tcGxleGl0eS4gQ29tcGxleGl0eSBpcyBhIGNvbW1vbiBzb3VyY2Ugb2YgcHJvYmxlbXMgYW5kIGRlZmVjdHMgaW4gc29mdHdhcmUuCisgICAgICBIaWdoIGNvbXBsZXhpdHkgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgdG8gZGV2ZWxvcCwgdW5kZXJzdGFuZCwgbWFpbnRhaW4sIGV4dGVuZCwgdGVzdCBhbmQgZGVidWcKKyAgICAgIGEgcHJvZ3JhbS4KKyAgICAgIDxwLz4KKyAgICAgIFRoZSBwcmltYXJ5IHVzZSBvZiBtZXRyaWNzIGlzIHRvIGZvY3VzIHlvdXIgYXR0ZW50aW9uIG9uIHRob3NlIHBhcnRzIG9mIGNvZGUgdGhhdCBwb3RlbnRpYWxseSBhcmUKKyAgICAgIGNvbXBsZXhpdHkgaG90IHNwb3RzLiBPbmNlIHRoZSBjb21wbGV4IGFyZWFzIHlvdXIgcHJvZ3JhbSBoYXZlIGJlZW4gdW5jb3ZlcmVkLCB5b3UgY2FuIHRha2UgcmVtZWRpYWwKKyAgICAgIGFjdGlvbnMuCisgICAgICBGb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBtZXRyaWNzIGFuZCB0aGVpciBtZWFuaW5nLCBwbGVhc2UgY29uc3VsdAorICAgICAgTWV0YW1hdGEgTWV0cmljcyBtYW51YWwuCisgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+CisKKyAgICAgIDx4c2w6dmFyaWFibGUgbmFtZT0iY2xhc3Nlcy1pbi1wYWNrYWdlIiBzZWxlY3Q9IiRkb2N0cmVlL2NsYXNzZXMvY2xhc3NbQHBhY2thZ2UgPSBjdXJyZW50KCkvQG5hbWVdIi8+CisgICAgICA8eHNsOmlmIHRlc3Q9ImNvdW50KCRjbGFzc2VzLWluLXBhY2thZ2UpICZndDsgMCI+CisgICAgICAgIDxIMz5DbGFzc2VzPC9IMz4KKyAgICAgICAgPHRhYmxlIGNsYXNzPSJsb2ciIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiIGNlbGxzcGFjaW5nPSIyIiB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImFsbC5tZXRyaWNzLmhlYWRlciIvPgorICAgICAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PSIkY2xhc3Nlcy1pbi1wYWNrYWdlIj4KKyAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIvPgorICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLiIgbW9kZT0icHJpbnQubWV0cmljcyIvPgorICAgICAgICAgIDwveHNsOmZvci1lYWNoPgorICAgICAgICA8L3RhYmxlPgorICAgICAgPC94c2w6aWY+CisKKyAgICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIi8+CisgICAgPC9ib2R5PgorICA8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tCisgICAgdHJhbnNmb3JtIHN0cmluZyBsaWtlIGEuYi5jIHRvIC4uLy4uLy4uLworICAgIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRyYW5zZm9ybSBpbnRvIGEgZGVzY2VuZGluZyBkaXJlY3RvcnkgcGF0aAorLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9InBhdGgiPgorICA8eHNsOnBhcmFtIG5hbWU9InBhdGgiLz4KKyAgPHhzbDppZiB0ZXN0PSJjb250YWlucygkcGF0aCwnLicpIj4KKyAgICA8eHNsOnRleHQ+Li4vPC94c2w6dGV4dD4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0icGF0aCI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZy1hZnRlcigkcGF0aCwnLicpIi8+PC94c2w6d2l0aC1wYXJhbT4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICA8L3hzbDppZj4KKyAgPHhzbDppZiB0ZXN0PSJub3QoY29udGFpbnMoJHBhdGgsJy4nKSkgYW5kIG5vdCgkcGF0aCA9ICcnKSI+CisgICAgPHhzbDp0ZXh0Pi4uLzwveHNsOnRleHQ+CisgIDwveHNsOmlmPgorPC94c2w6dGVtcGxhdGU+CisKKworPCEtLSBjcmVhdGUgdGhlIGxpbmsgdG8gdGhlIHN0eWxlc2hlZXQgYmFzZWQgb24gdGhlIHBhY2thZ2UgbmFtZSAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0iY3JlYXRlLnN0eWxlc2hlZXQubGluayI+CisgIDx4c2w6cGFyYW0gbmFtZT0icGFja2FnZS5uYW1lIi8+CisgIDxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBUSVRMRT0iU3R5bGUiPjx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPjx4c2w6aWYgdGVzdD0ibm90KCRwYWNrYWdlLm5hbWUgPSAndW5uYW1lZCBwYWNrYWdlJykiPjx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJwYXRoIj48eHNsOndpdGgtcGFyYW0gbmFtZT0icGF0aCIgc2VsZWN0PSIkcGFja2FnZS5uYW1lIi8+PC94c2w6Y2FsbC10ZW1wbGF0ZT48L3hzbDppZj5zdHlsZXNoZWV0LmNzczwveHNsOmF0dHJpYnV0ZT48L0xJTks+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIFBhZ2UgSGVhZGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWdlSGVhZGVyIj4KKworICA8IS0tIGpha2FydGEgbG9nbyAtLT4KKyAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iMTAwJSI+CisgIDx0cj4KKyAgICA8dGQgY2xhc3M9ImJhbm5lcmNlbGwiIHJvd3NwYW49IjIiPgorICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy8iPgorICAgICAgPGltZyBzcmM9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvaW1hZ2VzL2pha2FydGEtbG9nby5naWYiIGFsdD0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZyIgYWxpZ249ImxlZnQiIGJvcmRlcj0iMCIvPgorICAgICAgPC9hPgorICAgIDwvdGQ+CisgICAgPHRkIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48aDI+U291cmNlIENvZGUgTWV0cmljczwvaDI+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICA8dGQgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPkRlc2lnbmVkIGZvciB1c2Ugd2l0aCA8YSBocmVmPSdodHRwOi8vd3d3LndlYmdhaW4uY29tL3Byb2R1Y3RzL3F1YWxpdHlfYW5hbHl6ZXIvJz5XZWJnYWluIFFBL01ldGFtYXRhIE1ldHJpY3M8L2E+IGFuZCA8YSBocmVmPSdodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnJz5BbnQ8L2E+LjwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKyAgPGhyIHNpemU9IjEiLz4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIFBhZ2UgRm9vdGVyIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJwYWdlRm9vdGVyIj4KKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyPjx0ZD48aHIgbm9zaGFkZT0ieWVzIiBzaXplPSIxIi8+PC90ZD48L3RyPgorICAgICAgPHRyPjx0ZD4KKyAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgY29sb3I9IiM1MjVENzYiIHNpemU9Ii0xIj48ZW0+CisgICAgICBDb3B5cmlnaHQgJiMxNjk7IDE5OTktMjAwMSwgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAgICAgIDwvZW0+PC9mb250PjwvZGl2PgorICAgICAgPC90ZD48L3RyPgorICAgIDwvdGFibGU+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBjbGFzcyBoZWFkZXIgLS0+Cis8eHNsOnRlbXBsYXRlIG5hbWU9ImFsbC5tZXRyaWNzLmhlYWRlciI+CisgIDx0cj4KKyAgICA8dGggd2lkdGg9IjgwJSI+TmFtZTwvdGg+CisgICAgPHRoIG5vd3JhcD0ibm93cmFwIj5WKEcpPC90aD4KKyAgICA8dGg+TE9DPC90aD4KKyAgICA8dGg+RElUPC90aD4KKyAgICA8dGg+Tk9BPC90aD4KKyAgICA8dGg+TlJNPC90aD4KKyAgICA8dGg+TkxNPC90aD4KKyAgICA8dGg+V01DPC90aD4KKyAgICA8dGg+UkZDPC90aD4KKyAgICA8dGg+REFDPC90aD4KKyAgICA8dGg+RkFOT1VUPC90aD4KKyAgICA8dGg+Q0JPPC90aD4KKyAgICA8dGg+TENPTTwvdGg+CisgICAgPHRoPk5PQ0w8L3RoPgorICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gbWV0aG9kIGhlYWRlciAtLT4KKzx4c2w6dGVtcGxhdGUgbmFtZT0ibWV0aG9kLm1ldHJpY3MuaGVhZGVyIj4KKyAgPHRyPgorICAgIDx0aCB3aWR0aD0iODAlIj5OYW1lPC90aD4KKyAgICA8dGggbm93cmFwPSJub3dyYXAiPlYoRyk8L3RoPgorICAgIDx0aD5MT0M8L3RoPgorICAgIDx0aD5GQU5PVVQ8L3RoPgorICAgIDx0aD5DQk88L3RoPgorICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzwhLS0gbWV0aG9kIGluZm9ybWF0aW9uIC0tPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibWV0aG9kIiBtb2RlPSJwcmludC5tZXRyaWNzIj4KKyAgPHRyPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGUtcm93Ii8+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQG5hbWUiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkB2ZyIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQGxvYyIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQGZhbm91dCIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQGNibyIvPjwvdGQ+CisgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPCEtLSBjbGFzcyBpbmZvcm1hdGlvbiAtLT4KKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNsYXNzIiBtb2RlPSJwcmludC5tZXRyaWNzIj4KKyAgPHRyPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGUtcm93Ii8+CisgICAgPHRkPjxhIGhyZWY9IntAbmFtZX0uaHRtbCI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQHZnIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbG9jIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAZGl0Ii8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbm9hIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbnJtIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbmxtIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAd21jIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAcmZjIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAZGFjIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAZmFub3V0Ii8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAY2JvIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbGNvbSIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iQG5vY2wiLz48L3RkPgorICA8L3RyPgorPC94c2w6dGVtcGxhdGU+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGV8cGFja2FnZSIgbW9kZT0icHJpbnQubWV0cmljcyI+CisgIDx0cj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYWx0ZXJuYXRlLXJvdyIvPgorICAgIDx0ZD4KKyAgICA8YSBocmVmPSJ7dHJhbnNsYXRlKEBuYW1lLCcuJywnLycpfS9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgdGFyZ2V0PSJjbGFzc0ZyYW1lIj4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KKyAgICA8L2E+CisgICAgPC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAdmciLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBsb2MiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBkaXQiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBub2EiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBucm0iLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBubG0iLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkB3bWMiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkByZmMiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBkYWMiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBmYW5vdXQiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBjYm8iLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IkBsY29tIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJAbm9jbCIvPjwvdGQ+CisgIDwvdHI+Cis8L3hzbDp0ZW1wbGF0ZT4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibWV0cmljcyIgbW9kZT0icHJpbnQubWV0cmljcyI+CisgIDx0cj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iYWx0ZXJuYXRlLXJvdyIvPgorICAgICAgPCEtLSB0aGUgZ2xvYmFsIG1ldHJpY3MgaXMgdGhlIHRvcCBwYWNrYWdlIG1ldHJpY3MgLS0+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0B2ZyIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0Bsb2MiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vcGFja2FnZS9AZGl0Ii8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuL3BhY2thZ2UvQG5vYSIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0Bucm0iLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vcGFja2FnZS9AbmxtIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuL3BhY2thZ2UvQHdtYyIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0ByZmMiLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vcGFja2FnZS9AZGFjIi8+PC90ZD4KKyAgICA8dGQ+PHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIuL3BhY2thZ2UvQGZhbm91dCIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0BjYm8iLz48L3RkPgorICAgIDx0ZD48eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii4vcGFja2FnZS9AbGNvbSIvPjwvdGQ+CisgICAgPHRkPjx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLi9wYWNrYWdlL0Bub2NsIi8+PC90ZD4KKyAgPC90cj4KKzwveHNsOnRlbXBsYXRlPgorCis8IS0tIGFsdGVybmF0ZWQgcm93IHN0eWxlIC0tPgorPHhzbDp0ZW1wbGF0ZSBuYW1lPSJhbHRlcm5hdGUtcm93Ij4KKzx4c2w6YXR0cmlidXRlIG5hbWU9ImNsYXNzIj4KKyAgPHhzbDppZiB0ZXN0PSJwb3NpdGlvbigpIG1vZCAyID0gMSI+YTwveHNsOmlmPgorICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgbW9kIDIgPSAwIj5iPC94c2w6aWY+Cis8L3hzbDphdHRyaWJ1dGU+Cis8L3hzbDp0ZW1wbGF0ZT4KKworCis8IS0tIGhvdyB0byBkaXNwbGF5IHRoZSBtZXRyaWNzIHdpdGggdGhlaXIgbWF4IHZhbHVlIC0tPgorPCEtLSBAdG9kbyB0aGUgbWF4IHZhbHVlcyBtdXN0IGJlIGV4dGVybmFsIHRvIHRoZSB4c2wgLS0+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQHZnIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS12YWx1ZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iY3VycmVudCgpIi8+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibWF4IiBzZWxlY3Q9IiR2Zy5tYXgiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAbG9jIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS12YWx1ZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iY3VycmVudCgpIi8+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibWF4IiBzZWxlY3Q9IiRsb2MubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQGRpdCI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdmFsdWUiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9ImN1cnJlbnQoKSIvPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im1heCIgc2VsZWN0PSIkZGl0Lm1heCIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IkBub2EiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJjdXJyZW50KCkiLz4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJtYXgiIHNlbGVjdD0iJG5vYS5tYXgiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAbnJtIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS12YWx1ZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iY3VycmVudCgpIi8+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibWF4IiBzZWxlY3Q9IiRucm0ubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQG5sbSI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdmFsdWUiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9ImN1cnJlbnQoKSIvPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im1heCIgc2VsZWN0PSIkbmxtLm1heCIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IkB3bWMiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJjdXJyZW50KCkiLz4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJtYXgiIHNlbGVjdD0iJHdtYy5tYXgiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAcmZjIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS12YWx1ZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iY3VycmVudCgpIi8+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibWF4IiBzZWxlY3Q9IiRyZmMubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQGRhYyI+CisgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImRpc3BsYXktdmFsdWUiPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9InZhbHVlIiBzZWxlY3Q9ImN1cnJlbnQoKSIvPgorICAgICAgPHhzbDp3aXRoLXBhcmFtIG5hbWU9Im1heCIgc2VsZWN0PSIkZGFjLm1heCIvPgorICAgIDwveHNsOmNhbGwtdGVtcGxhdGU+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9IkBmYW5vdXQiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJjdXJyZW50KCkiLz4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJtYXgiIHNlbGVjdD0iJGZhbm91dC5tYXgiLz4KKyAgICA8L3hzbDpjYWxsLXRlbXBsYXRlPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJAY2JvIj4KKyAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iZGlzcGxheS12YWx1ZSI+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0idmFsdWUiIHNlbGVjdD0iY3VycmVudCgpIi8+CisgICAgICA8eHNsOndpdGgtcGFyYW0gbmFtZT0ibWF4IiBzZWxlY3Q9IiRjYm8ubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQGxjb20iPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJjdXJyZW50KCkiLz4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJtYXgiIHNlbGVjdD0iJGxjb20ubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iQG5vY2wiPgorICAgIDx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJ2YWx1ZSIgc2VsZWN0PSJjdXJyZW50KCkiLz4KKyAgICAgIDx4c2w6d2l0aC1wYXJhbSBuYW1lPSJtYXgiIHNlbGVjdD0iJG5vY2wubWF4Ii8+CisgICAgPC94c2w6Y2FsbC10ZW1wbGF0ZT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJkaXNwbGF5LXZhbHVlIj4KKyAgICA8eHNsOnBhcmFtIG5hbWU9InZhbHVlIi8+CisgICAgPHhzbDpwYXJhbSBuYW1lPSJtYXgiLz4KKyAgICA8eHNsOmlmIHRlc3Q9IiR2YWx1ZSA+ICRtYXgiPgorICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPkVycm9yPC94c2w6YXR0cmlidXRlPgorICAgIDwveHNsOmlmPgorICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkdmFsdWUiLz4KKyAgPC94c2w6dGVtcGxhdGU+CisKKzwveHNsOnN0eWxlc2hlZXQ+CisKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy90YWdkaWZmLnhzbCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2V0Yy90YWdkaWZmLnhzbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMmExZTZmCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvZXRjL3RhZ2RpZmYueHNsCkBAIC0wLDAgKzEsMTc3IEBACis8IS0tCisgICAgQ29weXJpZ2h0ICAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorICAgCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAgCisgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICAgCistLT4KKzwhLS0gYSBzdHlsZXNoZWV0IHRvIGRpc3BsYXkgY2hhbmdlbG9ncyBhbGEgbmV0YmVhbnMgLS0+Cis8eHNsOnN0eWxlc2hlZXQKKyAgICB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKKyAgICB2ZXJzaW9uPSIxLjAiPgorICA8eHNsOnBhcmFtIG5hbWU9InRpdGxlIi8+CisgIDx4c2w6cGFyYW0gbmFtZT0ibW9kdWxlIi8+CisgIDx4c2w6cGFyYW0gbmFtZT0iY3Zzd2ViIi8+CisKKyAgPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIiBpbmRlbnQ9InllcyIvPgorCisgIDwhLS0gQ29weSBzdGFuZGFyZCBkb2N1bWVudCBlbGVtZW50cy4gIEVsZW1lbnRzIHRoYXQKKyAgICAgICBzaG91bGQgYmUgaWdub3JlZCBtdXN0IGJlIGZpbHRlcmVkIGJ5IGFwcGx5LXRlbXBsYXRlcworICAgICAgIHRhZ3MuIC0tPgorICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIqIj4KKyAgICA8eHNsOmNvcHk+CisgICAgICA8eHNsOmNvcHktb2Ygc2VsZWN0PSJhdHRyaWJ1dGU6OipbLiAhPSAnJ10iLz4KKyAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz4KKyAgICA8L3hzbDpjb3B5PgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJ0YWdkaWZmIj4KKyAgICA8SFRNTD4KKyAgICAgIDxIRUFEPgorICAgICAgICA8VElUTEU+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiR0aXRsZSIvPjwvVElUTEU+CisgICAgICA8L0hFQUQ+CisgICAgICA8Qk9EWSBsaW5rPSIjMDAwMDAwIiBhbGluaz0iIzAwMDAwMCIgdmxpbms9IiMwMDAwMDAiIHRleHQ9IiMwMDAwMDAiPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgIGJvZHksIHAgeworICAgICAgICAgIGZvbnQtZmFtaWx5OiB2ZXJkYW5hLGFyaWFsLGhlbHZldGljYTsKKyAgICAgICAgICBmb250LXNpemU6IDgwJTsKKyAgICAgICAgICBjb2xvcjojMDAwMDAwOworICAgICAgICAgIH0KKwkgIC5kYXRlQW5kQXV0aG9yIHsKKyAgICAgICAgICBmb250LWZhbWlseTogdmVyZGFuYSxhcmlhbCxoZWx2ZXRpY2E7CisgICAgICAgICAgZm9udC1zaXplOiA4MCU7CisgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgdGV4dC1hbGlnbjpsZWZ0OworICAgICAgICAgIGJhY2tncm91bmQ6I2E2Y2FmMDsKKwkgIH0KKyAgICAgICAgICB0ciwgdGR7CisgICAgICAgICAgZm9udC1mYW1pbHk6IHZlcmRhbmEsYXJpYWwsaGVsdmV0aWNhOworICAgICAgICAgIGZvbnQtc2l6ZTogODAlOworICAgICAgICAgIGJhY2tncm91bmQ6I2VlZWVlMDsKKyAgICAgICAgICB9CSAgCisJICA8L3N0eWxlPiAgICAgICAgCisgICAgICAgICAgPGgxPgorICAgICAgICAgICAgPGEgbmFtZT0idG9wIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRpdGxlIi8+PC9hPgorICAgICAgICAgIDwvaDE+CisgICAgICAgICAgVGFnZGlmZiBiZXR3ZWVuIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAc3RhcnRUYWciLz4gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBzdGFydERhdGUiLz4gYW5kCisJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGVuZFRhZyIvPiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGVuZERhdGUiLz4KKyAgICAgICAgICA8cCBhbGlnbj0icmlnaHQiPkRlc2lnbmVkIGZvciB1c2Ugd2l0aCA8YSBocmVmPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvIj5BbnQ8L2E+LjwvcD4KKyAgICAgICAgICA8aHIgc2l6ZT0iMiIvPgorCTxhIG5hbWU9IlRPUCIvPgorCTx0YWJsZSB3aWR0aD0iMTAwJSI+CisJCTx0cj4KKwkJCTx0ZCBhbGlnbj0icmlnaHQiPgorCQkJCTxhIGhyZWY9IiNOZXciPk5ldyBGaWxlczwvYT4gfAorCQkJCTxhIGhyZWY9IiNNb2RpZmllZCI+TW9kaWZpZWQgRmlsZXM8L2E+IHwKKwkJCQk8YSBocmVmPSIjUmVtb3ZlZCI+UmVtb3ZlZCBGaWxlczwvYT4KKwkJCTwvdGQ+CisJCTwvdHI+CisJPC90YWJsZT4KKyAgICAgICAgPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMSI+CisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzaG93LWVudHJpZXMiPgorCQkJPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRpdGxlIj5OZXcgRmlsZXM8L3hzbDp3aXRoLXBhcmFtPgorCQkJPHhzbDp3aXRoLXBhcmFtIG5hbWU9ImFuY2hvciI+TmV3PC94c2w6d2l0aC1wYXJhbT4KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJlbnRyaWVzIiBzZWxlY3Q9Ii4vL2VudHJ5W2ZpbGUvcmV2aXNpb25dW25vdChmaWxlL3ByZXZyZXZpc2lvbildIi8+CisJCTwveHNsOmNhbGwtdGVtcGxhdGU+CisKKwkJPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9InNob3ctZW50cmllcyI+CisJCQk8eHNsOndpdGgtcGFyYW0gbmFtZT0idGl0bGUiPk1vZGlmaWVkIEZpbGVzPC94c2w6d2l0aC1wYXJhbT4KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJhbmNob3IiPk1vZGlmaWVkPC94c2w6d2l0aC1wYXJhbT4KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJlbnRyaWVzIiBzZWxlY3Q9Ii4vL2VudHJ5W2ZpbGUvcmV2aXNpb25dW2ZpbGUvcHJldnJldmlzaW9uXSIvPgorCQk8L3hzbDpjYWxsLXRlbXBsYXRlPgorCisJCTx4c2w6Y2FsbC10ZW1wbGF0ZSBuYW1lPSJzaG93LWVudHJpZXMiPgorCQkJPHhzbDp3aXRoLXBhcmFtIG5hbWU9InRpdGxlIj5SZW1vdmVkIEZpbGVzPC94c2w6d2l0aC1wYXJhbT4KKwkJCTx4c2w6d2l0aC1wYXJhbSBuYW1lPSJhbmNob3IiPlJlbW92ZWQ8L3hzbDp3aXRoLXBhcmFtPgorCQkJPHhzbDp3aXRoLXBhcmFtIG5hbWU9ImVudHJpZXMiIHNlbGVjdD0iLi8vZW50cnlbbm90KGZpbGUvcmV2aXNpb24pXVtub3QoZmlsZS9wcmV2cmV2aXNpb24pXSIvPgorCQk8L3hzbDpjYWxsLXRlbXBsYXRlPgorICAgICAgICA8L1RBQkxFPgorICAgICAgICAKKyAgICAgIDwvQk9EWT4KKyAgICA8L0hUTUw+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbmFtZT0ic2hvdy1lbnRyaWVzIj4KKwk8eHNsOnBhcmFtIG5hbWU9InRpdGxlIi8+CisJPHhzbDpwYXJhbSBuYW1lPSJhbmNob3IiLz4KKwk8eHNsOnBhcmFtIG5hbWU9ImVudHJpZXMiLz4KKwk8VFI+CisJCTxURCBjb2xzcGFuPSIyIiBjbGFzcz0iZGF0ZUFuZEF1dGhvciI+CisJCQk8YT4KKwkJCQk8eHNsOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGFuY2hvciIvPjwveHNsOmF0dHJpYnV0ZT4KKwkJCQk8eHNsOnZhbHVlLW9mIHNlbGVjdD0iJHRpdGxlIi8+IC0gPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImNvdW50KCRlbnRyaWVzKSIvPiBlbnRyaWVzCisJCQk8L2E+CisJCQk8YSBocmVmPSIjVE9QIj4oYmFjayB0byB0b3ApPC9hPgorCQk8L1REPgorCTwvVFI+CisJPFRSPgorCQk8VEQgd2lkdGg9IjIwIj4KKwkJCTx4c2w6dGV4dD4gICAgPC94c2w6dGV4dD4KKwkJPC9URD4KKwkJPFREPgorCQkgICAgICAgIDx1bD4KKwkJCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9IiRlbnRyaWVzIi8+CisJCQk8L3VsPgorCQk8L1REPgorCTwvVFI+CisgIDwveHNsOnRlbXBsYXRlPiAgCisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZW50cnkiPgorCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iZmlsZSIvPgorICA8L3hzbDp0ZW1wbGF0ZT4KKworICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJkYXRlIj4KKyAgICA8aT48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPjwvaT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0idGltZSI+CisgICAgPGk+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L2k+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImF1dGhvciI+CisgICAgPGk+CisgICAgICA8YT4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+bWFpbHRvOjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvPgorICAgICAgPC9hPgorICAgIDwvaT4KKyAgPC94c2w6dGVtcGxhdGU+CisKKyAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmlsZSI+CisgICAgPGxpPgorICAgICAgPGEgdGFyZ2V0PSJfbmV3Ij4KKyAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iaHJlZiI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRjdnN3ZWIiLz48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJG1vZHVsZSIgLz4vPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiIC8+PC94c2w6YXR0cmlidXRlPgorICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIgLz4KKyAgICAgIDwvYT4KKyAgICAgIDx4c2w6aWYgdGVzdD0ic3RyaW5nLWxlbmd0aChwcmV2cmV2aXNpb24pID4gMCBvciBzdHJpbmctbGVuZ3RoKHJldmlzaW9uKSA+IDAiPgorICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgorICAgICAgPGEgdGFyZ2V0PSJfbmV3Ij4KKyAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgPHhzbDp3aGVuIHRlc3Q9InN0cmluZy1sZW5ndGgocHJldnJldmlzaW9uKSA9IDAgIj4KKyAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9ImhyZWYiPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY3Zzd2ViIi8+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRtb2R1bGUiIC8+Lzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lIiAvPj9yZXY9PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InJldmlzaW9uIiAvPiZhbXA7Y29udGVudC10eXBlPXRleHQveC1jdnN3ZWItbWFya3VwPC94c2w6YXR0cmlidXRlPgorICAgICAgICAgIDwveHNsOndoZW4+CisgICAgICAgICAgPHhzbDpvdGhlcndpc2U+CisgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJocmVmIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iJGN2c3dlYiIvPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkbW9kdWxlIiAvPi88eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIgLz4/cjE9PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InJldmlzaW9uIiAvPiZhbXA7cjI9PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InByZXZyZXZpc2lvbiIvPiZhbXA7ZGlmZl9mb3JtYXQ9aDwveHNsOmF0dHJpYnV0ZT4KKyAgICAgICAgICA8L3hzbDpvdGhlcndpc2U+CisgICAgICAgIDwveHNsOmNob29zZT4gKDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJyZXZpc2lvbiIvPikKKyAgICAgIDwvYT4KKyAgICAgIDwveHNsOmlmPgorICAgIDwvbGk+CisgIDwveHNsOnRlbXBsYXRlPgorCisgIDwhLS0gQW55IGVsZW1lbnRzIHdpdGhpbiBhIG1zZyBhcmUgcHJvY2Vzc2VkLAorICAgICAgIHNvIHRoYXQgd2UgY2FuIHByZXNlcnZlIEhUTUwgdGFncy4gLS0+CisgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1zZyI+CisgICAgPGI+PHhzbDphcHBseS10ZW1wbGF0ZXMvPjwvYj4KKyAgPC94c2w6dGVtcGxhdGU+CisgIAorPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYW50bHIuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hbnRsci5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWIxMjdmOQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYW50bHIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYW50bHJzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hbnRscnNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTg3MzZlOQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYW50bHJzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJjZWwuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtYmNlbC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2RjNTIwMgotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJjZWwuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJjZWxzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtYmNlbHNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDlkYjM2NAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJjZWxzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJzZi5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1ic2YuamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlZTY4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1ic2YuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWJzZnNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1ic2ZzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzNmJhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1ic2ZzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWxvZzRqLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWxvZzRqLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40Yzk0MjdlCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtbG9nNGouamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWxvZzRqc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLWxvZzRqc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOGI0YTMzCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtbG9nNGpzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLW9yby5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1vcm8uamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMwMDEzYmEKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1vcm8uamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLW9yb3NyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1vcm9zcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZiOGU3OTMKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1vcm9zcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlZ2V4cC5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1yZWdleHAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzOTNhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1yZWdleHAuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlZ2V4cHNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1yZWdleHBzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4OWI5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWFwYWNoZS1yZWdleHBzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlc29sdmVyLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlc29sdmVyLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMTlhNDFkCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtcmVzb2x2ZXIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlc29sdmVyc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtYXBhY2hlLXJlc29sdmVyc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NmQzZTlhCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1hcGFjaGUtcmVzb2x2ZXJzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1sb2dnaW5nLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1sb2dnaW5nLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mY2JhMjE3Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1jb21tb25zLWxvZ2dpbmcuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1sb2dnaW5nc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1sb2dnaW5nc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ODg1NGYwCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1jb21tb25zLWxvZ2dpbmdzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1uZXQuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1jb21tb25zLW5ldC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjQ5MGM5NgotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1uZXQuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1uZXRzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1jb21tb25zLW5ldHNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjQ1ODgxZQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtY29tbW9ucy1uZXRzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamFpLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamFpLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNjkwMWYzCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qYWkuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamFpc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamFpc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNjY4OTdhCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qYWlzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamF2YW1haWwuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qYXZhbWFpbC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODc3OGU5MwotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamF2YW1haWwuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamF2YW1haWxzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qYXZhbWFpbHNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjYxMWEwZAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamF2YW1haWxzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamRlcGVuZC5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpkZXBlbmQuamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3Y2Q4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpkZXBlbmQuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtamRlcGVuZHNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpkZXBlbmRzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjMjljOGQKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpkZXBlbmRzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtam1mLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtam1mLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMzYzODVjCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qbWYuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtam1mc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtam1mc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZDVjMjJjCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qbWZzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanNjaC5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpzY2guamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NjYyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpzY2guamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanNjaHNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpzY2hzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI1ZGEzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LWpzY2hzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanVuaXQuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qdW5pdC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmE0M2ZiMgotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanVuaXQuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanVuaXRzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1qdW5pdHNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGYyNzQzMQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtanVuaXRzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbGF1bmNoZXIuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1sYXVuY2hlci5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTJhMWU3OAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbGF1bmNoZXIuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbGF1bmNoZXJzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1sYXVuY2hlcnNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2NhMWJmNQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbGF1bmNoZXJzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbmV0cmV4eC5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LW5ldHJleHguamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2NDZmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LW5ldHJleHguamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbmV0cmV4eHNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LW5ldHJleHhzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmZWI3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LW5ldHJleHhzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbm9kZXBzLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbm9kZXBzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZDIwOWZhCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1ub2RlcHMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbm9kZXBzc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtbm9kZXBzc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDk3MjY5Ci0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1ub2RlcHNzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3RhcnRlYW0uamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zdGFydGVhbS5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY4YjE5MAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3RhcnRlYW0uamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3RhcnRlYW1zcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zdGFydGVhbXNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzZmZDE4MQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3RhcnRlYW1zcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3R5bGVib29rLmphciBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3R5bGVib29rLmphcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZDZhYjIzCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zdHlsZWJvb2suamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3R5bGVib29rc3JjLnppcCBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3R5bGVib29rc3JjLnppcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kODExY2NmCi0tLSAvZGV2L251bGwKKysrIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zdHlsZWJvb2tzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3dpbmcuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zd2luZy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjBjMzk4MQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3dpbmcuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3dpbmdzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC1zd2luZ3NyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzNhNTc0YwotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtc3dpbmdzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtdHJheC5qYXIgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LXRyYXguamFyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmODM4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LXRyYXguamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtdHJheHNyYy56aXAgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LXRyYXhzcmMuemlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1MmI0ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBlbmRlbmNpZXMvcGx1Z2lucy9vcmcuYXBhY2hlLmFudC9saWIvYW50LXRyYXhzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtd2VibG9naWMuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC13ZWJsb2dpYy5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWYwZGUxOQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtd2VibG9naWMuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtd2VibG9naWNzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC13ZWJsb2dpY3NyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODc0YjhiYQotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQtd2VibG9naWNzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQuamFyIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGE1NmE1OAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnQuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnRzcmMuemlwIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvbGliL2FudHNyYy56aXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTAyODkwYwotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L2xpYi9hbnRzcmMuemlwCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L3BsdWdpbi5wcm9wZXJ0aWVzIGIvZGVwZW5kZW5jaWVzL3BsdWdpbnMvb3JnLmFwYWNoZS5hbnQvcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGI1ZjhhMAotLS0gL2Rldi9udWxsCisrKyBiL2RlcGVuZGVuY2llcy9wbHVnaW5zL29yZy5hcGFjaGUuYW50L3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworcGx1Z2luTmFtZSA9IEFwYWNoZSBBbnQKK3Byb3ZpZGVyTmFtZSA9IEVjbGlwc2Uub3JnCg==