LyoKICAgSU1QT1JUQU5UOiBJZiB5b3UncmUgZWRpdGluZyB0aGlzIGZpbGUgaW4gdGhlIG91dHB1dCBkaXJlY3Rvcnkgb2Ygb25lIG9mCiAgIHlvdXIgcHJvamVjdHMsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuIHRoZSBuZXh0IHRpbWUgeW91IHJ1bgogICBOYXR1cmFsIERvY3MuICBJbnN0ZWFkLCBjb3B5IHRoaXMgZmlsZSB0byB5b3VyIHByb2plY3QgZGlyZWN0b3J5LCBtYWtlIHlvdXIKICAgY2hhbmdlcywgYW5kIHlvdSBjYW4gdXNlIGl0IHdpdGggLXMuICBFdmVuIGJldHRlciB3b3VsZCBiZSB0byBtYWtlIGEgQ1NTCiAgIGZpbGUgaW4geW91ciBwcm9qZWN0IGRpcmVjdG9yeSB3aXRoIG9ubHkgeW91ciBjaGFuZ2VzLCB3aGljaCB5b3UgY2FuIHRoZW4KICAgdXNlIHdpdGggLXMgW29yaWdpbmFsIHN0eWxlXSBbeW91ciBjaGFuZ2VzXS4KCiAgIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB5b3UncmUgZWRpdGluZyB0aGlzIGZpbGUgaW4gdGhlIE5hdHVyYWwgRG9jcyBzdHlsZXMKICAgZGlyZWN0b3J5LCB0aGUgY2hhbmdlcyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgYXBwbGllZCB0byBhbGwgeW91ciBwcm9qZWN0cwogICB0aGF0IHVzZSB0aGlzIHN0eWxlIHRoZSBuZXh0IHRpbWUgTmF0dXJhbCBEb2NzIGlzIHJ1biBvbiB0aGVtLgoKICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgTmF0dXJhbCBEb2NzLCB3aGljaCBpcyBDb3B5cmlnaHQgqSAyMDAzLTIwMDQgR3JlZyBWYWx1cmUKICAgTmF0dXJhbCBEb2NzIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEwKKi8KCi8qICBOTyBsb25nZXIgbmVjZXNzYXJ5ISEKICAuUHJvdG90eXBlIHRkIHsKICAgIGZvbnQtc2l6ZTogOHB0OwogICAgfQoqLwoKLkNSZXF1aXJlbWVudFRlc3RjYXNlIC5Qcm90b3R5cGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OyBib3JkZXItY29sb3I6ICNEMEQwRDAgfQouQ1JlcXVpcmVtZW50RnVuY3Rpb24gLlByb3RvdHlwZSB7IGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7IGJvcmRlci1jb2xvcjogI0QwRDBEMCB9Ci5DUmVxdWlyZW1lbnRQcm9jZWR1cmUgLlByb3RvdHlwZSB7IGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7IGJvcmRlci1jb2xvcjogI0QwRDBEMCB9Ci5DUmVxdWlyZW1lbnRUeXBlIC5Qcm90b3R5cGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0OyBib3JkZXItY29sb3I6ICNEMEQwRDAgfQoKLk1Hcm91cENvbnRlbnQgewogICAgZm9udC12YXJpYW50OiBub3JtYWw7IAogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KICAgICAgICAKLyogIE5PIGxvbmdlciBuZWNlc3NhcnkhIQpAbWVkaWEgcHJpbnQgewoKIGJsb2NrcXVvdGUgewogICAgIG92ZXJmbG93OiB2aXNpYmxlOwogICAgIH0KCiAuSUUgYmxvY2txdW90ZSB7CiAgICAgd2lkdGg6IGF1dG87CiAgICAgfQp9CiovCg==