ClickInventories – London's best Online Bookable Property Inventory Service Click To Call Us Now
Click To Call Us Now

Limited Time Offer — Save 10% on Your First Inventory Report

CLICKSERVICES2026 Apply the code when you pay at booking to receive your discount instantly.
Our Services

Comprehensive Inventory Reports

Get accurate and highly descriptive property inventory reports with high-resolution photos. Our experienced clerks with an eye for detail will ensure that you have no nasty surprises.

Inventory and condition report

Best Inventory and Condition Report 2026

Book your inventory and condition report online today with Click Inventories LTD, trusted by landlords and letting agents across London. Inventory & Condition Reports Comprehensive property inventory with full condition reporting, carried out by AIIC-accredited clerks. ✓ All prices inclusive of VAT — no hidden fees 🏢 Flat 🏠 House…

Book Now →
Mid-term Inspection

Click Inventories LTD: Mid-term inspection

Professional Mid-Term Inspection Services in London See Our Prices / Book Now A mid-term inspection is an essential part of responsible property management, providing landlords and letting agents with a thorough assessment of a rental property's condition during an active tenancy. At Click Inventories, our mid-term inspection service is carried…

Book Now →
inventory check-in report

Inventory & Check-In Reports for London Properties

[vc_row][vc_column][vc_column_text]Beginning a new tenancy, the critical first step revolves around the Inventory Check-In Report, diligently compiled by Click Inventories LTD. This fundamental document doesn't just capture the property's initial condition but also sets an unmistakable benchmark for future evaluations, thereby playing a central role in the tenancy process​1​.[/vc_column_text][/vc_column][vc_column][vc_text_separator title="Price List"][/vc_column][/vc_row][vc_row][vc_column][vc_raw_html]PHN0eWxlPkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PURNK1NhbnM6d2dodEA0MDA7NTAwOzYwMDs3MDAmZmFtaWx5PVBsdXMrSmFrYXJ0YStTYW5zOndnaHRANjAwOzcwMDs4MDAmZGlzcGxheT1zd2FwJyk7OnJvb3R7LS1jaS10ZWFsOiMwRDk0ODg7LS1jaS10ZWFsLWRhcms6IzBGNzY2RTstLWNpLXRlYWwtZGVlcGVyOiMxMTVFNTk7LS1jaS10ZWFsLWxpZ2h0OiNDQ0ZCRjE7LS1jaS10ZWFsLTUwOiNGMEZERkE7LS1jaS10ZWFsLTEwMDojRTZGQUY1Oy0tY2ktYW1iZXI6I0Q5NzcwNjstLWNpLWFtYmVyLWxpZ2h0OiNGRUYzQzc7LS1jaS1hbWJlci1iZzojRkZGQkVCOy0tY2ktZ29sZDojQjQ1MzA5Oy0tY2ktZ3JlZW46IzA1OTY2OTstLWNpLWdyZWVuLWxpZ2h0OiNEMUZBRTU7LS1jaS1yZWQ6I0RDMjYyNjstLWNpLXdoaXRlOiNGRkZGRkY7LS1jaS1ncmF5LTUwOiNGOUZBRkI7LS1jaS1ncmF5LTEwMDojRjNGNEY2Oy0tY2ktZ3JheS0yMDA6I0U1RTdFQjstLWNpLWdyYXktMzAwOiNEMUQ1REI7LS1jaS1ncmF5LTQwMDojOUNBM0FGOy0tY2ktZ3JheS01MDA6IzZCNzI4MDstLWNpLWdyYXktNjAwOiM0QjU1NjM7LS1jaS1ncmF5LTcwMDojMzc0MTUxOy0tY2ktZ3JheS04MDA6IzFGMjkzNzstLWNpLWdyYXktOTAwOiMxMTE4Mjc7LS1jaS1yYWRpdXM6MTBweDstLWNpLXJhZGl1cy1sZzoxNHB4fSNjaS1jaGVja2luLXYzICp7bWFyZ2luOjA7cGFkZGluZzowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0jY2ktY2hlY2tpbi12M3tmb250LWZhbWlseTonRE0gU2FucycsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsc2Fucy1zZXJpZjttYXgtd2lkdGg6OTQwcHg7bWFyZ2luOjAgYXV0bztjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCk7bGluZS1oZWlnaHQ6MS41fSNjaS1jaGVja2luLXYzIC5jaS1wYWdlLWhlYWR7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozMnB4IDIwcHggOHB4fSNjaS1jaGVja2luLXYzIC5jaS1wYWdlLWhlYWQgaDF7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJywnRE0gU2Fucycsc2Fucy1zZXJpZjtmb250LXNpemU6MzBweDtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tY2ktdGVhbC1kZWVwZXIpO2xldHRlci1zcGFjaW5nOi0wLjVweDttYXJnaW4tYm90dG9tOjhweH0jY2ktY2hlY2tpbi12MyAuY2ktcGFnZS1oZWFkIHB7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApO21heC13aWR0aDo2MjBweDttYXJnaW46MCBhdXRvfSNjaS1jaGVja2luLXYzIC5jaS10b2dnbGUtd3JhcHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjE0cHg7cGFkZGluZzoyNHB4IDIwcHggMjBweH0jY2ktY2hlY2tpbi12MyAuY2ktdG9nZ2xlLWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTUwMCk7dHJhbnNpdGlvbjpjb2xvciAuMnM7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZX0jY2ktY2hlY2tpbi12MyAuY2ktdG9nZ2xlLWxhYmVsLmFjdGl2ZXtjb2xvcjp2YXIoLS1jaS10ZWFsLWRlZXBlcil9I2NpLWNoZWNraW4tdjMgLmNpLXRvZ2dsZS10cmFja3t3aWR0aDo1NnB4O2hlaWdodDozMHB4O2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbCk7Ym9yZGVyLXJhZGl1czoxNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3M7ZmxleC1zaHJpbms6MDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4xNSl9I2NpLWNoZWNraW4tdjMgLmNpLXRvZ2dsZS10aHVtYnt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O2xlZnQ6M3B4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtib3gtc2hhZG93OjAgMXB4IDRweCByZ2JhKDAsMCwwLC4xNSl9I2NpLWNoZWNraW4tdjMgLmNpLXRvZ2dsZS10cmFjay5ob3VzZSAuY2ktdG9nZ2xlLXRodW1ie3RyYW5zZm9ybTp0cmFuc2xhdGVYKDI2cHgpfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlLXdyYXB7cGFkZGluZzowIDIwcHggMTJweDtvdmVyZmxvdy14OmF1dG99I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cy1sZyk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsLjA2KSwwIDRweCAxNnB4IHJnYmEoMTMsMTQ4LDEzNiwuMDgpfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRoZWFkIHRoe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1jaS10ZWFsLWRlZXBlciksdmFyKC0tY2ktdGVhbCkpO2NvbG9yOiNmZmY7cGFkZGluZzoxNnB4IDEycHg7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouOHB4O2JvcmRlcjpub25lfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxke3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6MjRweDt3aWR0aDoxNjBweH0jY2ktY2hlY2tpbi12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0cnt0cmFuc2l0aW9uOmFsbCAuMTVzO2N1cnNvcjpwb2ludGVyfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCl9I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWR7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTEwMCl9I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdGR7cGFkZGluZzoxNHB4IDEycHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS03MDApO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMTAwKTt0cmFuc2l0aW9uOmFsbCAuMTVzfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxke3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6MjRweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tY2ktZ3JheS04MDApfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGR7Ym9yZGVyLWJvdHRvbTpub25lfSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIC5jaS1wcmljZS1jZWxse2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2FucycsJ0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxNnB4O2NvbG9yOnZhcigtLWNpLXRlYWwtZGVlcGVyKX0jY2ktY2hlY2tpbi12MyAuY2ktcHJpY2luZy10YWJsZSAuY2ktcHJpY2UtY2VsbCBzcGFue2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKTtmb250LXdlaWdodDo1MDA7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWZ9I2NpLWNoZWNraW4tdjMgLmNpLXJvdy1ib29re2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7cGFkZGluZzo3cHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwpO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEyLjVweDtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzO3doaXRlLXNwYWNlOm5vd3JhcH0jY2ktY2hlY2tpbi12MyAuY2ktcm93LWJvb2s6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLWRhcmspO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAycHggOHB4IHJnYmEoMTMsMTQ4LDEzNiwuMyl9I2NpLWNoZWNraW4tdjMgLmNpLXJvdy1ib29rIHN2Z3t3aWR0aDoxM3B4O2hlaWdodDoxM3B4O3N0cm9rZTojZmZmO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6Mi41O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0jY2ktY2hlY2tpbi12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZCAuY2ktcm93LWJvb2t7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLWRlZXBlcil9I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgdGQ6Zmlyc3QtY2hpbGR7cG9zaXRpb246cmVsYXRpdmV9I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgdGQ6Zmlyc3QtY2hpbGQ6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDo0cHg7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsKX0jY2ktY2hlY2tpbi12MyAuY2ktY2FsbG91dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzoxNHB4IDIwcHg7bWFyZ2luOjE2cHggMjBweCAwO2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLXRlYWwtbGlnaHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2ktcmFkaXVzKTtmb250LXNpemU6MTMuNXB4O2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9I2NpLWNoZWNraW4tdjMgLmNpLWNhbGxvdXQgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7c3Ryb2tlOnZhcigtLWNpLXRlYWwpO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7ZmxleC1zaHJpbms6MH0jY2ktY2hlY2tpbi12MyAuY2ktY2FsbG91dCBhe2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayk7Zm9udC13ZWlnaHQ6NzAwO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7dGV4dC11bmRlcmxpbmUtb2Zmc2V0OjJweH0jY2ktY2hlY2tpbi12MyAuY2ktZm9ybS13aWRnZXR7bWF4LXdpZHRoOjU2MHB4O21hcmdpbjozMnB4IGF1dG8gMDtiYWNrZ3JvdW5kOnZhcigtLWNpLXdoaXRlKTtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cy1sZyk7Ym94LXNoYWRvdzowIDRweCAyNHB4IHJnYmEoMTMsMTQ4LDEzNiwuMSksMCAxcHggM3B4IHJnYmEoMCwwLDAsLjA2KTtvdmVyZmxvdzpoaWRkZW59I2NpLWNoZWNraW4tdjMgLmNpLWZ3LWhlYWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tY2ktdGVhbC1kZWVwZXIpLHZhcigtLWNpLXRlYWwpIDYwJSwjMTRCOEE2KTtwYWRkaW5nOjIwcHggMjhweDtjb2xvcjojZmZmO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0jY2ktY2hlY2tpbi12MyAuY2ktZnctaGVhZGVyOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTMwcHg7cmlnaHQ6LTMwcHg7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMDYpO2JvcmRlci1yYWRpdXM6NTAlfSNjaS1jaGVja2luLXYzIC5jaS1mdy1oZWFkZXItcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfSNjaS1jaGVja2luLXYzIC5jaS1mdy1pY29ue3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4xNSk7Ym9yZGVyLXJhZGl1czoxMHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowfSNjaS1jaGVja2luLXYzIC5jaS1mdy1pY29uIHN2Z3t3aWR0aDoyMnB4O2hlaWdodDoyMnB4O3N0cm9rZTojZmZmO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MS44O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0jY2ktY2hlY2tpbi12MyAuY2ktZnctaGVhZGVyIGgze2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2FucycsJ0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOi0uMnB4fSNjaS1jaGVja2luLXYzIC5jaS1mdy1oZWFkZXIgcHtmb250LXNpemU6MTNweDtvcGFjaXR5Oi44NX0jY2ktY2hlY2tpbi12MyAuY2ktZnctaGVhZGVyIC5jaS1mdy1zZWxlY3Rpb257Zm9udC1zaXplOjEzcHg7b3BhY2l0eTouOTttYXJnaW4tdG9wOjRweDtmb250LXdlaWdodDo1MDB9I2NpLWNoZWNraW4tdjMgLmNpLWZ3LWJvZHl7cGFkZGluZzoyNHB4IDI4cHggMjhweH0jY2ktY2hlY2tpbi12MyAuY2ktbGFiZWx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKTttYXJnaW4tYm90dG9tOjhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9I2NpLWNoZWNraW4tdjMgLmNpLXN0ZXB7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7ZmxleC1zaHJpbms6MH0jY2ktY2hlY2tpbi12MyAuY2ktcm9vbXMtc2VjdGlvbnttYXJnaW4tYm90dG9tOjIwcHh9I2NpLWNoZWNraW4tdjMgLmNpLXJvb21zLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTJweCAxNnB4O2JhY2tncm91bmQ6dmFyKC0tY2ktZ3JheS01MCk7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMjAwKTtib3JkZXItcmFkaXVzOjhweDttYXJnaW4tYm90dG9tOjhweH0jY2ktY2hlY2tpbi12MyAuY2ktcm9vbXMtcm93LWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTcwMCl9I2NpLWNoZWNraW4tdjMgLmNpLWNvdW50ZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fSNjaS1jaGVja2luLXYzIC5jaS1jb3VudGVyLWJ0bnt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTMwMCk7YmFja2dyb3VuZDp2YXIoLS1jaS13aGl0ZSk7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLWdyYXktNjAwKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1c30jY2ktY2hlY2tpbi12MyAuY2ktY291bnRlci1idG46aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2NvbG9yOnZhcigtLWNpLXRlYWwpfSNjaS1jaGVja2luLXYzIC5jaS1jb3VudGVyLXZhbHt3aWR0aDozMHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCl9I2NpLWNoZWNraW4tdjMgLmNpLXJvb21zLWhpbnR7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApO2xpbmUtaGVpZ2h0OjEuNTtwYWRkaW5nOjRweCA0cHggMH0jY2ktY2hlY2tpbi12MyAuY2ktcm9vbXMtaGludCBzdmd7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtzdHJva2U6dmFyKC0tY2ktZ3JheS00MDApO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6Mjt2ZXJ0aWNhbC1hbGlnbjotMnB4O21hcmdpbi1yaWdodDozcHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfSNjaS1jaGVja2luLXYzIC5jaS1mdXJuaXNoZWQtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1jaS1ncmF5LTUwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0yMDApO2JvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4yczttYXJnaW4tYm90dG9tOjhweH0jY2ktY2hlY2tpbi12MyAuY2ktZnVybmlzaGVkLXJvdzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCk7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKX0jY2ktY2hlY2tpbi12MyAuY2ktZnVybmlzaGVkLXJvdy5hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC0xMDApfSNjaS1jaGVja2luLXYzIC5jaS1mdXJuaXNoZWQtbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fSNjaS1jaGVja2luLXYzIC5jaS1jaGt7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNpLWdyYXktMzAwKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzO2ZsZXgtc2hyaW5rOjB9I2NpLWNoZWNraW4tdjMgLmNpLWZ1cm5pc2hlZC1yb3cuYWN0aXZlIC5jaS1jaGt7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsKTtib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCl9I2NpLWNoZWNraW4tdjMgLmNpLWNoayBzdmd7d2lkdGg6MTJweDtoZWlnaHQ6MTJweDtzdHJva2U6I2ZmZjtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjIuNTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yc30jY2ktY2hlY2tpbi12MyAuY2ktZnVybmlzaGVkLXJvdy5hY3RpdmUgLmNpLWNoayBzdmd7b3BhY2l0eToxfSNjaS1jaGVja2luLXYzIC5jaS1mdXJuaXNoZWQtcHJpY2V7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1uYXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjEycHh9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1uYXYgYnV0dG9ue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMjAwKTtiYWNrZ3JvdW5kOnZhcigtLWNpLXdoaXRlKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjE1c30jY2ktY2hlY2tpbi12MyAuY2ktY2FsLW5hdiBidXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCl9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1uYXYgYnV0dG9uIHN2Z3t3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3N0cm9rZTp2YXIoLS1jaS1ncmF5LTYwMCk7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoyLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfSNjaS1jaGVja2luLXYzIC5jaS1jYWwtdGl0bGV7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWNpLWdyYXktODAwKX0jY2ktY2hlY2tpbi12MyAuY2ktY2FsLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNywxZnIpO2dhcDo0cHg7bWFyZ2luLWJvdHRvbTo4cHh9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1kb3d7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKTtwYWRkaW5nOjRweCAwIDhweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjVweH0jY2ktY2hlY2tpbi12MyAuY2ktY2FsLWRheXthc3BlY3QtcmF0aW86MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NTAwO2JvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4xNXM7Ym9yZGVyOjEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKX0jY2ktY2hlY2tpbi12MyAuY2ktY2FsLWRheTpob3Zlcjpub3QoLmRpc2FibGVkKTpub3QoLmVtcHR5KXtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwtNTApO2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKX0jY2ktY2hlY2tpbi12MyAuY2ktY2FsLWRheS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwpIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudDtib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbC1kYXJrKSFpbXBvcnRhbnQ7Zm9udC13ZWlnaHQ6NzAwO2JveC1zaGFkb3c6MCAycHggOHB4IHJnYmEoMTMsMTQ4LDEzNiwuMzUpfSNjaS1jaGVja2luLXYzIC5jaS1jYWwtZGF5LmRpc2FibGVke2NvbG9yOnZhcigtLWNpLWdyYXktMzAwKTtjdXJzb3I6bm90LWFsbG93ZWR9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1kYXkuZW1wdHl7Y3Vyc29yOmRlZmF1bHR9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1kYXkucHJlbWl1bXtiYWNrZ3JvdW5kOnZhcigtLWNpLWFtYmVyLWJnKTtib3JkZXI6MS41cHggZGFzaGVkIHZhcigtLWNpLWFtYmVyKTtjb2xvcjp2YXIoLS1jaS1nb2xkKTtmb250LXdlaWdodDo2MDB9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1kYXkucHJlbWl1bTpob3Zlcjpub3QoLmRpc2FibGVkKXtiYWNrZ3JvdW5kOnZhcigtLWNpLWFtYmVyLWxpZ2h0KTtib3JkZXItY29sb3I6dmFyKC0tY2ktZ29sZCl9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1kYXkucHJlbWl1bS5zZWxlY3RlZHtiYWNrZ3JvdW5kOnZhcigtLWNpLWFtYmVyKSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7Ym9yZGVyLXN0eWxlOnNvbGlkIWltcG9ydGFudDtib3JkZXItY29sb3I6dmFyKC0tY2ktZ29sZCkhaW1wb3J0YW50fSNjaS1jaGVja2luLXYzIC5jaS1jYWwtZGF5LnRvZGF5Om5vdCguc2VsZWN0ZWQpe2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtmb250LXdlaWdodDo3MDB9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1sZWdlbmR7ZGlzcGxheTpmbGV4O2dhcDoxNnB4O3BhZGRpbmctdG9wOjhweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTEwMCl9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1sZWdlbmQtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApfSNjaS1jaGVja2luLXYzIC5jaS1jYWwtbGVnZW5kLWRvdHt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2JvcmRlci1yYWRpdXM6NHB4O2ZsZXgtc2hyaW5rOjB9I2NpLWNoZWNraW4tdjMgLmNpLWNhbC1sZWdlbmQtZG90LmF2YWlse2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLXRlYWwpfSNjaS1jaGVja2luLXYzIC5jaS1jYWwtbGVnZW5kLWRvdC5wcmVte2JhY2tncm91bmQ6dmFyKC0tY2ktYW1iZXItYmcpO2JvcmRlcjoxLjVweCBkYXNoZWQgdmFyKC0tY2ktYW1iZXIpfSNjaS1jaGVja2luLXYzIC5jaS1ub3RpY2V7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDtwYWRkaW5nOjEwcHggMTRweDtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6MTIuNXB4O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjE2cHh9I2NpLWNoZWNraW4tdjMgLmNpLW5vdGljZS5hbWJlcntiYWNrZ3JvdW5kOnZhcigtLWNpLWFtYmVyLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNpLWFtYmVyLWxpZ2h0KTtjb2xvcjp2YXIoLS1jaS1nb2xkKX0jY2ktY2hlY2tpbi12MyAuY2ktbm90aWNlLnRlYWx7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNpLXRlYWwtbGlnaHQpO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9I2NpLWNoZWNraW4tdjMgLmNpLW5vdGljZSBzdmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4O3N0cm9rZTpjdXJyZW50Q29sb3I7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0jY2ktY2hlY2tpbi12MyAuY2ktaW5wdXQtZ3JvdXB7bWFyZ2luLWJvdHRvbToxNnB4fSNjaS1jaGVja2luLXYzIC5jaS1pbnB1dHt3aWR0aDoxMDAlO3BhZGRpbmc6MTFweCAxNHB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS04MDApO2JhY2tncm91bmQ6dmFyKC0tY2ktd2hpdGUpO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4ycyxib3gtc2hhZG93IC4yc30jY2ktY2hlY2tpbi12MyAuY2ktaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKX0jY2ktY2hlY2tpbi12MyAuY2ktaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzLDE0OCwxMzYsLjEpfSNjaS1jaGVja2luLXYzIC5jaS1pbnB1dC1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMHB4fSNjaS1jaGVja2luLXYzIC5jaS1zZWxlY3R7d2lkdGg6MTAwJTtwYWRkaW5nOjExcHggMTRweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0yMDApO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLWNpLWdyYXktODAwKTtiYWNrZ3JvdW5kOnZhcigtLWNpLXdoaXRlKTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjM2QjcyODAnIHN0cm9rZS13aWR0aD0nMi41JyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNNiA5bDYgNiA2LTYnLyUzRSUzQy9zdmclM0UiKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxMnB4IGNlbnRlcjtwYWRkaW5nLXJpZ2h0OjM2cHh9I2NpLWNoZWNraW4tdjMgLmNpLXNlbGVjdDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMTMsMTQ4LDEzNiwuMSl9I2NpLWNoZWNraW4tdjMgLmNpLXRleHRhcmVhe3dpZHRoOjEwMCU7cGFkZGluZzoxMXB4IDE0cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMjAwKTtib3JkZXItcmFkaXVzOjhweDtmb250LWZhbWlseTonRE0gU2Fucycsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCk7cmVzaXplOnZlcnRpY2FsO21pbi1oZWlnaHQ6NzBweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsYm94LXNoYWRvdyAuMnN9I2NpLWNoZWNraW4tdjMgLmNpLXRleHRhcmVhOmZvY3Vze291dGxpbmU6bm9uZTtib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCk7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSgxMywxNDgsMTM2LC4xKX0jY2ktY2hlY2tpbi12MyAuY2ktcHJvbW8tcm93e2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbi1ib3R0b206MjBweH0jY2ktY2hlY2tpbi12MyAuY2ktcHJvbW8tcm93IC5jaS1pbnB1dHtmbGV4OjF9I2NpLWNoZWNraW4tdjMgLmNpLXByb21vLWJ0bntwYWRkaW5nOjExcHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyYXktMTAwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0yMDApO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTYwMCk7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3RyYW5zaXRpb246YWxsIC4yc30jY2ktY2hlY2tpbi12MyAuY2ktcHJvbW8tYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9I2NpLWNoZWNraW4tdjMgLmNpLXByb21vLW1zZ3tmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjZweDtmb250LXdlaWdodDo1MDB9I2NpLWNoZWNraW4tdjMgLmNpLXByb21vLW1zZy5zdWNjZXNze2NvbG9yOnZhcigtLWNpLWdyZWVuKX0jY2ktY2hlY2tpbi12MyAuY2ktcHJvbW8tbXNnLmVycm9ye2NvbG9yOnZhcigtLWNpLXJlZCl9I2NpLWNoZWNraW4tdjMgLmNpLWJyZWFrZG93bntiYWNrZ3JvdW5kOnZhcigtLWNpLWdyYXktNTApO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaS1yYWRpdXMpO3BhZGRpbmc6MTZweDttYXJnaW4tYm90dG9tOjIwcHh9I2NpLWNoZWNraW4tdjMgLmNpLWJrLXJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4IDA7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS1jaS1ncmF5LTYwMCl9I2NpLWNoZWNraW4tdjMgLmNpLWJrLXJvdy5mZWV7Y29sb3I6dmFyKC0tY2ktYW1iZXIpfSNjaS1jaGVja2luLXYzIC5jaS1iay1yb3cuZGlzY291bnR7Y29sb3I6dmFyKC0tY2ktZ3JlZW4pfSNjaS1jaGVja2luLXYzIC5jaS1iay1kaXZpZGVye2hlaWdodDoxcHg7YmFja2dyb3VuZDp2YXIoLS1jaS1ncmF5LTIwMCk7bWFyZ2luOjhweCAwfSNjaS1jaGVja2luLXYzIC5jaS1iay10b3RhbHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NnB4IDAgMDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tY2ktZ3JheS05MDApfSNjaS1jaGVja2luLXYzIC5jaS1iay10b3RhbCBzcGFuOmxhc3QtY2hpbGR7Y29sb3I6dmFyKC0tY2ktdGVhbC1kYXJrKTtmb250LXNpemU6MjBweH0jY2ktY2hlY2tpbi12MyAuY2ktcGF5LWJ0bnt3aWR0aDoxMDAlO3BhZGRpbmc6MTVweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tY2ktdGVhbC1kYXJrKSx2YXIoLS1jaS10ZWFsKSk7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cyk7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJywnRE0gU2Fucycsc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjJzO2JveC1zaGFkb3c6MCA0cHggMTJweCByZ2JhKDEzLDE0OCwxMzYsLjMpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4fSNjaS1jaGVja2luLXYzIC5jaS1wYXktYnRuOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1jaS10ZWFsLWRlZXBlciksdmFyKC0tY2ktdGVhbC1kYXJrKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9I2NpLWNoZWNraW4tdjMgLmNpLXBheS1idG46ZGlzYWJsZWR7YmFja2dyb3VuZDp2YXIoLS1jaS1ncmF5LTMwMCk7Y3Vyc29yOm5vdC1hbGxvd2VkO2JveC1zaGFkb3c6bm9uZTt0cmFuc2Zvcm06bm9uZX0jY2ktY2hlY2tpbi12MyAuY2ktcGF5LWJ0biBzdmd7d2lkdGg6MThweDtoZWlnaHQ6MThweDtzdHJva2U6I2ZmZjtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfSNjaS1jaGVja2luLXYzIC5jaS1yZXNlcnZlLWJ0bnt3aWR0aDoxMDAlO3BhZGRpbmc6MTRweDtiYWNrZ3JvdW5kOnZhcigtLWNpLXdoaXRlKTtjb2xvcjp2YXIoLS1jaS10ZWFsLWRhcmspO2JvcmRlcjoycHggc29saWQgdmFyKC0tY2ktdGVhbCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaS1yYWRpdXMpO2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2FucycsJ0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDttYXJnaW4tdG9wOjEwcHh9I2NpLWNoZWNraW4tdjMgLmNpLXJlc2VydmUtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9I2NpLWNoZWNraW4tdjMgLmNpLXJlc2VydmUtYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNpLWdyYXktMzAwKTtib3JkZXItY29sb3I6dmFyKC0tY2ktZ3JheS0zMDApO2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZX0jY2ktY2hlY2tpbi12MyAuY2ktcmVzZXJ2ZS1idG4gc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7c3Ryb2tlOmN1cnJlbnRDb2xvcjtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfSNjaS1jaGVja2luLXYzIC5jaS1mb290ZXJ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoxNHB4IDI4cHg7YmFja2dyb3VuZDp2YXIoLS1jaS1ncmF5LTUwKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTEwMCl9I2NpLWNoZWNraW4tdjMgLmNpLWZvb3RlciBwe2ZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKX0jY2ktY2hlY2tpbi12MyAuY2ktZm9vdGVyIGF7Y29sb3I6dmFyKC0tY2ktdGVhbCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7I2NpLWNoZWNraW4tdjMgLmNpLXByaWNpbmctdGFibGUgdGhlYWQgdGh7Zm9udC1zaXplOjExcHg7cGFkZGluZzoxMnB4IDZweH0jY2ktY2hlY2tpbi12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0ZHtwYWRkaW5nOjEwcHggNnB4O2ZvbnQtc2l6ZToxM3B4fSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIC5jaS1wcmljZS1jZWxse2ZvbnQtc2l6ZToxNHB4fSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxMnB4fSNjaS1jaGVja2luLXYzIC5jaS1wcmljaW5nLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxMnB4O3dpZHRoOmF1dG99I2NpLWNoZWNraW4tdjMgLmNpLXJvdy1ib29re3BhZGRpbmc6NnB4IDEwcHg7Zm9udC1zaXplOjExLjVweH0jY2ktY2hlY2tpbi12MyAuY2ktZnctYm9keXtwYWRkaW5nOjE4cHggMThweCAyMnB4fSNjaS1jaGVja2luLXYzIC5jaS1mdy1oZWFkZXJ7cGFkZGluZzoxNnB4IDE4cHh9I2NpLWNoZWNraW4tdjMgLmNpLWlucHV0LXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfSNjaS1jaGVja2luLXYzIC5jaS1wYWdlLWhlYWQgaDF7Zm9udC1zaXplOjI0cHh9fTwvc3R5bGU+PGRpdiBpZD0iY2ktY2hlY2tpbi12MyI+PGRpdiBjbGFzcz0iY2ktcGFnZS1oZWFkIj48aDE+Q2hlY2stSW4gUmVwb3J0czwvaDE+PHA+UHJvZmVzc2lvbmFsIGNoZWNrLWluIGludmVudG9yeSByZXBvcnRzIGFjcm9zcyBMb25kb24uIFNlbGVjdCB5b3VyIHByb3BlcnR5IHNpemUgdG8gYm9vayBpbnN0YW50bHkuPC9wPjxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWFyZ2luLXRvcDoxMnB4O3BhZGRpbmc6OHB4IDE4cHg7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktdGVhbC1saWdodCk7Ym9yZGVyLXJhZGl1czoyMHB4OyI+PHN2ZyBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweDtzdHJva2U6dmFyKC0tY2ktdGVhbCk7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoyLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kOyIgdmlld0JveD0iMCAwIDI0IDI0Ij48cG9seWxpbmUgcG9pbnRzPSIyMCA2IDkgMTcgNCAxMiIvPjwvc3ZnPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTMuNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1jaS10ZWFsLWRhcmspOyI+QWxsIHByaWNlcyBpbmNsdXNpdmUgb2YgVkFUIOKAlCBubyBoaWRkZW4gZmVlczwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjaS10b2dnbGUtd3JhcCI+PHNwYW4gY2xhc3M9ImNpLXRvZ2dsZS1sYWJlbCBhY3RpdmUiIGlkPSJjdjMtbGJsLWZsYXQiIG9uY2xpY2s9ImN2M1RvZ2dsZSgpIj7wn4+iIEZsYXQ8L3NwYW4+PGRpdiBjbGFzcz0iY2ktdG9nZ2xlLXRyYWNrIiBpZD0iY3YzLXRvZ2dsZSIgb25jbGljaz0iY3YzVG9nZ2xlKCkiPjxkaXYgY2xhc3M9ImNpLXRvZ2dsZS10aHVtYiI+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9ImNpLXRvZ2dsZS1sYWJlbCIgaWQ9ImN2My1sYmwtaG91c2UiIG9uY2xpY2s9ImN2M1RvZ2dsZSgpIj7wn4+gIEhvdXNlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImNpLXByaWNpbmctdGFibGUtd3JhcCI+PHRhYmxlIGNsYXNzPSJjaS1wcmljaW5nLXRhYmxlIj48dGhlYWQ+PHRyPjx0aD5Qcm9wZXJ0eSBTaXplPC90aD48dGg+Q2hlY2stSW4gUHJpY2U8L3RoPjx0aD48L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgaWQ9ImN2My10Ym9keSI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxkaXYgY2xhc3M9ImNpLWNhbGxvdXQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjIgMTYuOTJ2M2EyIDIgMCAwMS0yLjE4IDIgMTkuNzkgMTkuNzkgMCAwMS04LjYzLTMuMDcgMTkuNSAxOS41IDAgMDEtNi02IDE5Ljc5IDE5Ljc5IDAgMDEtMy4wNy04LjY3QTIgMiAwIDAxNC4xMSAyaDNhMiAyIDAgMDEyIDEuNzJjLjEzLjgxLjM2IDEuNi42OCAyLjM1YTIgMiAwIDAxLS40NSAyLjExTDguMDkgOS45MWExNiAxNiAwIDAwNiA2bDEuMjctMS4yN2EyIDIgMCAwMTIuMTEtLjQ1Yy43NS4zMiAxLjU0LjU1IDIuMzUuNjhBMiAyIDAgMDEyMiAxNi45MnoiLz48L3N2Zz48c3Bhbj5Qcm9wZXJ0eSBsYXJnZXIgdGhhbiA1IGJlZHJvb21zPyBQbGVhc2UgPGEgaHJlZj0idGVsOjAyMDM0ODg4MDcyIj5jYWxsIHVzIG9uIDAyMCAzNDg4IDgwNzI8L2E+IG9yIDxhIGhyZWY9Im1haWx0bzppbmZvQGNsaWNraW52ZW50b3JpZXMuY28udWsiPmVtYWlsIHVzPC9hPiBmb3IgYSBiZXNwb2tlIHF1b3RlLjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1mb3JtLXdpZGdldCIgaWQ9ImN2My1mb3JtIj48ZGl2IGNsYXNzPSJjaS1mdy1oZWFkZXIiPjxkaXYgY2xhc3M9ImNpLWZ3LWhlYWRlci1yb3ciPjxkaXYgY2xhc3M9ImNpLWZ3LWljb24iPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSA1SDdhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0yaC0yIi8+PHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNOSAxNGwyIDIgNC00Ii8+PC9zdmc+PC9kaXY+PGRpdj48aDM+Qm9vayBZb3VyIENoZWNrLUluPC9oMz48cD5Db21wbGV0ZSB0aGUgZGV0YWlscyBiZWxvdzwvcD48ZGl2IGNsYXNzPSJjaS1mdy1zZWxlY3Rpb24iIGlkPSJjdjMtc2VsZWN0aW9uIj5TZWxlY3QgYSBwcm9wZXJ0eSBzaXplIGZyb20gdGhlIHRhYmxlIGFib3ZlPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2ktZnctYm9keSI+PGRpdiBjbGFzcz0iY2ktbGFiZWwiPjxzcGFuIGNsYXNzPSJjaS1zdGVwIj4xPC9zcGFuPiBBZGRpdGlvbmFsIFJvb21zICZhbXA7IEZ1cm5pc2hlZDwvZGl2PjxkaXYgY2xhc3M9ImNpLXJvb21zLXNlY3Rpb24iPjxkaXYgY2xhc3M9ImNpLWZ1cm5pc2hlZC1yb3ciIGlkPSJjdjMtZnVybmlzaGVkIiBvbmNsaWNrPSJjdjNUb2dnbGVGdXJuaXNoZWQoKSI+PGRpdiBjbGFzcz0iY2ktZnVybmlzaGVkLWxlZnQiPjxkaXYgY2xhc3M9ImNpLWNoayI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIi8+PC9zdmc+PC9kaXY+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMy41cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKTsiPkZ1cm5pc2hlZCBwcm9wZXJ0eTwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iY2ktZnVybmlzaGVkLXByaWNlIj4rwqMxMDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1yb29tcy1yb3ciPjxzcGFuIGNsYXNzPSJjaS1yb29tcy1yb3ctbGFiZWwiPkV4dHJhIGJhdGhyb29tczwvc3Bhbj48ZGl2IGNsYXNzPSJjaS1jb3VudGVyIj48YnV0dG9uIGNsYXNzPSJjaS1jb3VudGVyLWJ0biIgb25jbGljaz0iY3YzUm9vbXMoJ2JhdGgnLC0xKSI+4oiSPC9idXR0b24+PHNwYW4gY2xhc3M9ImNpLWNvdW50ZXItdmFsIiBpZD0iY3YzLWJhdGgtY291bnQiPjA8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iY2ktY291bnRlci1idG4iIG9uY2xpY2s9ImN2M1Jvb21zKCdiYXRoJywxKSI+KzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNpLXJvb21zLXJvdyI+PHNwYW4gY2xhc3M9ImNpLXJvb21zLXJvdy1sYWJlbCI+T3RoZXIgcm9vbXMgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKTsiPih1dGlsaXR5LCBnYXJhZ2UsIGNvbnNlcnZhdG9yeSwgZXRjLik8L3NwYW4+PC9zcGFuPjxkaXYgY2xhc3M9ImNpLWNvdW50ZXIiPjxidXR0b24gY2xhc3M9ImNpLWNvdW50ZXItYnRuIiBvbmNsaWNrPSJjdjNSb29tcygnb3RoZXInLC0xKSI+4oiSPC9idXR0b24+PHNwYW4gY2xhc3M9ImNpLWNvdW50ZXItdmFsIiBpZD0iY3YzLW90aGVyLWNvdW50Ij4wPC9zcGFuPjxidXR0b24gY2xhc3M9ImNpLWNvdW50ZXItYnRuIiBvbmNsaWNrPSJjdjNSb29tcygnb3RoZXInLDEpIj4rPC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2ktcm9vbXMtaGludCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyLjAxIiB5Mj0iOCIvPjwvc3ZnPkJhc2UgcHJpY2UgaW5jbHVkZXMgMSBiYXRocm9vbSwgMSBraXRjaGVuICZhbXA7IDEgbG91bmdlLiBBZGRpdGlvbmFsIHJvb21zIGFyZSDCozEwIGVhY2guPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2ktbGFiZWwiPjxzcGFuIGNsYXNzPSJjaS1zdGVwIj4yPC9zcGFuPiBTZWxlY3QgRGF0ZTwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MjBweDsiPjxkaXYgY2xhc3M9ImNpLWNhbC1uYXYiPjxidXR0b24gb25jbGljaz0iY3YzQ2FsTmF2KC0xKSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjE1IDE4IDkgMTIgMTUgNiIvPjwvc3ZnPjwvYnV0dG9uPjxzcGFuIGNsYXNzPSJjaS1jYWwtdGl0bGUiIGlkPSJjdjMtY2FsLXRpdGxlIj48L3NwYW4+PGJ1dHRvbiBvbmNsaWNrPSJjdjNDYWxOYXYoMSkiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cG9seWxpbmUgcG9pbnRzPSI5IDE4IDE1IDEyIDkgNiIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImNpLWNhbC1ncmlkIiBpZD0iY3YzLWNhbC1ncmlkIj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1jYWwtbGVnZW5kIj48ZGl2IGNsYXNzPSJjaS1jYWwtbGVnZW5kLWl0ZW0iPjxkaXYgY2xhc3M9ImNpLWNhbC1sZWdlbmQtZG90IGF2YWlsIj48L2Rpdj5BdmFpbGFibGU8L2Rpdj48ZGl2IGNsYXNzPSJjaS1jYWwtbGVnZW5kLWl0ZW0iPjxkaXYgY2xhc3M9ImNpLWNhbC1sZWdlbmQtZG90IHByZW0iPjwvZGl2PlN1biAvIEJhbmsgSG9sICgrwqM1MCk8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1ub3RpY2UgYW1iZXIiIGlkPSJjdjMtcHJlbWl1bS1ub3RpY2UiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIiIHkyPSIxMiIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIuMDEiIHkyPSIxNiIvPjwvc3ZnPjxzcGFuPlN1bmRheSAvIEJhbmsgSG9saWRheSBib29raW5ncyBpbmNsdWRlIGEgPHN0cm9uZz7CozUwIHByZW1pdW0gZmVlPC9zdHJvbmc+Ljwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1sYWJlbCI+PHNwYW4gY2xhc3M9ImNpLXN0ZXAiPjM8L3NwYW4+IFByb3BlcnR5ICZhbXA7IENvbnRhY3QgRGV0YWlsczwvZGl2PjxkaXYgY2xhc3M9ImNpLWlucHV0LWdyb3VwIj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNpLWlucHV0IiBpZD0iY3YzLWFkZHJlc3MiIHBsYWNlaG9sZGVyPSJQcm9wZXJ0eSBhZGRyZXNzIChmaXJzdCBsaW5lKSAqIiByZXF1aXJlZCAvPjwvZGl2PjxkaXYgY2xhc3M9ImNpLWlucHV0LWdyb3VwIj48ZGl2IGNsYXNzPSJjaS1pbnB1dC1yb3ciPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjdjMtcG9zdGNvZGUiIHBsYWNlaG9sZGVyPSJQb3N0Y29kZSAqIiBvbmlucHV0PSJjdjNDaGVja1Bvc3Rjb2RlKCkiIHJlcXVpcmVkIC8+PHNlbGVjdCBjbGFzcz0iY2ktc2VsZWN0IiBpZD0iY3YzLXRpbWUiIG9uY2hhbmdlPSJjdjNDaGVja1BlYWsoKSIgcmVxdWlyZWQ+PG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QgdGltZSBzbG90ICo8L29wdGlvbj48b3B0aW9uIHZhbHVlPSIwOTowMC0xMDowMCIgZGF0YS1wZWFrPSJ0cnVlIj45OjAwIOKAkyAxMDowMCBBTSDirZAgUGVhayAoK8KjNTApPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTA6MDAtMTE6MDAiPjEwOjAwIOKAkyAxMTowMCBBTTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjExOjAwLTEyOjAwIj4xMTowMCBBTSDigJMgMTI6MDAgUE08L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMjowMC0xMzowMCI+MTI6MDAg4oCTIDE6MDAgUE08L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxMzowMC0xNDowMCI+MTowMCDigJMgMjowMCBQTTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE0OjAwLTE1OjAwIj4yOjAwIOKAkyAzOjAwIFBNPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTU6MDAtMTY6MDAiPjM6MDAg4oCTIDQ6MDAgUE08L29wdGlvbj48b3B0aW9uIHZhbHVlPSIxNjowMC0xNzowMCI+NDowMCDigJMgNTowMCBQTTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IjE3OjAwLTE4OjAwIj41OjAwIOKAkyA2OjAwIFBNPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iMTg6MDAtMTk6MDAiPjY6MDAg4oCTIDc6MDAgUE08L29wdGlvbj48L3NlbGVjdD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1ub3RpY2UgYW1iZXIiIGlkPSJjdjMtb29mLW5vdGljZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ii8+PC9zdmc+PHNwYW4+UG9zdGNvZGUgb3V0c2lkZSBzdGFuZGFyZCBMb25kb24gY292ZXJhZ2UuIEEgPHN0cm9uZz7CozI1IG91dC1vZi1hcmVhIGZlZTwvc3Ryb25nPiBoYXMgYmVlbiBhZGRlZC48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY2ktbm90aWNlIGFtYmVyIiBpZD0iY3YzLXBlYWstbm90aWNlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyLjAxIiB5Mj0iMTYiLz48L3N2Zz48c3Bhbj5UaGUgPHN0cm9uZz45OjAwIEFNPC9zdHJvbmc+IHNsb3QgaXMgcGVhayB0aW1lIOKAlCA8c3Ryb25nPivCozUwIGZlZTwvc3Ryb25nPiBhcHBsaWVkLjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1pbnB1dC1ncm91cCI+PGRpdiBjbGFzcz0iY2ktaW5wdXQtcm93Ij48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNpLWlucHV0IiBpZD0iY3YzLW5hbWUiIHBsYWNlaG9sZGVyPSJZb3VyIGZ1bGwgbmFtZSAqIiByZXF1aXJlZCAvPjxpbnB1dCB0eXBlPSJ0ZWwiIGNsYXNzPSJjaS1pbnB1dCIgaWQ9ImN2My1waG9uZSIgcGxhY2Vob2xkZXI9IlBob25lIG51bWJlciAqIiByZXF1aXJlZCAvPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNpLWlucHV0LWdyb3VwIj48aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJjaS1pbnB1dCIgaWQ9ImN2My1lbWFpbCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MgKiIgcmVxdWlyZWQgLz48L2Rpdj48ZGl2IGNsYXNzPSJjaS1pbnB1dC1ncm91cCI+PHRleHRhcmVhIGNsYXNzPSJjaS10ZXh0YXJlYSIgaWQ9ImN2My1ub3RlcyIgcGxhY2Vob2xkZXI9IkFkZGl0aW9uYWwgbm90ZXMgKGtleSBjb2xsZWN0aW9uLCBhY2Nlc3MgaW5mbywgZXRjLikiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdiBjbGFzcz0iY2ktbGFiZWwiPjxzcGFuIGNsYXNzPSJjaS1zdGVwIj40PC9zcGFuPiBQcm9tbyBDb2RlPC9kaXY+PGRpdiBjbGFzcz0iY2ktcHJvbW8tcm93Ij48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImNpLWlucHV0IiBpZD0iY3YzLXByb21vIiBwbGFjZWhvbGRlcj0iRW50ZXIgcHJvbW8gY29kZSIgLz48YnV0dG9uIGNsYXNzPSJjaS1wcm9tby1idG4iIG9uY2xpY2s9ImN2M0FwcGx5UHJvbW8oKSI+QXBwbHk8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1wcm9tby1tc2ciIGlkPSJjdjMtcHJvbW8tbXNnIj48L2Rpdj48ZGl2IGNsYXNzPSJjaS1ub3RpY2UgdGVhbCIgaWQ9ImN2My1wYXktYmVuZWZpdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+PC9zdmc+PHNwYW4+PHN0cm9uZz5QYXkgbm93ICZhbXA7IHNhdmUgMTAlPC9zdHJvbmc+IOKAlCB5b3VyIHJlcG9ydCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHkgb24gY29tcGxldGlvbiwgbm8gZGVsYXlzIHdhaXRpbmcgb24gcGF5bWVudC48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iY2ktYnJlYWtkb3duIiBpZD0iY3YzLWJyZWFrZG93biIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvZGl2PjxidXR0b24gY2xhc3M9ImNpLXBheS1idG4iIGlkPSJjdjMtcGF5LWJ0biIgZGlzYWJsZWQgb25jbGljaz0iY3YzUGF5Tm93KCkiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cmVjdCB4PSIxIiB5PSI0IiB3aWR0aD0iMjIiIGhlaWdodD0iMTYiIHJ4PSIyIiByeT0iMiIvPjxsaW5lIHgxPSIxIiB5MT0iMTAiIHgyPSIyMyIgeTI9IjEwIi8+PC9zdmc+PHNwYW4gaWQ9ImN2My1wYXktbGFiZWwiPlNlbGVjdCBwcm9wZXJ0eSBzaXplIHRvIGNvbnRpbnVlPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImNpLXJlc2VydmUtYnRuIiBpZD0iY3YzLXJlc2VydmUtYnRuIiBkaXNhYmxlZCBvbmNsaWNrPSJjdjNSZXNlcnZlKCkiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiByeT0iMiIvPjxsaW5lIHgxPSIxNiIgeTE9IjIiIHgyPSIxNiIgeTI9IjYiLz48bGluZSB4MT0iOCIgeTE9IjIiIHgyPSI4IiB5Mj0iNiIvPjxsaW5lIHgxPSIzIiB5MT0iMTAiIHgyPSIyMSIgeTI9IjEwIi8+PC9zdmc+PHNwYW4gaWQ9ImN2My1yZXNlcnZlLWxhYmVsIj5SZXNlcnZlIHdpdGhvdXQgcGF5aW5nPC9zcGFuPjwvYnV0dG9uPjxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6OHB4O2ZvbnQtc2l6ZToxMS41cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS00MDApO2xpbmUtaGVpZ2h0OjEuNTtkaXNwbGF5Om5vbmU7IiBpZD0iY3YzLXJlc2VydmUtbm90ZSI+UmVzZXJ2ZSBub3csIHBheSBsYXRlciDigJQgeW91ciByZXBvcnQgd2lsbCBiZSBoZWxkIHVudGlsIHBheW1lbnQgaXMgcmVjZWl2ZWQuPC9kaXY+PC9kaXY+PGRpdiBpZD0iY3YzLXN1Y2Nlc3MiIGNsYXNzPSJjaS1jb25maXJtYXRpb24tbXNnIiBzdHlsZT0iZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2U4ZjVlOTtib3JkZXI6MnB4IHNvbGlkICM0Y2FmNTA7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjRweCAyMHB4O21hcmdpbjoxOHB4IDAgMTJweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToyZW07bWFyZ2luLWJvdHRvbTo4cHg7Ij4mIzEwMDA0OzwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxLjE1ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMyZTdkMzI7bWFyZ2luLWJvdHRvbTo2cHg7Ij5Cb29raW5nIENvbmZpcm1lZCE8L2Rpdj48ZGl2IGlkPSJjdjMtc3VjY2Vzcy1kZXRhaWwiIHN0eWxlPSJmb250LXNpemU6MC45N2VtO2NvbG9yOiMzMzM7Ij5Zb3VyIGNoZWNrLWluIHJlcG9ydCBoYXMgYmVlbiBib29rZWQgc3VjY2Vzc2Z1bGx5LiBBIGNvbmZpcm1hdGlvbiBlbWFpbCB3aWxsIGJlIHNlbnQgdG8geW91IHNob3J0bHkuPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2ktZm9vdGVyIj48cD5DbGljayBJbnZlbnRvcmllcyBMdGQgJmJ1bGw7IDxhIGhyZWY9Im1haWx0bzppbmZvQGNsaWNraW52ZW50b3JpZXMuY28udWsiPmluZm9AY2xpY2tpbnZlbnRvcmllcy5jby51azwvYT4gJmJ1bGw7IExvbmRvbjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48c2NyaXB0PihmdW5jdGlvbigpeyd1c2Ugc3RyaWN0Jztjb25zdCBGTEFUX1BSSUNFUz17Y2hlY2tpbjpbMTI1LDE0MCwxNjAsMTg1LDIxMCwyMzVdfTtjb25zdCBIT1VTRV9NVUxUPTEuMTU7Y29uc3QgQkVEX0xBQkVMUz1bJ1N0dWRpbycsJzEgQmVkJywnMiBCZWQnLCczIEJlZCcsJzQgQmVkJywnNSBCZWQnXTtjb25zdCBCQU5LX0hPTElEQVlTPVsnMjAyNS0wMS0wMScsJzIwMjUtMDQtMTgnLCcyMDI1LTA0LTIxJywnMjAyNS0wNS0wNScsJzIwMjUtMDUtMjYnLCcyMDI1LTA4LTI1JywnMjAyNS0xMi0yNScsJzIwMjUtMTItMjYnLCcyMDI2LTAxLTAxJywnMjAyNi0wNC0wMycsJzIwMjYtMDQtMDYnLCcyMDI2LTA1LTA0JywnMjAyNi0wNS0yNScsJzIwMjYtMDgtMzEnLCcyMDI2LTEyLTI1JywnMjAyNi0xMi0yOCcsJzIwMjctMDEtMDEnLCcyMDI3LTAzLTI2JywnMjAyNy0wMy0yOScsJzIwMjctMDUtMDMnLCcyMDI3LTA1LTMxJywnMjAyNy0wOC0zMCcsJzIwMjctMTItMjcnLCcyMDI3LTEyLTI4J107Y29uc3QgTE9ORE9OPVsnRUMnLCdXQycsJ0UnLCdOJywnTlcnLCdTRScsJ1NXJywnVyddO2xldCBTPXtpc0hvdXNlOmZhbHNlLGJlZHM6bnVsbCxmdXJuaXNoZWQ6ZmFsc2UsZXh0cmFCYXRoOjAsZXh0cmFPdGhlcjowLHNlbGVjdGVkRGF0ZTpudWxsLGNhbE1vbnRoOm5ldyBEYXRlKCkuZ2V0TW9udGgoKSxjYWxZZWFyOm5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxwcm9tb0FwcGxpZWQ6ZmFsc2UscHJvbW9EaXNjb3VudDowLG91dE9mQXJlYTpmYWxzZSxwcmVtaXVtRGF5OmZhbHNlLHBlYWtUaW1lOmZhbHNlfTtmdW5jdGlvbiBnZXRQcmljZShzZXJ2aWNlLGJlZHMpe2NvbnN0IGJhc2U9RkxBVF9QUklDRVNbc2VydmljZV1bYmVkc107cmV0dXJuKFMuaXNIb3VzZSYmYmVkcz49Myk/TWF0aC5yb3VuZChiYXNlKkhPVVNFX01VTFQpOmJhc2U7fWZ1bmN0aW9uIGZtdFByaWNlKHApe3JldHVybiAnXHUwMGEzJytwO313aW5kb3cuY3YzVG9nZ2xlPWZ1bmN0aW9uKCl7Uy5pc0hvdXNlPSFTLmlzSG91c2U7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My10b2dnbGUnKS5jbGFzc0xpc3QudG9nZ2xlKCdob3VzZScsUy5pc0hvdXNlKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLWxibC1mbGF0JykuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywhUy5pc0hvdXNlKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLWxibC1ob3VzZScpLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsUy5pc0hvdXNlKTtidWlsZFRhYmxlKCk7dXBkYXRlUHJpY2UoKTt9O2Z1bmN0aW9uIGJ1aWxkVGFibGUoKXtjb25zdCB0Ym9keT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXRib2R5Jyk7dGJvZHkuaW5uZXJIVE1MPScnO0JFRF9MQUJFTFMuZm9yRWFjaCgobGFiZWwsaSk9Pntjb25zdCB0cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO2lmKFMuYmVkcz09PWkpdHIuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTt0ci5pbm5lckhUTUw9Jzx0ZD4nK2xhYmVsKyc8L3RkPjx0ZCBjbGFzcz0iY2ktcHJpY2UtY2VsbCI+JytmbXRQcmljZShnZXRQcmljZSgnY2hlY2tpbicsaSkpKyc8L3RkPjx0ZD48YnV0dG9uIGNsYXNzPSJjaS1yb3ctYm9vayIgb25jbGljaz0iY3YzU2VsZWN0QmVkKCcraSsnKTtldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiByeT0iMiIvPjxsaW5lIHgxPSIxNiIgeTE9IjIiIHgyPSIxNiIgeTI9IjYiLz48bGluZSB4MT0iOCIgeTE9IjIiIHgyPSI4IiB5Mj0iNiIvPjxsaW5lIHgxPSIzIiB5MT0iMTAiIHgyPSIyMSIgeTI9IjEwIi8+PC9zdmc+Qm9vayBOb3c8L2J1dHRvbj48L3RkPic7dHIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpPT5jdjNTZWxlY3RCZWQoaSkpO3Rib2R5LmFwcGVuZENoaWxkKHRyKTt9KTt9d2luZG93LmN2M1NlbGVjdEJlZD1mdW5jdGlvbihiZWRzKXtTLmJlZHM9YmVkcztidWlsZFRhYmxlKCk7dXBkYXRlU2VsZWN0aW9uKCk7dXBkYXRlUHJpY2UoKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLWZvcm0nKS5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J3N0YXJ0J30pO307ZnVuY3Rpb24gdXBkYXRlU2VsZWN0aW9uKCl7Y29uc3QgZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1zZWxlY3Rpb24nKTtpZihTLmJlZHMhPT1udWxsKXtjb25zdCB0eXBlPVMuaXNIb3VzZT8nSG91c2UnOidGbGF0JztlbC5pbm5lckhUTUw9JzxzdHJvbmc+JytCRURfTEFCRUxTW1MuYmVkc10rJyAnK3R5cGUrJzwvc3Ryb25nPiBcdTIwMTQgQ2hlY2stSW4gZnJvbSA8c3Ryb25nPicrZm10UHJpY2UoZ2V0UHJpY2UoJ2NoZWNraW4nLFMuYmVkcykpKyc8L3N0cm9uZz4nO31lbHNle2VsLnRleHRDb250ZW50PSdTZWxlY3QgYSBwcm9wZXJ0eSBzaXplIGZyb20gdGhlIHRhYmxlIGFib3ZlJzt9fXdpbmRvdy5jdjNUb2dnbGVGdXJuaXNoZWQ9ZnVuY3Rpb24oKXtTLmZ1cm5pc2hlZD0hUy5mdXJuaXNoZWQ7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1mdXJuaXNoZWQnKS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLFMuZnVybmlzaGVkKTt1cGRhdGVQcmljZSgpO307d2luZG93LmN2M1Jvb21zPWZ1bmN0aW9uKHR5cGUsZCl7aWYodHlwZT09PSdiYXRoJyl7Uy5leHRyYUJhdGg9TWF0aC5tYXgoMCxNYXRoLm1pbigxMCxTLmV4dHJhQmF0aCtkKSk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1iYXRoLWNvdW50JykudGV4dENvbnRlbnQ9Uy5leHRyYUJhdGg7fWVsc2V7Uy5leHRyYU90aGVyPU1hdGgubWF4KDAsTWF0aC5taW4oMTAsUy5leHRyYU90aGVyK2QpKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLW90aGVyLWNvdW50JykudGV4dENvbnRlbnQ9Uy5leHRyYU90aGVyO311cGRhdGVQcmljZSgpO307ZnVuY3Rpb24gaXNQcmVtaXVtKHksbSxkKXtjb25zdCBkYXRlPW5ldyBEYXRlKHksbSxkKTtpZihkYXRlLmdldERheSgpPT09MClyZXR1cm4gdHJ1ZTtjb25zdCBkcz15KyctJytTdHJpbmcobSsxKS5wYWRTdGFydCgyLCcwJykrJy0nK1N0cmluZyhkKS5wYWRTdGFydCgyLCcwJyk7cmV0dXJuIEJBTktfSE9MSURBWVMuaW5jbHVkZXMoZHMpO31mdW5jdGlvbiByZW5kZXJDYWwoKXtjb25zdCB5PVMuY2FsWWVhcixtPVMuY2FsTW9udGg7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1jYWwtdGl0bGUnKS50ZXh0Q29udGVudD1uZXcgRGF0ZSh5LG0pLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tR0InLHttb250aDonbG9uZycseWVhcjonbnVtZXJpYyd9KTtjb25zdCBncmlkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdjMtY2FsLWdyaWQnKTtncmlkLmlubmVySFRNTD0nJztbJ01vbicsJ1R1ZScsJ1dlZCcsJ1RodScsJ0ZyaScsJ1NhdCcsJ1N1biddLmZvckVhY2goZD0+e2NvbnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2VsLmNsYXNzTmFtZT0nY2ktY2FsLWRvdyc7ZWwudGV4dENvbnRlbnQ9ZDtncmlkLmFwcGVuZENoaWxkKGVsKTt9KTtsZXQgc3RhcnREYXk9bmV3IERhdGUoeSxtLDEpLmdldERheSgpLTE7aWYoc3RhcnREYXk8MClzdGFydERheT02O2ZvcihsZXQgaT0wO2k8c3RhcnREYXk7aSsrKXtjb25zdCBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtlbC5jbGFzc05hbWU9J2NpLWNhbC1kYXkgZW1wdHknO2dyaWQuYXBwZW5kQ2hpbGQoZWwpO31jb25zdCB0b2RheT1uZXcgRGF0ZSgpO3RvZGF5LnNldEhvdXJzKDAsMCwwLDApO2NvbnN0IGRheXM9bmV3IERhdGUoeSxtKzEsMCkuZ2V0RGF0ZSgpO2ZvcihsZXQgZD0xO2Q8PWRheXM7ZCsrKXtjb25zdCBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtlbC5jbGFzc05hbWU9J2NpLWNhbC1kYXknO2VsLnRleHRDb250ZW50PWQ7Y29uc3QgZHQ9bmV3IERhdGUoeSxtLGQpO2R0LnNldEhvdXJzKDAsMCwwLDApO2lmKGR0PHRvZGF5KXtlbC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpO31lbHNle2lmKGlzUHJlbWl1bSh5LG0sZCkpZWwuY2xhc3NMaXN0LmFkZCgncHJlbWl1bScpO2lmKGR0LmdldFRpbWUoKT09PXRvZGF5LmdldFRpbWUoKSllbC5jbGFzc0xpc3QuYWRkKCd0b2RheScpO2lmKFMuc2VsZWN0ZWREYXRlJiZTLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCk9PT1kdC5nZXRUaW1lKCkpZWwuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCk9PntTLnNlbGVjdGVkRGF0ZT1uZXcgRGF0ZSh5LG0sZCk7Uy5wcmVtaXVtRGF5PWlzUHJlbWl1bSh5LG0sZCk7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1wcmVtaXVtLW5vdGljZScpLnN0eWxlLmRpc3BsYXk9Uy5wcmVtaXVtRGF5PydmbGV4Jzonbm9uZSc7cmVuZGVyQ2FsKCk7dXBkYXRlUHJpY2UoKTt9KTt9Z3JpZC5hcHBlbmRDaGlsZChlbCk7fX13aW5kb3cuY3YzQ2FsTmF2PWZ1bmN0aW9uKGRpcil7Uy5jYWxNb250aCs9ZGlyO2lmKFMuY2FsTW9udGg+MTEpe1MuY2FsTW9udGg9MDtTLmNhbFllYXIrKzt9aWYoUy5jYWxNb250aDwwKXtTLmNhbE1vbnRoPTExO1MuY2FsWWVhci0tO31yZW5kZXJDYWwoKTt9O3dpbmRvdy5jdjNDaGVja1Bvc3Rjb2RlPWZ1bmN0aW9uKCl7Y29uc3QgcGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1wb3N0Y29kZScpLnZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL1xzKy9nLCcnKTtpZihwYy5sZW5ndGg8Mil7Uy5vdXRPZkFyZWE9ZmFsc2U7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1vb2Ytbm90aWNlJykuc3R5bGUuZGlzcGxheT0nbm9uZSc7dXBkYXRlUHJpY2UoKTtyZXR1cm47fWNvbnN0IG1hdGNoPUxPTkRPTi5zb21lKHA9PnBjLnN0YXJ0c1dpdGgocCkmJnBjLnNsaWNlKHAubGVuZ3RoKS5sZW5ndGg+MCYmL15cZC8udGVzdChwYy5zbGljZShwLmxlbmd0aCkpKTtTLm91dE9mQXJlYT0hbWF0Y2g7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1vb2Ytbm90aWNlJykuc3R5bGUuZGlzcGxheT1TLm91dE9mQXJlYT8nZmxleCc6J25vbmUnO3VwZGF0ZVByaWNlKCk7fTt3aW5kb3cuY3YzQ2hlY2tQZWFrPWZ1bmN0aW9uKCl7Y29uc3Qgc2VsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdjMtdGltZScpO2NvbnN0IG9wdD1zZWwub3B0aW9uc1tzZWwuc2VsZWN0ZWRJbmRleF07Uy5wZWFrVGltZT0ob3B0JiZvcHQuZGF0YXNldC5wZWFrPT09J3RydWUnKTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXBlYWstbm90aWNlJykuc3R5bGUuZGlzcGxheT1TLnBlYWtUaW1lPydmbGV4Jzonbm9uZSc7dXBkYXRlUHJpY2UoKTt9O3dpbmRvdy5jdjNBcHBseVByb21vPWZ1bmN0aW9uKCl7Y29uc3QgY29kZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXByb21vJykudmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7Y29uc3QgbXNnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdjMtcHJvbW8tbXNnJyk7aWYoY29kZT09PSdDTElDS1NFUlZJQ0VTMjAyNicpe1MucHJvbW9BcHBsaWVkPXRydWU7Uy5wcm9tb0Rpc2NvdW50PTEwO21zZy50ZXh0Q29udGVudD0nXHUyNzEzIENMSUNLU0VSVklDRVMyMDI2IGFwcGxpZWQgXHUyMDE0IDEwJSBvZmYhJzttc2cuY2xhc3NOYW1lPSdjaS1wcm9tby1tc2cgc3VjY2Vzcyc7fWVsc2V7Uy5wcm9tb0FwcGxpZWQ9ZmFsc2U7Uy5wcm9tb0Rpc2NvdW50PTA7bXNnLnRleHRDb250ZW50PSdcdTI3MTcgSW52YWxpZCBwcm9tbyBjb2RlLic7bXNnLmNsYXNzTmFtZT0nY2ktcHJvbW8tbXNnIGVycm9yJzt9dXBkYXRlUHJpY2UoKTt9O2Z1bmN0aW9uIHVwZGF0ZVByaWNlKCl7Y29uc3QgYmI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1icmVha2Rvd24nKTtjb25zdCBwYXlCdG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1wYXktYnRuJyk7Y29uc3QgcmVzQnRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdjMtcmVzZXJ2ZS1idG4nKTtjb25zdCBwYXlMYmw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1wYXktbGFiZWwnKTtjb25zdCByZXNMYmw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1yZXNlcnZlLWxhYmVsJyk7Y29uc3QgYmVuZWZpdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXBheS1iZW5lZml0Jyk7Y29uc3QgcmVzTm90ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXJlc2VydmUtbm90ZScpO2lmKFMuYmVkcz09PW51bGwpe2JiLnN0eWxlLmRpc3BsYXk9J25vbmUnO3BheUJ0bi5kaXNhYmxlZD10cnVlO3Jlc0J0bi5kaXNhYmxlZD10cnVlO3BheUxibC50ZXh0Q29udGVudD0nU2VsZWN0IHByb3BlcnR5IHNpemUgdG8gY29udGludWUnO3Jlc0xibC50ZXh0Q29udGVudD0nUmVzZXJ2ZSB3aXRob3V0IHBheWluZyc7YmVuZWZpdC5zdHlsZS5kaXNwbGF5PSdub25lJztyZXNOb3RlLnN0eWxlLmRpc3BsYXk9J25vbmUnO3JldHVybjt9Y29uc3QgYmFzZT1nZXRQcmljZSgnY2hlY2tpbicsUy5iZWRzKTtjb25zdCBsYWJlbD1CRURfTEFCRUxTW1MuYmVkc107Y29uc3QgdHlwZT1TLmlzSG91c2U/J0hvdXNlJzonRmxhdCc7bGV0IHJvd3M9W10sc3ViPWJhc2U7cm93cy5wdXNoKHtsOidDaGVjay1JbiBcdTIwMTQgJytsYWJlbCsnICcrdHlwZSxhOmJhc2V9KTtpZihTLmZ1cm5pc2hlZCl7cm93cy5wdXNoKHtsOidGdXJuaXNoZWQgcHJvcGVydHknLGE6MTB9KTtzdWIrPTEwO31pZihTLmV4dHJhQmF0aD4wKXtjb25zdCBlPVMuZXh0cmFCYXRoKjEwO3Jvd3MucHVzaCh7bDonRXh0cmEgYmF0aHJvb21zIFx1MDBkNyAnK1MuZXh0cmFCYXRoLGE6ZX0pO3N1Yis9ZTt9aWYoUy5leHRyYU90aGVyPjApe2NvbnN0IGU9Uy5leHRyYU90aGVyKjEwO3Jvd3MucHVzaCh7bDonT3RoZXIgcm9vbXMgXHUwMGQ3ICcrUy5leHRyYU90aGVyLGE6ZX0pO3N1Yis9ZTt9aWYoUy5wcmVtaXVtRGF5KXtyb3dzLnB1c2goe2w6J1N1bmRheSAvIEJhbmsgSG9saWRheSBmZWUnLGE6NTAsdDonZmVlJ30pO3N1Yis9NTA7fWlmKFMucGVha1RpbWUpe3Jvd3MucHVzaCh7bDonUGVhayB0aW1lIGZlZSAoOTowMCBBTSknLGE6NTAsdDonZmVlJ30pO3N1Yis9NTA7fWlmKFMub3V0T2ZBcmVhKXtyb3dzLnB1c2goe2w6J091dCBvZiBhcmVhIGZlZScsYToyNSx0OidmZWUnfSk7c3ViKz0yNTt9bGV0IGRpc2M9MDtpZihTLnByb21vQXBwbGllZCl7ZGlzYz1NYXRoLnJvdW5kKHN1YipTLnByb21vRGlzY291bnQvMTAwKTtyb3dzLnB1c2goe2w6J1Byb21vICgnK1MucHJvbW9EaXNjb3VudCsnJSBvZmYpJyxhOi1kaXNjLHQ6J2Rpc2NvdW50J30pO31jb25zdCB0b3RhbD1zdWItZGlzYztsZXQgaHRtbD0nJztyb3dzLmZvckVhY2goKHIsaSk9Pntjb25zdCBjbHM9ci50PydjaS1iay1yb3cgJytyLnQ6J2NpLWJrLXJvdyc7aHRtbCs9JzxkaXYgY2xhc3M9IicrY2xzKyciPjxzcGFuPicrci5sKyc8L3NwYW4+PHNwYW4+JysoaT09PTA/Jyc6KHIuYTwwPydcdTIyMTInOicrJykpKydcdTAwYTMnK01hdGguYWJzKHIuYSkrJzwvc3Bhbj48L2Rpdj4nO30pO2h0bWwrPSc8ZGl2IGNsYXNzPSJjaS1iay1kaXZpZGVyIj48L2Rpdj4nO2h0bWwrPSc8ZGl2IGNsYXNzPSJjaS1iay10b3RhbCI+PHNwYW4+VG90YWw8L3NwYW4+PHNwYW4+XHUwMGEzJyt0b3RhbCsnPC9zcGFuPjwvZGl2Pic7YmIuaW5uZXJIVE1MPWh0bWw7YmIuc3R5bGUuZGlzcGxheT0nYmxvY2snO2NvbnN0IHJlYWR5PVMuc2VsZWN0ZWREYXRlIT09bnVsbDtwYXlCdG4uZGlzYWJsZWQ9IXJlYWR5O3Jlc0J0bi5kaXNhYmxlZD0hcmVhZHk7cGF5TGJsLnRleHRDb250ZW50PXJlYWR5PydQYXkgXHUwMGEzJyt0b3RhbCsnIE5vdyBcdTIwMTQgU2F2ZSAxMCUnOidTZWxlY3QgYSBkYXRlIHRvIGNvbnRpbnVlJztyZXNMYmwudGV4dENvbnRlbnQ9cmVhZHk/J1Jlc2VydmUgXHUyMDE0IFx1MDBhMycrdG90YWwrJyAocGF5IGxhdGVyKSc6J1Jlc2VydmUgd2l0aG91dCBwYXlpbmcnO2JlbmVmaXQuc3R5bGUuZGlzcGxheT0nZmxleCc7cmVzTm90ZS5zdHlsZS5kaXNwbGF5PXJlYWR5PydibG9jayc6J25vbmUnO31mdW5jdGlvbiB2YWxpZGF0ZSgpe2NvbnN0IGZpZWxkcz1bJ2N2My1hZGRyZXNzJywnY3YzLXBvc3Rjb2RlJywnY3YzLW5hbWUnLCdjdjMtcGhvbmUnLCdjdjMtZW1haWwnXTtjb25zdCB2YWxzPWZpZWxkcy5tYXAoaWQ9PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZS50cmltKCkpO2NvbnN0IHRpbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My10aW1lJykudmFsdWU7aWYodmFscy5zb21lKHY9PiF2KXx8IXRpbWUpe2FsZXJ0KCdQbGVhc2UgY29tcGxldGUgYWxsIHJlcXVpcmVkIGZpZWxkcyAoYWRkcmVzcywgcG9zdGNvZGUsIHRpbWUgc2xvdCwgbmFtZSwgZW1haWwsIHBob25lKS4nKTtyZXR1cm4gZmFsc2U7fWlmKCEvXlteXHNAXStAW15cc0BdK1wuW15cc0BdKyQvLnRlc3QodmFsc1s0XSkpe2FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLicpO3JldHVybiBmYWxzZTt9cmV0dXJuIHRydWU7fWZ1bmN0aW9uIGJ1aWxkUGF5bG9hZCh0eXBlKXtjb25zdCBiYXNlPWdldFByaWNlKCdjaGVja2luJyxTLmJlZHMpO2xldCBzdWI9YmFzZTtpZihTLmZ1cm5pc2hlZClzdWIrPTEwO3N1Yis9KFMuZXh0cmFCYXRoK1MuZXh0cmFPdGhlcikqMTA7aWYoUy5wcmVtaXVtRGF5KXN1Yis9NTA7aWYoUy5wZWFrVGltZSlzdWIrPTUwO2lmKFMub3V0T2ZBcmVhKXN1Yis9MjU7Y29uc3QgZGlzYz0odHlwZT09PSdwYXlfbm93JyYmUy5wcm9tb0FwcGxpZWQpP01hdGgucm91bmQoc3ViKlMucHJvbW9EaXNjb3VudC8xMDApOjA7cmV0dXJue3BheW1lbnRUeXBlOnR5cGUsc2VydmljZTonY2hlY2tpbicsc2VydmljZU5hbWU6J0NoZWNrLUluIFJlcG9ydCcscHJvcGVydHlUeXBlOlMuaXNIb3VzZT8naG91c2UnOidmbGF0JyxiZWRyb29tczpTLmJlZHMsYmVkcm9vbUxhYmVsOkJFRF9MQUJFTFNbUy5iZWRzXSxiYXNlUHJpY2U6YmFzZSxmdXJuaXNoZWQ6Uy5mdXJuaXNoZWQsZXh0cmFCYXRocm9vbXM6Uy5leHRyYUJhdGgsZXh0cmFPdGhlclJvb21zOlMuZXh0cmFPdGhlcix0b3RhbEV4dHJhUm9vbXM6Uy5leHRyYUJhdGgrUy5leHRyYU90aGVyLGRhdGU6Uy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1HQicse3dlZWtkYXk6J2xvbmcnLGRheTonbnVtZXJpYycsbW9udGg6J2xvbmcnLHllYXI6J251bWVyaWMnfSksZGF0ZUlTTzpTLnNlbGVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0scHJlbWl1bURheTpTLnByZW1pdW1EYXkscHJlbWl1bUZlZTpTLnByZW1pdW1EYXk/NTA6MCxwZWFrVGltZTpTLnBlYWtUaW1lLHBlYWtUaW1lRmVlOlMucGVha1RpbWU/NTA6MCxvdXRPZkFyZWE6Uy5vdXRPZkFyZWEsb3V0T2ZBcmVhRmVlOlMub3V0T2ZBcmVhPzI1OjAscHJvbW9Db2RlOih0eXBlPT09J3BheV9ub3cnJiZTLnByb21vQXBwbGllZCk/J0NMSUNLU0VSVklDRVMyMDI2JzpudWxsLHByb21vRGlzY291bnQ6ZGlzYyxzdWJ0b3RhbDpzdWIsdG90YWw6c3ViLWRpc2MsY3VycmVuY3k6J0dCUCcsYWRkcmVzczpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLWFkZHJlc3MnKS52YWx1ZS50cmltKCkscG9zdGNvZGU6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1wb3N0Y29kZScpLnZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpLHRpbWVQcmVmZXJlbmNlOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdjMtdGltZScpLnZhbHVlLGN1c3RvbWVyTmFtZTpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLW5hbWUnKS52YWx1ZS50cmltKCksY3VzdG9tZXJQaG9uZTpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLXBob25lJykudmFsdWUudHJpbSgpLGN1c3RvbWVyRW1haWw6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1lbWFpbCcpLnZhbHVlLnRyaW0oKSxub3Rlczpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3YzLW5vdGVzJykudmFsdWUudHJpbSgpLGJvb2tlZEF0Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKX07fXdpbmRvdy5jdjNQYXlOb3c9ZnVuY3Rpb24oKXtpZihTLmJlZHM9PT1udWxsfHwhUy5zZWxlY3RlZERhdGUpcmV0dXJuO2lmKCF2YWxpZGF0ZSgpKXJldHVybjtjb25zdCBwPWJ1aWxkUGF5bG9hZCgncGF5X25vdycpO2NvbnNvbGUubG9nKCc9PT0gQ0xJQ0sgSU5WRU5UT1JJRVMgQ0hFQ0stSU4gUEFZTUVOVCA9PT0nLEpTT04uc3RyaW5naWZ5KHAsbnVsbCwyKSk7cGF5Tm93KHApO307d2luZG93LmN2M1Jlc2VydmU9ZnVuY3Rpb24oKXtpZihTLmJlZHM9PT1udWxsfHwhUy5zZWxlY3RlZERhdGUpcmV0dXJuO2lmKCF2YWxpZGF0ZSgpKXJldHVybjtjb25zdCBwPWJ1aWxkUGF5bG9hZCgncmVzZXJ2ZScpO2NvbnNvbGUubG9nKCc9PT0gQ0xJQ0sgSU5WRU5UT1JJRVMgQ0hFQ0stSU4gUkVTRVJWQVRJT04gPT09JyxKU09OLnN0cmluZ2lmeShwLG51bGwsMikpO3BheU5vdyhwKTt9O3dpbmRvdy5wYXlOb3c9d2luZG93LnBheU5vd3x8ZnVuY3Rpb24ocCl7dmFyIGZkPW5ldyBGb3JtRGF0YSgpO2ZkLmFwcGVuZCgnYWN0aW9uJywnY2lfY2hlY2tpbl9ib29raW5nJyk7aWYodHlwZW9mIGNpQ2hlY2tpbkFqYXghPT0ndW5kZWZpbmVkJylmZC5hcHBlbmQoJ25vbmNlJyxjaUNoZWNraW5BamF4Lm5vbmNlKTtPYmplY3Qua2V5cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGspe2ZkLmFwcGVuZChrLHBba10pO30pO3ZhciBhamF4VXJsPSh0eXBlb2YgY2lDaGVja2luQWpheCE9PSd1bmRlZmluZWQnKT9jaUNoZWNraW5BamF4LnVybDonL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJztmZXRjaChhamF4VXJsLHttZXRob2Q6J1BPU1QnLGJvZHk6ZmR9KS50aGVuKGZ1bmN0aW9uKHIpe3JldHVybiByLmpzb24oKTt9KS50aGVuKGZ1bmN0aW9uKGQpe2NvbnNvbGUubG9nKCdCb29raW5nIGVtYWlsOicsZCk7dmFyIGN2M3M9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N2My1zdWNjZXNzJyk7aWYoY3Yzcyl7Y3Yzcy5zdHlsZS5kaXNwbGF5PSdibG9jayc7Y3Yzcy5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6J3Ntb290aCcsYmxvY2s6J2NlbnRlcid9KTt9fSkuY2F0Y2goZnVuY3Rpb24oZSl7Y29uc29sZS5sb2coJ0VtYWlsIGVycm9yOicsZSk7fSk7YWxlcnQoKHAucGF5bWVudFR5cGU9PT0ncGF5X25vdyc/J1x1ZDgzZFx1ZGNiMyBQQVlJTkcgTk9XJzonXHVkODNkXHVkY2M1IFJFU0VSVkFUSU9OJykrJ1xuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXG4nK3Auc2VydmljZU5hbWUrJyBcdTIwMTQgJytwLmJlZHJvb21MYWJlbCsnICcrcC5wcm9wZXJ0eVR5cGUrJ1xuJytwLmFkZHJlc3MrJywgJytwLnBvc3Rjb2RlKydcbicrcC5kYXRlKycgXHUwMGI3ICcrcC50aW1lUHJlZmVyZW5jZSsnXG4nKyhwLnByZW1pdW1EYXk/J1x1MjZhMSBQcmVtaXVtIGRheSBcdTAwYjcgJzonJykrKHAucGVha1RpbWU/J1x1MjZhMSBQZWFrIHRpbWUgXHUwMGI3ICc6JycpKyhwLnByb21vQ29kZT8nXHVkODNjXHVkZmY3ICcrcC5wcm9tb0NvZGUrJyAnOicnKSsnXG5cdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcblRvdGFsOiBcdTAwYTMnK3AudG90YWwrJ1xuJysocC5wYXltZW50VHlwZT09PSdyZXNlcnZlJz8nXHUyNmEwIFJlcG9ydCBoZWxkIHVudGlsIHBheW1lbnQnOidcdTI3MTMgUmVwb3J0IHNlbnQgb24gY29tcGxldGlvbicpKydcblxuJytwLmN1c3RvbWVyTmFtZSsnIFx1MDBiNyAnK3AuY3VzdG9tZXJFbWFpbCk7fTtidWlsZFRhYmxlKCk7cmVuZGVyQ2FsKCk7dXBkYXRlUHJpY2UoKTt9KSgpOzwvc2NyaXB0Pg==[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]…

