<!-- TROJAN_ENCRYPTED -->LyohCiAqIEZ1bGxDYWxlbmRhciB2Mi4yLjIgU3R5bGVzaGVldAogKiBEb2NzICYgTGljZW5zZTogaHR0cDovL2Fyc2hhdy5jb20vZnVsbGNhbGVuZGFyLwogKiAoYykgMjAxMyBBZGFtIFNoYXcKICovCgoKLmZjIHsKCWRpcmVjdGlvbjogbHRyOwoJdGV4dC1hbGlnbjogbGVmdDsKfQoKLmZjLXJ0bCB7Cgl0ZXh0LWFsaWduOiByaWdodDsKfQoKYm9keSAuZmMgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJjb21lIGpxdWkgKi8KCWZvbnQtc2l6ZTogMWVtOwp9CgoKLyogQ29sb3JzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy11bnRoZW1lZCB0aCwKLmZjLXVudGhlbWVkIHRkLAouZmMtdW50aGVtZWQgaHIsCi5mYy11bnRoZW1lZCB0aGVhZCwKLmZjLXVudGhlbWVkIHRib2R5LAouZmMtdW50aGVtZWQgLmZjLXJvdywKLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIHsKCWJvcmRlci1jb2xvcjogI2RkZDsKfQoKLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIHsKCWJhY2tncm91bmQtY29sb3I6ICNmZmY7Cn0KCi5mYy11bnRoZW1lZCBociwKLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgewoJYmFja2dyb3VuZDogI2VlZTsKfQoKLmZjLXVudGhlbWVkIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlIHsKCWNvbG9yOiAjNjY2Owp9CgouZmMtdW50aGVtZWQgLmZjLXRvZGF5IHsKCWJhY2tncm91bmQ6ICNmY2Y4ZTM7Cn0KCi5mYy1oaWdobGlnaHQgeyAvKiB3aGVuIHVzZXIgaXMgc2VsZWN0aW5nIGNlbGxzICovCgliYWNrZ3JvdW5kOiAjYmNlOGYxOwoJb3BhY2l0eTogLjM7CglmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApOyAvKiBmb3IgSUUgKi8KfQoKLmZjLWJnZXZlbnQgeyAvKiBkZWZhdWx0IGxvb2sgZm9yIGJhY2tncm91bmQgZXZlbnRzICovCgliYWNrZ3JvdW5kOiByZ2IoMTQzLCAyMjMsIDEzMCk7CglvcGFjaXR5OiAuMzsKCWZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7IC8qIGZvciBJRSAqLwp9CgouZmMtbm9uYnVzaW5lc3MgeyAvKiBkZWZhdWx0IGxvb2sgZm9yIG5vbi1idXNpbmVzcy1ob3VycyBhcmVhcyAqLwoJLyogd2lsbCBpbmhlcml0IC5mYy1iZ2V2ZW50J3Mgc3R5bGVzICovCgliYWNrZ3JvdW5kOiAjY2NjOwp9CgoKLyogSWNvbnMgKGlubGluZSBlbGVtZW50cyB3aXRoIHN0eWxlZCB0ZXh0IHRoYXQgbW9jayBhcnJvdyBpY29ucykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLWljb24gewoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAyZW07CglsaW5lLWhlaWdodDogLjVlbTsKCWhlaWdodDogLjVlbTsgLyogd2lsbCBtYWtlIHRoZSB0b3RhbCBoZWlnaHQgMWVtICovCglmb250LWZhbWlseTogIkNvdXJpZXIgTmV3IiwgQ291cmllciwgbW9ub3NwYWNlOwp9CgouZmMtaWNvbi1sZWZ0LXNpbmdsZS1hcnJvdzphZnRlciB7Cgljb250ZW50OiAiXDAyMDM5IjsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgouZmMtaWNvbi1yaWdodC1zaW5nbGUtYXJyb3c6YWZ0ZXIgewoJY29udGVudDogIlwwMjAzQSI7Cglmb250LXdlaWdodDogYm9sZDsKfQoKLmZjLWljb24tbGVmdC1kb3VibGUtYXJyb3c6YWZ0ZXIgewoJY29udGVudDogIlwwMDBBQiI7Cn0KCi5mYy1pY29uLXJpZ2h0LWRvdWJsZS1hcnJvdzphZnRlciB7Cgljb250ZW50OiAiXDAwMEJCIjsKfQoKLmZjLWljb24teDphZnRlciB7Cgljb250ZW50OiAiXDAwMEQ3IjsKfQoKCi8qIEJ1dHRvbnMgKHN0eWxlZCA8YnV0dG9uPiB0YWdzLCBub3JtYWxpemVkIHRvIHdvcmsgY3Jvc3MtYnJvd3NlcikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjIGJ1dHRvbiB7CgkvKiBmb3JjZSBoZWlnaHQgdG8gaW5jbHVkZSB0aGUgYm9yZGVyIGFuZCBwYWRkaW5nICovCgktbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cgktd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cglib3gtc2l6aW5nOiBib3JkZXItYm94OwoKCS8qIGRpbWVuc2lvbnMgKi8KCW1hcmdpbjogMDsKCWhlaWdodDogMi4xZW07CglwYWRkaW5nOiAwIC42ZW07CgoJLyogdGV4dCAmIGN1cnNvciAqLwoJZm9udC1zaXplOiAxZW07IC8qIG5vcm1hbGl6ZSAqLwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKCWN1cnNvcjogcG9pbnRlcjsKfQoKLyogRmlyZWZveCBoYXMgYW4gYW5ub3lpbmcgaW5uZXIgYm9yZGVyICovCi5mYyBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0KCQouZmMtc3RhdGUtZGVmYXVsdCB7IC8qIG5vbi10aGVtZSAqLwoJYm9yZGVyOiAxcHggc29saWQ7Cn0KCi5mYy1zdGF0ZS1kZWZhdWx0LmZjLWNvcm5lci1sZWZ0IHsgLyogbm9uLXRoZW1lICovCglib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7Cglib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7Cn0KCi5mYy1zdGF0ZS1kZWZhdWx0LmZjLWNvcm5lci1yaWdodCB7IC8qIG5vbi10aGVtZSAqLwoJYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDsKCWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7Cn0KCi8qIGljb25zIGluIGJ1dHRvbnMgKi8KCi5mYyBidXR0b24gLmZjLWljb24geyAvKiBub24tdGhlbWUgKi8KCXBvc2l0aW9uOiByZWxhdGl2ZTsKCXRvcDogLjA1ZW07IC8qIHNlZW1zIHRvIGJlIGEgZ29vZCBhZGp1c3RtZW50IGFjcm9zcyBicm93c2VycyAqLwoJbWFyZ2luOiAwIC4xZW07Cn0KCQovKgogIGJ1dHRvbiBzdGF0ZXMKICBib3Jyb3dlZCBmcm9tIHR3aXR0ZXIgYm9vdHN0cmFwIChodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC8pCiovCgouZmMtc3RhdGUtZGVmYXVsdCB7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZmZmZmZmKSwgdG8oI2U2ZTZlNikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmZmZmLCAjZTZlNmU2KTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICNmZmZmZmYsICNlNmU2ZTYpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZmZmZmZiwgI2U2ZTZlNik7CgliYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7Cglib3JkZXItY29sb3I6ICNlNmU2ZTYgI2U2ZTZlNiAjYmZiZmJmOwoJYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7Cgljb2xvcjogIzMzMzsKCXRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsKCWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjA1KTsKfQoKLmZjLXN0YXRlLWhvdmVyLAouZmMtc3RhdGUtZG93biwKLmZjLXN0YXRlLWFjdGl2ZSwKLmZjLXN0YXRlLWRpc2FibGVkIHsKCWNvbG9yOiAjMzMzMzMzOwoJYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsKfQoKLmZjLXN0YXRlLWhvdmVyIHsKCWNvbG9yOiAjMzMzMzMzOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTVweDsKCS13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjsKCSAgIC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjsKCSAgICAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjsKCSAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1wb3NpdGlvbiAwLjFzIGxpbmVhcjsKfQoKLmZjLXN0YXRlLWRvd24sCi5mYy1zdGF0ZS1hY3RpdmUgewoJYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYzsKCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Cglib3gtc2hhZG93OiBpbnNldCAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7Cn0KCi5mYy1zdGF0ZS1kaXNhYmxlZCB7CgljdXJzb3I6IGRlZmF1bHQ7CgliYWNrZ3JvdW5kLWltYWdlOiBub25lOwoJb3BhY2l0eTogMC42NTsKCWZpbHRlcjogYWxwaGEob3BhY2l0eT02NSk7Cglib3gtc2hhZG93OiBub25lOwp9CgoKLyogQnV0dG9ucyBHcm91cHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLWJ1dHRvbi1ncm91cCB7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCi8qCmV2ZXJ5IGJ1dHRvbiB0aGF0IGlzIG5vdCBmaXJzdCBpbiBhIGJ1dHRvbiBncm91cCBzaG91bGQgc2Nvb3RjaCBvdmVyIG9uZSBwaXhlbCBhbmQgY292ZXIgdGhlCnByZXZpb3VzIGJ1dHRvbidzIGJvcmRlci4uLgoqLwoKLmZjIC5mYy1idXR0b24tZ3JvdXAgPiAqIHsgLyogZXh0cmEgcHJlY2VkZW5jZSBiL2MgYnV0dG9ucyBoYXZlIG1hcmdpbiBzZXQgdG8gemVybyAqLwoJZmxvYXQ6IGxlZnQ7CgltYXJnaW46IDAgMCAwIC0xcHg7Cn0KCi5mYyAuZmMtYnV0dG9uLWdyb3VwID4gOmZpcnN0LWNoaWxkIHsgLyogc2FtZSAqLwoJbWFyZ2luLWxlZnQ6IDA7Cn0KCgovKiBQb3BvdmVyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy1wb3BvdmVyIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCWJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsMCwwLC4xNSk7Cn0KCi5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgewoJcGFkZGluZzogMnB4IDRweDsKfQoKLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtdGl0bGUgewoJbWFyZ2luOiAwIDJweDsKfQoKLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2UgewoJY3Vyc29yOiBwb2ludGVyOwp9CgouZmMtbHRyIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxlLAouZmMtcnRsIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlIHsKCWZsb2F0OiBsZWZ0Owp9CgouZmMtcnRsIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxlLAouZmMtbHRyIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlIHsKCWZsb2F0OiByaWdodDsKfQoKLyogdW50aGVtZWQgKi8KCi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciB7Cglib3JkZXItd2lkdGg6IDFweDsKCWJvcmRlci1zdHlsZTogc29saWQ7Cn0KCi5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSB7Cglmb250LXNpemU6IDI1cHg7CgltYXJnaW4tdG9wOiA0cHg7Cn0KCi8qIGpxdWkgdGhlbWVkICovCgouZmMtcG9wb3ZlciA+IC51aS13aWRnZXQtaGVhZGVyICsgLnVpLXdpZGdldC1jb250ZW50IHsKCWJvcmRlci10b3A6IDA7IC8qIHdoZXJlIHRoZXkgbWVldCwgbGV0IHRoZSBoZWFkZXIgaGF2ZSB0aGUgYm9yZGVyICovCn0KCgovKiBNaXNjIFJldXNhYmxlIENvbXBvbmVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjIGhyIHsKCWhlaWdodDogMDsKCW1hcmdpbjogMDsKCXBhZGRpbmc6IDAgMCAycHg7IC8qIGhlaWdodCBpcyB1bnJlbGlhYmxlIGFjcm9zcyBicm93c2Vycywgc28gdXNlIHBhZGRpbmcgKi8KCWJvcmRlci1zdHlsZTogc29saWQ7Cglib3JkZXItd2lkdGg6IDFweCAwOwp9CgouZmMtY2xlYXIgewoJY2xlYXI6IGJvdGg7Cn0KCi5mYy1iZywKLmZjLWJnZXZlbnQtc2tlbGV0b24sCi5mYy1oaWdobGlnaHQtc2tlbGV0b24sCi5mYy1oZWxwZXItc2tlbGV0b24gewoJLyogdGhlc2UgZWxlbWVudCBzaG91bGQgYWx3YXlzIGNsaW5nIHRvIHRvcC1sZWZ0L3JpZ2h0IGNvcm5lcnMgKi8KCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCWxlZnQ6IDA7CglyaWdodDogMDsKfQoKLmZjLWJnIHsKCWJvdHRvbTogMDsgLyogc3RyZWNoIGJnIHRvIGJvdHRvbSBlZGdlICovCn0KCi5mYy1iZyB0YWJsZSB7CgloZWlnaHQ6IDEwMCU7IC8qIHN0cmVjaCBiZyB0byBib3R0b20gZWRnZSAqLwp9CgoKLyogVGFibGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYyB0YWJsZSB7Cgl3aWR0aDogMTAwJTsKCXRhYmxlLWxheW91dDogZml4ZWQ7Cglib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJYm9yZGVyLXNwYWNpbmc6IDA7Cglmb250LXNpemU6IDFlbTsgLyogbm9ybWFsaXplIGNyb3NzLWJyb3dzZXIgKi8KfQoKLmZjIHRoIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmZjIHRoLAouZmMgdGQgewoJYm9yZGVyLXN0eWxlOiBzb2xpZDsKCWJvcmRlci13aWR0aDogMXB4OwoJcGFkZGluZzogMDsKCXZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCi5mYyB0ZC5mYy10b2RheSB7Cglib3JkZXItc3R5bGU6IGRvdWJsZTsgLyogb3ZlcmNvbWUgbmVpZ2hib3JpbmcgYm9yZGVycyAqLwp9CgoKLyogRmFrZSBUYWJsZSBSb3dzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYyAuZmMtcm93IHsgLyogZXh0cmEgcHJlY2VkZW5jZSB0byBvdmVyY29tZSB0aGVtZXMgdy8gLnVpLXdpZGdldC1jb250ZW50IGZvcmNpbmcgYSAxcHggYm9yZGVyICovCgkvKiBubyB2aXNpYmxlIGJvcmRlciBieSBkZWZhdWx0LiBidXQgbWFrZSBhdmFpbGFibGUgaWYgbmVlZCBiZSAoc2Nyb2xsYmFyIHdpZHRoIGNvbXBlbnNhdGlvbikgKi8KCWJvcmRlci1zdHlsZTogc29saWQ7Cglib3JkZXItd2lkdGg6IDA7Cn0KCi5mYy1yb3cgdGFibGUgewoJLyogZG9uJ3QgcHV0IGxlZnQvcmlnaHQgYm9yZGVyIG9uIGFueXRoaW5nIHdpdGhpbiBhIGZha2Ugcm93LgoJICAgdGhlIG91dGVyIHRib2R5IHdpbGwgd29ycnkgYWJvdXQgdGhpcyAqLwoJYm9yZGVyLWxlZnQ6IDAgaGlkZGVuIHRyYW5zcGFyZW50OwoJYm9yZGVyLXJpZ2h0OiAwIGhpZGRlbiB0cmFuc3BhcmVudDsKCgkvKiBubyBib3R0b20gYm9yZGVycyBvbiByb3dzICovCglib3JkZXItYm90dG9tOiAwIGhpZGRlbiB0cmFuc3BhcmVudDsgCn0KCi5mYy1yb3c6Zmlyc3QtY2hpbGQgdGFibGUgewoJYm9yZGVyLXRvcDogMCBoaWRkZW4gdHJhbnNwYXJlbnQ7IC8qIG5vIHRvcCBib3JkZXIgb24gZmlyc3Qgcm93ICovCn0KCgovKiBEYXkgUm93ICh1c2VkIHdpdGhpbiB0aGUgaGVhZGVyIGFuZCB0aGUgRGF5R3JpZCkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLXJvdyB7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5mYy1yb3cgLmZjLWJnIHsKCXotaW5kZXg6IDE7Cn0KCi8qIGhpZ2hsaWdodGluZyBjZWxscyAmIGJhY2tncm91bmQgZXZlbnQgc2tlbGV0b24gKi8KCi5mYy1yb3cgLmZjLWJnZXZlbnQtc2tlbGV0b24sCi5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB7Cglib3R0b206IDA7IC8qIHN0cmV0Y2ggc2tlbGV0b24gdG8gYm90dG9tIG9mIHJvdyAqLwp9CgouZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRhYmxlLAouZmMtcm93IC5mYy1oaWdobGlnaHQtc2tlbGV0b24gdGFibGUgewoJaGVpZ2h0OiAxMDAlOyAvKiBzdHJldGNoIHNrZWxldG9uIHRvIGJvdHRvbSBvZiByb3cgKi8KfQoKLmZjLXJvdyAuZmMtaGlnaGxpZ2h0LXNrZWxldG9uIHRkLAouZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRkIHsKCWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi5mYy1yb3cgLmZjLWJnZXZlbnQtc2tlbGV0b24gewoJei1pbmRleDogMjsKCn0KCi5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB7Cgl6LWluZGV4OiAzOwp9CgovKgpyb3cgY29udGVudCAod2hpY2ggY29udGFpbnMgZGF5L3dlZWsgbnVtYmVycyBhbmQgZXZlbnRzKSBhcyB3ZWxsIGFzICJoZWxwZXIiICh3aGljaCBjb250YWlucwp0ZW1wb3JhcnkgcmVuZGVyZWQgZXZlbnRzKS4KKi8KCi5mYy1yb3cgLmZjLWNvbnRlbnQtc2tlbGV0b24gewoJcG9zaXRpb246IHJlbGF0aXZlOwoJei1pbmRleDogNDsKCXBhZGRpbmctYm90dG9tOiAycHg7IC8qIG1hdGNoZXMgdGhlIHNwYWNlIGFib3ZlIHRoZSBldmVudHMgKi8KfQoKLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHsKCXotaW5kZXg6IDU7Cn0KCi5mYy1yb3cgLmZjLWNvbnRlbnQtc2tlbGV0b24gdGQsCi5mYy1yb3cgLmZjLWhlbHBlci1za2VsZXRvbiB0ZCB7CgkvKiBzZWUtdGhyb3VnaCB0byB0aGUgYmFja2dyb3VuZCBiZWxvdyAqLwoJYmFja2dyb3VuZDogbm9uZTsgLyogaW4gY2FzZSA8dGQ+cyBhcmUgZ2xvYmFsbHkgc3R5bGVkICovCglib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwoKCS8qIGRvbid0IHB1dCBhIGJvcmRlciBiZXR3ZWVuIGV2ZW50cyBhbmQvb3IgdGhlIGRheSBudW1iZXIgKi8KCWJvcmRlci1ib3R0b206IDA7Cn0KCi5mYy1yb3cgLmZjLWNvbnRlbnQtc2tlbGV0b24gdGJvZHkgdGQsIC8qIGNlbGxzIHdpdGggZXZlbnRzIGluc2lkZSAoc28gTk9UIHRoZSBkYXkgbnVtYmVyIGNlbGwpICovCi5mYy1yb3cgLmZjLWhlbHBlci1za2VsZXRvbiB0Ym9keSB0ZCB7CgkvKiBkb24ndCBwdXQgYSBib3JkZXIgYmV0d2VlbiBldmVudCBjZWxscyAqLwoJYm9yZGVyLXRvcDogMDsKfQoKCi8qIFNjcm9sbGluZyBDb250YWluZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLXNjcm9sbGVyIHsgLyogdGhpcyBjbGFzcyBnb2VzIG9uIGVsZW1lbnRzIGZvciBndWFyYW50ZWVkIHZlcnRpY2FsIHNjcm9sbGJhcnMgKi8KCW92ZXJmbG93LXk6IHNjcm9sbDsKCW92ZXJmbG93LXg6IGhpZGRlbjsKfQoKLmZjLXNjcm9sbGVyID4gKiB7IC8qIHdlIGV4cGVjdCBhbiBpbW1lZGlhdGUgaW5uZXIgZWxlbWVudCAqLwoJcG9zaXRpb246IHJlbGF0aXZlOyAvKiByZS1zY29wZSBhbGwgcG9zaXRpb25zICovCgl3aWR0aDogMTAwJTsgLyogaGFjayB0byBmb3JjZSByZS1zaXppbmcgdGhpcyBpbm5lciBlbGVtZW50IHdoZW4gc2Nyb2xsYmFycyBhcHBlYXIvZGlzYXBwZWFyICovCglvdmVyZmxvdzogaGlkZGVuOyAvKiBkb24ndCBsZXQgbmVnYXRpdmUgbWFyZ2lucyBvciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBjcmVhdGUgZnVydGhlciBzY3JvbGwgKi8KfQoKCi8qIEdsb2JhbCBFdmVudCBTdHlsZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLmZjLWV2ZW50IHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsgLyogZm9yIHJlc2l6ZSBoYW5kbGUgYW5kIG90aGVyIGlubmVyIHBvc2l0aW9uaW5nICovCglkaXNwbGF5OiBibG9jazsgLyogbWFrZSB0aGUgPGE+IHRhZyBibG9jayAqLwoJZm9udC1zaXplOiAuODVlbTsKCWxpbmUtaGVpZ2h0OiAxLjM7Cglib3JkZXItcmFkaXVzOiAzcHg7Cglib3JkZXI6IDFweCBzb2xpZCAjM2E4N2FkOyAvKiBkZWZhdWx0IEJPUkRFUiBjb2xvciAqLwoJYmFja2dyb3VuZC1jb2xvcjogIzNhODdhZDsgLyogZGVmYXVsdCBCQUNLR1JPVU5EIGNvbG9yICovCglmb250LXdlaWdodDogbm9ybWFsOyAvKiB1bmRvIGpxdWkncyB1aS13aWRnZXQtaGVhZGVyIGJvbGQgKi8KfQoKLyogb3ZlcnBvd2VyIHNvbWUgb2YgYm9vdHN0cmFwJ3MgYW5kIGpxdWkncyBzdHlsZXMgb24gPGE+IHRhZ3MgKi8KLmZjLWV2ZW50LAouZmMtZXZlbnQ6aG92ZXIsCi51aS13aWRnZXQgLmZjLWV2ZW50IHsKCWNvbG9yOiAjZmZmOyAvKiBkZWZhdWx0IFRFWFQgY29sb3IgKi8KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogaWYgPGE+IGhhcyBhbiBocmVmICovCn0KCi5mYy1ldmVudFtocmVmXSwKLmZjLWV2ZW50LmZjLWRyYWdnYWJsZSB7CgljdXJzb3I6IHBvaW50ZXI7IC8qIGdpdmUgZXZlbnRzIHdpdGggbGlua3MgYW5kIGRyYWdnYWJsZSBldmVudHMgYSBoYW5kIG1vdXNlIHBvaW50ZXIgKi8KfQoKLmZjLW5vdC1hbGxvd2VkLCAvKiBjYXVzZXMgYSAid2FybmluZyIgY3Vyc29yLiBhcHBsaWVkIG9uIGJvZHkgKi8KLmZjLW5vdC1hbGxvd2VkIC5mYy1ldmVudCB7IC8qIHRvIG92ZXJyaWRlIGFuIGV2ZW50J3MgY3VzdG9tIGN1cnNvciAqLwoJY3Vyc29yOiBub3QtYWxsb3dlZDsKfQoKCi8qIERheUdyaWQgZXZlbnRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2UgdXNlIHRoZSBmdWxsICJmYy1kYXktZ3JpZC1ldmVudCIgY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBkZXNjZW5kYW50cyBiZWNhdXNlIHRoZSBldmVudCB3b24ndApiZSBhIGRlc2NlbmRhbnQgb2YgdGhlIGdyaWQgd2hlbiBpdCBpcyBiZWluZyBkcmFnZ2VkLgoqLwoKLmZjLWRheS1ncmlkLWV2ZW50IHsKCW1hcmdpbjogMXB4IDJweCAwOyAvKiBzcGFjaW5nIGJldHdlZW4gZXZlbnRzIGFuZCBlZGdlcyAqLwoJcGFkZGluZzogMCAxcHg7Cn0KCi8qIGV2ZW50cyB0aGF0IGFyZSBjb250aW51aW5nIHRvL2Zyb20gYW5vdGhlciB3ZWVrLiBraWxsIHJvdW5kZWQgY29ybmVycyBhbmQgYnV0dCB1cCBhZ2FpbnN0IGVkZ2UgKi8KCi5mYy1sdHIgLmZjLWRheS1ncmlkLWV2ZW50LmZjLW5vdC1zdGFydCwKLmZjLXJ0bCAuZmMtZGF5LWdyaWQtZXZlbnQuZmMtbm90LWVuZCB7CgltYXJnaW4tbGVmdDogMDsKCWJvcmRlci1sZWZ0LXdpZHRoOiAwOwoJcGFkZGluZy1sZWZ0OiAxcHg7IC8qIHJlcGxhY2UgdGhlIGJvcmRlciB3aXRoIHBhZGRpbmcgKi8KCWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7Cglib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwp9CgouZmMtbHRyIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1ub3QtZW5kLAouZmMtcnRsIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1ub3Qtc3RhcnQgewoJbWFyZ2luLXJpZ2h0OiAwOwoJYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOwoJcGFkZGluZy1yaWdodDogMXB4OyAvKiByZXBsYWNlIHRoZSBib3JkZXIgd2l0aCBwYWRkaW5nICovCglib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsKCWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOwp9CgouZmMtZGF5LWdyaWQtZXZlbnQgPiAuZmMtY29udGVudCB7IC8qIGZvcmNlIGV2ZW50cyB0byBiZSBvbmUtbGluZSB0YWxsICovCgl3aGl0ZS1zcGFjZTogbm93cmFwOwoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLmZjLWRheS1ncmlkLWV2ZW50IC5mYy10aW1lIHsKCWZvbnQtd2VpZ2h0OiBib2xkOwp9CgovKiByZXNpemUgaGFuZGxlIChvdXRzaWRlIG9mIGZjLWNvbnRlbnQsIHNvIGNhbiBnbyBvdXRzaWRlIG9mIGJvdW5kcykgKi8KCi5mYy1kYXktZ3JpZC1ldmVudCAuZmMtcmVzaXplciB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDA7Cglib3R0b206IDA7Cgl3aWR0aDogN3B4Owp9CgouZmMtbHRyIC5mYy1kYXktZ3JpZC1ldmVudCAuZmMtcmVzaXplciB7CglyaWdodDogLTNweDsKCWN1cnNvcjogZS1yZXNpemU7Cn0KCi5mYy1ydGwgLmZjLWRheS1ncmlkLWV2ZW50IC5mYy1yZXNpemVyIHsKCWxlZnQ6IC0zcHg7CgljdXJzb3I6IHctcmVzaXplOwp9CgoKLyogRXZlbnQgTGltaXRpbmcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogIm1vcmUiIGxpbmsgdGhhdCByZXByZXNlbnRzIGhpZGRlbiBldmVudHMgKi8KCmEuZmMtbW9yZSB7CgltYXJnaW46IDFweCAzcHg7Cglmb250LXNpemU6IC44NWVtOwoJY3Vyc29yOiBwb2ludGVyOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CgphLmZjLW1vcmU6aG92ZXIgewoJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0KCi5mYy1saW1pdGVkIHsgLyogcm93cyBhbmQgY2VsbHMgdGhhdCBhcmUgaGlkZGVuIGJlY2F1c2Ugb2YgYSAibW9yZSIgbGluayAqLwoJZGlzcGxheTogbm9uZTsKfQoKLyogcG9wb3ZlciB0aGF0IGFwcGVhcnMgd2hlbiAibW9yZSIgbGluayBpcyBjbGlja2VkICovCgouZmMtZGF5LWdyaWQgLmZjLXJvdyB7Cgl6LWluZGV4OiAxOyAvKiBtYWtlIHRoZSAibW9yZSIgcG9wb3ZlciBvbmUgaGlnaGVyIHRoYW4gdGhpcyAqLwp9CgouZmMtbW9yZS1wb3BvdmVyIHsKCXotaW5kZXg6IDI7Cgl3aWR0aDogMjIwcHg7Cn0KCi5mYy1tb3JlLXBvcG92ZXIgLmZjLWV2ZW50LWNvbnRhaW5lciB7CglwYWRkaW5nOiAxMHB4Owp9CgovKiBUb29sYmFyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy10b29sYmFyIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKCW1hcmdpbi1ib3R0b206IDFlbTsKfQoKLmZjLXRvb2xiYXIgLmZjLWxlZnQgewoJZmxvYXQ6IGxlZnQ7Cn0KCi5mYy10b29sYmFyIC5mYy1yaWdodCB7CglmbG9hdDogcmlnaHQ7Cn0KCi5mYy10b29sYmFyIC5mYy1jZW50ZXIgewoJZGlzcGxheTogaW5saW5lLWJsb2NrOwp9CgovKiB0aGUgdGhpbmdzIHdpdGhpbiBlYWNoIGxlZnQvcmlnaHQvY2VudGVyIHNlY3Rpb24gKi8KLmZjIC5mYy10b29sYmFyID4gKiA+ICogeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJyaWRlIGJ1dHRvbiBib3JkZXIgbWFyZ2lucyAqLwoJZmxvYXQ6IGxlZnQ7CgltYXJnaW4tbGVmdDogLjc1ZW07Cn0KCi8qIHRoZSBmaXJzdCB0aGluZyB3aXRoaW4gZWFjaCBsZWZ0L2NlbnRlci9yaWdodCBzZWN0aW9uICovCi5mYyAuZmMtdG9vbGJhciA+ICogPiA6Zmlyc3QtY2hpbGQgeyAvKiBleHRyYSBwcmVjZWRlbmNlIHRvIG92ZXJyaWRlIGJ1dHRvbiBib3JkZXIgbWFyZ2lucyAqLwoJbWFyZ2luLWxlZnQ6IDA7Cn0KCQovKiB0aXRsZSB0ZXh0ICovCgouZmMtdG9vbGJhciBoMiB7CgltYXJnaW46IDA7Cn0KCi8qIGJ1dHRvbiBsYXllcmluZyAoZm9yIGJvcmRlciBwcmVjZWRlbmNlKSAqLwoKLmZjLXRvb2xiYXIgYnV0dG9uIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZjLXRvb2xiYXIgLmZjLXN0YXRlLWhvdmVyLAouZmMtdG9vbGJhciAudWktc3RhdGUtaG92ZXIgewoJei1pbmRleDogMjsKfQoJCi5mYy10b29sYmFyIC5mYy1zdGF0ZS1kb3duIHsKCXotaW5kZXg6IDM7Cn0KCi5mYy10b29sYmFyIC5mYy1zdGF0ZS1hY3RpdmUsCi5mYy10b29sYmFyIC51aS1zdGF0ZS1hY3RpdmUgewoJei1pbmRleDogNDsKfQoKLmZjLXRvb2xiYXIgYnV0dG9uOmZvY3VzIHsKCXotaW5kZXg6IDU7Cn0KCgovKiBWaWV3IFN0cnVjdHVyZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovKiB1bmRvIHR3aXR0ZXIgYm9vdHN0cmFwJ3MgYm94LXNpemluZyBydWxlcy4gbm9ybWFsaXplcyBwb3NpdGlvbmluZyB0ZWNobmlxdWVzICovCi8qIGRvbid0IGRvIHRoaXMgZm9yIHRoZSB0b29sYmFyIGJlY2F1c2Ugd2UnbGwgd2FudCBib290c3RyYXAgdG8gc3R5bGUgdGhvc2UgYnV0dG9ucyBhcyBzb21lIHB0ICovCi5mYy12aWV3LWNvbnRhaW5lciAqLAouZmMtdmlldy1jb250YWluZXIgKjpiZWZvcmUsCi5mYy12aWV3LWNvbnRhaW5lciAqOmFmdGVyIHsKCS13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7CgkgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OwoJICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKfQoKLmZjLXZpZXcsIC8qIHNjb3BlIHBvc2l0aW9uaW5nIGFuZCB6LWluZGV4J3MgZm9yIGV2ZXJ5dGhpbmcgd2l0aGluIHRoZSB2aWV3ICovCi5mYy12aWV3ID4gdGFibGUgeyAvKiBzbyBkcmFnZ2VkIGVsZW1lbnRzIGNhbiBiZSBhYm92ZSB0aGUgdmlldydzIG1haW4gZWxlbWVudCAqLwoJcG9zaXRpb246IHJlbGF0aXZlOwoJei1pbmRleDogMTsKfQoKLyogQmFzaWNWaWV3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8qIGRheSByb3cgc3RydWN0dXJlICovCgouZmMtYmFzaWNXZWVrLXZpZXcgLmZjLWNvbnRlbnQtc2tlbGV0b24sCi5mYy1iYXNpY0RheS12aWV3IC5mYy1jb250ZW50LXNrZWxldG9uIHsKCS8qIHdlIGFyZSBzdXJlIHRoZXJlIGFyZSBubyBkYXkgbnVtYmVycyBpbiB0aGVzZSB2aWV3cywgc28uLi4gKi8KCXBhZGRpbmctdG9wOiAxcHg7IC8qIGFkZCBhIHBpeGVsIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmUgMnB4IHBhZGRpbmcgYWJvdmUgZXZlbnRzICovCglwYWRkaW5nLWJvdHRvbTogMWVtOyAvKiBlbnN1cmUgYSBzcGFjZSBhdCBib3R0b20gb2YgY2VsbCBmb3IgdXNlciBzZWxlY3RpbmcvY2xpY2tpbmcgKi8KfQoKLmZjLWJhc2ljLXZpZXcgdGJvZHkgLmZjLXJvdyB7CgltaW4taGVpZ2h0OiA0ZW07IC8qIGVuc3VyZSB0aGF0IGFsbCByb3dzIGFyZSBhdCBsZWFzdCB0aGlzIHRhbGwgKi8KfQoKLyogYSAicmlnaWQiIHJvdyB3aWxsIHRha2UgdXAgYSBjb25zdGFudCBhbW91bnQgb2YgaGVpZ2h0IGJlY2F1c2UgY29udGVudC1za2VsZXRvbiBpcyBhYnNvbHV0ZSAqLwoKLmZjLXJvdy5mYy1yaWdpZCB7CglvdmVyZmxvdzogaGlkZGVuOwp9CgouZmMtcm93LmZjLXJpZ2lkIC5mYy1jb250ZW50LXNrZWxldG9uIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXRvcDogMDsKCWxlZnQ6IDA7CglyaWdodDogMDsKfQoKLyogd2VlayBhbmQgZGF5IG51bWJlciBzdHlsaW5nICovCgouZmMtYmFzaWMtdmlldyAuZmMtd2Vlay1udW1iZXIsCi5mYy1iYXNpYy12aWV3IC5mYy1kYXktbnVtYmVyIHsKCXBhZGRpbmc6IDAgMnB4Owp9CgouZmMtYmFzaWMtdmlldyB0ZC5mYy13ZWVrLW51bWJlciBzcGFuLAouZmMtYmFzaWMtdmlldyB0ZC5mYy1kYXktbnVtYmVyIHsKCXBhZGRpbmctdG9wOiAycHg7CglwYWRkaW5nLWJvdHRvbTogMnB4Owp9CgouZmMtYmFzaWMtdmlldyAuZmMtd2Vlay1udW1iZXIgewoJdGV4dC1hbGlnbjogY2VudGVyOwp9CgouZmMtYmFzaWMtdmlldyAuZmMtd2Vlay1udW1iZXIgc3BhbiB7CgkvKiB3b3JrIGFyb3VuZCB0aGUgd2F5IHdlIGRvIGNvbHVtbiByZXNpemluZyBhbmQgZW5zdXJlIGEgbWluaW11bSB3aWR0aCAqLwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJbWluLXdpZHRoOiAxLjI1ZW07Cn0KCi5mYy1sdHIgLmZjLWJhc2ljLXZpZXcgLmZjLWRheS1udW1iZXIgewoJdGV4dC1hbGlnbjogcmlnaHQ7Cn0KCi5mYy1ydGwgLmZjLWJhc2ljLXZpZXcgLmZjLWRheS1udW1iZXIgewoJdGV4dC1hbGlnbjogbGVmdDsKfQoKLmZjLWRheS1udW1iZXIuZmMtb3RoZXItbW9udGggewoJb3BhY2l0eTogMC4zOwoJZmlsdGVyOiBhbHBoYShvcGFjaXR5PTMwKTsgLyogZm9yIElFICovCgkvKiBvcGFjaXR5IHdpdGggc21hbGwgZm9udCBjYW4gc29tZXRpbWVzIGxvb2sgdG9vIGZhZGVkCgkgICBtaWdodCB3YW50IHRvIHNldCB0aGUgJ2NvbG9yJyBwcm9wZXJ0eSBpbnN0ZWFkCgkgICBtYWtpbmcgZGF5LW51bWJlcnMgYm9sZCBhbHNvIGZpeGVzIHRoZSBwcm9ibGVtICovCn0KCi8qIEFnZW5kYVZpZXcgYWxsLWRheSBhcmVhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgewoJcG9zaXRpb246IHJlbGF0aXZlOwoJei1pbmRleDogMjsgLyogc28gdGhlICJtb3JlLi4iIHBvcG92ZXIgd2lsbCBiZSBvdmVyIHRoZSB0aW1lIGdyaWQgKi8KfQoKLmZjLWFnZW5kYS12aWV3IC5mYy1kYXktZ3JpZCAuZmMtcm93IHsKCW1pbi1oZWlnaHQ6IDNlbTsgLyogYWxsLWRheSBzZWN0aW9uIHdpbGwgbmV2ZXIgZ2V0IHNob3J0ZXIgdGhhbiB0aGlzICovCn0KCi5mYy1hZ2VuZGEtdmlldyAuZmMtZGF5LWdyaWQgLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB7CglwYWRkaW5nLXRvcDogMXB4OyAvKiBhZGQgYSBwaXhlbCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIDJweCBwYWRkaW5nIGFib3ZlIGV2ZW50cyAqLwoJcGFkZGluZy1ib3R0b206IDFlbTsgLyogZ2l2ZSBzcGFjZSB1bmRlcm5lYXRoIGV2ZW50cyBmb3IgY2xpY2tpbmcvc2VsZWN0aW5nIGRheXMgKi8KfQoKCi8qIFRpbWVHcmlkIGF4aXMgcnVubmluZyBkb3duIHRoZSBzaWRlIChmb3IgYm90aCB0aGUgYWxsLWRheSBhcmVhIGFuZCB0aGUgc2xvdCBhcmVhKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMgLmZjLWF4aXMgeyAvKiAuZmMgdG8gb3ZlcmNvbWUgZGVmYXVsdCBjZWxsIHN0eWxlcyAqLwoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsKCXBhZGRpbmc6IDAgNHB4OwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLmZjLWx0ciAuZmMtYXhpcyB7Cgl0ZXh0LWFsaWduOiByaWdodDsKfQoKLmZjLXJ0bCAuZmMtYXhpcyB7Cgl0ZXh0LWFsaWduOiBsZWZ0Owp9CgoudWktd2lkZ2V0IHRkLmZjLWF4aXMgewoJZm9udC13ZWlnaHQ6IG5vcm1hbDsgLyogb3ZlcmNvbWUganF1aSB0aGVtZSBtYWtpbmcgaXQgYm9sZCAqLwp9CgoKLyogVGltZUdyaWQgU3RydWN0dXJlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi5mYy10aW1lLWdyaWQtY29udGFpbmVyLCAvKiBzbyBzY3JvbGwgY29udGFpbmVyJ3Mgei1pbmRleCBpcyBiZWxvdyBhbGwtZGF5ICovCi5mYy10aW1lLWdyaWQgeyAvKiBzbyBzbGF0cy9iZy9jb250ZW50L2V0YyBwb3NpdGlvbnMgZ2V0IHNjb3BlZCB3aXRoaW4gaGVyZSAqLwoJcG9zaXRpb246IHJlbGF0aXZlOwoJei1pbmRleDogMTsKfQoKLmZjLXRpbWUtZ3JpZCB7CgltaW4taGVpZ2h0OiAxMDAlOyAvKiBzbyBpZiBoZWlnaHQgc2V0dGluZyBpcyAnYXV0bycsIC5mYy1iZyBzdHJldGNoZXMgdG8gZmlsbCBoZWlnaHQgKi8KfQoKLmZjLXRpbWUtZ3JpZCB0YWJsZSB7IC8qIGRvbid0IHB1dCBvdXRlciBib3JkZXJzIG9uIHNsYXRzL2JnL2NvbnRlbnQvZXRjICovCglib3JkZXI6IDAgaGlkZGVuIHRyYW5zcGFyZW50Owp9CgouZmMtdGltZS1ncmlkID4gLmZjLWJnIHsKCXotaW5kZXg6IDE7Cn0KCi5mYy10aW1lLWdyaWQgLmZjLXNsYXRzLAouZmMtdGltZS1ncmlkID4gaHIgeyAvKiB0aGUgPGhyPiBBZ2VuZGFWaWV3IGluamVjdHMgd2hlbiBncmlkIGlzIHNob3J0ZXIgdGhhbiBzY3JvbGxlciAqLwoJcG9zaXRpb246IHJlbGF0aXZlOwoJei1pbmRleDogMjsKfQoKLmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudC1za2VsZXRvbiwKLmZjLXRpbWUtZ3JpZCAuZmMtY29udGVudC1za2VsZXRvbiB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl0b3A6IDA7CglsZWZ0OiAwOwoJcmlnaHQ6IDA7Cn0KCi5mYy10aW1lLWdyaWQgLmZjLWJnZXZlbnQtc2tlbGV0b24gewoJei1pbmRleDogMzsKfQoKLmZjLXRpbWUtZ3JpZCAuZmMtaGlnaGxpZ2h0LXNrZWxldG9uIHsKCXotaW5kZXg6IDQ7Cn0KCi5mYy10aW1lLWdyaWQgLmZjLWNvbnRlbnQtc2tlbGV0b24gewoJei1pbmRleDogNTsKfQoKLmZjLXRpbWUtZ3JpZCAuZmMtaGVscGVyLXNrZWxldG9uIHsKCXotaW5kZXg6IDY7Cn0KCgovKiBUaW1lR3JpZCBTbGF0cyAobGluZXMgdGhhdCBydW4gaG9yaXpvbnRhbGx5KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtc2xhdHMgdGQgewoJaGVpZ2h0OiAxLjVlbTsKCWJvcmRlci1ib3R0b206IDA7IC8qIGVhY2ggY2VsbCBpcyByZXNwb25zaWJsZSBmb3IgaXRzIHRvcCBib3JkZXIgKi8KfQoKLmZjLXNsYXRzIC5mYy1taW5vciB0ZCB7Cglib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7Cn0KCi5mYy1zbGF0cyAudWktd2lkZ2V0LWNvbnRlbnQgeyAvKiBmb3IganF1aSB0aGVtZSAqLwoJYmFja2dyb3VuZDogbm9uZTsgLyogc2VlIHRocm91Z2ggdG8gZmMtYmcgKi8KfQoKCi8qIFRpbWVHcmlkIEhpZ2hsaWdodGluZyBTbG90cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtdGltZS1ncmlkIC5mYy1oaWdobGlnaHQtY29udGFpbmVyIHsgLyogYSBkaXYgd2l0aGluIGEgY2VsbCB3aXRoaW4gdGhlIGZjLWhpZ2hsaWdodC1za2VsZXRvbiAqLwoJcG9zaXRpb246IHJlbGF0aXZlOyAvKiBzY29wZXMgdGhlIGxlZnQvcmlnaHQgb2YgdGhlIGZjLWhpZ2hsaWdodCB0byBiZSBpbiB0aGUgY29sdW1uICovCn0KCi5mYy10aW1lLWdyaWQgLmZjLWhpZ2hsaWdodCB7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJcmlnaHQ6IDA7CgkvKiB0b3AgYW5kIGJvdHRvbSB3aWxsIGJlIGluIGJ5IEpTICovCn0KCgovKiBUaW1lR3JpZCBFdmVudCBDb250YWlubWVudAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgouZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIsIC8qIGEgZGl2IHdpdGhpbiBhIGNlbGwgd2l0aGluIHRoZSBmYy1jb250ZW50LXNrZWxldG9uICovCi5mYy10aW1lLWdyaWQgLmZjLWJnZXZlbnQtY29udGFpbmVyIHsgLyogYSBkaXYgd2l0aGluIGEgY2VsbCB3aXRoaW4gdGhlIGZjLWJnZXZlbnQtc2tlbGV0b24gKi8KCXBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmZjLWx0ciAuZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIgeyAvKiBzcGFjZSBvbiB0aGUgc2lkZXMgb2YgZXZlbnRzIGZvciBMVFIgKGRlZmF1bHQpICovCgltYXJnaW46IDAgMi41JSAwIDJweDsKfQoKLmZjLXJ0bCAuZmMtdGltZS1ncmlkIC5mYy1ldmVudC1jb250YWluZXIgeyAvKiBzcGFjZSBvbiB0aGUgc2lkZXMgb2YgZXZlbnRzIGZvciBSVEwgKi8KCW1hcmdpbjogMCAycHggMCAyLjUlOwp9CgouZmMtdGltZS1ncmlkIC5mYy1ldmVudCwKLmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudCB7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl6LWluZGV4OiAxOyAvKiBzY29wZSBpbm5lciB6LWluZGV4J3MgKi8KfQoKLmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudCB7CgkvKiBiYWNrZ3JvdW5kIGV2ZW50cyBhbHdheXMgc3BhbiBmdWxsIHdpZHRoICovCglsZWZ0OiAwOwoJcmlnaHQ6IDA7Cn0KCgovKiBUaW1lR3JpZCBFdmVudCBTdHlsaW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2UgdXNlIHRoZSBmdWxsICJmYy10aW1lLWdyaWQtZXZlbnQiIGNsYXNzIGluc3RlYWQgb2YgdXNpbmcgZGVzY2VuZGFudHMgYmVjYXVzZSB0aGUgZXZlbnQgd29uJ3QKYmUgYSBkZXNjZW5kYW50IG9mIHRoZSBncmlkIHdoZW4gaXQgaXMgYmVpbmcgZHJhZ2dlZC4KKi8KCi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtbm90LXN0YXJ0IHsgLyogZXZlbnRzIHRoYXQgYXJlIGNvbnRpbnVpbmcgZnJvbSBhbm90aGVyIGRheSAqLwoJLyogcmVwbGFjZSBzcGFjZSBtYWRlIGJ5IHRoZSB0b3AgYm9yZGVyIHdpdGggcGFkZGluZyAqLwoJYm9yZGVyLXRvcC13aWR0aDogMDsKCXBhZGRpbmctdG9wOiAxcHg7CgoJLyogcmVtb3ZlIHRvcCByb3VuZGVkIGNvcm5lcnMgKi8KCWJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7Cglib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsKfQoKLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1ub3QtZW5kIHsKCS8qIHJlcGxhY2Ugc3BhY2UgbWFkZSBieSB0aGUgdG9wIGJvcmRlciB3aXRoIHBhZGRpbmcgKi8KCWJvcmRlci1ib3R0b20td2lkdGg6IDA7CglwYWRkaW5nLWJvdHRvbTogMXB4OwoKCS8qIHJlbW92ZSBib3R0b20gcm91bmRlZCBjb3JuZXJzICovCglib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOwoJYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7Cn0KCi5mYy10aW1lLWdyaWQtZXZlbnQgewoJb3ZlcmZsb3c6IGhpZGRlbjsgLyogZG9uJ3QgbGV0IHRoZSBiZyBmbG93IG92ZXIgcm91bmRlZCBjb3JuZXJzICovCn0KCi5mYy10aW1lLWdyaWQtZXZlbnQgPiAuZmMtY29udGVudCB7IC8qIGNvbnRhaW5zIHRoZSB0aW1lIGFuZCB0aXRsZSwgYnV0IG5vIGJnIGFuZCByZXNpemVyICovCglwb3NpdGlvbjogcmVsYXRpdmU7Cgl6LWluZGV4OiAyOyAvKiBhYm92ZSB0aGUgYmcgKi8KfQoKLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGltZSwKLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGl0bGUgewoJcGFkZGluZzogMCAxcHg7Cn0KCi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXRpbWUgewoJZm9udC1zaXplOiAuODVlbTsKCXdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLWJnIHsKCXotaW5kZXg6IDE7CgliYWNrZ3JvdW5kOiAjZmZmOwoJb3BhY2l0eTogLjI1OwoJZmlsdGVyOiBhbHBoYShvcGFjaXR5PTI1KTsgLyogZm9yIElFICovCn0KCi8qIHNob3J0IG1vZGUsIHdoZXJlIHRpbWUgYW5kIHRpdGxlIGFyZSBvbiB0aGUgc2FtZSBsaW5lICovCgouZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNob3J0IC5mYy1jb250ZW50IHsKCS8qIGRvbid0IHdyYXAgdG8gc2Vjb25kIGxpbmUgKG5vdyB0aGF0IGNvbnRlbnRzIHdpbGwgYmUgaW5saW5lKSAqLwoJd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZSwKLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGl0bGUgewoJLyogcHV0IHRoZSB0aW1lIGFuZCB0aXRsZSBvbiB0aGUgc2FtZSBsaW5lICovCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cgl2ZXJ0aWNhbC1hbGlnbjogdG9wOwp9CgouZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNob3J0IC5mYy10aW1lIHNwYW4gewoJZGlzcGxheTogbm9uZTsgLyogZG9uJ3QgZGlzcGxheSB0aGUgZnVsbCB0aW1lIHRleHQuLi4gKi8KfQoKLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZTpiZWZvcmUgewoJY29udGVudDogYXR0cihkYXRhLXN0YXJ0KTsgLyogLi4uaW5zdGVhZCwgZGlzcGxheSBvbmx5IHRoZSBzdGFydCB0aW1lICovCn0KCi5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWU6YWZ0ZXIgewoJY29udGVudDogIlwwMDBBMC1cMDAwQTAiOyAvKiBzZXBlcmF0ZSB3aXRoIGEgZGFzaCwgd3JhcHBlZCBpbiBuYnNwJ3MgKi8KfQoKLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGl0bGUgewoJZm9udC1zaXplOiAuODVlbTsgLyogbWFrZSB0aGUgdGl0bGUgdGV4dCB0aGUgc2FtZSBzaXplIGFzIHRoZSB0aW1lICovCglwYWRkaW5nOiAwOyAvKiB1bmRvIHBhZGRpbmcgZnJvbSBhYm92ZSAqLwp9CgovKiByZXNpemVyICovCgouZmMtdGltZS1ncmlkLWV2ZW50IC5mYy1yZXNpemVyIHsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXotaW5kZXg6IDM7IC8qIGFib3ZlIGNvbnRlbnQgKi8KCWxlZnQ6IDA7CglyaWdodDogMDsKCWJvdHRvbTogMDsKCWhlaWdodDogOHB4OwoJb3ZlcmZsb3c6IGhpZGRlbjsKCWxpbmUtaGVpZ2h0OiA4cHg7Cglmb250LXNpemU6IDExcHg7Cglmb250LWZhbWlseTogbW9ub3NwYWNlOwoJdGV4dC1hbGlnbjogY2VudGVyOwoJY3Vyc29yOiBzLXJlc2l6ZTsKfQoKLmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtcmVzaXplcjphZnRlciB7Cgljb250ZW50OiAiPSI7Cn0K