PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQoNCjxoZWFkPg0KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+DQogICAgPHRpdGxlPlN1c3BpY2lvdXMgSVAgQWRkcmVzczwvdGl0bGU+DQogICAgPHN0eWxlPg0KICAgICAgICBib2R5IHsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgQXJpYWwsIHNhbnMtc2VyaWY7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBtYXJnaW46IDA7DQogICAgICAgIH0NCg0KICAgICAgICAuY29udGFpbmVyIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7DQogICAgICAgICAgICBwYWRkaW5nOiA0MHB4Ow0KICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RhZGNlMDsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsNCiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuNXMgZWFzZS1pbi1vdXQ7DQogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICB9DQoNCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW4gew0KICAgICAgICAgICAgZnJvbSB7DQogICAgICAgICAgICAgICAgb3BhY2l0eTogMDsNCiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICB0byB7DQogICAgICAgICAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAuaGVhZGVyIHsNCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7DQogICAgICAgIH0NCg0KICAgICAgICAuaGVhZGVyIGgxIHsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDsNCiAgICAgICAgICAgIGNvbG9yOiAjMjAyMTI0Ow0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5oZWFkZXIgaDE6OmFmdGVyIHsNCiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOw0KICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7DQogICAgICAgICAgICB3aWR0aDogNTBweDsNCiAgICAgICAgICAgIGhlaWdodDogM3B4Ow0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFhNzNlODsNCiAgICAgICAgICAgIG1hcmdpbjogMTBweCBhdXRvIDA7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7DQogICAgICAgIH0NCg0KICAgICAgICAuYWxlcnQtaWNvbiB7DQogICAgICAgICAgICBmb250LXNpemU6IDQ4cHg7DQogICAgICAgICAgICBjb2xvcjogI2ZiYmMwNTsNCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7DQogICAgICAgICAgICBhbmltYXRpb246IGJvdW5jZSAxLjVzIGluZmluaXRlOw0KICAgICAgICB9DQoNCiAgICAgICAgQGtleWZyYW1lcyBib3VuY2Ugew0KDQogICAgICAgICAgICAwJSwNCiAgICAgICAgICAgIDEwMCUgew0KICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgNTAlIHsNCiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgLmluc3RydWN0aW9uIHsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICAgICAgICAgIGNvbG9yOiAjNWY2MzY4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsNCiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7DQogICAgICAgIH0NCg0KICAgICAgICAuaW5zdHJ1Y3Rpb24gcCB7DQogICAgICAgICAgICBtYXJnaW46IDE1cHggMDsNCiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgIH0NCg0KICAgICAgICAuY29tbWFuZCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmM2Y0Ow0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlOw0KICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICAgICAgY29sb3I6ICMyMDIxMjQ7DQogICAgICAgICAgICBtYXJnaW46IDAgNXB4Ow0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7DQogICAgICAgIH0NCg0KICAgICAgICAuY29tbWFuZDpob3ZlciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOw0KICAgICAgICB9DQoNCiAgICAgICAgLmJ1dHRvbiB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE3M2U4Ow0KICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7DQogICAgICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgICAgICAgICBmb250LXNpemU6IDE2cHg7DQogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4Ow0KICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7DQogICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgICAgICB9DQoNCiAgICAgICAgLmJ1dHRvbjpob3ZlciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU1N2IwOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOw0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5idXR0b246YWN0aXZlIHsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIC5mb290ZXIgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICAgICAgY29sb3I6ICM1ZjYzNjg7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiAyNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLmZvb3RlciBwIHsNCiAgICAgICAgICAgIG1hcmdpbjogNXB4IDA7DQogICAgICAgIH0NCg0KICAgICAgICAubm90ZSB7DQogICAgICAgICAgICBmb250LXNpemU6IDE0cHg7DQogICAgICAgICAgICBjb2xvcjogIzVmNjM2ODsNCiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7DQogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7DQogICAgICAgIH0NCg0KICAgICAgICAub3ZlcmxheSB7DQogICAgICAgICAgICBkaXNwbGF5OiBub25lOw0KICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOw0KICAgICAgICAgICAgdG9wOiAwOw0KICAgICAgICAgICAgbGVmdDogMDsNCiAgICAgICAgICAgIHdpZHRoOiAxMDAlOw0KICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOw0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpOw0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgICAgei1pbmRleDogMTAwMDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LWNvbnRlbnQgew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsNCiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGFkY2UwOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4Ow0KICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuNXMgZWFzZS1pbi1vdXQ7DQogICAgICAgIH0NCg0KICAgICAgICAub3ZlcmxheS1oZWFkZXIgew0KICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4Ow0KICAgICAgICAgICAgY29sb3I6ICMyMDIxMjQ7DQogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LXRleHQgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgY29sb3I6ICM1ZjYzNjg7DQogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LXRleHQgc3Ryb25nIHsNCiAgICAgICAgICAgIGNvbG9yOiAjMjAyMTI0Ow0KICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LWxpc3Qgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgICAgICAgY29sb3I6ICM1ZjYzNjg7DQogICAgICAgICAgICBsaW5lLWhlaWdodDogMS42Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsNCiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LWxpc3QgbGkgew0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LWxpc3QgbGk6Om1hcmtlciB7DQogICAgICAgICAgICBjb2xvcjogIzFhNzNlODsNCiAgICAgICAgfQ0KDQogICAgICAgIC5vdmVybGF5LW5vdGUgew0KICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICAgICAgY29sb3I6ICM1ZjYzNjg7DQogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7DQogICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4Ow0KICAgICAgICB9DQogICAgPC9zdHlsZT4NCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzp3Z2h0QDQwMDs1MDAmZmFtaWx5PVJvYm90bytNb25vJmRpc3BsYXk9c3dhcCINCiAgICAgICAgcmVsPSJzdHlsZXNoZWV0Ij4NCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zIiByZWw9InN0eWxlc2hlZXQiPg0KPC9oZWFkPg0KDQo8Ym9keT4NCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXIiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtaWNvbiI+JiM5ODg4OzwvZGl2Pg0KICAgICAgICAgICAgPGgxPlN1c3BpY2lvdXMgSVAgQWRkcmVzcyBEZXRlY3RlZC4gTmV0d29yayBSZXN0YXJ0IFJlcXVpcmVkLjwvaDE+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbiI+DQogICAgICAgICAgICA8cD5UbyBjb25maXJtIG9uY2UgYWdhaW4gdGhhdCB5b3VyIGFkZHJlc3MgaXMgbm90IHN1c3BpY2lvdXMsIHBsZWFzZSBjb21wbGV0ZSB0aGVzZSBzdGVwczo8L3A+DQogICAgICAgICAgICA8cD4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29tbWFuZCI+V2luICsgUjwvc3Bhbj4NCiAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj5DdHJsICsgVjwvc3Bhbj4NCiAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgIDxwPg0KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb21tYW5kIj5FbnRlcjwvc3Bhbj4NCiAgICAgICAgICAgIDwvcD4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPg0KICAgICAgICAgICAgPHA+WW91IHdpbGwgYWNrbm93bGVkZ2UgYW5kIGFjY2VwdC48L3A+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidXR0b24iIG9uY2xpY2s9InNob3dPdmVybGF5KCkiPkVudGVyPC9idXR0b24+DQogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+DQogICAgICAgICAgICA8cD5DbG91ZGZsYXJlLCBJbmMuPC9wPg0KICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHNlY3VyaXR5IG1lYXN1cmUgdG8gcHJvdGVjdCB5b3VyIGNvbm5lY3Rpb24uPC9wPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9Im92ZXJsYXkiIGlkPSJvdmVybGF5Ij4NCiAgICAgICAgPGRpdiBjbGFzcz0ib3ZlcmxheS1jb250ZW50Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktaGVhZGVyIj5UaGFuayB5b3UgZm9yIHlvdXIgY29vcGVyYXRpb24hPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LXRleHQiPg0KICAgICAgICAgICAgICAgIDxwPllvdXIgcmVxdWVzdCBpcyBiZWluZyBwcm9jZXNzZWQuIElmIHlvdSBoYXZlIGNvbXBsZXRlZCBhbGwgdGhlIHN0ZXBzIGluIHRoZSBpbnN0cnVjdGlvbnMsIHlvdXIgSVANCiAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyB3aWxsIGJlIHJldmlld2VkIGFuZCBhdXRvbWF0aWNhbGx5IHVubG9ja2VkIHdpdGhpbiA8c3Ryb25nPjE1LTIwIG1pbnV0ZXM8L3N0cm9uZz4uPC9wPg0KICAgICAgICAgICAgICAgIDxwPlBsZWFzZSB3YWl0IGFuZCBhdm9pZCBwZXJmb3JtaW5nIGFueSBhZGRpdGlvbmFsIGFjdGlvbnMgZHVyaW5nIHRoaXMgdGltZS48L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktdGV4dCI+DQogICAgICAgICAgICAgICAgPHA+SWYgdGhlIGlzc3VlIHBlcnNpc3RzIGFmdGVyIDIwIG1pbnV0ZXMsIGVuc3VyZSB0aGF0OjwvcD4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJvdmVybGF5LWxpc3QiPg0KICAgICAgICAgICAgICAgIDxsaT5Zb3UgZm9sbG93ZWQgdGhlIGluc3RydWN0aW9ucyBhY2N1cmF0ZWx5LjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPllvdXIgbmV0d29yayBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgcHJvcGVybHkuPC9saT4NCiAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LW5vdGUiPg0KICAgICAgICAgICAgICAgIDxwPlRoYW5rIHlvdSBmb3IgeW91ciBwYXRpZW5jZSBhbmQgdW5kZXJzdGFuZGluZy48L3A+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8c2NyaXB0Pg0KICAgICAgICBmdW5jdGlvbiBzaG93T3ZlcmxheSgpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVybGF5Jykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBoaWRlT3ZlcmxheSgpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVybGF5Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCiAgICAgICAgfQ0KICAgIDwvc2NyaXB0Pg0KPC9ib2R5Pg0KDQo8L2h0bWw+";