Book Now →
inventory and check-out report

Click Inventories: Inventory & Check-out

[vc_row][vc_column][vc_raw_html]PHN0eWxlPgpAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1ETStTYW5zOndnaHRANDAwOzUwMDs2MDA7NzAwJmZhbWlseT1QbHVzK0pha2FydGErU2Fuczp3Z2h0QDYwMDs3MDA7ODAwJmRpc3BsYXk9c3dhcCcpOwo6cm9vdHstLWNpLXRlYWw6IzBEOTQ4ODstLWNpLXRlYWwtZGFyazojMEY3NjZFOy0tY2ktdGVhbC1kZWVwZXI6IzExNUU1OTstLWNpLXRlYWwtbGlnaHQ6I0NDRkJGMTstLWNpLXRlYWwtNTA6I0YwRkRGQTstLWNpLXRlYWwtMTAwOiNFNkZBRjU7LS1jaS1hbWJlcjojRDk3NzA2Oy0tY2ktYW1iZXItbGlnaHQ6I0ZFRjNDNzstLWNpLWFtYmVyLWJnOiNGRkZCRUI7LS1jaS1nb2xkOiNCNDUzMDk7LS1jaS1ncmVlbjojMDU5NjY5Oy0tY2ktZ3JlZW4tbGlnaHQ6I0QxRkFFNTstLWNpLXJlZDojREMyNjI2Oy0tY2ktd2hpdGU6I0ZGRkZGRjstLWNpLWdyYXktNTA6I0Y5RkFGQjstLWNpLWdyYXktMTAwOiNGM0Y0RjY7LS1jaS1ncmF5LTIwMDojRTVFN0VCOy0tY2ktZ3JheS0zMDA6I0QxRDVEQjstLWNpLWdyYXktNDAwOiM5Q0EzQUY7LS1jaS1ncmF5LTUwMDojNkI3MjgwOy0tY2ktZ3JheS02MDA6IzRCNTU2MzstLWNpLWdyYXktNzAwOiMzNzQxNTE7LS1jaS1ncmF5LTgwMDojMUYyOTM3Oy0tY2ktZ3JheS05MDA6IzExMTgyNzstLWNpLXJhZGl1czoxMHB4Oy0tY2ktcmFkaXVzLWxnOjE0cHh9CiNjaS1jaGVja291dC12MyAqe21hcmdpbjowO3BhZGRpbmc6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9CiNjaS1jaGVja291dC12M3tmb250LWZhbWlseTonRE0gU2FucycsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsc2Fucy1zZXJpZjttYXgtd2lkdGg6OTQwcHg7bWFyZ2luOjAgYXV0bztjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCk7bGluZS1oZWlnaHQ6MS41fQojY2ktY2hlY2tvdXQtdjMgLmNpLXBhZ2UtaGVhZHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjMycHggMjBweCA4cHh9CiNjaS1jaGVja291dC12MyAuY2ktcGFnZS1oZWFkIGgxe2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2FucycsJ0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjMwcHg7Zm9udC13ZWlnaHQ6ODAwO2NvbG9yOnZhcigtLWNpLXRlYWwtZGVlcGVyKTtsZXR0ZXItc3BhY2luZzotMC41cHg7bWFyZ2luLWJvdHRvbTo4cHh9CiNjaS1jaGVja291dC12MyAuY2ktcGFnZS1oZWFkIHB7Zm9udC1zaXplOjE1cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApO21heC13aWR0aDo2MjBweDttYXJnaW46MCBhdXRvfQojY2ktY2hlY2tvdXQtdjMgLmNpLXRvZ2dsZS13cmFwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MTRweDtwYWRkaW5nOjI0cHggMjBweCAyMHB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLXRvZ2dsZS1sYWJlbHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApO3RyYW5zaXRpb246Y29sb3IgMC4ycztjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfQojY2ktY2hlY2tvdXQtdjMgLmNpLXRvZ2dsZS1sYWJlbC5hY3RpdmV7Y29sb3I6dmFyKC0tY2ktdGVhbC1kZWVwZXIpfQojY2ktY2hlY2tvdXQtdjMgLmNpLXRvZ2dsZS10cmFja3t3aWR0aDo1NnB4O2hlaWdodDozMHB4O2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbCk7Ym9yZGVyLXJhZGl1czoxNXB4O3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAwLjNzO2ZsZXgtc2hyaW5rOjA7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjE1KX0KI2NpLWNoZWNrb3V0LXYzIC5jaS10b2dnbGUtdGh1bWJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci1yYWRpdXM6NTAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7bGVmdDozcHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LDAsMC4yLDEpO2JveC1zaGFkb3c6MCAxcHggNHB4IHJnYmEoMCwwLDAsMC4xNSl9CiNjaS1jaGVja291dC12MyAuY2ktdG9nZ2xlLXRyYWNrLmhvdXNlIC5jaS10b2dnbGUtdGh1bWJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjZweCl9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZS13cmFwe3BhZGRpbmc6MCAyMHB4IDEycHg7b3ZlcmZsb3cteDphdXRvfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGV7d2lkdGg6MTAwJTtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cy1sZyk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6MCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNiksMCA0cHggMTZweCByZ2JhKDEzLDE0OCwxMzYsMC4wOCl9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0aGVhZCB0aHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tY2ktdGVhbC1kZWVwZXIpIDAlLHZhcigtLWNpLXRlYWwpIDEwMCUpO2NvbG9yOndoaXRlO3BhZGRpbmc6MTZweCAxMnB4O2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6MC44cHg7Ym9yZGVyOm5vbmV9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZHt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1sZWZ0OjI0cHg7d2lkdGg6MTYwcHh9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0cnt0cmFuc2l0aW9uOmFsbCAwLjE1cztjdXJzb3I6cG9pbnRlcn0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCl9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZHtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwtMTAwKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRke3BhZGRpbmc6MTRweCAxMnB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTEwMCk7dHJhbnNpdGlvbjphbGwgMC4xNXN9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZHt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1sZWZ0OjI0cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLWdyYXktODAwKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGR7Ym9yZGVyLWJvdHRvbTpub25lfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgLmNpLXByaWNlLWNlbGx7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJywnRE0gU2Fucycsc2Fucy1zZXJpZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE2cHg7Y29sb3I6dmFyKC0tY2ktdGVhbC1kZWVwZXIpfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgLmNpLXByaWNlLWNlbGwgc3Bhbntmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1jaS1ncmF5LTQwMCk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmfQojY2ktY2hlY2tvdXQtdjMgLmNpLXJvdy1ib29re2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7cGFkZGluZzo3cHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwpO2NvbG9yOndoaXRlO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMi41cHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIDAuMnM7d2hpdGUtc3BhY2U6bm93cmFwfQojY2ktY2hlY2tvdXQtdjMgLmNpLXJvdy1ib29rOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC1kYXJrKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDhweCByZ2JhKDEzLDE0OCwxMzYsMC4zKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1yb3ctYm9vayBzdmd7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtzdHJva2U6d2hpdGU7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoyLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgLmNpLXJvdy1ib29re2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC1kZWVwZXIpfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgdGQ6Zmlyc3QtY2hpbGR7cG9zaXRpb246cmVsYXRpdmV9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZCB0ZDpmaXJzdC1jaGlsZDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO3dpZHRoOjRweDtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwpfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbGxvdXR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6MTRweCAyMHB4O21hcmdpbjoxNnB4IDIwcHggMDtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwtNTApO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS10ZWFsLWxpZ2h0KTtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cyk7Zm9udC1zaXplOjEzLjVweDtjb2xvcjp2YXIoLS1jaS10ZWFsLWRhcmspfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbGxvdXQgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7c3Ryb2tlOnZhcigtLWNpLXRlYWwpO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7ZmxleC1zaHJpbms6MH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWxsb3V0IGF7Y29sb3I6dmFyKC0tY2ktdGVhbC1kYXJrKTtmb250LXdlaWdodDo3MDA7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6MnB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLWZvcm0td2lkZ2V0e21heC13aWR0aDo1NjBweDttYXJnaW46MzJweCBhdXRvIDA7YmFja2dyb3VuZDp2YXIoLS1jaS13aGl0ZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1jaS1yYWRpdXMtbGcpO2JveC1zaGFkb3c6MCA0cHggMjRweCByZ2JhKDEzLDE0OCwxMzYsMC4xMCksMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wNik7b3ZlcmZsb3c6aGlkZGVufQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ3LWhlYWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tY2ktdGVhbC1kZWVwZXIpIDAlLHZhcigtLWNpLXRlYWwpIDYwJSwjMTRCOEE2IDEwMCUpO3BhZGRpbmc6MjBweCAyOHB4O2NvbG9yOndoaXRlO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0KI2NpLWNoZWNrb3V0LXYzIC5jaS1mdy1oZWFkZXI6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMzBweDtyaWdodDotMzBweDt3aWR0aDoxMDBweDtoZWlnaHQ6MTAwcHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDYpO2JvcmRlci1yYWRpdXM6NTAlfQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ3LWhlYWRlci1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9CiNjaS1jaGVja291dC12MyAuY2ktZnctaWNvbnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjE1KTtib3JkZXItcmFkaXVzOjEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjB9CiNjaS1jaGVja291dC12MyAuY2ktZnctaWNvbiBzdmd7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtzdHJva2U6d2hpdGU7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoxLjg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ3LWhlYWRlciBoM3tmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLCdETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzotMC4ycHh9CiNjaS1jaGVja291dC12MyAuY2ktZnctaGVhZGVyIHB7Zm9udC1zaXplOjEzcHg7b3BhY2l0eTowLjg1fQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ3LWhlYWRlciAuY2ktZnctc2VsZWN0aW9ue2ZvbnQtc2l6ZToxM3B4O29wYWNpdHk6MC45O21hcmdpbi10b3A6NHB4O2ZvbnQtd2VpZ2h0OjUwMH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1mdy1ib2R5e3BhZGRpbmc6MjRweCAyOHB4IDI4cHh9CiNjaS1jaGVja291dC12MyAuY2ktbGFiZWx7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKTttYXJnaW4tYm90dG9tOjhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9CiNjaS1jaGVja291dC12MyAuY2ktc3RlcHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsKTtjb2xvcjp3aGl0ZTtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo3MDA7ZmxleC1zaHJpbms6MH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1yb29tcy1zZWN0aW9ue21hcmdpbi1ib3R0b206MjBweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1yb29tcy1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjEycHggMTZweDtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyYXktNTApO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czo4cHg7bWFyZ2luLWJvdHRvbTo4cHh9CiNjaS1jaGVja291dC12MyAuY2ktcm9vbXMtcm93LWxhYmVse2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTcwMCl9CiNjaS1jaGVja291dC12MyAuY2ktY291bnRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9CiNjaS1jaGVja291dC12MyAuY2ktY291bnRlci1idG57d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0zMDApO2JhY2tncm91bmQ6dmFyKC0tY2ktd2hpdGUpO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTYwMCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIDAuMTVzfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNvdW50ZXItYnRuOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtjb2xvcjp2YXIoLS1jaS10ZWFsKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jb3VudGVyLXZhbHt3aWR0aDozMHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCl9CiNjaS1jaGVja291dC12MyAuY2ktcm9vbXMtaGludHtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1jaS1ncmF5LTUwMCk7bGluZS1oZWlnaHQ6MS41O3BhZGRpbmc6NHB4IDRweCAwfQojY2ktY2hlY2tvdXQtdjMgLmNpLXJvb21zLWhpbnQgc3Zne3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHg7c3Ryb2tlOnZhcigtLWNpLWdyYXktNDAwKTtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjI7dmVydGljYWwtYWxpZ246LTJweDttYXJnaW4tcmlnaHQ6M3B4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1mdXJuaXNoZWQtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE2cHg7YmFja2dyb3VuZDp2YXIoLS1jaS1ncmF5LTUwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0yMDApO2JvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIDAuMnM7bWFyZ2luLWJvdHRvbTo4cHh9CiNjaS1jaGVja291dC12MyAuY2ktZnVybmlzaGVkLXJvdzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCk7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1mdXJuaXNoZWQtcm93LmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCk7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTEwMCl9CiNjaS1jaGVja291dC12MyAuY2ktZnVybmlzaGVkLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jaGt7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjVweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNpLWdyYXktMzAwKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgMC4ycztmbGV4LXNocmluazowfQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ1cm5pc2hlZC1yb3cuYWN0aXZlIC5jaS1jaGt7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsKTtib3JkZXItY29sb3I6dmFyKC0tY2ktdGVhbCl9CiNjaS1jaGVja291dC12MyAuY2ktY2hrIHN2Z3t3aWR0aDoxMnB4O2hlaWdodDoxMnB4O3N0cm9rZTp3aGl0ZTtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjIuNTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IDAuMnN9CiNjaS1jaGVja291dC12MyAuY2ktZnVybmlzaGVkLXJvdy5hY3RpdmUgLmNpLWNoayBzdmd7b3BhY2l0eToxfQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ1cm5pc2hlZC1wcmljZXtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tY2ktdGVhbC1kYXJrKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtbmF2e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luLWJvdHRvbToxMnB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1uYXYgYnV0dG9ue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMjAwKTtiYWNrZ3JvdW5kOnZhcigtLWNpLXdoaXRlKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjphbGwgMC4xNXN9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLW5hdiBidXR0b246aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCl9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLW5hdiBidXR0b24gc3Zne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7c3Ryb2tlOnZhcigtLWNpLWdyYXktNjAwKTtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjIuNTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmR9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLXRpdGxle2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTgwMCl9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNywxZnIpO2dhcDo0cHg7bWFyZ2luLWJvdHRvbTo4cHh9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLWRvd3t0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tY2ktZ3JheS00MDApO3BhZGRpbmc6NHB4IDAgOHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzowLjVweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtZGF5e2FzcGVjdC1yYXRpbzoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo1MDA7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgMC4xNXM7Ym9yZGVyOjEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtZGF5OmhvdmVyOm5vdCguZGlzYWJsZWQpOm5vdCguZW1wdHkpe2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1kYXkuc2VsZWN0ZWR7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsKSAhaW1wb3J0YW50O2NvbG9yOndoaXRlICFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwtZGFyaykgIWltcG9ydGFudDtmb250LXdlaWdodDo3MDA7Ym94LXNoYWRvdzowIDJweCA4cHggcmdiYSgxMywxNDgsMTM2LDAuMzUpfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1kYXkuZGlzYWJsZWR7Y29sb3I6dmFyKC0tY2ktZ3JheS0zMDApO2N1cnNvcjpub3QtYWxsb3dlZH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtZGF5LmVtcHR5e2N1cnNvcjpkZWZhdWx0fQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1kYXkucHJlbWl1bXtiYWNrZ3JvdW5kOnZhcigtLWNpLWFtYmVyLWJnKTtib3JkZXI6MS41cHggZGFzaGVkIHZhcigtLWNpLWFtYmVyKTtjb2xvcjp2YXIoLS1jaS1nb2xkKTtmb250LXdlaWdodDo2MDB9CiNjaS1jaGVja291dC12MyAuY2ktY2FsLWRheS5wcmVtaXVtOmhvdmVyOm5vdCguZGlzYWJsZWQpe2JhY2tncm91bmQ6dmFyKC0tY2ktYW1iZXItbGlnaHQpO2JvcmRlci1jb2xvcjp2YXIoLS1jaS1nb2xkKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtZGF5LnByZW1pdW0uc2VsZWN0ZWR7YmFja2dyb3VuZDp2YXIoLS1jaS1hbWJlcikgIWltcG9ydGFudDtjb2xvcjp3aGl0ZSAhaW1wb3J0YW50O2JvcmRlci1zdHlsZTpzb2xpZCAhaW1wb3J0YW50O2JvcmRlci1jb2xvcjp2YXIoLS1jaS1nb2xkKSAhaW1wb3J0YW50fQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1kYXkudG9kYXk6bm90KC5zZWxlY3RlZCl7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2ZvbnQtd2VpZ2h0OjcwMH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtbGVnZW5ke2Rpc3BsYXk6ZmxleDtnYXA6MTZweDtwYWRkaW5nLXRvcDo4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tY2ktZ3JheS0xMDApfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1sZWdlbmQtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0tY2ktZ3JheS01MDApfQojY2ktY2hlY2tvdXQtdjMgLmNpLWNhbC1sZWdlbmQtZG90e3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Ym9yZGVyLXJhZGl1czo0cHg7ZmxleC1zaHJpbms6MH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtbGVnZW5kLWRvdC5hdmFpbHtiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwtNTApO2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS10ZWFsKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1jYWwtbGVnZW5kLWRvdC5wcmVte2JhY2tncm91bmQ6dmFyKC0tY2ktYW1iZXItYmcpO2JvcmRlcjoxLjVweCBkYXNoZWQgdmFyKC0tY2ktYW1iZXIpfQojY2ktY2hlY2tvdXQtdjMgLmNpLW5vdGljZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6OHB4O3BhZGRpbmc6MTBweCAxNHB4O2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZToxMi41cHg7bGluZS1oZWlnaHQ6MS41O21hcmdpbi1ib3R0b206MTZweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1ub3RpY2UuYW1iZXJ7YmFja2dyb3VuZDp2YXIoLS1jaS1hbWJlci1iZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1jaS1hbWJlci1saWdodCk7Y29sb3I6dmFyKC0tY2ktZ29sZCl9CiNjaS1jaGVja291dC12MyAuY2ktbm90aWNlLnRlYWx7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWNpLXRlYWwtbGlnaHQpO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9CiNjaS1jaGVja291dC12MyAuY2ktbm90aWNlIHN2Z3t3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDoxcHg7c3Ryb2tlOmN1cnJlbnRDb2xvcjtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfQojY2ktY2hlY2tvdXQtdjMgLmNpLWlucHV0LWdyb3Vwe21hcmdpbi1ib3R0b206MTZweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1pbnB1dHt3aWR0aDoxMDAlO3BhZGRpbmc6MTFweCAxNHB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS04MDApO2JhY2tncm91bmQ6dmFyKC0tY2ktd2hpdGUpO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIDAuMnMsYm94LXNoYWRvdyAwLjJzfQojY2ktY2hlY2tvdXQtdjMgLmNpLWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1jaS1ncmF5LTQwMCl9CiNjaS1jaGVja291dC12MyAuY2ktaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzLDE0OCwxMzYsMC4xKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1pbnB1dC1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoxMHB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLXNlbGVjdHt3aWR0aDoxMDAlO3BhZGRpbmc6MTFweCAxNHB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS04MDApO2JhY2tncm91bmQ6dmFyKC0tY2ktd2hpdGUpO2N1cnNvcjpwb2ludGVyOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMicgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLXdpZHRoPScyLjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NwYXRoIGQ9J002IDlsNiA2IDYtNicvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDEycHggY2VudGVyO3BhZGRpbmctcmlnaHQ6MzZweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1zZWxlY3Q6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzLDE0OCwxMzYsMC4xKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS10ZXh0YXJlYXt3aWR0aDoxMDAlO3BhZGRpbmc6MTFweCAxNHB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1jaS1ncmF5LTIwMCk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1mYW1pbHk6J0RNIFNhbnMnLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS04MDApO3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjcwcHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgMC4ycyxib3gtc2hhZG93IDAuMnN9CiNjaS1jaGVja291dC12MyAuY2ktdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1jaS10ZWFsKTtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEzLDE0OCwxMzYsMC4xKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcm9tby1yb3d7ZGlzcGxheTpmbGV4O2dhcDo4cHg7bWFyZ2luLWJvdHRvbToyMHB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLXByb21vLXJvdyAuY2ktaW5wdXR7ZmxleDoxfQojY2ktY2hlY2tvdXQtdjMgLmNpLXByb21vLWJ0bntwYWRkaW5nOjExcHggMThweDtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyYXktMTAwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0yMDApO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1jaS1ncmF5LTYwMCk7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3RyYW5zaXRpb246YWxsIDAuMnN9CiNjaS1jaGVja291dC12MyAuY2ktcHJvbW8tYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tY2ktdGVhbC01MCk7Ym9yZGVyLWNvbG9yOnZhcigtLWNpLXRlYWwpO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayl9CiNjaS1jaGVja291dC12MyAuY2ktcHJvbW8tbXNne2ZvbnQtc2l6ZToxMnB4O21hcmdpbi10b3A6NnB4O2ZvbnQtd2VpZ2h0OjUwMH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcm9tby1tc2cuc3VjY2Vzc3tjb2xvcjp2YXIoLS1jaS1ncmVlbil9CiNjaS1jaGVja291dC12MyAuY2ktcHJvbW8tbXNnLmVycm9ye2NvbG9yOnZhcigtLWNpLXJlZCl9CiNjaS1jaGVja291dC12MyAuY2ktYnJlYWtkb3due2JhY2tncm91bmQ6dmFyKC0tY2ktZ3JheS01MCk7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWNpLWdyYXktMjAwKTtib3JkZXItcmFkaXVzOnZhcigtLWNpLXJhZGl1cyk7cGFkZGluZzoxNnB4O21hcmdpbi1ib3R0b206MjBweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1iay1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjVweCAwO2ZvbnQtc2l6ZToxMy41cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS02MDApfQojY2ktY2hlY2tvdXQtdjMgLmNpLWJrLXJvdy5mZWV7Y29sb3I6dmFyKC0tY2ktYW1iZXIpfQojY2ktY2hlY2tvdXQtdjMgLmNpLWJrLXJvdy5kaXNjb3VudHtjb2xvcjp2YXIoLS1jaS1ncmVlbil9CiNjaS1jaGVja291dC12MyAuY2ktYmstZGl2aWRlcntoZWlnaHQ6MXB4O2JhY2tncm91bmQ6dmFyKC0tY2ktZ3JheS0yMDApO21hcmdpbjo4cHggMH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1iay10b3RhbHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NnB4IDAgMDtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tY2ktZ3JheS05MDApfQojY2ktY2hlY2tvdXQtdjMgLmNpLWJrLXRvdGFsIHNwYW46bGFzdC1jaGlsZHtjb2xvcjp2YXIoLS1jaS10ZWFsLWRhcmspO2ZvbnQtc2l6ZToyMHB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLXBheS1idG57d2lkdGg6MTAwJTtwYWRkaW5nOjE1cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWNpLXRlYWwtZGFyayksdmFyKC0tY2ktdGVhbCkpO2NvbG9yOndoaXRlO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tY2ktcmFkaXVzKTtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLCdETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjJzO2JveC1zaGFkb3c6MCA0cHggMTJweCByZ2JhKDEzLDE0OCwxMzYsMC4zKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wYXktYnRuOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1jaS10ZWFsLWRlZXBlciksdmFyKC0tY2ktdGVhbC1kYXJrKSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9CiNjaS1jaGVja291dC12MyAuY2ktcGF5LWJ0bjpkaXNhYmxlZHtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyYXktMzAwKTtjdXJzb3I6bm90LWFsbG93ZWQ7Ym94LXNoYWRvdzpub25lO3RyYW5zZm9ybTpub25lfQojY2ktY2hlY2tvdXQtdjMgLmNpLXBheS1idG4gc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7c3Ryb2tlOndoaXRlO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmR9CiNjaS1jaGVja291dC12MyAuY2ktcmVzZXJ2ZS1idG57d2lkdGg6MTAwJTtwYWRkaW5nOjE0cHg7YmFja2dyb3VuZDp2YXIoLS1jaS13aGl0ZSk7Y29sb3I6dmFyKC0tY2ktdGVhbC1kYXJrKTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWNpLXRlYWwpO2JvcmRlci1yYWRpdXM6dmFyKC0tY2ktcmFkaXVzKTtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLCdETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjcwMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjJzO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O21hcmdpbi10b3A6MTBweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1yZXNlcnZlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWNpLXRlYWwtNTApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfQojY2ktY2hlY2tvdXQtdjMgLmNpLXJlc2VydmUtYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNpLWdyYXktMzAwKTtib3JkZXItY29sb3I6dmFyKC0tY2ktZ3JheS0zMDApO2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1yZXNlcnZlLWJ0biBzdmd7d2lkdGg6MThweDtoZWlnaHQ6MThweDtzdHJva2U6Y3VycmVudENvbG9yO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmR9CiNjaS1jaGVja291dC12MyAuY2ktZm9vdGVye3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MTRweCAyOHB4O2JhY2tncm91bmQ6dmFyKC0tY2ktZ3JheS01MCk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tY2ktZ3JheS0xMDApfQojY2ktY2hlY2tvdXQtdjMgLmNpLWZvb3RlciBwe2ZvbnQtc2l6ZToxMXB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKX0KI2NpLWNoZWNrb3V0LXYzIC5jaS1mb290ZXIgYXtjb2xvcjp2YXIoLS1jaS10ZWFsKTt0ZXh0LWRlY29yYXRpb246bm9uZX0KQG1lZGlhIChtYXgtd2lkdGg6NjQwcHgpewojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgdGhlYWQgdGh7Zm9udC1zaXplOjExcHg7cGFkZGluZzoxMnB4IDZweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRke3BhZGRpbmc6MTBweCA2cHg7Zm9udC1zaXplOjEzcHh9CiNjaS1jaGVja291dC12MyAuY2ktcHJpY2luZy10YWJsZSAuY2ktcHJpY2UtY2VsbHtmb250LXNpemU6MTRweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wcmljaW5nLXRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxMnB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLXByaWNpbmctdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjEycHg7d2lkdGg6YXV0b30KI2NpLWNoZWNrb3V0LXYzIC5jaS1yb3ctYm9va3twYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZToxMS41cHh9CiNjaS1jaGVja291dC12MyAuY2ktZnctYm9keXtwYWRkaW5nOjE4cHggMThweCAyMnB4fQojY2ktY2hlY2tvdXQtdjMgLmNpLWZ3LWhlYWRlcntwYWRkaW5nOjE2cHggMThweH0KI2NpLWNoZWNrb3V0LXYzIC5jaS1pbnB1dC1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KI2NpLWNoZWNrb3V0LXYzIC5jaS1wYWdlLWhlYWQgaDF7Zm9udC1zaXplOjI0cHh9Cn0KPC9zdHlsZT4KPGRpdiBpZD0iY2ktY2hlY2tvdXQtdjMiPgogIDxkaXYgY2xhc3M9ImNpLXBhZ2UtaGVhZCI+CiAgICA8aDE+Q2hlY2stT3V0IFJlcG9ydHM8L2gxPgogICAgPHA+UHJvZmVzc2lvbmFsIGNoZWNrLW91dCBpbnZlbnRvcnkgcmVwb3J0cyBhY3Jvc3MgTG9uZG9uLiBTZWxlY3QgeW91ciBwcm9wZXJ0eSBzaXplIHRvIGJvb2sgaW5zdGFudGx5LjwvcD4KICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWFyZ2luLXRvcDoxMnB4O3BhZGRpbmc6OHB4IDE4cHg7YmFja2dyb3VuZDp2YXIoLS1jaS10ZWFsLTUwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktdGVhbC1saWdodCk7Ym9yZGVyLXJhZGl1czoyMHB4OyI+CiAgICAgIDxzdmcgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7c3Ryb2tlOnZhcigtLWNpLXRlYWwpO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6Mi41O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDsiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiLz48L3N2Zz4KICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMy41cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWNpLXRlYWwtZGFyayk7Ij5BbGwgcHJpY2VzIGluY2x1c2l2ZSBvZiBWQVQg4oCUIG5vIGhpZGRlbiBmZWVzPC9zcGFuPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY2ktdG9nZ2xlLXdyYXAiPgogICAgPHNwYW4gY2xhc3M9ImNpLXRvZ2dsZS1sYWJlbCBhY3RpdmUiIGlkPSJjbzMtbGJsLWZsYXQiIG9uY2xpY2s9ImNvM1RvZ2dsZSgpIj7wn4+iIEZsYXQ8L3NwYW4+CiAgICA8ZGl2IGNsYXNzPSJjaS10b2dnbGUtdHJhY2siIGlkPSJjbzMtdG9nZ2xlIiBvbmNsaWNrPSJjbzNUb2dnbGUoKSI+CiAgICAgIDxkaXYgY2xhc3M9ImNpLXRvZ2dsZS10aHVtYiI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxzcGFuIGNsYXNzPSJjaS10b2dnbGUtbGFiZWwiIGlkPSJjbzMtbGJsLWhvdXNlIiBvbmNsaWNrPSJjbzNUb2dnbGUoKSI+8J+PoCBIb3VzZTwvc3Bhbj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjaS1wcmljaW5nLXRhYmxlLXdyYXAiPgogICAgPHRhYmxlIGNsYXNzPSJjaS1wcmljaW5nLXRhYmxlIj4KICAgICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0aD5Qcm9wZXJ0eSBTaXplPC90aD4KICAgICAgICAgIDx0aD5DaGVjay1PdXQgUHJpY2U8L3RoPgogICAgICAgICAgPHRoPjwvdGg+CiAgICAgICAgPC90cj4KICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5IGlkPSJjbzMtdGJvZHkiPjwvdGJvZHk+CiAgICA8L3RhYmxlPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNpLWNhbGxvdXQiPgogICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMiAxNi45MnYzYTIgMiAwIDAxLTIuMTggMiAxOS43OSAxOS43OSAwIDAxLTguNjMtMy4wNyAxOS41IDE5LjUgMCAwMS02LTYgMTkuNzkgMTkuNzkgMCAwMS0zLjA3LTguNjdBMiAyIDAgMDE0LjExIDJoM2EyIDIgMCAwMTIgMS43MmMuMTMuODEuMzYgMS42LjY4IDIuMzVhMiAyIDAgMDEtLjQ1IDIuMTFMOC4wOSA5LjkxYTE2IDE2IDAgMDA2IDZsMS4yNy0xLjI3YTIgMiAwIDAxMi4xMS0uNDVjLjc1LjMyIDEuNTQuNTUgMi4zNS42OEEyIDIgMCAwMTIyIDE2LjkyeiIvPjwvc3ZnPgogICAgPHNwYW4+UHJvcGVydHkgbGFyZ2VyIHRoYW4gNSBiZWRyb29tcz8gUGxlYXNlIDxhIGhyZWY9InRlbDowMjAzNDg4ODA3MiI+Y2FsbCB1cyBvbiAwMjAgMzQ4OCA4MDcyPC9hPiBvciA8YSBocmVmPSJtYWlsdG86aW5mb0BjbGlja2ludmVudG9yaWVzLmNvLnVrIj5lbWFpbCB1czwvYT4gZm9yIGEgYmVzcG9rZSBxdW90ZS48L3NwYW4+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY2ktZm9ybS13aWRnZXQiIGlkPSJjbzMtZm9ybSI+CiAgICA8ZGl2IGNsYXNzPSJjaS1mdy1oZWFkZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjaS1mdy1oZWFkZXItcm93Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjaS1mdy1pY29uIj4KICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOSA1SDdhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyaDEwYTIgMiAwIDAwMi0yVjdhMiAyIDAgMDAtMi0yaC0yIi8+PHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNOSAxNGwyIDIgNC00Ii8+PC9zdmc+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxoMz5Cb29rIFlvdXIgQ2hlY2stT3V0PC9oMz4KICAgICAgICAgIDxwPkNvbXBsZXRlIHRoZSBkZXRhaWxzIGJlbG93PC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZnctc2VsZWN0aW9uIiBpZD0iY28zLXNlbGVjdGlvbiI+U2VsZWN0IGEgcHJvcGVydHkgc2l6ZSBmcm9tIHRoZSB0YWJsZSBhYm92ZTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2ktZnctYm9keSI+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWxhYmVsIj48c3BhbiBjbGFzcz0iY2ktc3RlcCI+MTwvc3Bhbj4gQWRkaXRpb25hbCBSb29tcyAmYW1wOyBGdXJuaXNoZWQ8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2ktcm9vbXMtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktZnVybmlzaGVkLXJvdyIgaWQ9ImNvMy1mdXJuaXNoZWQiIG9uY2xpY2s9ImNvM1RvZ2dsZUZ1cm5pc2hlZCgpIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWZ1cm5pc2hlZC1sZWZ0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2hrIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiLz48L3N2Zz48L2Rpdj4KICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMy41cHg7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWNpLWdyYXktNzAwKTsiPkZ1cm5pc2hlZCBwcm9wZXJ0eTwvc3Bhbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNpLWZ1cm5pc2hlZC1wcmljZSI+K8KjMTA8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktcm9vbXMtcm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaS1yb29tcy1yb3ctbGFiZWwiPkV4dHJhIGJhdGhyb29tczwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWNvdW50ZXIiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaS1jb3VudGVyLWJ0biIgb25jbGljaz0iY28zUm9vbXMoJ2JhdGgnLC0xKSI+4oiSPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaS1jb3VudGVyLXZhbCIgaWQ9ImNvMy1iYXRoLWNvdW50Ij4wPC9zcGFuPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaS1jb3VudGVyLWJ0biIgb25jbGljaz0iY28zUm9vbXMoJ2JhdGgnLDEpIj4rPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaS1yb29tcy1yb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNpLXJvb21zLXJvdy1sYWJlbCI+T3RoZXIgcm9vbXMgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKTsiPih1dGlsaXR5LCBnYXJhZ2UsIGNvbnNlcnZhdG9yeSwgZXRjLik8L3NwYW4+PC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY291bnRlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNpLWNvdW50ZXItYnRuIiBvbmNsaWNrPSJjbzNSb29tcygnb3RoZXInLC0xKSI+4oiSPC9idXR0b24+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaS1jb3VudGVyLXZhbCIgaWQ9ImNvMy1vdGhlci1jb3VudCI+MDwvc3Bhbj4KICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2ktY291bnRlci1idG4iIG9uY2xpY2s9ImNvM1Jvb21zKCdvdGhlcicsMSkiPis8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNpLXJvb21zLWhpbnQiPgogICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyLjAxIiB5Mj0iOCIvPjwvc3ZnPgogICAgICAgICAgQmFzZSBwcmljZSBpbmNsdWRlcyAxIGJhdGhyb29tLCAxIGtpdGNoZW4gJmFtcDsgMSBsb3VuZ2UuIEFkZGl0aW9uYWwgcm9vbXMgYXJlIMKjMTAgZWFjaC4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWxhYmVsIj48c3BhbiBjbGFzcz0iY2ktc3RlcCI+Mjwvc3Bhbj4gQWRkIGEgQ2hlY2stSW4gYXQgNTAlIE9mZjwvZGl2PgogICAgICA8ZGl2IGlkPSJjbzMtdXBzZWxsLXNlY3Rpb24iIHN0eWxlPSJtYXJnaW4tYm90dG9tOjIwcHg7Ij4KICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOjE2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWNpLWdyZWVuLWxpZ2h0KSwjRUNGREY1KTtib3JkZXI6MS41cHggc29saWQgI0E3RjNEMDtib3JkZXItcmFkaXVzOjEwcHg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuOyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTEwcHg7cmlnaHQ6LTEwcHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtiYWNrZ3JvdW5kOnJnYmEoNSwxNTAsMTA1LDAuMDgpO2JvcmRlci1yYWRpdXM6NTAlOyI+PC9kaXY+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Ij4KICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6MzZweDtoZWlnaHQ6MzZweDtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyZWVuKTtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDsiPgogICAgICAgICAgICAgIDxzdmcgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7c3Ryb2tlOndoaXRlO2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0yMC41OSAxMy40MWwtNy4xNyA3LjE3YTIgMiAwIDAxLTIuODMgMEwyIDEyVjJoMTBsOC41OSA4LjU5YTIgMiAwIDAxMCAyLjgyeiIvPjxsaW5lIHgxPSI3IiB5MT0iNyIgeDI9IjcuMDEiIHkyPSI3Ii8+PC9zdmc+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbGV4OjE7Ij4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLCdETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjojMDY1RjQ2O21hcmdpbi1ib3R0b206NHB4OyI+NTAlIE9mZiBGb2xsb3ctVXAgQ2hlY2stSW48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDtjb2xvcjojMDQ3ODU3O2xpbmUtaGVpZ2h0OjEuNTttYXJnaW4tYm90dG9tOjEwcHg7Ij5Cb29rIHlvdXIgY2hlY2staW4gdG9nZXRoZXIgd2l0aCB0aGlzIGNoZWNrLW91dCBhbmQgZ2V0IGl0IGF0IDxzdHJvbmc+aGFsZiBwcmljZTwvc3Ryb25nPi4gVGhlIGNoZWNrLWluIGRhdGUgY2FuIGJlIGNvbmZpcm1lZCBsYXRlciBvbmNlIHRoZSBuZXcgdGVuYW5jeSBpcyBhcnJhbmdlZC48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnLCdETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjojMDY1RjQ2O21hcmdpbi1ib3R0b206MTBweDsiIGlkPSJjbzMtdXBzZWxsLXByaWNlIj48L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcDsiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbzNBY2NlcHRVcHNlbGwoKSIgaWQ9ImNvMy11cHNlbGwteWVzIiBzdHlsZT0icGFkZGluZzo4cHggMjBweDtiYWNrZ3JvdW5kOnZhcigtLWNpLWdyZWVuKTtjb2xvcjp3aGl0ZTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjZweDtmb250LWZhbWlseTonRE0gU2Fucycsc2Fucy1zZXJpZjtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgMC4yczsiPuKckyBZZXMsIGFkZCBDaGVjay1JbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbzNEZWNsaW5lVXBzZWxsKCkiIGlkPSJjbzMtdXBzZWxsLW5vIiBzdHlsZT0icGFkZGluZzo4cHggMjBweDtiYWNrZ3JvdW5kOndoaXRlO2NvbG9yOnZhcigtLWNpLWdyYXktNjAwKTtib3JkZXI6MS41cHggc29saWQgdmFyKC0tY2ktZ3JheS0zMDApO2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtZmFtaWx5OidETSBTYW5zJyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjUwMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjJzOyI+Tm8gdGhhbmtzPC9idXR0b24+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iY28zLXVwc2VsbC1hY2NlcHRlZCIgc3R5bGU9ImRpc3BsYXk6bm9uZTtwYWRkaW5nOjEwcHggMTRweDtiYWNrZ3JvdW5kOiNFQ0ZERjU7Ym9yZGVyOjFweCBzb2xpZCAjQTdGM0QwO2JvcmRlci1yYWRpdXM6OHB4O21hcmdpbi10b3A6OHB4OyI+CiAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyI+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDsiPgogICAgICAgICAgICAgIDxzdmcgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7c3Ryb2tlOnZhcigtLWNpLWdyZWVuKTtmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjIuNTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIi8+PC9zdmc+CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMDY1RjQ2OyI+Q2hlY2stSW4gYWRkZWQgYXQgNTAlIG9mZiDigJQgZGF0ZSB0byBiZSBjb25maXJtZWQ8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNvM1JlbW92ZVVwc2VsbCgpIiBzdHlsZT0iYmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLWNpLWdyYXktNDAwKTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyI+UmVtb3ZlPC9idXR0b24+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWxhYmVsIj48c3BhbiBjbGFzcz0iY2ktc3RlcCI+Mzwvc3Bhbj4gU2VsZWN0IERhdGU8L2Rpdj4KICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToyMHB4OyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLW5hdiI+CiAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNvM0NhbE5hdigtMSkiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48cG9seWxpbmUgcG9pbnRzPSIxNSAxOCA5IDEyIDE1IDYiLz48L3N2Zz48L2J1dHRvbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaS1jYWwtdGl0bGUiIGlkPSJjbzMtY2FsLXRpdGxlIj48L3NwYW4+CiAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNvM0NhbE5hdigxKSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjkgMTggMTUgMTIgOSA2Ii8+PC9zdmc+PC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLWdyaWQiIGlkPSJjbzMtY2FsLWdyaWQiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNpLWNhbC1sZWdlbmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLWxlZ2VuZC1pdGVtIj48ZGl2IGNsYXNzPSJjaS1jYWwtbGVnZW5kLWRvdCBhdmFpbCI+PC9kaXY+QXZhaWxhYmxlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1jYWwtbGVnZW5kLWl0ZW0iPjxkaXYgY2xhc3M9ImNpLWNhbC1sZWdlbmQtZG90IHByZW0iPjwvZGl2PlN1biAvIEJhbmsgSG9sICgrwqM1MCk8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLW5vdGljZSBhbWJlciIgaWQ9ImNvMy1wcmVtaXVtLW5vdGljZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ii8+PC9zdmc+CiAgICAgICAgPHNwYW4+U3VuZGF5IC8gQmFuayBIb2xpZGF5IGJvb2tpbmdzIGluY2x1ZGUgYSA8c3Ryb25nPsKjNTAgcHJlbWl1bSBmZWU8L3N0cm9uZz4uPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2ktbGFiZWwiPjxzcGFuIGNsYXNzPSJjaS1zdGVwIj40PC9zcGFuPiBQcm9wZXJ0eSAmYW1wOyBDb250YWN0IERldGFpbHM8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2ktaW5wdXQtZ3JvdXAiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjbzMtYWRkcmVzcyIgcGxhY2Vob2xkZXI9IlByb3BlcnR5IGFkZHJlc3MgKGZpcnN0IGxpbmUpICoiIHJlcXVpcmVkIC8+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaS1pbnB1dC1ncm91cCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktaW5wdXQtcm93Ij4KICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjbzMtcG9zdGNvZGUiIHBsYWNlaG9sZGVyPSJQb3N0Y29kZSAqIiBvbmlucHV0PSJjbzNDaGVja1Bvc3Rjb2RlKCkiIHJlcXVpcmVkIC8+CiAgICAgICAgICA8c2VsZWN0IGNsYXNzPSJjaS1zZWxlY3QiIGlkPSJjbzMtdGltZSIgb25jaGFuZ2U9ImNvM0NoZWNrUGVhaygpIiByZXF1aXJlZD4KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QgdGltZSBzbG90ICo8L29wdGlvbj4KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMDk6MDAtMTA6MDAiIGRhdGEtcGVhaz0idHJ1ZSI+OTowMCDigJMgMTA6MDAgQU0g4q2QIFBlYWsgKCvCozUwKTwvb3B0aW9uPgogICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDowMC0xMTowMCI+MTA6MDAg4oCTIDExOjAwIEFNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjExOjAwLTEyOjAwIj4xMTowMCBBTSDigJMgMTI6MDAgUE08L29wdGlvbj4KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTI6MDAtMTM6MDAiPjEyOjAwIOKAkyAxOjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEzOjAwLTE0OjAwIj4xOjAwIOKAkyAyOjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE0OjAwLTE1OjAwIj4yOjAwIOKAkyAzOjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE1OjAwLTE2OjAwIj4zOjAwIOKAkyA0OjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE2OjAwLTE3OjAwIj40OjAwIOKAkyA1OjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE3OjAwLTE4OjAwIj41OjAwIOKAkyA2OjAwIFBNPC9vcHRpb24+CiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE4OjAwLTE5OjAwIj42OjAwIOKAkyA3OjAwIFBNPC9vcHRpb24+CiAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLW5vdGljZSBhbWJlciIgaWQ9ImNvMy1vb2Ytbm90aWNlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyLjAxIiB5Mj0iMTYiLz48L3N2Zz4KICAgICAgICA8c3Bhbj5Qb3N0Y29kZSBvdXRzaWRlIHN0YW5kYXJkIExvbmRvbiBjb3ZlcmFnZS4gQSA8c3Ryb25nPsKjMjUgb3V0LW9mLWFyZWEgZmVlPC9zdHJvbmc+IGhhcyBiZWVuIGFkZGVkLjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLW5vdGljZSBhbWJlciIgaWQ9ImNvMy1wZWFrLW5vdGljZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0Ij48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ii8+PC9zdmc+CiAgICAgICAgPHNwYW4+VGhlIDxzdHJvbmc+OTowMCBBTTwvc3Ryb25nPiBzbG90IGlzIHBlYWsgdGltZSDigJQgPHN0cm9uZz4rwqM1MCBmZWU8L3N0cm9uZz4gYXBwbGllZC48L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaS1pbnB1dC1ncm91cCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktaW5wdXQtcm93Ij4KICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjbzMtbmFtZSIgcGxhY2Vob2xkZXI9IllvdXIgZnVsbCBuYW1lICoiIHJlcXVpcmVkIC8+CiAgICAgICAgICA8aW5wdXQgdHlwZT0idGVsIiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjbzMtcGhvbmUiIHBsYWNlaG9sZGVyPSJQaG9uZSBudW1iZXIgKiIgcmVxdWlyZWQgLz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWlucHV0LWdyb3VwIj4KICAgICAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJjaS1pbnB1dCIgaWQ9ImNvMy1lbWFpbCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MgKiIgcmVxdWlyZWQgLz4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWlucHV0LWdyb3VwIj4KICAgICAgICA8dGV4dGFyZWEgY2xhc3M9ImNpLXRleHRhcmVhIiBpZD0iY28zLW5vdGVzIiBwbGFjZWhvbGRlcj0iQWRkaXRpb25hbCBub3RlcyAoa2V5IGNvbGxlY3Rpb24sIGFjY2VzcyBpbmZvLCBldGMuKSI+PC90ZXh0YXJlYT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWxhYmVsIj48c3BhbiBjbGFzcz0iY2ktc3RlcCI+NTwvc3Bhbj4gUHJvbW8gQ29kZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjaS1wcm9tby1yb3ciPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iY2ktaW5wdXQiIGlkPSJjbzMtcHJvbW8iIHBsYWNlaG9sZGVyPSJFbnRlciBwcm9tbyBjb2RlIiAvPgogICAgICAgIDxidXR0b24gY2xhc3M9ImNpLXByb21vLWJ0biIgb25jbGljaz0iY28zQXBwbHlQcm9tbygpIj5BcHBseTwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2ktcHJvbW8tbXNnIiBpZD0iY28zLXByb21vLW1zZyI+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLW5vdGljZSB0ZWFsIiBpZD0iY28zLXBheS1iZW5lZml0IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz4KICAgICAgICA8c3Bhbj48c3Ryb25nPlBheSBub3cgJmFtcDsgc2F2ZSAxMCU8L3N0cm9uZz4g4oCUIHlvdXIgcmVwb3J0IHdpbGwgYmUgc2VudCBpbW1lZGlhdGVseSBvbiBjb21wbGV0aW9uLCBubyBkZWxheXMgd2FpdGluZyBvbiBwYXltZW50Ljwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWJyZWFrZG93biIgaWQ9ImNvMy1icmVha2Rvd24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48L2Rpdj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iY2ktcGF5LWJ0biIgaWQ9ImNvMy1wYXktYnRuIiBkaXNhYmxlZCBvbmNsaWNrPSJjbzNQYXlOb3coKSI+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNiIgcng9IjIiIHJ5PSIyIi8+PGxpbmUgeDE9IjEiIHkxPSIxMCIgeDI9IjIzIiB5Mj0iMTAiLz48L3N2Zz4KICAgICAgICA8c3BhbiBpZD0iY28zLXBheS1sYWJlbCI+U2VsZWN0IHByb3BlcnR5IHNpemUgdG8gY29udGludWU8L3NwYW4+CiAgICAgIDwvYnV0dG9uPgogICAgICA8YnV0dG9uIGNsYXNzPSJjaS1yZXNlcnZlLWJ0biIgaWQ9ImNvMy1yZXNlcnZlLWJ0biIgZGlzYWJsZWQgb25jbGljaz0iY28zUmVzZXJ2ZSgpIj4KICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz48bGluZSB4MT0iMTYiIHkxPSIyIiB4Mj0iMTYiIHkyPSI2Ii8+PGxpbmUgeDE9IjgiIHkxPSIyIiB4Mj0iOCIgeTI9IjYiLz48bGluZSB4MT0iMyIgeTE9IjEwIiB4Mj0iMjEiIHkyPSIxMCIvPjwvc3ZnPgogICAgICAgIDxzcGFuIGlkPSJjbzMtcmVzZXJ2ZS1sYWJlbCI+UmVzZXJ2ZSB3aXRob3V0IHBheWluZzwvc3Bhbj4KICAgICAgPC9idXR0b24+CiAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6OHB4O2ZvbnQtc2l6ZToxMS41cHg7Y29sb3I6dmFyKC0tY2ktZ3JheS00MDApO2xpbmUtaGVpZ2h0OjEuNTtkaXNwbGF5Om5vbmU7IiBpZD0iY28zLXJlc2VydmUtbm90ZSI+CiAgICAgICAgUmVzZXJ2ZSBub3csIHBheSBsYXRlciDigJQgeW91ciByZXBvcnQgd2lsbCBiZSBoZWxkIHVudGlsIHBheW1lbnQgaXMgcmVjZWl2ZWQuCiAgICAgIDwvZGl2PgogICAgPC9kaXY+PGRpdiBpZD0iY28zLXN1Y2Nlc3MiIGNsYXNzPSJjaS1jb25maXJtYXRpb24tbXNnIiBzdHlsZT0iZGlzcGxheTpub25lO2JhY2tncm91bmQ6I2U4ZjVlOTtib3JkZXI6MnB4IHNvbGlkICM0Y2FmNTA7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjRweCAyMHB4O21hcmdpbjoxOHB4IDAgMTJweDt0ZXh0LWFsaWduOmNlbnRlcjsiPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToyZW07bWFyZ2luLWJvdHRvbTo4cHg7Ij4mIzEwMDA0OzwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxLjE1ZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMyZTdkMzI7bWFyZ2luLWJvdHRvbTo2cHg7Ij5Cb29raW5nIENvbmZpcm1lZCE8L2Rpdj48ZGl2IGlkPSJjbzMtc3VjY2Vzcy1kZXRhaWwiIHN0eWxlPSJmb250LXNpemU6MC45N2VtO2NvbG9yOiMzMzM7Ij5Zb3VyIGNoZWNrLW91dCByZXBvcnQgaGFzIGJlZW4gYm9va2VkIHN1Y2Nlc3NmdWxseS4gQSBjb25maXJtYXRpb24gZW1haWwgd2lsbCBiZSBzZW50IHRvIHlvdSBzaG9ydGx5LjwvZGl2PjwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2ktZm9vdGVyIj4KICAgICAgPHA+Q2xpY2sgSW52ZW50b3JpZXMgTHRkICZidWxsOyA8YSBocmVmPSJtYWlsdG86aW5mb0BjbGlja2ludmVudG9yaWVzLmNvLnVrIj5pbmZvQGNsaWNraW52ZW50b3JpZXMuY28udWs8L2E+ICZidWxsOyBMb25kb248L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjxzY3JpcHQ+CgooZnVuY3Rpb24oKSB7CiAgJ3VzZSBzdHJpY3QnOwogIGNvbnN0IEZMQVRfUFJJQ0VTID0gewogICAgY2hlY2tvdXQ6ICBbMTE1LCAxMzAsIDE1MCwgMTc1LCAyMDAsIDIyNV0sCiAgICBjaGVja2luOiAgIFsxMjUsIDE0MCwgMTYwLCAxODUsIDIxMCwgMjM1XQogIH07CiAgY29uc3QgSE9VU0VfTVVMVCA9IDEuMTU7CiAgY29uc3QgQkVEX0xBQkVMUyA9IFsnU3R1ZGlvJywgJzEgQmVkJywgJzIgQmVkJywgJzMgQmVkJywgJzQgQmVkJywgJzUgQmVkJ107CiAgY29uc3QgQkFOS19IT0xJREFZUyA9IFsKICAgICcyMDI1LTAxLTAxJywnMjAyNS0wNC0xOCcsJzIwMjUtMDQtMjEnLCcyMDI1LTA1LTA1JywnMjAyNS0wNS0yNicsCiAgICAnMjAyNS0wOC0yNScsJzIwMjUtMTItMjUnLCcyMDI1LTEyLTI2JywKICAgICcyMDI2LTAxLTAxJywnMjAyNi0wNC0wMycsJzIwMjYtMDQtMDYnLCcyMDI2LTA1LTA0JywnMjAyNi0wNS0yNScsCiAgICAnMjAyNi0wOC0zMScsJzIwMjYtMTItMjUnLCcyMDI2LTEyLTI4JywKICAgICcyMDI3LTAxLTAxJywnMjAyNy0wMy0yNicsJzIwMjctMDMtMjknLCcyMDI3LTA1LTAzJywnMjAyNy0wNS0zMScsCiAgICAnMjAyNy0wOC0zMCcsJzIwMjctMTItMjcnLCcyMDI3LTEyLTI4JwogIF07CiAgY29uc3QgTE9ORE9OID0gWydFQycsJ1dDJywnRScsJ04nLCdOVycsJ1NFJywnU1cnLCdXJ107CiAgbGV0IFMgPSB7CiAgICBpc0hvdXNlOiBmYWxzZSwgYmVkczogbnVsbCwgZnVybmlzaGVkOiBmYWxzZSwgZXh0cmFCYXRoOiAwLCBleHRyYU90aGVyOiAwLAogICAgc2VsZWN0ZWREYXRlOiBudWxsLCBjYWxNb250aDogbmV3IERhdGUoKS5nZXRNb250aCgpLCBjYWxZZWFyOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksCiAgICBwcm9tb0FwcGxpZWQ6IGZhbHNlLCBwcm9tb0Rpc2NvdW50OiAwLCBvdXRPZkFyZWE6IGZhbHNlLCBwcmVtaXVtRGF5OiBmYWxzZSwKICAgIHBlYWtUaW1lOiBmYWxzZSwgdXBzZWxsQWNjZXB0ZWQ6IGZhbHNlCiAgfTsKICBmdW5jdGlvbiBnZXRQcmljZShzZXJ2aWNlLCBiZWRzKSB7CiAgICBjb25zdCBiYXNlID0gRkxBVF9QUklDRVNbc2VydmljZV1bYmVkc107CiAgICByZXR1cm4gKFMuaXNIb3VzZSAmJiBiZWRzID49IDMpID8gTWF0aC5yb3VuZChiYXNlICogSE9VU0VfTVVMVCkgOiBiYXNlOwogIH0KICBmdW5jdGlvbiBmbXRQcmljZShwKSB7IHJldHVybiAnwqMnICsgcDsgfQogIHdpbmRvdy5jbzNUb2dnbGUgPSBmdW5jdGlvbigpIHsKICAgIFMuaXNIb3VzZSA9ICFTLmlzSG91c2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXRvZ2dsZScpLmNsYXNzTGlzdC50b2dnbGUoJ2hvdXNlJywgUy5pc0hvdXNlKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtbGJsLWZsYXQnKS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCAhUy5pc0hvdXNlKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtbGJsLWhvdXNlJykuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgUy5pc0hvdXNlKTsKICAgIGJ1aWxkVGFibGUoKTsgdXBkYXRlVXBzZWxsUHJpY2UoKTsgdXBkYXRlUHJpY2UoKTsKICB9OwogIGZ1bmN0aW9uIGJ1aWxkVGFibGUoKSB7CiAgICBjb25zdCB0Ym9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtdGJvZHknKTsKICAgIHRib2R5LmlubmVySFRNTCA9ICcnOwogICAgQkVEX0xBQkVMUy5mb3JFYWNoKChsYWJlbCwgaSkgPT4gewogICAgICBjb25zdCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CiAgICAgIGlmIChTLmJlZHMgPT09IGkpIHRyLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7CiAgICAgIHRyLmlubmVySFRNTCA9ICc8dGQ+JyArIGxhYmVsICsgJzwvdGQ+PHRkIGNsYXNzPSJjaS1wcmljZS1jZWxsIj4nICsgZm10UHJpY2UoZ2V0UHJpY2UoJ2NoZWNrb3V0JywgaSkpICsgJzwvdGQ+PHRkPjxidXR0b24gY2xhc3M9ImNpLXJvdy1ib29rIiBvbmNsaWNrPSJjbzNTZWxlY3RCZWQoJyArIGkgKyAnKTsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIgcnk9IjIiLz48bGluZSB4MT0iMTYiIHkxPSIyIiB4Mj0iMTYiIHkyPSI2Ii8+PGxpbmUgeDE9IjgiIHkxPSIyIiB4Mj0iOCIgeTI9IjYiLz48bGluZSB4MT0iMyIgeTE9IjEwIiB4Mj0iMjEiIHkyPSIxMCIvPjwvc3ZnPiBCb29rIE5vdzwvYnV0dG9uPjwvdGQ+JzsKICAgICAgdHIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBjbzNTZWxlY3RCZWQoaSkpOwogICAgICB0Ym9keS5hcHBlbmRDaGlsZCh0cik7CiAgICB9KTsKICB9CiAgd2luZG93LmNvM1NlbGVjdEJlZCA9IGZ1bmN0aW9uKGJlZHMpIHsKICAgIFMuYmVkcyA9IGJlZHM7IGJ1aWxkVGFibGUoKTsgdXBkYXRlU2VsZWN0aW9uKCk7IHVwZGF0ZVVwc2VsbFByaWNlKCk7IHVwZGF0ZVByaWNlKCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLWZvcm0nKS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7CiAgfTsKICBmdW5jdGlvbiB1cGRhdGVTZWxlY3Rpb24oKSB7CiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtc2VsZWN0aW9uJyk7CiAgICBpZiAoUy5iZWRzICE9PSBudWxsKSB7CiAgICAgIGNvbnN0IHR5cGUgPSBTLmlzSG91c2UgPyAnSG91c2UnIDogJ0ZsYXQnOwogICAgICBlbC5pbm5lckhUTUwgPSAnPHN0cm9uZz4nICsgQkVEX0xBQkVMU1tTLmJlZHNdICsgJyAnICsgdHlwZSArICc8L3N0cm9uZz4g4oCUIENoZWNrLU91dCBmcm9tIDxzdHJvbmc+JyArIGZtdFByaWNlKGdldFByaWNlKCdjaGVja291dCcsIFMuYmVkcykpICsgJzwvc3Ryb25nPic7CiAgICB9IGVsc2UgeyBlbC50ZXh0Q29udGVudCA9ICdTZWxlY3QgYSBwcm9wZXJ0eSBzaXplIGZyb20gdGhlIHRhYmxlIGFib3ZlJzsgfQogIH0KICB3aW5kb3cuY28zVG9nZ2xlRnVybmlzaGVkID0gZnVuY3Rpb24oKSB7CiAgICBTLmZ1cm5pc2hlZCA9ICFTLmZ1cm5pc2hlZDsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtZnVybmlzaGVkJykuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgUy5mdXJuaXNoZWQpOwogICAgdXBkYXRlUHJpY2UoKTsKICB9OwogIHdpbmRvdy5jbzNSb29tcyA9IGZ1bmN0aW9uKHR5cGUsIGQpIHsKICAgIGlmICh0eXBlID09PSAnYmF0aCcpIHsKICAgICAgUy5leHRyYUJhdGggPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMCwgUy5leHRyYUJhdGggKyBkKSk7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtYmF0aC1jb3VudCcpLnRleHRDb250ZW50ID0gUy5leHRyYUJhdGg7CiAgICB9IGVsc2UgewogICAgICBTLmV4dHJhT3RoZXIgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMCwgUy5leHRyYU90aGVyICsgZCkpOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLW90aGVyLWNvdW50JykudGV4dENvbnRlbnQgPSBTLmV4dHJhT3RoZXI7CiAgICB9CiAgICB1cGRhdGVQcmljZSgpOwogIH07CiAgZnVuY3Rpb24gZ2V0Q2hlY2tpblByaWNlKGJlZHMpIHsKICAgIGNvbnN0IGJhc2UgPSBGTEFUX1BSSUNFUy5jaGVja2luW2JlZHNdOwogICAgcmV0dXJuIChTLmlzSG91c2UgJiYgYmVkcyA+PSAzKSA/IE1hdGgucm91bmQoYmFzZSAqIEhPVVNFX01VTFQpIDogYmFzZTsKICB9CiAgZnVuY3Rpb24gdXBkYXRlVXBzZWxsUHJpY2UoKSB7CiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtdXBzZWxsLXByaWNlJyk7CiAgICBpZiAoUy5iZWRzICE9PSBudWxsKSB7CiAgICAgIGNvbnN0IGZ1bGwgPSBnZXRDaGVja2luUHJpY2UoUy5iZWRzKTsKICAgICAgY29uc3QgaGFsZiA9IE1hdGgucm91bmQoZnVsbCAvIDIpOwogICAgICBlbC5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7Y29sb3I6dmFyKC0tY2ktZ3JheS00MDApO2ZvbnQtc2l6ZToxNXB4O2ZvbnQtd2VpZ2h0OjUwMDsiPsKjJyArIGZ1bGwgKyAnPC9zcGFuPiDCoycgKyBoYWxmOwogICAgfSBlbHNlIHsgZWwudGV4dENvbnRlbnQgPSAnJzsgfQogIH0KICB3aW5kb3cuY28zQWNjZXB0VXBzZWxsID0gZnVuY3Rpb24oKSB7CiAgICBTLnVwc2VsbEFjY2VwdGVkID0gdHJ1ZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtdXBzZWxsLXllcycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC1ubycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC1hY2NlcHRlZCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgdXBkYXRlUHJpY2UoKTsKICB9OwogIHdpbmRvdy5jbzNEZWNsaW5lVXBzZWxsID0gZnVuY3Rpb24oKSB7CiAgICBTLnVwc2VsbEFjY2VwdGVkID0gZmFsc2U7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC15ZXMnKS5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC1ubycpLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtdXBzZWxsLWFjY2VwdGVkJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtdXBzZWxsLXNlY3Rpb24nKS5xdWVyeVNlbGVjdG9yKCdkaXYnKS5zdHlsZS5vcGFjaXR5ID0gJzAuNSc7CiAgICB1cGRhdGVQcmljZSgpOwogIH07CiAgd2luZG93LmNvM1JlbW92ZVVwc2VsbCA9IGZ1bmN0aW9uKCkgewogICAgUy51cHNlbGxBY2NlcHRlZCA9IGZhbHNlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy11cHNlbGwteWVzJykuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy11cHNlbGwtbm8nKS5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC1hY2NlcHRlZCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXVwc2VsbC1zZWN0aW9uJykucXVlcnlTZWxlY3RvcignZGl2Jykuc3R5bGUub3BhY2l0eSA9ICcxJzsKICAgIHVwZGF0ZVByaWNlKCk7CiAgfTsKICBmdW5jdGlvbiBpc1ByZW1pdW0oeSwgbSwgZCkgewogICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQpOwogICAgaWYgKGRhdGUuZ2V0RGF5KCkgPT09IDApIHJldHVybiB0cnVlOwogICAgY29uc3QgZHMgPSB5ICsgJy0nICsgU3RyaW5nKG0rMSkucGFkU3RhcnQoMiwnMCcpICsgJy0nICsgU3RyaW5nKGQpLnBhZFN0YXJ0KDIsJzAnKTsKICAgIHJldHVybiBCQU5LX0hPTElEQVlTLmluY2x1ZGVzKGRzKTsKICB9CiAgZnVuY3Rpb24gcmVuZGVyQ2FsKCkgewogICAgY29uc3QgeSA9IFMuY2FsWWVhciwgbSA9IFMuY2FsTW9udGg7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLWNhbC10aXRsZScpLnRleHRDb250ZW50ID0gbmV3IERhdGUoeSwgbSkudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1HQicsIHsgbW9udGg6ICdsb25nJywgeWVhcjogJ251bWVyaWMnIH0pOwogICAgY29uc3QgZ3JpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtY2FsLWdyaWQnKTsKICAgIGdyaWQuaW5uZXJIVE1MID0gJyc7CiAgICBbJ01vbicsJ1R1ZScsJ1dlZCcsJ1RodScsJ0ZyaScsJ1NhdCcsJ1N1biddLmZvckVhY2goZCA9PiB7CiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIGVsLmNsYXNzTmFtZSA9ICdjaS1jYWwtZG93JzsgZWwudGV4dENvbnRlbnQgPSBkOwogICAgICBncmlkLmFwcGVuZENoaWxkKGVsKTsKICAgIH0pOwogICAgbGV0IHN0YXJ0RGF5ID0gbmV3IERhdGUoeSwgbSwgMSkuZ2V0RGF5KCkgLSAxOwogICAgaWYgKHN0YXJ0RGF5IDwgMCkgc3RhcnREYXkgPSA2OwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydERheTsgaSsrKSB7CiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIGVsLmNsYXNzTmFtZSA9ICdjaS1jYWwtZGF5IGVtcHR5JzsKICAgICAgZ3JpZC5hcHBlbmRDaGlsZChlbCk7CiAgICB9CiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7IHRvZGF5LnNldEhvdXJzKDAsMCwwLDApOwogICAgY29uc3QgZGF5cyA9IG5ldyBEYXRlKHksIG0gKyAxLCAwKS5nZXREYXRlKCk7CiAgICBmb3IgKGxldCBkID0gMTsgZCA8PSBkYXlzOyBkKyspIHsKICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgZWwuY2xhc3NOYW1lID0gJ2NpLWNhbC1kYXknOyBlbC50ZXh0Q29udGVudCA9IGQ7CiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoeSwgbSwgZCk7IGR0LnNldEhvdXJzKDAsMCwwLDApOwogICAgICBpZiAoZHQgPCB0b2RheSkgeyBlbC5jbGFzc0xpc3QuYWRkKCdkaXNhYmxlZCcpOyB9CiAgICAgIGVsc2UgewogICAgICAgIGlmIChpc1ByZW1pdW0oeSwgbSwgZCkpIGVsLmNsYXNzTGlzdC5hZGQoJ3ByZW1pdW0nKTsKICAgICAgICBpZiAoZHQuZ2V0VGltZSgpID09PSB0b2RheS5nZXRUaW1lKCkpIGVsLmNsYXNzTGlzdC5hZGQoJ3RvZGF5Jyk7CiAgICAgICAgaWYgKFMuc2VsZWN0ZWREYXRlICYmIFMuc2VsZWN0ZWREYXRlLmdldFRpbWUoKSA9PT0gZHQuZ2V0VGltZSgpKSBlbC5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpOwogICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gewogICAgICAgICAgUy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh5LCBtLCBkKTsKICAgICAgICAgIFMucHJlbWl1bURheSA9IGlzUHJlbWl1bSh5LCBtLCBkKTsKICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcHJlbWl1bS1ub3RpY2UnKS5zdHlsZS5kaXNwbGF5ID0gUy5wcmVtaXVtRGF5ID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgICAgICAgcmVuZGVyQ2FsKCk7IHVwZGF0ZVByaWNlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZ3JpZC5hcHBlbmRDaGlsZChlbCk7CiAgICB9CiAgfQogIHdpbmRvdy5jbzNDYWxOYXYgPSBmdW5jdGlvbihkaXIpIHsKICAgIFMuY2FsTW9udGggKz0gZGlyOwogICAgaWYgKFMuY2FsTW9udGggPiAxMSkgeyBTLmNhbE1vbnRoID0gMDsgUy5jYWxZZWFyKys7IH0KICAgIGlmIChTLmNhbE1vbnRoIDwgMCkgeyBTLmNhbE1vbnRoID0gMTE7IFMuY2FsWWVhci0tOyB9CiAgICByZW5kZXJDYWwoKTsKICB9OwogIHdpbmRvdy5jbzNDaGVja1Bvc3Rjb2RlID0gZnVuY3Rpb24oKSB7CiAgICBjb25zdCBwYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcG9zdGNvZGUnKS52YWx1ZS50cmltKCkudG9VcHBlckNhc2UoKS5yZXBsYWNlKC9ccysvZywgJycpOwogICAgaWYgKHBjLmxlbmd0aCA8IDIpIHsgUy5vdXRPZkFyZWEgPSBmYWxzZTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1vb2Ytbm90aWNlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgdXBkYXRlUHJpY2UoKTsgcmV0dXJuOyB9CiAgICBjb25zdCBtYXRjaCA9IExPTkRPTi5zb21lKHAgPT4gcGMuc3RhcnRzV2l0aChwKSAmJiBwYy5zbGljZShwLmxlbmd0aCkubGVuZ3RoID4gMCAmJiAvXlxkLy50ZXN0KHBjLnNsaWNlKHAubGVuZ3RoKSkpOwogICAgUy5vdXRPZkFyZWEgPSAhbWF0Y2g7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLW9vZi1ub3RpY2UnKS5zdHlsZS5kaXNwbGF5ID0gUy5vdXRPZkFyZWEgPyAnZmxleCcgOiAnbm9uZSc7CiAgICB1cGRhdGVQcmljZSgpOwogIH07CiAgd2luZG93LmNvM0NoZWNrUGVhayA9IGZ1bmN0aW9uKCkgewogICAgY29uc3Qgc2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy10aW1lJyk7CiAgICBjb25zdCBvcHQgPSBzZWwub3B0aW9uc1tzZWwuc2VsZWN0ZWRJbmRleF07CiAgICBTLnBlYWtUaW1lID0gKG9wdCAmJiBvcHQuZGF0YXNldC5wZWFrID09PSAndHJ1ZScpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1wZWFrLW5vdGljZScpLnN0eWxlLmRpc3BsYXkgPSBTLnBlYWtUaW1lID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgdXBkYXRlUHJpY2UoKTsKICB9OwogIHdpbmRvdy5jbzNBcHBseVByb21vID0gZnVuY3Rpb24oKSB7CiAgICBjb25zdCBjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1wcm9tbycpLnZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpOwogICAgY29uc3QgbXNnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1wcm9tby1tc2cnKTsKICAgIGlmIChjb2RlID09PSAnQ0xJQ0tTRVJWSUNFUzIwMjYnKSB7CiAgICAgIFMucHJvbW9BcHBsaWVkID0gdHJ1ZTsgUy5wcm9tb0Rpc2NvdW50ID0gMTA7CiAgICAgIG1zZy50ZXh0Q29udGVudCA9ICfinJMgQ0xJQ0tTRVJWSUNFUzIwMjYgYXBwbGllZCDigJQgMTAlIG9mZiEnOyBtc2cuY2xhc3NOYW1lID0gJ2NpLXByb21vLW1zZyBzdWNjZXNzJzsKICAgIH0gZWxzZSB7CiAgICAgIFMucHJvbW9BcHBsaWVkID0gZmFsc2U7IFMucHJvbW9EaXNjb3VudCA9IDA7CiAgICAgIG1zZy50ZXh0Q29udGVudCA9ICfinJcgSW52YWxpZCBwcm9tbyBjb2RlLic7IG1zZy5jbGFzc05hbWUgPSAnY2ktcHJvbW8tbXNnIGVycm9yJzsKICAgIH0KICAgIHVwZGF0ZVByaWNlKCk7CiAgfTsKICBmdW5jdGlvbiB1cGRhdGVQcmljZSgpIHsKICAgIGNvbnN0IGJiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1icmVha2Rvd24nKTsKICAgIGNvbnN0IHBheUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcGF5LWJ0bicpOwogICAgY29uc3QgcmVzQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1yZXNlcnZlLWJ0bicpOwogICAgY29uc3QgcGF5TGJsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvMy1wYXktbGFiZWwnKTsKICAgIGNvbnN0IHJlc0xibCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcmVzZXJ2ZS1sYWJlbCcpOwogICAgY29uc3QgYmVuZWZpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcGF5LWJlbmVmaXQnKTsKICAgIGNvbnN0IHJlc05vdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXJlc2VydmUtbm90ZScpOwogICAgaWYgKFMuYmVkcyA9PT0gbnVsbCkgewogICAgICBiYi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICBwYXlCdG4uZGlzYWJsZWQgPSB0cnVlOyByZXNCdG4uZGlzYWJsZWQgPSB0cnVlOwogICAgICBwYXlMYmwudGV4dENvbnRlbnQgPSAnU2VsZWN0IHByb3BlcnR5IHNpemUgdG8gY29udGludWUnOwogICAgICByZXNMYmwudGV4dENvbnRlbnQgPSAnUmVzZXJ2ZSB3aXRob3V0IHBheWluZyc7CiAgICAgIGJlbmVmaXQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgcmVzTm90ZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBiYXNlID0gZ2V0UHJpY2UoJ2NoZWNrb3V0JywgUy5iZWRzKTsKICAgIGNvbnN0IGxhYmVsID0gQkVEX0xBQkVMU1tTLmJlZHNdOwogICAgY29uc3QgdHlwZSA9IFMuaXNIb3VzZSA/ICdIb3VzZScgOiAnRmxhdCc7CiAgICBsZXQgcm93cyA9IFtdLCBzdWIgPSBiYXNlOwogICAgcm93cy5wdXNoKHsgbDogJ0NoZWNrLU91dCDigJQgJyArIGxhYmVsICsgJyAnICsgdHlwZSwgYTogYmFzZSB9KTsKICAgIGlmIChTLnVwc2VsbEFjY2VwdGVkKSB7CiAgICAgIGNvbnN0IGNpSGFsZiA9IE1hdGgucm91bmQoZ2V0Q2hlY2tpblByaWNlKFMuYmVkcykgLyAyKTsKICAgICAgcm93cy5wdXNoKHsgbDogJ0NoZWNrLUluICg1MCUgb2ZmKScsIGE6IGNpSGFsZiwgdDogJ3Vwc2VsbCcgfSk7CiAgICAgIHN1YiArPSBjaUhhbGY7CiAgICB9CiAgICBpZiAoUy5mdXJuaXNoZWQpIHsgcm93cy5wdXNoKHsgbDogJ0Z1cm5pc2hlZCBwcm9wZXJ0eScsIGE6IDEwIH0pOyBzdWIgKz0gMTA7IH0KICAgIGlmIChTLmV4dHJhQmF0aCA+IDApIHsgY29uc3QgZSA9IFMuZXh0cmFCYXRoICogMTA7IHJvd3MucHVzaCh7IGw6ICdFeHRyYSBiYXRocm9vbXMgw5cgJyArIFMuZXh0cmFCYXRoLCBhOiBlIH0pOyBzdWIgKz0gZTsgfQogICAgaWYgKFMuZXh0cmFPdGhlciA+IDApIHsgY29uc3QgZSA9IFMuZXh0cmFPdGhlciAqIDEwOyByb3dzLnB1c2goeyBsOiAnT3RoZXIgcm9vbXMgw5cgJyArIFMuZXh0cmFPdGhlciwgYTogZSB9KTsgc3ViICs9IGU7IH0KICAgIGlmIChTLnByZW1pdW1EYXkpIHsgcm93cy5wdXNoKHsgbDogJ1N1bmRheSAvIEJhbmsgSG9saWRheSBmZWUnLCBhOiA1MCwgdDogJ2ZlZScgfSk7IHN1YiArPSA1MDsgfQogICAgaWYgKFMucGVha1RpbWUpIHsgcm93cy5wdXNoKHsgbDogJ1BlYWsgdGltZSBmZWUgKDk6MDAgQU0pJywgYTogNTAsIHQ6ICdmZWUnIH0pOyBzdWIgKz0gNTA7IH0KICAgIGlmIChTLm91dE9mQXJlYSkgeyByb3dzLnB1c2goeyBsOiAnT3V0IG9mIGFyZWEgZmVlJywgYTogMjUsIHQ6ICdmZWUnIH0pOyBzdWIgKz0gMjU7IH0KICAgIGxldCBkaXNjID0gMDsKICAgIGlmIChTLnByb21vQXBwbGllZCkgewogICAgICBkaXNjID0gTWF0aC5yb3VuZChzdWIgKiBTLnByb21vRGlzY291bnQgLyAxMDApOwogICAgICByb3dzLnB1c2goeyBsOiAnUHJvbW8gKCcgKyBTLnByb21vRGlzY291bnQgKyAnJSBvZmYpJywgYTogLWRpc2MsIHQ6ICdkaXNjb3VudCcgfSk7CiAgICB9CiAgICBjb25zdCB0b3RhbCA9IHN1YiAtIGRpc2M7CiAgICBsZXQgaHRtbCA9ICcnOwogICAgcm93cy5mb3JFYWNoKChyLCBpKSA9PiB7CiAgICAgIGNvbnN0IGNscyA9IHIudCA/ICdjaS1iay1yb3cgJyArIHIudCA6ICdjaS1iay1yb3cnOwogICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSInICsgY2xzICsgJyI+PHNwYW4+JyArIHIubCArICc8L3NwYW4+PHNwYW4+JyArIChpID09PSAwID8gJycgOiAoci5hIDwgMCA/ICfiiJInIDogJysnKSkgKyAnwqMnICsgTWF0aC5hYnMoci5hKSArICc8L3NwYW4+PC9kaXY+JzsKICAgIH0pOwogICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iY2ktYmstZGl2aWRlciI+PC9kaXY+JzsKICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImNpLWJrLXRvdGFsIj48c3Bhbj5Ub3RhbDwvc3Bhbj48c3Bhbj7CoycgKyB0b3RhbCArICc8L3NwYW4+PC9kaXY+JzsKICAgIGJiLmlubmVySFRNTCA9IGh0bWw7IGJiLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgY29uc3QgcmVhZHkgPSBTLnNlbGVjdGVkRGF0ZSAhPT0gbnVsbDsKICAgIHBheUJ0bi5kaXNhYmxlZCA9ICFyZWFkeTsgcmVzQnRuLmRpc2FibGVkID0gIXJlYWR5OwogICAgcGF5TGJsLnRleHRDb250ZW50ID0gcmVhZHkgPyAnUGF5IMKjJyArIHRvdGFsICsgJyBOb3cg4oCUIFNhdmUgMTAlJyA6ICdTZWxlY3QgYSBkYXRlIHRvIGNvbnRpbnVlJzsKICAgIHJlc0xibC50ZXh0Q29udGVudCA9IHJlYWR5ID8gJ1Jlc2VydmUg4oCUIMKjJyArIHRvdGFsICsgJyAocGF5IGxhdGVyKScgOiAnUmVzZXJ2ZSB3aXRob3V0IHBheWluZyc7CiAgICBiZW5lZml0LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICByZXNOb3RlLnN0eWxlLmRpc3BsYXkgPSByZWFkeSA/ICdibG9jaycgOiAnbm9uZSc7CiAgfQogIGZ1bmN0aW9uIHZhbGlkYXRlKCkgewogICAgY29uc3QgZmllbGRzID0gWydjbzMtYWRkcmVzcycsJ2NvMy1wb3N0Y29kZScsJ2NvMy1uYW1lJywnY28zLXBob25lJywnY28zLWVtYWlsJ107CiAgICBjb25zdCB2YWxzID0gZmllbGRzLm1hcChpZCA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsdWUudHJpbSgpKTsKICAgIGNvbnN0IHRpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXRpbWUnKS52YWx1ZTsKICAgIGlmICh2YWxzLnNvbWUodiA9PiAhdikgfHwgIXRpbWUpIHsKICAgICAgYWxlcnQoJ1BsZWFzZSBjb21wbGV0ZSBhbGwgcmVxdWlyZWQgZmllbGRzIChhZGRyZXNzLCBwb3N0Y29kZSwgdGltZSBzbG90LCBuYW1lLCBlbWFpbCwgcGhvbmUpLicpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBpZiAoIS9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdCh2YWxzWzRdKSkgewogICAgICBhbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nKTsgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7CiAgfQogIGZ1bmN0aW9uIGJ1aWxkUGF5bG9hZCh0eXBlKSB7CiAgICBjb25zdCBiYXNlID0gZ2V0UHJpY2UoJ2NoZWNrb3V0JywgUy5iZWRzKTsKICAgIGxldCBzdWIgPSBiYXNlOwogICAgaWYgKFMudXBzZWxsQWNjZXB0ZWQpIHN1YiArPSBNYXRoLnJvdW5kKGdldENoZWNraW5QcmljZShTLmJlZHMpIC8gMik7CiAgICBpZiAoUy5mdXJuaXNoZWQpIHN1YiArPSAxMDsKICAgIHN1YiArPSAoUy5leHRyYUJhdGggKyBTLmV4dHJhT3RoZXIpICogMTA7CiAgICBpZiAoUy5wcmVtaXVtRGF5KSBzdWIgKz0gNTA7CiAgICBpZiAoUy5wZWFrVGltZSkgc3ViICs9IDUwOwogICAgaWYgKFMub3V0T2ZBcmVhKSBzdWIgKz0gMjU7CiAgICBjb25zdCBkaXNjID0gKHR5cGUgPT09ICdwYXlfbm93JyAmJiBTLnByb21vQXBwbGllZCkgPyBNYXRoLnJvdW5kKHN1YiAqIFMucHJvbW9EaXNjb3VudCAvIDEwMCkgOiAwOwogICAgcmV0dXJuIHsKICAgICAgcGF5bWVudFR5cGU6IHR5cGUsIHNlcnZpY2U6ICdjaGVja291dCcsIHNlcnZpY2VOYW1lOiAnQ2hlY2stT3V0IFJlcG9ydCcsCiAgICAgIHByb3BlcnR5VHlwZTogUy5pc0hvdXNlID8gJ2hvdXNlJyA6ICdmbGF0JywgYmVkcm9vbXM6IFMuYmVkcywKICAgICAgYmVkcm9vbUxhYmVsOiBCRURfTEFCRUxTW1MuYmVkc10sIGJhc2VQcmljZTogYmFzZSwgZnVybmlzaGVkOiBTLmZ1cm5pc2hlZCwKICAgICAgZXh0cmFCYXRocm9vbXM6IFMuZXh0cmFCYXRoLCBleHRyYU90aGVyUm9vbXM6IFMuZXh0cmFPdGhlciwKICAgICAgdG90YWxFeHRyYVJvb21zOiBTLmV4dHJhQmF0aCArIFMuZXh0cmFPdGhlciwKICAgICAgdXBzZWxsQ2hlY2tpbjogUy51cHNlbGxBY2NlcHRlZCwKICAgICAgdXBzZWxsQ2hlY2tpblByaWNlOiBTLnVwc2VsbEFjY2VwdGVkID8gTWF0aC5yb3VuZChnZXRDaGVja2luUHJpY2UoUy5iZWRzKSAvIDIpIDogMCwKICAgICAgdXBzZWxsQ2hlY2tpbkZ1bGxQcmljZTogUy51cHNlbGxBY2NlcHRlZCA/IGdldENoZWNraW5QcmljZShTLmJlZHMpIDogMCwKICAgICAgZGF0ZTogUy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1HQicsIHsgd2Vla2RheTonbG9uZycsIGRheTonbnVtZXJpYycsIG1vbnRoOidsb25nJywgeWVhcjonbnVtZXJpYycgfSksCiAgICAgIGRhdGVJU086IFMuc2VsZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSwKICAgICAgcHJlbWl1bURheTogUy5wcmVtaXVtRGF5LCBwcmVtaXVtRmVlOiBTLnByZW1pdW1EYXkgPyA1MCA6IDAsCiAgICAgIHBlYWtUaW1lOiBTLnBlYWtUaW1lLCBwZWFrVGltZUZlZTogUy5wZWFrVGltZSA/IDUwIDogMCwKICAgICAgb3V0T2ZBcmVhOiBTLm91dE9mQXJlYSwgb3V0T2ZBcmVhRmVlOiBTLm91dE9mQXJlYSA/IDI1IDogMCwKICAgICAgcHJvbW9Db2RlOiAodHlwZSA9PT0gJ3BheV9ub3cnICYmIFMucHJvbW9BcHBsaWVkKSA/ICdDTElDS1NFUlZJQ0VTMjAyNicgOiBudWxsLAogICAgICBwcm9tb0Rpc2NvdW50OiBkaXNjLCBzdWJ0b3RhbDogc3ViLCB0b3RhbDogc3ViIC0gZGlzYywgY3VycmVuY3k6ICdHQlAnLAogICAgICBhZGRyZXNzOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLWFkZHJlc3MnKS52YWx1ZS50cmltKCksCiAgICAgIHBvc3Rjb2RlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXBvc3Rjb2RlJykudmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCksCiAgICAgIHRpbWVQcmVmZXJlbmNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXRpbWUnKS52YWx1ZSwKICAgICAgY3VzdG9tZXJOYW1lOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLW5hbWUnKS52YWx1ZS50cmltKCksCiAgICAgIGN1c3RvbWVyUGhvbmU6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtcGhvbmUnKS52YWx1ZS50cmltKCksCiAgICAgIGN1c3RvbWVyRW1haWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbzMtZW1haWwnKS52YWx1ZS50cmltKCksCiAgICAgIG5vdGVzOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLW5vdGVzJykudmFsdWUudHJpbSgpLAogICAgICBib29rZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpCiAgICB9OwogIH0KICB3aW5kb3cuY28zUGF5Tm93ID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoUy5iZWRzID09PSBudWxsIHx8ICFTLnNlbGVjdGVkRGF0ZSkgcmV0dXJuOwogICAgaWYgKCF2YWxpZGF0ZSgpKSByZXR1cm47CiAgICBjb25zdCBwID0gYnVpbGRQYXlsb2FkKCdwYXlfbm93Jyk7CiAgICBjb25zb2xlLmxvZygnPT09IENMSUNLIElOVkVOVE9SSUVTIENIRUNLLU9VVCBQQVlNRU5UID09PScsIEpTT04uc3RyaW5naWZ5KHAsIG51bGwsIDIpKTsKICAgIHBheU5vdyhwKTsKICB9OwogIHdpbmRvdy5jbzNSZXNlcnZlID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoUy5iZWRzID09PSBudWxsIHx8ICFTLnNlbGVjdGVkRGF0ZSkgcmV0dXJuOwogICAgaWYgKCF2YWxpZGF0ZSgpKSByZXR1cm47CiAgICBjb25zdCBwID0gYnVpbGRQYXlsb2FkKCdyZXNlcnZlJyk7CiAgICBjb25zb2xlLmxvZygnPT09IENMSUNLIElOVkVOVE9SSUVTIENIRUNLLU9VVCBSRVNFUlZBVElPTiA9PT0nLCBKU09OLnN0cmluZ2lmeShwLCBudWxsLCAyKSk7CiAgICBwYXlOb3cocCk7CiAgfTsKICB3aW5kb3cucGF5Tm93ID0gd2luZG93LnBheU5vdyB8fCBmdW5jdGlvbihwKSB7CiAgICBhbGVydCgKICAgICAgKHAucGF5bWVudFR5cGUgPT09ICdwYXlfbm93JyA/ICfwn5KzIFBBWUlORyBOT1cnIDogJ/Cfk4UgUkVTRVJWQVRJT04nKSArICdcbicgKwogICAgICAn4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSBXG4nICsKICAgICAgcC5zZXJ2aWNlTmFtZSArICcg4oCUICcgKyBwLmJlZHJvb21MYWJlbCArICcgJyArIHAucHJvcGVydHlUeXBlICsgJ1xuJyArCiAgICAgIHAuYWRkcmVzcyArICcsICcgKyBwLnBvc3Rjb2RlICsgJ1xuJyArCiAgICAgIHAuZGF0ZSArICcgwrcgJyArIHAudGltZVByZWZlcmVuY2UgKyAnXG4nICsKICAgICAgKHAucHJlbWl1bURheSA/ICfimqEgUHJlbWl1bSBkYXkgwrcgJyA6ICcnKSArIChwLnBlYWtUaW1lID8gJ+KaoSBQZWFrIHRpbWUgwrcgJyA6ICcnKSArCiAgICAgIChwLnVwc2VsbENoZWNraW4gPyAn8J+OiSBDaGVjay1JbiBhdCA1MCUgb2ZmIMK3ICcgOiAnJykgKwogICAgICAocC5wcm9tb0NvZGUgPyAn8J+PtyAnICsgcC5wcm9tb0NvZGUgKyAnICcgOiAnJykgKyAnXG4nICsKICAgICAgJ+KUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgeKUgVxuJyArCiAgICAgICdUb3RhbDogwqMnICsgcC50b3RhbCArICdcbicgKwogICAgICAocC5wYXltZW50VHlwZSA9PT0gJ3Jlc2VydmUnID8gJ+KaoCBSZXBvcnQgaGVsZCB1bnRpbCBwYXltZW50JyA6ICfinJMgUmVwb3J0IHNlbnQgb24gY29tcGxldGlvbicpICsgJ1xuXG4nICsKICAgICAgcC5jdXN0b21lck5hbWUgKyAnIMK3ICcgKyBwLmN1c3RvbWVyRW1haWwKICAgICk7CiB2YXIgY28zcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY28zLXN1Y2Nlc3MnKTtpZihjbzNzKXtjbzNzLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJztjbzNzLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJyxibG9jazonY2VudGVyJ30pO30gfTsKICBidWlsZFRhYmxlKCk7IHJlbmRlckNhbCgpOyB1cGRhdGVQcmljZSgpOwp9KSgpOwoKPC9zY3JpcHQ+[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_column_text] Ready to start a new tenancy? Remember, an inventory and check-out report are crucial. To meet this need, Click Inventories LTD is the ideal choice. Why Professional Inventory and Check-out Reports Matter An inventory and check-out report is far more than just a formality in the property management process.…

