/** Shopify CDN: Minification failed

Line 7:27858 Unexpected "+656GAICgyMDI2LTA2LTIxKQ0KICAgICDphY3lpZfvvJpzZWN0aW9ucy9wcmV0dHN1bi1oZWFkZXIubGlxdWlkIOWKoOS6hiBoYW1idXJnZXIgKyBkcmF3ZXINCiAgICAg5b2x5ZON77ya5omA5pyJIHBhZ2Ugwrcg5Zug5Li6ICNoZWFkZXItZ3JvdXAg5piv5YWo5bGA5YWx5LqrDQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCg0KICAvKiAtLS0tLS0tLS0tIGhhbWJ1cmdlciBidXR0b24gKGhpZGRlbiBvbiBkZXNrdG9wKSAtLS0tLS0tLS0tICovDQogIC5uYXZfX2hhbWJ1cmdlciB7DQogICAgZGlzcGxheTogbm9uZTsNCiAgICB3aWR0aDogNDRweDsNCiAgICBoZWlnaHQ6IDQ0cHg7DQogICAgcGFkZGluZzogMTBweDsNCiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXI6IG5vbmU7DQogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpOw0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOw0KICB9DQogIC5uYXZfX2hhbWJ1cmdlcjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTg0LCA5MiwgNTgsIDAuMDgpOyB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyB7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIHdpZHRoOiAyMnB4Ow0KICAgIGhlaWdodDogMTZweDsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KICAubmF2X19oYW1idXJnZXItbGluZXMgc3BhbiB7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDA7DQogICAgd2lkdGg6IDEwMCU7DQogICAgaGVpZ2h0OiAxLjVweDsNCiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7DQogICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDIwMG1zIGVhc2UsIHRvcCAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOw0KICB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgxKSB7IHRvcDogMnB4OyB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgyKSB7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0NCiAgLm5hdl9faGFtYnVyZ2VyLWxpbmVzIHNwYW46bnRoLWNoaWxkKDMpIHsgdG9wOiBjYWxjKDEwMCUgLSAzLjVweCk7IH0NCg0KICAubmF2X19oYW1idXJnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgxKSB7DQogICAgdG9wOiA1MCU7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7DQogIH0NCiAgLm5hdl9faGFtYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9InRydWUiXSAubmF2X19oYW1idXJnZXItbGluZXMgc3BhbjpudGgtY2hpbGQoMikgew0KICAgIG9wYWNpdHk6IDA7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWCgwKTsNCiAgfQ0KICAubmF2X19oYW1idXJnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgzKSB7DQogICAgdG9wOiA1MCU7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpOw0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBkcmF3ZXIgcGFuZWwgKyBvdmVybGF5IC0tLS0tLS0tLS0gKi8NCiAgLm5hdi1kcmF3ZXIgew0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBpbnNldDogMCAwIDAgYXV0bzsNCiAgICB6LWluZGV4OiAxMTA7DQogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogIH0NCiAgLm5hdi1kcmF3ZXJbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0NCg0KICAubmF2LWRyYXdlcl9fcGFuZWwgew0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB0b3A6IDA7DQogICAgcmlnaHQ6IDA7DQogICAgYm90dG9tOiAwOw0KICAgIHdpZHRoOiAzMjBweDsNCiAgICBtYXgtd2lkdGg6IDg1dnc7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7DQogICAgYm94LXNoYWRvdzogLTE2cHggMCA0OHB4IHJnYmEoNDMsIDM2LCAyNCwgMC4xNik7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsNCiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsNCiAgICBwYWRkaW5nOiAwOw0KICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOw0KICB9DQogIC5uYXYtZHJhd2VyLmlzLW9wZW4geyBwb2ludGVyLWV2ZW50czogYXV0bzsgfQ0KICAubmF2LWRyYXdlci5pcy1vcGVuIC5uYXYtZHJhd2VyX19wYW5lbCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQ0KDQogIC5uYXYtZHJhd2VyX19oZWFkIHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgIHBhZGRpbmc6IDIwcHggMjRweDsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsNCiAgfQ0KICAubmF2LWRyYXdlcl9faGVhZCAubG9nbyB7IGZvbnQtc2l6ZTogMjBweDsgfQ0KICAubmF2LWRyYXdlcl9faGVhZCAubG9nb19fbWFyayB7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IGZvbnQtc2l6ZTogMThweDsgfQ0KDQogIC5uYXYtZHJhd2VyX19jbG9zZSB7DQogICAgd2lkdGg6IDQ0cHg7DQogICAgaGVpZ2h0OiA0NHB4Ow0KICAgIHBhZGRpbmc6IDA7DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyOiBub25lOw0KICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsKTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsNCiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsNCiAgfQ0KICAubmF2LWRyYXdlcl9fY2xvc2U6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE4NCwgOTIsIDU4LCAwLjA4KTsgfQ0KDQogIC5uYXYtZHJhd2VyX19uYXYgew0KICAgIGZsZXg6IDE7DQogICAgcGFkZGluZzogMjRweCAxNnB4Ow0KICB9DQogIC5uYXYtZHJhd2VyX19saW5rcyB7DQogICAgbGlzdC1zdHlsZTogbm9uZTsNCiAgICBtYXJnaW46IDA7DQogICAgcGFkZGluZzogMDsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCiAgLm5hdi1kcmF3ZXJfX2xpbmtzIGEgew0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgIHBhZGRpbmc6IDEycHggMTZweDsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsNCiAgICBmb250LXNpemU6IDIwcHg7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOw0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZSwgY29sb3IgMjAwbXMgZWFzZTsNCiAgfQ0KICAubmF2LWRyYXdlcl9fbGlua3MgYTpob3ZlciwNCiAgLm5hdi1kcmF3ZXJfX2xpbmtzIGE6Zm9jdXMtdmlzaWJsZSB7DQogICAgYmFja2dyb3VuZDogcmdiYSgxODQsIDkyLCA1OCwgMC4wOCk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICB9DQoNCiAgLm5hdi1kcmF3ZXJfX2N0YSB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWFyZ2luOiAxNnB4IDI0cHggMzJweDsNCiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXN1cmZhY2UpOw0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7DQogICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsNCiAgICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIGVhc2U7DQogIH0NCiAgLm5hdi1kcmF3ZXJfX2N0YTpob3ZlciB7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1ob3Zlcik7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOw0KICB9DQoNCiAgLm5hdi1kcmF3ZXJfX292ZXJsYXkgew0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBpbnNldDogMDsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQzLCAzNiwgMjQsIDAuNik7DQogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7DQogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTsNCiAgICB6LWluZGV4OiAxMDU7DQogICAgb3BhY2l0eTogMDsNCiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI4MG1zIGVhc2U7DQogIH0NCiAgLm5hdi1kcmF3ZXJfX292ZXJsYXlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0NCiAgLm5hdi1kcmF3ZXIuaXMtb3BlbiArIC5uYXYtZHJhd2VyX19vdmVybGF5IHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBtb2JpbGUtb25seSB0b2dnbGU6IGhhbWJ1cmdlciBzaG93cywgbmF2IGxpbmtzL2N0YSBoaWRlIC0tLS0tLS0tLS0gKi8NCiAgQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7DQogICAgLm5hdl9faGFtYnVyZ2VyIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IG9yZGVyOiA0OyB9DQogICAgLm5hdl9fY3RhIHsgZGlzcGxheTogbm9uZTsgfQ0KICAgIC5uYXZfX2xpbmtzIHsgZGlzcGxheTogbm9uZTsgfQ0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBzbWFsbCBtb2JpbGUgZHJhd2VyIHR3ZWFrcyAtLS0tLS0tLS0tICovDQogIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgew0KICAgIC5uYXYtZHJhd2VyX19wYW5lbCB7IHdpZHRoOiA5MHZ3OyB9DQogICAgLm5hdi1kcmF3ZXJfX2xpbmtzIGEgeyBmb250LXNpemU6IDE4cHg7IH0NCiAgfQ0KDQogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgUGhhc2UgMSDCtyDlhbHkuqvnp7vliqjnq6"
Line 288:3 Unexpected "="

**/
DQogIC8qIC0tLS0tLS0tLS0gZGVzaWduIHRva2VucyAoRGVtbyBBIMK3IEVhcnRoKSDigJQgVU5DSEFOR0VEIC0tLS0tLS0tLS0gKi8NCiAgOnJvb3Qgew0KICAgIC0tY29sb3ItcHJpbWFyeTogI0I4NUMzQTsNCiAgICAtLWNvbG9yLXByaW1hcnktaG92ZXI6ICM5QTRBMkQ7DQogICAgLS1jb2xvci1zZWNvbmRhcnk6ICM0QTZCNDc7DQogICAgLS1jb2xvci1hY2NlbnQ6ICNENEE1NzQ7DQogICAgLS1jb2xvci1iYWNrZ3JvdW5kOiAjRjVFRkU2Ow0KICAgIC0tY29sb3Itc3VyZmFjZTogI0ZBRjVFQzsNCiAgICAtLWNvbG9yLXN1cmZhY2UtYWx0OiAjRURFM0QyOw0KICAgIC0tY29sb3ItdGV4dC1wcmltYXJ5OiAjMkIyNDE4Ow0KICAgIC0tY29sb3ItdGV4dC1zZWNvbmRhcnk6ICM2QjVENEE7DQogICAgLS1jb2xvci10ZXh0LW11dGVkOiAjOUE4RTdBOw0KICAgIC0tY29sb3ItYm9yZGVyOiAjRDlDRkMwOw0KICAgIC0tY29sb3ItYm9yZGVyLXN0cm9uZzogI0E4OUE4MjsNCg0KICAgIC0tZm9udC1oZWFkaW5nOiBGcmF1bmNlcywgIkNvcm1vcmFudCBHYXJhbW9uZCIsICJJb3dhbiBPbGQgU3R5bGUiLCBHZW9yZ2lhLCBzZXJpZjsNCiAgICAtLWZvbnQtYm9keTogIlNvdXJjZSBTZXJpZiA0IiwgIklvd2FuIE9sZCBTdHlsZSIsICJQYWxhdGlubyBMaW5vdHlwZSIsIEdlb3JnaWEsIHNlcmlmOw0KICAgIC0tZm9udC1zY3JpcHQ6ICJDYXZlYXQiLCAiQnJhZGxleSBIYW5kIiwgIlNlZ29lIFNjcmlwdCIsIGN1cnNpdmU7DQogICAgLS1mb250LW1vbm86IHVpLW1vbm9zcGFjZSwgIlNGIE1vbm8iLCAiQ2FzY2FkaWEgTW9ubyIsIG1vbm9zcGFjZTsNCg0KICAgIC0tc3BhY2UtMTogNHB4Ow0KICAgIC0tc3BhY2UtMjogOHB4Ow0KICAgIC0tc3BhY2UtMzogMTJweDsNCiAgICAtLXNwYWNlLTQ6IDE2cHg7DQogICAgLS1zcGFjZS02OiAyNHB4Ow0KICAgIC0tc3BhY2UtODogMzJweDsNCiAgICAtLXNwYWNlLTEyOiA0OHB4Ow0KICAgIC0tc3BhY2UtMTY6IDY0cHg7DQogICAgLS1zcGFjZS0yNDogOTZweDsNCiAgICAtLXNwYWNlLTMyOiAxMjhweDsNCg0KICAgIC0tY29udGFpbmVyOiAxMTgwcHg7DQogICAgLS1yYWRpdXMtcGlsbDogOTk5cHg7DQogICAgLS1yYWRpdXMtY2FyZDogMjBweDsNCiAgfQ0KDQogIC8qIC0tLS0tLS0tLS0gYmFzZSAtLS0tLS0tLS0tICovDQogICosDQogICo6OmJlZm9yZSwNCiAgKjo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgaHRtbCB7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0NCg0KICBib2R5IHsNCiAgICBtYXJnaW46IDA7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7DQogICAgZm9udC1zaXplOiAxN3B4Ow0KICAgIGxpbmUtaGVpZ2h0OiAxLjY1Ow0KICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOw0KICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7DQogIH0NCg0KICA6OnNlbGVjdGlvbiB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBjb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZSk7IH0NCg0KICBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KICBpbWcsIHN2ZyB7IG1heC13aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2s7IH0NCiAgYnV0dG9uIHsgZm9udDogaW5oZXJpdDsgY3Vyc29yOiBwb2ludGVyOyB9DQoNCiAgLndyYXAgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXIpOyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMCAzMnB4OyB9DQoNCiAgLyogLS0tLS0tLS0tLSBuYXYgLS0tLS0tLS0tLSAqLw0KICAjaGVhZGVyLWdyb3VwIHsNCiAgICBwb3NpdGlvbjogc3RpY2t5Ow0KICAgIHRvcDogMDsNCiAgICB6LWluZGV4OiA1MDsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMjM5LCAyMzAsIDAuODUpOw0KICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTQwJSkgYmx1cigxMHB4KTsNCiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTQwJSkgYmx1cigxMHB4KTsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsNCiAgfQ0KICAubmF2IHsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxOyB9DQogIC5uYXZfX2lubmVyIHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgIHBhZGRpbmc6IDIwcHggMDsNCiAgfQ0KICAubG9nbyB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGdhcDogMTBweDsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsNCiAgICBmb250LXdlaWdodDogNTAwOw0KICAgIGZvbnQtc2l6ZTogMjJweDsNCiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpOw0KICB9DQogIC5sb2dvX19tYXJrIHsNCiAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlKTsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zY3JpcHQpOw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBsaW5lLWhlaWdodDogMTsNCiAgfQ0KICAubmF2X19saW5rcyB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGdhcDogMzZweDsNCiAgICBsaXN0LXN0eWxlOiBub25lOw0KICAgIG1hcmdpbjogMDsgcGFkZGluZzogMDsNCiAgICBmb250LXNpemU6IDE0cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTsNCiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7DQogIH0NCiAgLm5hdl9fbGlua3MgYSB7IHBhZGRpbmc6IDRweCAwOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyODBtcyBlYXNlOyB9DQogIC5uYXZfX2xpbmtzIGE6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9DQogIC5uYXZfX2N0YSB7DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7DQogICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpOw0KICAgIHBhZGRpbmc6IDEwcHggMjJweDsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07DQogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMyMG1zIGVhc2UsIGNvbG9yIDMyMG1zIGVhc2U7DQogIH0NCiAgLm5hdl9fY3RhOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTsgY29sb3I6IHZhcigtLWNvbG9yLXN1cmZhY2UpOyB9DQoNCiAgLyogLS0tLS0tLS0tLSBoZXJvIC0tLS0tLS0tLS0gKi8NCiAgLmhlcm8gew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBwYWRkaW5nOiA5NnB4IDAgMTIwcHg7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICBiYWNrZ3JvdW5kOg0KICAgICAgcmFkaWFsLWdyYWRpZW50KDEyMDBweCA2MDBweCBhdCA4MCUgLTEwJSwgcmdiYSgyMTIsIDE2NSwgMTE2LCAwLjQ1KSwgdHJhbnNwYXJlbnQgNjAlKSwNCiAgICAgIHJhZGlhbC1ncmFkaWVudCg5MDBweCA1MDBweCBhdCAwJSAxMTAlLCByZ2JhKDc0LCAxMDcsIDcxLCAwLjE4KSwgdHJhbnNwYXJlbnQgNjAlKSwNCiAgICAgIHZhcigtLWNvbG9yLWJhY2tncm91bmQpOw0KICB9DQogIC5oZXJvX19zZWFsIHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgdG9wOiA2NHB4OyByaWdodDogLTQwcHg7DQogICAgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDIyMHB4Ow0KICAgIGJvcmRlcjogMS41cHggZGFzaGVkIHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOw0KICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMmRlZyk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNjcmlwdCk7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGxpbmUtaGVpZ2h0OiAxLjI7DQogICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIG9wYWNpdHk6IDAuNzU7DQogIH0NCiAgLmhlcm9fX3NlYWwgYiB7IGRpc3BsYXk6IGJsb2NrOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsgZm9udC1zaXplOiAxNHB4OyBsZXR0ZXItc3BhY2luZzogMC4xOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDogNTAwOyB9DQoNCiAgLmhlcm9fX2V5ZWJyb3cgew0KICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgZ2FwOiAxMHB4Ow0KICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1cmZhY2UtYWx0KTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTsNCiAgICBwYWRkaW5nOiA2cHggMTRweDsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1zaXplOiAxM3B4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07DQogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgfQ0KICAuaGVyb19fZXllYnJvdzo6YmVmb3JlIHsgY29udGVudDogIiI7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgYm9yZGVyLXJhZGl1czogNTAlOyB9DQogIC5oZXJvX190aXRsZSB7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7DQogICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICBmb250LXNpemU6IGNsYW1wKDQ4cHgsIDh2dywgMTI4cHgpOw0KICAgIGxpbmUtaGVpZ2h0OiAxLjAyOw0KICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtOw0KICAgIG1hcmdpbjogMjRweCAwIDMycHg7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7DQogICAgbWF4LXdpZHRoOiAxNGNoOw0KICB9DQogIC5oZXJvX190aXRsZSBlbSB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9DQogIC5oZXJvX19sZWRlIHsNCiAgICBtYXgtd2lkdGg6IDUyY2g7DQogICAgZm9udC1zaXplOiAyMHB4Ow0KICAgIGxpbmUtaGVpZ2h0OiAxLjY7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsNCiAgICBtYXJnaW46IDAgMCA0MHB4Ow0KICB9DQogIC5oZXJvX19hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDE2cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0NCiAgLmJ0bi1wcmltYXJ5IHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZSk7DQogICAgYm9yZGVyOiBub25lOw0KICAgIHBhZGRpbmc6IDE2cHggMzJweDsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsNCiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMyMG1zIGVhc2UsIHRyYW5zZm9ybSAzMjBtcyBlYXNlLCBib3gtc2hhZG93IDMyMG1zIGVhc2U7DQogIH0NCiAgLmJ0bi1wcmltYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1ob3Zlcik7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE4NCwgOTIsIDU4LCAwLjE4KTsgfQ0KICAuYnRuLXNlY29uZGFyeSB7DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7DQogICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpOw0KICAgIHBhZGRpbmc6IDE2cHggMzJweDsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1zaXplOiAxNXB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsNCiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMyMG1zIGVhc2UsIGNvbG9yIDMyMG1zIGVhc2U7DQogIH0NCiAgLmJ0bi1zZWNvbmRhcnk6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpOyBjb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZSk7IH0NCg0KICAuaGVyb19fc2lnbmF0dXJlIHsNCiAgICBtYXJnaW4tdG9wOiA1NnB4Ow0KICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNjcmlwdCk7DQogICAgZm9udC1zaXplOiAzMnB4Ow0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgICBsaW5lLWhlaWdodDogMS4yOw0KICB9DQogIC5oZXJvX19zaWduYXR1cmUgc21hbGwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtYm9keSk7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOiA0cHg7IH0NCg0KICAvKiAtLS0tLS0tLS0tIGNoYXB0ZXIgYnJlYWsgLS0tLS0tLS0tLSAqLw0KICAuY2hhcHRlciB7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIG1pbi1oZWlnaHQ6IDI4MHB4Ow0KICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNvbG9yLWJhY2tncm91bmQpLCB2YXIoLS1jb2xvci1zdXJmYWNlLWFsdCkpOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQogIH0NCiAgLmNoYXB0ZXI6OmJlZm9yZSB7DQogICAgY29udGVudDogIiI7DQogICAgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAzMCUsIHJnYmEoMTU0LCAxMzgsIDEyMiwgMC4xOCkgMXB4LCB0cmFuc3BhcmVudCAxLjVweCksDQogICAgICAgICAgICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA3MCUgNjAlLCByZ2JhKDE1NCwgMTM4LCAxMjIsIDAuMTIpIDFweCwgdHJhbnNwYXJlbnQgMS41cHgpLA0KICAgICAgICAgICAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNDAlIDgwJSwgcmdiYSgxNTQsIDEzOCwgMTIyLCAwLjE2KSAxcHgsIHRyYW5zcGFyZW50IDEuNXB4KTsNCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweCwgNDhweCA0OHB4LCAyNHB4IDI0cHg7DQogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogIH0NCiAgLmNoYXB0ZXJfX2lubmVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiA4MHB4IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQ0KICAuY2hhcHRlcl9fc2NyaXB0IHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2NyaXB0KTsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBmb250LXNpemU6IDU2cHg7IGxpbmUtaGVpZ2h0OiAxLjE7IG1hcmdpbjogMCAwIDhweDsgfQ0KICAuY2hhcHRlcl9fY2FwdGlvbiB7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbXV0ZWQpOyB9DQoNCiAgLyogLS0tLS0tLS0tLSBzdG9yeSBzZWN0aW9uIC0tLS0tLS0tLS0gKi8NCiAgLnN0b3J5IHsgcGFkZGluZzogMTYwcHggMDsgfQ0KICAuc3RvcnlfX2dyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiA2NHB4OyBtYXgtd2lkdGg6IDg4MHB4OyBtYXJnaW46IDAgYXV0bzsgdGV4dC1hbGlnbjogbGVmdDsgfQ0KICAuc3RvcnlfX2tpY2tlciB7IGZvbnQtc2l6ZTogMTNweDsgbGV0dGVyLXNwYWNpbmc6IDAuMThlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7IG1hcmdpbi1ib3R0b206IDE2cHg7IH0NCiAgLnN0b3J5X19oMiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDQwcHgsIDV2dywgNzJweCk7IGxpbmUtaGVpZ2h0OiAxLjE7IGxldHRlci1zcGFjaW5nOiAtMC4wMWVtOyBtYXJnaW46IDAgMCAzMnB4OyB9DQogIC5zdG9yeV9fcCB7IGZvbnQtc2l6ZTogMjBweDsgbGluZS1oZWlnaHQ6IDEuNjU7IGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbjogMCAwIDI0cHg7IG1heC13aWR0aDogNjBjaDsgfQ0KICAuc3RvcnlfX3F1b3RlIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2NyaXB0KTsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBmb250LXNpemU6IDQwcHg7IGxpbmUtaGVpZ2h0OiAxLjI1OyBtYXJnaW46IDQwcHggMDsgcGFkZGluZy1sZWZ0OiAzMnB4OyBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWFjY2VudCk7IH0NCg0KICAuc3RvcnlfX2xlYWYgeyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7IG1hcmdpbjogMjRweCAwOyB9DQoNCiAgLyogLS0tLS0tLS0tLSBmaXJtbmVzcyBzZWN0aW9uICgzIHZlcnRpY2FsIGNhcmRzKSAtLS0tLS0tLS0tICovDQogIC5maXJtIHsgcGFkZGluZzogODBweCAwIDE2MHB4OyB9DQogIC5maXJtX19oZWFkIHsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiA5NnB4OyB9DQogIC5maXJtX19raWNrZXIgeyBmb250LXNpemU6IDEzcHg7IGxldHRlci1zcGFjaW5nOiAwLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpOyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9DQogIC5maXJtX19oMiB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOyBmb250LXdlaWdodDogNDAwOyBmb250LXNpemU6IGNsYW1wKDQwcHgsIDV2dywgNjRweCk7IGxpbmUtaGVpZ2h0OiAxLjE7IG1hcmdpbjogMCAwIDI0cHg7IH0NCiAgLmZpcm1fX2xlZGUgeyBtYXgtd2lkdGg6IDYwY2g7IG1hcmdpbjogMCBhdXRvOyBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpOyBmb250LXNpemU6IDE5cHg7IH0NCg0KICAuZmlybV9fY2FyZHMgeyBkaXNwbGF5OiBncmlkOyBnYXA6IDY0cHg7IH0NCiAgLmZpcm0tY2FyZCB7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7DQogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtY2FyZCk7DQogICAgcGFkZGluZzogNTZweDsNCiAgICBkaXNwbGF5OiBncmlkOw0KICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xZnIgMWZyOw0KICAgIGdhcDogNjRweDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDQzLCAzNiwgMjQsIDAuMDQpLCAwIDhweCAyNHB4IHJnYmEoNDMsIDM2LCAyNCwgMC4wNCk7DQogICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAzMjBtcyBlYXNlLCB0cmFuc2Zvcm0gMzIwbXMgZWFzZTsNCiAgfQ0KICAuZmlybS1jYXJkOmhvdmVyIHsgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDQzLCAzNiwgMjQsIDAuMDYpLCAwIDIwcHggNDhweCByZ2JhKDQzLCAzNiwgMjQsIDAuMDgpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH0NCg0KICAuZmlybS1jYXJkX192aXN1YWwgew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBhc3BlY3QtcmF0aW86IDQgLyA1Ow0KICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1jYXJkKTsNCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTUwZGVnLCAjRkFGNUVDIDAlLCAjRURFM0QyIDUwJSwgI0Q0QTU3NCAxMTAlKTsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICB9DQogIC5maXJtLWNhcmRfX3Zpc3VhbDo6YWZ0ZXIgew0KICAgIGNvbnRlbnQ6ICIiOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7DQogICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzMCUgMzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNiksIHRyYW5zcGFyZW50IDU1JSk7DQogIH0NCiAgLmZpcm0tY2FyZF9fbnVtIHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgdG9wOiAyNHB4OyBsZWZ0OiAyNHB4Ow0KICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNjcmlwdCk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICAgIGZvbnQtc2l6ZTogMjhweDsNCiAgICBsaW5lLWhlaWdodDogMTsNCiAgfQ0KICAuZmlybS1jYXJkX19zZWFsIHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgYm90dG9tOiAyNHB4OyByaWdodDogMjRweDsNCiAgICB3aWR0aDogOTZweDsgaGVpZ2h0OiA5NnB4Ow0KICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAwLjEyZW07DQogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsNCiAgICBsaW5lLWhlaWdodDogMS4yOw0KICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNDUsIDIzNiwgMC43KTsNCiAgfQ0KICAuZmlybS1jYXJkX190YWcgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdXJmYWNlLWFsdCk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7DQogICAgcGFkZGluZzogNHB4IDEycHg7DQogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpOw0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtOw0KICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQogICAgbWFyZ2luLWJvdHRvbTogMTZweDsNCiAgfQ0KICAuZmlybS1jYXJkX190aXRsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOyBmb250LXdlaWdodDogNTAwOyBmb250LXNpemU6IDQwcHg7IGxpbmUtaGVpZ2h0OiAxLjE7IG1hcmdpbjogMCAwIDE2cHg7IH0NCiAgLmZpcm0tY2FyZF9fbGVkZSB7IGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXNlY29uZGFyeSk7IGZvbnQtc2l6ZTogMTdweDsgbGluZS1oZWlnaHQ6IDEuNjsgbWFyZ2luOiAwIDAgMjRweDsgfQ0KICAuZmlybS1jYXJkX19zcGVjcyB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMCAwIDMycHg7IHBhZGRpbmc6IDA7IGRpc3BsYXk6IGdyaWQ7IGdhcDogMTJweDsgfQ0KICAuZmlybS1jYXJkX19zcGVjcyBsaSB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBwYWRkaW5nLWJvdHRvbTogMTBweDsgZm9udC1zaXplOiAxNXB4OyB9DQogIC5maXJtLWNhcmRfX3NwZWNzIHNwYW4geyBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1tdXRlZCk7IGxldHRlci1zcGFjaW5nOiAwLjA2ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtc2l6ZTogMTJweDsgfQ0KICAuZmlybS1jYXJkX19zcGVjcyBiIHsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7IH0NCg0KICAvKiAtLS0tLS0tLS0tIHRydXN0IHJvdyAtLS0tLS0tLS0tICovDQogIC50cnVzdCB7IHBhZGRpbmc6IDk2cHggMDsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfQ0KICAudHJ1c3RfX3JvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7IGdhcDogMzJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9DQogIC50cnVzdF9faXRlbSB7IHBhZGRpbmc6IDE2cHg7IH0NCiAgLnRydXN0X19pY29uIHsgd2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgbWFyZ2luOiAwIGF1dG8gMTZweDsgfQ0KICAudHJ1c3RfX2xhYmVsIHsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsgfQ0KICAudHJ1c3RfX3N1YiB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOiA0cHg7IH0NCg0KICAvKiAtLS0tLS0tLS0tIDEwMC1uaWdodCAvIDEwLXllYXIgKHR3byBjaXJjdWxhciB2aXN1YWxzKSAtLS0tLS0tLS0tICovDQogIC5wcm9taXNlIHsgcGFkZGluZzogMTYwcHggMDsgfQ0KICAucHJvbWlzZV9fZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiA4MHB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9DQogIC5wcm9taXNlX192aXN1YWwgeyBhc3BlY3QtcmF0aW86IDEgLyAxOyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNjBkZWcsICNENEE1NzQgMCUsICNCODVDM0EgMTAwJSk7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogZ3JpZDsgcGxhY2UtaXRlbXM6IGNlbnRlcjsgY29sb3I6IHZhcigtLWNvbG9yLXN1cmZhY2UpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCiAgLnByb21pc2VfX3Zpc3VhbC0tYWx0IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2MGRlZywgIzRBNkI0NyAwJSwgIzJCMjQxOCAxMDAlKTsgfQ0KICAucHJvbWlzZV9fYmlnIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7IGZvbnQtc2l6ZTogY2xhbXAoNjRweCwgOHZ3LCAxMjBweCk7IGZvbnQtd2VpZ2h0OiA0MDA7IGxpbmUtaGVpZ2h0OiAxOyBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTsgfQ0KICAucHJvbWlzZV9fc21hbGwgeyBmb250LXNpemU6IDE0cHg7IGxldHRlci1zcGFjaW5nOiAwLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi10b3A6IDEycHg7IG9wYWNpdHk6IDAuODU7IH0NCiAgLnByb21pc2VfX2JvZHkgaDMgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDUwMDsgZm9udC1zaXplOiA0MHB4OyBtYXJnaW46IDAgMCAyNHB4OyBsaW5lLWhlaWdodDogMS4xNTsgfQ0KICAucHJvbWlzZV9fYm9keSBwIHsgZm9udC1zaXplOiAxOXB4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpOyBtYXJnaW46IDAgMCAxNnB4OyB9DQogIC5wcm9taXNlX19saXN0IHsgbGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzogMDsgbWFyZ2luOiAyNHB4IDAgMDsgfQ0KICAucHJvbWlzZV9fbGlzdCBsaSB7IHBhZGRpbmc6IDEycHggMCAxMnB4IDMycHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBwb3NpdGlvbjogcmVsYXRpdmU7IGZvbnQtc2l6ZTogMTZweDsgfQ0KICAucHJvbWlzZV9fbGlzdCBsaTo6YmVmb3JlIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAxOXB4OyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpOyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgLnByb21pc2VfX2xpc3QgbGk6OmFmdGVyIHsgY29udGVudDogIiI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNHB4OyB0b3A6IDIzcHg7IHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgYm9yZGVyLXJhZGl1czogNTAlOyB9DQoNCiAgLyogLS0tLS0tLS0tLSBjZXJ0aWZpY2F0aW9ucyByb3cgLS0tLS0tLS0tLSAqLw0KICAuY2VydHMgeyBwYWRkaW5nOiA4MHB4IDA7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1cmZhY2UtYWx0KTsgfQ0KICAuY2VydHNfX2hlYWQgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDQ4cHg7IH0NCiAgLmNlcnRzX19oMyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOyBmb250LXdlaWdodDogNTAwOyBmb250LXNpemU6IDMycHg7IG1hcmdpbjogMCAwIDEycHg7IH0NCiAgLmNlcnRzX19zdWIgeyBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpOyBmb250LXNpemU6IDE2cHg7IG1heC13aWR0aDogNTBjaDsgbWFyZ2luOiAwIGF1dG87IH0NCiAgLmNlcnRzX19yb3cgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMzJweDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0NCiAgLmNlcnQgeyB3aWR0aDogOTZweDsgaGVpZ2h0OiA5NnB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5KTsgYm9yZGVyLXJhZGl1czogNTAlOyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgcGFkZGluZzogMTJweDsgfQ0KICAuY2VydCBzbWFsbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOiAwLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxpbmUtaGVpZ2h0OiAxLjI7IH0NCiAgLmNlcnQgYiB7IGRpc3BsYXk6IGJsb2NrOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsgZm9udC1zaXplOiAxMnB4OyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB9DQoNCiAgLyogLS0tLS0tLS0tLSBGQVEgLS0tLS0tLS0tLSAqLw0KICAuZmFxIHsgcGFkZGluZzogMTYwcHggMDsgbWF4LXdpZHRoOiA4ODBweDsgbWFyZ2luOiAwIGF1dG87IH0NCiAgLmZhcV9faDIgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDQwMDsgZm9udC1zaXplOiBjbGFtcCg0MHB4LCA1dncsIDY0cHgpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbjogMCAwIDI0cHg7IH0NCiAgLmZhcV9fbGVkZSB7IHRleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luOiAwIDAgNjRweDsgfQ0KICAuZmFxX19pdGVtIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH0NCiAgLmZhcV9faXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH0NCiAgLmZhcV9fcSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZDogbm9uZTsNCiAgICBib3JkZXI6IG5vbmU7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCiAgICBwYWRkaW5nOiAyOHB4IDA7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7DQogICAgZm9udC1zaXplOiAyMnB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtcHJpbWFyeSk7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICBnYXA6IDE2cHg7DQogIH0NCiAgLmZhcV9fcTo6YWZ0ZXIgew0KICAgIGNvbnRlbnQ6ICIrIjsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsNCiAgICBmb250LXNpemU6IDI4cHg7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyBlYXNlOw0KICB9DQogIC5mYXFfX3FbYXJpYS1leHBhbmRlZD0idHJ1ZSJdOjphZnRlciB7IGNvbnRlbnQ6ICLiiJIiOyB9DQogIC5mYXFfX2Egew0KICAgIG1heC1oZWlnaHQ6IDA7DQogICAgb3ZlcmZsb3c6IGhpZGRlbjsNCiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDQyMG1zIGVhc2UsIHBhZGRpbmcgMjgwbXMgZWFzZTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1zZWNvbmRhcnkpOw0KICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICBsaW5lLWhlaWdodDogMS42NTsNCiAgfQ0KICAuZmFxX19hLmlzLW9wZW4geyBtYXgtaGVpZ2h0OiAzNjBweDsgcGFkZGluZzogMCAwIDI4cHg7IH0NCg0KICAvKiAtLS0tLS0tLS0tIGZvb3RlciAtLS0tLS0tLS0tICovDQogIGZvb3RlciB7DQogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyZGVnLCAjNEE2QjQ3IDAlLCAjMkIyNDE4IDEwMCUpOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlKTsNCiAgICBwYWRkaW5nOiA5NnB4IDAgMzJweDsNCiAgfQ0KICAuZm9vdGVyX19yb3cgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuNGZyIDFmciAxZnIgMWZyOyBnYXA6IDY0cHg7IGFsaWduLWl0ZW1zOiBzdGFydDsgfQ0KICAuZm9vdGVyX19icmFuZCBoNCB7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBmb250LXNpemU6IDI4cHg7DQogICAgbWFyZ2luOiAwIDAgMTZweDsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgZ2FwOiAxMnB4Ow0KICB9DQogIC5mb290ZXJfX2JyYW5kIC5sb2dvX19tYXJrIHsNCiAgICB3aWR0aDogMzZweDsNCiAgICBoZWlnaHQ6IDM2cHg7DQogICAgZm9udC1zaXplOiAyMnB4Ow0KICB9DQogIC5mb290ZXJfX2JyYW5kIHAgew0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICBsaW5lLWhlaWdodDogMS42NTsNCiAgICBjb2xvcjogcmdiYSgyNTAsIDI0NSwgMjM2LCAwLjc4KTsNCiAgICBtYXgtd2lkdGg6IDM0MHB4Ow0KICB9DQogIC5mb290ZXJfX2JyYW5kIHAgeyBjb2xvcjogcmdiYSgyNTAsIDI0NSwgMjM2LCAwLjcpOyBmb250LXNpemU6IDE1cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IG1heC13aWR0aDogMzJjaDsgfQ0KICAuZm9vdGVyX19jb2wgaDUgeyBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOiAwLjE4ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbjogMCAwIDE2cHg7IGNvbG9yOiByZ2JhKDI1MCwgMjQ1LCAyMzYsIDAuNTUpOyB9DQogIC5mb290ZXJfX2NvbCB1bCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgZGlzcGxheTogZ3JpZDsgZ2FwOiA4cHg7IGZvbnQtc2l6ZTogMTRweDsgfQ0KICAuZm9vdGVyX19jb2wgYSB7IGNvbG9yOiByZ2JhKDI1MCwgMjQ1LCAyMzYsIDAuODUpOyB0cmFuc2l0aW9uOiBjb2xvciAyMjBtcyBlYXNlOyB9DQogIC5mb290ZXJfX2NvbCBhOmhvdmVyIHsgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7IH0NCiAgLmZvb3Rlcl9fc2NyaXB0IHsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc2NyaXB0KTsNCiAgICBjb2xvcjogcmdiYSgyNTAsIDI0NSwgMjM2LCAwLjg1KTsNCiAgICBmb250LXNpemU6IDQ4cHg7DQogICAgbGluZS1oZWlnaHQ6IDE7DQogICAgbWFyZ2luLXRvcDogODBweDsNCiAgfQ0KICAuZm9vdGVyX19iYXIgew0KICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICBtYXJnaW4tdG9wOiAzMnB4OyBwYWRkaW5nLXRvcDogMzJweDsNCiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTAsIDI0NSwgMjM2LCAwLjEyKTsNCiAgICBmb250LXNpemU6IDEycHg7IGxldHRlci1zcGFjaW5nOiAwLjA0ZW07DQogICAgY29sb3I6IHJnYmEoMjUwLCAyNDUsIDIzNiwgMC41NSk7DQogIH0NCg0KICAvKiAtLS0tLS0tLS0tIHJlc3BvbnNpdmUgLS0tLS0tLS0tLSAqLw0KICBAbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHsNCiAgICAuZmlybS1jYXJkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IHBhZGRpbmc6IDQwcHg7IGdhcDogMzJweDsgfQ0KICAgIC5wcm9taXNlX19ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogNDhweDsgfQ0KICAgIC5mb290ZXJfX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiA0MHB4OyB9DQogICAgLm5hdl9fbGlua3MgeyBkaXNwbGF5OiBub25lOyB9DQogIH0NCiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7DQogICAgLndyYXAgeyBwYWRkaW5nOiAwIDI0cHg7IH0NCiAgICAuaGVybyB7IHBhZGRpbmc6IDY0cHggMCA4MHB4OyB9DQogICAgLnN0b3J5LCAucHJvbWlzZSwgLmZhcSB7IHBhZGRpbmc6IDgwcHggMDsgfQ0KICAgIC5maXJtIHsgcGFkZGluZzogNDBweCAwIDgwcHg7IH0NCiAgICAudHJ1c3RfX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgfQ0KICAgIC5mb290ZXJfX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IDMycHg7IH0NCiAgICAuaGVyb19fc2VhbCB7IGRpc3BsYXk6IG5vbmU7IH0NCiAgfQ0KDQogIC8qIC0tLS0tLS0tLS0gZm9jdXMgcmluZyAtLS0tLS0tLS0tICovDQogIDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnkpOyBvdXRsaW5lLW9mZnNldDogM3B4OyBib3JkZXItcmFkaXVzOiA2cHg7IH0NCg0KICAvKiA9PT09PSBDVEEgYWRkaXRpb25zOiBzdGlja3kgYWRkIGJhciA9PT09PSAqLw0KICAuc3RpY2t5LWJhciB7DQogICAgcG9zaXRpb246IGZpeGVkOw0KICAgIGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7DQogICAgei1pbmRleDogMTAwOw0KICAgIGJhY2tncm91bmQ6IHJnYmEoMjUwLCAyNDUsIDIzNiwgMC45NSk7DQogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOw0KICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpOw0KICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOw0KICAgIHBhZGRpbmc6IDEycHggMjRweDsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgIGdhcDogMTZweDsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7DQogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMyMG1zIGVhc2U7DQogIH0NCiAgLnN0aWNreS1iYXIuaXMtdmlzaWJsZSB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICB9DQogIC5zdGlja3ktYmFyX19pbmZvIHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgZ2FwOiAxMnB4Ow0KICB9DQogIC5zdGlja3ktYmFyX19uYW1lIHsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsNCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsNCiAgfQ0KICAuc3RpY2t5LWJhcl9fcHJpY2Ugew0KICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LXdlaWdodDogNjAwOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgfQ0KICAuc3RpY2t5LWJhcl9fYnRuIHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3VyZmFjZSk7DQogICAgYm9yZGVyOiBub25lOw0KICAgIHBhZGRpbmc6IDE0cHggMjhweDsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1zaXplOiAxNHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyODBtcyBlYXNlLCB0cmFuc2Zvcm0gMjgwbXMgZWFzZTsNCiAgfQ0KICAuc3RpY2t5LWJhcl9fYnRuOmhvdmVyIHsNCiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWhvdmVyKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7DQogIH0NCiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7DQogICAgLnN0aWNreS1iYXIgeyBwYWRkaW5nOiAxMHB4IDE2cHg7IH0NCiAgICAuc3RpY2t5LWJhcl9fbmFtZSB7IGZvbnQtc2l6ZTogMTRweDsgfQ0KICAgIC5zdGlja3ktYmFyX19wcmljZSB7IGZvbnQtc2l6ZTogMTdweDsgfQ0KICAgIC5zdGlja3ktYmFyX19idG4geyBwYWRkaW5nOiAxMnB4IDIwcHg7IGZvbnQtc2l6ZTogMTNweDsgfQ0KICB9DQoNCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgICBQaGFzZSAxIMK3IE1vYmlsZSBuYXYgZHJhd2VyICsg5YWx5Lqr5ZON5bqU5byP5Z+656GAICgyMDI2LTA2LTIxKQ0KICAgICDphY3lpZfvvJpzZWN0aW9ucy9wcmV0dHN1bi1oZWFkZXIubGlxdWlkIOWKoOS6hiBoYW1idXJnZXIgKyBkcmF3ZXINCiAgICAg5b2x5ZON77ya5omA5pyJIHBhZ2Ugwrcg5Zug5Li6ICNoZWFkZXItZ3JvdXAg5piv5YWo5bGA5YWx5LqrDQogICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCg0KICAvKiAtLS0tLS0tLS0tIGhhbWJ1cmdlciBidXR0b24gKGhpZGRlbiBvbiBkZXNrdG9wKSAtLS0tLS0tLS0tICovDQogIC5uYXZfX2hhbWJ1cmdlciB7DQogICAgZGlzcGxheTogbm9uZTsNCiAgICB3aWR0aDogNDRweDsNCiAgICBoZWlnaHQ6IDQ0cHg7DQogICAgcGFkZGluZzogMTBweDsNCiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXI6IG5vbmU7DQogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpOw0KICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpOw0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyMDBtcyBlYXNlOw0KICB9DQogIC5uYXZfX2hhbWJ1cmdlcjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMTg0LCA5MiwgNTgsIDAuMDgpOyB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyB7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIHdpZHRoOiAyMnB4Ow0KICAgIGhlaWdodDogMTZweDsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KICAubmF2X19oYW1idXJnZXItbGluZXMgc3BhbiB7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDA7DQogICAgd2lkdGg6IDEwMCU7DQogICAgaGVpZ2h0OiAxLjVweDsNCiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7DQogICAgYm9yZGVyLXJhZGl1czogMnB4Ow0KICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDIwMG1zIGVhc2UsIHRvcCAyODBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOw0KICB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgxKSB7IHRvcDogMnB4OyB9DQogIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgyKSB7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0NCiAgLm5hdl9faGFtYnVyZ2VyLWxpbmVzIHNwYW46bnRoLWNoaWxkKDMpIHsgdG9wOiBjYWxjKDEwMCUgLSAzLjVweCk7IH0NCg0KICAubmF2X19oYW1idXJnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgxKSB7DQogICAgdG9wOiA1MCU7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7DQogIH0NCiAgLm5hdl9faGFtYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9InRydWUiXSAubmF2X19oYW1idXJnZXItbGluZXMgc3BhbjpudGgtY2hpbGQoMikgew0KICAgIG9wYWNpdHk6IDA7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWCgwKTsNCiAgfQ0KICAubmF2X19oYW1idXJnZXJbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIC5uYXZfX2hhbWJ1cmdlci1saW5lcyBzcGFuOm50aC1jaGlsZCgzKSB7DQogICAgdG9wOiA1MCU7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgtNDVkZWcpOw0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBkcmF3ZXIgcGFuZWwgKyBvdmVybGF5IC0tLS0tLS0tLS0gKi8NCiAgLm5hdi1kcmF3ZXIgew0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBpbnNldDogMCAwIDAgYXV0bzsNCiAgICB6LWluZGV4OiAxMTA7DQogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7DQogIH0NCiAgLm5hdi1kcmF3ZXJbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0NCg0KICAubmF2LWRyYXdlcl9fcGFuZWwgew0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB0b3A6IDA7DQogICAgcmlnaHQ6IDA7DQogICAgYm90dG9tOiAwOw0KICAgIHdpZHRoOiAzMjBweDsNCiAgICBtYXgtd2lkdGg6IDg1dnc7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VyZmFjZSk7DQogICAgYm94LXNoYWRvdzogLTE2cHggMCA0OHB4IHJnYmEoNDMsIDM2LCAyNCwgMC4xNik7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsNCiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzIwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsNCiAgICBwYWRkaW5nOiAwOw0KICAgIG92ZXJmbG93LXk6IGF1dG87DQogICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOw0KICB9DQogIC5uYXYtZHJhd2VyLmlzLW9wZW4geyBwb2ludGVyLWV2ZW50czogYXV0bzsgfQ0KICAubmF2LWRyYXdlci5pcy1vcGVuIC5uYXYtZHJhd2VyX19wYW5lbCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQ0KDQogIC5uYXYtZHJhd2VyX19oZWFkIHsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOw0KICAgIHBhZGRpbmc6IDIwcHggMjRweDsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsNCiAgfQ0KICAubmF2LWRyYXdlcl9faGVhZCAubG9nbyB7IGZvbnQtc2l6ZTogMjBweDsgfQ0KICAubmF2LWRyYXdlcl9faGVhZCAubG9nb19fbWFyayB7IHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IGZvbnQtc2l6ZTogMThweDsgfQ0KDQogIC5uYXYtZHJhd2VyX19jbG9zZSB7DQogICAgd2lkdGg6IDQ0cHg7DQogICAgaGVpZ2h0OiA0NHB4Ow0KICAgIHBhZGRpbmc6IDA7DQogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQogICAgYm9yZGVyOiBub25lOw0KICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsKTsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsNCiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsNCiAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZTsNCiAgfQ0KICAubmF2LWRyYXdlcl9fY2xvc2U6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE4NCwgOTIsIDU4LCAwLjA4KTsgfQ0KDQogIC5uYXYtZHJhd2VyX19uYXYgew0KICAgIGZsZXg6IDE7DQogICAgcGFkZGluZzogMjRweCAxNnB4Ow0KICB9DQogIC5uYXYtZHJhd2VyX19saW5rcyB7DQogICAgbGlzdC1zdHlsZTogbm9uZTsNCiAgICBtYXJnaW46IDA7DQogICAgcGFkZGluZzogMDsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCiAgLm5hdi1kcmF3ZXJfX2xpbmtzIGEgew0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgIHBhZGRpbmc6IDEycHggMTZweDsNCiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsNCiAgICBmb250LXNpemU6IDIwcHg7DQogICAgZm9udC13ZWlnaHQ6IDUwMDsNCiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1wcmltYXJ5KTsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOw0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZSwgY29sb3IgMjAwbXMgZWFzZTsNCiAgfQ0KICAubmF2LWRyYXdlcl9fbGlua3MgYTpob3ZlciwNCiAgLm5hdi1kcmF3ZXJfX2xpbmtzIGE6Zm9jdXMtdmlzaWJsZSB7DQogICAgYmFja2dyb3VuZDogcmdiYSgxODQsIDkyLCA1OCwgMC4wOCk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOw0KICB9DQoNCiAgLm5hdi1kcmF3ZXJfX2N0YSB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWFyZ2luOiAxNnB4IDI0cHggMzJweDsNCiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7DQogICAgY29sb3I6IHZhcigtLWNvbG9yLXN1cmZhY2UpOw0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7DQogICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7DQogICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIGZvbnQtd2VpZ2h0OiA1MDA7DQogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsNCiAgICBtaW4taGVpZ2h0OiA0OHB4Ow0KICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIGVhc2U7DQogIH0NCiAgLm5hdi1kcmF3ZXJfX2N0YTpob3ZlciB7DQogICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1ob3Zlcik7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOw0KICB9DQoNCiAgLm5hdi1kcmF3ZXJfX292ZXJsYXkgew0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBpbnNldDogMDsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQzLCAzNiwgMjQsIDAuNik7DQogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7DQogICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTsNCiAgICB6LWluZGV4OiAxMDU7DQogICAgb3BhY2l0eTogMDsNCiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDI4MG1zIGVhc2U7DQogIH0NCiAgLm5hdi1kcmF3ZXJfX292ZXJsYXlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH0NCiAgLm5hdi1kcmF3ZXIuaXMtb3BlbiArIC5uYXYtZHJhd2VyX19vdmVybGF5IHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBtb2JpbGUtb25seSB0b2dnbGU6IGhhbWJ1cmdlciBzaG93cywgbmF2IGxpbmtzL2N0YSBoaWRlIC0tLS0tLS0tLS0gKi8NCiAgQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7DQogICAgLm5hdl9faGFtYnVyZ2VyIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IG9yZGVyOiA0OyB9DQogICAgLm5hdl9fY3RhIHsgZGlzcGxheTogbm9uZTsgfQ0KICAgIC5uYXZfX2xpbmtzIHsgZGlzcGxheTogbm9uZTsgfQ0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBzbWFsbCBtb2JpbGUgZHJhd2VyIHR3ZWFrcyAtLS0tLS0tLS0tICovDQogIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkgew0KICAgIC5uYXYtZHJhd2VyX19wYW5lbCB7IHdpZHRoOiA5MHZ3OyB9DQogICAgLm5hdi1kcmF3ZXJfX2xpbmtzIGEgeyBmb250LXNpemU6IDE4cHg7IH0NCiAgfQ0KDQogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgUGhhc2UgMSDCtyDlhbHkuqvnp7vliqjnq6/ln7rnoYDvvIjlvbHlk43miYDmnIkgcGFnZe+8iQ0KICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQoNCiAgLyogLS0tLS0tLS0tLSB0eXBvZ3JhcGh5IHNjYWxlIChtb2JpbGUgZmlyc3Qgc2hyaW5rYWdlKSAtLS0tLS0tLS0tICovDQogIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgew0KICAgIGJvZHkgeyBmb250LXNpemU6IDE2cHg7IH0NCiAgICBoMSwgLmgxIHsgZm9udC1zaXplOiAzNnB4OyBsaW5lLWhlaWdodDogMS4xMjsgfQ0KICAgIGgyLCAuaDIgeyBmb250LXNpemU6IDI4cHg7IGxpbmUtaGVpZ2h0OiAxLjE4OyB9DQogICAgaDMsIC5oMyB7IGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDEuMjU7IH0NCiAgfQ0KICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHsNCiAgICBoMSwgLmgxIHsgZm9udC1zaXplOiAzMnB4OyB9DQogICAgaDIsIC5oMiB7IGZvbnQtc2l6ZTogMjRweDsgfQ0KICAgIGgzLCAuaDMgeyBmb250LXNpemU6IDIwcHg7IH0NCiAgfQ0KICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHsNCiAgICBoMSwgLmgxIHsgZm9udC1zaXplOiAyOHB4OyB9DQogICAgaDIsIC5oMiB7IGZvbnQtc2l6ZTogMjJweDsgfQ0KICB9DQoNCiAgLyogLS0tLS0tLS0tLSBwcmV2ZW50IGhvcml6b250YWwgc2Nyb2xsIC0tLS0tLS0tLS0gKi8NCiAgaHRtbCwgYm9keSB7IG92ZXJmbG93LXg6IGhpZGRlbjsgfQ0KDQogIC8qIC0tLS0tLS0tLS0gdG91Y2ggdGFyZ2V0cyAtLS0tLS0tLS0tICovDQogIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgew0KICAgIGEsIGJ1dHRvbiB7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgxODQsIDkyLCA1OCwgMC4xMik7IH0NCiAgfQ0KDQogIC8qIC0tLS0tLS0tLS0gZm9vdGVyIG1vYmlsZSByZWZpbmVtZW50cyAtLS0tLS0tLS0tICovDQogIEBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkgew0KICAgIC5mb290ZXJfX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgZ2FwOiA0MHB4IDMycHg7IH0NCiAgICAuZm9vdGVyX19icmFuZCB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IH0NCiAgICAuZm9vdGVyX19jb2wgeyBmb250LXNpemU6IDE0cHg7IH0NCiAgICAuZm9vdGVyX19jb2wgaDUgeyBmb250LXNpemU6IDEzcHg7IGxldHRlci1zcGFjaW5nOiAwLjA4ZW07IH0NCiAgICAuZm9vdGVyX19jb2wgYSB7IGZvbnQtc2l6ZTogMTRweDsgbWluLWhlaWdodDogMzZweDsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDRweCAwOyB9DQogIH0NCiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7DQogICAgLmZvb3RlciB7IHBhZGRpbmc6IDU2cHggMCAzMnB4OyB9DQogICAgLmZvb3Rlcl9fcm93IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogMzJweDsgfQ0KICAgIC5mb290ZXJfX2JyYW5kIHsgcGFkZGluZy1ib3R0b206IDE2cHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1MCwgMjQ1LCAyMzYsIDAuMDgpOyB9DQogICAgLmZvb3Rlcl9fYnJhbmQgcCB7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjU7IG1heC13aWR0aDogMTAwJTsgfQ0KICAgIC5mb290ZXJfX2NvbCB7IGZvbnQtc2l6ZTogMTRweDsgfQ0KICAgIC5mb290ZXJfX2NvbCBoNSB7IG1hcmdpbi1ib3R0b206IDEycHg7IH0NCiAgICAuZm9vdGVyX19jb2wgYSB7IG1pbi1oZWlnaHQ6IDQ0cHg7IH0NCiAgICAuZm9vdGVyX19zY3JpcHQgeyBmb250LXNpemU6IDIycHg7IG1hcmdpbjogMzJweCAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCiAgICAuZm9vdGVyX19iYXIgew0KICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgIGdhcDogOHB4Ow0KICAgICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB9DQogIH0NCgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIHY0IHN0aWNreSBmYWxsYmFjayAtIDIwMjYtMDYtMjIgMjA6MzkKICAgbm8gOmhhcygpIDogSlMgYWRkcyBib2R5LnN0aWNreS1vbiBjbGFzcyB3aGVuIDpoYXMoKSB1bnN1cHBvcnRlZAogICBKUyBkZXRlY3Rpb24gbGl2ZXMgaW4gc2VjdGlvbnMvcHJldHRzdW4taGVhZGVyLmxpcXVpZCBzY3JpcHQgYmxvY2sKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCmJvZHkuc3RpY2t5LW9uICNoZWFkZXItZ3JvdXAgewogIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKICBwb3NpdGlvbjogc3RpY2t5OwogIHRvcDogMDsKICB6LWluZGV4OiAxMDA7CiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDIzOSwgMjMwLCAwLjkyKTsKICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTQwJSkgYmx1cigxNHB4KTsKICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE0MCUpIGJsdXIoMTRweCk7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlciwgI0Q5Q0ZDMCk7CiAgYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDQzLCAzNiwgMjQsIDAuMDQpOwp9CmJvZHkuc3RpY2t5LW9uICNoZWFkZXItZ3JvdXAuaXMtc2Nyb2xsZWQgewogIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSg0MywgMzYsIDI0LCAwLjEwKTsKfQpib2R5LnN0aWNreS1vbiAucHJldHRzdW4taGVhZGVyIC5uYXYgewogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b206IG5vbmU7CiAgYm94LXNoYWRvdzogbm9uZTsKfQoKYm9keTpoYXMoLnByZXR0c3VuLWhlYWRlciAubmF2LS1zdGlja3kpICNoZWFkZXItZ3JvdXAgewogIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKICBwb3NpdGlvbjogc3RpY2t5OwogIHRvcDogMDsKICB6LWluZGV4OiAxMDA7CiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDIzOSwgMjMwLCAwLjkyKTsKICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTQwJSkgYmx1cigxNHB4KTsKICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE0MCUpIGJsdXIoMTRweCk7CiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlciwgI0Q5Q0ZDMCk7CiAgYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDQzLCAzNiwgMjQsIDAuMDQpOwp9CmJvZHk6aGFzKC5wcmV0dHN1bi1oZWFkZXIgLm5hdi0tc3RpY2t5KSAjaGVhZGVyLWdyb3VwLmlzLXNjcm9sbGVkIHsKICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoNDMsIDM2LCAyNCwgMC4xMCk7Cn0KYm9keTpoYXMoLnByZXR0c3VuLWhlYWRlciAubmF2LS1zdGlja3kpIC5wcmV0dHN1bi1oZWFkZXIgLm5hdiB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICBib3gtc2hhZG93OiBub25lOwp9Cg==

