LyoKICogUG9saXNoIHJlc291cmNlcyBmb3IgV0xEQVAzMgogKgogKiBDb3B5cmlnaHQgMjAwNSBIYW5zIExlaWRla2tlcgogKiBDb3B5cmlnaHQgMjAwOCBNaWtvbGFqIFphbGV3c2tpCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJ3aW5kZWYuaCIKCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFCnsKICAgIDAgIlN1a2NlcyIKICAgIDEgIkKzuWQgb3BlcmFjamkiCiAgICAyICJCs7lkIHByb3Rva2+zdSIKICAgIDMgIlByemVrcm9jem9ueSBsaW1pdCBjemFzdSIKICAgIDQgIlByemVrcm9jem9ueSBsaW1pdCByb3ptaWFydSIKICAgIDUgIlBvcvN3bmFuaWUgZGGzbyB3eW5payBuZWdhdHl3bnkiCiAgICA2ICJQb3Lzd25hbmllIGRhs28gd3luaWsgcG96eXR5d255IgogICAgNyAiTWV0b2RhIHV3aWVyenl0ZWxuaWFuaWEgbmllIGplc3Qgb2Jzs3VnaXdhbmEiCiAgICA4ICJXeW1hZ2FuYSBtb2NuYSBtZXRvZGEgdXdpZXJ6eXRlbG5pYW5pYSIKICAgIDkgIk9kd2+zYW5pZSAodjIpIgogICAgMTAgIk9kd2+zYW5pZSIKICAgIDExICJQcnpla3JvY3pvbnkgbGltaXQgYWRtaW5pc3RyYWN5am55IG5hIHNlcndlcnplIgogICAgMTIgIkJlend6Z2zqZG5pZSB3eW1hZ2FuZSByb3pzemVyemVuaWUgbmllIGplc3QgZG9zdOpwbmUiCiAgICAxMyAiV3ltYWdhbmEgcG91Zm5vnOYiCiAgICAxNCAiIgogICAgMTUgIiIKICAgIDE2ICJOaWUgbWEgdGFraWVnbyBhdHJ5YnV0dSIKICAgIDE3ICJOaWV6ZGVmaW5pb3dhbnkgdHlwIgogICAgMTggIk5pZW9kcG93aWVkbmllIGRvcGFzb3dhbmllIgogICAgMTkgIk5hcnVzemVuaWUgd2nqevN3IgogICAgMjAgIkF0cnlidXQgbHViIHdhcnRvnOYganW/IGlzbmllarkiCiAgICAyMSAiQrO5ZCBza7NhZG5pIgogICAgMjIgIiIKICAgIDIzICIiCiAgICAyNCAiIgogICAgMjUgIiIKICAgIDI2ICIiCiAgICAyNyAiIgogICAgMjggIiIKICAgIDI5ICIiCiAgICAzMCAiIgogICAgMzEgIiIKICAgIDMyICJOaWUgbWEgdGFraWVnbyBvYmlla3R1IgogICAgMzMgIlByb2JsZW0gYWxpYXN1IgogICAgMzQgIkKzuWQgc2uzYWRuaSBETiIKICAgIDM1ICJKZXN0IGxpnGNpZW0iCiAgICAzNiAiUHJvYmxlbSB6IG9kd2+zYW5pZW0gZG8gYWxpYXN1IgogICAgMzcgIiIKICAgIDM4ICIiCiAgICAzOSAiIgogICAgNDAgIiIKICAgIDQxICIiCiAgICA0MiAiIgogICAgNDMgIiIKICAgIDQ0ICIiCiAgICA0NSAiIgogICAgNDYgIiIKICAgIDQ3ICIiCiAgICA0OCAiTmlld7NhnGNpd2UgdXdpZXJ6eXRlbG5pZW5pZSIKICAgIDQ5ICJOaWVwcmF3aWSzb3dlIHBvnHdpYWRjemVuaWUiCiAgICA1MCAiTmlld3lzdGFyY3pharljZSBwcmF3YSBkb3N06nB1IgogICAgNTEgIlphaup0eSIKICAgIDUyICJOaWVkb3N06nBueSIKICAgIDUzICJCcmFrIGNo6mNpIHd5a29uYW5pYSIKICAgIDU0ICJXeWtyeXRvIHDqdGzqIgogICAgNTUgIiIKICAgIDU2ICIiCiAgICA1NyAiIgogICAgNTggIiIKICAgIDU5ICIiCiAgICA2MCAiQnJhayBmb3JtYW50dSBzb3J0b3dhbmlhIgogICAgNjEgIkKzuWQgemFrcmVzdSBpbmRla3N1IgogICAgNjIgIiIKICAgIDYzICIiCiAgICA2NCAiTmFydXN6ZW5pZSB6YXNhZCBuYXpld25pY3R3YSIKICAgIDY1ICJOYXJ1c3plbmllIGtsYXN5IG9iaWVrdHUiCiAgICA2NiAiT3BlcmFjamEgbmllZG96d29sb25hIG5hIG5pZS1saZxjaXUiCiAgICA2NyAiT3BlcmFjamEgbmllZG96d29sb25hIG5hIFJETiIKICAgIDY4ICJKdb8gaXN0bmllamUiCiAgICA2OSAiTmllIG1vv25hIG1vZHlmaWtvd2HmIGtsYXN5IG9iaWVrdHUiCiAgICA3MCAiV3luaWsgemJ5dCBkdb95IgogICAgNzEgIkRvdHljenkgd2llbHUgRFNBIgogICAgNzIgIiIKICAgIDczICIiCiAgICA3NCAiIgogICAgNzUgIiIKICAgIDc2ICIiCiAgICA3NyAiIgogICAgNzggIiIKICAgIDc5ICIiCiAgICA4MCAiSW5uZSIKICAgIDgxICJTZXJ3ZXIgd3mzuWN6b255IgogICAgODIgIkKzuWQgbG9rYWxueSIKICAgIDgzICJCs7lkIHBvZGN6YXMga29kb3dhbmlhIgogICAgODQgIkKzuWQgcG9kY3phcyBkZWtvZG93YW5pYSIKICAgIDg1ICJMaW1pdCBjemFzdSIKICAgIDg2ICJOaWV6bmFuZSB1d2llcnp5dGVsbmlhbmllIgogICAgODcgIkKzuWQgZmlsdHJ1IgogICAgODggIkFrY2phIGFudWxvd2FuYSBwcnpleiB1v3l0a293bmlrYSIKICAgIDg5ICJCs+pkbnkgcGFyYW1ldHIiCiAgICA5MCAiQnJhayBwYW1p6mNpIgogICAgOTEgIk5pZSBtb79uYSBzaeogcG+zuWN6eeYgeiBzZXJ3ZXJlbSBMREFQIgogICAgOTIgIk9wZXJhY2phIG5pZSBqZXN0IG9ic7N1Z2l3YW5hIHByemV6IHTqIHdlcnNq6iBwcm90b2tvs3UgTERBUCIKICAgIDkzICJCcmFrIG9rcmWcbG9uZWdvIGZvcm1hbnR1IHcgd2lhZG9tb5xjaSIKICAgIDk0ICJCcmFrIHd5bmlr83cgeiB3aWFkb21vnGNpIgogICAgOTUgIlp3cvNjb25vIHdp6mNlaiB3eW5pa/N3IgogICAgOTYgIk5hdHJhZmlvbm8gbmEgcOp0bOogcG9kY3phcyBvYnOzdWdpIG9kd2+zYfEiCiAgICA5NyAiUHJ6ZWtyb2N6b25vIGxpbWl0IHNrb2vzdyBvZHdvs2HxIgp9Cg==