Book Now →

Residential & Commercial

Need an office or commercial building inventory carried out, please feel free to contact us.

Professional Property Inventory Reports for Landlords & Agents in London

Our detailed inspection services cover residential and commercial properties across London. From check-in to check-out, we deliver accurate property inventory reports with high-resolution photos that stand up in deposit disputes and keep your tenancy records compliant.

Book your property inventory report online in minutes — saving you time and money

Limited Time Offer

Save 10% on Your First Inventory Report

Use code CLICKSERVICES2026 at checkout

Apply the code when you pay at booking to receive your discount instantly.

[mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Comprehensive Inventory Reports[/mnky_list_item]Get accurate and highly descriptive property inventory reports with high-resolution photos. Our experienced clerks with an eye for detail will ensure that you have no nasty surprises.[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#e74c3c” center_element=”icon-center-align” css_animation=”bottom-to-top” icon_linecons=”vc_li vc_li-calendar”]

72hr Turnaround

[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#3498db” center_element=”icon-center-align” css_animation=”bottom-to-top” css_animation_delay=”delay-200″ icon_linecons=”vc_li vc_li-search”]

Highly Detailed reports

[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#2ecc71″ center_element=”icon-center-align” css_animation=”bottom-to-top” css_animation_delay=”delay-400″ icon_linecons=”vc_li vc_li-camera”]

Hi-Def Images

[mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Residential & Commercial[/mnky_list_item]Need an office or commercial building inventory carried out, please feel free to contact us.[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#3498db” center_element=”icon-center-align” css_animation=”bottom-to-top” icon_linecons=”vc_li vc_li-mail”]

Straight To Your Inbox

[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#e67e22″ center_element=”icon-center-align” css_animation=”bottom-to-top” css_animation_delay=”delay-200″ icon_linecons=”vc_li vc_li-key”]

Free Key Collection

[mnky_icons icon_type=”linecons” icon_size=”45px” icon_color=”#9b59b6″ center_element=”icon-center-align” css_animation=”bottom-to-top” css_animation_delay=”delay-400″ icon_linecons=”vc_li vc_li-bubble”]

Customer Care

Why don’t you have a look at our sample inventory report to familiarise yourself with our service?

Click to download PDF!

[mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Inventory Report[/mnky_list_item]

A standalone inventory report is a comprehensive description of the property’s condition.  It describes fixtures, fittings, items and furniture (if applicable) within the property. We also include utility readings and fire alarm testing.

This service is for when a tenant doesn’t need to be checked in.

[mnky_retina_image img_url=”1377″ align=”retina-image-center” alt=”Professional property inventory reports service in London”][mnky_retina_image img_url=”1376″ align=”retina-image-center” width=”500″ height=”500″ alt=”Property inventory reports for landlords and tenants”][mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Mid-Term Report[/mnky_list_item]This report is an inspection of a property whilst the tenancy is in duration.

This will highlight any damages, cleanliness and maintenance issues the agent/landlord will need to be aware of.

This is best used at quarterly intervals for high value property and for agents with high-value clients to ensure expensive property remains in top-spec condition.[mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Inventory & Check-In[/mnky_list_item]

A check-in report is a comprehensive description of the property’s condition at the start of a tenancy between the landlord and tenant.  It describes fixtures, fittings, items and furniture (if applicable) within the property. We also include utility readings and fire alarm testing. We also check the tenant in, showing them all the important appliances around the property.

This helps to distinguish the condition of the property’s contents and décor, which will then be used for comparison once the tenancy is over.

[mnky_retina_image img_url=”1282″ align=”retina-image-center” alt=”Check-out property inventory reports London”][mnky_retina_image img_url=”1314″ align=”retina-image-center” alt=”Property inventory reports check-in service”][mnky_list_item icon_fontawesome=”fa fa-check-circle” size=”li_large” last_item=”last” icon_color=”#6dc78f”]Inventory & Check-Out[/mnky_list_item]As the tenancy comes to an end, this report will detail the important changes that have occurred during the length of the tenancy.

This will highlight any damages, cleanliness and maintenance issues the agent/landlord will need to be aware of.

Our property inventory reports ensure all keys, contact details and important documentation are collected for agents/landlords.[mnky_content_box static_shadow=”shadow” background=”#ffffff” custom_static_shadow=”0px 17px 35px rgba(74,74,115,0.1), 0px 5px 15px rgba(0,0,0,0.07)”]

For Agents / Landlords

As a landlord or estate agent, protect your property investment with our professional property inventory reports. In today’s complex property market, it’s essential to stay informed of any damages or missing items within your rental properties. Our experienced clerks ensure accurate and detailed reports with high-resolution photos, leaving you with peace of mind and less stress.

Benefits of using our property inventory reports service include:

Book Now

[/mnky_content_box][mnky_content_box static_shadow=”shadow” background=”#ffffff” custom_static_shadow=”0px 17px 35px rgba(74,74,115,0.1), 0px 5px 15px rgba(0,0,0,0.07)”]

For Tenants

Protect yourself and your deposit with our professional property inventory reports. Compliant with mandatory requirements, such as confirming smoke alarms were present and working, is crucial. Our experienced clerks provide detailed and accurate reports with high-resolution photos, guaranteeing:

Book Now

[/mnky_content_box]

    Why don't you have a look at our sample inventory report to familiarise yourself with our service?

    Download our professionally prepared sample report

    Click to download PDF!

    Why are good property inventory reports important?

    For Agents / Landlords

    Protect your property investment

    As a landlord or estate agent, protect your property investment with our professional property inventory reports. In today's complex property market, it's essential to stay informed of any damages or missing items within your rental properties. Our experienced clerks ensure accurate and detailed reports with high-resolution photos, leaving you with peace of mind and less stress.

    Benefits of using our property inventory reports service include:

    • Tenants are more likely to take care of the property, resulting in lower costs and less wear and tear for your rental properties.
    • Our reports serve as valuable evidence in court disputes, potentially saving you thousands of pounds in legal costs.
    • Hassle-free move-in and move-out process for all parties, allowing you to focus on more important business matters as a landlord or estate agent.
    • Avoid amateurism and protect your reputation by using professional inventory services for your rental properties.
    • Precise and well-written reports protect against potential oversights, securing valuable clients and building trust in your business as a landlord or estate agent.
    Book Now

    For Tenants

    Protect yourself and your deposit

    Protect yourself and your deposit with our professional property inventory reports. Compliant with mandatory requirements, such as confirming smoke alarms were present and working, is crucial. Our experienced clerks provide detailed and accurate reports with high-resolution photos, guaranteeing:

    • Protection against wrongful liability for costly repairs during your tenancy.
    • Strong evidence in deposit disputes, with high-quality reports and high-definition pictures, potentially saving you thousands of pounds.
    • Peace of mind during the move-in and move-out process, with accurate documentation of the property's condition.
    Book Now
    Additional Services

    More Than Just Inventories

    📸

    Property Photography

    [vc_row][vc_column][vc_gallery interval="3" images="2376,2377,2379,2380,2381,2382,2383,2384,2385" img_size="full"][vc_column_text] Book Your Photography Session [/vc_column_text][vc_column_text]Property photography is essential for showcasing your rental or commercial property in…

    Book Appointment Now
    📐

    Click Inventories LTD: Expert Floor Planning

    [vc_row][vc_column][vc_column_text] The Benefits of a Professional London Floor Plan Our London floor plan services offer numerous advantages that set them…

    Book Plan Now

    EPC + EICR + Gas Safety Certificate Bundle Services 2026

    [vc_row][vc_column][vc_raw_html]PCEtLSBDbGljayBJbnZlbnRvcmllcyBDZXJ0aWZpY2F0ZSBCb29raW5nIFdpZGdldCB2Mi4wIC0tPgoKPCEtLSBDb3B5IGFuZCBwYXN0ZSB0aGlzIGVudGlyZSBibG9jayBpbnRvIFdQQ29kZSwgQ3VzdG9tIEhUTUwgYmxvY2ssIG9yIHNpbWlsYXIgLS0+Cgo8ZGl2IGlkPSJjaS1ib29raW5nLXdpZGdldCI+CgogIDxzdHlsZT4KICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgICAgIFNDT1BFRCBTVFlMRVMgLSBBbGwgcHJlZml4ZWQgd2l0aCAjY2ktYm9va2luZy13aWRnZXQKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICAgICNjaS1ib29raW5nLXdpZGdldCB7CiAgICAgIC0tY2ktYnJhbmQtcHJpbWFyeTogIzFhMzY1ZDsKICAgICAgLS1jaS1icmFuZC1zZWNvbmRhcnk6ICMyYzUyODI7CiAgICAgIC0tY2ktYnJhbmQtYWNjZW50OiAjZWQ4OTM2OwogICAgICAtLWNpLWJyYW5kLWFjY2VudC1ob3ZlcjogI2RkNmIyMDsKICAgICAgLS1jaS1pbms6ICMxYTIwMmM7CiAgICAgIC0tY2ktaW5rLXNvZnQ6ICM0YTU1Njg7CiAgICAgIC0tY2ktaW5rLW11dGVkOiAjNzE4MDk2OwogICAgICAtLWNpLXN1cmZhY2U6ICNmZmZmZmY7CiAgICAgIC0tY2ktc3VyZmFjZS1yYWlzZWQ6ICNmN2ZhZmM7CiAgICAgIC0tY2ktc3VyZmFjZS1zdW5rZW46ICNlZGYyZjc7CiAgICAgIC0tY2ktYm9yZGVyOiAjZTJlOGYwOwogICAgICAtLWNpLWJvcmRlci1mb2N1czogI2NiZDVlMDsKICAgICAgLS1jaS1zdWNjZXNzOiAjMzhhMTY5OwogICAgICAtLWNpLXN1Y2Nlc3Mtc29mdDogI2M2ZjZkNTsKICAgICAgLS1jaS13YXJuaW5nOiAjZDY5ZTJlOwogICAgICAtLWNpLXdhcm5pbmctc29mdDogI2ZlZmNiZjsKICAgICAgLS1jaS1lcnJvcjogI2U1M2UzZTsKICAgICAgLS1jaS1zaGFkb3ctc206IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMDUpOwogICAgICAtLWNpLXNoYWRvdy1tZDogMCA0cHggNnB4IC0xcHggcmdiYSgwLDAsMCwwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMDYpOwogICAgICAtLWNpLXNoYWRvdy1sZzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsMCwwLDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwwLDAsMC4wNSk7CiAgICAgIC0tY2ktcmFkaXVzLXNtOiA2cHg7CiAgICAgIC0tY2ktcmFkaXVzLW1kOiAxMHB4OwogICAgICAtLWNpLXJhZGl1cy1sZzogMTZweDsKICAgICAgLS1jaS1yYWRpdXMteGw6IDI0cHg7CiAgICAgIAogICAgICBtYXgtd2lkdGg6IDEyODBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIHBhZGRpbmc6IDQwcHggMjRweCA2MHB4OwogICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBzYW5zLXNlcmlmOwogICAgICBjb2xvcjogdmFyKC0tY2ktaW5rKTsKICAgICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgIAogICAgI2NpLWJvb2tpbmctd2lkZ2V0ICwgI2NpLWJvb2tpbmctd2lkZ2V0IDo6YmVmb3JlLCAjY2ktYm9va2luZy13aWRnZXQgKjo6YWZ0ZXIgewogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICBtYXJnaW46IDA7CiAgICAgIHBhZGRpbmc6IDA7CiAgICB9CiAgICAvKiBIZWFkZXIgKi8KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktaGVhZGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAzMnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWhlYWRlciBoMSB7IGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgNXZ3LCAyLjVyZW0pOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tY2ktYnJhbmQtcHJpbWFyeSk7IGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktaGVhZGVyID4gcCB7IGZvbnQtc2l6ZTogMS4xMjVyZW07IGNvbG9yOiB2YXIoLS1jaS1pbmstc29mdCk7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktdHJ1c3QtbGluZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMGZkZjQgMCUsICNkY2ZjZTcgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkICM4NmVmYWM7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1sZyk7IHBhZGRpbmc6IDE0cHggMjBweDsgZm9udC1zaXplOiAwLjkzNzVyZW07IGNvbG9yOiAjMTY2NTM0OyBmb250LXdlaWdodDogNjAwOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBmbGV4LXdyYXA6IHdyYXA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS10cnVzdC1saW5lIHN2ZyB7IHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGNvbG9yOiB2YXIoLS1jaS1zdWNjZXNzKTsgZmxleC1zaHJpbms6IDA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFkZ2VzIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMnB4OyBtYXJnaW4tdG9wOiAxNnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhZGdlIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zdXJmYWNlKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktYm9yZGVyKTsgcGFkZGluZzogOHB4IDE0cHg7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBmb250LXNpemU6IDAuODEyNXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNpLWluay1zb2Z0KTsgYm94LXNoYWRvdzogdmFyKC0tY2ktc2hhZG93LXNtKTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYWRnZSBzdmcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBjb2xvcjogdmFyKC0tY2ktc3VjY2Vzcyk7IH0KICAgIC8qIE5vdGljZSBCYW5uZXJzICovCiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW5vdGljZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZiZWIgMCUsICNmZWYzYzcgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkICNmY2QzNGQ7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1sZyk7IHBhZGRpbmc6IDE2cHggMjBweDsgbWFyZ2luLWJvdHRvbTogMjBweDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogMTJweDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1ub3RpY2Ugc3ZnIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgY29sb3I6ICNkOTc3MDY7IGZsZXgtc2hyaW5rOiAwOyBtYXJnaW4tdG9wOiAycHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktbm90aWNlIGgzIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICM5MjQwMGU7IGZvbnQtc2l6ZTogMC45Mzc1cmVtOyBtYXJnaW4tYm90dG9tOiAycHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktbm90aWNlIHAgeyBjb2xvcjogI2ExNjIwNzsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDUwMDsgbWFyZ2luOiAwOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWluZm8tYm94IHsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZS1zdW5rZW4pOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbWQpOyBwYWRkaW5nOiAxMnB4IDE2cHg7IG1hcmdpbi1ib3R0b206IDIwcHg7IGZvbnQtc2l6ZTogMC44MTI1cmVtOyBjb2xvcjogdmFyKC0tY2ktaW5rLXNvZnQpOyBsaW5lLWhlaWdodDogMS42OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWluZm8tYm94IHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jaS1pbmspOyB9CiAgICAvKiBHcmlkIC0gV0lERVIgQ0FMRU5EQVIgQ09MVU1OICovCiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkOwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgzNDBweCwgMS4zZnIpIDFmciBtaW5tYXgoMzAwcHgsIDQwMHB4KTsKICAgICAgZ2FwOiAyNHB4OwogICAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICB9CiAgICBAbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7CiAgICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgfQogICAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWdyaWQgPiBkaXY6bGFzdC1jaGlsZCB7IGdyaWQtY29sdW1uOiBzcGFuIDI7IH0KICAgIH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWdyaWQgPiBkaXY6bGFzdC1jaGlsZCB7IGdyaWQtY29sdW1uOiBzcGFuIDE7IH0KICAgIH0KICAgIC8qIENhcmQgKi8KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FyZCB7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1cmZhY2UpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMteGwpOyBib3gtc2hhZG93OiB2YXIoLS1jaS1zaGFkb3ctbGcpOyBvdmVyZmxvdzogaGlkZGVuOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDQpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhcmQtaGVhZGVyIHsgcGFkZGluZzogMjBweCAyNHB4IDA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FyZC1oZWFkZXIgaDIgeyBmb250LXNpemU6IDEuMjVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1jaS1pbmspOyBtYXJnaW4tYm90dG9tOiA0cHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FyZC1oZWFkZXIgcCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGNvbG9yOiB2YXIoLS1jaS1pbmstbXV0ZWQpOyBmb250LXdlaWdodDogNTAwOyBtYXJnaW46IDA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FyZC1ib2R5IHsgcGFkZGluZzogMjBweCAyNHB4IDI0cHg7IH0KICAgIC8qIENhbGVuZGFyICovCiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1uYXYgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGJhY2tncm91bmQ6IHZhcigtLWNpLWJyYW5kLXByaW1hcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbGcpOyBwYWRkaW5nOiAxNHB4IDE4cHg7IG1hcmdpbi1ib3R0b206IDE2cHg7IGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNiwgNTQsIDkzLCAwLjI1KTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1jYWwtbW9udGggeyBmb250LXNpemU6IDEuMjVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB3aGl0ZTsgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FsLWJ0bnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1jYWwtYnRuIHsgd2lkdGg6IDQwcHg7IGhlaWdodDogNDBweDsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbWQpOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7IGNvbG9yOiB3aGl0ZTsgY3Vyc29yOiBwb2ludGVyOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FsLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNSk7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FsLWdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCAxZnIpOyBnYXA6IDZweDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1jYWwtZG93IHsgZm9udC1zaXplOiAwLjY4NzVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1jaS1pbmstbXV0ZWQpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNWVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDhweCAwOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1kYXkgeyBhc3BlY3QtcmF0aW86IDE7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LXdlaWdodDogNjAwOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbWQpOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1cmZhY2Utc3Vua2VuKTsgY29sb3I6IHZhcigtLWNpLWluayk7IGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FsLWRheTpub3QoLmNpLWRpc2FibGVkKTpob3ZlciB7IGJhY2tncm91bmQ6ICNkYmVhZmU7IGJvcmRlci1jb2xvcjogdmFyKC0tY2ktYnJhbmQtc2Vjb25kYXJ5KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OiB2YXIoLS1jaS1zaGFkb3ctbWQpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1kYXkuY2ktZGlzYWJsZWQgeyBvcGFjaXR5OiAwLjM7IGN1cnNvcjogbm90LWFsbG93ZWQ7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1kYXkuY2ktZW1wdHkgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY3Vyc29yOiBkZWZhdWx0OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1kYXkuY2ktc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1icmFuZC1hY2NlbnQpICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjogdmFyKC0tY2ktYnJhbmQtYWNjZW50KSAhaW1wb3J0YW50OyBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDIzNywgMTM3LCA1NCwgMC40KTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1jYWwtZGF5LmNpLXRvZGF5OjphZnRlciB7IGNvbnRlbnQ6ICcnOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogNHB4OyB3aWR0aDogNHB4OyBoZWlnaHQ6IDRweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1icmFuZC1hY2NlbnQpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1kYXkuY2ktc2VsZWN0ZWQuY2ktdG9kYXk6OmFmdGVyIHsgYmFja2dyb3VuZDogd2hpdGU7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktY2FsLWhpbnQgeyBtYXJnaW4tdG9wOiAxMnB4OyBmb250LXNpemU6IDAuODEyNXJlbTsgY29sb3I6IHZhcigtLWNpLWluay1tdXRlZCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWNhbC1oaW50IHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktc2VsZWN0ZWQtZGF0ZS1sYWJlbCB7IG1hcmdpbi10b3A6IDE0cHg7IHBhZGRpbmc6IDEwcHggMTRweDsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RiZWFmZSAwJSwgI2JmZGJmZSAxMDAlKTsgYm9yZGVyOiAxcHggc29saWQgIzkzYzVmZDsgYm9yZGVyLXJhZGl1czogdmFyKC0tY2ktcmFkaXVzLW1kKTsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMxZTQwYWY7IHRleHQtYWxpZ246IGNlbnRlcjsgZGlzcGxheTogbm9uZTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1zZWxlY3RlZC1kYXRlLWxhYmVsLmNpLWFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgICAvKiBUYWJzICovCiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXRhYnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgcGFkZGluZzogMCAyNHB4OyBtYXJnaW4tYm90dG9tOiAtMXB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IGZsZXgtd3JhcDogd3JhcDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS10YWIgeyBwYWRkaW5nOiAxMnB4IDE0cHg7IGZvbnQtc2l6ZTogMC43NXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNpLWluay1tdXRlZCk7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1cmZhY2Utc3Vua2VuKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktYm9yZGVyKTsgYm9yZGVyLWJvdHRvbTogbm9uZTsgYm9yZGVyLXJhZGl1czogdmFyKC0tY2ktcmFkaXVzLW1kKSB2YXIoLS1jaS1yYWRpdXMtbWQpIDAgMDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wMmVtOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXRhYjpob3Zlcjpub3QoLmNpLWFjdGl2ZSkgeyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZS1yYWlzZWQpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXRhYi5jaS1hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zdXJmYWNlKTsgY29sb3I6IHZhcigtLWNpLWJyYW5kLXByaW1hcnkpOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktdGFiLmNpLWFjdGl2ZTo6YWZ0ZXIgeyBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IC0xcHg7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZSk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktcGFuZWwgeyBkaXNwbGF5OiBub25lOyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zdXJmYWNlKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNpLWJvcmRlcik7IHBhZGRpbmc6IDIwcHggMjRweCAyNHB4OyBhbmltYXRpb246IGNpRmFkZUluIDAuM3MgZWFzZTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1wYW5lbC5jaS1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfQogICAgQGtleWZyYW1lcyBjaUZhZGVJbiB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9CiAgICAvKiBPZmZlcnMgKi8KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktb2ZmZXJzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW9mZmVyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogMTRweDsgcGFkZGluZzogMTRweCAxNnB4OyBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jaS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbGcpOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1cmZhY2UpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW9mZmVyOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaS1ib3JkZXItZm9jdXMpOyBib3gtc2hhZG93OiB2YXIoLS1jaS1zaGFkb3ctbWQpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktb2ZmZXIuY2ktc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IHZhcigtLWNpLWJyYW5kLWFjY2VudCk7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmZhZjAgMCUsICNmZmY1ZWIgMTAwJSk7IGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyMzcsIDEzNywgNTQsIDAuMTUpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW9mZmVyLXJhZGlvIHsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2ktYm9yZGVyLWZvY3VzKTsgYm9yZGVyLXJhZGl1czogNTAlOyBmbGV4LXNocmluazogMDsgbWFyZ2luLXRvcDogMnB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1vZmZlci5jaS1zZWxlY3RlZCAuY2ktb2ZmZXItcmFkaW8geyBib3JkZXItY29sb3I6IHZhcigtLWNpLWJyYW5kLWFjY2VudCk7IGJhY2tncm91bmQ6IHZhcigtLWNpLWJyYW5kLWFjY2VudCk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktb2ZmZXIuY2ktc2VsZWN0ZWQgLmNpLW9mZmVyLXJhZGlvOjphZnRlciB7IGNvbnRlbnQ6ICcnOyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYmFja2dyb3VuZDogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDUwJTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1vZmZlci1jb250ZW50IHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW9mZmVyLXRpdGxlIHsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1zaXplOiAwLjkzNzVyZW07IGNvbG9yOiB2YXIoLS1jaS1pbmspOyBtYXJnaW4tYm90dG9tOiAycHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktb2ZmZXItZGVzYyB7IGZvbnQtc2l6ZTogMC44MTI1cmVtOyBjb2xvcjogdmFyKC0tY2ktaW5rLW11dGVkKTsgZm9udC13ZWlnaHQ6IDUwMDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1vZmZlci1tZXRhIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGZsZXgtc2hyaW5rOiAwOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLW9mZmVyLXByaWNlIHsgZm9udC1zaXplOiAxLjI1cmVtOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1vZmZlci1zYXZlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tdG9wOiA0cHg7IHBhZGRpbmc6IDNweCA4cHg7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1Y2Nlc3Mtc29mdCk7IGNvbG9yOiAjMTY2NTM0OyBmb250LXNpemU6IDAuNjg3NXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktb2ZmZXJzLWhpbnQgeyBtYXJnaW4tdG9wOiAxNHB4OyBwYWRkaW5nOiAxMnB4IDE0cHg7IGJhY2tncm91bmQ6ICNmZmY3ZWQ7IGJvcmRlcjogMXB4IHNvbGlkICNmZWQ3YWE7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1tZCk7IGZvbnQtc2l6ZTogMC44MTI1cmVtOyBjb2xvcjogIzlhMzQxMjsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1vZmZlcnMtaGludCBhIHsgY29sb3I6IGluaGVyaXQ7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktc2VjdGlvbi1kaXZpZGVyIHsgbWFyZ2luOiAxNnB4IDAgMTJweDsgcGFkZGluZy1ib3R0b206IDhweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNpLWJvcmRlcik7IGZvbnQtc2l6ZTogMC43NXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNpLWluay1tdXRlZCk7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IH0KICAgIC8qIEJhc2tldCAqLwogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1zdGlja3kgeyBwb3NpdGlvbjogc3RpY2t5OyB0b3A6IDI0cHg7IH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgeyAjY2ktYm9va2luZy13aWRnZXQgLmNpLXN0aWNreSB7IHBvc2l0aW9uOiBzdGF0aWM7IH0gfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYXNrZXQtZGF0ZSB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNkYmVhZmUgMCUsICNiZmRiZmUgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkICM5M2M1ZmQ7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1sZyk7IHBhZGRpbmc6IDE0cHggMTZweDsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1kYXRlLWxhYmVsIHsgZm9udC1zaXplOiAwLjc1cmVtOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogIzFlNDBhZjsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsgbWFyZ2luLWJvdHRvbTogMnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1kYXRlLXZhbHVlIHsgZm9udC1zaXplOiAxLjEyNXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6ICMxZTNhOGE7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LWRhdGUuY2ktZW1wdHkgLmNpLWJhc2tldC1kYXRlLXZhbHVlIHsgY29sb3I6ICMzYjgyZjY7IGZvbnQtc2l6ZTogMC45Mzc1cmVtOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1zdW1tYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZS1zdW5rZW4pOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaS1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbGcpOyBwYWRkaW5nOiAxNnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1lbXB0eSB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMjBweCAwOyBjb2xvcjogdmFyKC0tY2ktaW5rLW11dGVkKTsgZm9udC13ZWlnaHQ6IDYwMDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYXNrZXQtaXRlbXMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LWl0ZW0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zdXJmYWNlKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2ktYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tY2ktcmFkaXVzLW1kKTsgcGFkZGluZzogMTJweCAxNHB4OyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBnYXA6IDEycHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LWl0ZW0tbmFtZSB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMC45Mzc1cmVtOyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgbWFyZ2luLWJvdHRvbTogNHB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1pdGVtLWluY2x1ZGVzIHsgZm9udC1zaXplOiAwLjgxMjVyZW07IGNvbG9yOiB2YXIoLS1jaS1pbmstbXV0ZWQpOyBmb250LXdlaWdodDogNTAwOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJhc2tldC1pdGVtLXByaWNlIHsgZm9udC1zaXplOiAxcmVtOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYXNrZXQtZmVlIHsgYmFja2dyb3VuZDogI2ZlZjNjNzsgYm9yZGVyOiAxcHggc29saWQgI2ZjZDM0ZDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYXNrZXQtZmVlIC5jaS1iYXNrZXQtaXRlbS1uYW1lIHsgY29sb3I6ICM5MjQwMGU7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LWZlZSAuY2ktYmFza2V0LWl0ZW0tcHJpY2UgeyBjb2xvcjogIzkyNDAwZTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1iYXNrZXQtdG90YWwgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IG1hcmdpbi10b3A6IDE0cHg7IHBhZGRpbmctdG9wOiAxNHB4OyBib3JkZXItdG9wOiAycHggZGFzaGVkIHZhcigtLWNpLWJvcmRlcik7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LXRvdGFsLWxhYmVsIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNpLWluayk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYmFza2V0LXRvdGFsLXZhbHVlIHsgZm9udC1zaXplOiAxLjVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1jaS1icmFuZC1wcmltYXJ5KTsgfQogICAgLyogRm9ybSAqLwogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1mb3JtIHsgbWFyZ2luLXRvcDogMjBweDsgcGFkZGluZy10b3A6IDIwcHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaS1ib3JkZXIpOyBkaXNwbGF5OiBub25lOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZvcm0uY2ktYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IGFuaW1hdGlvbjogY2lTbGlkZVVwIDAuNHMgZWFzZTsgfQogICAgQGtleWZyYW1lcyBjaVNsaWRlVXAgeyBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZm9ybS1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZvcm0taGVhZGVyIGgzIHsgZm9udC1zaXplOiAxLjEyNXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNpLWluayk7IG1hcmdpbi1ib3R0b206IDRweDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1mb3JtLWhlYWRlciBwIHsgZm9udC1zaXplOiAwLjgxMjVyZW07IGNvbG9yOiB2YXIoLS1jaS1pbmstbXV0ZWQpOyBmb250LXdlaWdodDogNTAwOyBtYXJnaW46IDA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZm9ybS1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiAxNHB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZvcm0tcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDE0cHg7IH0KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgeyAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZvcm0tcm93IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0gfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1maWVsZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZmllbGQgbGFiZWwgeyBmb250LXNpemU6IDAuODEyNXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNpLWluayk7IG1hcmdpbi1ib3R0b206IDZweDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1maWVsZCBsYWJlbC5jaS1yZXF1aXJlZDo6YWZ0ZXIgeyBjb250ZW50OiAnIConOyBjb2xvcjogdmFyKC0tY2ktZXJyb3IpOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZpZWxkIGlucHV0LCAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZpZWxkIHNlbGVjdCwgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1maWVsZCB0ZXh0YXJlYSB7IHBhZGRpbmc6IDEycHggMTRweDsgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2ktYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tY2ktcmFkaXVzLW1kKTsgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMC45Mzc1cmVtOyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZSk7IHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7IHdpZHRoOiAxMDAlOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZpZWxkIGlucHV0OmZvY3VzLCAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZpZWxkIHNlbGVjdDpmb2N1cywgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1maWVsZCB0ZXh0YXJlYTpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tY2ktYnJhbmQtc2Vjb25kYXJ5KTsgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoNDQsIDgyLCAxMzAsIDAuMSk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZmllbGQgdGV4dGFyZWEgeyBtaW4taGVpZ2h0OiA3MHB4OyByZXNpemU6IHZlcnRpY2FsOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWZpZWxkIHNlbGVjdCB7IGN1cnNvcjogcG9pbnRlcjsgYXBwZWFyYW5jZTogbm9uZTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzNzE4MDk2JyBzdHJva2Utd2lkdGg9JzInJTNFJTNDcGF0aCBkPSdtNiA5IDYgNiA2LTYnLyUzRSUzQy9zdmclM0UiKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTJweCBjZW50ZXI7IHBhZGRpbmctcmlnaHQ6IDQwcHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZmllbGQtaGludCB7IG1hcmdpbi10b3A6IDRweDsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY2ktaW5rLW11dGVkKTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1wb3N0Y29kZS1zdGF0dXMgeyBtYXJnaW4tdG9wOiA2cHg7IHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtc20pOyBmb250LXNpemU6IDAuODEyNXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgZGlzcGxheTogbm9uZTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1wb3N0Y29kZS1zdGF0dXMuY2ktaW4tYXJlYSB7IGRpc3BsYXk6IGJsb2NrOyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1zdWNjZXNzLXNvZnQpOyBjb2xvcjogIzE2NjUzNDsgYm9yZGVyOiAxcHggc29saWQgIzg2ZWZhYzsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1wb3N0Y29kZS1zdGF0dXMuY2ktb3V0LWFyZWEgeyBkaXNwbGF5OiBibG9jazsgYmFja2dyb3VuZDogI2ZlZjNjNzsgY29sb3I6ICM5MjQwMGU7IGJvcmRlcjogMXB4IHNvbGlkICNmY2QzNGQ7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZm9ybS1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxMnB4OyBtYXJnaW4tdG9wOiAyMHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYnRuIHsgcGFkZGluZzogMTRweCAyNHB4OyBib3JkZXI6IG5vbmU7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1tZCk7IGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IDAuOTM3NXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogOHB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJ0bjpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1idG4tc2Vjb25kYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZS1zdW5rZW4pOyBjb2xvcjogdmFyKC0tY2ktaW5rKTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1idG4tc2Vjb25kYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgYmFja2dyb3VuZDogdmFyKC0tY2ktYm9yZGVyKTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1idG4tcHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWNpLWJyYW5kLWFjY2VudCk7IGNvbG9yOiB3aGl0ZTsgZmxleDogMTsgfQogICAgI2NpLWJvb2tpbmctd2lkZ2V0IC5jaS1idG4tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKSB7IGJhY2tncm91bmQ6IHZhcigtLWNpLWJyYW5kLWFjY2VudC1ob3Zlcik7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDIzNywgMTM3LCA1NCwgMC4zNSk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktYnRuLWRhcmsgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1icmFuZC1wcmltYXJ5KTsgY29sb3I6IHdoaXRlOyBmbGV4OiAxOyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLWJ0bi1kYXJrOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgYmFja2dyb3VuZDogdmFyKC0tY2ktYnJhbmQtc2Vjb25kYXJ5KTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpOyBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMjYsIDU0LCA5MywgMC4zNSk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktZm9ybS1kaXNjbGFpbWVyIHsgbWFyZ2luLXRvcDogMTRweDsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY2ktaW5rLW11dGVkKTsgbGluZS1oZWlnaHQ6IDEuNjsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogdmFyKC0tY2ktc3VyZmFjZS1zdW5rZW4pOyBib3JkZXItcmFkaXVzOiB2YXIoLS1jaS1yYWRpdXMtbWQpOyB9CiAgICAvKiBTdWNjZXNzICovCiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXN1Y2Nlc3MgeyBkaXNwbGF5OiBub25lOyBtYXJnaW4tdG9wOiAyMHB4OyBwYWRkaW5nOiAxOHB4IDIwcHg7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlY2ZkZjUgMCUsICNkMWZhZTUgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkICM4NmVmYWM7IGJvcmRlci1yYWRpdXM6IHZhcigtLWNpLXJhZGl1cy1sZyk7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktc3VjY2Vzcy5jaS1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgYW5pbWF0aW9uOiBjaVNjYWxlSW4gMC40cyBlYXNlOyB9CiAgICBAa2V5ZnJhbWVzIGNpU2NhbGVJbiB7IGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpOyB9IHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXN1Y2Nlc3MtaWNvbiB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGJhY2tncm91bmQ6IHZhcigtLWNpLXN1Y2Nlc3MpOyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9CiAgICAjY2ktYm9va2luZy13aWRnZXQgLmNpLXN1Y2Nlc3MtaWNvbiBzdmcgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBjb2xvcjogd2hpdGU7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktc3VjY2VzcyBoNCB7IGZvbnQtc2l6ZTogMS4xMjVyZW07IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiAjMDY1ZjQ2OyBtYXJnaW4tYm90dG9tOiA0cHg7IH0KICAgICNjaS1ib29raW5nLXdpZGdldCAuY2ktc3VjY2VzcyBwIHsgZm9udC1zaXplOiAwLjg3NXJlbTsgY29sb3I6ICMwNDc4NTc7IGZvbnQtd2VpZ2h0OiA1MDA7IG1hcmdpbjogMDsgfQogIDwvc3R5bGU+CgogIDwhLS0gSGVhZGVyIC0tPgogIDxoZWFkZXIgY2xhc3M9ImNpLWhlYWRlciI+CiAgICA8aDE+Qm9vayBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczwvaDE+CiAgICA8cD5FUEMsIEVJQ1IgYW5kIEdhcyBTYWZldHkgQ2VydGlmaWNhdGUgYXBwb2ludG1lbnRzPC9wPgogICAgCiAgICA8IS0tIFRydXN0IExpbmUgLS0+CiAgICA8ZGl2IGNsYXNzPSJjaS10cnVzdC1saW5lIj4KICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz4KICAgICAgPHNwYW4+PHN0cm9uZz5RdWFsaWZpZWQsIENlcnRpZmllZCBFbmdpbmVlcnM8L3N0cm9uZz4g4oCUIE91ciBHYXMgU2FmZSBlbmdpbmVlcnMsIGFjY3JlZGl0ZWQgRVBDIGFzc2Vzc29ycywgYW5kIHF1YWxpZmllZCBlbGVjdHJpY2lhbnMgYXJlIGZ1bGx5IGNlcnRpZmllZCBhbmQgaW5zdXJlZC48L3NwYW4+CiAgICA8L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0iY2ktYmFkZ2VzIj4KICAgICAgPHNwYW4gY2xhc3M9ImNpLWJhZGdlIj4KICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTIyIDExLjA4VjEyYTEwIDEwIDAgMSAxLTUuOTMtOS4xNCIvPjxwb2x5bGluZSBwb2ludHM9IjIyIDQgMTIgMTQuMDEgOSAxMS4wMSIvPjwvc3ZnPgogICAgICAgIEdhcyBTYWZlIFJlZ2lzdGVyZWQKICAgICAgPC9zcGFuPgogICAgICA8c3BhbiBjbGFzcz0iY2ktYmFkZ2UiPgogICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48cGF0aCBkPSJNMjIgMTEuMDhWMTJhMTAgMTAgMCAxIDEtNS45My05LjE0Ii8+PHBvbHlsaW5lIHBvaW50cz0iMjIgNCAxMiAxNC4wMSA5IDExLjAxIi8+PC9zdmc+CiAgICAgICAgQWNjcmVkaXRlZCBFUEMgQXNzZXNzb3JzCiAgICAgIDwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9ImNpLWJhZGdlIj4KICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0iTTIyIDExLjA4VjEyYTEwIDEwIDAgMSAxLTUuOTMtOS4xNCIvPjxwb2x5bGluZSBwb2ludHM9IjIyIDQgMTIgMTQuMDEgOSAxMS4wMSIvPjwvc3ZnPgogICAgICAgIFF1YWxpZmllZCBFbGVjdHJpY2lhbnMKICAgICAgPC9zcGFuPgogICAgPC9kaXY+CiAgPC9oZWFkZXI+CiAgPCEtLSBOb3RpY2UgLS0+CiAgPGRpdiBjbGFzcz0iY2ktbm90aWNlIj4KICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMiIgeTI9IjEyIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMi4wMSIgeTI9IjE2Ii8+PC9zdmc+CiAgICA8ZGl2PgogICAgICA8aDM+QXBwb2ludG1lbnQgY29uZmlybWF0aW9uIHJlcXVpcmVkPC9oMz4KICAgICAgPHA+UmVxdWVzdCBhIGRhdGUgYW5kIHBheSBub3cgaWYgeW91IHdpc2guIFdlJ2xsIGNvbnRhY3QgeW91IHdpdGhpbiAyNCBob3VycyB0byBjb25maXJtIHRoZSBhcHBvaW50bWVudCB0aW1lIGFuZCBhc3NpZ24gdGhlIHJpZ2h0IG9wZXJhdGl2ZS48L3A+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSBPdXQgb2YgQXJlYSBJbmZvIC0tPgogIDxkaXYgY2xhc3M9ImNpLWluZm8tYm94Ij4KICAgIDxzdHJvbmc+T3V0IG9mIGFyZWEgZmVlIChhdXRvbWF0aWNhbGx5IGFwcGxpZWQpOjwvc3Ryb25nPiBJZiB5b3VyIHBvc3Rjb2RlIGlzIG91dHNpZGUgb3VyIExvbmRvbiBjb3ZlcmFnZSBhcmVhcyAoRUMsIFdDLCBFLCBOLCBOVywgU0UsIFNXLCBXIGluY2x1ZGluZyBkaXN0cmljdHMgc3VjaCBhcyBFMVcgYW5kIFcxSyksIGEgwqMzNSB0cmF2ZWwgZmVlIHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxseS4KICA8L2Rpdj4KCiAgPCEtLSBNYWluIEdyaWQgLS0+CiAgPGRpdiBjbGFzcz0iY2ktZ3JpZCI+CiAgICA8IS0tIENhbGVuZGFyIC0tPgogICAgPGRpdiBjbGFzcz0iY2ktY2FyZCI+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWNhcmQtaGVhZGVyIj4KICAgICAgICA8aDI+U2VsZWN0IGEgZGF0ZTwvaDI+CiAgICAgICAgPHA+Q2hvb3NlIHlvdXIgcHJlZmVycmVkIGFwcG9pbnRtZW50IGRheTwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImNpLWNhcmQtYm9keSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLW5hdiI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2ktY2FsLW1vbnRoIiBpZD0iY2lDYWxNb250aCI+PC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLWJ0bnMiPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaS1jYWwtYnRuIiBpZD0iY2lQcmV2TW9udGgiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iUHJldmlvdXMgbW9udGgiPgogICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSI+PHBvbHlsaW5lIHBvaW50cz0iMTUgMTggOSAxMiAxNSA2Ii8+PC9zdmc+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjaS1jYWwtYnRuIiBpZD0iY2lOZXh0TW9udGgiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iTmV4dCBtb250aCI+CiAgICAgICAgICAgICAgPHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41Ij48cG9seWxpbmUgcG9pbnRzPSI5IDE4IDE1IDEyIDkgNiIvPjwvc3ZnPgogICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNpLWNhbC1ncmlkIiBpZD0iY2lDYWxHcmlkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWNhbC1kb3ciPk1vbjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLWRvdyI+VHVlPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1jYWwtZG93Ij5XZWQ8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWNhbC1kb3ciPlRodTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktY2FsLWRvdyI+RnJpPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1jYWwtZG93Ij5TYXQ8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWNhbC1kb3ciPlN1bjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGNsYXNzPSJjaS1jYWwtaGludCI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+PC9zdmc+CiAgICAgICAgICBTdW5kYXlzIGFuZCBwYXN0IGRhdGVzIHVuYXZhaWxhYmxlCiAgICAgICAgPC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImNpLXNlbGVjdGVkLWRhdGUtbGFiZWwiIGlkPSJjaVNlbGVjdGVkRGF0ZUxhYmVsIj4KICAgICAgICAgIDxzdHJvbmc+U2VsZWN0ZWQgZGF0ZTo8L3N0cm9uZz4gPHNwYW4gaWQ9ImNpU2VsZWN0ZWREYXRlVGV4dCI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLSBTZXJ2aWNlcyAtLT4KICAgIDxkaXYgY2xhc3M9ImNpLWNhcmQiIHN0eWxlPSJvdmVyZmxvdzogdmlzaWJsZTsiPgogICAgICA8ZGl2IGNsYXNzPSJjaS1jYXJkLWhlYWRlciI+CiAgICAgICAgPGgyPkNob29zZSBhIHNlcnZpY2U8L2gyPgogICAgICAgIDxwPlNlbGVjdCBvbmUgb3B0aW9uIGJlbG93PC9wPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iY2ktdGFicyI+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2ktdGFiIGNpLWFjdGl2ZSIgZGF0YS10YWI9InNpbmdsZXMiIHR5cGU9ImJ1dHRvbiI+U2luZ2xlPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2ktdGFiIiBkYXRhLXRhYj0iY29tYm9zIiB0eXBlPSJidXR0b24iPkNvbWJvczwvYnV0dG9uPgogICAgICAgIDxidXR0b24gY2xhc3M9ImNpLXRhYiIgZGF0YS10YWI9InBhY2thZ2VzIiB0eXBlPSJidXR0b24iPkxhbmRsb3JkPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPCEtLSBTaW5nbGVzIFBhbmVsIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjaS1wYW5lbCBjaS1hY3RpdmUiIGRhdGEtcGFuZWw9InNpbmdsZXMiIGlkPSJjaVBhbmVsU2luZ2xlcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktb2ZmZXJzIiBpZD0iY2lPZmZlcnNTaW5nbGVzIj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaS1vZmZlcnMtaGludCI+TmVlZCBtdWx0aXBsZSBjZXJ0aWZpY2F0ZXM/IFN3aXRjaCB0byA8c3Ryb25nPkNvbWJvczwvc3Ryb25nPiB0byBzYXZlLjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDwhLS0gQ29tYm9zIFBhbmVsIC0tPgogICAgICA8ZGl2IGNsYXNzPSJjaS1wYW5lbCIgZGF0YS1wYW5lbD0iY29tYm9zIiBpZD0iY2lQYW5lbENvbWJvcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktb2ZmZXJzIiBpZD0iY2lPZmZlcnNDb21ib3MiPjwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDwhLS0gUGFja2FnZXMgUGFuZWwgLS0+CiAgICAgIDxkaXYgY2xhc3M9ImNpLXBhbmVsIiBkYXRhLXBhbmVsPSJwYWNrYWdlcyIgaWQ9ImNpUGFuZWxQYWNrYWdlcyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktc2VjdGlvbi1kaXZpZGVyIj4xLTIgQmVkcm9vbSBQcm9wZXJ0aWVzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2ktb2ZmZXJzIiBpZD0iY2lPZmZlcnNQYWNrYWdlczF0bzIiPjwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNpLXNlY3Rpb24tZGl2aWRlciI+My00IEJlZHJvb20gUHJvcGVydGllczwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNpLW9mZmVycyIgaWQ9ImNpT2ZmZXJzUGFja2FnZXMzdG80Ij48L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJjaS1vZmZlcnMtaGludCIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7Ij4KICAgICAgICAgIDxzdHJvbmc+UHJpY2VzIHNob3duIGFwcGx5IHRvIHN0dWRpb3MgdG8gNCBiZWRyb29tIHByb3BlcnRpZXMuPC9zdHJvbmc+IEZvciA1KyBiZWRyb29tIHByb3BlcnRpZXMsIGFuIGFkZGl0aW9uYWwgZmVlIGFwcGxpZXMuIFdlIHdpbGwgY29uZmlybSBhbmQgYWdyZWUgdGhpcyB3aXRoIHlvdSBiZWZvcmUgdGhlIGFwcG9pbnRtZW50IGlzIGNvbmZpcm1lZC48YnI+PGJyPgogICAgICAgICAgR290IGEgNSsgYmVkcm9vbSBwcm9wZXJ0eT8gQ2FsbCB1cyBvbiA8YSBocmVmPSJ0ZWw6MDIwMzQ4ODgwNzIiPjAyMCAzNDg4IDgwNzI8L2E+LgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLSBCYXNrZXQgLS0+CiAgICA8ZGl2IGNsYXNzPSJjaS1zdGlja3kiPgogICAgICA8ZGl2IGNsYXNzPSJjaS1jYXJkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaS1jYXJkLWhlYWRlciI+CiAgICAgICAgICA8aDI+WW91ciBCb29raW5nPC9oMj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjaS1jYXJkLWJvZHkiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktYmFza2V0LWRhdGUgY2ktZW1wdHkiIGlkPSJjaUJhc2tldERhdGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1iYXNrZXQtZGF0ZS1sYWJlbCI+U2VsZWN0ZWQgRGF0ZTwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1iYXNrZXQtZGF0ZS12YWx1ZSIgaWQ9ImNpQmFza2V0RGF0ZVZhbHVlIj5TZWxlY3QgYSBkYXRlIG9uIHRoZSBjYWxlbmRhcjwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1iYXNrZXQtc3VtbWFyeSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWJhc2tldC1lbXB0eSIgaWQ9ImNpQmFza2V0RW1wdHkiPk5vIHNlcnZpY2Ugc2VsZWN0ZWQ8L2Rpdj4KICAgICAgICAgICAgPGRpdiBpZD0iY2lCYXNrZXRDb250ZW50IiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWJhc2tldC1pdGVtcyIgaWQ9ImNpQmFza2V0SXRlbXMiPjwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWJhc2tldC10b3RhbCI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2ktYmFza2V0LXRvdGFsLWxhYmVsIj5Ub3RhbDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjaS1iYXNrZXQtdG90YWwtdmFsdWUiIGlkPSJjaUJhc2tldFRvdGFsIj48L3NwYW4+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8IS0tIEZvcm0gLS0+CiAgICAgICAgICA8Zm9ybSBjbGFzcz0iY2ktZm9ybSIgaWQ9ImNpRm9ybSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWZvcm0taGVhZGVyIj4KICAgICAgICAgICAgICA8aDM+WW91ciBEZXRhaWxzPC9oMz4KICAgICAgICAgICAgICA8cD5XZSdsbCBjb25maXJtIHlvdXIgYXBwb2ludG1lbnQgd2l0aGluIDI0IGhvdXJzPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZm9ybS1ncmlkIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1maWVsZCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNpLXJlcXVpcmVkIiBmb3I9ImNpTmFtZSI+RnVsbCBuYW1lPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2lOYW1lIiBuYW1lPSJuYW1lIiByZXF1aXJlZCBhdXRvY29tcGxldGU9Im5hbWUiPgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWZvcm0tcm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWZpZWxkIj4KICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjaS1yZXF1aXJlZCIgZm9yPSJjaUVtYWlsIj5FbWFpbDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImNpRW1haWwiIG5hbWU9ImVtYWlsIiByZXF1aXJlZCBhdXRvY29tcGxldGU9ImVtYWlsIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZmllbGQiPgogICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNpLXJlcXVpcmVkIiBmb3I9ImNpUGhvbmUiPlBob25lPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRlbCIgaWQ9ImNpUGhvbmUiIG5hbWU9InBob25lIiByZXF1aXJlZCBhdXRvY29tcGxldGU9InRlbCI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1maWVsZCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNpLXJlcXVpcmVkIiBmb3I9ImNpUG9zdGNvZGUiPlBvc3Rjb2RlPC9sYWJlbD4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2lQb3N0Y29kZSIgbmFtZT0icG9zdGNvZGUiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0icG9zdGFsLWNvZGUiIHBsYWNlaG9sZGVyPSJlLmcuIFNXMUEgMUFBIiBzdHlsZT0idGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktcG9zdGNvZGUtc3RhdHVzIiBpZD0iY2lQb3N0Y29kZVN0YXR1cyI+PC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZmllbGQiPgogICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjaS1yZXF1aXJlZCIgZm9yPSJjaUFkZHJlc3MiPlByb3BlcnR5IGFkZHJlc3MgKGV4Y2x1ZGluZyBwb3N0Y29kZSk8L2xhYmVsPgogICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJjaUFkZHJlc3MiIG5hbWU9ImFkZHJlc3MiIHJlcXVpcmVkIHJvd3M9IjIiIHBsYWNlaG9sZGVyPSJTdHJlZXQgYWRkcmVzcywgZmxhdCBudW1iZXIsIGV0Yy4iPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZm9ybS1yb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2ktZmllbGQiPgogICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNpLXJlcXVpcmVkIiBmb3I9ImNpVHlwZSI+UHJvcGVydHkgdHlwZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImNpVHlwZSIgbmFtZT0idHlwZSIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5TZWxlY3QuLi48L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJyZXNpZGVudGlhbCI+UmVzaWRlbnRpYWw8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJobW8iPkhNTzwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImNvbW1lcmNpYWwiPkNvbW1lcmNpYWw8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLWZpZWxkIj4KICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iY2lCZWRzIj5CZWRyb29tczwvbGFiZWw+CiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImNpQmVkcyIgbmFtZT0iYmVkcm9vbXMiPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+U2VsZWN0Li4uPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic3R1ZGlvIj5TdHVkaW88L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj4xIEJlZHJvb208L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIyIj4yIEJlZHJvb21zPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyI+MyBCZWRyb29tczwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiPjQgQmVkcm9vbXM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSI1KyI+NSsgQmVkcm9vbXM8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1maWVsZCI+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJjaU5vdGVzIj5BY2Nlc3MgaW5zdHJ1Y3Rpb25zIG9yIG5vdGVzPC9sYWJlbD4KICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iY2lOb3RlcyIgbmFtZT0ibm90ZXMiIHJvd3M9IjIiIHBsYWNlaG9sZGVyPSJBY2Nlc3MgY29kZXMsIHBhcmtpbmcgaW5mbywgdGVuYW50IGNvbnRhY3QsIGV0Yy4iPjwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaS1mb3JtLWFjdGlvbnMiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNpLWJ0biBjaS1idG4tc2Vjb25kYXJ5IiB0eXBlPSJidXR0b24iIGlkPSJjaUNhbmNlbEJ0biI+Q2FuY2VsPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY2ktYnRuIGNpLWJ0bi1wcmltYXJ5IiB0eXBlPSJzdWJtaXQiIGlkPSJjaVJlcXVlc3RCdG4iPlJlcXVlc3QgQm9va2luZzwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNpLWJ0biBjaS1idG4tZGFyayIgdHlwZT0iYnV0dG9uIiBpZD0iY2lQYXlCdG4iIGRpc2FibGVkPlBheSBOb3c8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxwIGNsYXNzPSJjaS1mb3JtLWRpc2NsYWltZXIiPgogICAgICAgICAgICAgIDxzdHJvbmc+UGF5bWVudCBkb2VzIG5vdCBjb25maXJtIHRoZSBhcHBvaW50bWVudCB0aW1lLjwvc3Ryb25nPiBXZSB3aWxsIGNvbnRhY3QgeW91IHdpdGhpbiAyNCBob3VycyB0byBjb25maXJtIGF2YWlsYWJpbGl0eSBhbmQgYXNzaWduIGEgcXVhbGlmaWVkLCBjZXJ0aWZpZWQgb3BlcmF0aXZlLiBQYXlpbmcgbm93IGhlbHBzIHJlbW92ZSBkZWxheXMgaW4gY2VydGlmaWNhdGUgcHJvdmlzaW9uIG9uY2UgdGhlIHZpc2l0IGlzIGNvbXBsZXRlZC4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgPC9mb3JtPgogICAgICAgICAgPCEtLSBTdWNjZXNzIC0tPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2ktc3VjY2VzcyIgaWQ9ImNpU3VjY2VzcyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNpLXN1Y2Nlc3MtaWNvbiI+CiAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSI+PHBvbHlsaW5lIHBvaW50cz0iMjAgNiA5IDE3IDQgMTIiLz48L3N2Zz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxoND5SZXF1ZXN0IFJlY2VpdmVkITwvaDQ+CiAgICAgICAgICAgIDxwPlRoYW5rIHlvdS4gV2UnbGwgYmUgaW4gdG91Y2ggd2l0aGluIDI0IGhvdXJzIHRvIGNvbmZpcm0gYXZhaWxhYmlsaXR5IGFuZCBhc3NpZ24geW91ciBvcGVyYXRpdmUuPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgoKPHNjcmlwdD4KKGZ1bmN0aW9uKCkgewogICd1c2Ugc3RyaWN0JzsKICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gUFJJQ0lORyBDT05GSUdVUkFUSU9OCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIAogIGNvbnN0IFBSSUNFX0ZMT09SUyA9IHsgRVBDOiA3NSwgR0FTOiA4MCwgRUlDUjogMTIwIH07CiAgY29uc3QgT1VUX09GX0FSRUFfRkVFID0gMzU7CiAgY29uc3QgSU5fQVJFQV9QUkVGSVhFUyA9IFsnRUMnLCAnV0MnLCAnRScsICdOJywgJ05XJywgJ1NFJywgJ1NXJywgJ1cnXTsKICBjb25zdCBQQUNLQUdFX1VQTElGVCA9IDIwOwogIAogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAvLyBPRkZFUlMgREFUQQogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAKICBjb25zdCBTSU5HTEVTID0gWwogICAgeyBpZDogJ2VwYycsIHRpdGxlOiAnRVBDIChFbmVyZ3kgUGVyZm9ybWFuY2UgQ2VydGlmaWNhdGUpJywgZGVzYzogJ0FjY3JlZGl0ZWQgYXNzZXNzbWVudCBhbmQgY2VydGlmaWNhdGUnLCBpbmNsdWRlczogWydFUEMnXSwgcHJpY2U6IDg1IH0sCiAgICB7IGlkOiAnZ2FzJywgdGl0bGU6ICdHYXMgU2FmZXR5IENlcnRpZmljYXRlIChDUDEyKScsIGRlc2M6ICdHYXMgU2FmZSBlbmdpbmVlciBpbnNwZWN0aW9uIGFuZCBjZXJ0aWZpY2F0ZScsIGluY2x1ZGVzOiBbJ0dhcyBTYWZldHknXSwgcHJpY2U6IDg1IH0sCiAgICB7IGlkOiAnZWljcicsIHRpdGxlOiAnRUlDUiAoRWxlY3RyaWNhbCBJbnN0YWxsYXRpb24gQ29uZGl0aW9uIFJlcG9ydCknLCBkZXNjOiAnUXVhbGlmaWVkIGVsZWN0cmljaWFuIHNhZmV0eSB0ZXN0aW5nIGFuZCByZXBvcnQnLCBpbmNsdWRlczogWydFSUNSJ10sIHByaWNlOiAxNzAgfQogIF07CiAgCiAgY29uc3QgQ09NQk9TID0gWwogICAgeyBpZDogJ2NlcnQtYnVuZGxlJywgdGl0bGU6ICdDZXJ0IEJ1bmRsZScsIGRlc2M6ICdFUEMgKyBHYXMgU2FmZXR5JywgaW5jbHVkZXM6IFsnRVBDJywgJ0dhcyBTYWZldHknXSwgcHJpY2U6IDE2MCwgc2F2aW5nczogMTAgfSwKICAgIHsgaWQ6ICdzYWZldHktZHVvJywgdGl0bGU6ICdTYWZldHkgRHVvJywgZGVzYzogJ0dhcyBTYWZldHkgKyBFSUNSJywgaW5jbHVkZXM6IFsnR2FzIFNhZmV0eScsICdFSUNSJ10sIHByaWNlOiAyMzAsIHNhdmluZ3M6IDI1IH0sCiAgICB7IGlkOiAnZnVsbC1jb21wbGlhbmNlJywgdGl0bGU6ICdGdWxsIENvbXBsaWFuY2UnLCBkZXNjOiAnRVBDICsgR2FzIFNhZmV0eSArIEVJQ1InLCBpbmNsdWRlczogWydFUEMnLCAnR2FzIFNhZmV0eScsICdFSUNSJ10sIHByaWNlOiAyOTksIHNhdmluZ3M6IDQxIH0KICBdOwogIAogIGNvbnN0IFBBQ0tBR0VTXzFUTzIgPSBbCiAgICB7IGlkOiAnbGFuZGxvcmQtZXNzZW50aWFscy0xLTInLCB0aXRsZTogJ0xhbmRsb3JkIEVzc2VudGlhbHMgKDEtMiBiZWQpJywgZGVzYzogJ0VQQyArIEdhcyBTYWZldHkgKyBDaGVjay1JbiBJbnZlbnRvcnknLCBpbmNsdWRlczogWydFUEMnLCAnR2FzIFNhZmV0eScsICdDaGVjay1JbiBJbnZlbnRvcnknXSwgcHJpY2U6IDMxNSwgc2F2aW5nczogMzAgfSwKICAgIHsgaWQ6ICdsYW5kbG9yZC1lc3NlbnRpYWxzLW5vLWVwYy0xLTInLCB0aXRsZTogJ0xhbmRsb3JkIEVzc2VudGlhbHMgXHUyMDEzIE5vIEVQQyAoMS0yIGJlZCknLCBkZXNjOiAnR2FzIFNhZmV0eSArIENoZWNrLUluIEludmVudG9yeScsIGluY2x1ZGVzOiBbJ0dhcyBTYWZldHknLCAnQ2hlY2stSW4gSW52ZW50b3J5J10sIHByaWNlOiAyNDAsIHNhdmluZ3M6IDIwIH0sCiAgICB7IGlkOiAnbGFuZGxvcmQtc3RhbmRhcmQtMS0yJywgdGl0bGU6ICdMYW5kbG9yZCBTdGFuZGFyZCAoMS0yIGJlZCknLCBkZXNjOiAnRVBDICsgR2FzIFNhZmV0eSArIEVJQ1IgKyBDaGVjay1JbiBJbnZlbnRvcnknLCBpbmNsdWRlczogWydFUEMnLCAnR2FzIFNhZmV0eScsICdFSUNSJywgJ0NoZWNrLUluIEludmVudG9yeSddLCBwcmljZTogNDcwLCBzYXZpbmdzOiA2NSB9LAogICAgeyBpZDogJ2xhbmRsb3JkLXN0YW5kYXJkLW5vLWVwYy0xLTInLCB0aXRsZTogJ0xhbmRsb3JkIFN0YW5kYXJkIFx1MjAxMyBObyBFUEMgKDEtMiBiZWQpJywgZGVzYzogJ0dhcyBTYWZldHkgKyBFSUNSICsgQ2hlY2stSW4gSW52ZW50b3J5JywgaW5jbHVkZXM6IFsnR2FzIFNhZmV0eScsICdFSUNSJywgJ0NoZWNrLUluIEludmVudG9yeSddLCBwcmljZTogMzk1LCBzYXZpbmdzOiA1MCB9LAogICAgeyBpZDogJ2xhbmRsb3JkLXByZW1pdW0tMS0yJywgdGl0bGU6ICdMYW5kbG9yZCBQcmVtaXVtICgxLTIgYmVkKScsIGRlc2M6ICdFUEMgKyBHYXMgU2FmZXR5ICsgRUlDUiArIENoZWNrLUluICsgQ2hlY2stT3V0JywgaW5jbHVkZXM6IFsnRVBDJywgJ0dhcyBTYWZldHknLCAnRUlDUicsICdDaGVjay1JbicsICdDaGVjay1PdXQnXSwgcHJpY2U6IDU1MCwgc2F2aW5nczogOTAgfSwKICAgIHsgaWQ6ICdsYW5kbG9yZC1wcmVtaXVtLW5vLWVwYy0xLTInLCB0aXRsZTogJ0xhbmRsb3JkIFByZW1pdW0gXHUyMDEzIE5vIEVQQyAoMS0yIGJlZCknLCBkZXNjOiAnR2FzIFNhZmV0eSArIEVJQ1IgKyBDaGVjay1JbiArIENoZWNrLU91dCcsIGluY2x1ZGVzOiBbJ0dhcyBTYWZldHknLCAnRUlDUicsICdDaGVjay1JbicsICdDaGVjay1PdXQnXSwgcHJpY2U6IDQ3NSwgc2F2aW5nczogNzUgfQogIF07CiAgCiAgY29uc3QgUEFDS0FHRVNfM1RPNCA9IFsKICAgIHsgaWQ6ICdsYW5kbG9yZC1lc3NlbnRpYWxzLTMtNCcsIHRpdGxlOiAnTGFuZGxvcmQgRXNzZW50aWFscyAoMy00IGJlZCknLCBkZXNjOiAnRVBDICsgR2FzIFNhZmV0eSArIENoZWNrLUluIEludmVudG9yeScsIGluY2x1ZGVzOiBbJ0VQQycsICdHYXMgU2FmZXR5JywgJ0NoZWNrLUluIEludmVudG9yeSddLCBwcmljZTogMzY1LCBzYXZpbmdzOiAzNSB9LAogICAgeyBpZDogJ2xhbmRsb3JkLWVzc2VudGlhbHMtbm8tZXBjLTMtNCcsIHRpdGxlOiAnTGFuZGxvcmQgRXNzZW50aWFscyBcdTIwMTMgTm8gRVBDICgzLTQgYmVkKScsIGRlc2M6ICdHYXMgU2FmZXR5ICsgQ2hlY2stSW4gSW52ZW50b3J5JywgaW5jbHVkZXM6IFsnR2FzIFNhZmV0eScsICdDaGVjay1JbiBJbnZlbnRvcnknXSwgcHJpY2U6IDI5MCwgc2F2aW5nczogMjUgfSwKICAgIHsgaWQ6ICdsYW5kbG9yZC1zdGFuZGFyZC0zLTQnLCB0aXRsZTogJ0xhbmRsb3JkIFN0YW5kYXJkICgzLTQgYmVkKScsIGRlc2M6ICdFUEMgKyBHYXMgU2FmZXR5ICsgRUlDUiArIENoZWNrLUluIEludmVudG9yeScsIGluY2x1ZGVzOiBbJ0VQQycsICdHYXMgU2FmZXR5JywgJ0VJQ1InLCAnQ2hlY2stSW4gSW52ZW50b3J5J10sIHByaWNlOiA1NDAsIHNhdmluZ3M6IDc1IH0sCiAgICB7IGlkOiAnbGFuZGxvcmQtc3RhbmRhcmQtbm8tZXBjLTMtNCcsIHRpdGxlOiAnTGFuZGxvcmQgU3RhbmRhcmQgXHUyMDEzIE5vIEVQQyAoMy00IGJlZCknLCBkZXNjOiAnR2FzIFNhZmV0eSArIEVJQ1IgKyBDaGVjay1JbiBJbnZlbnRvcnknLCBpbmNsdWRlczogWydHYXMgU2FmZXR5JywgJ0VJQ1InLCAnQ2hlY2stSW4gSW52ZW50b3J5J10sIHByaWNlOiA0NTUsIHNhdmluZ3M6IDYwIH0KICBdOwogIAogIGNvbnN0IE1PTlRIUyA9IFsnSmFudWFyeScsJ0ZlYnJ1YXJ5JywnTWFyY2gnLCdBcHJpbCcsJ01heScsJ0p1bmUnLCdKdWx5JywnQXVndXN0JywnU2VwdGVtYmVyJywnT2N0b2JlcicsJ05vdmVtYmVyJywnRGVjZW1iZXInXTsKICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gU1RBVEUKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgbGV0IGN1cnJlbnRNb250aCA9IG5ldyBEYXRlKCk7CiAgbGV0IHNlbGVjdGVkRGF0ZSA9IG51bGw7CiAgbGV0IHNlbGVjdGVkT2ZmZXIgPSBudWxsOwogIGxldCBpc091dE9mQXJlYSA9IGZhbHNlOwogIGxldCBwb3N0Y29kZUNoZWNrZWQgPSBmYWxzZTsKICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gRE9NIEhFTFBFUlMKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgY29uc3Qgd2lkZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NpLWJvb2tpbmctd2lkZ2V0Jyk7CiAgY29uc3QgJCA9IChzZWwpID0+IHdpZGdldC5xdWVyeVNlbGVjdG9yKHNlbCk7CiAgY29uc3QgJCQgPSAoc2VsKSA9PiB3aWRnZXQucXVlcnlTZWxlY3RvckFsbChzZWwpOwogIAogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAvLyBVVElMSVRJRVMKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgY29uc3QgZm9ybWF0TW9uZXkgPSAobikgPT4gJ1x1MDBBMycgKyBuOwogIAogIGNvbnN0IGZvcm1hdERhdGUgPSAoZCkgPT4gewogICAgY29uc3QgZGF5ID0gZC5nZXREYXRlKCk7CiAgICBjb25zdCBzID0gWyd0aCcsJ3N0JywnbmQnLCdyZCddW2RheSAlIDEwID4gMyA/IDAgOiAoZGF5ICUgMTAwIC0gZGF5ICUgMTAgIT09IDEwKSAqIGRheSAlIDEwXTsKICAgIHJldHVybiBNT05USFNbZC5nZXRNb250aCgpXSArICcgJyArIGRheSArIHMgKyAnLCAnICsgZC5nZXRGdWxsWWVhcigpOwogIH07CiAgCiAgY29uc3Qgc2FtZURheSA9IChhLCBiKSA9PiBhICYmIGIgJiYgYS5nZXREYXRlKCkgPT09IGIuZ2V0RGF0ZSgpICYmIGEuZ2V0TW9udGgoKSA9PT0gYi5nZXRNb250aCgpICYmIGEuZ2V0RnVsbFllYXIoKSA9PT0gYi5nZXRGdWxsWWVhcigpOwogIAogIGNvbnN0IHZhbGlkYXRlRW1haWwgPSAoZW1haWwpID0+IC9eW15cc0BdK0BbXlxzQF0rXC5bXlxzQF0rJC8udGVzdChlbWFpbCk7CiAgCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIC8vIFBPU1RDT0RFIFZBTElEQVRJT04KICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgZnVuY3Rpb24gY2hlY2tQb3N0Y29kZShwb3N0Y29kZSkgewogICAgaWYgKCFwb3N0Y29kZSkgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBpbkFyZWE6IGZhbHNlIH07CiAgICB2YXIgY2xlYW4gPSBwb3N0Y29kZS5yZXBsYWNlKC9ccysvZywgJycpLnRvVXBwZXJDYXNlKCk7CiAgICB2YXIgdWtQb3N0Y29kZVJlZ2V4ID0gL15bQS1aXXsxLDJ9WzAtOV1bMC05QS1aXT9bMC05XVtBLVpdezJ9JC87CiAgICBpZiAoIXVrUG9zdGNvZGVSZWdleC50ZXN0KGNsZWFuKSkgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBpbkFyZWE6IGZhbHNlIH07CiAgICB2YXIgb3V0d2FyZE1hdGNoID0gY2xlYW4ubWF0Y2goL14oW0EtWl17MSwyfSkoWzAtOV0rW0EtWl0/KS8pOwogICAgaWYgKCFvdXR3YXJkTWF0Y2gpIHJldHVybiB7IHZhbGlkOiB0cnVlLCBpbkFyZWE6IGZhbHNlIH07CiAgICB2YXIgYXJlYUxldHRlcnMgPSBvdXR3YXJkTWF0Y2hbMV07CiAgICB2YXIgaW5BcmVhID0gSU5fQVJFQV9QUkVGSVhFUy5zb21lKGZ1bmN0aW9uKHByZWZpeCkgewogICAgICBpZiAocHJlZml4Lmxlbmd0aCA9PT0gMikgcmV0dXJuIGFyZWFMZXR0ZXJzID09PSBwcmVmaXg7CiAgICAgIHJldHVybiBhcmVhTGV0dGVycyA9PT0gcHJlZml4OwogICAgfSk7CiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSwgaW5BcmVhOiBpbkFyZWEgfTsKICB9CiAgCiAgZnVuY3Rpb24gaGFuZGxlUG9zdGNvZGVDaGFuZ2UoKSB7CiAgICB2YXIgcG9zdGNvZGVJbnB1dCA9ICQoJyNjaVBvc3Rjb2RlJyk7CiAgICB2YXIgc3RhdHVzRWwgPSAkKCcjY2lQb3N0Y29kZVN0YXR1cycpOwogICAgdmFyIHBvc3Rjb2RlID0gcG9zdGNvZGVJbnB1dC52YWx1ZS50cmltKCk7CiAgICBpZiAoIXBvc3Rjb2RlKSB7CiAgICAgIHN0YXR1c0VsLmNsYXNzTmFtZSA9ICdjaS1wb3N0Y29kZS1zdGF0dXMnOwogICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9ICcnOwogICAgICBpc091dE9mQXJlYSA9IGZhbHNlOwogICAgICBwb3N0Y29kZUNoZWNrZWQgPSBmYWxzZTsKICAgICAgdXBkYXRlQmFza2V0KCk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciByZXN1bHQgPSBjaGVja1Bvc3Rjb2RlKHBvc3Rjb2RlKTsKICAgIGlmICghcmVzdWx0LnZhbGlkKSB7CiAgICAgIHN0YXR1c0VsLmNsYXNzTmFtZSA9ICdjaS1wb3N0Y29kZS1zdGF0dXMnOwogICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9ICcnOwogICAgICBpc091dE9mQXJlYSA9IGZhbHNlOwogICAgICBwb3N0Y29kZUNoZWNrZWQgPSBmYWxzZTsKICAgIH0gZWxzZSBpZiAocmVzdWx0LmluQXJlYSkgewogICAgICBzdGF0dXNFbC5jbGFzc05hbWUgPSAnY2ktcG9zdGNvZGUtc3RhdHVzIGNpLWluLWFyZWEnOwogICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9ICdcdTI3MTMgV2l0aGluIExvbmRvbiBjb3ZlcmFnZSBhcmVhIFx1MjAxMyBubyB0cmF2ZWwgZmVlJzsKICAgICAgaXNPdXRPZkFyZWEgPSBmYWxzZTsKICAgICAgcG9zdGNvZGVDaGVja2VkID0gdHJ1ZTsKICAgIH0gZWxzZSB7CiAgICAgIHN0YXR1c0VsLmNsYXNzTmFtZSA9ICdjaS1wb3N0Y29kZS1zdGF0dXMgY2ktb3V0LWFyZWEnOwogICAgICBzdGF0dXNFbC50ZXh0Q29udGVudCA9ICdcdTI2QTAgT3V0c2lkZSBMb25kb24gY292ZXJhZ2UgXHUyMDEzIFx1MDBBMzM1IHRyYXZlbCBmZWUgYXBwbGllcyc7CiAgICAgIGlzT3V0T2ZBcmVhID0gdHJ1ZTsKICAgICAgcG9zdGNvZGVDaGVja2VkID0gdHJ1ZTsKICAgIH0KICAgIHVwZGF0ZUJhc2tldCgpOwogIH0KICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gQ0FMRU5EQVIKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgZnVuY3Rpb24gcmVuZGVyQ2FsZW5kYXIoKSB7CiAgICB2YXIgeWVhciA9IGN1cnJlbnRNb250aC5nZXRGdWxsWWVhcigpOwogICAgdmFyIG1vbnRoID0gY3VycmVudE1vbnRoLmdldE1vbnRoKCk7CiAgICAkKCcjY2lDYWxNb250aCcpLnRleHRDb250ZW50ID0gTU9OVEhTW21vbnRoXSArICcgJyArIHllYXI7CiAgICB2YXIgZ3JpZCA9ICQoJyNjaUNhbEdyaWQnKTsKICAgIGdyaWQucXVlcnlTZWxlY3RvckFsbCgnLmNpLWNhbC1kYXknKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7IGVsLnJlbW92ZSgpOyB9KTsKICAgIHZhciBmaXJzdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTsKICAgIHZhciBsYXN0ID0gbmV3IERhdGUoeWVhciwgbW9udGggKyAxLCAwKTsKICAgIHZhciB0b2RheSA9IG5ldyBEYXRlKCk7IHRvZGF5LnNldEhvdXJzKDAsMCwwLDApOwogICAgdmFyIG9mZnNldCA9IGZpcnN0LmdldERheSgpID09PSAwID8gNiA6IGZpcnN0LmdldERheSgpIC0gMTsKICAgIHNlbGVjdGVkRGF0ZSA9IG51bGw7CiAgICB1cGRhdGVTZWxlY3RlZERhdGVMYWJlbCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvZmZzZXQ7IGkrKykgewogICAgICB2YXIgYyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBjLmNsYXNzTmFtZSA9ICdjaS1jYWwtZGF5IGNpLWVtcHR5IGNpLWRpc2FibGVkJzsKICAgICAgZ3JpZC5hcHBlbmRDaGlsZChjKTsKICAgIH0KICAgIGZvciAodmFyIGQgPSAxOyBkIDw9IGxhc3QuZ2V0RGF0ZSgpOyBkKyspIHsKICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZCk7CiAgICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIGMuY2xhc3NOYW1lID0gJ2NpLWNhbC1kYXknOwogICAgICBjLnRleHRDb250ZW50ID0gZDsKICAgICAgdmFyIGlzUGFzdCA9IGRhdGUgPCB0b2RheTsKICAgICAgdmFyIGlzU3VuZGF5ID0gZGF0ZS5nZXREYXkoKSA9PT0gMDsKICAgICAgaWYgKGlzUGFzdCB8fCBpc1N1bmRheSkgewogICAgICAgIGMuY2xhc3NMaXN0LmFkZCgnY2ktZGlzYWJsZWQnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAoZnVuY3Rpb24oZHQpIHsKICAgICAgICAgIGMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZWN0ZWREYXRlID0gZHQ7CiAgICAgICAgICAgIHJlbmRlckNhbGVuZGFyRGF5cygpOwogICAgICAgICAgICB1cGRhdGVTZWxlY3RlZERhdGVMYWJlbCgpOwogICAgICAgICAgICB1cGRhdGVCYXNrZXQoKTsKICAgICAgICAgIH0pOwogICAgICAgIH0pKGRhdGUpOwogICAgICB9CiAgICAgIGlmIChzYW1lRGF5KGRhdGUsIHRvZGF5KSkgYy5jbGFzc0xpc3QuYWRkKCdjaS10b2RheScpOwogICAgICBpZiAoc2FtZURheShkYXRlLCBzZWxlY3RlZERhdGUpKSBjLmNsYXNzTGlzdC5hZGQoJ2NpLXNlbGVjdGVkJyk7CiAgICAgIGdyaWQuYXBwZW5kQ2hpbGQoYyk7CiAgICB9CiAgfQogIAogIGZ1bmN0aW9uIHJlbmRlckNhbGVuZGFyRGF5cygpIHsKICAgIHZhciBncmlkID0gJCgnI2NpQ2FsR3JpZCcpOwogICAgdmFyIGRheXMgPSBncmlkLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jaS1jYWwtZGF5Jyk7CiAgICB2YXIgeWVhciA9IGN1cnJlbnRNb250aC5nZXRGdWxsWWVhcigpOwogICAgdmFyIG1vbnRoID0gY3VycmVudE1vbnRoLmdldE1vbnRoKCk7CiAgICB2YXIgdG9kYXkgPSBuZXcgRGF0ZSgpOyB0b2RheS5zZXRIb3VycygwLDAsMCwwKTsKICAgIHZhciBkYXlOdW0gPSAxOwogICAgdmFyIGZpcnN0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpOwogICAgdmFyIGxhc3QgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApOwogICAgdmFyIG9mZnNldCA9IGZpcnN0LmdldERheSgpID09PSAwID8gNiA6IGZpcnN0LmdldERheSgpIC0gMTsKICAgIGRheXMuZm9yRWFjaChmdW5jdGlvbihjLCBpKSB7CiAgICAgIGlmIChpIDwgb2Zmc2V0IHx8IGRheU51bSA+IGxhc3QuZ2V0RGF0ZSgpKSByZXR1cm47CiAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheU51bSk7CiAgICAgIGMuY2xhc3NMaXN0LnRvZ2dsZSgnY2ktc2VsZWN0ZWQnLCBzYW1lRGF5KGRhdGUsIHNlbGVjdGVkRGF0ZSkpOwogICAgICBkYXlOdW0rKzsKICAgIH0pOwogIH0KICAKICBmdW5jdGlvbiB1cGRhdGVTZWxlY3RlZERhdGVMYWJlbCgpIHsKICAgIHZhciBsYWJlbCA9ICQoJyNjaVNlbGVjdGVkRGF0ZUxhYmVsJyk7CiAgICB2YXIgdGV4dCA9ICQoJyNjaVNlbGVjdGVkRGF0ZVRleHQnKTsKICAgIGlmIChzZWxlY3RlZERhdGUpIHsKICAgICAgdGV4dC50ZXh0Q29udGVudCA9IGZvcm1hdERhdGUoc2VsZWN0ZWREYXRlKTsKICAgICAgbGFiZWwuY2xhc3NMaXN0LmFkZCgnY2ktYWN0aXZlJyk7CiAgICB9IGVsc2UgewogICAgICBsYWJlbC5jbGFzc0xpc3QucmVtb3ZlKCdjaS1hY3RpdmUnKTsKICAgIH0KICB9CiAgCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIC8vIFRBQlMKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgZnVuY3Rpb24gc2V0VGFiKG5hbWUpIHsKICAgICQkKCcuY2ktdGFiJykuZm9yRWFjaChmdW5jdGlvbih0KSB7IHQuY2xhc3NMaXN0LnRvZ2dsZSgnY2ktYWN0aXZlJywgdC5kYXRhc2V0LnRhYiA9PT0gbmFtZSk7IH0pOwogICAgJCQoJy5jaS1wYW5lbCcpLmZvckVhY2goZnVuY3Rpb24ocCkgeyBwLmNsYXNzTGlzdC50b2dnbGUoJ2NpLWFjdGl2ZScsIHAuZGF0YXNldC5wYW5lbCA9PT0gbmFtZSk7IH0pOwogIH0KICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gT0ZGRVJTIFJFTkRFUklORwogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBmdW5jdGlvbiBjcmVhdGVPZmZlckVsZW1lbnQob2ZmZXIpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnY2ktb2ZmZXInOwogICAgZGl2LmRhdGFzZXQuaWQgPSBvZmZlci5pZDsKICAgIGRpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iY2ktb2ZmZXItcmFkaW8iPjwvZGl2PicgKwogICAgICAnPGRpdiBjbGFzcz0iY2ktb2ZmZXItY29udGVudCI+JyArCiAgICAgICc8ZGl2IGNsYXNzPSJjaS1vZmZlci10aXRsZSI+JyArIG9mZmVyLnRpdGxlICsgJzwvZGl2PicgKwogICAgICAnPGRpdiBjbGFzcz0iY2ktb2ZmZXItZGVzYyI+JyArIG9mZmVyLmRlc2MgKyAnPC9kaXY+JyArCiAgICAgICc8L2Rpdj4nICsKICAgICAgJzxkaXYgY2xhc3M9ImNpLW9mZmVyLW1ldGEiPicgKwogICAgICAnPGRpdiBjbGFzcz0iY2ktb2ZmZXItcHJpY2UiPicgKyBmb3JtYXRNb25leShvZmZlci5wcmljZSkgKyAnPC9kaXY+JyArCiAgICAgIChvZmZlci5zYXZpbmdzID8gJzxkaXYgY2xhc3M9ImNpLW9mZmVyLXNhdmUiPlNhdmUgXHUwMEEzJyArIG9mZmVyLnNhdmluZ3MgKyAnPC9kaXY+JyA6ICcnKSArCiAgICAgICc8L2Rpdj4nOwogICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHNlbGVjdE9mZmVyKG9mZmVyLCBkaXYpOyB9KTsKICAgIHJldHVybiBkaXY7CiAgfQogIAogIGZ1bmN0aW9uIHJlbmRlck9mZmVycygpIHsKICAgIHZhciBzaW5nbGVzQ29udGFpbmVyID0gJCgnI2NpT2ZmZXJzU2luZ2xlcycpOwogICAgc2luZ2xlc0NvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKICAgIFNJTkdMRVMuZm9yRWFjaChmdW5jdGlvbihvKSB7IHNpbmdsZXNDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlT2ZmZXJFbGVtZW50KG8pKTsgfSk7CiAgICB2YXIgY29tYm9zQ29udGFpbmVyID0gJCgnI2NpT2ZmZXJzQ29tYm9zJyk7CiAgICBjb21ib3NDb250YWluZXIuaW5uZXJIVE1MID0gJyc7CiAgICBDT01CT1MuZm9yRWFjaChmdW5jdGlvbihvKSB7IGNvbWJvc0NvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVPZmZlckVsZW1lbnQobykpOyB9KTsKICAgIHZhciBwYWNrYWdlczF0bzJDb250YWluZXIgPSAkKCcjY2lPZmZlcnNQYWNrYWdlczF0bzInKTsKICAgIHBhY2thZ2VzMXRvMkNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKICAgIFBBQ0tBR0VTXzFUTzIuZm9yRWFjaChmdW5jdGlvbihvKSB7IHBhY2thZ2VzMXRvMkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVPZmZlckVsZW1lbnQobykpOyB9KTsKICAgIHZhciBwYWNrYWdlczN0bzRDb250YWluZXIgPSAkKCcjY2lPZmZlcnNQYWNrYWdlczN0bzQnKTsKICAgIHBhY2thZ2VzM3RvNENvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKICAgIFBBQ0tBR0VTXzNUTzQuZm9yRWFjaChmdW5jdGlvbihvKSB7IHBhY2thZ2VzM3RvNENvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVPZmZlckVsZW1lbnQobykpOyB9KTsKICB9CiAgCiAgZnVuY3Rpb24gc2VsZWN0T2ZmZXIob2ZmZXIsIGVsZW1lbnQpIHsKICAgICQkKCcuY2ktb2ZmZXIuY2ktc2VsZWN0ZWQnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2NpLXNlbGVjdGVkJyk7IH0pOwogICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjaS1zZWxlY3RlZCcpOwogICAgc2VsZWN0ZWRPZmZlciA9IG9mZmVyOwogICAgdXBkYXRlQmFza2V0KCk7CiAgfQogIAogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAvLyBCQVNLRVQKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgZnVuY3Rpb24gdXBkYXRlQmFza2V0KCkgewogICAgdmFyIGJkID0gJCgnI2NpQmFza2V0RGF0ZScpOwogICAgdmFyIGJkdiA9ICQoJyNjaUJhc2tldERhdGVWYWx1ZScpOwogICAgaWYgKHNlbGVjdGVkRGF0ZSkgeyBiZC5jbGFzc0xpc3QucmVtb3ZlKCdjaS1lbXB0eScpOyBiZHYudGV4dENvbnRlbnQgPSBmb3JtYXREYXRlKHNlbGVjdGVkRGF0ZSk7IH0KICAgIGVsc2UgeyBiZC5jbGFzc0xpc3QuYWRkKCdjaS1lbXB0eScpOyBiZHYudGV4dENvbnRlbnQgPSAnU2VsZWN0IGEgZGF0ZSBvbiB0aGUgY2FsZW5kYXInOyB9CiAgICB2YXIgYmFza2V0RW1wdHkgPSAkKCcjY2lCYXNrZXRFbXB0eScpOwogICAgdmFyIGJhc2tldENvbnRlbnQgPSAkKCcjY2lCYXNrZXRDb250ZW50Jyk7CiAgICB2YXIgYmFza2V0SXRlbXMgPSAkKCcjY2lCYXNrZXRJdGVtcycpOwogICAgdmFyIGJhc2tldFRvdGFsID0gJCgnI2NpQmFza2V0VG90YWwnKTsKICAgIGlmIChzZWxlY3RlZE9mZmVyKSB7CiAgICAgIGJhc2tldEVtcHR5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgIGJhc2tldENvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgIHZhciB0b3RhbCA9IHNlbGVjdGVkT2ZmZXIucHJpY2U7CiAgICAgIHZhciBpdGVtc0hUTUwgPSAnPGRpdiBjbGFzcz0iY2ktYmFza2V0LWl0ZW0iPjxkaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImNpLWJhc2tldC1pdGVtLW5hbWUiPicgKyBzZWxlY3RlZE9mZmVyLnRpdGxlICsgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJjaS1iYXNrZXQtaXRlbS1pbmNsdWRlcyI+JyArIHNlbGVjdGVkT2ZmZXIuaW5jbHVkZXMuam9pbignIFx1MjAyMiAnKSArICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+PGRpdiBjbGFzcz0iY2ktYmFza2V0LWl0ZW0tcHJpY2UiPicgKyBmb3JtYXRNb25leShzZWxlY3RlZE9mZmVyLnByaWNlKSArICc8L2Rpdj48L2Rpdj4nOwogICAgICBpZiAoaXNPdXRPZkFyZWEgJiYgcG9zdGNvZGVDaGVja2VkKSB7CiAgICAgICAgdG90YWwgKz0gT1VUX09GX0FSRUFfRkVFOwogICAgICAgIGl0ZW1zSFRNTCArPSAnPGRpdiBjbGFzcz0iY2ktYmFza2V0LWl0ZW0gY2ktYmFza2V0LWZlZSI+PGRpdj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJjaS1iYXNrZXQtaXRlbS1uYW1lIj5PdXQgb2YgQXJlYSBUcmF2ZWwgRmVlPC9kaXY+JyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0iY2ktYmFza2V0LWl0ZW0taW5jbHVkZXMiPk91dHNpZGUgTG9uZG9uIGNvdmVyYWdlIGFyZWE8L2Rpdj4nICsKICAgICAgICAgICc8L2Rpdj48ZGl2IGNsYXNzPSJjaS1iYXNrZXQtaXRlbS1wcmljZSI+JyArIGZvcm1hdE1vbmV5KE9VVF9PRl9BUkVBX0ZFRSkgKyAnPC9kaXY+PC9kaXY+JzsKICAgICAgfQogICAgICBiYXNrZXRJdGVtcy5pbm5lckhUTUwgPSBpdGVtc0hUTUw7CiAgICAgIGJhc2tldFRvdGFsLnRleHRDb250ZW50ID0gZm9ybWF0TW9uZXkodG90YWwpOwogICAgfSBlbHNlIHsKICAgICAgYmFza2V0RW1wdHkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgIGJhc2tldENvbnRlbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KICAgIHZhciByZWFkeSA9IHNlbGVjdGVkRGF0ZSAmJiBzZWxlY3RlZE9mZmVyOwogICAgJCgnI2NpRm9ybScpLmNsYXNzTGlzdC50b2dnbGUoJ2NpLWFjdGl2ZScsIHJlYWR5KTsKICAgICQoJyNjaVBheUJ0bicpLmRpc2FibGVkID0gIXJlYWR5OwogIH0KICAKICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgLy8gRk9STSBIQU5ETElORyAod2l0aCBlbWFpbCBjb25uZWN0aW9uKQogIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBmdW5jdGlvbiBoYW5kbGVTdWJtaXQoZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKCFzZWxlY3RlZERhdGUgfHwgIXNlbGVjdGVkT2ZmZXIpIHsgYWxlcnQoJ1BsZWFzZSBzZWxlY3QgYSBkYXRlIGFuZCBzZXJ2aWNlLicpOyByZXR1cm47IH0KICAgIHZhciBmZCA9IG5ldyBGb3JtRGF0YSgkKCcjY2lGb3JtJykpOwogICAgdmFyIGRhdGEgPSBPYmplY3QuZnJvbUVudHJpZXMoZmQuZW50cmllcygpKTsKICAgIGlmICghZGF0YS5uYW1lIHx8ICFkYXRhLmVtYWlsIHx8ICFkYXRhLnBob25lIHx8ICFkYXRhLnBvc3Rjb2RlIHx8ICFkYXRhLmFkZHJlc3MgfHwgIWRhdGEudHlwZSkgewogICAgICBhbGVydCgnUGxlYXNlIGNvbXBsZXRlIGFsbCByZXF1aXJlZCBmaWVsZHMuJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICghdmFsaWRhdGVFbWFpbChkYXRhLmVtYWlsKSkgeyBhbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwuJyk7IHJldHVybjsgfQogICAgdmFyIHBvc3Rjb2RlUmVzdWx0ID0gY2hlY2tQb3N0Y29kZShkYXRhLnBvc3Rjb2RlKTsKICAgIGlmICghcG9zdGNvZGVSZXN1bHQudmFsaWQpIHsgYWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIFVLIHBvc3Rjb2RlLicpOyByZXR1cm47IH0KICAgIHZhciBmaW5hbFRvdGFsID0gc2VsZWN0ZWRPZmZlci5wcmljZTsKICAgIGlmIChpc091dE9mQXJlYSkgeyBmaW5hbFRvdGFsICs9IE9VVF9PRl9BUkVBX0ZFRTsgfQogICAgdmFyIHN1Ym1pdEJ0biA9ICQoJyNjaVJlcXVlc3RCdG4nKTsKICAgIHN1Ym1pdEJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAnU2VuZGluZy4uLic7CiAgICB2YXIgY2ZnID0gd2luZG93LmNpQm9va2luZ0NvbmZpZyB8fCB7fTsKICAgIHZhciBhamF4VXJsID0gY2ZnLmFqYXhVcmwgfHwgJy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCc7CiAgICB2YXIgbm9uY2UgPSBjZmcubm9uY2UgfHwgJyc7CiAgICB2YXIgZm9ybUJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ2FjdGlvbicsICdjaV9ib29raW5nX3JlcXVlc3QnKTsKICAgIGZvcm1Cb2R5LmFwcGVuZCgnY2lfbm9uY2UnLCBub25jZSk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ25hbWUnLCBkYXRhLm5hbWUpOwogICAgZm9ybUJvZHkuYXBwZW5kKCdlbWFpbCcsIGRhdGEuZW1haWwpOwogICAgZm9ybUJvZHkuYXBwZW5kKCdwaG9uZScsIGRhdGEucGhvbmUpOwogICAgZm9ybUJvZHkuYXBwZW5kKCdwb3N0Y29kZScsIGRhdGEucG9zdGNvZGUgfHwgJycpOwogICAgZm9ybUJvZHkuYXBwZW5kKCdhZGRyZXNzJywgZGF0YS5hZGRyZXNzKTsKICAgIGZvcm1Cb2R5LmFwcGVuZCgndHlwZScsIGRhdGEudHlwZSk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ2JlZHJvb21zJywgZGF0YS5iZWRyb29tcyB8fCAnJyk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ25vdGVzJywgZGF0YS5ub3RlcyB8fCAnJyk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ3NlcnZpY2UnLCBzZWxlY3RlZE9mZmVyLnRpdGxlKTsKICAgIGZvcm1Cb2R5LmFwcGVuZCgncHJpY2UnLCBmb3JtYXRNb25leShzZWxlY3RlZE9mZmVyLnByaWNlKSk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ2RhdGUnLCBmb3JtYXREYXRlKHNlbGVjdGVkRGF0ZSkpOwogICAgZm9ybUJvZHkuYXBwZW5kKCdpbmNsdWRlcycsIHNlbGVjdGVkT2ZmZXIuaW5jbHVkZXMuam9pbignLCAnKSk7CiAgICBmb3JtQm9keS5hcHBlbmQoJ291dE9mQXJlYScsIGlzT3V0T2ZBcmVhID8gJ3llcycgOiAnbm8nKTsKICAgIGZvcm1Cb2R5LmFwcGVuZCgndHJhdmVsRmVlJywgaXNPdXRPZkFyZWEgPyBPVVRfT0ZfQVJFQV9GRUUgOiAwKTsKICAgIGZvcm1Cb2R5LmFwcGVuZCgndG90YWwnLCBmb3JtYXRNb25leShmaW5hbFRvdGFsKSk7CiAgICBmZXRjaChhamF4VXJsLCB7CiAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LAogICAgICBib2R5OiBmb3JtQm9keS50b1N0cmluZygpCiAgICB9KQogICAgLnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29uKCk7IH0pCiAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgc3VibWl0QnRuLmRpc2FibGVkID0gZmFsc2U7CiAgICAgIHN1Ym1pdEJ0bi50ZXh0Q29udGVudCA9ICdSZXF1ZXN0IEJvb2tpbmcnOwogICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHsKICAgICAgICAkKCcjY2lGb3JtJykuY2xhc3NMaXN0LnJlbW92ZSgnY2ktYWN0aXZlJyk7CiAgICAgICAgJCgnI2NpU3VjY2VzcycpLmNsYXNzTGlzdC5hZGQoJ2NpLWFjdGl2ZScpOwogICAgICAgICQoJyNjaVN1Y2Nlc3MnKS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGFsZXJ0KCdJc3N1ZSBzZW5kaW5nIHJlcXVlc3Q6ICcgKyAocmVzdWx0LmRhdGEgfHwgJ1Vua25vd24gZXJyb3InKSk7CiAgICAgIH0KICAgIH0pCiAgICAuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CiAgICAgIHN1Ym1pdEJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogICAgICBzdWJtaXRCdG4udGV4dENvbnRlbnQgPSAnUmVxdWVzdCBCb29raW5nJzsKICAgICAgY29uc29sZS5sb2coJ0Nvbm5lY3Rpb24gaXNzdWU6JywgZXJyKTsKICAgICAgYWxlcnQoJ0Nvbm5lY3Rpb24gaXNzdWUuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY2FsbCB1cy4nKTsKICAgIH0pOwogIH0KICAKICBmdW5jdGlvbiBoYW5kbGVDYW5jZWwoKSB7CiAgICBzZWxlY3RlZERhdGUgPSBudWxsOwogICAgc2VsZWN0ZWRPZmZlciA9IG51bGw7CiAgICBpc091dE9mQXJlYSA9IGZhbHNlOwogICAgcG9zdGNvZGVDaGVja2VkID0gZmFsc2U7CiAgICAkJCgnLmNpLW9mZmVyLmNpLXNlbGVjdGVkJykuZm9yRWFjaChmdW5jdGlvbihlbCkgeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCdjaS1zZWxlY3RlZCcpOyB9KTsKICAgIHJlbmRlckNhbGVuZGFyKCk7CiAgICB1cGRhdGVTZWxlY3RlZERhdGVMYWJlbCgpOwogICAgdXBkYXRlQmFza2V0KCk7CiAgICAkKCcjY2lGb3JtJykucmVzZXQoKTsKICAgICQoJyNjaVBvc3Rjb2RlU3RhdHVzJykuY2xhc3NOYW1lID0gJ2NpLXBvc3Rjb2RlLXN0YXR1cyc7CiAgICAkKCcjY2lTdWNjZXNzJykuY2xhc3NMaXN0LnJlbW92ZSgnY2ktYWN0aXZlJyk7CiAgfQogIAogIC8qKgogICAqIFBheSBOb3cgaG9vayBmb3IgQnJhaW50cmVlIGludGVncmF0aW9uCiAgICovCiAgZnVuY3Rpb24gaGFuZGxlUGF5KCkgewogICAgaWYgKCFzZWxlY3RlZERhdGUgfHwgIXNlbGVjdGVkT2ZmZXIpIHsgYWxlcnQoJ1NlbGVjdCBhIGRhdGUgYW5kIHNlcnZpY2UgZmlyc3QuJyk7IHJldHVybjsgfQogICAgdmFyIGFtb3VudCA9IHNlbGVjdGVkT2ZmZXIucHJpY2U7CiAgICBpZiAoaXNPdXRPZkFyZWEpIHsgYW1vdW50ICs9IE9VVF9PRl9BUkVBX0ZFRTsgfQogICAgY29uc29sZS5sb2coJ1BheW1lbnQ6JywgeyBhbW91bnQ6IGFtb3VudCwgb2ZmZXI6IHNlbGVjdGVkT2ZmZXIsIGRhdGU6IHNlbGVjdGVkRGF0ZSwgb3V0T2ZBcmVhOiBpc091dE9mQXJlYSwgdHJhdmVsRmVlOiBpc091dE9mQXJlYSA/IE9VVF9PRl9BUkVBX0ZFRSA6IDAgfSk7CiAgICBhbGVydCgnQnJhaW50cmVlIGhvb2sgXHUyMDEzIGNvbm5lY3QgeW91ciBwYXltZW50IGZsb3cgaGVyZS4gQW1vdW50OiBcdTAwQTMnICsgYW1vdW50KTsKICB9CiAgCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIC8vIElOSVRJQUxJWkFUSU9OCiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIGZ1bmN0aW9uIGluaXQoKSB7CiAgICByZW5kZXJDYWxlbmRhcigpOwogICAgcmVuZGVyT2ZmZXJzKCk7CiAgICB1cGRhdGVCYXNrZXQoKTsKICAgICQoJyNjaVByZXZNb250aCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgIGN1cnJlbnRNb250aC5zZXRNb250aChjdXJyZW50TW9udGguZ2V0TW9udGgoKSAtIDEpOwogICAgICByZW5kZXJDYWxlbmRhcigpOwogICAgICB1cGRhdGVCYXNrZXQoKTsKICAgIH0pOwogICAgJCgnI2NpTmV4dE1vbnRoJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgY3VycmVudE1vbnRoLnNldE1vbnRoKGN1cnJlbnRNb250aC5nZXRNb250aCgpICsgMSk7CiAgICAgIHJlbmRlckNhbGVuZGFyKCk7CiAgICAgIHVwZGF0ZUJhc2tldCgpOwogICAgfSk7CiAgICAkJCgnLmNpLXRhYicpLmZvckVhY2goZnVuY3Rpb24odCkgeyB0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7IHNldFRhYih0LmRhdGFzZXQudGFiKTsgfSk7IH0pOwogICAgJCgnI2NpRm9ybScpLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGhhbmRsZVN1Ym1pdCk7CiAgICAkKCcjY2lDYW5jZWxCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNhbmNlbCk7CiAgICAkKCcjY2lQYXlCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZVBheSk7CiAgICB2YXIgcG9zdGNvZGVJbnB1dCA9ICQoJyNjaVBvc3Rjb2RlJyk7CiAgICBpZiAocG9zdGNvZGVJbnB1dCkgewogICAgICBwb3N0Y29kZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVQb3N0Y29kZUNoYW5nZSk7CiAgICAgIHBvc3Rjb2RlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jaGVja1RpbWVvdXQpOwogICAgICAgIHRoaXMuY2hlY2tUaW1lb3V0ID0gc2V0VGltZW91dChoYW5kbGVQb3N0Y29kZUNoYW5nZSwgNTAwKTsKICAgICAgfSk7CiAgICB9CiAgfQogIAogIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycpIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBpbml0KTsKICBlbHNlIGluaXQoKTsKCn0pKCk7Cjwvc2NyaXB0PgoKPC9kaXY+Cgo8IS0tIEVuZCBDbGljayBJbnZlbnRvcmllcyBDZXJ0aWZpY2F0ZSBCb29raW5nIFdpZGdldCB2Mi4wIC0tPg==[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]EPC + EICR + Gas Safety Certificate Bundle If you need an EPC + EICR + Gas Safety Certificate Bundle,…

    Learn More →

    Ready to work?

    Book now and await your inventory report!

    Book Your Inventory Now →