/* ---- v4: nav-drawer full visual styles (append 2026-06-22 23:30) ---- */
.prettsun-header ~ .nav-drawer,
body > .nav-drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 320ms ease, visibility 0s linear 320ms;
}
.prettsun-header ~ .nav-drawer.is-open,
body > .nav-drawer.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  transition: opacity 320ms ease, visibility 0s linear 0s;
}
.prettsun-header ~ .nav-drawer .nav-drawer__panel,
body > .nav-drawer .nav-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(420px, 92vw);
  background: var(--color-surface, #FAF5EC);
  box-shadow: -8px 0 32px rgba(43, 36, 24, 0.18);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 320ms cubic-bezier(0.32, 0.72, 0, 1);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.prettsun-header ~ .nav-drawer.is-open .nav-drawer__panel,
body > .nav-drawer.is-open .nav-drawer__panel {
  transform: translateX(0);
}
.prettsun-header ~ .nav-drawer .nav-drawer__head,
body > .nav-drawer .nav-drawer__head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 16px 20px;
  border-bottom: 1px solid var(--color-border, #D9CFC0);
  min-height: 64px;
}
.prettsun-header ~ .nav-drawer .nav-drawer__close,
body > .nav-drawer .nav-drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--color-border, #D9CFC0);
  border-radius: 50%;
  color: var(--color-text-primary, #2B2418);
  cursor: pointer;
  transition: background 200ms ease, border-color 200ms ease;
}
.prettsun-header ~ .nav-drawer .nav-drawer__close:hover,
body > .nav-drawer .nav-drawer__close:hover {
  background: var(--color-background, #F5EFE6);
  border-color: var(--color-text-secondary, #6B5D4A);
}
.prettsun-header ~ .nav-drawer .nav-drawer__nav,
body > .nav-drawer .nav-drawer__nav {
  flex: 1;
  padding: 32px 0 48px;
}
.prettsun-header ~ .nav-drawer .nav-drawer__links,
body > .nav-drawer .nav-drawer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.prettsun-header ~ .nav-drawer .nav-drawer__links li,
body > .nav-drawer .nav-drawer__links li {
  border-bottom: 1px solid var(--color-border, #D9CFC0);
}
.prettsun-header ~ .nav-drawer .nav-drawer__links li:first-child,
body > .nav-drawer .nav-drawer__links li:first-child {
  border-top: 1px solid var(--color-border, #D9CFC0);
}
.prettsun-header ~ .nav-drawer .nav-drawer__links a,
body > .nav-drawer .nav-drawer__links a {
  display: block;
  padding: 22px 32px;
  font-family: var(--font-heading, Georgia, serif);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--color-text-primary, #2B2418);
  text-decoration: none;
  transition: color 200ms ease, background 200ms ease;
}
.prettsun-header ~ .nav-drawer .nav-drawer__links a:hover,
body > .nav-drawer .nav-drawer__links a:hover {
  color: var(--color-primary, #B85C3A);
  background: var(--color-background, #F5EFE6);
}
.prettsun-header ~ .nav-drawer__overlay,
body > .nav-drawer__overlay {
  position: fixed;
  inset: 0;
  z-index: 150;
  background: rgba(43, 36, 24, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 320ms ease, visibility 0s linear 320ms;
}
.prettsun-header ~ .nav-drawer__overlay:not([hidden]),
body > .nav-drawer__overlay:not([hidden]) {
  opacity: 1;
  visibility: visible;
  transition: opacity 320ms ease, visibility 0s linear 0s;
}
.prettsun-header .nav__hamburger[aria-expanded="true"] .nav__hamburger-lines span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.prettsun-header .nav__hamburger[aria-expanded="true"] .nav__hamburger-lines span:nth-child(2) {
  opacity: 0;
}
.prettsun-header .nav__hamburger[aria-expanded="true"] .nav__hamburger-lines span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}
.prettsun-header .nav__hamburger-lines span {
  transition: transform 280ms ease, opacity 200ms ease;
  transform-origin: center;
}


/* ---------- Hero: full viewport height on all devices ---------- */
.hero {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* ---------- Promise: 365-night visual ---------- */
.promise__big { font-size: clamp(48px, 8vw, 80px); }
@media (min-width: 961px) {
  .promise__big { font-size: clamp(64px, 6vw, 96px); }
}


/* ---------- Chapter break: ensure text centered on all screen sizes ---------- */
.chapter__inner { text-align: center; }



/* ---------- Firmness card image + hover swap ---------- */
.firm-card__visual { position: relative; overflow: hidden; aspect-ratio: 1 / 1; border-radius: var(--radius-card, 20px); min-height: 0; background: var(--color-surface-alt); }
.firm-card__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: opacity 400ms cubic-bezier(0.25, 0.1, 0.25, 1); }
.firm-card__img--hover { position: absolute; inset: 0; opacity: 0; }
.firm-card:hover .firm-card__img--hover { opacity: 1; }
.firm-card:hover .firm-card__img--primary { opacity: 0; }
@media (hover: none) {
  .firm-card__img--hover { display: none; }
  .firm-card:hover .firm-card__img--primary { opacity: 1; }
}
/* ---------- Firmness tabs (mobile) ---------- */
.firm__tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 24px;
  justify-content: center;
  flex-wrap: wrap;
}
.firm__tab {
  padding: 10px 22px;
  border-radius: var(--radius-pill, 999px);
  border: 1.5px solid var(--color-border, #D9CFC0);
  background: transparent;
  font-size: 13px;
  letter-spacing: 0.04em;
  font-family: var(--font-body);
  color: var(--color-text-secondary, #6B5D4A);
  cursor: pointer;
  transition: all 200ms ease;
}
.firm__tab:hover { border-color: var(--color-primary, #B85C3A); color: var(--color-primary, #B85C3A); }
.firm__tab.is-active { background: var(--color-primary, #B85C3A); border-color: var(--color-primary, #B85C3A); color: var(--color-surface, #FAF5EC); }

/* ---------- Firmness card tab toggle ---------- */
.firm-card:not(.is-active) { display: none; }
.firm-card.is-active { display: grid; }

/* Card visual as link */
.firm-card__visual-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

@media (max-width: 960px) {
  .firm__tabs { display: flex; 
  /* Trusted by 20,000+ */
  .trust-banner { padding: 64px 0; }
  .trust-banner__h2 { font-size: clamp(22px, 3vw, 32px); }
  .trust-banner__metrics { gap: 20px; }
  .trust-banner__num { font-size: 26px; }
  /* Reviews */
  .revs { padding: 56px 0; }
  .revs__grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 0 24px; margin: 0 -24px; }
  .revs__grid::-webkit-scrollbar { display: none; }
  .revs__card { flex: 0 0 76vw; scroll-snap-align: start; }
  /* Social Proof */
  .social-proof { padding: 56px 0; }
  .social-proof__grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 0 24px; margin: 0 -24px; }
  .social-proof__grid::-webkit-scrollbar { display: none; }
  .social-proof__card { flex: 0 0 44vw; scroll-snap-align: start; min-width: 260px; }
}
}






/* ---------- Certification logos ---------- */
.certs__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.cert { display: flex; align-items: center; gap: 12px; padding: 16px 20px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-card, 20px); flex: 0 1 auto; min-width: 0; }
.cert__circle { width: 44px; height: 44px; border-radius: 50%; background: var(--color-surface-alt); border: 1.5px dashed var(--color-border-strong); flex-shrink: 0; }
.cert__body { display: flex; flex-direction: column; }
.cert__body b { font-family: var(--font-heading); font-size: 14px; font-weight: 500; color: var(--color-text-primary); letter-spacing: 0.02em; white-space: nowrap; }
.cert__body small { font-size: 11px; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 1px; }
/* ---------- Footer logo alignment ---------- */
.footer__brand h4 { display: flex; align-items: center; gap: 10px; }
/* ============================================================
   
/* ---------- Trusted by 20,000+ ---------- */
.trust-banner { padding: 90px 0; background: var(--color-background); }
.trust-banner__inner { max-width: 680px; margin: 0 auto; text-align: center; }
.trust-banner__h2 { font-family: var(--font-heading); font-size: clamp(26px, 3.2vw, 38px); font-weight: 400; color: var(--color-text-primary); margin: 0 0 16px; line-height: 1.15; }
.trust-banner__lede { font-size: 15px; color: var(--color-text-secondary); line-height: 1.65; max-width: 500px; margin: 0 auto 28px; }
.trust-banner__taglines { display: flex; justify-content: center; gap: 6px 24px; flex-wrap: wrap; margin-bottom: 36px; }
.trust-banner__tagline { font-size: 13px; color: var(--color-text-muted); }
.trust-banner__tagline::before { content: "\2022"; color: var(--color-primary, #B85C3A); margin-right: 6px; font-size: 14px; }

.trust-banner__metrics { display: grid; grid-template-columns: repeat(4, auto); justify-items: center; gap: 32px; }
.trust-banner__metric { text-align: center; min-width: 80px; display: flex; flex-direction: column; align-items: center; }
.trust-banner__stars { color: #D4A017; font-size: 16px; letter-spacing: 2px; margin-right: 4px; }
.trust-banner__num { font-family: var(--font-heading); font-size: 30px; font-weight: 500; color: var(--color-primary); line-height: 1; margin-bottom: 4px; display: block; }
.trust-banner__label { font-size: 11px; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.06em; }


/* ---------- Reviews ---------- */
.revs { padding: 80px 0; }
.revs__head { text-align: center; margin-bottom: 40px; }
.revs__kicker { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-text-muted); margin: 0 0 8px; }
.revs__h2 { font-family: var(--font-heading); font-size: clamp(28px, 3.5vw, 40px); font-weight: 400; color: var(--color-text-primary); margin: 0; }
.revs__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.revs__card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-card, 20px); padding: 28px; display: flex; flex-direction: column; }
.revs__stars { font-size: 18px; letter-spacing: 3px; color: #D4A017; margin-bottom: 12px; }
.revs__quote { font-size: 15px; line-height: 1.7; color: var(--color-text-secondary); margin: 0 0 auto; flex: 1; font-style: italic; }
.revs__author { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--color-border); }
.revs__name { display: block; font-size: 14px; font-weight: 500; color: var(--color-text-primary); }
.revs__source { display: block; font-size: 11px; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 2px; }

/* ---------- Social Proof ---------- */
.social-proof { padding: 80px 0; background: var(--color-background); }
.social-proof__head { text-align: center; margin-bottom: 40px; }
.social-proof__kicker { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-text-muted); margin: 0 0 8px; }
.social-proof__h2 { font-family: var(--font-heading); font-size: clamp(28px, 3.5vw, 40px); font-weight: 400; color: var(--color-text-primary); margin: 0 0 12px; }
.social-proof__lede { font-size: 15px; color: var(--color-text-secondary); max-width: 500px; margin: 0 auto; line-height: 1.6; }
.social-proof__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.social-proof__card { text-decoration: none; display: block; border-radius: var(--radius-card, 20px); overflow: hidden; border: 1px solid var(--color-border); background: var(--color-surface); transition: box-shadow 280ms ease; }
.social-proof__card:hover { box-shadow: 0 8px 20px rgba(43,36,24,0.08); }
.social-proof__thumb { position: relative; aspect-ratio: 16/9; display: grid; place-items: center; color: var(--color-text-muted); font-size: 14px; }
.social-proof__play { width: 40px; height: 40px; border-radius: 50%; background: rgba(250,245,236,0.9); display: grid; place-items: center; font-size: 16px; color: var(--color-primary); }
.social-proof__ig-icon { font-size: 28px; }
.social-proof__body { padding: 14px 16px 16px; }
.social-proof__platform { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--color-primary); margin-bottom: 4px; }
.social-proof__title { display: block; font-size: 14px; color: var(--color-text-primary); line-height: 1.3; }
PrettSun Homepage — Mobile Responsive Overrides
   Loaded after theme.css via prett-sun.css
   ============================================================ */

/* ---------- Tablet: 961–1200px ---------- */
@media (max-width: 1200px) {
  .hero__title { font-size: clamp(32px, 4.5vw, 48px); }
  .hero__seal { width: 90px; height: 90px; font-size: 10px; right: 24px; }
}

/* ---------- Tablet portrait / small desktop: ≤960px ---------- */
@media (max-width: 960px) {
  /* Chapter break */
  .chapter { padding: 56px 0; }
  /* Hero */
  .hero { padding: 60px 0 80px; }
  .hero__title { font-size: clamp(32px, 4.5vw, 44px); }
  .hero__lede { font-size: 16px; }
  .hero__seal { width: 80px; height: 80px; font-size: 9px; right: 20px; top: 20px; }
  .hero__seal b { font-size: 10px; }
  .hero__actions { flex-direction: row; gap: 14px; }
  .hero__signature { margin-top: 28px; }

  /* Chapter break */
  .chapter { min-height: auto; padding: 56px 0; }
  .chapter__inner { text-align: center !important; padding: 0; }
  .chapter__script { font-size: 32px; }
  .chapter__caption { font-size: 13px; }

  /* Story */
  .story { padding: 64px 0; }
  .story__h2 { font-size: clamp(24px, 3.5vw, 32px); }
  .story__grid { gap: 20px; }
  .story__leaf { width: 60px; height: 60px; }
  .story__quote { font-size: 18px; padding: 16px 0; }

  /* Trust strip */
  .trust__row { grid-template-columns: 1fr 1fr; gap: 16px; }
  .trust__item { padding: 16px; }

  /* Promise */
  .promise { padding: 64px 0; }
  .promise__grid { grid-template-columns: 1fr; gap: 32px; }
  .promise__visual { order: -1; }
  .promise__big { font-size: 56px; }
  .promise__body h3 { font-size: 22px; }

  /* Certifications */
  .certs__row { gap: 12px; }
  .cert { padding: 16px 18px; }
}

/* ---------- Mobile: ≤640px ---------- */
@media (max-width: 640px) {
  /* Hero — full viewport on mobile */
  .hero { padding: 48px 0; min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; }
  .hero__eyebrow { font-size: 11px; letter-spacing: 0.1em; margin-bottom: 12px; }
  .hero__title { font-size: clamp(28px, 7vw, 38px); line-height: 1.1; max-width: 90%; margin: 16px 0 20px; }
  .hero__lede { font-size: 14px; line-height: 1.6; margin: 0 0 20px; max-width: 100%; }
  .hero__actions { flex-direction: row; gap: 10px; flex-wrap: wrap; margin: 0; }
  .hero__actions a { width: auto; padding: 10px 20px; font-size: 13px; }
  .hero__seal { width: 64px; height: 64px; font-size: 7.5px; right: 12px; top: 12px; }
  .hero__seal b { font-size: 9px; }
  .hero__signature { font-size: 15px; margin-top: 20px; }
  .hero__signature small { font-size: 12px; }
  .prettsun-header .nav__inner { padding: 14px 24px; }
  .prettsun-header .logo { font-size: 18px; gap: 8px; }
  .chapter { min-height: auto; padding: 40px 0; }
  .chapter__inner { text-align: center !important; padding: 0; }
  .chapter__script { font-size: 24px; }
  .chapter__caption { font-size: 12px; }
  .footer__brand h4 { gap: 8px; align-items: center; display: flex !important; }
  .prettsun-footer .logo__mark { width: 28px; height: 28px; font-size: 16px; }
  .trust-banner { padding: 48px 0; }
  .trust-banner__h2 { font-size: clamp(22px, 5vw, 28px); margin-bottom: 12px; }
  .trust-banner__lede { font-size: 14px; line-height: 1.7; margin-bottom: 20px; max-width: 100%; }
  .trust-banner__taglines { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 28px; }
  .trust-banner__tagline { font-size: 13px; white-space: normal; }
  .trust-banner__tagline::before { font-size: 12px; }
  .trust-banner__metrics { display: flex; flex-direction: column; align-items: center; gap: 24px; }
  .trust-banner__num { font-size: 24px; }
  .trust-banner__label { font-size: 11px; letter-spacing: 0.08em; }
  .trust-banner__stars { font-size: 13px; }
  .revs { padding: 48px 0; }
  .revs__grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 0 20px; margin: 0 -20px; }
  .revs__grid::-webkit-scrollbar { display: none; }
  .revs__card { flex: 0 0 82vw; scroll-snap-align: start; padding: 20px; }
  .social-proof { padding: 48px 0; }
  .social-proof__grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 0 20px; margin: 0 -20px; }
  .social-proof__grid::-webkit-scrollbar { display: none; }
  .social-proof__card { flex: 0 0 72vw; scroll-snap-align: start; min-width: 240px; }
  .story { padding: 48px 0; }
  .story__kicker { font-size: 10px; }
  .story__h2 { font-size: 22px; }
  .story__leaf { width: 48px; height: 48px; }
  .story__p { font-size: 14px; line-height: 1.7; }
  .story__quote { font-size: 16px; margin: 16px 0; padding: 12px 0; }
  .firm { padding: 40px 0 64px; }
  .firm__head { margin-bottom: 32px; }
  .firm__kicker { font-size: 10px; }
  .firm__h2 { font-size: 22px; }
  .firm__lede { font-size: 14px; }
  .firm-card { padding: 28px; gap: 20px; }
  .firm-card__visual { min-height: 0; }
  .firm-card__num { font-size: 12px; }
  .firm-card__seal { width: 64px; height: 64px; }
  .firm-card__tag { font-size: 10px; }
  .firm-card__title { font-size: 18px; }
  .firm-card__lede { font-size: 14px; }
  .firm-card__specs { gap: 6px; font-size: 13px; }
  .firm-card__specs a.btn-primary { width: 100%; text-align: center; justify-content: center; }
  .trust { padding: 32px 0; }
  .trust__row { gap: 12px; }
  .trust__item { padding: 12px; gap: 8px; }
  .trust__icon { width: 32px; height: 32px; }
  .trust__label { font-size: 11px; }
  .trust__sub { font-size: 10px; }
  .promise { padding: 48px 0; }
  .promise__grid { gap: 24px; }
  .promise__grid + .promise__grid { margin-top: 48px; }
  .promise__visual { padding: 24px; }
  .promise__big { font-size: 42px; }
  .promise__small { font-size: 14px; }
  .promise__body h3 { font-size: 20px; }
  .promise__body p { font-size: 14px; }
  .promise__list { font-size: 13px; gap: 8px; }
  .certs { padding: 40px 0; }
  .certs__row { gap: 10px; }
  .cert { padding: 12px 16px; }
  .cert__circle { width: 36px; height: 36px; }
  .cert__body b { font-size: 12px; }
  .cert__body small { font-size: 10px; }
  .faq { padding: 48px 24px; }
  .faq__h2 { font-size: 22px; }
  .faq__lede { font-size: 14px; }
  .faq__q { font-size: 14px; padding: 14px 0; }
  .faq__a p { font-size: 14px; }
}

/* ---------- PrettSun Footnote ---------- */
.prettsun-footnote { padding: 16px 0; background: var(--color-surface-alt, #2B2418); }
.prettsun-footnote__text { font-size: 11px; color: var(--color-text-muted, rgba(250,245,236,0.5)); line-height: 1.5; margin: 0; max-width: 680px; text-align: center; }

/* ---------- Small phone: 400px ---------- */
@media (max-width: 400px) {
  .hero__seal { width: 48px; height: 48px; font-size: 6px; right: 8px; top: 8px; }
  .trust__row { grid-template-columns: 1fr; }
  .firm-card { padding: 20px; }
  .firm-card__visual { min-height: 0; }
  .firm-card__seal { width: 48px; height: 48px; }
  .cert { flex-direction: column; text-align: center; gap: 8px; }
}
