ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRy5tZCBiL0NIQU5HRUxPRy5tZAppbmRleCAzYzYyYmY1Li42NGEzMGRmIDEwMDY0NAotLS0gYS9DSEFOR0VMT0cubWQKKysrIGIvQ0hBTkdFTE9HLm1kCkBAIC0xLDUgKzEsNjYgQEAKICMjIDEuMTkuMAogCisjIyMgQ29yZSBsaWJyYXJ5IGNoYW5nZXMKKworKiBgZGFydDppb2AKKyAgKiBgU29ja2V0LmNvbm5lY3RgIHdpdGggc291cmNlLWFkZHJlc3MgYXJndW1lbnQgaXMgbm93IG5vbi1ibG9ja2luZworICAgIG9uIE1hYy4gV2FzIGFscmVhZHkgbm9uLWJsb2NraW5nIG9uIGFsbCBvdGhlciBwbGF0Zm9ybXMuCisgICogUmVwb3J0IGEgYmV0dGVyIGVycm9yIHdoZW4gYSBiaW5kIGZhaWxzIGJlY2F1c2Ugb2YgYSBiYWQgc291cmNlIGFkZHJlc3MuCisKKyMjIyBTdHJvbmcgTW9kZQorCisqICAgTmV3IGZlYXR1cmUgLSBhbiBvcHRpb24gdG8gZGlzYWJsZSBpbXBsaWNpdCBjYXN0cworICAgIChTREsgaXNzdWUgWzI2NTgzXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY1ODMpKSwKKyAgICBzZWUgdGhlIFtkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL2Rldl9jb21waWxlci9ibG9iL21hc3Rlci9kb2MvU1RBVElDX1NBRkVUWS5tZCNkaXNhYmxlLWltcGxpY2l0LWNhc3RzKQorICAgIGZvciB1c2FnZSBpbnN0cnVjdGlvbnMgYW5kIGV4YW1wbGVzLgorCisqICAgTmV3IGZlYXR1cmUgLSBhbiBvcHRpb24gdG8gZGlzYWJsZSBpbXBsaWNpdCBkeW5hbWljCisgICAgKFNESyBpc3N1ZSBbMjU1NzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNTU3MykpLAorICAgIHNlZSB0aGUgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvZGV2X2NvbXBpbGVyL2Jsb2IvbWFzdGVyL2RvYy9TVEFUSUNfU0FGRVRZLm1kI2Rpc2FibGUtaW1wbGljaXQtZHluYW1pYykKKyAgICBmb3IgdXNhZ2UgaW5zdHJ1Y3Rpb25zIGFuZCBleGFtcGxlcy4KKworKiAgIEJyZWFraW5nIGNoYW5nZSAtIGluZmVyIGdlbmVyaWMgdHlwZSBhcmd1bWVudHMgZnJvbSB0aGUKKyAgICBjb25zdHJ1Y3RvciBpbnZvY2F0aW9uIGFyZ3VtZW50cworICAgIChTREsgaXNzdWUgWzI1MjIwXShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjUyMjApKQorCisgICAgYGBgZGFydAorICAgIHZhciBtYXAgPSBuZXcgTWFwPFN0cmluZywgU3RyaW5nPigpOworCisgICAgLy8gaW5mZXI6IE1hcDxTdHJpbmcsIFN0cmluZz4KKyAgICB2YXIgb3RoZXJNYXAgPSBuZXcgTWFwLmZyb20obWFwKTsKKyAgICBgYGAKKworKiAgIEJyZWFraW5nIGNoYW5nZSAtIGluZmVyIGxvY2FsIGZ1bmN0aW9uIHJldHVybiB0eXBlCisgICAgKFNESyBpc3N1ZSBbMjY0MTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNjQxNCkpCisKKyAgICBgYGBkYXJ0CisgICAgdm9pZCBtYWluKCkgeworICAgICAgLy8gaW5mZXI6IHJldHVybiB0eXBlIGlzIGludAorICAgICAgZigpIHsgcmV0dXJuIDQwOyB9CisgICAgICBpbnQgeSA9IGYoKSArIDI7IC8vIHR5cGUgY2hlY2tzCisgICAgICBwcmludCh5KTsKKyAgICB9CisgICAgYGBgCisKKyogICBCcmVha2luZyBjaGFuZ2UgLSBhbGxvdyB0eXBlIHByb21vdGlvbiBmcm9tIGEgZ2VuZXJpYyB0eXBlIHBhcmFtZXRlcgorICAgIChTREsgaXNzdWUgWzI2NDE0XShodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY5NjUpKQorCisgICAgYGBgZGFydAorICAgIHZvaWQgZm4vKjxUPiovKC8qPVQqLyBvYmplY3QpIHsKKyAgICAgIGlmIChvYmplY3QgaXMgU3RyaW5nKSB7CisgICAgICAgIC8vIFRyZWF0IGBvYmplY3RgIGFzIGBTdHJpbmdgIGluc2lkZSB0aGlzIGJsb2NrLgorICAgICAgICAvLyBCdXQgaXQgd2lsbCByZXF1aXJlIGEgY2FzdCB0byBwYXNzIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMgYFRgLgorICAgICAgICBwcmludChvYmplY3Quc3Vic3RyaW5nKDEpKTsKKyAgICAgIH0KKyAgICB9CisgICAgYGBgCisKKyMjIyBEYXJ0IFZNCisKKyogICBUaGUgZGVwZW5kZW5jeSBvbiBCb3JpbmdTU0wgaGFzIGJlZW4gcm9sbGVkIGZvcndhcmQuIEdvaW5nIGZvcndhcmQsIGJ1aWxkcworICAgIG9mIHRoZSBEYXJ0IFZNIGluY2x1ZGluZyBzZWN1cmUgc29ja2V0cyB3aWxsIHJlcXVpcmUgYSBjb21waWxlciB3aXRoIEMxMQorICAgIHN1cHBvcnQsIGFuZCB0byBsaW5rIGFnYWluc3QgZ2xpYiAyLjE2IG9yIG5ld2VyLgorCiAjIyMgVG9vbCBDaGFuZ2VzCiAKICogYGRhcnRmbXRgIC0gdXBncmFkZWQgdG8gdjAuMi45CkBAIC0zOSw2ICsxMDAsOSBAQAogICAqIEVsaW1pbmF0ZSBzb21lIGZhbHNlIG5lZ2F0aXZlcyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgZ2xvYmFsIGV4ZWN1dGFibGVzCiAgICAgYXJlIG9uIHRoZSB1c2VyJ3MgZXhlY3V0YWJsZSBwYXRoLgogCisqIGRhcnQyZGFydCAoYWthIGBkYXJ0MmpzIC0tb3V0cHV0LXR5cGU9ZGFydGApIGhhcyBiZWVuIHJlbW92ZWQgKHRoaXMgd2FzCisgIGRlcHJlY2F0ZWQgaW4gRGFydCAxLjExKQorCiBbRmx1dHRlcl06IGh0dHBzOi8vZmx1dHRlci5pby8KIAogIyMgMS4xOC4xIC0gMjAxNi0wOC0wMgpkaWZmIC0tZ2l0IGEvREVQUyBiL0RFUFMKaW5kZXggMTBhYzdiOC4uZjUzZGZjOSAxMDA2NDQKLS0tIGEvREVQUworKysgYi9ERVBTCkBAIC00Myw3ICs0Myw3IEBACiAgICJiYXJiYWNrX3RhZyIgOiAiQDAuMTUuMis3IiwKICAgImJhemVsX3dvcmtlcl90YWciOiAiQHYwLjEuMCIsCiAgICJib29sZWFuX3NlbGVjdG9yX3RhZyIgOiAiQDEuMC4wIiwKLSAgImJvcmluZ3NzbF9yZXYiIDogIkBkYWVhZmMyMmM2NmFkNDhmNmIzMmZjOGQzMzYyZWI5YmEzMWI3NzRlIiwKKyAgImJvcmluZ3NzbF9yZXYiIDogIkA4ZDM0M2I0NGJiYWI4MjlkMWEyOGZkZWY2NTBjYTk1ZjdkYjQ0MTJlIiwKICAgImNoYXJjb2RlX3RhZyI6ICJAMS4xLjAiLAogICAiY2hyb21lX3JldiIgOiAiQDE5OTk3IiwKICAgImNsaV91dGlsX3RhZyIgOiAiQDAuMC4xKzIiLApAQCAtNTYsNyArNTYsNyBAQAogICAiZGFydF9zZXJ2aWNlc19yZXYiIDogIkA3YWVhMjU3NGU2ZjM5MjRiZjQwOWE4MGFmYjhhZDUyYWEyYmU0Zjk3IiwKICAgImRhcnRfc3R5bGVfdGFnIjogIkAwLjIuOSIsCiAgICJkYXJ0ZG9jX3RhZyIgOiAiQHYwLjkuNisyIiwKLSAgImRldl9jb21waWxlcl9yZXYiOiAiQDljYzk4MmI5MGY1N2M2MTMyZjY0OGIwMDQxYzBiMDNiZDIzZmNiZmMiLAorICAiZGV2X2NvbXBpbGVyX3JldiI6ICJAZmEwODQxNjRiNjIwZWE3NWNkMjAwOGM5ZGMzMTc2NTVhMDQ1YWQ2ZCIsCiAgICJmaXhudW1fdGFnIjogIkAwLjEwLjUiLAogICAiZnVuY19yZXYiOiAiQDhkNGFlYTc1YzIxYmUyMTc5Y2IwMGRjMmI5NGE3MTQxNDY1MzA5NGUiLAogICAiZ2xvYl9yZXYiOiAiQDcwNGNmNzVlNGYyNmI0MTc1MDVjNWM2MTFiZGFhY2Q4ODA4NDY3ZGQiLApkaWZmIC0tZ2l0IGEvY3JlYXRlX3Nkay5neXAgYi9jcmVhdGVfc2RrLmd5cAppbmRleCA4M2RkYzQ3Li5iMWI5MzYxIDEwMDY0NAotLS0gYS9jcmVhdGVfc2RrLmd5cAorKysgYi9jcmVhdGVfc2RrLmd5cApAQCAtMjYsNyArMjYsNiBAQAogICAgICAgICAgICAgJzwhQChbInB5dGhvbiIsICJ0b29scy9saXN0X2ZpbGVzLnB5IiwnCiAgICAgICAgICAgICAgICAgJyJkYXJ0JCIsJwogICAgICAgICAgICAgICAgICcic2RrL2xpYiJdKScsCi0gICAgICAgICAgICAnc2RrL2xpYi9kYXJ0MmRhcnQucGxhdGZvcm0nLAogICAgICAgICAgICAgJ3Nkay9saWIvZGFydF9jbGllbnQucGxhdGZvcm0nLAogICAgICAgICAgICAgJ3Nkay9saWIvZGFydF9zZXJ2ZXIucGxhdGZvcm0nLAogICAgICAgICAgICAgJ3Nkay9saWIvZGFydF9zaGFyZWQucGxhdGZvcm0nLApkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5c2lzX3NlcnZlci9saWIvc3JjL2FuYWx5c2lzX3NlcnZlci5kYXJ0IGIvcGtnL2FuYWx5c2lzX3NlcnZlci9saWIvc3JjL2FuYWx5c2lzX3NlcnZlci5kYXJ0CmluZGV4IGNhODc1NDYuLmY3MmU1MTIgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXNpc19zZXJ2ZXIvbGliL3NyYy9hbmFseXNpc19zZXJ2ZXIuZGFydAorKysgYi9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvYW5hbHlzaXNfc2VydmVyLmRhcnQKQEAgLTI5LDkgKzI5LDEwIEBACiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZmlsZV9zeXN0ZW0vZmlsZV9zeXN0ZW0uZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvaW5zdHJ1bWVudGF0aW9uL2luc3RydW1lbnRhdGlvbi5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9wbHVnaW4vcmVzb2x2ZXJfcHJvdmlkZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL2VtYmVkZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9wdWJfcGFja2FnZV9tYXBfcHJvdmlkZXIuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvYnVpbGRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZGFydC9hc3QvdXRpbGl0aWVzLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9qYXZhX2VuZ2luZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2phdmFfaW8uZGFydCc7CkBAIC0xNjYxLDcgKzE2NjIsNyBAQAogICAgIEVtYmVkZGVyWWFtbExvY2F0b3IgbG9jYXRvciA9CiAgICAgICAgIGRpc3Bvc2l0aW9uLmdldEVtYmVkZGVyTG9jYXRvcihyZXNvdXJjZVByb3ZpZGVyKTsKICAgICBNYXA8Rm9sZGVyLCBZYW1sTWFwPiBlbWJlZGRlcllhbWxzID0gbG9jYXRvci5lbWJlZGRlcllhbWxzOwotICAgIEVtYmVkZGVyU2RrIGVtYmVkZGVyU2RrID0gbmV3IEVtYmVkZGVyU2RrKGVtYmVkZGVyWWFtbHMpOworICAgIEVtYmVkZGVyU2RrIGVtYmVkZGVyU2RrID0gbmV3IEVtYmVkZGVyU2RrKHJlc291cmNlUHJvdmlkZXIsIGVtYmVkZGVyWWFtbHMpOwogICAgIGlmIChlbWJlZGRlclNkay5saWJyYXJ5TWFwLnNpemUoKSA9PSAwKSB7CiAgICAgICAvLyBUaGVyZSB3YXMgbm8gZW1iZWRkZXIgZmlsZSwgb3IgdGhlIGZpbGUgd2FzIGVtcHR5LCBzbyB1c2VkIHRoZSBkZWZhdWx0CiAgICAgICAvLyBTREsuCmRpZmYgLS1naXQgYS9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvY29udGV4dF9tYW5hZ2VyLmRhcnQgYi9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvY29udGV4dF9tYW5hZ2VyLmRhcnQKaW5kZXggMzQ3Nzg4Yi4uODZiMTNhMSAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5c2lzX3NlcnZlci9saWIvc3JjL2NvbnRleHRfbWFuYWdlci5kYXJ0CisrKyBiL3BrZy9hbmFseXNpc19zZXJ2ZXIvbGliL3NyYy9jb250ZXh0X21hbmFnZXIuZGFydApAQCAtMTYsMTQgKzE2LDE1IEBACiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvcGx1Z2luL3Jlc29sdmVyX3Byb3ZpZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9hbmFseXNpc19vcHRpb25zX3Byb3ZpZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9jb25maWcuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL2VtYmVkZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9wYWNrYWdlX21hcF9wcm92aWRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvcGFja2FnZV9tYXBfcmVzb2x2ZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL3BhdGhfZmlsdGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9wdWJfcGFja2FnZV9tYXBfcHJvdmlkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL3Nka19leHQuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvYnVpbGRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvY29udGV4dC9jb250ZXh0LmRhcnQnIGFzIGNvbnRleHQ7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvc291cmNlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9qYXZhX2VuZ2luZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2phdmFfaW8uZGFydCc7CkBAIC0zOTEsNiArMzkyLDEzIEBACiAgIHN0YXRpYyBjb25zdCBTdHJpbmcgUEFDS0FHRV9TUEVDX05BTUUgPSAnLnBhY2thZ2VzJzsKIAogICAvKioKKyAgICogVGhlIG5hbWUgb2YgdGhlIGtleSBpbiBhbiBlbWJlZGRlciBmaWxlIHdob3NlIHZhbHVlIGlzIHRoZSBsaXN0IG9mCisgICAqIGxpYnJhcmllcyBpbiB0aGUgU0RLLgorICAgKiBUT0RPKGJyaWFud2lsa2Vyc29uKSBUaGlzIGlzIGFsc28gZGVmaW5lZCBpbiBzZGsuZGFydC4KKyAgICovCisgIHN0YXRpYyBjb25zdCBTdHJpbmcgX0VNQkVEREVEX0xJQl9NQVBfS0VZID0gJ2VtYmVkZGVkX2xpYnMnOworCisgIC8qKgogICAgKiBUaGUgW1Jlc291cmNlUHJvdmlkZXJdIHVzaW5nIHdoaWNoIHBhdGhzIGFyZSBjb252ZXJ0ZWQgaW50byBbUmVzb3VyY2Vdcy4KICAgICovCiAgIGZpbmFsIFJlc291cmNlUHJvdmlkZXIgcmVzb3VyY2VQcm92aWRlcjsKQEAgLTUxNSw2ICs1MjMsNyBAQAogICAgICAgY29udGV4dHMuYWRkKGluZm8uY29udGV4dCk7CiAgICAgICBpbmZvLmNoaWxkcmVuLmZvckVhY2goYWRkQ29udGV4dEFuZERlc2NlbmRhbnRzKTsKICAgICB9CisKICAgICBpZiAoaW5uZXJtb3N0Q29udGFpbmluZ0luZm8gIT0gbnVsbCkgewogICAgICAgaWYgKGFuYWx5c2lzUm9vdCA9PSBpbm5lcm1vc3RDb250YWluaW5nSW5mby5mb2xkZXIpIHsKICAgICAgICAgYWRkQ29udGV4dEFuZERlc2NlbmRhbnRzKGlubmVybW9zdENvbnRhaW5pbmdJbmZvKTsKQEAgLTUyOSw2ICs1MzgsMTEgQEAKICAgICByZXR1cm4gY29udGV4dHM7CiAgIH0KIAorICAvKioKKyAgICogQ2hlY2sgaWYgdGhpcyBtYXAgZGVmaW5lcyBlbWJlZGRlZCBsaWJyYXJpZXMuCisgICAqLworICBib29sIGRlZmluZXNFbWJlZGRlZExpYnMoTWFwIG1hcCkgPT4gbWFwW19FTUJFRERFRF9MSUJfTUFQX0tFWV0gIT0gbnVsbDsKKwogICBAb3ZlcnJpZGUKICAgQW5hbHlzaXNDb250ZXh0IGdldENvbnRleHRGb3IoU3RyaW5nIHBhdGgpIHsKICAgICByZXR1cm4gX2dldElubmVybW9zdENvbnRleHRJbmZvRm9yKHBhdGgpPy5jb250ZXh0OwpAQCAtOTEzLDcgKzkyNyw4IEBACiAgICAgICAgICAgICAgICAgLndoZXJlKChyKSA9PiByIGlzISBEYXJ0VXJpUmVzb2x2ZXIpCiAgICAgICAgICAgICAgICAgLnRvTGlzdCgpOwogICAgICAgICAgICAgLy8gQWRkIGFuIGVtYmVkZGVkIFVSSSByZXNvbHZlciBpbiBpdHMgcGxhY2UuCi0gICAgICAgICAgICByZXNvbHZlcnMuYWRkKG5ldyBEYXJ0VXJpUmVzb2x2ZXIobmV3IEVtYmVkZGVyU2RrKGVtYmVkZGVyWWFtbHMpKSk7CisgICAgICAgICAgICByZXNvbHZlcnMuYWRkKG5ldyBEYXJ0VXJpUmVzb2x2ZXIoCisgICAgICAgICAgICAgICAgbmV3IEVtYmVkZGVyU2RrKHJlc291cmNlUHJvdmlkZXIsIGVtYmVkZGVyWWFtbHMpKSk7CiAKICAgICAgICAgICAgIC8vIFNldCBhIG5ldyBzb3VyY2UgZmFjdG9yeS4KICAgICAgICAgICAgIFNvdXJjZUZhY3RvcnlJbXBsIG5ld0ZhY3RvcnkgPSBzb3VyY2VGYWN0b3J5LmNsb25lKCk7CkBAIC0xMTU4LDcgKzExNzMsNyBAQAogICAgIEVtYmVkZGVyWWFtbExvY2F0b3IgbG9jYXRvciA9CiAgICAgICAgIGRpc3Bvc2l0aW9uLmdldEVtYmVkZGVyTG9jYXRvcihyZXNvdXJjZVByb3ZpZGVyKTsKICAgICBNYXA8Rm9sZGVyLCBZYW1sTWFwPiBlbWJlZGRlcllhbWxzID0gbG9jYXRvci5lbWJlZGRlcllhbWxzOwotICAgIEVtYmVkZGVyU2RrIGVtYmVkZGVyU2RrID0gbmV3IEVtYmVkZGVyU2RrKGVtYmVkZGVyWWFtbHMpOworICAgIEVtYmVkZGVyU2RrIGVtYmVkZGVyU2RrID0gbmV3IEVtYmVkZGVyU2RrKHJlc291cmNlUHJvdmlkZXIsIGVtYmVkZGVyWWFtbHMpOwogICAgIGlmIChlbWJlZGRlclNkay5saWJyYXJ5TWFwLnNpemUoKSA9PSAwKSB7CiAgICAgICAvLyBUaGVyZSB3YXMgbm8gZW1iZWRkZXIgZmlsZSwgb3IgdGhlIGZpbGUgd2FzIGVtcHR5LCBzbyB1c2VkIHRoZSBkZWZhdWx0CiAgICAgICAvLyBTREsuCmRpZmYgLS1naXQgYS9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvc3RhdHVzL2dldF9oYW5kbGVyLmRhcnQgYi9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvc3RhdHVzL2dldF9oYW5kbGVyLmRhcnQKaW5kZXggZDk0ODZkZC4uMTFjY2NmZiAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5c2lzX3NlcnZlci9saWIvc3JjL3N0YXR1cy9nZXRfaGFuZGxlci5kYXJ0CisrKyBiL3BrZy9hbmFseXNpc19zZXJ2ZXIvbGliL3NyYy9zdGF0dXMvZ2V0X2hhbmRsZXIuZGFydApAQCAtMjgsMTIgKzI4LDEyIEBACiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZGFydC9lbGVtZW50L2VsZW1lbnQuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZGFydC9lbGVtZW50L3Zpc2l0b3IuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZmlsZV9zeXN0ZW0vZmlsZV9zeXN0ZW0uZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL2VtYmVkZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9lcnJvcl9wcm9jZXNzb3IuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL3Nka19leHQuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvY2FjaGUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvY29udGV4dC5kYXJ0JyBzaG93IEFuYWx5c2lzQ29udGV4dEltcGw7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvc291cmNlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lcnJvci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2phdmFfZW5naW5lLmRhcnQnOwpAQCAtNjcwLDYgKzY3MCw3IEBACiAgICAgICAgICAgICBfd3JpdGVSb3coYnVmZmVyLCBbdGFnLmVsYXBzZWRNcywgcGVyY2VudFN0ciwgdGFnLmxhYmVsXSwKICAgICAgICAgICAgICAgICBjbGFzc2VzOiBbInJpZ2h0IiwgInJpZ2h0IiwgbnVsbF0pOwogICAgICAgICAgIH0KKwogICAgICAgICAgIHRhZ3MuZm9yRWFjaCh3cml0ZVJvdyk7CiAgICAgICAgICAgYnVmZmVyLndyaXRlKCc8L3RhYmxlPicpOwogICAgICAgICAgIC8vCkBAIC02ODQsNiArNjg1LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvdW50c1trZXldID0gY291bnQ7CiAgICAgICAgICAgfQorCiAgICAgICAgICAgU2V0PEFuYWx5c2lzVGFyZ2V0PiBjb3VudGVkVGFyZ2V0cyA9IG5ldyBIYXNoU2V0PEFuYWx5c2lzVGFyZ2V0PigpOwogICAgICAgICAgIE1hcDxTdHJpbmcsIGludD4gc291cmNlVHlwZUNvdW50cyA9IG5ldyBIYXNoTWFwPFN0cmluZywgaW50PigpOwogICAgICAgICAgIE1hcDxTdHJpbmcsIGludD4gdHlwZUNvdW50cyA9IG5ldyBIYXNoTWFwPFN0cmluZywgaW50PigpOwpAQCAtNzUxLDYgKzc1Myw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZXhwbGljaXRTb3VyY2VDb3VudCArPSBleHBsaWNpdFNvdXJjZXMubGVuZ3RoOwogICAgICAgICAgICAgZXhwbGljaXRMaW5lQ291bnQgKz0gbGluZUNvdW50KGV4cGxpY2l0U291cmNlcywgdHJ1ZSk7CiAgICAgICAgICAgICBpbXBsaWNpdFNvdXJjZUNvdW50ICs9IGltcGxpY2l0U291cmNlcy5sZW5ndGg7CkBAIC0xMzk5LDYgKzE0MDIsNyBAQAogICAgICAgICBidWZmZXIud3JpdGUoJzwvdGFibGU+PC9wPicpOwogICAgICAgfQogICAgIH0KKwogICAgIHZvaWQgd3JpdGVPcHRpb25zKFN0cmluZ0J1ZmZlciBidWZmZXIsIEFuYWx5c2lzT3B0aW9uc0ltcGwgb3B0aW9ucywKICAgICAgICAge3ZvaWQgd3JpdGVBZGRpdGlvbmFsT3B0aW9ucyhTdHJpbmdCdWZmZXIgYnVmZmVyKX0pIHsKICAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHsKQEAgLTE3MjAsNiArMTcyNCw3IEBACiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGJ1ZmZlci53cml0ZSgnPC90YWJsZT4nKTsKICAgICAgICAgICB9CisKICAgICAgICAgICB3cml0ZUNvdW50TWFwKCdEaXJlY3RseSBIZWxkIEFTVCBOb2RlcycsIGRhdGEuZGlyZWN0Tm9kZUNvdW50cyk7CiAgICAgICAgICAgd3JpdGVDb3VudE1hcCgnSW5kaXJlY3RseSBIZWxkIEFTVCBOb2RlcycsIGRhdGEuaW5kaXJlY3ROb2RlQ291bnRzKTsKICAgICAgICAgICB3cml0ZUNvdW50TWFwKCdEaXJlY3RseSBIZWxkIEVsZW1lbnRzJywgZGF0YS5lbGVtZW50Q291bnRzKTsKQEAgLTI0MTgsNiArMjQyMyw3IEBACiAgICAgICBidWZmZXIud3JpdGUocGx1Z2luLnJ1bnRpbWVUeXBlKTsKICAgICAgIGJ1ZmZlci53cml0ZSgnKTxicj4nKTsKICAgICB9CisKICAgICBidWZmZXIud3JpdGUoJzxoMz5QbHVnaW4gU3RhdHVzPC9oMz48cD4nKTsKICAgICB3cml0ZVBsdWdpbihBbmFseXNpc0VuZ2luZS5pbnN0YW5jZS5lbmdpbmVQbHVnaW4pOwogICAgIHdyaXRlUGx1Z2luKF9zZXJ2ZXIuc2VydmVyUGx1Z2luKTsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXNpc19zZXJ2ZXIvdGVzdC9jb250ZXh0X21hbmFnZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5c2lzX3NlcnZlci90ZXN0L2NvbnRleHRfbWFuYWdlcl90ZXN0LmRhcnQKaW5kZXggZDBhMjU0OS4uNDFiMDk4MyAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5c2lzX3NlcnZlci90ZXN0L2NvbnRleHRfbWFuYWdlcl90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5c2lzX3NlcnZlci90ZXN0L2NvbnRleHRfbWFuYWdlcl90ZXN0LmRhcnQKQEAgLTEwLDggKzEwLDkgQEAKIGltcG9ydCAncGFja2FnZTphbmFseXplci9maWxlX3N5c3RlbS9maWxlX3N5c3RlbS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9maWxlX3N5c3RlbS9tZW1vcnlfZmlsZV9zeXN0ZW0uZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvaW5zdHJ1bWVudGF0aW9uL2luc3RydW1lbnRhdGlvbi5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL2Vycm9yX3Byb2Nlc3Nvci5kYXJ0JzsKK2ltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvY29udGV4dC9idWlsZGVyLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lcnJvci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2phdmFfaW8uZGFydCc7CkBAIC0yNjUwLDcgKzI2NTEsOCBAQAogICAgIGlmIChjdXJyZW50Q29udGV4dCBpcyBJbnRlcm5hbEFuYWx5c2lzQ29udGV4dCkgewogICAgICAgRW1iZWRkZXJZYW1sTG9jYXRvciBlbWJlZGRlcllhbWxMb2NhdG9yID0KICAgICAgICAgICBkaXNwb3NpdGlvbi5nZXRFbWJlZGRlckxvY2F0b3IocmVzb3VyY2VQcm92aWRlcik7Ci0gICAgICBFbWJlZGRlclNkayBzZGsgPSBuZXcgRW1iZWRkZXJTZGsoZW1iZWRkZXJZYW1sTG9jYXRvci5lbWJlZGRlcllhbWxzKTsKKyAgICAgIEVtYmVkZGVyU2RrIHNkayA9CisgICAgICAgICAgbmV3IEVtYmVkZGVyU2RrKHJlc291cmNlUHJvdmlkZXIsIGVtYmVkZGVyWWFtbExvY2F0b3IuZW1iZWRkZXJZYW1scyk7CiAgICAgICBpZiAoc2RrLmxpYnJhcnlNYXAuc2l6ZSgpID4gMCkgewogICAgICAgICAvLyBXZSBoYXZlIHNvbWUgZW1iZWRkZXIgZGFydDogdXJpIG1hcHBpbmdzLCBhZGQgdGhlIHJlc29sdmVyCiAgICAgICAgIC8vIHRvIHRoZSBsaXN0LgpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zb3VyY2UvZW1iZWRkZXIuZGFydCBiL3BrZy9hbmFseXplci9saWIvc291cmNlL2VtYmVkZGVyLmRhcnQKaW5kZXggNTZhYmM2YS4uOTRhNzJhOCAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL2xpYi9zb3VyY2UvZW1iZWRkZXIuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NvdXJjZS9lbWJlZGRlci5kYXJ0CkBAIC0yLDYgKzIsNyBAQAogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKK0BkZXByZWNhdGVkCiBsaWJyYXJ5IGFuYWx5emVyLnNvdXJjZS5lbWJlZGRlcjsKIAogaW1wb3J0ICdkYXJ0OmNvbGxlY3Rpb24nIHNob3cgSGFzaE1hcDsKQEAgLTE5LDEzICsyMCwxNyBAQAogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9zdW1tYXJ5L2lkbC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTp5YW1sL3lhbWwuZGFydCc7CiAKK2V4cG9ydCAncGFja2FnZTphbmFseXplci9zcmMvY29udGV4dC9idWlsZGVyLmRhcnQnIHNob3cgRW1iZWRkZXJZYW1sTG9jYXRvcjsKKwogY29uc3QgU3RyaW5nIF9EQVJUX0NPTE9OX1BSRUZJWCA9ICdkYXJ0Oic7CiBjb25zdCBTdHJpbmcgX0VNQkVEREVEX0xJQl9NQVBfS0VZID0gJ2VtYmVkZGVkX2xpYnMnOwogCiAvLy8gQ2hlY2sgaWYgdGhpcyBtYXAgZGVmaW5lcyBlbWJlZGRlZCBsaWJyYXJpZXMuCitAZGVwcmVjYXRlZAogYm9vbCBkZWZpbmVzRW1iZWRkZWRMaWJzKE1hcCBtYXApID0+IG1hcFtfRU1CRURERURfTElCX01BUF9LRVldICE9IG51bGw7CiAKIC8vLyBBbiBTREsgYmFja2VkIGJ5IFVSSSBtYXBwaW5ncyBkZXJpdmVkIGZyb20gYW4gYF9lbWJlZGRlci55YW1sYCBmaWxlLgorQGRlcHJlY2F0ZWQKIGNsYXNzIEVtYmVkZGVyU2RrIGV4dGVuZHMgQWJzdHJhY3REYXJ0U2RrIHsKICAgZmluYWwgTWFwPFN0cmluZywgU3RyaW5nPiBfdXJsTWFwcGluZ3MgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4oKTsKIApAQCAtMTc1LDc0ICsxODAsMyBAQAogICAgIHJldHVybiBzZGtTb3VyY2U/LnVyaTsKICAgfQogfQotCi0vLy8gR2l2ZW4gYSBwYWNrYWdlTWFwLCBjaGVjayBpbiBlYWNoIHBhY2thZ2UncyBsaWIgZGlyZWN0b3J5IGZvciB0aGUKLS8vLyBleGlzdGVuY2Ugb2YgYW4gYF9lbWJlZGRlci55YW1sYCBmaWxlLiBJZiB0aGUgZmlsZSBjb250YWlucyBhIHRvcCBsZXZlbAotLy8vIFlhbWxNYXAsIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIFtlbWJlZGRlcllhbWxzXSBtYXAuCi1jbGFzcyBFbWJlZGRlcllhbWxMb2NhdG9yIHsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBFTUJFRERFUl9GSUxFX05BTUUgPSAnX2VtYmVkZGVyLnlhbWwnOwotCi0gIC8vLyBNYXAgZnJvbSBwYWNrYWdlJ3MgbGlicmFyeSBkaXJlY3RvcnkgdG8gdGhlIHBhcnNlZCBZYW1sTWFwLgotICBmaW5hbCBNYXA8Rm9sZGVyLCBZYW1sTWFwPiBlbWJlZGRlcllhbWxzID0gbmV3IEhhc2hNYXA8Rm9sZGVyLCBZYW1sTWFwPigpOwotCi0gIEVtYmVkZGVyWWFtbExvY2F0b3IoTWFwPFN0cmluZywgTGlzdDxGb2xkZXI+PiBwYWNrYWdlTWFwKSB7Ci0gICAgaWYgKHBhY2thZ2VNYXAgIT0gbnVsbCkgewotICAgICAgX3Byb2Nlc3NQYWNrYWdlTWFwKHBhY2thZ2VNYXApOwotICAgIH0KLSAgfQotCi0gIC8vLyBQcm9ncmFtYXRpY2FsbHkgYWRkIGFuIF9lbWJlZGRlci55YW1sIG1hcHBpbmcuCi0gIHZvaWQgYWRkRW1iZWRkZXJZYW1sKEZvbGRlciBsaWJEaXIsIFN0cmluZyBlbWJlZGRlcllhbWwpIHsKLSAgICBfcHJvY2Vzc0VtYmVkZGVyWWFtbChsaWJEaXIsIGVtYmVkZGVyWWFtbCk7Ci0gIH0KLQotICB2b2lkIHJlZnJlc2goTWFwPFN0cmluZywgTGlzdDxGb2xkZXI+PiBwYWNrYWdlTWFwKSB7Ci0gICAgLy8gQ2xlYXIgZXhpc3RpbmcuCi0gICAgZW1iZWRkZXJZYW1scy5jbGVhcigpOwotICAgIGlmIChwYWNrYWdlTWFwICE9IG51bGwpIHsKLSAgICAgIF9wcm9jZXNzUGFja2FnZU1hcChwYWNrYWdlTWFwKTsKLSAgICB9Ci0gIH0KLQotICAvLy8gR2l2ZW4gdGhlIHlhbWwgZm9yIGFuIGVtYmVkZGVyIChbZW1iZWRkZXJZYW1sXSkgYW5kIGEgZm9sZGVyCi0gIC8vLyAoW2xpYkRpcl0pLCBzZXR1cCB0aGUgdXJpIG1hcHBpbmcuCi0gIHZvaWQgX3Byb2Nlc3NFbWJlZGRlcllhbWwoRm9sZGVyIGxpYkRpciwgU3RyaW5nIGVtYmVkZGVyWWFtbCkgewotICAgIFlhbWxOb2RlIHlhbWw7Ci0gICAgdHJ5IHsKLSAgICAgIHlhbWwgPSBsb2FkWWFtbChlbWJlZGRlcllhbWwpOwotICAgIH0gY2F0Y2ggKF8pIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKHlhbWwgaXMhIFlhbWxNYXApIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZW1iZWRkZXJZYW1sc1tsaWJEaXJdID0geWFtbDsKLSAgfQotCi0gIC8vLyBHaXZlbiBhIHBhY2thZ2UgW25hbWVdIGFuZCBhIGxpc3Qgb2YgZm9sZGVycyAoW2xpYkRpcnNdKSwKLSAgLy8vIGFkZCBhbnkgZm91bmQgYF9lbWJlZGRlci55YW1sYCBmaWxlcy4KLSAgdm9pZCBfcHJvY2Vzc1BhY2thZ2UoU3RyaW5nIG5hbWUsIExpc3Q8Rm9sZGVyPiBsaWJEaXJzKSB7Ci0gICAgZm9yIChGb2xkZXIgbGliRGlyIGluIGxpYkRpcnMpIHsKLSAgICAgIFN0cmluZyBlbWJlZGRlcllhbWwgPSBfcmVhZEVtYmVkZGVyWWFtbChsaWJEaXIpOwotICAgICAgaWYgKGVtYmVkZGVyWWFtbCAhPSBudWxsKSB7Ci0gICAgICAgIF9wcm9jZXNzRW1iZWRkZXJZYW1sKGxpYkRpciwgZW1iZWRkZXJZYW1sKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICB2b2lkIF9wcm9jZXNzUGFja2FnZU1hcChNYXA8U3RyaW5nLCBMaXN0PEZvbGRlcj4+IHBhY2thZ2VNYXApIHsKLSAgICBwYWNrYWdlTWFwLmZvckVhY2goX3Byb2Nlc3NQYWNrYWdlKTsKLSAgfQotCi0gIC8vLyBSZWFkIHRoZSBjb250ZW50cyBvZiBbbGliRGlyXS9bRU1CRURERVJfRklMRV9OQU1FXSBhcyBhIHN0cmluZy4KLSAgLy8vIFJldHVybnMgbnVsbCBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LgotICBTdHJpbmcgX3JlYWRFbWJlZGRlcllhbWwoRm9sZGVyIGxpYkRpcikgewotICAgIEZpbGUgZmlsZSA9IGxpYkRpci5nZXRDaGlsZChFTUJFRERFUl9GSUxFX05BTUUpOwotICAgIHRyeSB7Ci0gICAgICByZXR1cm4gZmlsZS5yZWFkQXNTdHJpbmdTeW5jKCk7Ci0gICAgfSBvbiBGaWxlU3lzdGVtRXhjZXB0aW9uIHsKLSAgICAgIC8vIEZpbGUgY2FuJ3QgYmUgcmVhZC4KLSAgICAgIHJldHVybiBudWxsOwotICAgIH0KLSAgfQotfQpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvY29udGV4dC9idWlsZGVyLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydAppbmRleCAzNzdlOWIxLi43MjlmYTY1IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydApAQCAtMTIsOSArMTIsOSBAQAogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL2ZpbGVfc3lzdGVtL2ZpbGVfc3lzdGVtLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9yZXNvbHZlcl9wcm92aWRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvYW5hbHlzaXNfb3B0aW9uc19wcm92aWRlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL3BhY2thZ2VfbWFwX3Jlc29sdmVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9zZGtfZXh0LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9qYXZhX2lvLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9nZW5lcmF0ZWQvc2RrLmRhcnQnOwpAQCAtMjEwLDYgKzIxMCw3IEBACiAgICAgRm9sZGVyIGZvbGRlcigpIHsKICAgICAgIHJldHVybiBfZm9sZGVyID8/PSByZXNvdXJjZVByb3ZpZGVyLmdldFJlc291cmNlKCcuJyk7CiAgICAgfQorCiAgICAgVXJpUmVzb2x2ZXIgZmlsZVJlc29sdmVyID0gZmlsZVJlc29sdmVyUHJvdmlkZXIgPT0gbnVsbAogICAgICAgICA/IG5ldyBSZXNvdXJjZVVyaVJlc29sdmVyKHJlc291cmNlUHJvdmlkZXIpCiAgICAgICAgIDogZmlsZVJlc29sdmVyUHJvdmlkZXIoZm9sZGVyKCkpOwpAQCAtMjY0LDcgKzI2NSw4IEBACiAgICAgICBMaXN0PFN0cmluZz4gZXh0RmlsZVBhdGhzID0gZXh0UmVzb2x2ZXIuZXh0ZW5zaW9uRmlsZVBhdGhzOwogICAgICAgRW1iZWRkZXJZYW1sTG9jYXRvciBsb2NhdG9yID0gbmV3IEVtYmVkZGVyWWFtbExvY2F0b3IocGFja2FnZU1hcCk7CiAgICAgICBNYXA8Rm9sZGVyLCBZYW1sTWFwPiBlbWJlZGRlcllhbWxzID0gbG9jYXRvci5lbWJlZGRlcllhbWxzOwotICAgICAgRW1iZWRkZXJTZGsgZW1iZWRkZXJTZGsgPSBuZXcgRW1iZWRkZXJTZGsoZW1iZWRkZXJZYW1scyk7CisgICAgICBFbWJlZGRlclNkayBlbWJlZGRlclNkayA9CisgICAgICAgICAgbmV3IEVtYmVkZGVyU2RrKHJlc291cmNlUHJvdmlkZXIsIGVtYmVkZGVyWWFtbHMpOwogICAgICAgaWYgKGVtYmVkZGVyU2RrLnNka0xpYnJhcmllcy5sZW5ndGggPiAwKSB7CiAgICAgICAgIC8vCiAgICAgICAgIC8vIFRoZXJlIGlzIGFuIGVtYmVkZGVyIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBjb250ZW50IG9mIHRoZSBTREsgYW5kCkBAIC0zNTcsMyArMzU5LDk4IEBACiAgICAgcmV0dXJuIG51bGw7CiAgIH0KIH0KKworLyoqCisgKiBHaXZlbiBhIHBhY2thZ2UgbWFwLCBjaGVjayBpbiBlYWNoIHBhY2thZ2UncyBsaWIgZGlyZWN0b3J5IGZvciB0aGUgZXhpc3RlbmNlCisgKiBvZiBhbiBgX2VtYmVkZGVyLnlhbWxgIGZpbGUuIElmIHRoZSBmaWxlIGNvbnRhaW5zIGEgdG9wIGxldmVsIFlhbWxNYXAsIGl0CisgKiB3aWxsIGJlIGFkZGVkIHRvIHRoZSBbZW1iZWRkZXJZYW1sc10gbWFwLgorICovCitjbGFzcyBFbWJlZGRlcllhbWxMb2NhdG9yIHsKKyAgLyoqCisgICAqIFRoZSBuYW1lIG9mIHRoZSBlbWJlZGRlciBmaWxlcyBiZWluZyBzZWFyY2hlZCBmb3IuCisgICAqLworICBzdGF0aWMgY29uc3QgU3RyaW5nIEVNQkVEREVSX0ZJTEVfTkFNRSA9ICdfZW1iZWRkZXIueWFtbCc7CisKKyAgLyoqCisgICAqIEEgbWFwcGluZyBmcm9tIGEgcGFja2FnZSdzIGxpYnJhcnkgZGlyZWN0b3J5IHRvIHRoZSBwYXJzZWQgWWFtbE1hcC4KKyAgICovCisgIGZpbmFsIE1hcDxGb2xkZXIsIFlhbWxNYXA+IGVtYmVkZGVyWWFtbHMgPSBuZXcgSGFzaE1hcDxGb2xkZXIsIFlhbWxNYXA+KCk7CisKKyAgLyoqCisgICAqIEluaXRpYWxpemUgYSBuZXdseSBjcmVhdGVkIGxvY2F0b3IgYnkgcHJvY2Vzc2luZyB0aGUgcGFja2FnZXMgaW4gdGhlIGdpdmVuCisgICAqIFtwYWNrYWdlTWFwXS4KKyAgICovCisgIEVtYmVkZGVyWWFtbExvY2F0b3IoTWFwPFN0cmluZywgTGlzdDxGb2xkZXI+PiBwYWNrYWdlTWFwKSB7CisgICAgaWYgKHBhY2thZ2VNYXAgIT0gbnVsbCkgeworICAgICAgX3Byb2Nlc3NQYWNrYWdlTWFwKHBhY2thZ2VNYXApOworICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBQcm9ncmFtYXRpY2FsbHkgYWRkIGFuIGBfZW1iZWRkZXIueWFtbGAgbWFwcGluZy4KKyAgICovCisgIHZvaWQgYWRkRW1iZWRkZXJZYW1sKEZvbGRlciBsaWJEaXIsIFN0cmluZyBlbWJlZGRlcllhbWwpIHsKKyAgICBfcHJvY2Vzc0VtYmVkZGVyWWFtbChsaWJEaXIsIGVtYmVkZGVyWWFtbCk7CisgIH0KKworICAvKioKKyAgICogUmVmcmVzaCB0aGUgbWFwIG9mIGxvY2F0ZWQgZmlsZXMgdG8gdGhvc2UgZm91bmQgYnkgcHJvY2Vzc2luZyB0aGUgZ2l2ZW4KKyAgICogW3BhY2thZ2VNYXBdLgorICAgKi8KKyAgdm9pZCByZWZyZXNoKE1hcDxTdHJpbmcsIExpc3Q8Rm9sZGVyPj4gcGFja2FnZU1hcCkgeworICAgIC8vIENsZWFyIGV4aXN0aW5nLgorICAgIGVtYmVkZGVyWWFtbHMuY2xlYXIoKTsKKyAgICBpZiAocGFja2FnZU1hcCAhPSBudWxsKSB7CisgICAgICBfcHJvY2Vzc1BhY2thZ2VNYXAocGFja2FnZU1hcCk7CisgICAgfQorICB9CisKKyAgLyoqCisgICAqIEdpdmVuIHRoZSB5YW1sIGZvciBhbiBlbWJlZGRlciAoW2VtYmVkZGVyWWFtbF0pIGFuZCBhIGZvbGRlciAoW2xpYkRpcl0pLAorICAgKiBzZXR1cCB0aGUgdXJpIG1hcHBpbmcuCisgICAqLworICB2b2lkIF9wcm9jZXNzRW1iZWRkZXJZYW1sKEZvbGRlciBsaWJEaXIsIFN0cmluZyBlbWJlZGRlcllhbWwpIHsKKyAgICB0cnkgeworICAgICAgWWFtbE5vZGUgeWFtbCA9IGxvYWRZYW1sKGVtYmVkZGVyWWFtbCk7CisgICAgICBpZiAoeWFtbCBpcyBZYW1sTWFwKSB7CisgICAgICAgIGVtYmVkZGVyWWFtbHNbbGliRGlyXSA9IHlhbWw7CisgICAgICB9CisgICAgfSBjYXRjaCAoXykgeworICAgICAgLy8gSWdub3JlZAorICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBHaXZlbiBhIHBhY2thZ2UgW25hbWVdIGFuZCBhIGxpc3Qgb2YgZm9sZGVycyAoW2xpYkRpcnNdKSwgcHJvY2VzcyBhbnkKKyAgICogYF9lbWJlZGRlci55YW1sYCBmaWxlcyB0aGF0IGFyZSBmb3VuZCBpbiBhbnkgb2YgdGhlIGZvbGRlcnMuCisgICAqLworICB2b2lkIF9wcm9jZXNzUGFja2FnZShTdHJpbmcgbmFtZSwgTGlzdDxGb2xkZXI+IGxpYkRpcnMpIHsKKyAgICBmb3IgKEZvbGRlciBsaWJEaXIgaW4gbGliRGlycykgeworICAgICAgU3RyaW5nIGVtYmVkZGVyWWFtbCA9IF9yZWFkRW1iZWRkZXJZYW1sKGxpYkRpcik7CisgICAgICBpZiAoZW1iZWRkZXJZYW1sICE9IG51bGwpIHsKKyAgICAgICAgX3Byb2Nlc3NFbWJlZGRlcllhbWwobGliRGlyLCBlbWJlZGRlcllhbWwpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBQcm9jZXNzIGVhY2ggb2YgdGhlIGVudHJpZXMgaW4gdGhlIFtwYWNrYWdlTWFwXS4KKyAgICovCisgIHZvaWQgX3Byb2Nlc3NQYWNrYWdlTWFwKE1hcDxTdHJpbmcsIExpc3Q8Rm9sZGVyPj4gcGFja2FnZU1hcCkgeworICAgIHBhY2thZ2VNYXAuZm9yRWFjaChfcHJvY2Vzc1BhY2thZ2UpOworICB9CisKKyAgLyoqCisgICAqIFJlYWQgYW5kIHJldHVybiB0aGUgY29udGVudHMgb2YgW2xpYkRpcl0vW0VNQkVEREVSX0ZJTEVfTkFNRV0sIG9yIGBudWxsYCBpZgorICAgKiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LgorICAgKi8KKyAgU3RyaW5nIF9yZWFkRW1iZWRkZXJZYW1sKEZvbGRlciBsaWJEaXIpIHsKKyAgICBGaWxlIGZpbGUgPSBsaWJEaXIuZ2V0Q2hpbGQoRU1CRURERVJfRklMRV9OQU1FKTsKKyAgICB0cnkgeworICAgICAgcmV0dXJuIGZpbGUucmVhZEFzU3RyaW5nU3luYygpOworICAgIH0gb24gRmlsZVN5c3RlbUV4Y2VwdGlvbiB7CisgICAgICAvLyBGaWxlIGNhbid0IGJlIHJlYWQuCisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL2NvbnRleHQvY29udGV4dC5kYXJ0IGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvY29udGV4dC9jb250ZXh0LmRhcnQKaW5kZXggZmUzM2UzYS4uMjRiZjhkNSAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvY29udGV4dC9jb250ZXh0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvY29udGV4dC9jb250ZXh0LmRhcnQKQEAgLTEzLDggKzEzLDggQEAKIGltcG9ydCAncGFja2FnZTphbmFseXplci9pbnN0cnVtZW50YXRpb24vaW5zdHJ1bWVudGF0aW9uLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9yZXNvbHZlcl9wcm92aWRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9wbHVnaW4vdGFzay5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NhbmNlbGFibGVfZnV0dXJlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydCcgc2hvdyBFbWJlZGRlcllhbWxMb2NhdG9yOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2NhY2hlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9kYXJ0L2VsZW1lbnQvZWxlbWVudC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZGFydC9lbGVtZW50L3R5cGUuZGFydCc7CkBAIC0xMjUxLDYgKzEyNTEsNyBAQAogICAgICAgc2V0VmFsdWUoUmVzdWx0RGVzY3JpcHRvciByZXN1bHQsIHZhbHVlKSB7CiAgICAgICAgIGVudHJ5LnNldFZhbHVlKHJlc3VsdCwgdmFsdWUsIFRhcmdldGVkUmVzdWx0LkVNUFRZX0xJU1QpOwogICAgICAgfQorCiAgICAgICBzZXRWYWx1ZShCVUlMRF9ESVJFQ1RJVkVTX0VSUk9SUywgQW5hbHlzaXNFcnJvci5OT19FUlJPUlMpOwogICAgICAgc2V0VmFsdWUoQlVJTERfTElCUkFSWV9FUlJPUlMsIEFuYWx5c2lzRXJyb3IuTk9fRVJST1JTKTsKICAgICAgIC8vIENMQVNTX0VMRU1FTlRTCkBAIC0xNzY3LDYgKzE3NjgsNyBAQAogICAgICAgfQogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKwogICAgIHJldHVybiBfcmVmSHRtbChsaWJyYXJ5U291cmNlKTsKICAgfQogCmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9kYXJ0L2VsZW1lbnQvZWxlbWVudC5kYXJ0IGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvZGFydC9lbGVtZW50L2VsZW1lbnQuZGFydAppbmRleCBkZGI0MTRlLi42ZjFlYzhkIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9kYXJ0L2VsZW1lbnQvZWxlbWVudC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvZWxlbWVudC9lbGVtZW50LmRhcnQKQEAgLTU4NzIsMTcgKzU4NzIsNiBAQAogICAgKiBjYWNoZWQgbGlicmFyeSBjeWNsZXMgaW4gdGhlIGVsZW1lbnQgbW9kZWwgd2hpY2ggbWF5IGhhdmUgYmVlbiBpbnZhbGlkYXRlZC4KICAgICovCiAgIHZvaWQgaW52YWxpZGF0ZUxpYnJhcnlDeWNsZXMoKSB7Ci0gICAgaWYgKF9saWJyYXJ5Q3ljbGUgPT0gbnVsbCkgewotICAgICAgLy8gV2UgaGF2ZSBhbHJlYWR5IGludmFsaWRhdGVkIHRoaXMgbm9kZSwgb3Igd2UgaGF2ZSBuZXZlciBjb21wdXRlZAotICAgICAgLy8gbGlicmFyeSBjeWNsZSBpbmZvcm1hdGlvbiBmb3IgaXQuICBJbiB0aGUgZm9ybWVyIGNhc2UsIHdlJ3JlIGRvbmUuIEluCi0gICAgICAvLyB0aGUgbGF0dGVyIGNhc2UsIHRoaXMgbm9kZSBjYW5ub3QgYmUgcmVhY2hhYmxlIGZyb20gYW55IG5vZGUgZm9yIHdoaWNoCi0gICAgICAvLyB3ZSBoYXZlIGNvbXB1dGVkIGxpYnJhcnkgY3ljbGUgaW5mb3JtYXRpb24uICBUaGVyZWZvcmUsIGFueSBlZGdlcyBhZGRlZAotICAgICAgLy8gb3IgZGVsZXRlZCBpbiB0aGUgdXBkYXRlIGNhdXNpbmcgdGhpcyBpbnZhbGlkYXRpb24gY2FuIG9ubHkgYmUgZWRnZXMgdG8KLSAgICAgIC8vIG5vZGVzIHdoaWNoIGVpdGhlciBoYXZlIG5vIGxpYnJhcnkgY3ljbGUgaW5mb3JtYXRpb24gKGFuZCBoZW5jZSBkbyBub3QKLSAgICAgIC8vIG5lZWQgaW52YWxpZGF0aW9uKSwgb3Igd2hpY2ggZG8gbm90IHJlYWNoIHRoaXMgbm9kZSBieSBhbnkgcGF0aC4KLSAgICAgIC8vIEluIGVpdGhlciBjYXNlLCBubyBmdXJ0aGVyIGludmFsaWRhdGlvbiBpcyBuZWVkZWQuCi0gICAgICByZXR1cm47Ci0gICAgfQogICAgIC8vIElmIHdlIGhhdmUgcHJlLWNvbXB1dGVkIGxpYnJhcnkgY3ljbGUgaW5mb3JtYXRpb24sIHRoZW4gd2UgbXVzdAogICAgIC8vIGludmFsaWRhdGUgdGhlIGluZm9ybWF0aW9uIGJvdGggb24gdGhpcyBlbGVtZW50LCBhbmQgb24gY2VydGFpbgogICAgIC8vIG90aGVyIGVsZW1lbnRzLiAgRWRnZXMgb3JpZ2luYXRpbmcgYXQgdGhpcyBub2RlIG1heSBoYXZlIGJlZW4KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvZWxlbWVudC90eXBlLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9kYXJ0L2VsZW1lbnQvdHlwZS5kYXJ0CmluZGV4IGRmMTkwMDguLjJjNTkyMjggMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvZWxlbWVudC90eXBlLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvZGFydC9lbGVtZW50L3R5cGUuZGFydApAQCAtMTk1NywxMSArMTk1NywxOSBAQAogICAgIHNqLmFkZChqKTsKICAgICAvLyBjb21wdXRlIGludGVyc2VjdGlvbiwgcmVmZXJlbmNlIGFzIHNldCAncycKICAgICBMaXN0PEludGVyZmFjZVR5cGU+IHMgPSBfaW50ZXJzZWN0aW9uKHNpLCBzaik7CisgICAgcmV0dXJuIGNvbXB1dGVUeXBlQXRNYXhVbmlxdWVEZXB0aChzKTsKKyAgfQorICAKKyAgLyoqCisgICAqIFJldHVybiB0aGUgdHlwZSBmcm9tIHRoZSBbdHlwZXNdIGxpc3QgdGhhdCBoYXMgdGhlIGxvbmdlc3QgaW5oZXJpdGVuY2UgcGF0aAorICAgKiB0byBPYmplY3Qgb2YgdW5pcXVlIGxlbmd0aC4KKyAgICovCisgIHN0YXRpYyBJbnRlcmZhY2VUeXBlIGNvbXB1dGVUeXBlQXRNYXhVbmlxdWVEZXB0aChMaXN0PEludGVyZmFjZVR5cGU+IHR5cGVzKSB7CiAgICAgLy8gZm9yIGVhY2ggZWxlbWVudCBpbiBTZXQgcywgY29tcHV0ZSB0aGUgbGFyZ2VzdCBpbmhlcml0YW5jZSBwYXRoIHRvIE9iamVjdAotICAgIExpc3Q8aW50PiBkZXB0aHMgPSBuZXcgTGlzdDxpbnQ+LmZpbGxlZChzLmxlbmd0aCwgMCk7CisgICAgTGlzdDxpbnQ+IGRlcHRocyA9IG5ldyBMaXN0PGludD4uZmlsbGVkKHR5cGVzLmxlbmd0aCwgMCk7CiAgICAgaW50IG1heERlcHRoID0gMDsKLSAgICBmb3IgKGludCBuID0gMDsgbiA8IHMubGVuZ3RoOyBuKyspIHsKLSAgICAgIGRlcHRoc1tuXSA9IGNvbXB1dGVMb25nZXN0SW5oZXJpdGFuY2VQYXRoVG9PYmplY3Qoc1tuXSk7CisgICAgZm9yIChpbnQgbiA9IDA7IG4gPCB0eXBlcy5sZW5ndGg7IG4rKykgeworICAgICAgZGVwdGhzW25dID0gY29tcHV0ZUxvbmdlc3RJbmhlcml0YW5jZVBhdGhUb09iamVjdCh0eXBlc1tuXSk7CiAgICAgICBpZiAoZGVwdGhzW25dID4gbWF4RGVwdGgpIHsKICAgICAgICAgbWF4RGVwdGggPSBkZXB0aHNbbl07CiAgICAgICB9CkBAIC0xOTc4LDcgKzE5ODYsNyBAQAogICAgICAgICB9CiAgICAgICB9CiAgICAgICBpZiAobnVtYmVyT2ZUeXBlc0F0TWF4RGVwdGggPT0gMSkgewotICAgICAgICByZXR1cm4gc1tpbmRleE9mTGVhc3RVcHBlckJvdW5kXTsKKyAgICAgICAgcmV0dXJuIHR5cGVzW2luZGV4T2ZMZWFzdFVwcGVyQm91bmRdOwogICAgICAgfQogICAgIH0KICAgICAvLyBTaG91bGQgYmUgaW1wb3NzaWJsZS0tdGhlcmUgc2hvdWxkIGFsd2F5cyBiZSBleGFjdGx5IG9uZSB0eXBlIHdpdGggdGhlCmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9kYXJ0L3Nkay9zZGsuZGFydCBiL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvc2RrL3Nkay5kYXJ0CmluZGV4IDMzOGE1NjAuLjI3ZTU1NDkgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvc2RrL3Nkay5kYXJ0CisrKyBiL3BrZy9hbmFseXplci9saWIvc3JjL2RhcnQvc2RrL3Nkay5kYXJ0CkBAIC0xMTksNiArMTE5LDIwIEBACiAgICAgX3VzZVN1bW1hcnkgPSB1c2U7CiAgIH0KIAorICAvKioKKyAgICogQWRkIHRoZSBleHRlbnNpb25zIGZyb20gb25lIG9yIG1vcmUgc2RrIGV4dGVuc2lvbiBmaWxlcyB0byB0aGlzIHNkay4gVGhlCisgICAqIFtleHRlbnNpb25zXSBzaG91bGQgYmUgYSB0YWJsZSBtYXBwaW5nIHRoZSBuYW1lcyBvZiBleHRlbnNpb25zIHRvIHRoZSBwYXRocworICAgKiB3aGVyZSB0aG9zZSBleHRlbnNpb25zIGNhbiBiZSBmb3VuZC4KKyAgICovCisgIHZvaWQgYWRkRXh0ZW5zaW9ucyhNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dGVuc2lvbnMpIHsKKyAgICBleHRlbnNpb25zLmZvckVhY2goKFN0cmluZyB1cmksIFN0cmluZyBwYXRoKSB7CisgICAgICBTdHJpbmcgc2hvcnROYW1lID0gdXJpLnN1YnN0cmluZyh1cmkuaW5kZXhPZignOicpICsgMSk7CisgICAgICBTZGtMaWJyYXJ5SW1wbCBsaWJyYXJ5ID0gbmV3IFNka0xpYnJhcnlJbXBsKHNob3J0TmFtZSk7CisgICAgICBsaWJyYXJ5LnBhdGggPSBwYXRoOworICAgICAgbGlicmFyeU1hcC5zZXRMaWJyYXJ5KHVyaSwgbGlicmFyeSk7CisgICAgfSk7CisgIH0KKwogICBAb3ZlcnJpZGUKICAgU291cmNlIGZyb21GaWxlVXJpKFVyaSB1cmkpIHsKICAgICBGaWxlIGZpbGUgPQpAQCAtMjg0LDggKzI5OCw3IEBACiAgICAgICBzcmNQYXRoID0gbGlicmFyeS5wYXRoOwogICAgIH0gZWxzZSB7CiAgICAgICBTdHJpbmcgbGlicmFyeVBhdGggPSBsaWJyYXJ5LnBhdGg7Ci0gICAgICBpbnQgaW5kZXggPQotICAgICAgICAgIGxpYnJhcnlQYXRoLmxhc3RJbmRleE9mKHJlc291cmNlUHJvdmlkZXIucGF0aENvbnRleHQuc2VwYXJhdG9yKTsKKyAgICAgIGludCBpbmRleCA9IGxpYnJhcnlQYXRoLmxhc3RJbmRleE9mKHNlcGFyYXRvcik7CiAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKICAgICAgICAgaW5kZXggPSBsaWJyYXJ5UGF0aC5sYXN0SW5kZXhPZignLycpOwogICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKQEAgLTI5NSw4ICszMDgsNyBAQAogICAgICAgU3RyaW5nIHByZWZpeCA9IGxpYnJhcnlQYXRoLnN1YnN0cmluZygwLCBpbmRleCArIDEpOwogICAgICAgc3JjUGF0aCA9ICckcHJlZml4JHJlbGF0aXZlUGF0aCc7CiAgICAgfQotICAgIFN0cmluZyBmaWxlUGF0aCA9Ci0gICAgICAgIHNyY1BhdGgucmVwbGFjZUFsbCgnLycsIHJlc291cmNlUHJvdmlkZXIucGF0aENvbnRleHQuc2VwYXJhdG9yKTsKKyAgICBTdHJpbmcgZmlsZVBhdGggPSBzcmNQYXRoLnJlcGxhY2VBbGwoJy8nLCBzZXBhcmF0b3IpOwogICAgIHRyeSB7CiAgICAgICBGaWxlIGZpbGUgPSByZXNvdXJjZVByb3ZpZGVyLmdldEZpbGUoZmlsZVBhdGgpOwogICAgICAgcmV0dXJuIGZpbGUuY3JlYXRlU291cmNlKHBhcnNlVXJpV2l0aEV4Y2VwdGlvbihkYXJ0VXJpKSk7CkBAIC01MjIsOCArNTM0LDcgQEAKICAgU3RyaW5nIGdldFJlbGF0aXZlUGF0aEZyb21GaWxlKEZpbGUgZmlsZSkgewogICAgIFN0cmluZyBmaWxlUGF0aCA9IGZpbGUucGF0aDsKICAgICBTdHJpbmcgbGliUGF0aCA9IGxpYnJhcnlEaXJlY3RvcnkucGF0aDsKLSAgICBpZiAoIWZpbGVQYXRoCi0gICAgICAgIC5zdGFydHNXaXRoKCIkbGliUGF0aCR7cmVzb3VyY2VQcm92aWRlci5wYXRoQ29udGV4dC5zZXBhcmF0b3J9IikpIHsKKyAgICBpZiAoIWZpbGVQYXRoLnN0YXJ0c1dpdGgoIiRsaWJQYXRoJHNlcGFyYXRvciIpKSB7CiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAgICAgcmV0dXJuIGZpbGVQYXRoLnN1YnN0cmluZyhsaWJQYXRoLmxlbmd0aCArIDEpOwpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL2VuZ2luZS5kYXJ0IGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL2VuZ2luZS5kYXJ0CmluZGV4IDk2NzA5NWEuLmIyMjkxNjkgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9lbmdpbmUuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvZW5naW5lLmRhcnQKQEAgLTEyLDggKzEyLDggQEAKIGltcG9ydCAncGFja2FnZTphbmFseXplci9kYXJ0L2VsZW1lbnQvZWxlbWVudC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9pbnN0cnVtZW50YXRpb24vaW5zdHJ1bWVudGF0aW9uLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9yZXNvbHZlcl9wcm92aWRlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NhbmNlbGFibGVfZnV0dXJlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydCcgc2hvdyBFbWJlZGRlcllhbWxMb2NhdG9yOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2NhY2hlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2NvbnRleHQuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9jb25zdGFudC5kYXJ0JzsKQEAgLTE0NTYsNiArMTQ1Niw3IEBACiAgICAgICBidWZmZXIud3JpdGUob3B0aW9uTmFtZSk7CiAgICAgICBuZWVkc1NlcGFyYXRvciA9IHRydWU7CiAgICAgfQorCiAgICAgaWYgKGVuY29kaW5nICYgRU5BQkxFX0FTU0VSVF9GTEFHID4gMCkgewogICAgICAgYWRkKCdhc3NlcnQnKTsKICAgICB9CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvZXJyb3IuZGFydCBiL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9lcnJvci5kYXJ0CmluZGV4IDcyODQzNWYuLmRiOWFkN2VjIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvZXJyb3IuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvZXJyb3IuZGFydApAQCAtMjc0Myw2ICsyNzQzLDcgQEAKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX0JPT0xfRVhQUkVTU0lPTiwKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX0JPT0xfTkVHQVRJT05fRVhQUkVTU0lPTiwKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX0JPT0xfT1BFUkFORCwKKyAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX05VTExBQkxFX0ZJRUxEX05PVF9JTklUSUFMSVpFRCwKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX1RZUEVfQVNfVFlQRV9BUkdVTUVOVCwKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuUkVUVVJOX09GX0lOVkFMSURfVFlQRSwKICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuVFlQRV9BUkdVTUVOVF9OT1RfTUFUQ0hJTkdfQk9VTkRTLApAQCAtNDI4MSw2ICs0MjgyLDE0IEBACiAgICAgICAgICAgIlRoZSBvcGVyYW5kcyBvZiB0aGUgJ3swfScgb3BlcmF0b3IgbXVzdCBiZSBhc3NpZ25hYmxlIHRvICdib29sJyIpOwogCiAgIC8qKgorICAgKgorICAgKi8KKyAgc3RhdGljIGNvbnN0IFN0YXRpY1R5cGVXYXJuaW5nQ29kZSBOT05fTlVMTEFCTEVfRklFTERfTk9UX0lOSVRJQUxJWkVEID0KKyAgICAgIGNvbnN0IFN0YXRpY1R5cGVXYXJuaW5nQ29kZSgKKyAgICAgICAgICAnTk9OX05VTExBQkxFX0ZJRUxEX05PVF9JTklUSUFMSVpFRCcsCisgICAgICAgICAgIlZhcmlhYmxlICd7MH0nIG9mIG5vbi1udWxsYWJsZSB0eXBlICd7MX0nIG11c3QgYmUgaW5pdGlhbGl6ZWQiKTsKKworICAvKioKICAgICogMTUuOCBQYXJhbWV0ZXJpemVkIFR5cGVzOiBJdCBpcyBhIHN0YXRpYyB0eXBlIHdhcm5pbmcgaWYgPGk+QTxzdWI+aTwvc3ViPiwKICAgICogMSAmbHQ7PSBpICZsdDs9IG48L2k+IGRvZXMgbm90IGRlbm90ZSBhIHR5cGUgaW4gdGhlIGVuY2xvc2luZyBsZXhpY2FsIHNjb3BlLgogICAgKi8KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9pbmNyZW1lbnRhbF9yZXNvbHZlci5kYXJ0IGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL2luY3JlbWVudGFsX3Jlc29sdmVyLmRhcnQKaW5kZXggMTE5NGY1Zi4uMjc0YjdhMSAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL2luY3JlbWVudGFsX3Jlc29sdmVyLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL2luY3JlbWVudGFsX3Jlc29sdmVyLmRhcnQKQEAgLTU2OSw0MSArNTY5LDUyIEBACiAgICAgICAgIGludCBlbmRPZmZzZXRPbGQgPSBtYXRoLm1heChmaXJzdE9mZnNldE9sZCwgbGFzdE9mZnNldE9sZCk7CiAgICAgICAgIGludCBiZWdpbk9mZnNldE5ldyA9IG1hdGgubWluKGZpcnN0T2Zmc2V0TmV3LCBsYXN0T2Zmc2V0TmV3KTsKICAgICAgICAgaW50IGVuZE9mZnNldE5ldyA9IG1hdGgubWF4KGZpcnN0T2Zmc2V0TmV3LCBsYXN0T2Zmc2V0TmV3KTsKLSAgICAgICAgLy8gY2hlY2sgZm9yIGEgd2hpdGVzcGFjZSBvbmx5IGNoYW5nZQotICAgICAgICBpZiAoaWRlbnRpY2FsKGxhc3RQYWlyLm9sZFRva2VuLCBmaXJzdFBhaXIub2xkVG9rZW4pICYmCi0gICAgICAgICAgICBpZGVudGljYWwobGFzdFBhaXIubmV3VG9rZW4sIGZpcnN0UGFpci5uZXdUb2tlbikpIHsKKyAgICAgICAgLy8gQSBwdXJlIHdoaXRlc3BhY2UgY2hhbmdlLgorICAgICAgICBpZiAoaWRlbnRpY2FsKGZpcnN0UGFpci5vbGRUb2tlbiwgbGFzdFBhaXIub2xkVG9rZW4pICYmCisgICAgICAgICAgICBpZGVudGljYWwoZmlyc3RQYWlyLm5ld1Rva2VuLCBsYXN0UGFpci5uZXdUb2tlbikgJiYKKyAgICAgICAgICAgIGZpcnN0UGFpci5raW5kID09IF9Ub2tlbkRpZmZlcmVuY2VLaW5kLk9GRlNFVCkgewogICAgICAgICAgIF91cGRhdGVPZmZzZXQgPSBiZWdpbk9mZnNldE9sZCAtIDE7CiAgICAgICAgICAgX3VwZGF0ZUVuZE9sZCA9IGVuZE9mZnNldE9sZDsKICAgICAgICAgICBfdXBkYXRlRW5kTmV3ID0gZW5kT2Zmc2V0TmV3OwogICAgICAgICAgIF91cGRhdGVEZWx0YSA9IG5ld1VuaXQubGVuZ3RoIC0gX29sZFVuaXQubGVuZ3RoOwotICAgICAgICAgIC8vIEEgRGFydCBkb2N1bWVudGF0aW9uIGNvbW1lbnQgY2hhbmdlLgotICAgICAgICAgIGlmIChmaXJzdFBhaXIua2luZCA9PSBfVG9rZW5EaWZmZXJlbmNlS2luZC5DT01NRU5UX0RPQykgewotICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gX3Jlc29sdmVDb21tZW50RG9jKG5ld1VuaXQsIGZpcnN0UGFpcik7CisgICAgICAgICAgbG9nZ2VyLmxvZygnV2hpdGVzcGFjZSBjaGFuZ2UuJyk7CisgICAgICAgICAgX3NoaWZ0VG9rZW5zKGZpcnN0UGFpci5vbGRUb2tlbiwgdHJ1ZSk7CisgICAgICAgICAgSW5jcmVtZW50YWxSZXNvbHZlciBpbmNyZW1lbnRhbFJlc29sdmVyID0gbmV3IEluY3JlbWVudGFsUmVzb2x2ZXIoCisgICAgICAgICAgICAgIF9jYWNoZSwKKyAgICAgICAgICAgICAgX3NvdXJjZUVudHJ5LAorICAgICAgICAgICAgICBfdW5pdEVudHJ5LAorICAgICAgICAgICAgICBfdW5pdEVsZW1lbnQsCisgICAgICAgICAgICAgIF91cGRhdGVPZmZzZXQsCisgICAgICAgICAgICAgIF91cGRhdGVFbmRPbGQsCisgICAgICAgICAgICAgIF91cGRhdGVFbmROZXcpOworICAgICAgICAgIGluY3JlbWVudGFsUmVzb2x2ZXIuX3VwZGF0ZUNhY2hlKCk7CisgICAgICAgICAgaW5jcmVtZW50YWxSZXNvbHZlci5fdXBkYXRlRWxlbWVudE5hbWVPZmZzZXRzKCk7CisgICAgICAgICAgaW5jcmVtZW50YWxSZXNvbHZlci5fc2hpZnRFbnRyeUVycm9ycygpOworICAgICAgICAgIF91cGRhdGVFbnRyeSgpOworICAgICAgICAgIGxvZ2dlci5sb2coJ1N1Y2Nlc3MuJyk7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gQSBEYXJ0IGRvY3VtZW50YXRpb24gY29tbWVudCBjaGFuZ2UuCisgICAgICAgIHsKKyAgICAgICAgICBUb2tlbiBmaXJzdE9sZFRva2VuID0gZmlyc3RQYWlyLm9sZFRva2VuOworICAgICAgICAgIFRva2VuIGZpcnN0TmV3VG9rZW4gPSBmaXJzdFBhaXIubmV3VG9rZW47CisgICAgICAgICAgVG9rZW4gbGFzdE9sZFRva2VuID0gbGFzdFBhaXIub2xkVG9rZW47CisgICAgICAgICAgVG9rZW4gbGFzdE5ld1Rva2VuID0gbGFzdFBhaXIubmV3VG9rZW47CisgICAgICAgICAgaWYgKGZpcnN0T2xkVG9rZW4gaXMgRG9jdW1lbnRhdGlvbkNvbW1lbnRUb2tlbiAmJgorICAgICAgICAgICAgICBmaXJzdE5ld1Rva2VuIGlzIERvY3VtZW50YXRpb25Db21tZW50VG9rZW4gJiYKKyAgICAgICAgICAgICAgbGFzdE9sZFRva2VuIGlzIERvY3VtZW50YXRpb25Db21tZW50VG9rZW4gJiYKKyAgICAgICAgICAgICAgbGFzdE5ld1Rva2VuIGlzIERvY3VtZW50YXRpb25Db21tZW50VG9rZW4gJiYKKyAgICAgICAgICAgICAgaWRlbnRpY2FsKGZpcnN0T2xkVG9rZW4ucGFyZW50LCBsYXN0T2xkVG9rZW4ucGFyZW50KSAmJgorICAgICAgICAgICAgICBpZGVudGljYWwoZmlyc3ROZXdUb2tlbi5wYXJlbnQsIGxhc3ROZXdUb2tlbi5wYXJlbnQpKSB7CisgICAgICAgICAgICBfdXBkYXRlT2Zmc2V0ID0gYmVnaW5PZmZzZXRPbGQ7CisgICAgICAgICAgICBfdXBkYXRlRW5kT2xkID0gZmlyc3RPbGRUb2tlbi5wYXJlbnQub2Zmc2V0OworICAgICAgICAgICAgX3VwZGF0ZUVuZE5ldyA9IGZpcnN0TmV3VG9rZW4ucGFyZW50Lm9mZnNldDsKKyAgICAgICAgICAgIF91cGRhdGVEZWx0YSA9IG5ld1VuaXQubGVuZ3RoIC0gX29sZFVuaXQubGVuZ3RoOworICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0KKyAgICAgICAgICAgICAgICBfcmVzb2x2ZUNvbW1lbnREb2MobmV3VW5pdCwgZmlyc3RPbGRUb2tlbiwgZmlyc3ROZXdUb2tlbik7CiAgICAgICAgICAgICBsb2dnZXIubG9nKCdEb2N1bWVudGF0aW9uIGNvbW1lbnQgcmVzb2x2ZWQ6ICRzdWNjZXNzJyk7CiAgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKICAgICAgICAgICB9Ci0gICAgICAgICAgLy8gQSBwdXJlIHdoaXRlc3BhY2UgY2hhbmdlLgotICAgICAgICAgIGlmIChmaXJzdFBhaXIua2luZCA9PSBfVG9rZW5EaWZmZXJlbmNlS2luZC5PRkZTRVQpIHsKLSAgICAgICAgICAgIGxvZ2dlci5sb2coJ1doaXRlc3BhY2UgY2hhbmdlLicpOwotICAgICAgICAgICAgX3NoaWZ0VG9rZW5zKGZpcnN0UGFpci5vbGRUb2tlbik7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIEluY3JlbWVudGFsUmVzb2x2ZXIgaW5jcmVtZW50YWxSZXNvbHZlciA9IG5ldyBJbmNyZW1lbnRhbFJlc29sdmVyKAotICAgICAgICAgICAgICAgICAgX2NhY2hlLAotICAgICAgICAgICAgICAgICAgX3NvdXJjZUVudHJ5LAotICAgICAgICAgICAgICAgICAgX3VuaXRFbnRyeSwKLSAgICAgICAgICAgICAgICAgIF91bml0RWxlbWVudCwKLSAgICAgICAgICAgICAgICAgIF91cGRhdGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICBfdXBkYXRlRW5kT2xkLAotICAgICAgICAgICAgICAgICAgX3VwZGF0ZUVuZE5ldyk7Ci0gICAgICAgICAgICAgIGluY3JlbWVudGFsUmVzb2x2ZXIuX3VwZGF0ZUNhY2hlKCk7Ci0gICAgICAgICAgICAgIGluY3JlbWVudGFsUmVzb2x2ZXIuX3VwZGF0ZUVsZW1lbnROYW1lT2Zmc2V0cygpOwotICAgICAgICAgICAgICBpbmNyZW1lbnRhbFJlc29sdmVyLl9zaGlmdEVudHJ5RXJyb3JzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBfdXBkYXRlRW50cnkoKTsKLSAgICAgICAgICAgIGxvZ2dlci5sb2coJ1N1Y2Nlc3MuJyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gZmFsbC10aHJvdWdoLCBlbmQtb2YtbGluZSBjb21tZW50CiAgICAgICAgIH0KICAgICAgICAgLy8gRmluZCBub2RlcyBjb3ZlcmluZyB0aGUgIm9sZCIgYW5kICJuZXciIHRva2VuIHJhbmdlcy4KICAgICAgICAgQXN0Tm9kZSBvbGROb2RlID0KQEAgLTY3NywxNCArNjg4LDYgQEAKICAgICAgICAgICAgIGxvZ2dlci5sb2coJ0ZhaWx1cmU6IG5vIGVuY2xvc2luZyBmdW5jdGlvbiBib2R5IG9yIGV4ZWN1dGFibGUuJyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgfQotICAgICAgICAgIC8vIGZhaWwgaWYgYSBjb21tZW50IGNoYW5nZSBvdXRzaWRlIHRoZSBib2RpZXMKLSAgICAgICAgICBpZiAoZmlyc3RQYWlyLmtpbmQgPT0gX1Rva2VuRGlmZmVyZW5jZUtpbmQuQ09NTUVOVCkgewotICAgICAgICAgICAgaWYgKGJlZ2luT2Zmc2V0T2xkIDw9IG9sZE5vZGUub2Zmc2V0IHx8Ci0gICAgICAgICAgICAgICAgYmVnaW5PZmZzZXROZXcgPD0gbmV3Tm9kZS5vZmZzZXQpIHsKLSAgICAgICAgICAgICAgbG9nZ2VyLmxvZygnRmFpbHVyZTogY29tbWVudCBvdXRzaWRlIGEgZnVuY3Rpb24gYm9keS4nKTsKLSAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBsb2dnZXIubG9nKCgpID0+ICdvbGROb2RlOiAkb2xkTm9kZScpOwogICAgICAgICBsb2dnZXIubG9nKCgpID0+ICduZXdOb2RlOiAkbmV3Tm9kZScpOwpAQCAtNzU2LDE2ICs3NTksMTMgQEAKICAgICogQXR0ZW1wdHMgdG8gcmVzb2x2ZSBhIGRvY3VtZW50YXRpb24gY29tbWVudCBjaGFuZ2UuCiAgICAqIFJldHVybnMgYHRydWVgIGlmIHN1Y2Nlc3MuCiAgICAqLwotICBib29sIF9yZXNvbHZlQ29tbWVudERvYyhDb21waWxhdGlvblVuaXQgbmV3VW5pdCwgX1Rva2VuUGFpciBmaXJzdFBhaXIpIHsKLSAgICBUb2tlbiBvbGRUb2tlbiA9IGZpcnN0UGFpci5vbGRUb2tlbjsKLSAgICBUb2tlbiBuZXdUb2tlbiA9IGZpcnN0UGFpci5uZXdUb2tlbjsKLSAgICBDb21tZW50VG9rZW4gb2xkQ29tbWVudHMgPSBvbGRUb2tlbi5wcmVjZWRpbmdDb21tZW50czsKLSAgICBDb21tZW50VG9rZW4gbmV3Q29tbWVudHMgPSBuZXdUb2tlbi5wcmVjZWRpbmdDb21tZW50czsKLSAgICBpZiAob2xkQ29tbWVudHMgPT0gbnVsbCB8fCBuZXdDb21tZW50cyA9PSBudWxsKSB7CisgIGJvb2wgX3Jlc29sdmVDb21tZW50RG9jKAorICAgICAgQ29tcGlsYXRpb25Vbml0IG5ld1VuaXQsIENvbW1lbnRUb2tlbiBvbGRUb2tlbiwgQ29tbWVudFRva2VuIG5ld1Rva2VuKSB7CisgICAgaWYgKG9sZFRva2VuID09IG51bGwgfHwgbmV3VG9rZW4gPT0gbnVsbCkgewogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAvLyBmaW5kIG5vZGVzCi0gICAgaW50IG9mZnNldCA9IG9sZENvbW1lbnRzLm9mZnNldDsKKyAgICBpbnQgb2Zmc2V0ID0gb2xkVG9rZW4ub2Zmc2V0OwogICAgIGxvZ2dlci5sb2coJ29mZnNldDogJG9mZnNldCcpOwogICAgIEFzdE5vZGUgb2xkTm9kZSA9IF9maW5kTm9kZUNvdmVyaW5nKF9vbGRVbml0LCBvZmZzZXQsIG9mZnNldCk7CiAgICAgQXN0Tm9kZSBuZXdOb2RlID0gX2ZpbmROb2RlQ292ZXJpbmcobmV3VW5pdCwgb2Zmc2V0LCBvZmZzZXQpOwpAQCAtNzc2LDEwICs3NzYsOSBAQAogICAgIENvbW1lbnQgbmV3Q29tbWVudCA9IG5ld05vZGU7CiAgICAgbG9nZ2VyLmxvZygnb2xkQ29tbWVudC5iZWdpblRva2VuOiAke29sZENvbW1lbnQuYmVnaW5Ub2tlbn0nKTsKICAgICBsb2dnZXIubG9nKCduZXdDb21tZW50LmJlZ2luVG9rZW46ICR7bmV3Q29tbWVudC5iZWdpblRva2VufScpOwotICAgIF91cGRhdGVPZmZzZXQgPSBvbGRUb2tlbi5vZmZzZXQgLSAxOwogICAgIC8vIHVwZGF0ZSB0b2tlbiByZWZlcmVuY2VzCi0gICAgX3NoaWZ0VG9rZW5zKGZpcnN0UGFpci5vbGRUb2tlbik7Ci0gICAgX3NldFByZWNlZGluZ0NvbW1lbnRzKG9sZFRva2VuLCBuZXdDb21tZW50LnRva2Vucy5maXJzdCk7CisgICAgX3NoaWZ0VG9rZW5zKG9sZFRva2VuLnBhcmVudCk7CisgICAgX3NldFByZWNlZGluZ0NvbW1lbnRzKG9sZFRva2VuLnBhcmVudCwgbmV3Q29tbWVudC50b2tlbnMuZmlyc3QpOwogICAgIC8vIHJlcGxhY2Ugbm9kZQogICAgIE5vZGVSZXBsYWNlci5yZXBsYWNlKG9sZENvbW1lbnQsIG5ld0NvbW1lbnQpOwogICAgIC8vIHVwZGF0ZSBlbGVtZW50cwpAQCAtODQ4LDggKzg0NywxMSBAQAogICAgIH0KICAgfQogCi0gIHZvaWQgX3NoaWZ0VG9rZW5zKFRva2VuIHRva2VuKSB7CisgIHZvaWQgX3NoaWZ0VG9rZW5zKFRva2VuIHRva2VuLCBbYm9vbCBnb1VwQ29tbWVudCA9IGZhbHNlXSkgewogICAgIHdoaWxlICh0b2tlbiAhPSBudWxsKSB7CisgICAgICBpZiAoZ29VcENvbW1lbnQgJiYgdG9rZW4gaXMgQ29tbWVudFRva2VuKSB7CisgICAgICAgIHRva2VuID0gKHRva2VuIGFzIENvbW1lbnRUb2tlbikucGFyZW50OworICAgICAgfQogICAgICAgaWYgKHRva2VuLm9mZnNldCA+IF91cGRhdGVPZmZzZXQpIHsKICAgICAgICAgdG9rZW4ub2Zmc2V0ICs9IF91cGRhdGVEZWx0YTsKICAgICAgIH0KQEAgLTg5MywyOSArODk1LDIxIEBACiAgIH0KIAogICBzdGF0aWMgX1Rva2VuRGlmZmVyZW5jZUtpbmQgX2NvbXBhcmVUb2tlbigKLSAgICAgIFRva2VuIG9sZFRva2VuLCBUb2tlbiBuZXdUb2tlbiwgaW50IGRlbHRhLCBib29sIGZvckNvbW1lbnQpIHsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgaWYgKG9sZFRva2VuID09IG51bGwgJiYgbmV3VG9rZW4gPT0gbnVsbCkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgIH0KLSAgICAgIGlmIChvbGRUb2tlbiA9PSBudWxsIHx8IG5ld1Rva2VuID09IG51bGwpIHsKLSAgICAgICAgcmV0dXJuIF9Ub2tlbkRpZmZlcmVuY2VLaW5kLkNPTlRFTlQ7Ci0gICAgICB9Ci0gICAgICBpZiAob2xkVG9rZW4udHlwZSAhPSBuZXdUb2tlbi50eXBlKSB7Ci0gICAgICAgIHJldHVybiBfVG9rZW5EaWZmZXJlbmNlS2luZC5DT05URU5UOwotICAgICAgfQotICAgICAgaWYgKG9sZFRva2VuLmxleGVtZSAhPSBuZXdUb2tlbi5sZXhlbWUpIHsKLSAgICAgICAgcmV0dXJuIF9Ub2tlbkRpZmZlcmVuY2VLaW5kLkNPTlRFTlQ7Ci0gICAgICB9Ci0gICAgICBpZiAobmV3VG9rZW4ub2Zmc2V0IC0gb2xkVG9rZW4ub2Zmc2V0ICE9IGRlbHRhKSB7Ci0gICAgICAgIHJldHVybiBfVG9rZW5EaWZmZXJlbmNlS2luZC5PRkZTRVQ7Ci0gICAgICB9Ci0gICAgICAvLyBjb250aW51ZSBpZiBjb21tZW50IHRva2VucyBhcmUgYmVpbmcgY2hlY2tlZAotICAgICAgaWYgKCFmb3JDb21tZW50KSB7Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAgICAgb2xkVG9rZW4gPSBvbGRUb2tlbi5uZXh0OwotICAgICAgbmV3VG9rZW4gPSBuZXdUb2tlbi5uZXh0OworICAgICAgVG9rZW4gb2xkVG9rZW4sIFRva2VuIG5ld1Rva2VuLCBpbnQgZGVsdGEpIHsKKyAgICBpZiAob2xkVG9rZW4gPT0gbnVsbCAmJiBuZXdUb2tlbiA9PSBudWxsKSB7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgaWYgKG9sZFRva2VuID09IG51bGwgfHwgbmV3VG9rZW4gPT0gbnVsbCkgeworICAgICAgcmV0dXJuIF9Ub2tlbkRpZmZlcmVuY2VLaW5kLkNPTlRFTlQ7CisgICAgfQorICAgIGlmIChvbGRUb2tlbi50eXBlICE9IG5ld1Rva2VuLnR5cGUpIHsKKyAgICAgIHJldHVybiBfVG9rZW5EaWZmZXJlbmNlS2luZC5DT05URU5UOworICAgIH0KKyAgICBpZiAob2xkVG9rZW4ubGV4ZW1lICE9IG5ld1Rva2VuLmxleGVtZSkgeworICAgICAgcmV0dXJuIF9Ub2tlbkRpZmZlcmVuY2VLaW5kLkNPTlRFTlQ7CisgICAgfQorICAgIGlmIChuZXdUb2tlbi5vZmZzZXQgLSBvbGRUb2tlbi5vZmZzZXQgIT0gZGVsdGEpIHsKKyAgICAgIHJldHVybiBfVG9rZW5EaWZmZXJlbmNlS2luZC5PRkZTRVQ7CiAgICAgfQogICAgIHJldHVybiBudWxsOwogICB9CkBAIC05MjksMTggKzkyMywyMiBAQAogICAgICAgewogICAgICAgICBUb2tlbiBvbGRDb21tZW50ID0gb2xkVG9rZW4ucHJlY2VkaW5nQ29tbWVudHM7CiAgICAgICAgIFRva2VuIG5ld0NvbW1lbnQgPSBuZXdUb2tlbi5wcmVjZWRpbmdDb21tZW50czsKLSAgICAgICAgaWYgKF9jb21wYXJlVG9rZW4ob2xkQ29tbWVudCwgbmV3Q29tbWVudCwgMCwgdHJ1ZSkgIT0gbnVsbCkgewotICAgICAgICAgIF9Ub2tlbkRpZmZlcmVuY2VLaW5kIGRpZmZLaW5kID0gX1Rva2VuRGlmZmVyZW5jZUtpbmQuQ09NTUVOVDsKLSAgICAgICAgICBpZiAob2xkQ29tbWVudCBpcyBEb2N1bWVudGF0aW9uQ29tbWVudFRva2VuICYmCi0gICAgICAgICAgICAgIG5ld0NvbW1lbnQgaXMgRG9jdW1lbnRhdGlvbkNvbW1lbnRUb2tlbikgewotICAgICAgICAgICAgZGlmZktpbmQgPSBfVG9rZW5EaWZmZXJlbmNlS2luZC5DT01NRU5UX0RPQzsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICBfVG9rZW5EaWZmZXJlbmNlS2luZCBkaWZmS2luZCA9CisgICAgICAgICAgICAgIF9jb21wYXJlVG9rZW4ob2xkQ29tbWVudCwgbmV3Q29tbWVudCwgMCk7CisgICAgICAgICAgaWYgKGRpZmZLaW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcigKKyAgICAgICAgICAgICAgICBkaWZmS2luZCwgb2xkQ29tbWVudCA/PyBvbGRUb2tlbiwgbmV3Q29tbWVudCA/PyBuZXdUb2tlbik7CiAgICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcihkaWZmS2luZCwgb2xkVG9rZW4sIG5ld1Rva2VuKTsKKyAgICAgICAgICBpZiAob2xkQ29tbWVudCA9PSBudWxsICYmIG5ld0NvbW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIG9sZENvbW1lbnQgPSBvbGRDb21tZW50Lm5leHQ7CisgICAgICAgICAgbmV3Q29tbWVudCA9IG5ld0NvbW1lbnQubmV4dDsKICAgICAgICAgfQogICAgICAgfQogICAgICAgLy8gY29tcGFyZSB0b2tlbnMKLSAgICAgIF9Ub2tlbkRpZmZlcmVuY2VLaW5kIGRpZmZLaW5kID0KLSAgICAgICAgICBfY29tcGFyZVRva2VuKG9sZFRva2VuLCBuZXdUb2tlbiwgMCwgZmFsc2UpOworICAgICAgX1Rva2VuRGlmZmVyZW5jZUtpbmQgZGlmZktpbmQgPSBfY29tcGFyZVRva2VuKG9sZFRva2VuLCBuZXdUb2tlbiwgMCk7CiAgICAgICBpZiAoZGlmZktpbmQgIT0gbnVsbCkgewogICAgICAgICByZXR1cm4gbmV3IF9Ub2tlblBhaXIoZGlmZktpbmQsIG9sZFRva2VuLCBuZXdUb2tlbik7CiAgICAgICB9CkBAIC05NTQsMjQgKzk1Miw0MCBAQAogCiAgIHN0YXRpYyBfVG9rZW5QYWlyIF9maW5kTGFzdERpZmZlcmVudFRva2VuKFRva2VuIG9sZFRva2VuLCBUb2tlbiBuZXdUb2tlbikgewogICAgIGludCBkZWx0YSA9IG5ld1Rva2VuLm9mZnNldCAtIG9sZFRva2VuLm9mZnNldDsKKyAgICBUb2tlbiBwcmV2T2xkVG9rZW47CisgICAgVG9rZW4gcHJldk5ld1Rva2VuOwogICAgIHdoaWxlIChvbGRUb2tlbi5wcmV2aW91cyAhPSBvbGRUb2tlbiAmJiBuZXdUb2tlbi5wcmV2aW91cyAhPSBuZXdUb2tlbikgewogICAgICAgLy8gY29tcGFyZSB0b2tlbnMKLSAgICAgIF9Ub2tlbkRpZmZlcmVuY2VLaW5kIGRpZmZLaW5kID0KLSAgICAgICAgICBfY29tcGFyZVRva2VuKG9sZFRva2VuLCBuZXdUb2tlbiwgZGVsdGEsIGZhbHNlKTsKKyAgICAgIF9Ub2tlbkRpZmZlcmVuY2VLaW5kIGRpZmZLaW5kID0gX2NvbXBhcmVUb2tlbihvbGRUb2tlbiwgbmV3VG9rZW4sIGRlbHRhKTsKICAgICAgIGlmIChkaWZmS2luZCAhPSBudWxsKSB7Ci0gICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcihkaWZmS2luZCwgb2xkVG9rZW4ubmV4dCwgbmV3VG9rZW4ubmV4dCk7CisgICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcihkaWZmS2luZCwgcHJldk9sZFRva2VuLCBwcmV2TmV3VG9rZW4pOwogICAgICAgfQorICAgICAgcHJldk9sZFRva2VuID0gb2xkVG9rZW47CisgICAgICBwcmV2TmV3VG9rZW4gPSBuZXdUb2tlbjsKICAgICAgIC8vIGNvbXBhcmUgY29tbWVudHMKICAgICAgIHsKICAgICAgICAgVG9rZW4gb2xkQ29tbWVudCA9IG9sZFRva2VuLnByZWNlZGluZ0NvbW1lbnRzOwogICAgICAgICBUb2tlbiBuZXdDb21tZW50ID0gbmV3VG9rZW4ucHJlY2VkaW5nQ29tbWVudHM7Ci0gICAgICAgIGlmIChfY29tcGFyZVRva2VuKG9sZENvbW1lbnQsIG5ld0NvbW1lbnQsIGRlbHRhLCB0cnVlKSAhPSBudWxsKSB7Ci0gICAgICAgICAgX1Rva2VuRGlmZmVyZW5jZUtpbmQgZGlmZktpbmQgPSBfVG9rZW5EaWZmZXJlbmNlS2luZC5DT01NRU5UOwotICAgICAgICAgIGlmIChvbGRDb21tZW50IGlzIERvY3VtZW50YXRpb25Db21tZW50VG9rZW4gJiYKLSAgICAgICAgICAgICAgbmV3Q29tbWVudCBpcyBEb2N1bWVudGF0aW9uQ29tbWVudFRva2VuKSB7Ci0gICAgICAgICAgICBkaWZmS2luZCA9IF9Ub2tlbkRpZmZlcmVuY2VLaW5kLkNPTU1FTlRfRE9DOworICAgICAgICB3aGlsZSAob2xkQ29tbWVudD8ubmV4dCAhPSBudWxsKSB7CisgICAgICAgICAgb2xkQ29tbWVudCA9IG9sZENvbW1lbnQubmV4dDsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobmV3Q29tbWVudD8ubmV4dCAhPSBudWxsKSB7CisgICAgICAgICAgbmV3Q29tbWVudCA9IG5ld0NvbW1lbnQubmV4dDsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgIF9Ub2tlbkRpZmZlcmVuY2VLaW5kIGRpZmZLaW5kID0KKyAgICAgICAgICAgICAgX2NvbXBhcmVUb2tlbihvbGRDb21tZW50LCBuZXdDb21tZW50LCBkZWx0YSk7CisgICAgICAgICAgaWYgKGRpZmZLaW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcigKKyAgICAgICAgICAgICAgICBkaWZmS2luZCwgb2xkQ29tbWVudCA/PyBvbGRUb2tlbiwgbmV3Q29tbWVudCA/PyBuZXdUb2tlbik7CiAgICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBuZXcgX1Rva2VuUGFpcihkaWZmS2luZCwgb2xkVG9rZW4sIG5ld1Rva2VuKTsKKyAgICAgICAgICBpZiAob2xkQ29tbWVudCA9PSBudWxsICYmIG5ld0NvbW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHByZXZPbGRUb2tlbiA9IG9sZENvbW1lbnQ7CisgICAgICAgICAgcHJldk5ld1Rva2VuID0gbmV3Q29tbWVudDsKKyAgICAgICAgICBvbGRDb21tZW50ID0gb2xkQ29tbWVudC5wcmV2aW91czsKKyAgICAgICAgICBuZXdDb21tZW50ID0gbmV3Q29tbWVudC5wcmV2aW91czsKICAgICAgICAgfQogICAgICAgfQogICAgICAgLy8gbmV4dCB0b2tlbnMKQEAgLTEyOTAsOCArMTMwNCw2IEBACiAgKiBEZXNjcmliZXMgaG93IHR3byBbVG9rZW5dcyBhcmUgZGlmZmVyZW50LgogICovCiBjbGFzcyBfVG9rZW5EaWZmZXJlbmNlS2luZCB7Ci0gIHN0YXRpYyBjb25zdCBDT01NRU5UID0gY29uc3QgX1Rva2VuRGlmZmVyZW5jZUtpbmQoJ0NPTU1FTlQnKTsKLSAgc3RhdGljIGNvbnN0IENPTU1FTlRfRE9DID0gY29uc3QgX1Rva2VuRGlmZmVyZW5jZUtpbmQoJ0NPTU1FTlRfRE9DJyk7CiAgIHN0YXRpYyBjb25zdCBDT05URU5UID0gY29uc3QgX1Rva2VuRGlmZmVyZW5jZUtpbmQoJ0NPTlRFTlQnKTsKICAgc3RhdGljIGNvbnN0IE9GRlNFVCA9IGNvbnN0IF9Ub2tlbkRpZmZlcmVuY2VLaW5kKCdPRkZTRVQnKTsKIApkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL3Jlc29sdmVyLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvcmVzb2x2ZXIuZGFydAppbmRleCBhZmE3Y2NlLi40YTcwYzY2IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvcmVzb2x2ZXIuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvcmVzb2x2ZXIuZGFydApAQCAtNDkxNSw2ICs0OTE1LDggQEAKICAgICogaW5mZXJlbmNlLgogICAgKi8KICAgc3RhdGljIHZvaWQgc2V0VHlwZShBc3ROb2RlIG5vZGUsIERhcnRUeXBlIHR5cGUpIHsKKyAgICAvLyBUT0RPKGptZXNzZXJseSk6IHRoaXMgc2V0cyB0aGUgdHlwZSBldmVuIHdoZW4gaXQncyBkeW5hbWljLgorICAgIC8vIENhbiB3ZSBza2lwIHRoYXQ/CiAgICAgbm9kZT8uc2V0UHJvcGVydHkoX3R5cGVQcm9wZXJ0eSwgdHlwZSk7CiAgIH0KIApAQCAtNjA2Miw5ICs2MDY0LDE4IEBACiAgICAgICAvLyBvZiB0aGUgYmluYXJ5IG9wZXJhdG9yIGZvciBvdGhlciBjYXNlcy4KICAgICAgIGlmIChvcGVyYXRvclR5cGUgPT0gVG9rZW5UeXBlLlFVRVNUSU9OX1FVRVNUSU9OKSB7CiAgICAgICAgIEluZmVyZW5jZUNvbnRleHQuc2V0VHlwZUZyb21Ob2RlKGxlZnRPcGVyYW5kLCBub2RlKTsKLSAgICAgICAgSW5mZXJlbmNlQ29udGV4dC5zZXRUeXBlRnJvbU5vZGUocmlnaHRPcGVyYW5kLCBub2RlKTsKICAgICAgIH0KICAgICAgIGxlZnRPcGVyYW5kPy5hY2NlcHQodGhpcyk7CisgICAgICBpZiAob3BlcmF0b3JUeXBlID09IFRva2VuVHlwZS5RVUVTVElPTl9RVUVTVElPTikgeworICAgICAgICAvLyBTZXQgdGhlIHJpZ2h0IHNpZGUsIGVpdGhlciBmcm9tIHRoZSBjb250ZXh0LCBvciB1c2luZyB0aGUgaW5mb3JtYXRpb24KKyAgICAgICAgLy8gZnJvbSB0aGUgbGVmdCBzaWRlIGlmIGl0IGlzIG1vcmUgcHJlY2lzZS4KKyAgICAgICAgRGFydFR5cGUgY29udGV4dFR5cGUgPSBJbmZlcmVuY2VDb250ZXh0LmdldFR5cGUobm9kZSk7CisgICAgICAgIERhcnRUeXBlIGxlZnRUeXBlID0gbGVmdE9wZXJhbmQ/LnN0YXRpY1R5cGU7CisgICAgICAgIGlmIChjb250ZXh0VHlwZSA9PSBudWxsIHx8IGNvbnRleHRUeXBlLmlzRHluYW1pYykgeworICAgICAgICAgIGNvbnRleHRUeXBlID0gbGVmdFR5cGU7CisgICAgICAgIH0KKyAgICAgICAgSW5mZXJlbmNlQ29udGV4dC5zZXRUeXBlKHJpZ2h0T3BlcmFuZCwgY29udGV4dFR5cGUpOworICAgICAgfQogICAgICAgcmlnaHRPcGVyYW5kPy5hY2NlcHQodGhpcyk7CiAgICAgfQogICAgIG5vZGUuYWNjZXB0KGVsZW1lbnRSZXNvbHZlcik7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvc3RhdGljX3R5cGVfYW5hbHl6ZXIuZGFydCBiL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9zdGF0aWNfdHlwZV9hbmFseXplci5kYXJ0CmluZGV4IGY2ODE0NzEuLmZhODI1NjAgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9zdGF0aWNfdHlwZV9hbmFseXplci5kYXJ0CisrKyBiL3BrZy9hbmFseXplci9saWIvc3JjL2dlbmVyYXRlZC9zdGF0aWNfdHlwZV9hbmFseXplci5kYXJ0CkBAIC00NDEsNiArNDQxLDEwIEBACiAgICAgaWYgKG5vZGUucGFyZW50IGlzIEZ1bmN0aW9uRGVjbGFyYXRpb25TdGF0ZW1lbnQpIHsKICAgICAgIC8vIFR5cGVSZXNvbHZlclZpc2l0b3Igc2V0cyB0aGUgcmV0dXJuIHR5cGUgZm9yIHRvcC1sZXZlbCBmdW5jdGlvbnMsIHNvCiAgICAgICAvLyB3ZSBvbmx5IG5lZWQgdG8gaGFuZGxlIGxvY2FsIGZ1bmN0aW9ucy4KKyAgICAgIGlmIChfc3Ryb25nTW9kZSAmJiBub2RlLnJldHVyblR5cGUgPT0gbnVsbCkgeworICAgICAgICBfaW5mZXJMb2NhbEZ1bmN0aW9uUmV0dXJuVHlwZShub2RlLmZ1bmN0aW9uRXhwcmVzc2lvbik7CisgICAgICAgIHJldHVybiBudWxsOworICAgICAgfQogICAgICAgZnVuY3Rpb25FbGVtZW50LnJldHVyblR5cGUgPQogICAgICAgICAgIF9jb21wdXRlU3RhdGljUmV0dXJuVHlwZU9mRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlKTsKICAgICAgIF9yZWNvcmRQcm9wYWdhdGVkVHlwZU9mRnVuY3Rpb24oZnVuY3Rpb25FbGVtZW50LCBmdW5jdGlvbi5ib2R5KTsKQEAgLTQ4Niw2ICs0OTAsMTUgQEAKICAgICAgIC8vIG5vZGUuCiAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CisgICAgX2luZmVyTG9jYWxGdW5jdGlvblJldHVyblR5cGUobm9kZSk7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKworICAvKioKKyAgICogSW5mZXJzIHRoZSByZXR1cm4gdHlwZSBvZiBhIGxvY2FsIGZ1bmN0aW9uLCBlaXRoZXIgYSBsYW1iZGEgb3IKKyAgICogKGluIHN0cm9uZyBtb2RlKSBhIGxvY2FsIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgorICAgKi8KKyAgdm9pZCBfaW5mZXJMb2NhbEZ1bmN0aW9uUmV0dXJuVHlwZShGdW5jdGlvbkV4cHJlc3Npb24gbm9kZSkgewogICAgIGJvb2wgcmVjb3JkSW5mZXJlbmNlID0gZmFsc2U7CiAgICAgRXhlY3V0YWJsZUVsZW1lbnRJbXBsIGZ1bmN0aW9uRWxlbWVudCA9CiAgICAgICAgIG5vZGUuZWxlbWVudCBhcyBFeGVjdXRhYmxlRWxlbWVudEltcGw7CkBAIC01MTcsNyArNTMwLDYgQEAKICAgICBpZiAocmVjb3JkSW5mZXJlbmNlKSB7CiAgICAgICBfcmVzb2x2ZXIuaW5mZXJlbmNlQ29udGV4dC5yZWNvcmRJbmZlcmVuY2Uobm9kZSwgZnVuY3Rpb25FbGVtZW50LnR5cGUpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbDsKICAgfQogCiAgIC8qKgpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvZ2VuZXJhdGVkL3R5cGVfc3lzdGVtLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvdHlwZV9zeXN0ZW0uZGFydAppbmRleCA5MTU0MTMyLi43OGQyNDZmIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvdHlwZV9zeXN0ZW0uZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9nZW5lcmF0ZWQvdHlwZV9zeXN0ZW0uZGFydApAQCAtNDUsNyArNDUsMzggQEAKICAgfQogCiAgIEBvdmVycmlkZQotICBib29sIGNhblByb21vdGVUb1R5cGUoRGFydFR5cGUgdG8sIERhcnRUeXBlIGZyb20pID0+IGlzU3VidHlwZU9mKHRvLCBmcm9tKTsKKyAgYm9vbCBjYW5Qcm9tb3RlVG9UeXBlKERhcnRUeXBlIHRvLCBEYXJ0VHlwZSBmcm9tKSB7CisgICAgLy8gQWxsb3cgcHJvbW90aW5nIHRvIGEgc3VidHlwZSwgZm9yIGV4YW1wbGU6CisgICAgLy8KKyAgICAvLyAgICAgZihCYXNlIGIpIHsKKyAgICAvLyAgICAgICBpZiAoYiBpcyBTdWJUeXBlT2ZCYXNlKSB7CisgICAgLy8gICAgICAgICAvLyBwcm9tb3RlIGBiYCB0byBTdWJUeXBlT2ZCYXNlIGZvciB0aGlzIGJsb2NrCisgICAgLy8gICAgICAgfQorICAgIC8vICAgICB9CisgICAgLy8KKyAgICAvLyBUaGlzIGFsbG93cyB0aGUgdmFyaWFibGUgdG8gYmUgdXNlZCB3aGVyZXZlciB0aGUgc3VwZXJ0eXBlIChoZXJlIGBCYXNlYCkKKyAgICAvLyBpcyBleHBlY3RlZCwgd2hpbGUgZ2FpbmluZyBhIG1vcmUgcHJlY2lzZSB0eXBlLgorICAgIGlmIChpc1N1YnR5cGVPZih0bywgZnJvbSkpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvLyBGb3IgYSB0eXBlIHBhcmFtZXRlciBgVCBleHRlbmRzIFVgLCBhbGxvdyBwcm9tb3RpbmcgZnJvbSB0aGUgdXBwZXIgYm91bmQKKyAgICAvLyBgVWAgdG8gYFNgIHdoZXJlIGBTIDw6IFVgLgorICAgIC8vCisgICAgLy8gVGhpcyBkb2VzIHJlc3RyaWN0IHRoZSB2YXJpYWJsZSwgYmVjYXVzZSBgUyA8LzogVGAsIGl0IGNhbiBubyBsb25nZXIgYmUKKyAgICAvLyB1c2VkIGFzIGEgYFRgIHdpdGhvdXQgYW5vdGhlciBjYXN0LgorICAgIC8vCisgICAgLy8gSG93ZXZlciB0aGUgbWVtYmVycyB5b3UgY291bGQgYWNjZXNzIGZyb20gYSB2YXJpYWJsZSBvZiB0eXBlIGBUYCwgd2VyZQorICAgIC8vIGFscmVhZHkgdGhvc2Ugb24gdGhlIHVwcGVyIGJvdW5kIGBVYC4gU28gYWxsIG1lbWJlcnMgb24gYFVgIHdpbGwgYmUKKyAgICAvLyBhY2Nlc3NpYmxlLCBhcyB3ZWxsIGFzIHRob3NlIG9uIGBTYC4gUHJhZ21hdGljYWxseSB0aGlzIGZlZWxzIGxpa2UgYQorICAgIC8vIHVzZWZ1bCBlbm91Z2ggdHJhZGUtb2ZmIHRvIGFsbG93IHByb21vdGlvbi4KKyAgICAvLworICAgIC8vIChJbiBnZW5lcmFsIHdlIHdvdWxkIG5lZWQgdW5pb24gdHlwZXMgdG8gc3VwcG9ydCB0aGlzIGZlYXR1cmUgcHJlY2lzZWx5LikKKyAgICBpZiAoZnJvbSBpcyBUeXBlUGFyYW1ldGVyVHlwZSkgeworICAgICAgcmV0dXJuIGlzU3VidHlwZU9mKHRvLCBmcm9tLnJlc29sdmVUb0JvdW5kKER5bmFtaWNUeXBlSW1wbC5pbnN0YW5jZSkpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKKyAgfQogCiAgIEBvdmVycmlkZQogICBGdW5jdGlvblR5cGUgZnVuY3Rpb25UeXBlVG9Db25jcmV0ZVR5cGUoCkBAIC05MSwyNiArMTIyLDI0IEBACiAKICAgLy8vIENvbXB1dGVzIHRoZSBncmVhdGVzdCBsb3dlciBib3VuZCBvZiBbdHlwZTFdIGFuZCBbdHlwZTJdLgogICBEYXJ0VHlwZSBnZXRHcmVhdGVzdExvd2VyQm91bmQoCi0gICAgICBUeXBlUHJvdmlkZXIgcHJvdmlkZXIsIERhcnRUeXBlIHR5cGUxLCBEYXJ0VHlwZSB0eXBlMikgeworICAgICAgVHlwZVByb3ZpZGVyIHByb3ZpZGVyLCBEYXJ0VHlwZSB0eXBlMSwgRGFydFR5cGUgdHlwZTIsCisgICAgICB7ZHluYW1pY0lzQm90dG9tOiBmYWxzZX0pIHsKICAgICAvLyBUaGUgZ3JlYXRlc3QgbG93ZXIgYm91bmQgcmVsYXRpb24gaXMgcmVmbGV4aXZlLgogICAgIGlmIChpZGVudGljYWwodHlwZTEsIHR5cGUyKSkgewogICAgICAgcmV0dXJuIHR5cGUxOwogICAgIH0KIAotICAgIC8vIFRyZWF0IGR5bmFtaWMgYXMgdG9wLiBUaGUgR0xCIG9mIGR5bmFtaWMgYW5kIGFueSB0eXBlIGlzIGp1c3QgdGhhdCB0eXBlCi0gICAgLy8gc2luY2UgZHluYW1pYyBwZXJtaXRzIGFsbCB2YWx1ZXMuCi0gICAgaWYgKHR5cGUxLmlzRHluYW1pYykgeworICAgIC8vIFRoZSBHTEIgb2YgdG9wIGFuZCBhbnkgdHlwZSBpcyBqdXN0IHRoYXQgdHlwZS4KKyAgICAvLyBBbHNvIEdMQiBvZiBib3R0b20gYW5kIGFueSB0eXBlIGlzIGJvdHRvbS4KKyAgICBpZiAoX2lzVG9wKHR5cGUxLCBkeW5hbWljSXNCb3R0b206IGR5bmFtaWNJc0JvdHRvbSkgfHwKKyAgICAgICAgX2lzQm90dG9tKHR5cGUyLCBkeW5hbWljSXNCb3R0b206IGR5bmFtaWNJc0JvdHRvbSkpIHsKICAgICAgIHJldHVybiB0eXBlMjsKICAgICB9Ci0gICAgaWYgKHR5cGUyLmlzRHluYW1pYykgeworICAgIGlmIChfaXNUb3AodHlwZTIsIGR5bmFtaWNJc0JvdHRvbTogZHluYW1pY0lzQm90dG9tKSB8fAorICAgICAgICBfaXNCb3R0b20odHlwZTEsIGR5bmFtaWNJc0JvdHRvbTogZHluYW1pY0lzQm90dG9tKSkgewogICAgICAgcmV0dXJuIHR5cGUxOwogICAgIH0KIAotICAgIC8vIFlvdSBjYW4ndCBnZXQgYW55IGxvd2VyIHRoYW4gYm90dG9tLgotICAgIGlmICh0eXBlMS5pc0JvdHRvbSB8fCB0eXBlMi5pc0JvdHRvbSkgewotICAgICAgcmV0dXJuIHByb3ZpZGVyLmJvdHRvbVR5cGU7Ci0gICAgfQotCiAgICAgLy8gVHJlYXQgdm9pZCBhcyB0b3AtbGlrZSBmb3IgR0xCLiBUaGlzIG9ubHkgY29tZXMgaW50byBwbGF5IHdpdGggdGhlCiAgICAgLy8gcmV0dXJuIHR5cGVzIG9mIHR3byBmdW5jdGlvbnMgd2hvc2UgR0xCIGlzIGJlaW5nIHRha2VuLiBXZSBhbGxvdyBhCiAgICAgLy8gbm9uLXZvaWQtcmV0dXJuaW5nIGZ1bmN0aW9uIHRvIHN1YnR5cGUgYSB2b2lkLXJldHVybmluZyBvbmUsIHNvIG1hdGNoCkBAIC0xNDIsNiArMTcxLDQxIEBACiAgIH0KIAogICAvKioKKyAgICogQ29tcHV0ZSB0aGUgbGVhc3QgdXBwZXIgYm91bmQgb2YgdHdvIHR5cGVzLgorICAgKi8KKyAgQG92ZXJyaWRlCisgIERhcnRUeXBlIGdldExlYXN0VXBwZXJCb3VuZCgKKyAgICAgIFR5cGVQcm92aWRlciB0eXBlUHJvdmlkZXIsIERhcnRUeXBlIHR5cGUxLCBEYXJ0VHlwZSB0eXBlMiwKKyAgICAgIHtib29sIGR5bmFtaWNJc0JvdHRvbTogZmFsc2V9KSB7CisgICAgaWYgKGlzTnVsbGFibGVUeXBlKHR5cGUxKSAmJiBpc05vbk51bGxhYmxlVHlwZSh0eXBlMikpIHsKKyAgICAgIGFzc2VydCh0eXBlMiBpcyBJbnRlcmZhY2VUeXBlKTsKKyAgICAgIHR5cGUyID0gZ2V0TGVhc3ROdWxsYWJsZVN1cGVydHlwZSh0eXBlMiBhcyBJbnRlcmZhY2VUeXBlKTsKKyAgICB9CisgICAgaWYgKGlzTnVsbGFibGVUeXBlKHR5cGUyKSAmJiBpc05vbk51bGxhYmxlVHlwZSh0eXBlMSkpIHsKKyAgICAgIGFzc2VydCh0eXBlMSBpcyBJbnRlcmZhY2VUeXBlKTsKKyAgICAgIHR5cGUxID0gZ2V0TGVhc3ROdWxsYWJsZVN1cGVydHlwZSh0eXBlMSBhcyBJbnRlcmZhY2VUeXBlKTsKKyAgICB9CisgICAgcmV0dXJuIHN1cGVyLmdldExlYXN0VXBwZXJCb3VuZCh0eXBlUHJvdmlkZXIsIHR5cGUxLCB0eXBlMiwKKyAgICAgICAgZHluYW1pY0lzQm90dG9tOiBkeW5hbWljSXNCb3R0b20pOworICB9CisKKyAgLyoqCisgICAqIENvbXB1dGUgdGhlIGxlYXN0IHN1cGVydHlwZSBvZiBbdHlwZV0sIHdoaWNoIGlzIGtub3duIHRvIGJlIGFuIGludGVyZmFjZQorICAgKiB0eXBlLgorICAgKgorICAgKiBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgYWxnb3JpdGhtIGZhaWxzICh3aGljaCBtaWdodCBvY2N1ciBkdWUgdG8gYSBidWcgaW4KKyAgICogdGhlIGFuYWx5emVyKSwgYG51bGxgIGlzIHJldHVybmVkLgorICAgKi8KKyAgRGFydFR5cGUgZ2V0TGVhc3ROdWxsYWJsZVN1cGVydHlwZShJbnRlcmZhY2VUeXBlIHR5cGUpIHsKKyAgICAvLyBjb21wdXRlIHNldCBvZiBzdXBlcnR5cGVzCisgICAgTGlzdDxJbnRlcmZhY2VUeXBlPiBzID0gSW50ZXJmYWNlVHlwZUltcGwKKyAgICAgICAgLmNvbXB1dGVTdXBlcmludGVyZmFjZVNldCh0eXBlKQorICAgICAgICAud2hlcmUoaXNOdWxsYWJsZVR5cGUpCisgICAgICAgIC50b0xpc3QoKTsKKyAgICByZXR1cm4gSW50ZXJmYWNlVHlwZUltcGwuY29tcHV0ZVR5cGVBdE1heFVuaXF1ZURlcHRoKHMpOworICB9CisKKyAgLyoqCiAgICAqIEdpdmVuIGEgZ2VuZXJpYyBmdW5jdGlvbiB0eXBlIGBGPFQwLCBUMSwgLi4uIFRuPmAgYW5kIGEgY29udGV4dCB0eXBlIEMsCiAgICAqIGluZmVyIGFuIGluc3RhbnRpYXRpb24gb2YgRiwgc3VjaCB0aGF0IGBGPFMwLCBTMSwgLi4uLCBTbj5gIDw6IEMuCiAgICAqCkBAIC00NDMsNyArNTA3LDggQEAKICAgICAgIERhcnRUeXBlIHBhcmFtVHlwZTsKICAgICAgIGlmIChmVHlwZSAhPSBudWxsICYmIGdUeXBlICE9IG51bGwpIHsKICAgICAgICAgLy8gSWYgYm90aCBmdW5jdGlvbnMgaGF2ZSB0aGlzIHBhcmFtZXRlciwgaW5jbHVkZSBib3RoIG9mIHRoZWlyIHR5cGVzLgotICAgICAgICBwYXJhbVR5cGUgPSBnZXRMZWFzdFVwcGVyQm91bmQocHJvdmlkZXIsIGZUeXBlLCBnVHlwZSk7CisgICAgICAgIHBhcmFtVHlwZSA9CisgICAgICAgICAgICBnZXRMZWFzdFVwcGVyQm91bmQocHJvdmlkZXIsIGZUeXBlLCBnVHlwZSwgZHluYW1pY0lzQm90dG9tOiB0cnVlKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHBhcmFtVHlwZSA9IGZUeXBlID8/IGdUeXBlOwogICAgICAgfQpAQCAtNTI3LDcgKzU5Miw3IEBACiAgIEBvdmVycmlkZQogICBEYXJ0VHlwZSBfZnVuY3Rpb25QYXJhbWV0ZXJCb3VuZCgKICAgICAgICAgICBUeXBlUHJvdmlkZXIgcHJvdmlkZXIsIERhcnRUeXBlIGYsIERhcnRUeXBlIGcpID0+Ci0gICAgICBnZXRHcmVhdGVzdExvd2VyQm91bmQocHJvdmlkZXIsIGYsIGcpOworICAgICAgZ2V0R3JlYXRlc3RMb3dlckJvdW5kKHByb3ZpZGVyLCBmLCBnLCBkeW5hbWljSXNCb3R0b206IHRydWUpOwogCiAgIC8qKgogICAgKiBHdWFyZCBhZ2FpbnN0IGxvb3BzIGluIHRoZSBjbGFzcyBoaWVyYXJjaHkKQEAgLTYwNiwxMCArNjcxLDYgQEAKICAgICAgICAgcHJvdmlkZXIuZHluYW1pY1R5cGU7CiAgIH0KIAotICBib29sIF9pc0JvdHRvbShEYXJ0VHlwZSB0LCB7Ym9vbCBkeW5hbWljSXNCb3R0b206IGZhbHNlfSkgewotICAgIHJldHVybiAodC5pc0R5bmFtaWMgJiYgZHluYW1pY0lzQm90dG9tKSB8fCB0LmlzQm90dG9tOwotICB9Ci0KICAgLyoqCiAgICAqIENoZWNrIHRoYXQgW2YxXSBpcyBhIHN1YnR5cGUgb2YgW2YyXS4KICAgICoKQEAgLTc1OCwxOSArODE5LDIyIEBACiAgICAgcmV0dXJuIF9pc0Z1bmN0aW9uU3VidHlwZU9mKHQxIGFzIEZ1bmN0aW9uVHlwZSwgdDIgYXMgRnVuY3Rpb25UeXBlKTsKICAgfQogCi0gIGJvb2wgX2lzVG9wKERhcnRUeXBlIHQsIHtib29sIGR5bmFtaWNJc0JvdHRvbTogZmFsc2V9KSB7Ci0gICAgLy8gVE9ETyhsZWFmcCk6IERvY3VtZW50IHRoZSBydWxlcyBpbiBwbGF5IGhlcmUKLSAgICByZXR1cm4gKHQuaXNEeW5hbWljICYmICFkeW5hbWljSXNCb3R0b20pIHx8IHQuaXNPYmplY3Q7CisgIC8vLyBDaGVjayBpZiBbdHlwZV0gaXMgaW4gYSBzZXQgb2YgcHJlc2VsZWN0ZWQgbm9uLW51bGxhYmxlIHR5cGVzLgorICAvLy8gW0Z1bmN0aW9uVHlwZV1zIGFyZSBhbHdheXMgbnVsbGFibGUuCisgIGJvb2wgaXNOb25OdWxsYWJsZVR5cGUoRGFydFR5cGUgdHlwZSkgeworICAgIHJldHVybiAhaXNOdWxsYWJsZVR5cGUodHlwZSk7CiAgIH0KIAotICBib29sIGlzTm9uTnVsbGFibGVUeXBlKERhcnRUeXBlIHR5cGUpIHsKLSAgICByZXR1cm4gbm9ubnVsbGFibGVUeXBlcy5jb250YWlucyhfZ2V0VHlwZUZ1bGx5UXVhbGlmaWVkTmFtZSh0eXBlKSk7CisgIC8vLyBPcHBvc2l0ZSBvZiBbaXNOb25OdWxsYWJsZVR5cGVdLgorICBib29sIGlzTnVsbGFibGVUeXBlKERhcnRUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gdHlwZSBpcyBGdW5jdGlvblR5cGUgfHwKKyAgICAgICAgIW5vbm51bGxhYmxlVHlwZXMuY29udGFpbnMoX2dldFR5cGVGdWxseVF1YWxpZmllZE5hbWUodHlwZSkpOwogICB9CiAKICAgLy8vIEdpdmVuIGEgdHlwZSByZXR1cm4gaXRzIG5hbWUgcHJlcGVuZGVkIHdpdGggdGhlIFVSSSB0byBpdHMgY29udGFpbmluZwogICAvLy8gbGlicmFyeSBhbmQgc2VwYXJhdGVkIGJ5IGEgY29tbWEuCiAgIFN0cmluZyBfZ2V0VHlwZUZ1bGx5UXVhbGlmaWVkTmFtZShEYXJ0VHlwZSB0eXBlKSB7Ci0gICAgcmV0dXJuICIke3R5cGU/LmVsZW1lbnQ/LmxpYnJhcnk/LnNvdXJjZT8udXJpfSwkdHlwZSI7CisgICAgcmV0dXJuICIke3R5cGU/LmVsZW1lbnQ/LmxpYnJhcnk/LmlkZW50aWZpZXJ9LCR0eXBlIjsKICAgfQogCiAgIC8qKgpAQCAtODczLDE2ICs5MzcsMjAgQEAKICAgICogQ29tcHV0ZSB0aGUgbGVhc3QgdXBwZXIgYm91bmQgb2YgdHdvIHR5cGVzLgogICAgKi8KICAgRGFydFR5cGUgZ2V0TGVhc3RVcHBlckJvdW5kKAotICAgICAgVHlwZVByb3ZpZGVyIHR5cGVQcm92aWRlciwgRGFydFR5cGUgdHlwZTEsIERhcnRUeXBlIHR5cGUyKSB7CisgICAgICBUeXBlUHJvdmlkZXIgdHlwZVByb3ZpZGVyLCBEYXJ0VHlwZSB0eXBlMSwgRGFydFR5cGUgdHlwZTIsCisgICAgICB7Ym9vbCBkeW5hbWljSXNCb3R0b206IGZhbHNlfSkgewogICAgIC8vIFRoZSBsZWFzdCB1cHBlciBib3VuZCByZWxhdGlvbiBpcyByZWZsZXhpdmUuCiAgICAgaWYgKGlkZW50aWNhbCh0eXBlMSwgdHlwZTIpKSB7CiAgICAgICByZXR1cm4gdHlwZTE7CiAgICAgfQotICAgIC8vIFRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiBkeW5hbWljIGFuZCBhbnkgdHlwZSBUIGlzIGR5bmFtaWMuCi0gICAgaWYgKHR5cGUxLmlzRHluYW1pYykgeworICAgIC8vIFRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiB0b3AgYW5kIGFueSB0eXBlIFQgaXMgdG9wLgorICAgIC8vIFRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiBib3R0b20gYW5kIGFueSB0eXBlIFQgaXMgVC4KKyAgICBpZiAoX2lzVG9wKHR5cGUxLCBkeW5hbWljSXNCb3R0b206IGR5bmFtaWNJc0JvdHRvbSkgfHwKKyAgICAgICAgX2lzQm90dG9tKHR5cGUyLCBkeW5hbWljSXNCb3R0b206IGR5bmFtaWNJc0JvdHRvbSkpIHsKICAgICAgIHJldHVybiB0eXBlMTsKICAgICB9Ci0gICAgaWYgKHR5cGUyLmlzRHluYW1pYykgeworICAgIGlmIChfaXNUb3AodHlwZTIsIGR5bmFtaWNJc0JvdHRvbTogZHluYW1pY0lzQm90dG9tKSB8fAorICAgICAgICBfaXNCb3R0b20odHlwZTEsIGR5bmFtaWNJc0JvdHRvbTogZHluYW1pY0lzQm90dG9tKSkgewogICAgICAgcmV0dXJuIHR5cGUyOwogICAgIH0KICAgICAvLyBUaGUgbGVhc3QgdXBwZXIgYm91bmQgb2Ygdm9pZCBhbmQgYW55IHR5cGUgVCAhPSBkeW5hbWljIGlzIHZvaWQuCkBAIC04OTIsMTMgKzk2MCw2IEBACiAgICAgaWYgKHR5cGUyLmlzVm9pZCkgewogICAgICAgcmV0dXJuIHR5cGUyOwogICAgIH0KLSAgICAvLyBUaGUgbGVhc3QgdXBwZXIgYm91bmQgb2YgYm90dG9tIGFuZCBhbnkgdHlwZSBUIGlzIFQuCi0gICAgaWYgKHR5cGUxLmlzQm90dG9tKSB7Ci0gICAgICByZXR1cm4gdHlwZTI7Ci0gICAgfQotICAgIGlmICh0eXBlMi5pc0JvdHRvbSkgewotICAgICAgcmV0dXJuIHR5cGUxOwotICAgIH0KIAogICAgIGlmICh0eXBlMSBpcyBUeXBlUGFyYW1ldGVyVHlwZSB8fCB0eXBlMiBpcyBUeXBlUGFyYW1ldGVyVHlwZSkgewogICAgICAgcmV0dXJuIF90eXBlUGFyYW1ldGVyTGVhc3RVcHBlckJvdW5kKHR5cGVQcm92aWRlciwgdHlwZTEsIHR5cGUyKTsKQEAgLTE1MTYsMyArMTU3NywxMiBAQAogICAgIH0KICAgfQogfQorCitib29sIF9pc0JvdHRvbShEYXJ0VHlwZSB0LCB7Ym9vbCBkeW5hbWljSXNCb3R0b206IGZhbHNlfSkgeworICByZXR1cm4gKHQuaXNEeW5hbWljICYmIGR5bmFtaWNJc0JvdHRvbSkgfHwgdC5pc0JvdHRvbTsKK30KKworYm9vbCBfaXNUb3AoRGFydFR5cGUgdCwge2Jvb2wgZHluYW1pY0lzQm90dG9tOiBmYWxzZX0pIHsKKyAgLy8gVE9ETyhsZWFmcCk6IERvY3VtZW50IHRoZSBydWxlcyBpbiBwbGF5IGhlcmUKKyAgcmV0dXJuICh0LmlzRHluYW1pYyAmJiAhZHluYW1pY0lzQm90dG9tKSB8fCB0LmlzT2JqZWN0OworfQpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9hcGlfc2lnbmF0dXJlLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L2FwaV9zaWduYXR1cmUuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmZkNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9hcGlfc2lnbmF0dXJlLmRhcnQKQEAgLTAsMCArMSwxMzggQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworbGlicmFyeSBhbmFseXplci5zcmMuc3VtbWFyeS5hcGlfc2lnbmF0dXJlOworCitpbXBvcnQgJ2RhcnQ6Y29udmVydCc7CitpbXBvcnQgJ2RhcnQ6dHlwZWRfZGF0YSc7CisKK2ltcG9ydCAncGFja2FnZTpjb252ZXJ0L2NvbnZlcnQuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6Y3J5cHRvL2NyeXB0by5kYXJ0JzsKKworLyoqCisgKiBBbiBpbnN0YW5jZSBvZiBbQXBpU2lnbmF0dXJlXSBjb2xsZWN0cyBkYXRhIGluIHRoZSBmb3JtIG9mIHByaW1pdGl2ZSB0eXBlcworICogKHN0cmluZ3MsIGludHMsIGJvb2xzLCBldGMuKSBmcm9tIGEgc3VtbWFyeSAiYnVpbGRlciIgb2JqZWN0LCBhbmQgdXNlcyB0aGVtCisgKiB0byBnZW5lcmF0ZSBhbiBNRDUgc2lnbmF0dXJlIG9mIGEgdGhlIG5vbi1pbmZvcm1hdGl2ZSBwYXJ0cyBvZiB0aGUgc3VtbWFyeQorICogKGkuZS4gdGhvc2UgcGFydHMgcmVwcmVzZW50aW5nIHRoZSBBUEkgb2YgdGhlIGNvZGUgYmVpbmcgc3VtbWFyaXplZCkuCisgKgorICogTm90ZSB0aGF0IHRoZSBkYXRhIHBhc3NlZCB0byB0aGUgTUQ1IHNpZ25hdHVyZSBhbGdvcml0aG0gaXMgdW50eXBlZC4gIFNvLCBmb3IKKyAqIGluc3RhbmNlLCBhbiBBUEkgc2lnbmF0dXJlIGJ1aWx0IGZyb20gYSBzZXF1ZW5jZSBvZiBgZmFsc2VgIGJvb2xlYW5zIGlzCisgKiBsaWtlbHkgdG8gbWF0Y2ggYW4gQVBJIHNpZ25hdHVyZSBidWlsdCBmcm9tIGEgc2VxdWVuY2Ugb2YgemVyb3MuICBUaGUgY2FsbGVyCisgKiBzaG91bGQgdGFrZSB0aGlzIGludG8gYWNjb3VudDsgZS5nLiBpZiBhIGRhdGEgc3RydWN0dXJlIG1heSBiZSByZXByZXNlbnRlZAorICogZWl0aGVyIGJ5IGEgYm9vbGVhbiBvciBhbiBpbnQsIHRoZSBjYWxsZXIgc2hvdWxkIGVuY29kZSBhIHRhZyBkaXN0aW5ndWlzaGluZworICogdGhlIHR3byByZXByZXNlbnRhdGlvbnMgYmVmb3JlIGVuY29kaW5nIHRoZSBkYXRhLgorICovCitjbGFzcyBBcGlTaWduYXR1cmUgeworICAvKioKKyAgICogVmVyc2lvbiBudW1iZXIgb2YgdGhlIGNvZGUgaW4gdGhpcyBjbGFzcy4gIEFueSB0aW1lIHRoaXMgY2xhc3MgaXMgY2hhbmdlZAorICAgKiBpbiBhIHdheSB0aGF0IGFmZmVjdHMgdGhlIGRhdGEgY29sbGVjdGVkIGluIFtfZGF0YV0sIHRoaXMgdmVyc2lvbiBudW1iZXIKKyAgICogc2hvdWxkIGJlIGluY3JlbWVudGVkLCBzbyB0aGF0IGEgc3VtbWFyeSBzaWduZWQgYnkgYSBuZXdlciB2ZXJzaW9uIG9mIHRoZQorICAgKiBzaWduYXR1cmUgYWxnb3JpdGhtIHdvbid0IGFjY2lkZW50YWxseSBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZSBhcyBhIHN1bW1hcnkKKyAgICogc2lnbmVkIGJ5IGFuIG9sZGVyIHZlcnNpb24uCisgICAqLworICBzdGF0aWMgY29uc3QgaW50IF9WRVJTSU9OID0gMDsKKworICAvKioKKyAgICogRGF0YSBhY2N1bXVsYXRlZCBzbyBmYXIuCisgICAqLworICBCeXRlRGF0YSBfZGF0YSA9IG5ldyBCeXRlRGF0YSg0MDk2KTsKKworICAvKioKKyAgICogT2Zmc2V0IGludG8gW19kYXRhXSB3aGVyZSB0aGUgbmV4dCBieXRlIHNob3VsZCBiZSB3cml0dGVuLgorICAgKi8KKyAgaW50IF9vZmZzZXQgPSAwOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gW0FwaVNpZ25hdHVyZV0gd2hpY2ggaXMgcmVhZHkgdG8gYWNjZXB0IGRhdGEuCisgICAqLworICBBcGlTaWduYXR1cmUoKSB7CisgICAgYWRkSW50KF9WRVJTSU9OKTsKKyAgfQorCisgIC8qKgorICAgKiBGb3IgdGVzdGluZyBvbmx5OiBjcmVhdGUgYW4gW0FwaVNpZ25hdHVyZV0gd2hpY2ggZG9lc24ndCBpbmNsdWRlIGFueQorICAgKiB2ZXJzaW9uIGluZm9ybWF0aW9uLiAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gdW5pdCB0ZXN0cywgc2luY2UgdGhlIGRhdGEKKyAgICogaXMgc3RhYmxlIGV2ZW4gaWYgW19WRVJTSU9OXSBpcyBjaGFuZ2VkLgorICAgKi8KKyAgQXBpU2lnbmF0dXJlLnVudmVyc2lvbmVkKCk7CisKKyAgLyoqCisgICAqIENvbGxlY3QgYSBib29sZWFuIHZhbHVlLgorICAgKi8KKyAgdm9pZCBhZGRCb29sKGJvb2wgYikgeworICAgIF9tYWtlUm9vbSgxKTsKKyAgICBfZGF0YS5zZXRVaW50OChfb2Zmc2V0LCBiID8gMSA6IDApOworICAgIF9vZmZzZXQrKzsKKyAgfQorCisgIC8qKgorICAgKiBDb2xsZWN0IGEgc2VxdWVuY2Ugb2YgYXJiaXRyYXJ5IGJ5dGVzLiAgTm90ZSB0aGF0IHRoZSBsZW5ndGggaXMgbm90CisgICAqIGNvbGxlY3RlZCwgc28gZm9yIGV4YW1wbGUgYGFkZEJ5dGVzKFsxLCAyXSk7YCB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0IGFzCisgICAqIGBhZGRCeXRlcyhbMV0pOyBhZGRCeXRlcyhbMl0pO2AuCisgICAqLworICB2b2lkIGFkZEJ5dGVzKExpc3Q8aW50PiBieXRlcykgeworICAgIF9tYWtlUm9vbShieXRlcy5sZW5ndGgpOworICAgIG5ldyBVaW50OExpc3QudmlldyhfZGF0YS5idWZmZXIpCisgICAgICAgIC5zZXRSYW5nZShfb2Zmc2V0LCBfb2Zmc2V0ICsgYnl0ZXMubGVuZ3RoLCBieXRlcyk7CisgICAgX29mZnNldCArPSBieXRlcy5sZW5ndGg7CisgIH0KKworICAvKioKKyAgICogQ29sbGVjdCBhIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUuCisgICAqLworICB2b2lkIGFkZERvdWJsZShkb3VibGUgZCkgeworICAgIF9tYWtlUm9vbSg4KTsKKyAgICBfZGF0YS5zZXRGbG9hdDY0KF9vZmZzZXQsIGQsIEVuZGlhbm5lc3MuTElUVExFX0VORElBTik7CisgICAgX29mZnNldCArPSA4OworICB9CisKKyAgLyoqCisgICAqIENvbGxlY3QgYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZS4KKyAgICovCisgIHZvaWQgYWRkSW50KGludCBpKSB7CisgICAgX21ha2VSb29tKDQpOworICAgIF9kYXRhLnNldFVpbnQzMihfb2Zmc2V0LCBpLCBFbmRpYW5uZXNzLkxJVFRMRV9FTkRJQU4pOworICAgIF9vZmZzZXQgKz0gNDsKKyAgfQorCisgIC8qKgorICAgKiBDb2xsZWN0IGEgc3RyaW5nLgorICAgKi8KKyAgdm9pZCBhZGRTdHJpbmcoU3RyaW5nIHMpIHsKKyAgICBMaXN0PGludD4gYnl0ZXMgPSBVVEY4LmVuY29kZShzKTsKKyAgICBhZGRJbnQoYnl0ZXMubGVuZ3RoKTsKKyAgICBhZGRCeXRlcyhieXRlcyk7CisgIH0KKworICAvKioKKyAgICogRm9yIHRlc3Rpbmcgb25seTogcmV0cmlldmUgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhIHRoYXQKKyAgICogaGFzIGJlZW4gY29sbGVjdGVkLgorICAgKi8KKyAgTGlzdDxpbnQ+IGdldEJ5dGVzX2ZvckRlYnVnKCkgeworICAgIHJldHVybiBuZXcgVWludDhMaXN0LnZpZXcoX2RhdGEuYnVmZmVyLCAwLCBfb2Zmc2V0KS50b0xpc3QoKTsKKyAgfQorCisgIC8qKgorICAgKiBSZXR1cm4gYSBoZXgtZW5jb2RlZCBNRDUgc2lnbmF0dXJlIG9mIHRoZSBkYXRhIGNvbGxlY3RlZCBzbyBmYXIuCisgICAqLworICBTdHJpbmcgdG9IZXgoKSB7CisgICAgcmV0dXJuIGhleC5lbmNvZGUoCisgICAgICAgIG1kNS5jb252ZXJ0KG5ldyBVaW50OExpc3QudmlldyhfZGF0YS5idWZmZXIsIDAsIF9vZmZzZXQpKS5ieXRlcyk7CisgIH0KKworICAvKioKKyAgICogRW5zdXJlIHRoYXQgW3NwYWNlTmVlZGVkXSBieXRlcyBjYW4gYmUgYWRkZWQgdG8gW19kYXRhXSBhdCBbX29mZnNldF0KKyAgICogKGNvcHlpbmcgaXQgdG8gYSBsYXJnZXIgb2JqZWN0IGlmIG5lY2Vzc2FyeSkuCisgICAqLworICB2b2lkIF9tYWtlUm9vbShpbnQgc3BhY2VOZWVkZWQpIHsKKyAgICBpbnQgb2xkTGVuZ3RoID0gX2RhdGEubGVuZ3RoSW5CeXRlczsKKyAgICBpZiAoX29mZnNldCArIHNwYWNlTmVlZGVkID4gb2xkTGVuZ3RoKSB7CisgICAgICBpbnQgbmV3TGVuZ3RoID0gMiAqIChfb2Zmc2V0ICsgc3BhY2VOZWVkZWQpOworICAgICAgQnl0ZURhdGEgbmV3RGF0YSA9IG5ldyBCeXRlRGF0YShuZXdMZW5ndGgpOworICAgICAgbmV3IFVpbnQ4TGlzdC52aWV3KG5ld0RhdGEuYnVmZmVyKQorICAgICAgICAgIC5zZXRSYW5nZSgwLCBvbGRMZW5ndGgsIG5ldyBVaW50OExpc3QudmlldyhfZGF0YS5idWZmZXIpKTsKKyAgICAgIF9kYXRhID0gbmV3RGF0YTsKKyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvZm9ybWF0LmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L2Zvcm1hdC5kYXJ0CmluZGV4IGJiZWQ1NmUuLmJjNGQwYWIgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvZm9ybWF0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9mb3JtYXQuZGFydApAQCAtMTAsNiArMTAsNyBAQAogaW1wb3J0ICdmbGF0X2J1ZmZlcnMuZGFydCcgYXMgZmI7CiBpbXBvcnQgJ2lkbC5kYXJ0JyBhcyBpZGw7CiBpbXBvcnQgJ2RhcnQ6Y29udmVydCcgYXMgY29udmVydDsKK2ltcG9ydCAnYXBpX3NpZ25hdHVyZS5kYXJ0JyBhcyBhcGlfc2lnOwogCiBjbGFzcyBfQ2FjaGVTb3VyY2VLaW5kUmVhZGVyIGV4dGVuZHMgZmIuUmVhZGVyPGlkbC5DYWNoZVNvdXJjZUtpbmQ+IHsKICAgY29uc3QgX0NhY2hlU291cmNlS2luZFJlYWRlcigpIDogc3VwZXIoKTsKQEAgLTIxNiw2ICsyMTcsMTcgQEAKICAgdm9pZCBmbHVzaEluZm9ybWF0aXZlKCkgewogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fZXJyb3JDb2RlVW5pcXVlTmFtZSA/PyAnJyk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9vZmZzZXQgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9sZW5ndGggPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9tZXNzYWdlID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX2NvcnJlY3Rpb24gPz8gJycpOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfY29ycmVjdGlvbjsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2Vycm9yQ29kZVVuaXF1ZU5hbWU7CkBAIC0zODUsNiArMzk3LDM3IEBACiAgIHZvaWQgZmx1c2hJbmZvcm1hdGl2ZSgpIHsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2tpbmQgPT0gbnVsbCA/IDAgOiB0aGlzLl9raW5kLmluZGV4KTsKKyAgICBpZiAodGhpcy5faW1wb3J0ZWRVcmlzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5faW1wb3J0ZWRVcmlzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2ltcG9ydGVkVXJpcykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fZXhwb3J0ZWRVcmlzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZXhwb3J0ZWRVcmlzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2V4cG9ydGVkVXJpcykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fcGFydFVyaXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9wYXJ0VXJpcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9wYXJ0VXJpcykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgfQorCiAgIExpc3Q8aW50PiB0b0J1ZmZlcigpIHsKICAgICBmYi5CdWlsZGVyIGZiQnVpbGRlciA9IG5ldyBmYi5CdWlsZGVyKCk7CiAgICAgcmV0dXJuIGZiQnVpbGRlci5maW5pc2goZmluaXNoKGZiQnVpbGRlciksICJDYVNTIik7CkBAIC01MTQsNiArNTU3LDIwIEBACiAgICAgX2Vycm9ycz8uZm9yRWFjaCgoYikgPT4gYi5mbHVzaEluZm9ybWF0aXZlKCkpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIGlmICh0aGlzLl9lcnJvcnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9lcnJvcnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZXJyb3JzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBMaXN0PGludD4gdG9CdWZmZXIoKSB7CiAgICAgZmIuQnVpbGRlciBmYkJ1aWxkZXIgPSBuZXcgZmIuQnVpbGRlcigpOwogICAgIHJldHVybiBmYkJ1aWxkZXIuZmluaXNoKGZpbmlzaChmYkJ1aWxkZXIpLCAiQ1NFTCIpOwpAQCAtNjEyLDYgKzY2OSwxNCBAQAogICB2b2lkIGZsdXNoSW5mb3JtYXRpdmUoKSB7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9vZmZzZXQgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9sZW5ndGggPz8gMCk7CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmJCdWlsZGVyLnN0YXJ0VGFibGUoKTsKICAgICBpZiAoX2xlbmd0aCAhPSBudWxsICYmIF9sZW5ndGggIT0gMCkgewpAQCAtODIwLDYgKzg4NSw0MSBAQAogICAgIF90eXBlQXJndW1lbnRzPy5mb3JFYWNoKChiKSA9PiBiLmZsdXNoSW5mb3JtYXRpdmUoKSk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9yZWZlcmVuY2UgPz8gMCk7CisgICAgaWYgKHRoaXMuX3R5cGVBcmd1bWVudHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl90eXBlQXJndW1lbnRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3R5cGVBcmd1bWVudHMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3Nsb3QgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9wYXJhbVJlZmVyZW5jZSA/PyAwKTsKKyAgICBpZiAodGhpcy5faW1wbGljaXRGdW5jdGlvblR5cGVJbmRpY2VzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5faW1wbGljaXRGdW5jdGlvblR5cGVJbmRpY2VzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2ltcGxpY2l0RnVuY3Rpb25UeXBlSW5kaWNlcykgeworICAgICAgICBzaWduYXR1cmUuYWRkSW50KHgpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9zeW50aGV0aWNSZXR1cm5UeXBlICE9IG51bGwpOworICAgIHRoaXMuX3N5bnRoZXRpY1JldHVyblR5cGU/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBpZiAodGhpcy5fc3ludGhldGljUGFyYW1zID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fc3ludGhldGljUGFyYW1zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3N5bnRoZXRpY1BhcmFtcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfaW1wbGljaXRGdW5jdGlvblR5cGVJbmRpY2VzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfc3ludGhldGljUGFyYW1zOwpAQCAtOTk1LDYgKzEwOTUsMjEgQEAKICAgdm9pZCBmbHVzaEluZm9ybWF0aXZlKCkgewogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fdXJpID8/ICcnKTsKKyAgICBpZiAodGhpcy5fcGFydHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9wYXJ0cy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9wYXJ0cykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgfQorCiAgIGZiLk9mZnNldCBmaW5pc2goZmIuQnVpbGRlciBmYkJ1aWxkZXIpIHsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X3BhcnRzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfdXJpOwpAQCAtMTEyOCw2ICsxMjQzLDE2IEBACiAgIHZvaWQgZmx1c2hJbmZvcm1hdGl2ZSgpIHsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2RlcGVuZGVuY3kgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3VuaXQgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9raW5kID09IG51bGwgPyAwIDogdGhpcy5fa2luZC5pbmRleCk7CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9uYW1lOwogICAgIGlmIChfbmFtZSAhPSBudWxsKSB7CkBAIC0xMzQxLDYgKzE0NjYsNTQgQEAKICAgICBfdW5pdHM/LmZvckVhY2goKGIpID0+IGIuZmx1c2hJbmZvcm1hdGl2ZSgpKTsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBpZiAodGhpcy5fZGVwZW5kZW5jaWVzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZGVwZW5kZW5jaWVzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2RlcGVuZGVuY2llcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9pbXBvcnREZXBlbmRlbmNpZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9pbXBvcnREZXBlbmRlbmNpZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5faW1wb3J0RGVwZW5kZW5jaWVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fbnVtUHJlbGlua2VkRGVwZW5kZW5jaWVzID8/IDApOworICAgIGlmICh0aGlzLl91bml0cyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3VuaXRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3VuaXRzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2V4cG9ydE5hbWVzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZXhwb3J0TmFtZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZXhwb3J0TmFtZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9mYWxsYmFja01vZGUgPT0gdHJ1ZSk7CisgICAgaWYgKHRoaXMuX2V4cG9ydERlcGVuZGVuY2llcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2V4cG9ydERlcGVuZGVuY2llcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9leHBvcnREZXBlbmRlbmNpZXMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4KTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBMaXN0PGludD4gdG9CdWZmZXIoKSB7CiAgICAgZmIuQnVpbGRlciBmYkJ1aWxkZXIgPSBuZXcgZmIuQnVpbGRlcigpOwogICAgIHJldHVybiBmYkJ1aWxkZXIuZmluaXNoKGZpbmlzaChmYkJ1aWxkZXIpLCAiTExpYiIpOwpAQCAtMTYxNyw2ICsxNzkwLDE5IEBACiAgIHZvaWQgZmx1c2hJbmZvcm1hdGl2ZSgpIHsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3VuaXQgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9kZXBlbmRlbmN5ID8/IDApOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fa2luZCA9PSBudWxsID8gMCA6IHRoaXMuX2tpbmQuaW5kZXgpOworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbmFtZSA/PyAnJyk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9udW1UeXBlUGFyYW1ldGVycyA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2NvbnRhaW5pbmdSZWZlcmVuY2UgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9sb2NhbEluZGV4ID8/IDApOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfbmFtZTsKICAgICBpZiAoX25hbWUgIT0gbnVsbCkgewpAQCAtMTc5Nyw2ICsxOTgzLDM2IEBACiAgICAgX3R5cGVzPy5mb3JFYWNoKChiKSA9PiBiLmZsdXNoSW5mb3JtYXRpdmUoKSk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgaWYgKHRoaXMuX3JlZmVyZW5jZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9yZWZlcmVuY2VzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3JlZmVyZW5jZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fdHlwZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl90eXBlcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl90eXBlcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9jb25zdEN5Y2xlcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2NvbnN0Q3ljbGVzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2NvbnN0Q3ljbGVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfY29uc3RDeWNsZXM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9yZWZlcmVuY2VzOwpAQCAtMTg4Miw2ICsyMDk4LDcgQEAKIH0KIAogY2xhc3MgUGFja2FnZUJ1bmRsZUJ1aWxkZXIgZXh0ZW5kcyBPYmplY3Qgd2l0aCBfUGFja2FnZUJ1bmRsZU1peGluIGltcGxlbWVudHMgaWRsLlBhY2thZ2VCdW5kbGUgeworICBTdHJpbmcgX2FwaVNpZ25hdHVyZTsKICAgTGlzdDxMaW5rZWRMaWJyYXJ5QnVpbGRlcj4gX2xpbmtlZExpYnJhcmllczsKICAgTGlzdDxTdHJpbmc+IF9saW5rZWRMaWJyYXJ5VXJpczsKICAgaW50IF9tYWpvclZlcnNpb247CkBAIC0xODkxLDYgKzIxMDgsMTggQEAKICAgTGlzdDxTdHJpbmc+IF91bmxpbmtlZFVuaXRVcmlzOwogCiAgIEBvdmVycmlkZQorICBTdHJpbmcgZ2V0IGFwaVNpZ25hdHVyZSA9PiBfYXBpU2lnbmF0dXJlID8/PSAnJzsKKworICAvKioKKyAgICogTUQ1IGhhc2ggb2YgdGhlIG5vbi1pbmZvcm1hdGl2ZSBmaWVsZHMgb2YgdGhlIFtQYWNrYWdlQnVuZGxlXSAobm90CisgICAqIGluY2x1ZGluZyB0aGlzIG9uZSkuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHdoZW4gdGhlIEFQSSBvZiBhCisgICAqIHBhY2thZ2UgbWF5IGhhdmUgY2hhbmdlZC4KKyAgICovCisgIHZvaWQgc2V0IGFwaVNpZ25hdHVyZShTdHJpbmcgX3ZhbHVlKSB7CisgICAgX2FwaVNpZ25hdHVyZSA9IF92YWx1ZTsKKyAgfQorCisgIEBvdmVycmlkZQogICBMaXN0PExpbmtlZExpYnJhcnlCdWlsZGVyPiBnZXQgbGlua2VkTGlicmFyaWVzID0+IF9saW5rZWRMaWJyYXJpZXMgPz89IDxMaW5rZWRMaWJyYXJ5QnVpbGRlcj5bXTsKIAogICAvKioKQEAgLTE5NjYsOCArMjE5NSw5IEBACiAgICAgX3VubGlua2VkVW5pdFVyaXMgPSBfdmFsdWU7CiAgIH0KIAotICBQYWNrYWdlQnVuZGxlQnVpbGRlcih7TGlzdDxMaW5rZWRMaWJyYXJ5QnVpbGRlcj4gbGlua2VkTGlicmFyaWVzLCBMaXN0PFN0cmluZz4gbGlua2VkTGlicmFyeVVyaXMsIGludCBtYWpvclZlcnNpb24sIGludCBtaW5vclZlcnNpb24sIExpc3Q8U3RyaW5nPiB1bmxpbmtlZFVuaXRIYXNoZXMsIExpc3Q8VW5saW5rZWRVbml0QnVpbGRlcj4gdW5saW5rZWRVbml0cywgTGlzdDxTdHJpbmc+IHVubGlua2VkVW5pdFVyaXN9KQotICAgIDogX2xpbmtlZExpYnJhcmllcyA9IGxpbmtlZExpYnJhcmllcywKKyAgUGFja2FnZUJ1bmRsZUJ1aWxkZXIoe1N0cmluZyBhcGlTaWduYXR1cmUsIExpc3Q8TGlua2VkTGlicmFyeUJ1aWxkZXI+IGxpbmtlZExpYnJhcmllcywgTGlzdDxTdHJpbmc+IGxpbmtlZExpYnJhcnlVcmlzLCBpbnQgbWFqb3JWZXJzaW9uLCBpbnQgbWlub3JWZXJzaW9uLCBMaXN0PFN0cmluZz4gdW5saW5rZWRVbml0SGFzaGVzLCBMaXN0PFVubGlua2VkVW5pdEJ1aWxkZXI+IHVubGlua2VkVW5pdHMsIExpc3Q8U3RyaW5nPiB1bmxpbmtlZFVuaXRVcmlzfSkKKyAgICA6IF9hcGlTaWduYXR1cmUgPSBhcGlTaWduYXR1cmUsCisgICAgICBfbGlua2VkTGlicmFyaWVzID0gbGlua2VkTGlicmFyaWVzLAogICAgICAgX2xpbmtlZExpYnJhcnlVcmlzID0gbGlua2VkTGlicmFyeVVyaXMsCiAgICAgICBfbWFqb3JWZXJzaW9uID0gbWFqb3JWZXJzaW9uLAogICAgICAgX21pbm9yVmVyc2lvbiA9IG1pbm9yVmVyc2lvbiwKQEAgLTE5ODQsMTcgKzIyMTQsNjIgQEAKICAgICBfdW5saW5rZWRVbml0cz8uZm9yRWFjaCgoYikgPT4gYi5mbHVzaEluZm9ybWF0aXZlKCkpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIGlmICh0aGlzLl9saW5rZWRMaWJyYXJpZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9saW5rZWRMaWJyYXJpZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fbGlua2VkTGlicmFyaWVzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2xpbmtlZExpYnJhcnlVcmlzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fbGlua2VkTGlicmFyeVVyaXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fbGlua2VkTGlicmFyeVVyaXMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX3VubGlua2VkVW5pdHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91bmxpbmtlZFVuaXRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3VubGlua2VkVW5pdHMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fdW5saW5rZWRVbml0VXJpcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3VubGlua2VkVW5pdFVyaXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdW5saW5rZWRVbml0VXJpcykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX21ham9yVmVyc2lvbiA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX21pbm9yVmVyc2lvbiA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX2FwaVNpZ25hdHVyZSA/PyAnJyk7CisgIH0KKwogICBMaXN0PGludD4gdG9CdWZmZXIoKSB7CiAgICAgZmIuQnVpbGRlciBmYkJ1aWxkZXIgPSBuZXcgZmIuQnVpbGRlcigpOwogICAgIHJldHVybiBmYkJ1aWxkZXIuZmluaXNoKGZpbmlzaChmYkJ1aWxkZXIpLCAiUEJkbCIpOwogICB9CiAKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgeworICAgIGZiLk9mZnNldCBvZmZzZXRfYXBpU2lnbmF0dXJlOwogICAgIGZiLk9mZnNldCBvZmZzZXRfbGlua2VkTGlicmFyaWVzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfbGlua2VkTGlicmFyeVVyaXM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF91bmxpbmtlZFVuaXRIYXNoZXM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF91bmxpbmtlZFVuaXRzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfdW5saW5rZWRVbml0VXJpczsKKyAgICBpZiAoX2FwaVNpZ25hdHVyZSAhPSBudWxsKSB7CisgICAgICBvZmZzZXRfYXBpU2lnbmF0dXJlID0gZmJCdWlsZGVyLndyaXRlU3RyaW5nKF9hcGlTaWduYXR1cmUpOworICAgIH0KICAgICBpZiAoIShfbGlua2VkTGlicmFyaWVzID09IG51bGwgfHwgX2xpbmtlZExpYnJhcmllcy5pc0VtcHR5KSkgewogICAgICAgb2Zmc2V0X2xpbmtlZExpYnJhcmllcyA9IGZiQnVpbGRlci53cml0ZUxpc3QoX2xpbmtlZExpYnJhcmllcy5tYXAoKGIpID0+IGIuZmluaXNoKGZiQnVpbGRlcikpLnRvTGlzdCgpKTsKICAgICB9CkBAIC0yMDExLDYgKzIyODYsOSBAQAogICAgICAgb2Zmc2V0X3VubGlua2VkVW5pdFVyaXMgPSBmYkJ1aWxkZXIud3JpdGVMaXN0KF91bmxpbmtlZFVuaXRVcmlzLm1hcCgoYikgPT4gZmJCdWlsZGVyLndyaXRlU3RyaW5nKGIpKS50b0xpc3QoKSk7CiAgICAgfQogICAgIGZiQnVpbGRlci5zdGFydFRhYmxlKCk7CisgICAgaWYgKG9mZnNldF9hcGlTaWduYXR1cmUgIT0gbnVsbCkgeworICAgICAgZmJCdWlsZGVyLmFkZE9mZnNldCg3LCBvZmZzZXRfYXBpU2lnbmF0dXJlKTsKKyAgICB9CiAgICAgaWYgKG9mZnNldF9saW5rZWRMaWJyYXJpZXMgIT0gbnVsbCkgewogICAgICAgZmJCdWlsZGVyLmFkZE9mZnNldCgwLCBvZmZzZXRfbGlua2VkTGlicmFyaWVzKTsKICAgICB9CkBAIC0yMDU0LDYgKzIzMzIsNyBAQAogCiAgIF9QYWNrYWdlQnVuZGxlSW1wbCh0aGlzLl9iYywgdGhpcy5fYmNPZmZzZXQpOwogCisgIFN0cmluZyBfYXBpU2lnbmF0dXJlOwogICBMaXN0PGlkbC5MaW5rZWRMaWJyYXJ5PiBfbGlua2VkTGlicmFyaWVzOwogICBMaXN0PFN0cmluZz4gX2xpbmtlZExpYnJhcnlVcmlzOwogICBpbnQgX21ham9yVmVyc2lvbjsKQEAgLTIwNjMsNiArMjM0MiwxMiBAQAogICBMaXN0PFN0cmluZz4gX3VubGlua2VkVW5pdFVyaXM7CiAKICAgQG92ZXJyaWRlCisgIFN0cmluZyBnZXQgYXBpU2lnbmF0dXJlIHsKKyAgICBfYXBpU2lnbmF0dXJlID8/PSBjb25zdCBmYi5TdHJpbmdSZWFkZXIoKS52VGFibGVHZXQoX2JjLCBfYmNPZmZzZXQsIDcsICcnKTsKKyAgICByZXR1cm4gX2FwaVNpZ25hdHVyZTsKKyAgfQorCisgIEBvdmVycmlkZQogICBMaXN0PGlkbC5MaW5rZWRMaWJyYXJ5PiBnZXQgbGlua2VkTGlicmFyaWVzIHsKICAgICBfbGlua2VkTGlicmFyaWVzID8/PSBjb25zdCBmYi5MaXN0UmVhZGVyPGlkbC5MaW5rZWRMaWJyYXJ5Pihjb25zdCBfTGlua2VkTGlicmFyeVJlYWRlcigpKS52VGFibGVHZXQoX2JjLCBfYmNPZmZzZXQsIDAsIGNvbnN0IDxpZGwuTGlua2VkTGlicmFyeT5bXSk7CiAgICAgcmV0dXJuIF9saW5rZWRMaWJyYXJpZXM7CkBAIC0yMTA5LDYgKzIzOTQsNyBAQAogICBAb3ZlcnJpZGUKICAgTWFwPFN0cmluZywgT2JqZWN0PiB0b0pzb24oKSB7CiAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBfcmVzdWx0ID0gPFN0cmluZywgT2JqZWN0Pnt9OworICAgIGlmIChhcGlTaWduYXR1cmUgIT0gJycpIF9yZXN1bHRbImFwaVNpZ25hdHVyZSJdID0gYXBpU2lnbmF0dXJlOwogICAgIGlmIChsaW5rZWRMaWJyYXJpZXMuaXNOb3RFbXB0eSkgX3Jlc3VsdFsibGlua2VkTGlicmFyaWVzIl0gPSBsaW5rZWRMaWJyYXJpZXMubWFwKChfdmFsdWUpID0+IF92YWx1ZS50b0pzb24oKSkudG9MaXN0KCk7CiAgICAgaWYgKGxpbmtlZExpYnJhcnlVcmlzLmlzTm90RW1wdHkpIF9yZXN1bHRbImxpbmtlZExpYnJhcnlVcmlzIl0gPSBsaW5rZWRMaWJyYXJ5VXJpczsKICAgICBpZiAobWFqb3JWZXJzaW9uICE9IDApIF9yZXN1bHRbIm1ham9yVmVyc2lvbiJdID0gbWFqb3JWZXJzaW9uOwpAQCAtMjEyMSw2ICsyNDA3LDcgQEAKIAogICBAb3ZlcnJpZGUKICAgTWFwPFN0cmluZywgT2JqZWN0PiB0b01hcCgpID0+IHsKKyAgICAiYXBpU2lnbmF0dXJlIjogYXBpU2lnbmF0dXJlLAogICAgICJsaW5rZWRMaWJyYXJpZXMiOiBsaW5rZWRMaWJyYXJpZXMsCiAgICAgImxpbmtlZExpYnJhcnlVcmlzIjogbGlua2VkTGlicmFyeVVyaXMsCiAgICAgIm1ham9yVmVyc2lvbiI6IG1ham9yVmVyc2lvbiwKQEAgLTIyNzksNiArMjU2Niw4NCBAQAogICAgIF91bml0cz8uZm9yRWFjaCgoYikgPT4gYi5mbHVzaEluZm9ybWF0aXZlKCkpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIGlmICh0aGlzLl9lbGVtZW50VW5pdHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9lbGVtZW50VW5pdHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZWxlbWVudFVuaXRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9lbGVtZW50TmFtZVVuaXRNZW1iZXJJZHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9lbGVtZW50TmFtZVVuaXRNZW1iZXJJZHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZWxlbWVudE5hbWVVbml0TWVtYmVySWRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91bml0TGlicmFyeVVyaXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91bml0TGlicmFyeVVyaXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdW5pdExpYnJhcnlVcmlzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91bml0VW5pdFVyaXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91bml0VW5pdFVyaXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdW5pdFVuaXRVcmlzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91bml0cyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3VuaXRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3VuaXRzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2VsZW1lbnRLaW5kcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2VsZW1lbnRLaW5kcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9lbGVtZW50S2luZHMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4LmluZGV4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX3N0cmluZ3MgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9zdHJpbmdzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3N0cmluZ3MpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2VsZW1lbnROYW1lQ2xhc3NNZW1iZXJJZHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9lbGVtZW50TmFtZUNsYXNzTWVtYmVySWRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2VsZW1lbnROYW1lQ2xhc3NNZW1iZXJJZHMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2VsZW1lbnROYW1lUGFyYW1ldGVySWRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZWxlbWVudE5hbWVQYXJhbWV0ZXJJZHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZWxlbWVudE5hbWVQYXJhbWV0ZXJJZHMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4KTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBMaXN0PGludD4gdG9CdWZmZXIoKSB7CiAgICAgZmIuQnVpbGRlciBmYkJ1aWxkZXIgPSBuZXcgZmIuQnVpbGRlcigpOwogICAgIHJldHVybiBmYkJ1aWxkZXIuZmluaXNoKGZpbmlzaChmYkJ1aWxkZXIpLCAiSW5keCIpOwpAQCAtMjY1Niw2ICszMDIxLDEwOSBAQAogICB2b2lkIGZsdXNoSW5mb3JtYXRpdmUoKSB7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91bml0ID8/IDApOworICAgIGlmICh0aGlzLl91c2VkRWxlbWVudExlbmd0aHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkRWxlbWVudExlbmd0aHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZEVsZW1lbnRMZW5ndGhzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkRWxlbWVudE9mZnNldHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkRWxlbWVudE9mZnNldHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZEVsZW1lbnRPZmZzZXRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkRWxlbWVudHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkRWxlbWVudHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZEVsZW1lbnRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkRWxlbWVudEtpbmRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdXNlZEVsZW1lbnRLaW5kcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl91c2VkRWxlbWVudEtpbmRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeC5pbmRleCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9kZWZpbmVkTmFtZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9kZWZpbmVkTmFtZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZGVmaW5lZE5hbWVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9kZWZpbmVkTmFtZUtpbmRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZGVmaW5lZE5hbWVLaW5kcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9kZWZpbmVkTmFtZUtpbmRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeC5pbmRleCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9kZWZpbmVkTmFtZU9mZnNldHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9kZWZpbmVkTmFtZU9mZnNldHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZGVmaW5lZE5hbWVPZmZzZXRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkTmFtZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkTmFtZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZE5hbWVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkTmFtZU9mZnNldHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkTmFtZU9mZnNldHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZE5hbWVPZmZzZXRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkTmFtZUtpbmRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdXNlZE5hbWVLaW5kcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl91c2VkTmFtZUtpbmRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRJbnQoeC5pbmRleCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl91c2VkRWxlbWVudElzUXVhbGlmaWVkRmxhZ3MgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl91c2VkRWxlbWVudElzUXVhbGlmaWVkRmxhZ3MubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdXNlZEVsZW1lbnRJc1F1YWxpZmllZEZsYWdzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRCb29sKHgpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fdXNlZE5hbWVJc1F1YWxpZmllZEZsYWdzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdXNlZE5hbWVJc1F1YWxpZmllZEZsYWdzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3VzZWROYW1lSXNRdWFsaWZpZWRGbGFncykgeworICAgICAgICBzaWduYXR1cmUuYWRkQm9vbCh4KTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9kZWZpbmVkTmFtZUtpbmRzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfZGVmaW5lZE5hbWVPZmZzZXRzOwpAQCAtMzA4OSw2ICszNTU3LDY2IEBACiAgICAgX3R5cGVQYXJhbWV0ZXJzPy5mb3JFYWNoKChiKSA9PiBiLmZsdXNoSW5mb3JtYXRpdmUoKSk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBpZiAodGhpcy5fZXhlY3V0YWJsZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9leGVjdXRhYmxlcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9leGVjdXRhYmxlcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX3N1cGVydHlwZSAhPSBudWxsKTsKKyAgICB0aGlzLl9zdXBlcnR5cGU/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBpZiAodGhpcy5fZmllbGRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZmllbGRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2ZpZWxkcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2ludGVyZmFjZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9pbnRlcmZhY2VzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2ludGVyZmFjZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc0Fic3RyYWN0ID09IHRydWUpOworICAgIGlmICh0aGlzLl90eXBlUGFyYW1ldGVycyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX21peGlucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX21peGlucy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9taXhpbnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc01peGluQXBwbGljYXRpb24gPT0gdHJ1ZSk7CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5faGFzTm9TdXBlcnR5cGUgPT0gdHJ1ZSk7CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9hbm5vdGF0aW9uczsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2NvZGVSYW5nZTsKQEAgLTMzOTcsNiArMzkyNSwyOCBAQAogICAgIF9vZmZzZXQgPSBudWxsOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIGlmICh0aGlzLl9zaG93cyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3Nob3dzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3Nob3dzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9oaWRlcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2hpZGVzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2hpZGVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcoeCk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfaGlkZXM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9zaG93czsKQEAgLTM1OTMsNiArNDE0Myw2MSBAQAogICAgIF9yZWZlcmVuY2VzPy5mb3JFYWNoKChiKSA9PiBiLmZsdXNoSW5mb3JtYXRpdmUoKSk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgaWYgKHRoaXMuX29wZXJhdGlvbnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9vcGVyYXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX29wZXJhdGlvbnMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4LmluZGV4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2ludHMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9pbnRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2ludHMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4KTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX3JlZmVyZW5jZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9yZWZlcmVuY2VzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3JlZmVyZW5jZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fc3RyaW5ncyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3N0cmluZ3MubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fc3RyaW5ncykgeworICAgICAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHgpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fZG91YmxlcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2RvdWJsZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZG91YmxlcykgeworICAgICAgICBzaWduYXR1cmUuYWRkRG91YmxlKHgpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc1ZhbGlkQ29uc3QgPT0gdHJ1ZSk7CisgICAgaWYgKHRoaXMuX2Fzc2lnbm1lbnRPcGVyYXRvcnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9hc3NpZ25tZW50T3BlcmF0b3JzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fzc2lnbm1lbnRPcGVyYXRvcnMpIHsKKyAgICAgICAgc2lnbmF0dXJlLmFkZEludCh4LmluZGV4KTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9hc3NpZ25tZW50T3BlcmF0b3JzOwogICAgIGZiLk9mZnNldCBvZmZzZXRfZG91YmxlczsKQEAgLTM4MTYsNiArNDQyMSwzMiBAQAogICAgIF9leHByZXNzaW9uPy5mbHVzaEluZm9ybWF0aXZlKCk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9leHByZXNzaW9uICE9IG51bGwpOworICAgIHRoaXMuX2V4cHJlc3Npb24/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2tpbmQgPT0gbnVsbCA/IDAgOiB0aGlzLl9raW5kLmluZGV4KTsKKyAgICBpZiAodGhpcy5fYXJndW1lbnRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fYXJndW1lbnRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2FyZ3VtZW50cykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9hcmd1bWVudE5hbWVzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fYXJndW1lbnROYW1lcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9hcmd1bWVudE5hbWVzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcoeCk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYXJndW1lbnROYW1lczsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2FyZ3VtZW50czsKQEAgLTM5ODAsNiArNDYxMSwxNSBAQAogICB2b2lkIGZsdXNoSW5mb3JtYXRpdmUoKSB7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9sZW5ndGggPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl90ZXh0ID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX29mZnNldCA/PyAwKTsKKyAgfQorCiAgIGZiLk9mZnNldCBmaW5pc2goZmIuQnVpbGRlciBmYkJ1aWxkZXIpIHsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X3RleHQ7CiAgICAgaWYgKF90ZXh0ICE9IG51bGwpIHsKQEAgLTQxNDUsNiArNDc4NSwyOSBAQAogICAgIF92YWx1ZXM/LmZvckVhY2goKGIpID0+IGIuZmx1c2hJbmZvcm1hdGl2ZSgpKTsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX25hbWUgPz8gJycpOworICAgIGlmICh0aGlzLl92YWx1ZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl92YWx1ZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdmFsdWVzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2Fubm90YXRpb25zID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fYW5ub3RhdGlvbnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fYW5ub3RhdGlvbnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgfQorCiAgIGZiLk9mZnNldCBmaW5pc2goZmIuQnVpbGRlciBmYkJ1aWxkZXIpIHsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2Fubm90YXRpb25zOwogICAgIGZiLk9mZnNldCBvZmZzZXRfY29kZVJhbmdlOwpAQCAtNDMyMyw2ICs0OTg2LDEzIEBACiAgICAgX25hbWVPZmZzZXQgPSBudWxsOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbmFtZSA/PyAnJyk7CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9kb2N1bWVudGF0aW9uQ29tbWVudDsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X25hbWU7CkBAIC00ODMyLDYgKzU1MDIsNzEgQEAKICAgICBfdHlwZVBhcmFtZXRlcnM/LmZvckVhY2goKGIpID0+IGIuZmx1c2hJbmZvcm1hdGl2ZSgpKTsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX25hbWUgPz8gJycpOworICAgIGlmICh0aGlzLl9wYXJhbWV0ZXJzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fcGFyYW1ldGVycy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9wYXJhbWV0ZXJzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5fcmV0dXJuVHlwZSAhPSBudWxsKTsKKyAgICB0aGlzLl9yZXR1cm5UeXBlPy5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9raW5kID09IG51bGwgPyAwIDogdGhpcy5fa2luZC5pbmRleCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9pbmZlcnJlZFJldHVyblR5cGVTbG90ID8/IDApOworICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5faXNGYWN0b3J5ID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzU3RhdGljID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzQWJzdHJhY3QgPT0gdHJ1ZSk7CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5faXNFeHRlcm5hbCA9PSB0cnVlKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc0NvbnN0ID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzUmVkaXJlY3RlZENvbnN0cnVjdG9yID09IHRydWUpOworICAgIGlmICh0aGlzLl9jb25zdGFudEluaXRpYWxpemVycyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2NvbnN0YW50SW5pdGlhbGl6ZXJzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2NvbnN0YW50SW5pdGlhbGl6ZXJzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5fcmVkaXJlY3RlZENvbnN0cnVjdG9yICE9IG51bGwpOworICAgIHRoaXMuX3JlZGlyZWN0ZWRDb25zdHJ1Y3Rvcj8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgIGlmICh0aGlzLl90eXBlUGFyYW1ldGVycyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9yZWRpcmVjdGVkQ29uc3RydWN0b3JOYW1lID8/ICcnKTsKKyAgICBpZiAodGhpcy5fbG9jYWxGdW5jdGlvbnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9sb2NhbEZ1bmN0aW9ucy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9sb2NhbEZ1bmN0aW9ucykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdmlzaWJsZUxlbmd0aCA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3Zpc2libGVPZmZzZXQgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9jb25zdEN5Y2xlU2xvdCA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9ib2R5RXhwciAhPSBudWxsKTsKKyAgICB0aGlzLl9ib2R5RXhwcj8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYW5ub3RhdGlvbnM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9ib2R5RXhwcjsKQEAgLTUzNTEsNiArNjA4NiwyMCBAQAogICAgIF91cmlPZmZzZXQgPSBudWxsOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9hbm5vdGF0aW9uczsKICAgICBpZiAoIShfYW5ub3RhdGlvbnMgPT0gbnVsbCB8fCBfYW5ub3RhdGlvbnMuaXNFbXB0eSkpIHsKQEAgLTU0NzQsNiArNjIyMywyMSBAQAogICAgIF9jb21iaW5hdG9ycz8uZm9yRWFjaCgoYikgPT4gYi5mbHVzaEluZm9ybWF0aXZlKCkpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fdXJpID8/ICcnKTsKKyAgICBpZiAodGhpcy5fY29tYmluYXRvcnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9jb21iaW5hdG9ycy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9jb21iaW5hdG9ycykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfY29tYmluYXRvcnM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF91cmk7CkBAIC01NjkwLDYgKzY0NTQsMzIgQEAKICAgICBfdXJpT2Zmc2V0ID0gbnVsbDsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX3VyaSA/PyAnJyk7CisgICAgaWYgKHRoaXMuX2NvbWJpbmF0b3JzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fY29tYmluYXRvcnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fY29tYmluYXRvcnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc0ltcGxpY2l0ID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fcHJlZml4UmVmZXJlbmNlID8/IDApOworICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5faXNEZWZlcnJlZCA9PSB0cnVlKTsKKyAgfQorCiAgIGZiLk9mZnNldCBmaW5pc2goZmIuQnVpbGRlciBmYkJ1aWxkZXIpIHsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2Fubm90YXRpb25zOwogICAgIGZiLk9mZnNldCBvZmZzZXRfY29tYmluYXRvcnM7CkBAIC01OTE5LDYgKzY3MDksMTUgQEAKICAgICBfbmFtZU9mZnNldCA9IG51bGw7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc09uU3dpdGNoTWVtYmVyID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzT25Td2l0Y2hTdGF0ZW1lbnQgPT0gdHJ1ZSk7CisgIH0KKwogICBmYi5PZmZzZXQgZmluaXNoKGZiLkJ1aWxkZXIgZmJCdWlsZGVyKSB7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9uYW1lOwogICAgIGlmIChfbmFtZSAhPSBudWxsKSB7CkBAIC02MjA5LDYgKzcwMDgsMzkgQEAKICAgICBfdHlwZT8uZmx1c2hJbmZvcm1hdGl2ZSgpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbmFtZSA/PyAnJyk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9pbmZlcnJlZFR5cGVTbG90ID8/IDApOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX3R5cGUgIT0gbnVsbCk7CisgICAgdGhpcy5fdHlwZT8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fa2luZCA9PSBudWxsID8gMCA6IHRoaXMuX2tpbmQuaW5kZXgpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzRnVuY3Rpb25UeXBlZCA9PSB0cnVlKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc0luaXRpYWxpemluZ0Zvcm1hbCA9PSB0cnVlKTsKKyAgICBpZiAodGhpcy5fcGFyYW1ldGVycyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3BhcmFtZXRlcnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fcGFyYW1ldGVycykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl92aXNpYmxlTGVuZ3RoID8/IDApOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdmlzaWJsZU9mZnNldCA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pbml0aWFsaXplciAhPSBudWxsKTsKKyAgICB0aGlzLl9pbml0aWFsaXplcj8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYW5ub3RhdGlvbnM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9jb2RlUmFuZ2U7CkBAIC02NDk0LDYgKzczMjYsMjAgQEAKICAgICBfdXJpT2Zmc2V0ID0gbnVsbDsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBpZiAodGhpcy5fYW5ub3RhdGlvbnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9hbm5vdGF0aW9ucy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9hbm5vdGF0aW9ucykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYW5ub3RhdGlvbnM7CiAgICAgaWYgKCEoX2Fubm90YXRpb25zID09IG51bGwgfHwgX2Fubm90YXRpb25zLmlzRW1wdHkpKSB7CkBAIC02NjM2LDYgKzc0ODIsMjMgQEAKICAgICBfbWVtYmVycz8uZm9yRWFjaCgoYikgPT4gYi5mbHVzaEluZm9ybWF0aXZlKCkpOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbmFtZSA/PyAnJyk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9raW5kID09IG51bGwgPyAwIDogdGhpcy5fa2luZC5pbmRleCk7CisgICAgaWYgKHRoaXMuX21lbWJlcnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9tZW1iZXJzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX21lbWJlcnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX251bVR5cGVQYXJhbWV0ZXJzID8/IDApOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfbWVtYmVyczsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X25hbWU7CkBAIC02Nzc5LDYgKzc2NDIsMzYgQEAKICAgICBfbmFtZXM/LmZvckVhY2goKGIpID0+IGIuZmx1c2hJbmZvcm1hdGl2ZSgpKTsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBpZiAodGhpcy5fbmFtZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9uYW1lcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9uYW1lcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9wYXJ0cyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3BhcnRzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3BhcnRzKSB7CisgICAgICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcoeCk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9leHBvcnRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZXhwb3J0cy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9leHBvcnRzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICBMaXN0PGludD4gdG9CdWZmZXIoKSB7CiAgICAgZmIuQnVpbGRlciBmYkJ1aWxkZXIgPSBuZXcgZmIuQnVpbGRlcigpOwogICAgIHJldHVybiBmYkJ1aWxkZXIuZmluaXNoKGZpbmlzaChmYkJ1aWxkZXIpLCAiVVBOUyIpOwpAQCAtNjkxNSw2ICs3ODA4LDE0IEBACiAgIHZvaWQgZmx1c2hJbmZvcm1hdGl2ZSgpIHsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX25hbWUgPz8gJycpOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fcHJlZml4UmVmZXJlbmNlID8/IDApOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfbmFtZTsKICAgICBpZiAoX25hbWUgIT0gbnVsbCkgewpAQCAtNzA5NCw2ICs3OTk1LDM5IEBACiAgICAgX3R5cGVQYXJhbWV0ZXJzPy5mb3JFYWNoKChiKSA9PiBiLmZsdXNoSW5mb3JtYXRpdmUoKSk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9yZXR1cm5UeXBlICE9IG51bGwpOworICAgIHRoaXMuX3JldHVyblR5cGU/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBpZiAodGhpcy5fcGFyYW1ldGVycyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3BhcmFtZXRlcnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fcGFyYW1ldGVycykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9hbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2Fubm90YXRpb25zLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX2Fubm90YXRpb25zKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdHlwZVBhcmFtZXRlcnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdHlwZVBhcmFtZXRlcnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgfQorCiAgIGZiLk9mZnNldCBmaW5pc2goZmIuQnVpbGRlciBmYkJ1aWxkZXIpIHsKICAgICBmYi5PZmZzZXQgb2Zmc2V0X2Fubm90YXRpb25zOwogICAgIGZiLk9mZnNldCBvZmZzZXRfY29kZVJhbmdlOwpAQCAtNzMzMCw2ICs4MjY0LDIzIEBACiAgICAgX25hbWVPZmZzZXQgPSBudWxsOwogICB9CiAKKyAgLyoqCisgICAqIEFjY3VtdWxhdGUgbm9uLVtpbmZvcm1hdGl2ZV0gZGF0YSBpbnRvIFtzaWduYXR1cmVdLgorICAgKi8KKyAgdm9pZCBjb2xsZWN0QXBpU2lnbmF0dXJlKGFwaV9zaWcuQXBpU2lnbmF0dXJlIHNpZ25hdHVyZSkgeworICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbmFtZSA/PyAnJyk7CisgICAgc2lnbmF0dXJlLmFkZEJvb2wodGhpcy5fYm91bmQgIT0gbnVsbCk7CisgICAgdGhpcy5fYm91bmQ/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBpZiAodGhpcy5fYW5ub3RhdGlvbnMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9hbm5vdGF0aW9ucy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9hbm5vdGF0aW9ucykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYW5ub3RhdGlvbnM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9ib3VuZDsKQEAgLTc2ODYsNiArODYzNyw5NiBAQAogICAgIF92YXJpYWJsZXM/LmZvckVhY2goKGIpID0+IGIuZmx1c2hJbmZvcm1hdGl2ZSgpKTsKICAgfQogCisgIC8qKgorICAgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4KKyAgICovCisgIHZvaWQgY29sbGVjdEFwaVNpZ25hdHVyZShhcGlfc2lnLkFwaVNpZ25hdHVyZSBzaWduYXR1cmUpIHsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9wdWJsaWNOYW1lc3BhY2UgIT0gbnVsbCk7CisgICAgdGhpcy5fcHVibGljTmFtZXNwYWNlPy5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgaWYgKHRoaXMuX3JlZmVyZW5jZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9yZWZlcmVuY2VzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3JlZmVyZW5jZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fY2xhc3NlcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2NsYXNzZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fY2xhc3NlcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl92YXJpYWJsZXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl92YXJpYWJsZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fdmFyaWFibGVzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2V4ZWN1dGFibGVzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZXhlY3V0YWJsZXMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fZXhlY3V0YWJsZXMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5faW1wb3J0cyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2ltcG9ydHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5faW1wb3J0cykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIHNpZ25hdHVyZS5hZGRTdHJpbmcodGhpcy5fbGlicmFyeU5hbWUgPz8gJycpOworICAgIGlmICh0aGlzLl90eXBlZGVmcyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3R5cGVkZWZzLmxlbmd0aCk7CisgICAgICBmb3IgKHZhciB4IGluIHRoaXMuX3R5cGVkZWZzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX3BhcnRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fcGFydHMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fcGFydHMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBpZiAodGhpcy5fZW51bXMgPT0gbnVsbCkgeworICAgICAgc2lnbmF0dXJlLmFkZEludCgwKTsKKyAgICB9IGVsc2UgeworICAgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl9lbnVtcy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9lbnVtcykgeworICAgICAgICB4Py5jb2xsZWN0QXBpU2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICB9CisgICAgfQorICAgIGlmICh0aGlzLl9leHBvcnRzID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fZXhwb3J0cy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9leHBvcnRzKSB7CisgICAgICAgIHg/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXMuX2xpYnJhcnlBbm5vdGF0aW9ucyA9PSBudWxsKSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KDApOworICAgIH0gZWxzZSB7CisgICAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2xpYnJhcnlBbm5vdGF0aW9ucy5sZW5ndGgpOworICAgICAgZm9yICh2YXIgeCBpbiB0aGlzLl9saWJyYXJ5QW5ub3RhdGlvbnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkU3RyaW5nKHRoaXMuX2ZhbGxiYWNrTW9kZVBhdGggPz8gJycpOworICB9CisKICAgTGlzdDxpbnQ+IHRvQnVmZmVyKCkgewogICAgIGZiLkJ1aWxkZXIgZmJCdWlsZGVyID0gbmV3IGZiLkJ1aWxkZXIoKTsKICAgICByZXR1cm4gZmJCdWlsZGVyLmZpbmlzaChmaW5pc2goZmJCdWlsZGVyKSwgIlVVbnQiKTsKQEAgLTgxOTksNiArOTI0MCwzMiBAQAogICAgIF90eXBlPy5mbHVzaEluZm9ybWF0aXZlKCk7CiAgIH0KIAorICAvKioKKyAgICogQWNjdW11bGF0ZSBub24tW2luZm9ybWF0aXZlXSBkYXRhIGludG8gW3NpZ25hdHVyZV0uCisgICAqLworICB2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7CisgICAgc2lnbmF0dXJlLmFkZFN0cmluZyh0aGlzLl9uYW1lID8/ICcnKTsKKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX3Byb3BhZ2F0ZWRUeXBlU2xvdCA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl90eXBlICE9IG51bGwpOworICAgIHRoaXMuX3R5cGU/LmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc1N0YXRpYyA9PSB0cnVlKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pc0NvbnN0ID09IHRydWUpOworICAgIHNpZ25hdHVyZS5hZGRCb29sKHRoaXMuX2lzRmluYWwgPT0gdHJ1ZSk7CisgICAgaWYgKHRoaXMuX2Fubm90YXRpb25zID09IG51bGwpIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fYW5ub3RhdGlvbnMubGVuZ3RoKTsKKyAgICAgIGZvciAodmFyIHggaW4gdGhpcy5fYW5ub3RhdGlvbnMpIHsKKyAgICAgICAgeD8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgfQorICAgIH0KKyAgICBzaWduYXR1cmUuYWRkSW50KHRoaXMuX2luZmVycmVkVHlwZVNsb3QgPz8gMCk7CisgICAgc2lnbmF0dXJlLmFkZEludCh0aGlzLl92aXNpYmxlTGVuZ3RoID8/IDApOworICAgIHNpZ25hdHVyZS5hZGRJbnQodGhpcy5fdmlzaWJsZU9mZnNldCA/PyAwKTsKKyAgICBzaWduYXR1cmUuYWRkQm9vbCh0aGlzLl9pbml0aWFsaXplciAhPSBudWxsKTsKKyAgICB0aGlzLl9pbml0aWFsaXplcj8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOworICB9CisKICAgZmIuT2Zmc2V0IGZpbmlzaChmYi5CdWlsZGVyIGZiQnVpbGRlcikgewogICAgIGZiLk9mZnNldCBvZmZzZXRfYW5ub3RhdGlvbnM7CiAgICAgZmIuT2Zmc2V0IG9mZnNldF9jb2RlUmFuZ2U7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L2Zvcm1hdC5mYnMgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L2Zvcm1hdC5mYnMKaW5kZXggMzI5ZmU2Yi4uMTQ0OTc0MyAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9mb3JtYXQuZmJzCisrKyBiL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvZm9ybWF0LmZicwpAQCAtMTE4MSw2ICsxMTgxLDEzIEBACiAgKi8KIHRhYmxlIFBhY2thZ2VCdW5kbGUgewogICAvKioKKyAgICogTUQ1IGhhc2ggb2YgdGhlIG5vbi1pbmZvcm1hdGl2ZSBmaWVsZHMgb2YgdGhlIFtQYWNrYWdlQnVuZGxlXSAobm90CisgICAqIGluY2x1ZGluZyB0aGlzIG9uZSkuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHdoZW4gdGhlIEFQSSBvZiBhCisgICAqIHBhY2thZ2UgbWF5IGhhdmUgY2hhbmdlZC4KKyAgICovCisgIGFwaVNpZ25hdHVyZTpzdHJpbmcgKGlkOiA3KTsKKworICAvKioKICAgICogTGlua2VkIGxpYnJhcmllcy4KICAgICovCiAgIGxpbmtlZExpYnJhcmllczpbTGlua2VkTGlicmFyeV0gKGlkOiAwKTsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvaWRsLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L2lkbC5kYXJ0CmluZGV4IDYwYTA1NTIuLjE1ZjgxYTcgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvaWRsLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9pZGwuZGFydApAQCAtNjUwLDYgKzY1MCwxNCBAQAogICAgICAgZ2VuZXJhdGVkLnJlYWRQYWNrYWdlQnVuZGxlKGJ1ZmZlcik7CiAKICAgLyoqCisgICAqIE1ENSBoYXNoIG9mIHRoZSBub24taW5mb3JtYXRpdmUgZmllbGRzIG9mIHRoZSBbUGFja2FnZUJ1bmRsZV0gKG5vdAorICAgKiBpbmNsdWRpbmcgdGhpcyBvbmUpLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB3aGVuIHRoZSBBUEkgb2YgYQorICAgKiBwYWNrYWdlIG1heSBoYXZlIGNoYW5nZWQuCisgICAqLworICBASWQoNykKKyAgU3RyaW5nIGdldCBhcGlTaWduYXR1cmU7CisKKyAgLyoqCiAgICAqIExpbmtlZCBsaWJyYXJpZXMuCiAgICAqLwogICBASWQoMCkKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvc3VtbWFyaXplX2VsZW1lbnRzLmRhcnQgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy9zdW1tYXJ5L3N1bW1hcml6ZV9lbGVtZW50cy5kYXJ0CmluZGV4IDk4ZTNkZTQuLmUyNWRhMjcgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL3N1bW1hcnkvc3VtbWFyaXplX2VsZW1lbnRzLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvc3VtbWFyeS9zdW1tYXJpemVfZWxlbWVudHMuZGFydApAQCAtMTUsNiArMTUsNyBAQAogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9nZW5lcmF0ZWQvcmVzb2x2ZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC9zb3VyY2UuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2dlbmVyYXRlZC91dGlsaXRpZXNfZGFydC5kYXJ0JzsKK2ltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvc3VtbWFyeS9hcGlfc2lnbmF0dXJlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9zdW1tYXJ5L2Zvcm1hdC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvc3VtbWFyeS9pZGwuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL3N1bW1hcnkvbmFtZV9maWx0ZXIuZGFydCc7CkBAIC0xOTIsNyArMTkzLDcgQEAKICAgICogQXNzZW1ibGUgYSBuZXcgW1BhY2thZ2VCdW5kbGVCdWlsZGVyXSB1c2luZyB0aGUgZ2F0aGVyZWQgaW5mb3JtYXRpb24uCiAgICAqLwogICBQYWNrYWdlQnVuZGxlQnVpbGRlciBhc3NlbWJsZSgpIHsKLSAgICByZXR1cm4gbmV3IFBhY2thZ2VCdW5kbGVCdWlsZGVyKAorICAgIFBhY2thZ2VCdW5kbGVCdWlsZGVyIHBhY2thZ2VCdW5kbGUgPSBuZXcgUGFja2FnZUJ1bmRsZUJ1aWxkZXIoCiAgICAgICAgIGxpbmtlZExpYnJhcnlVcmlzOiBfbGlua2VkTGlicmFyeVVyaXMsCiAgICAgICAgIGxpbmtlZExpYnJhcmllczogX2xpbmtlZExpYnJhcmllcywKICAgICAgICAgdW5saW5rZWRVbml0VXJpczogX3VubGlua2VkVW5pdFVyaXMsCkBAIC0yMDAsNiArMjAxLDEwIEBACiAgICAgICAgIHVubGlua2VkVW5pdEhhc2hlczogX3VubGlua2VkVW5pdEhhc2hlcywKICAgICAgICAgbWFqb3JWZXJzaW9uOiBjdXJyZW50TWFqb3JWZXJzaW9uLAogICAgICAgICBtaW5vclZlcnNpb246IGN1cnJlbnRNaW5vclZlcnNpb24pOworICAgIEFwaVNpZ25hdHVyZSBhcGlTaWduYXR1cmUgPSBuZXcgQXBpU2lnbmF0dXJlKCk7CisgICAgcGFja2FnZUJ1bmRsZS5jb2xsZWN0QXBpU2lnbmF0dXJlKGFwaVNpZ25hdHVyZSk7CisgICAgcGFja2FnZUJ1bmRsZS5hcGlTaWduYXR1cmUgPSBhcGlTaWduYXR1cmUudG9IZXgoKTsKKyAgICByZXR1cm4gcGFja2FnZUJ1bmRsZTsKICAgfQogCiAgIC8qKgpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL2xpYi9zcmMvdGFzay9zdHJvbmcvY2hlY2tlci5kYXJ0IGIvcGtnL2FuYWx5emVyL2xpYi9zcmMvdGFzay9zdHJvbmcvY2hlY2tlci5kYXJ0CmluZGV4IGMwNzRiNzkuLmIyMGQ3MDIgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci9saWIvc3JjL3Rhc2svc3Ryb25nL2NoZWNrZXIuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvbGliL3NyYy90YXNrL3N0cm9uZy9jaGVja2VyLmRhcnQKQEAgLTIxLDggKzIxLDExIEBACiAKIGltcG9ydCAnYXN0X3Byb3BlcnRpZXMuZGFydCc7CiAKLWJvb2wgaXNLbm93bkZ1bmN0aW9uKEV4cHJlc3Npb24gZXhwcmVzc2lvbikgeworYm9vbCBpc0tub3duRnVuY3Rpb24oRXhwcmVzc2lvbiBleHByZXNzaW9uLCB7Ym9vbCBpbnN0YW5jZU1ldGhvZHM6IGZhbHNlfSkgewogICBFbGVtZW50IGVsZW1lbnQgPSBudWxsOworICBpZiAoZXhwcmVzc2lvbiBpcyBQYXJlbnRoZXNpemVkRXhwcmVzc2lvbikgeworICAgIGV4cHJlc3Npb24gPSAoZXhwcmVzc2lvbiBhcyBQYXJlbnRoZXNpemVkRXhwcmVzc2lvbikuZXhwcmVzc2lvbjsKKyAgfQogICBpZiAoZXhwcmVzc2lvbiBpcyBGdW5jdGlvbkV4cHJlc3Npb24pIHsKICAgICByZXR1cm4gdHJ1ZTsKICAgfSBlbHNlIGlmIChleHByZXNzaW9uIGlzIFByb3BlcnR5QWNjZXNzKSB7CkBAIC0zMCwxMCArMzMsMTAgQEAKICAgfSBlbHNlIGlmIChleHByZXNzaW9uIGlzIElkZW50aWZpZXIpIHsKICAgICBlbGVtZW50ID0gZXhwcmVzc2lvbi5zdGF0aWNFbGVtZW50OwogICB9Ci0vLyBGaXJzdCBjbGFzcyBmdW5jdGlvbnMgYW5kIHN0YXRpYyBtZXRob2RzLCB3aGVyZSB3ZSBrbm93IHRoZSBvcmlnaW5hbAotLy8gZGVjbGFyYXRpb24sIHdpbGwgaGF2ZSBhbiBleGFjdCB0eXBlLCBzbyB3ZSBrbm93IGEgZG93bmNhc3Qgd2lsbCBmYWlsLgorICAvLyBGaXJzdCBjbGFzcyBmdW5jdGlvbnMgYW5kIHN0YXRpYyBtZXRob2RzLCB3aGVyZSB3ZSBrbm93IHRoZSBvcmlnaW5hbAorICAvLyBkZWNsYXJhdGlvbiwgd2lsbCBoYXZlIGFuIGV4YWN0IHR5cGUsIHNvIHdlIGtub3cgYSBkb3duY2FzdCB3aWxsIGZhaWwuCiAgIHJldHVybiBlbGVtZW50IGlzIEZ1bmN0aW9uRWxlbWVudCB8fAotICAgICAgZWxlbWVudCBpcyBNZXRob2RFbGVtZW50ICYmIGVsZW1lbnQuaXNTdGF0aWM7CisgICAgICBlbGVtZW50IGlzIE1ldGhvZEVsZW1lbnQgJiYgKGluc3RhbmNlTWV0aG9kcyB8fCBlbGVtZW50LmlzU3RhdGljKTsKIH0KIAogRGFydFR5cGUgX2VsZW1lbnRUeXBlKEVsZW1lbnQgZSkgewpAQCAtMTYyLDggKzE2NSw5IEBACiAgICAgaWYgKGV4cHIgaXMgUGFyZW50aGVzaXplZEV4cHJlc3Npb24pIHsKICAgICAgIGNoZWNrQXNzaWdubWVudChleHByLmV4cHJlc3Npb24sIHR5cGUpOwogICAgIH0gZWxzZSB7Ci0gICAgICBfY2hlY2tEb3duY2FzdChleHByLCB0eXBlKTsKLSAgICAgIF9jaGVja05vbk51bGxBc3NpZ25tZW50KGV4cHIsIHR5cGUpOworICAgICAgaWYgKF9jaGVja05vbk51bGxBc3NpZ25tZW50KGV4cHIsIHR5cGUpKSB7CisgICAgICAgIF9jaGVja0Rvd25jYXN0KGV4cHIsIHR5cGUpOworICAgICAgfQogICAgIH0KICAgfQogCkBAIC02MjUsNiArNjI5LDIwIEBACiAgIH0KIAogICBAb3ZlcnJpZGUKKyAgT2JqZWN0IHZpc2l0VmFyaWFibGVEZWNsYXJhdGlvbihWYXJpYWJsZURlY2xhcmF0aW9uIG5vZGUpIHsKKyAgICBpZiAoIW5vZGUuaXNDb25zdCAmJgorICAgICAgICAhbm9kZS5pc0ZpbmFsICYmCisgICAgICAgIG5vZGUuaW5pdGlhbGl6ZXIgPT0gbnVsbCAmJgorICAgICAgICBydWxlcy5pc05vbk51bGxhYmxlVHlwZShub2RlPy5lbGVtZW50Py50eXBlKSkgeworICAgICAgX3JlY29yZE1lc3NhZ2UoCisgICAgICAgICAgbm9kZSwKKyAgICAgICAgICBTdGF0aWNUeXBlV2FybmluZ0NvZGUuTk9OX05VTExBQkxFX0ZJRUxEX05PVF9JTklUSUFMSVpFRCwKKyAgICAgICAgICBbbm9kZS5uYW1lLCBub2RlPy5lbGVtZW50Py50eXBlXSk7CisgICAgfQorICAgIHJldHVybiBzdXBlci52aXNpdFZhcmlhYmxlRGVjbGFyYXRpb24obm9kZSk7CisgIH0KKworICBAb3ZlcnJpZGUKICAgdm9pZCB2aXNpdFdoaWxlU3RhdGVtZW50KFdoaWxlU3RhdGVtZW50IG5vZGUpIHsKICAgICBjaGVja0Jvb2xlYW4obm9kZS5jb25kaXRpb24pOwogICAgIG5vZGUudmlzaXRDaGlsZHJlbih0aGlzKTsKQEAgLTgzOSwxMiArODU3LDE3IEBACiAgICAgICAgIFtkZWNsRWxlbWVudC5uYW1lXSk7CiAgIH0KIAotICB2b2lkIF9jaGVja05vbk51bGxBc3NpZ25tZW50KEV4cHJlc3Npb24gZXhwcmVzc2lvbiwgRGFydFR5cGUgdHlwZSkgeworICAvLy8gQ2hlY2tzIGlmIHRoZSBhc3NpZ25tZW50IGlzIHZhbGlkIHdpdGggcmVzcGVjdCB0byBub24tbnVsbGFibGUgdHlwZXMuCisgIC8vLyBSZXR1cm5zIGBmYWxzZWAgaWYgYSBudWxsYWJsZSBleHByZXNzaW9uIGlzIGFzc2lnbmVkIHRvIGEgdmFyaWFibGUgb2YKKyAgLy8vIG5vbi1udWxsYWJsZSB0eXBlIGFuZCBgdHJ1ZWAgb3RoZXJ3aXNlLgorICBib29sIF9jaGVja05vbk51bGxBc3NpZ25tZW50KEV4cHJlc3Npb24gZXhwcmVzc2lvbiwgRGFydFR5cGUgdHlwZSkgewogICAgIHZhciBleHByVHlwZSA9IGV4cHJlc3Npb24uc3RhdGljVHlwZTsKLSAgICBpZiAocnVsZXMuaXNOb25OdWxsYWJsZVR5cGUodHlwZSkgJiYgIXJ1bGVzLmlzTm9uTnVsbGFibGVUeXBlKGV4cHJUeXBlKSkgeworICAgIGlmIChydWxlcy5pc05vbk51bGxhYmxlVHlwZSh0eXBlKSAmJiBydWxlcy5pc051bGxhYmxlVHlwZShleHByVHlwZSkpIHsKICAgICAgIF9yZWNvcmRNZXNzYWdlKGV4cHJlc3Npb24sIFN0YXRpY1R5cGVXYXJuaW5nQ29kZS5JTlZBTElEX0FTU0lHTk1FTlQsCiAgICAgICAgICAgW2V4cHJUeXBlLCB0eXBlXSk7CisgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIHJldHVybiB0cnVlOwogICB9CiAKICAgdm9pZCBfY2hlY2tSZXR1cm5PcllpZWxkKEV4cHJlc3Npb24gZXhwcmVzc2lvbiwgQXN0Tm9kZSBub2RlLApAQCAtOTM2LDEwICs5NTksNiBAQAogICAgIH0KICAgfQogCi0gIC8vIFByb2R1Y2UgYSBjb2VyY2lvbiB3aGljaCBjb2VyY2VzIHNvbWV0aGluZyBvZiB0eXBlIGZyb21UCi0gIC8vIHRvIHNvbWV0aGluZyBvZiB0eXBlIHRvVC4KLSAgLy8gUmV0dXJucyB0aGUgZXJyb3IgY29lcmNpb24gaWYgdGhlIHR5cGVzIGNhbm5vdCBiZSBjb2VyY2VkCi0gIC8vIGFjY29yZGluZyB0byBvdXIgY3VycmVudCBjcml0ZXJpYS4KICAgRGFydFR5cGUgX2dldFN0YXRpY1R5cGUoRXhwcmVzc2lvbiBleHByKSB7CiAgICAgRGFydFR5cGUgdCA9IGV4cHIuc3RhdGljVHlwZSA/PyBEeW5hbWljVHlwZUltcGwuaW5zdGFuY2U7CiAKQEAgLTk4NSwxNCArMTAwNCw5IEBACiAgICAgLy8gYSBkeW5hbWljIHBhcmFtZXRlciB0eXBlIHJlcXVpcmVzIGEgZHluYW1pYyBjYWxsIGluIGdlbmVyYWwuCiAgICAgLy8gSG93ZXZlciwgYXMgYW4gb3B0aW1pemF0aW9uLCBpZiB3ZSBoYXZlIGFuIG9yaWdpbmFsIGRlZmluaXRpb24sIHdlIGtub3cKICAgICAvLyBkeW5hbWljIGlzIHJlaWZpZWQgYXMgT2JqZWN0IC0gaW4gdGhpcyBjYXNlIGEgcmVndWxhciBjYWxsIGlzIGZpbmUuCi0gICAgaWYgKGNhbGwgaXMgU2ltcGxlSWRlbnRpZmllcikgewotICAgICAgdmFyIGVsZW1lbnQgPSBjYWxsLnN0YXRpY0VsZW1lbnQ7Ci0gICAgICBpZiAoZWxlbWVudCBpcyBGdW5jdGlvbkVsZW1lbnQgfHwgZWxlbWVudCBpcyBNZXRob2RFbGVtZW50KSB7Ci0gICAgICAgIC8vIEFuIG9yaWdpbmFsIGRlY2xhcmF0aW9uLgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICB9CisgICAgaWYgKGlzS25vd25GdW5jdGlvbihjYWxsLCBpbnN0YW5jZU1ldGhvZHM6IHRydWUpKSB7CisgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotCiAgICAgcmV0dXJuIHJ1bGVzLmFueVBhcmFtZXRlclR5cGUoZnQsIChwdCkgPT4gcHQuaXNEeW5hbWljKTsKICAgfQogCmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvcHVic3BlYy55YW1sIGIvcGtnL2FuYWx5emVyL3B1YnNwZWMueWFtbAppbmRleCA0Nzc5YWI5Li4xOTg4YWUxIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvcHVic3BlYy55YW1sCisrKyBiL3BrZy9hbmFseXplci9wdWJzcGVjLnlhbWwKQEAgLTEsNSArMSw1IEBACiBuYW1lOiBhbmFseXplcgotdmVyc2lvbjogMC4yNy40Cit2ZXJzaW9uOiAwLjI3LjUtYWxwaGEuMAogYXV0aG9yOiBEYXJ0IFRlYW0gPG1pc2NAZGFydGxhbmcub3JnPgogZGVzY3JpcHRpb246IFN0YXRpYyBhbmFseXplciBmb3IgRGFydC4KIGhvbWVwYWdlOiBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay90cmVlL21hc3Rlci9wa2cvYW5hbHl6ZXIKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90ZXN0L2dlbmVyYXRlZC9lbmdpbmVfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL2VuZ2luZV90ZXN0LmRhcnQKaW5kZXggMWQwODcxZC4uOTJjNzAwNyAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL2VuZ2luZV90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL2VuZ2luZV90ZXN0LmRhcnQKQEAgLTksOCArOSw4IEBACiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZGFydC9hc3QvYXN0LmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL2RhcnQvZWxlbWVudC9lbGVtZW50LmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9yZXNvbHZlcl9wcm92aWRlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NhbmNlbGFibGVfZnV0dXJlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydCcgc2hvdyBFbWJlZGRlcllhbWxMb2NhdG9yOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2NhY2hlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2NvbnRleHQuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvc291cmNlLmRhcnQnOwpAQCAtMjI1LDYgKzIyNSwxMiBAQAogICB9CiAKICAgQG92ZXJyaWRlCisgIENhY2hlQ29uc2lzdGVuY3lWYWxpZGF0b3IgZ2V0IGNhY2hlQ29uc2lzdGVuY3lWYWxpZGF0b3IgeworICAgIGZhaWwoIlVuZXhwZWN0ZWQgaW52b2NhdGlvbiBvZiBjYWNoZUNvbnNpc3RlbmN5VmFsaWRhdG9yIik7CisgICAgcmV0dXJuIG51bGw7CisgIH0KKworICBAb3ZlcnJpZGUKICAgc2V0IGNvbnRlbnRDYWNoZShDb250ZW50Q2FjaGUgdmFsdWUpIHsKICAgICBmYWlsKCJVbmV4cGVjdGVkIGludm9jYXRpb24gb2Ygc2V0Q29udGVudENhY2hlIik7CiAgIH0KQEAgLTcwNSwxMCArNzExLDQgQEAKICAgdm9pZCB2aXNpdENvbnRlbnRDYWNoZShDb250ZW50Q2FjaGVWaXNpdG9yIHZpc2l0b3IpIHsKICAgICBmYWlsKCJVbmV4cGVjdGVkIGludm9jYXRpb24gb2YgdmlzaXRDb250ZW50Q2FjaGUiKTsKICAgfQotCi0gIEBvdmVycmlkZQotICBDYWNoZUNvbnNpc3RlbmN5VmFsaWRhdG9yIGdldCBjYWNoZUNvbnNpc3RlbmN5VmFsaWRhdG9yIHsKLSAgICBmYWlsKCJVbmV4cGVjdGVkIGludm9jYXRpb24gb2YgY2FjaGVDb25zaXN0ZW5jeVZhbGlkYXRvciIpOwotICAgIHJldHVybiBudWxsOwotICB9CiB9CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9nZW5lcmF0ZWQvaW5jcmVtZW50YWxfcmVzb2x2ZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL2luY3JlbWVudGFsX3Jlc29sdmVyX3Rlc3QuZGFydAppbmRleCBmYTBhZDQ5Li4zYTA2ZGY0IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9nZW5lcmF0ZWQvaW5jcmVtZW50YWxfcmVzb2x2ZXJfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L2dlbmVyYXRlZC9pbmNyZW1lbnRhbF9yZXNvbHZlcl90ZXN0LmRhcnQKQEAgLTEzNDgsNiArMTM0OCwyNCBAQAogJycnKTsKICAgfQogCisgIHZvaWQgdGVzdF90cnVlX2VtcHR5TGluZV9iZXR3ZWVuQ2xhc3NNZW1iZXJzX2luc2VydF9iZWZvcmVDb21tZW50KCkgeworICAgIF9yZXNvbHZlVW5pdChyJycnCitjbGFzcyBBIHsKKyAgYSgpIHt9CisgIC8vLyBCQkIKKyAgYigpIHt9Cit9CisnJycpOworICAgIF91cGRhdGVBbmRWYWxpZGF0ZShyJycnCitjbGFzcyBBIHsKKyAgYSgpIHt9CisKKyAgLy8vIEJCQgorICBiKCkge30KK30KKycnJyk7CisgIH0KKwogICB2b2lkIHRlc3RfdHJ1ZV9lbXB0eUxpbmVfYmV0d2VlbkNsYXNzTWVtYmVyc19yZW1vdmUoKSB7CiAgICAgX3Jlc29sdmVVbml0KHInJycKIGNsYXNzIEEgewpAQCAtMTM2NCw3ICsxMzgyLDI1IEBACiAnJycpOwogICB9CiAKLSAgdm9pZCB0ZXN0X3RydWVfZW1wdHlMaW5lX2JldHdlZW5Db21waWxhdGlvblVuaXRNZW1iZXJzX2luc2VydCgpIHsKKyAgdm9pZCB0ZXN0X3RydWVfZW1wdHlMaW5lX2JldHdlZW5DbGFzc01lbWJlcnNfcmVtb3ZlX2JlZm9yZUNvbW1lbnQoKSB7CisgICAgX3Jlc29sdmVVbml0KHInJycKK2NsYXNzIEEgeworICBhKCkge30KKworICAvLy8gQkJCCisgIGIoKSB7fQorfQorJycnKTsKKyAgICBfdXBkYXRlQW5kVmFsaWRhdGUocicnJworY2xhc3MgQSB7CisgIGEoKSB7fQorICAvLy8gQkJCCisgIGIoKSB7fQorfQorJycnKTsKKyAgfQorCisgIHZvaWQgdGVzdF90cnVlX2VtcHR5TGluZV9iZXR3ZWVuVW5pdE1lbWJlcnNfaW5zZXJ0KCkgewogICAgIF9yZXNvbHZlVW5pdChyJycnCiBhKCkge30KIGIoKSB7fQpAQCAtMTM3Niw3ICsxNDEyLDIzIEBACiAnJycpOwogICB9CiAKLSAgdm9pZCB0ZXN0X3RydWVfZW1wdHlMaW5lX2JldHdlZW5Db21waWxhdGlvblVuaXRNZW1iZXJzX3JlbW92ZSgpIHsKKyAgdm9pZCB0ZXN0X3RydWVfZW1wdHlMaW5lX2JldHdlZW5Vbml0TWVtYmVyc19pbnNlcnRfYmVmb3JlQ29tbWVudCgpIHsKKyAgICBfcmVzb2x2ZVVuaXQocicnJworYSgpIHt9CisKKy8vIEJCQgorYigpIHt9CisnJycpOworICAgIF91cGRhdGVBbmRWYWxpZGF0ZShyJycnCithKCkge30KKworCisvLyBCQkIKK2IoKSB7fQorJycnKTsKKyAgfQorCisgIHZvaWQgdGVzdF90cnVlX2VtcHR5TGluZV9iZXR3ZWVuVW5pdE1lbWJlcnNfcmVtb3ZlKCkgewogICAgIF9yZXNvbHZlVW5pdChyJycnCiBhKCkgewogICBwcmludCgxKQpAQCAtMTM5OCw2ICsxNDUwLDIwIEBACiAnJycpOwogICB9CiAKKyAgdm9pZCB0ZXN0X3RydWVfZW1wdHlMaW5lX2JldHdlZW5Vbml0TWVtYmVyc19yZW1vdmVfYmVmb3JlQ29tbWVudCgpIHsKKyAgICBfcmVzb2x2ZVVuaXQocicnJworYSgpIHt9CisKKy8vIEJCQgorYigpIHt9CisnJycpOworICAgIF91cGRhdGVBbmRWYWxpZGF0ZShyJycnCithKCkge30KKy8vIEJCQgorYigpIHt9CisnJycpOworICB9CisKICAgdm9pZCB0ZXN0X3RydWVfdG9kb0hpbnQoKSB7CiAgICAgX3Jlc29sdmVVbml0KHInJycKIG1haW4oKSB7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9nZW5lcmF0ZWQvc3Ryb25nX21vZGVfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL3N0cm9uZ19tb2RlX3Rlc3QuZGFydAppbmRleCA3NWY0ZWE5Li42YzU4NzlmIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9nZW5lcmF0ZWQvc3Ryb25nX21vZGVfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L2dlbmVyYXRlZC9zdHJvbmdfbW9kZV90ZXN0LmRhcnQKQEAgLTE3NDUsNyArMTc0NSw3IEBACiB9CiAnJycpOwogICAgIGV4cGVjdElkZW50aWZpZXJUeXBlKCdmJywgJzxTPihTKSDihpIgUycpOwotICAgIGV4cGVjdElkZW50aWZpZXJUeXBlKCdnJywgJzxTPihTKSDihpIgZHluYW1pYycpOworICAgIGV4cGVjdElkZW50aWZpZXJUeXBlKCdnJywgJzxTPihTKSDihpIgPFM+KFMpIOKGkiBTJyk7CiAgIH0KIAogICB2b2lkIHRlc3RfZ2VuZXJpY01ldGhvZF9vdmVycmlkZSgpIHsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90ZXN0L2dlbmVyYXRlZC90eXBlX3N5c3RlbV90ZXN0LmRhcnQgYi9wa2cvYW5hbHl6ZXIvdGVzdC9nZW5lcmF0ZWQvdHlwZV9zeXN0ZW1fdGVzdC5kYXJ0CmluZGV4IGQ4MmQxMzUuLmM2MmY5ODUgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci90ZXN0L2dlbmVyYXRlZC90eXBlX3N5c3RlbV90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3QvZ2VuZXJhdGVkL3R5cGVfc3lzdGVtX3Rlc3QuZGFydApAQCAtMTY0LDcgKzE2NCw2IEBACiAgICAgRnVuY3Rpb25UeXBlIGV4cGVjdGVkID0gX2Z1bmN0aW9uVHlwZShbb2JqZWN0VHlwZSwgbnVtVHlwZSwgbnVtVHlwZV0pOwogICAgIF9jaGVja0xlYXN0VXBwZXJCb3VuZCh0eXBlMSwgdHlwZTIsIGV4cGVjdGVkKTsKICAgfQotCiAgIHZvaWQgdGVzdF9uZXN0ZWROZXN0ZWRGdW5jdGlvbnNMdWJJbm5lcm1vc3RQYXJhbVR5cGVzKCkgewogICAgIEZ1bmN0aW9uVHlwZSB0eXBlMSA9IF9mdW5jdGlvblR5cGUoWwogICAgICAgX2Z1bmN0aW9uVHlwZShbCkBAIC0xMTQyLDYgKzExNDEsMTMgQEAKICAgICBfY2hlY2tHcmVhdGVzdExvd2VyQm91bmQodHlwZTEsIHR5cGUyLCBleHBlY3RlZCk7CiAgIH0KIAorICB2b2lkIHRlc3RfZnVuY3Rpb25zRnV6enlBcnJvd3MoKSB7CisgICAgRnVuY3Rpb25UeXBlIHR5cGUxID0gX2Z1bmN0aW9uVHlwZShbZHluYW1pY1R5cGVdKTsKKyAgICBGdW5jdGlvblR5cGUgdHlwZTIgPSBfZnVuY3Rpb25UeXBlKFtpbnRUeXBlXSk7CisgICAgRnVuY3Rpb25UeXBlIGV4cGVjdGVkID0gX2Z1bmN0aW9uVHlwZShbaW50VHlwZV0pOworICAgIF9jaGVja0dyZWF0ZXN0TG93ZXJCb3VuZCh0eXBlMSwgdHlwZTIsIGV4cGVjdGVkKTsKKyAgfQorCiAgIHZvaWQgdGVzdF9mdW5jdGlvbnNHbGJSZXR1cm5UeXBlKCkgewogICAgIEZ1bmN0aW9uVHlwZSB0eXBlMSA9IF9mdW5jdGlvblR5cGUoW10sIHJldHVybnM6IGludFR5cGUpOwogICAgIEZ1bmN0aW9uVHlwZSB0eXBlMiA9IF9mdW5jdGlvblR5cGUoW10sIHJldHVybnM6IG51bVR5cGUpOwpAQCAtMTMxMSw2ICsxMzE3LDEzIEBACiAgICAgc3VwZXIuc2V0VXAoKTsKICAgfQogCisgIHZvaWQgdGVzdF9mdW5jdGlvbnNGdXp6eUFycm93cygpIHsKKyAgICBGdW5jdGlvblR5cGUgdHlwZTEgPSBfZnVuY3Rpb25UeXBlKFtkeW5hbWljVHlwZV0pOworICAgIEZ1bmN0aW9uVHlwZSB0eXBlMiA9IF9mdW5jdGlvblR5cGUoW2ludFR5cGVdKTsKKyAgICBGdW5jdGlvblR5cGUgZXhwZWN0ZWQgPSBfZnVuY3Rpb25UeXBlKFtkeW5hbWljVHlwZV0pOworICAgIF9jaGVja0xlYXN0VXBwZXJCb3VuZCh0eXBlMSwgdHlwZTIsIGV4cGVjdGVkKTsKKyAgfQorCiAgIHZvaWQgdGVzdF9mdW5jdGlvbnNHbGJOYW1lZFBhcmFtcygpIHsKICAgICBGdW5jdGlvblR5cGUgdHlwZTEgPQogICAgICAgICBfZnVuY3Rpb25UeXBlKFtdLCBuYW1lZDogeydhJzogc3RyaW5nVHlwZSwgJ2InOiBpbnRUeXBlfSk7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9zb3VyY2UvZW1iZWRkZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc291cmNlL2VtYmVkZGVyX3Rlc3QuZGFydAppbmRleCBjMTZlNmY5Li5lYTIwY2Q3IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9zb3VyY2UvZW1iZWRkZXJfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L3NvdXJjZS9lbWJlZGRlcl90ZXN0LmRhcnQKQEAgLTIyLDcgKzIyLDYgQEAKICAgcnVuUmVmbGVjdGl2ZVRlc3RzKERhcnRVcmlSZXNvbHZlclRlc3QpOwogICBydW5SZWZsZWN0aXZlVGVzdHMoRW1iZWRkZXJTZGtUZXN0KTsKICAgcnVuUmVmbGVjdGl2ZVRlc3RzKEVtYmVkZGVyVXJpUmVzb2x2ZXJUZXN0KTsKLSAgcnVuUmVmbGVjdGl2ZVRlc3RzKEVtYmVkZGVyWWFtbExvY2F0b3JUZXN0KTsKIH0KIAogQHJlZmxlY3RpdmVUZXN0CkBAIC0zOSw2ICszOCw3IEBACiAgICAgICBleHBlY3Qoc291cmNlLCBpc05vdE51bGwsIHJlYXNvbjogZGFydFVyaSk7CiAgICAgICBleHBlY3Qoc291cmNlLmZ1bGxOYW1lLCBwb3NpeFRvT1NQYXRoKHBvc2l4UGF0aCkpOwogICAgIH0KKwogICAgIC8vIENoZWNrIHRoYXQgdGhleSBtYXAgdG8gdGhlIGNvcnJlY3QgcGF0aHMuCiAgICAgZXhwZWN0UmVzb2x2ZWQoJ2RhcnQ6Y29yZScsICcvdG1wL2NvcmUuZGFydCcpOwogICAgIGV4cGVjdFJlc29sdmVkKCdkYXJ0OmZveCcsICcvdG1wL3NsaXBweS5kYXJ0Jyk7CkBAIC0yMDUsMjYgKzIwNSwzIEBACiAgICAgZXhwZWN0UmVzdG9yZSgnZGFydDpkZWVwL2RlZXAvZmlsZS5kYXJ0Jyk7CiAgIH0KIH0KLQotQHJlZmxlY3RpdmVUZXN0Ci1jbGFzcyBFbWJlZGRlcllhbWxMb2NhdG9yVGVzdCBleHRlbmRzIEVtYmVkZGVyUmVsYXRlZFRlc3QgewotICB2b2lkIHRlc3RfZW1wdHkoKSB7Ci0gICAgRW1iZWRkZXJZYW1sTG9jYXRvciBsb2NhdG9yID0gbmV3IEVtYmVkZGVyWWFtbExvY2F0b3IoewotICAgICAgJ2ZveCc6IFtwYXRoVHJhbnNsYXRvci5nZXRSZXNvdXJjZSgnL2VtcHR5JyldCi0gICAgfSk7Ci0gICAgZXhwZWN0KGxvY2F0b3IuZW1iZWRkZXJZYW1scywgaGFzTGVuZ3RoKDApKTsKLSAgfQotCi0gIHZvaWQgdGVzdF9pbnZhbGlkKCkgewotICAgIEVtYmVkZGVyWWFtbExvY2F0b3IgbG9jYXRvciA9IG5ldyBFbWJlZGRlcllhbWxMb2NhdG9yKG51bGwpOwotICAgIGxvY2F0b3IuYWRkRW1iZWRkZXJZYW1sKG51bGwsIHInJyd7e3sse3t9fX0sfX0nJycpOwotICAgIGV4cGVjdChsb2NhdG9yLmVtYmVkZGVyWWFtbHMsIGhhc0xlbmd0aCgwKSk7Ci0gIH0KLQotICB2b2lkIHRlc3RfdmFsaWQoKSB7Ci0gICAgRW1iZWRkZXJZYW1sTG9jYXRvciBsb2NhdG9yID0gbmV3IEVtYmVkZGVyWWFtbExvY2F0b3IoewotICAgICAgJ2ZveCc6IFtwYXRoVHJhbnNsYXRvci5nZXRSZXNvdXJjZSgnL3RtcCcpXQotICAgIH0pOwotICAgIGV4cGVjdChsb2NhdG9yLmVtYmVkZGVyWWFtbHMsIGhhc0xlbmd0aCgxKSk7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90ZXN0L3NyYy9jb250ZXh0L2J1aWxkZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL2NvbnRleHQvYnVpbGRlcl90ZXN0LmRhcnQKaW5kZXggMWY5NGFmYS4uZTZlZDc2ZiAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL2NvbnRleHQvYnVpbGRlcl90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL2NvbnRleHQvYnVpbGRlcl90ZXN0LmRhcnQKQEAgLTIyLDYgKzIyLDcgQEAKIAogaW1wb3J0ICcuLi8uLi9nZW5lcmF0ZWQvdGVzdF9zdXBwb3J0LmRhcnQnOwogaW1wb3J0ICcuLi8uLi9yZWZsZWN0aXZlX3Rlc3RzLmRhcnQnOworaW1wb3J0ICcuLi8uLi9zb3VyY2UvZW1iZWRkZXJfdGVzdC5kYXJ0JzsKIGltcG9ydCAnLi4vLi4vdXRpbHMuZGFydCc7CiBpbXBvcnQgJ21vY2tfc2RrLmRhcnQnOwogCkBAIC0yOSw2ICszMCw3IEBACiAgIGluaXRpYWxpemVUZXN0RW52aXJvbm1lbnQoKTsKICAgcnVuUmVmbGVjdGl2ZVRlc3RzKENvbnRleHRCdWlsZGVyVGVzdF9XaXRoRGlzayk7CiAgIHJ1blJlZmxlY3RpdmVUZXN0cyhDb250ZXh0QnVpbGRlclRlc3RfV2l0aG91dERpc2spOworICBydW5SZWZsZWN0aXZlVGVzdHMoRW1iZWRkZXJZYW1sTG9jYXRvclRlc3QpOwogfQogCiBAcmVmbGVjdGl2ZVRlc3QKQEAgLTY5NSwzICs2OTcsMjYgQEAKICAgICBleHBlY3QoYWN0dWFsLmZpbmVyR3JhaW5lZEludmFsaWRhdGlvbiwgZXhwZWN0ZWQuZmluZXJHcmFpbmVkSW52YWxpZGF0aW9uKTsKICAgfQogfQorCitAcmVmbGVjdGl2ZVRlc3QKK2NsYXNzIEVtYmVkZGVyWWFtbExvY2F0b3JUZXN0IGV4dGVuZHMgRW1iZWRkZXJSZWxhdGVkVGVzdCB7CisgIHZvaWQgdGVzdF9lbXB0eSgpIHsKKyAgICBFbWJlZGRlcllhbWxMb2NhdG9yIGxvY2F0b3IgPSBuZXcgRW1iZWRkZXJZYW1sTG9jYXRvcih7CisgICAgICAnZm94JzogW3BhdGhUcmFuc2xhdG9yLmdldFJlc291cmNlKCcvZW1wdHknKV0KKyAgICB9KTsKKyAgICBleHBlY3QobG9jYXRvci5lbWJlZGRlcllhbWxzLCBoYXNMZW5ndGgoMCkpOworICB9CisKKyAgdm9pZCB0ZXN0X2ludmFsaWQoKSB7CisgICAgRW1iZWRkZXJZYW1sTG9jYXRvciBsb2NhdG9yID0gbmV3IEVtYmVkZGVyWWFtbExvY2F0b3IobnVsbCk7CisgICAgbG9jYXRvci5hZGRFbWJlZGRlcllhbWwobnVsbCwgcicnJ3t7eyx7e319fSx9fScnJyk7CisgICAgZXhwZWN0KGxvY2F0b3IuZW1iZWRkZXJZYW1scywgaGFzTGVuZ3RoKDApKTsKKyAgfQorCisgIHZvaWQgdGVzdF92YWxpZCgpIHsKKyAgICBFbWJlZGRlcllhbWxMb2NhdG9yIGxvY2F0b3IgPSBuZXcgRW1iZWRkZXJZYW1sTG9jYXRvcih7CisgICAgICAnZm94JzogW3BhdGhUcmFuc2xhdG9yLmdldFJlc291cmNlKCcvdG1wJyldCisgICAgfSk7CisgICAgZXhwZWN0KGxvY2F0b3IuZW1iZWRkZXJZYW1scywgaGFzTGVuZ3RoKDEpKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL2NvbnRleHQvY29udGV4dF90ZXN0LmRhcnQgYi9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvY29udGV4dC9jb250ZXh0X3Rlc3QuZGFydAppbmRleCBmNWI2OTVmLi45ODhkYjU2IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvY29udGV4dC9jb250ZXh0X3Rlc3QuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvY29udGV4dC9jb250ZXh0X3Rlc3QuZGFydApAQCAtNDg3LDYgKzQ4Nyw0MyBAQAogICAgIGV4cGVjdChjb250ZXh0LmdldEVycm9ycyhhKS5lcnJvcnMsIGhhc0xlbmd0aCgwKSk7CiAgIH0KIAorICB2b2lkIHRlc3RfYXBwbHlDaGFuZ2VzX2FkZE5ld0ltcG9ydF9pbnZhbGlkYXRlTGlicmFyeUN5Y2xlKCkgeworICAgIGNvbnRleHQuYW5hbHlzaXNPcHRpb25zID0KKyAgICAgICAgbmV3IEFuYWx5c2lzT3B0aW9uc0ltcGwuZnJvbShjb250ZXh0LmFuYWx5c2lzT3B0aW9ucykKKyAgICAgICAgICAuLnN0cm9uZ01vZGUgPSB0cnVlOworICAgIFNvdXJjZSBlbWJlZGRlciA9IGFkZFNvdXJjZSgKKyAgICAgICAgJy9hLmRhcnQnLAorICAgICAgICByJycnCitsaWJyYXJ5IGE7CitpbXBvcnQgJ2IuZGFydCc7CisvL2ltcG9ydCAnYy5kYXJ0JzsKKycnJyk7CisgICAgYWRkU291cmNlKAorICAgICAgICAnL2IuZGFydCcsCisgICAgICAgIHInJycKK2xpYnJhcnkgYjsKK2ltcG9ydCAnYS5kYXJ0JzsKKycnJyk7CisgICAgYWRkU291cmNlKAorICAgICAgICAnL2MuZGFydCcsCisgICAgICAgIHInJycKK2xpYnJhcnkgYzsKK2ltcG9ydCAnYi5kYXJ0JzsKKycnJyk7CisgICAgX3BlcmZvcm1QZW5kaW5nQW5hbHlzaXNUYXNrcygpOworICAgIC8vIEFkZCBhIG5ldyBpbXBvcnQgaW50byBhLmRhcnQsIHRoaXMgc2hvdWxkIGludmFsaWRhdGUgaXRzIGxpYnJhcnkgY3ljbGUuCisgICAgLy8gSWYgaXQgZG9lc24ndCwgd2Ugd2lsbCBnZXQgYSB0YXNrIGN5Y2xlIGV4Y2VwdGlvbi4KKyAgICBjb250ZXh0LnNldENvbnRlbnRzKAorICAgICAgICBlbWJlZGRlciwKKyAgICAgICAgcicnJworbGlicmFyeSBhOworaW1wb3J0ICdiLmRhcnQnOworaW1wb3J0ICdjLmRhcnQnOworJycnKTsKKyAgICBfcGVyZm9ybVBlbmRpbmdBbmFseXNpc1Rhc2tzKCk7CisgICAgZXhwZWN0KGNvbnRleHQuZ2V0Q2FjaGVFbnRyeShlbWJlZGRlcikuZXhjZXB0aW9uLCBpc051bGwpOworICB9CisKICAgdm9pZCB0ZXN0X2NhY2hlQ29uc2lzdGVuY3lWYWxpZGF0b3JfY29tcHV0ZWRfZGVsZXRlZCgpIHsKICAgICBDYWNoZUNvbnNpc3RlbmN5VmFsaWRhdG9yIHZhbGlkYXRvciA9IGNvbnRleHQuY2FjaGVDb25zaXN0ZW5jeVZhbGlkYXRvcjsKICAgICB2YXIgc3RhdCA9IFBlcmZvcm1hbmNlU3RhdGlzdGljcy5jYWNoZUNvbnNpc3RlbmN5VmFsaWRhdGlvblN0YXRpc3RpY3M7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvZGFydC9zZGsvc2RrX3Rlc3QuZGFydCBiL3BrZy9hbmFseXplci90ZXN0L3NyYy9kYXJ0L3Nkay9zZGtfdGVzdC5kYXJ0CmluZGV4IGU2MTNmOTYuLmEyMTIwNDUgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci90ZXN0L3NyYy9kYXJ0L3Nkay9zZGtfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L3NyYy9kYXJ0L3Nkay9zZGtfdGVzdC5kYXJ0CkBAIC02LDcgKzYsNyBAQAogCiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZmlsZV9zeXN0ZW0vZmlsZV9zeXN0ZW0uZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvZmlsZV9zeXN0ZW0vbWVtb3J5X2ZpbGVfc3lzdGVtLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9lbWJlZGRlci5kYXJ0JyBzaG93IEVtYmVkZGVyWWFtbExvY2F0b3I7CitpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2NvbnRleHQvYnVpbGRlci5kYXJ0JyBzaG93IEVtYmVkZGVyWWFtbExvY2F0b3I7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2RhcnQvc2RrL3Nkay5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2VuZ2luZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2phdmFfZW5naW5lX2lvLmRhcnQnOwpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvYXBpX3NpZ25hdHVyZV90ZXN0LmRhcnQgYi9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvc3VtbWFyeS9hcGlfc2lnbmF0dXJlX3Rlc3QuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWJiODA1Ci0tLSAvZGV2L251bGwKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvYXBpX3NpZ25hdHVyZV90ZXN0LmRhcnQKQEAgLTAsMCArMSwxMTIgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworbGlicmFyeSB0ZXN0LnNyYy5zdW1tYXJ5LmFwaV9zaWduYXR1cmVfdGVzdDsKKworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9zdW1tYXJ5L2FwaV9zaWduYXR1cmUuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL3N1bW1hcnkvZm9ybWF0LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmNvbnZlcnQvY29udmVydC5kYXJ0JzsKK2ltcG9ydCAncGFja2FnZTpjcnlwdG8vY3J5cHRvLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOworCitpbXBvcnQgJy4uLy4uL3JlZmxlY3RpdmVfdGVzdHMuZGFydCc7CisKK21haW4oKSB7CisgIGdyb3VwU2VwID0gJyB8ICc7CisgIHJ1blJlZmxlY3RpdmVUZXN0cyhBcGlTaWduYXR1cmVUZXN0KTsKK30KKworQHJlZmxlY3RpdmVUZXN0CitjbGFzcyBBcGlTaWduYXR1cmVUZXN0IHsKKyAgQXBpU2lnbmF0dXJlIHNpZyA9IG5ldyBBcGlTaWduYXR1cmUudW52ZXJzaW9uZWQoKTsKKworICB2b2lkIGNoZWNrQnl0ZXMoTGlzdDxpbnQ+IGJ5dGVzKSB7CisgICAgZXhwZWN0KHNpZy5nZXRCeXRlc19mb3JEZWJ1ZygpLCBieXRlcyk7CisgICAgZXhwZWN0KHNpZy50b0hleCgpLCBoZXguZW5jb2RlKG1kNS5jb252ZXJ0KGJ5dGVzKS5ieXRlcykpOworICB9CisKKyAgU3RyaW5nIHNpZ25VbmxpbmtlZENvbWJpbmF0b3IoVW5saW5rZWRDb21iaW5hdG9yQnVpbGRlciBjb21iaW5hdG9yKSB7CisgICAgQXBpU2lnbmF0dXJlIHNpZyA9IG5ldyBBcGlTaWduYXR1cmUoKTsKKyAgICBjb21iaW5hdG9yLmNvbGxlY3RBcGlTaWduYXR1cmUoc2lnKTsKKyAgICByZXR1cm4gc2lnLnRvSGV4KCk7CisgIH0KKworICB2b2lkIHRlc3RfYWRkQm9vbCgpIHsKKyAgICBzaWcuYWRkQm9vbCh0cnVlKTsKKyAgICBzaWcuYWRkQm9vbCh0cnVlKTsKKyAgICBzaWcuYWRkQm9vbChmYWxzZSk7CisgICAgc2lnLmFkZEJvb2wodHJ1ZSk7CisgICAgc2lnLmFkZEJvb2woZmFsc2UpOworICAgIHNpZy5hZGRCb29sKGZhbHNlKTsKKyAgICBzaWcuYWRkQm9vbCh0cnVlKTsKKyAgICBzaWcuYWRkQm9vbChmYWxzZSk7CisgICAgY2hlY2tCeXRlcyhbMSwgMSwgMCwgMSwgMCwgMCwgMSwgMF0pOworICB9CisKKyAgdm9pZCB0ZXN0X2FkZEJ5dGVzKCkgeworICAgIC8vIENoZWNrIHRoYXQgb2Zmc2V0IHdvcmtzIGNvcnJlY3RseSBieSBhZGRpbmcgYnl0ZXMgaW4gMiBjaHVua3MuCisgICAgc2lnLmFkZEJ5dGVzKFsxLCAyLCAzLCA0LCA1XSk7CisgICAgc2lnLmFkZEJ5dGVzKFsweGZmLCAweGZlLCAweGZkLCAweGZjLCAweGZiXSk7CisgICAgY2hlY2tCeXRlcyhbMSwgMiwgMywgNCwgNSwgMHhmZiwgMHhmZSwgMHhmZCwgMHhmYywgMHhmYl0pOworICB9CisKKyAgdm9pZCB0ZXN0X2FkZERvdWJsZSgpIHsKKyAgICBzaWcuYWRkRG91YmxlKDEuMCAvIDMuMCk7CisgICAgc2lnLmFkZERvdWJsZSgtMS4wKTsKKyAgICBjaGVja0J5dGVzKFs4NSwgODUsIDg1LCA4NSwgODUsIDg1LCAyMTMsIDYzLCAwLCAwLCAwLCAwLCAwLCAwLCAyNDAsIDE5MV0pOworICB9CisKKyAgdm9pZCB0ZXN0X2FkZEludCgpIHsKKyAgICBzaWcuYWRkSW50KDEpOworICAgIHNpZy5hZGRJbnQoMTAwMCk7CisgICAgc2lnLmFkZEludCgxMDAwMDAwKTsKKyAgICBzaWcuYWRkSW50KDEwMDAwMDAwMDApOworICAgIGNoZWNrQnl0ZXMoCisgICAgICAgIFsxLCAwLCAwLCAwLCAweGU4LCAzLCAwLCAwLCAweDQwLCAweDQyLCAweGYsIDAsIDAsIDB4Y2EsIDB4OWEsIDB4M2JdKTsKKyAgfQorCisgIHZvaWQgdGVzdF9hZGRTdHJpbmcoKSB7CisgICAgc2lnLmFkZFN0cmluZygnYWJjJyk7CisgICAgc2lnLmFkZFN0cmluZygnXHUwMGY4Jyk7CisgICAgY2hlY2tCeXRlcyhbMywgMCwgMCwgMCwgMHg2MSwgMHg2MiwgMHg2MywgMiwgMCwgMCwgMCwgMHhjMywgMHhiOF0pOworICB9CisKKyAgdm9pZCB0ZXN0X2V4Y2x1ZGVzSW5mb3JtYXRpdmUoKSB7CisgICAgLy8gVmVyaWZ5IHRoYXQgQVBJIHNpZ25hdHVyZXMgZXhjbHVkZSBpbmZvcm1hdGl2ZSBkYXRhIGJ5IGNoZWNraW5nIHRoYXQgdHdvCisgICAgLy8gVW5saW5rZWRDb21iaW5hdG9yIGluc3RhbmNlcyB0aGF0IGRpZmZlciBvbmx5IGluIHRoZWlyIG9mZnNldCByZXN1bHQgaW4KKyAgICAvLyB0aGUgc2FtZSBzaWduYXR1cmUuCisgICAgVW5saW5rZWRDb21iaW5hdG9yQnVpbGRlciBjb21iaW5hdG9yMSA9CisgICAgICAgIG5ldyBVbmxpbmtlZENvbWJpbmF0b3JCdWlsZGVyKHNob3dzOiBbJ2ZvbyddLCBvZmZzZXQ6IDEpOworICAgIFVubGlua2VkQ29tYmluYXRvckJ1aWxkZXIgY29tYmluYXRvcjIgPQorICAgICAgICBuZXcgVW5saW5rZWRDb21iaW5hdG9yQnVpbGRlcihzaG93czogWydmb28nXSwgb2Zmc2V0OiAyKTsKKyAgICBleHBlY3Qoc2lnblVubGlua2VkQ29tYmluYXRvcihjb21iaW5hdG9yMSksCisgICAgICAgIHNpZ25VbmxpbmtlZENvbWJpbmF0b3IoY29tYmluYXRvcjIpKTsKKyAgfQorCisgIHZvaWQgdGVzdF9pbmNsdWRlc1NlbWFudGljKCkgeworICAgIC8vIFZlcmlmeSB0aGF0IEFQSSBzaWduYXR1cmVzIGluY2x1ZGUgc2VtYW50aWMgZGF0YSBieSBjaGVja2luZyB0aGF0IHR3bworICAgIC8vIFVubGlua2VkQ29tYmluYXRvciBpbnN0YW5jZXMgdGhhdCBkaWZmZXIgb25seSBpbiB0aGVpciAic2hvd3MiIGxpc3RzCisgICAgLy8gcmVzdWx0IGluIGRpZmZlcmVudCBzaWduYXR1cmVzLgorICAgIFVubGlua2VkQ29tYmluYXRvckJ1aWxkZXIgY29tYmluYXRvcjEgPQorICAgICAgICBuZXcgVW5saW5rZWRDb21iaW5hdG9yQnVpbGRlcihzaG93czogWydmb28nXSwgb2Zmc2V0OiAxKTsKKyAgICBVbmxpbmtlZENvbWJpbmF0b3JCdWlsZGVyIGNvbWJpbmF0b3IyID0KKyAgICAgICAgbmV3IFVubGlua2VkQ29tYmluYXRvckJ1aWxkZXIoc2hvd3M6IFsnYmFyJ10sIG9mZnNldDogMSk7CisgICAgZXhwZWN0KHNpZ25VbmxpbmtlZENvbWJpbmF0b3IoY29tYmluYXRvcjEpLAorICAgICAgICBpc05vdChzaWduVW5saW5rZWRDb21iaW5hdG9yKGNvbWJpbmF0b3IyKSkpOworICB9CisKKyAgdm9pZCB0ZXN0X21hbnlJbnRzKCkgeworICAgIC8vIFRoaXMgdmVyaWZpZXMgdGhhdCB0aGUgbG9naWMgdG8gZXh0ZW5kIHRoZSBpbnRlcm5hbCBidWZmZXIgd29ya3MKKyAgICAvLyBwcm9wZXJseS4KKyAgICBMaXN0PGludD4gZXhwZWN0ZWRSZXN1bHQgPSBbXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwMDsgaSsrKSB7CisgICAgICBzaWcuYWRkSW50KGkpOworICAgICAgZXhwZWN0ZWRSZXN1bHQuYWRkKGkgJSAweDEwMCk7CisgICAgICBleHBlY3RlZFJlc3VsdC5hZGQoKGkgfi8gMHgxMDApICUgMHgxMDApOworICAgICAgZXhwZWN0ZWRSZXN1bHQuYWRkKChpIH4vIDB4MTAwMDApICUgMHgxMDApOworICAgICAgZXhwZWN0ZWRSZXN1bHQuYWRkKChpIH4vIDB4MTAwMDAwMCkgJSAweDEwMCk7CisgICAgfQorICAgIGNoZWNrQnl0ZXMoZXhwZWN0ZWRSZXN1bHQpOworICB9Cit9CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvc3VtbWFyeS9saW5rZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvbGlua2VyX3Rlc3QuZGFydAppbmRleCA2NzRjZTliLi4xOTZmYjA0IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvc3VtbWFyeS9saW5rZXJfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L3NyYy9zdW1tYXJ5L2xpbmtlcl90ZXN0LmRhcnQKQEAgLTQzLDYgKzQzLDI0IEBACiAgICAgcmV0dXJuIGxpbmtlci5nZXRMaWJyYXJ5KFVyaS5wYXJzZSh1cmkpKTsKICAgfQogCisgIHZvaWQgdGVzdF9hcGlTaWduYXR1cmVfYXBpQ2hhbmdlcygpIHsKKyAgICB2YXIgYnVuZGxlMCA9CisgICAgICAgIGNyZWF0ZVBhY2thZ2VCdW5kbGUoJ2YoaW50IGkpIHsgcHJpbnQoaSk7IH0nLCBwYXRoOiAnL3Rlc3QuZGFydCcpOworICAgIHZhciBidW5kbGUxID0KKyAgICAgICAgY3JlYXRlUGFja2FnZUJ1bmRsZSgnZihTdHJpbmcgcykgeyBwcmludChzKTsgfScsIHBhdGg6ICcvdGVzdC5kYXJ0Jyk7CisgICAgZXhwZWN0KGJ1bmRsZTAuYXBpU2lnbmF0dXJlLCBpc05vdEVtcHR5KTsKKyAgICBleHBlY3QoYnVuZGxlMS5hcGlTaWduYXR1cmUsIGlzTm90RW1wdHkpOworICAgIGV4cGVjdChidW5kbGUwLmFwaVNpZ25hdHVyZSwgaXNOb3QoYnVuZGxlMS5hcGlTaWduYXR1cmUpKTsKKyAgfQorCisgIHZvaWQgdGVzdF9hcGlTaWduYXR1cmVfbG9jYWxDaGFuZ2VzKCkgeworICAgIHZhciBidW5kbGUwID0gY3JlYXRlUGFja2FnZUJ1bmRsZSgnZigpIHsgcHJpbnQoMCk7IH0nLCBwYXRoOiAnL3Rlc3QuZGFydCcpOworICAgIHZhciBidW5kbGUxID0gY3JlYXRlUGFja2FnZUJ1bmRsZSgnZigpIHsgcHJpbnQoMSk7IH0nLCBwYXRoOiAnL3Rlc3QuZGFydCcpOworICAgIGV4cGVjdChidW5kbGUwLmFwaVNpZ25hdHVyZSwgaXNOb3RFbXB0eSk7CisgICAgZXhwZWN0KGJ1bmRsZTEuYXBpU2lnbmF0dXJlLCBpc05vdEVtcHR5KTsKKyAgICBleHBlY3QoYnVuZGxlMC5hcGlTaWduYXR1cmUsIGJ1bmRsZTEuYXBpU2lnbmF0dXJlKTsKKyAgfQorCiAgIHZvaWQgdGVzdF9iYXNlQ2xhc3NfZ2VuZXJpY1dpdGhBY2Nlc3NvcigpIHsKICAgICBjcmVhdGVMaW5rZXIoJycnCiBjbGFzcyBCPFQ+IHsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90ZXN0L3NyYy9zdW1tYXJ5L3Jlc3ludGhlc2l6ZV9hc3RfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvcmVzeW50aGVzaXplX2FzdF90ZXN0LmRhcnQKaW5kZXggNDIwZDUxNS4uY2I2Y2ZlYiAxMDA2NDQKLS0tIGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvcmVzeW50aGVzaXplX2FzdF90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvcmVzeW50aGVzaXplX2FzdF90ZXN0LmRhcnQKQEAgLTU2Nyw2ICs1NjcsMTIgQEAKIAogICBAb3ZlcnJpZGUKICAgQGZhaWxpbmdUZXN0CisgIHZvaWQgdGVzdF9pbmZlckxvY2FsRnVuY3Rpb25SZXR1cm5UeXBlKCkgeworICAgIHN1cGVyLnRlc3RfaW5mZXJMb2NhbEZ1bmN0aW9uUmV0dXJuVHlwZSgpOworICB9CisKKyAgQG92ZXJyaWRlCisgIEBmYWlsaW5nVGVzdAogICB2b2lkIHRlc3RfaW5mZXJyZWRUeXBlX29wQXNzaWduVG9Qcm9wZXJ0eV9wcmVmaXhlZElkZW50aWZpZXIoKSB7CiAgICAgc3VwZXIudGVzdF9pbmZlcnJlZFR5cGVfb3BBc3NpZ25Ub1Byb3BlcnR5X3ByZWZpeGVkSWRlbnRpZmllcigpOwogICB9CkBAIC02MDAsNiArNjA2LDEyIEBACiAKICAgQG92ZXJyaWRlCiAgIEBmYWlsaW5nVGVzdAorICB2b2lkIHRlc3RfbnVsbENvYWxlc2NpbmdPcGVyYXRvcigpIHsKKyAgICBzdXBlci50ZXN0X251bGxDb2FsZXNjaW5nT3BlcmF0b3IoKTsKKyAgfQorCisgIEBvdmVycmlkZQorICBAZmFpbGluZ1Rlc3QKICAgdm9pZCB0ZXN0X3Vuc2FmZUJsb2NrQ2xvc3VyZUluZmVyZW5jZV9jbG9zdXJlQ2FsbCgpIHsKICAgICBzdXBlci50ZXN0X3Vuc2FmZUJsb2NrQ2xvc3VyZUluZmVyZW5jZV9jbG9zdXJlQ2FsbCgpOwogICB9CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvc3VtbWFyeS90ZXN0X2FsbC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3N1bW1hcnkvdGVzdF9hbGwuZGFydAppbmRleCBiM2EwNDY3Li42YWQwZjJmIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvc3VtbWFyeS90ZXN0X2FsbC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L3NyYy9zdW1tYXJ5L3Rlc3RfYWxsLmRhcnQKQEAgLTcsNiArNyw3IEBACiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7CiAKIGltcG9ydCAnLi4vLi4vdXRpbHMuZGFydCc7CitpbXBvcnQgJ2FwaV9zaWduYXR1cmVfdGVzdC5kYXJ0JyBhcyBhcGlfc2lnbmF0dXJlX3Rlc3Q7CiBpbXBvcnQgJ2ZsYXRfYnVmZmVyc190ZXN0LmRhcnQnIGFzIGZsYXRfYnVmZmVyc190ZXN0OwogaW1wb3J0ICdpbl9zdW1tYXJ5X3NvdXJjZV90ZXN0LmRhcnQnIGFzIGluX3N1bW1hcnlfc291cmNlX3Rlc3Q7CiBpbXBvcnQgJ2luY3JlbWVudGFsX2NhY2hlX3Rlc3QuZGFydCcgYXMgaW5jcmVtZW50YWxfY2FjaGVfdGVzdDsKQEAgLTI3LDYgKzI4LDcgQEAKIG1haW4oKSB7CiAgIGluaXRpYWxpemVUZXN0RW52aXJvbm1lbnQoKTsKICAgZ3JvdXAoJ3N1bW1hcnkgdGVzdHMnLCAoKSB7CisgICAgYXBpX3NpZ25hdHVyZV90ZXN0Lm1haW4oKTsKICAgICBmbGF0X2J1ZmZlcnNfdGVzdC5tYWluKCk7CiAgICAgaW5fc3VtbWFyeV9zb3VyY2VfdGVzdC5tYWluKCk7CiAgICAgaW5jcmVtZW50YWxfY2FjaGVfdGVzdC5tYWluKCk7CmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvdGFzay9kYXJ0X3Rlc3QuZGFydCBiL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL2RhcnRfdGVzdC5kYXJ0CmluZGV4IGNlZGNiOWIuLmMyNzQ4MzQgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL2RhcnRfdGVzdC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL2RhcnRfdGVzdC5kYXJ0CkBAIC0xNTU2LDExMyArMTU1NiwxNDMgQEAKIAogICB2b2lkIHRlc3RfbGlicmFyeV9jeWNsZV9pbmNyZW1lbnRhbCgpIHsKICAgICBlbmFibGVTdHJvbmdNb2RlKCk7Ci0gICAgU291cmNlIGxpYjFTb3VyY2UgPSBuZXdTb3VyY2UoCi0gICAgICAgICcvbXlfbGliMS5kYXJ0JywKKyAgICBTb3VyY2UgYSA9IG5ld1NvdXJjZSgKKyAgICAgICAgJy9hLmRhcnQnLAogICAgICAgICAnJycKLWxpYnJhcnkgbXlfbGliMTsKK2xpYnJhcnkgYTsKICcnJyk7Ci0gICAgU291cmNlIGxpYjJTb3VyY2UgPSBuZXdTb3VyY2UoCi0gICAgICAgICcvbXlfbGliMi5kYXJ0JywKKyAgICBTb3VyY2UgYiA9IG5ld1NvdXJjZSgKKyAgICAgICAgJy9iLmRhcnQnLAogICAgICAgICAnJycKLWxpYnJhcnkgbXlfbGliMjsKLWltcG9ydCAnbXlfbGliMS5kYXJ0JzsKK2xpYnJhcnkgYjsKK2ltcG9ydCAnYS5kYXJ0JzsKICcnJyk7Ci0gICAgU291cmNlIGxpYjNTb3VyY2UgPSBuZXdTb3VyY2UoCi0gICAgICAgICcvbXlfbGliMy5kYXJ0JywKKyAgICBTb3VyY2UgYyA9IG5ld1NvdXJjZSgKKyAgICAgICAgJy9jLmRhcnQnLAogICAgICAgICAnJycKLWxpYnJhcnkgbXlfbGliMzsKLWltcG9ydCAnbXlfbGliMi5kYXJ0JzsKK2xpYnJhcnkgYzsKK2ltcG9ydCAnYi5kYXJ0JzsKICcnJyk7CiAKLSAgICBjb21wdXRlUmVzdWx0KGxpYjFTb3VyY2UsIExJQlJBUllfQ1lDTEUpOwotICAgIGV4cGVjdChvdXRwdXRzW0xJQlJBUllfQ1lDTEVdLCBoYXNMZW5ndGgoMSkpOwotICAgIGNvbXB1dGVSZXN1bHQobGliMlNvdXJjZSwgTElCUkFSWV9DWUNMRSk7Ci0gICAgZXhwZWN0KG91dHB1dHNbTElCUkFSWV9DWUNMRV0sIGhhc0xlbmd0aCgxKSk7Ci0gICAgY29tcHV0ZVJlc3VsdChsaWIzU291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKLSAgICBleHBlY3Qob3V0cHV0c1tMSUJSQVJZX0NZQ0xFXSwgaGFzTGVuZ3RoKDEpKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGEsIFthXSk7CisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShiLCBbYl0pOworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYywgW2NdKTsKIAotICAgIC8vIGNyZWF0ZSBhIGN5Y2xlCisgICAgLy8gQ3JlYXRlIGEgY3ljbGUuCiAgICAgY29udGV4dC5zZXRDb250ZW50cygKLSAgICAgICAgbGliMVNvdXJjZSwKKyAgICAgICAgYSwKICAgICAgICAgJycnCi1saWJyYXJ5IG15X2xpYjE7Ci1pbXBvcnQgJ215X2xpYjMuZGFydCc7CitsaWJyYXJ5IGE7CitpbXBvcnQgJ2MuZGFydCc7CiAnJycpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjFTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjJTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjNTb3VyY2UpOworICAgIF9leHBlY3RJbnZhbGlkKGEpOworICAgIF9leHBlY3RJbnZhbGlkKGIpOworICAgIF9leHBlY3RJbnZhbGlkKGMpOwogCi0gICAgY29tcHV0ZVJlc3VsdChsaWIxU291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKLSAgICBleHBlY3Qob3V0cHV0c1tMSUJSQVJZX0NZQ0xFXSwgaGFzTGVuZ3RoKDMpKTsKLSAgICBjb21wdXRlUmVzdWx0KGxpYjJTb3VyY2UsIExJQlJBUllfQ1lDTEUpOwotICAgIGV4cGVjdChvdXRwdXRzW0xJQlJBUllfQ1lDTEVdLCBoYXNMZW5ndGgoMykpOwotICAgIGNvbXB1dGVSZXN1bHQobGliM1NvdXJjZSwgTElCUkFSWV9DWUNMRSk7Ci0gICAgZXhwZWN0KG91dHB1dHNbTElCUkFSWV9DWUNMRV0sIGhhc0xlbmd0aCgzKSk7CisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShhLCBbYSwgYiwgY10pOworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYiwgW2EsIGIsIGNdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGMsIFthLCBiLCBjXSk7CiAKLSAgICAvLyBicmVhayB0aGUgY3ljbGUgYWdhaW4KKyAgICAvLyBCcmVhayB0aGUgY3ljbGUgYWdhaW4uCiAgICAgY29udGV4dC5zZXRDb250ZW50cygKLSAgICAgICAgbGliMVNvdXJjZSwKKyAgICAgICAgYSwKICAgICAgICAgJycnCi1saWJyYXJ5IG15X2xpYjE7CitsaWJyYXJ5IGE7CiAnJycpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjFTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjJTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjNTb3VyY2UpOworICAgIF9leHBlY3RJbnZhbGlkKGEpOworICAgIF9leHBlY3RJbnZhbGlkKGIpOworICAgIF9leHBlY3RJbnZhbGlkKGMpOwogCi0gICAgY29tcHV0ZVJlc3VsdChsaWIxU291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKLSAgICBleHBlY3Qob3V0cHV0c1tMSUJSQVJZX0NZQ0xFXSwgaGFzTGVuZ3RoKDEpKTsKLSAgICBjb21wdXRlUmVzdWx0KGxpYjJTb3VyY2UsIExJQlJBUllfQ1lDTEUpOwotICAgIGV4cGVjdChvdXRwdXRzW0xJQlJBUllfQ1lDTEVdLCBoYXNMZW5ndGgoMSkpOwotICAgIGNvbXB1dGVSZXN1bHQobGliM1NvdXJjZSwgTElCUkFSWV9DWUNMRSk7Ci0gICAgZXhwZWN0KG91dHB1dHNbTElCUkFSWV9DWUNMRV0sIGhhc0xlbmd0aCgxKSk7CisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShhLCBbYV0pOworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYiwgW2JdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGMsIFtjXSk7CiAgIH0KIAogICB2b2lkIHRlc3RfbGlicmFyeV9jeWNsZV9pbmNyZW1lbnRhbF9wYXJ0aWFsKCkgewogICAgIGVuYWJsZVN0cm9uZ01vZGUoKTsKLSAgICBTb3VyY2UgbGliMVNvdXJjZSA9IG5ld1NvdXJjZSgKLSAgICAgICAgJy9teV9saWIxLmRhcnQnLAotICAgICAgICAnJycKLWxpYnJhcnkgbXlfbGliMTsKKyAgICBTb3VyY2UgYSA9IG5ld1NvdXJjZSgKKyAgICAgICAgJy9hLmRhcnQnLAorICAgICAgICByJycnCitsaWJyYXJ5IGE7CiAnJycpOwotICAgIFNvdXJjZSBsaWIyU291cmNlID0gbmV3U291cmNlKAotICAgICAgICAnL215X2xpYjIuZGFydCcsCi0gICAgICAgICcnJwotbGlicmFyeSBteV9saWIyOwotaW1wb3J0ICdteV9saWIxLmRhcnQnOworICAgIFNvdXJjZSBiID0gbmV3U291cmNlKAorICAgICAgICAnL2IuZGFydCcsCisgICAgICAgIHInJycKK2xpYnJhcnkgYjsKK2ltcG9ydCAnYS5kYXJ0JzsKICcnJyk7Ci0gICAgU291cmNlIGxpYjNTb3VyY2UgPSBuZXdTb3VyY2UoCi0gICAgICAgICcvbXlfbGliMy5kYXJ0JywKLSAgICAgICAgJycnCi1saWJyYXJ5IG15X2xpYjM7Ci1pbXBvcnQgJ215X2xpYjIuZGFydCc7CisgICAgU291cmNlIGMgPSBuZXdTb3VyY2UoCisgICAgICAgICcvYy5kYXJ0JywKKyAgICAgICAgcicnJworbGlicmFyeSBjOworaW1wb3J0ICdiLmRhcnQnOwogJycnKTsKIAotICAgIGNvbXB1dGVSZXN1bHQobGliMVNvdXJjZSwgTElCUkFSWV9DWUNMRSk7Ci0gICAgZXhwZWN0KG91dHB1dHNbTElCUkFSWV9DWUNMRV0sIGhhc0xlbmd0aCgxKSk7Ci0gICAgY29tcHV0ZVJlc3VsdChsaWIyU291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKLSAgICBleHBlY3Qob3V0cHV0c1tMSUJSQVJZX0NZQ0xFXSwgaGFzTGVuZ3RoKDEpKTsKLSAgICAvLyBsaWIzIGlzIG5vdCByZWFjaGFibGUsIHNvIHdlIGhhdmUgbm90IHlldCBjb21wdXRlZCBpdHMgbGlicmFyeQotICAgIC8vIGN5Y2xlcworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYSwgW2FdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGIsIFtiXSk7CisgICAgLy8gJ2MnIGlzIG5vdCByZWFjaGFibGUsIHNvIHdlIGhhdmUgbm90IHlldCBjb21wdXRlZCBpdHMgbGlicmFyeSBjeWNsZXMuCiAKLSAgICAvLyBjb21wbGV0ZSB0aGUgY3ljbGUsIHZpYSBsaWIzCisgICAgLy8gQ29tcGxldGUgdGhlIGN5Y2xlLCB2aWEgJ2MnLgogICAgIGNvbnRleHQuc2V0Q29udGVudHMoCi0gICAgICAgIGxpYjFTb3VyY2UsCi0gICAgICAgICcnJwotbGlicmFyeSBteV9saWIxOwotaW1wb3J0ICdteV9saWIzLmRhcnQnOworICAgICAgICBhLAorICAgICAgICByJycnCitsaWJyYXJ5IGE7CitpbXBvcnQgJ2MuZGFydCc7CiAnJycpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjFTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjJTb3VyY2UpOwotICAgIF9leHBlY3RJbnZhbGlkKGxpYjNTb3VyY2UpOworICAgIF9leHBlY3RJbnZhbGlkKGEpOworICAgIF9leHBlY3RJbnZhbGlkKGIpOworICAgIF9leHBlY3RJbnZhbGlkKGMpOwogCi0gICAgLy8gRW5zdXJlIHRoYXQgaW52YWxpZGF0aW9uIGNvcnJlY3RseSBpbnZhbGlkYXRlZCBldmVyeXRoaW5nIHJlYWNoYWJsZQotICAgIC8vIHRocm91Z2ggbGliMwotICAgIGNvbXB1dGVSZXN1bHQobGliMVNvdXJjZSwgTElCUkFSWV9DWUNMRSk7Ci0gICAgZXhwZWN0KG91dHB1dHNbTElCUkFSWV9DWUNMRV0sIGhhc0xlbmd0aCgzKSk7Ci0gICAgY29tcHV0ZVJlc3VsdChsaWIyU291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKLSAgICBleHBlY3Qob3V0cHV0c1tMSUJSQVJZX0NZQ0xFXSwgaGFzTGVuZ3RoKDMpKTsKLSAgICBjb21wdXRlUmVzdWx0KGxpYjNTb3VyY2UsIExJQlJBUllfQ1lDTEUpOwotICAgIGV4cGVjdChvdXRwdXRzW0xJQlJBUllfQ1lDTEVdLCBoYXNMZW5ndGgoMykpOworICAgIC8vIEVuc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgcmVhY2hhYmxlIHRocm91Z2ggJ2MnIHdhcyBpbnZhbGlkYXRlZCwKKyAgICAvLyBhbmQgcmVjb21wdXRlZCB0byBpbmNsdWRlIGFsbCB0aHJlZSBzb3VyY2VzLgorICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYSwgW2EsIGIsIGNdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGIsIFthLCBiLCBjXSk7CisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShjLCBbYSwgYiwgY10pOworICB9CisKKyAgdm9pZCB0ZXN0X2xpYnJhcnlfY3ljbGVfaW5jcmVtZW50YWxfcGFydGlhbDIoKSB7CisgICAgZW5hYmxlU3Ryb25nTW9kZSgpOworICAgIFNvdXJjZSBhID0gbmV3U291cmNlKAorICAgICAgICAnL2EuZGFydCcsCisgICAgICAgIHInJycKK2xpYnJhcnkgYTsKK2ltcG9ydCAnYi5kYXJ0JzsKKycnJyk7CisgICAgU291cmNlIGIgPSBuZXdTb3VyY2UoCisgICAgICAgICcvYi5kYXJ0JywKKyAgICAgICAgcicnJworbGlicmFyeSBiOworaW1wb3J0ICdhLmRhcnQnOworJycnKTsKKyAgICBTb3VyY2UgYyA9IG5ld1NvdXJjZSgKKyAgICAgICAgJy9jLmRhcnQnLAorICAgICAgICByJycnCitsaWJyYXJ5IGM7CitpbXBvcnQgJ2IuZGFydCc7CisnJycpOworCisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShhLCBbYSwgYl0pOworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYiwgW2EsIGJdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGMsIFtjXSk7CisKKyAgICAvLyBJbmNsdWRlICdjJyBpbnRvIHRoZSBjeWNsZS4KKyAgICBjb250ZXh0LnNldENvbnRlbnRzKAorICAgICAgICBhLAorICAgICAgICByJycnCitsaWJyYXJ5IGE7CitpbXBvcnQgJ2IuZGFydCc7CitpbXBvcnQgJ2MuZGFydCc7CisnJycpOworICAgIF9leHBlY3RJbnZhbGlkKGEpOworICAgIF9leHBlY3RJbnZhbGlkKGIpOworICAgIF9leHBlY3RJbnZhbGlkKGMpOworCisgICAgLy8gU3RhcnQgcHJvY2Vzc2luZyB3aXRoICdiJywgc28gdGhhdCB3aGVuIHdlIHJlc29sdmUgJ2InIGRpcmVjdGl2ZXMsCisgICAgLy8gYW5kIGludmFsaWRhdGUgbGlicmFyeSBjeWNsZXMsIHRoZSAnYScgZGlyZWN0aXZlcyBhcmUgbm90IHJlc29sdmVkIHlldCwKKyAgICAvLyBzbyB3ZSBkb24ndCBrbm93IHRoYXQgdGhlIGN5Y2xlIG11c3QgaW5jbHVkZSAnYycuCisgICAgX2Fzc2VydExpYnJhcnlDeWNsZShiLCBbYSwgYiwgY10pOworICAgIF9hc3NlcnRMaWJyYXJ5Q3ljbGUoYSwgW2EsIGIsIGNdKTsKKyAgICBfYXNzZXJ0TGlicmFyeUN5Y2xlKGMsIFthLCBiLCBjXSk7CiAgIH0KIAogICB2b2lkIHRlc3RfbGlicmFyeV9jeWNsZV9saW5lYXIoKSB7CkBAIC0xOTc0LDYgKzIwMDQsMTIgQEAKICAgICBleHBlY3QoZGVwNSwgaGFzTGVuZ3RoKDUpKTsgLy8gZGFydDpjb3JlLCBhLmRhcnQsIGFhLmRhcnQsIGFiLmRhcnQsIGIuZGFydAogICB9CiAKKyAgdm9pZCBfYXNzZXJ0TGlicmFyeUN5Y2xlKFNvdXJjZSBzb3VyY2UsIExpc3Q8U291cmNlPiBleHBlY3RlZCkgeworICAgIGNvbXB1dGVSZXN1bHQoc291cmNlLCBMSUJSQVJZX0NZQ0xFKTsKKyAgICBMaXN0PExpYnJhcnlFbGVtZW50PiBjeWNsZSA9IG91dHB1dHNbTElCUkFSWV9DWUNMRV0gYXMgTGlzdDxMaWJyYXJ5RWxlbWVudD47CisgICAgZXhwZWN0KGN5Y2xlLm1hcCgoZSkgPT4gZS5zb3VyY2UpLCB1bm9yZGVyZWRFcXVhbHMoZXhwZWN0ZWQpKTsKKyAgfQorCiAgIHZvaWQgX2V4cGVjdEludmFsaWQoU291cmNlIGxpYnJhcnlTb3VyY2UpIHsKICAgICBDYWNoZUVudHJ5IGVudHJ5ID0gY29udGV4dC5nZXRDYWNoZUVudHJ5KGxpYnJhcnlTb3VyY2UpOwogICAgIGV4cGVjdChlbnRyeS5nZXRTdGF0ZShMSUJSQVJZX0NZQ0xFKSwgQ2FjaGVTdGF0ZS5JTlZBTElEKTsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL3N0cm9uZy9jaGVja2VyX3Rlc3QuZGFydCBiL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL3N0cm9uZy9jaGVja2VyX3Rlc3QuZGFydAppbmRleCA4YmRkNGNlLi5mN2NlNGIyIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvdGFzay9zdHJvbmcvY2hlY2tlcl90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3Rhc2svc3Ryb25nL2NoZWNrZXJfdGVzdC5kYXJ0CkBAIC0yNjEyLDYgKzI2MTIsMjAgQEAKICcnJyk7CiAgIH0KIAorICB2b2lkIHRlc3RfbGVhc3RVcHBlckJvdW5kc19mdXp6eUFycm93cygpIHsKKyAgICBjaGVja0ZpbGUocicnJwordHlwZWRlZiBTdHJpbmcgVGFrZXNBPFQ+KFQgaXRlbSk7CisKK3ZvaWQgbWFpbigpIHsKKyAgVGFrZXNBPGludD4gZjsKKyAgVGFrZXNBPGR5bmFtaWM+IGc7CisgIFRha2VzQTxTdHJpbmc+IGg7CisgIGcgPSBoOworICBmID0gLyp3YXJuaW5nOkRPV05fQ0FTVF9DT01QT1NJVEUqL2YgPz8gZzsKK30KKycnJyk7CisgIH0KKwogICB2b2lkIHRlc3RfbG9hZExpYnJhcnkoKSB7CiAgICAgYWRkRmlsZSgnJydsaWJyYXJ5IGxpYjE7JycnLCBuYW1lOiAnL2xpYjEuZGFydCcpOwogICAgIGNoZWNrRmlsZShyJycnCkBAIC0zMzIyLDcgKzMzMzYsOSBAQAogICAgICAgICAgICAgICAgIGJvb2wgaXNWYWxpZEtleShwb3RlbnRpYWxLZXkpXSkKICAgICA6IF9jb21wYXJhdG9yID0gLyp3YXJuaW5nOkRPV05fQ0FTVF9DT01QT1NJVEUqLyhjb21wYXJlID09IG51bGwpID8gQ29tcGFyYWJsZS5jb21wYXJlIDogY29tcGFyZSwKICAgICAgIF92YWxpZEtleSA9IChpc1ZhbGlkS2V5ICE9IG51bGwpID8gaXNWYWxpZEtleSA6ICgodikgPT4gdHJ1ZSkgewotICAgIF9QcmVkaWNhdGU8T2JqZWN0PiB2ID0gKGlzVmFsaWRLZXkgIT0gbnVsbCkKKworICAgIC8vIE5PVEU6IHRoaXMgaXMgYSBkb3duIGNhc3QgYmVjYXVzZSBpc1ZhbGlkS2V5IGhhcyBmdXp6eSBhcnJvdyB0eXBlLgorICAgIF9QcmVkaWNhdGU8T2JqZWN0PiB2ID0gLyp3YXJuaW5nOkRPV05fQ0FTVF9DT01QT1NJVEUqLyhpc1ZhbGlkS2V5ICE9IG51bGwpCiAgICAgICAgID8gaXNWYWxpZEtleSA6ICgvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oXykgPT4gdHJ1ZSk7CiAKICAgICB2ID0gKGlzVmFsaWRLZXkgIT0gbnVsbCkKQEAgLTM0MDYsNiArMzQyMiwyOSBAQAogJycnKTsKICAgfQogCisgIHZvaWQgdGVzdF90eXBlUHJvbW90aW9uRnJvbVR5cGVQYXJhbWV0ZXIoKSB7CisgICAgLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5nL3Nkay9pc3N1ZXMvMjY5NjUKKyAgICBjaGVja0ZpbGUocicnJwordm9pZCBmLyo8VD4qLygvKj1UKi8gb2JqZWN0KSB7CisgIGlmIChvYmplY3QgaXMgU3RyaW5nKSBwcmludChvYmplY3Quc3Vic3RyaW5nKDEpKTsKK30KK3ZvaWQgZy8qPFQgZXh0ZW5kcyBudW0+Ki8oLyo9VCovIG9iamVjdCkgeworICBpZiAob2JqZWN0IGlzIGludCkgcHJpbnQob2JqZWN0LmlzRXZlbik7CisgIGlmIChvYmplY3QgaXMgU3RyaW5nKSBwcmludCgvKmluZm86RFlOQU1JQ19JTlZPS0UqL29iamVjdC5zdWJzdHJpbmcoMSkpOworfQorY2xhc3MgQ2xvbmFibGU8VD4ge30KK2NsYXNzIFN1YkNsb25hYmxlPFQ+IGV4dGVuZHMgQ2xvbmFibGU8VD4geworICBUIG0oVCB0KSA9PiB0OworfQordm9pZCBoLyo8VCBleHRlbmRzIENsb25hYmxlPFQ+PiovKC8qPVQqLyBvYmplY3QpIHsKKyAgaWYgKC8qaW5mbzpOT05fR1JPVU5EX1RZUEVfQ0hFQ0tfSU5GTyovb2JqZWN0IGlzIFN1YkNsb25hYmxlLyo8VD4qLykgeworICAgIC8vIE5vdGUgd2UgbmVlZCB0byBjYXN0IGJhY2sgdG8gVCwgYmVjYXVzZSBwcm9tb3Rpb24gbG9zdCB0aGF0IHR5cGUgaW5mby4KKyAgICBwcmludChvYmplY3QubShvYmplY3QgYXMgZHluYW1pYy8qPVQqLykpOworICB9Cit9CisnJycpOworICB9CisKICAgdm9pZCB0ZXN0X3R5cGVTdWJ0eXBpbmdfYXNzaWduaW5nQ2xhc3MoKSB7CiAgICAgY2hlY2tGaWxlKCcnJwogY2xhc3MgQSB7fQpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3Rhc2svc3Ryb25nL2luZmVycmVkX3R5cGVfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3Rhc2svc3Ryb25nL2luZmVycmVkX3R5cGVfdGVzdC5kYXJ0CmluZGV4IDc0MTY1OWEuLjRkYmNiZmUgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL3N0cm9uZy9pbmZlcnJlZF90eXBlX3Rlc3QuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvdGFzay9zdHJvbmcvaW5mZXJyZWRfdHlwZV90ZXN0LmRhcnQKQEAgLTU4OCw2ICs1ODgsMTYgQEAKICcnJyk7CiAgIH0KIAorICB2b2lkIHRlc3RfY29uc3RydWN0b3JzX2Rvd253YXJkc1dpdGhDb25zdHJhaW50KCkgeworICAgIC8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2NDMxCisgICAgY2hlY2tGaWxlKHInJycKK2NsYXNzIEZvbzxUIGV4dGVuZHMgSXRlcmFibGU+IHt9Cit2b2lkIG1haW4oKSB7CisgIEZvbzxMaXN0PiBmb28gPSAvKmluZm86SU5GRVJSRURfVFlQRV9BTExPQ0FUSU9OKi9uZXcgRm9vKCk7Cit9CisgICAgJycnKTsKKyAgfQorCiAgIHZvaWQgdGVzdF9jb25zdHJ1Y3RvcnNfaW5mZXJlbmNlRkJvdW5kZWQoKSB7CiAgICAgLy8gUmVncmVzc2lvbiBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2OTkwCiAgICAgdmFyIHVuaXQgPSBjaGVja0ZpbGUoJycnCkBAIC0yNTA4LDYgKzI1MTgsNDIgQEAKICAgJycnKTsKICAgfQogCisgIHZvaWQgdGVzdF9pbmZlckxvY2FsRnVuY3Rpb25SZXR1cm5UeXBlKCkgeworICAgIC8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2NDE0CisgICAgdmFyIHVuaXQgPSBjaGVja0ZpbGUocicnJworbWFpbigpIHsKKyAgZjAoKSA9PiA0MjsKKyAgZjEoKSBhc3luYyA9PiA0MjsKKworICBmMiAvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oKSB7IHJldHVybiA0MjsgfQorICBmMyAvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oKSBhc3luYyB7IHJldHVybiA0MjsgfQorICBmNCAvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oKSBzeW5jKiB7IHlpZWxkIDQyOyB9CisgIGY1IC8qaW5mbzpJTkZFUlJFRF9UWVBFX0NMT1NVUkUqLygpIGFzeW5jKiB7IHlpZWxkIDQyOyB9CisKKyAgbnVtIGY2KCkgPT4gNDI7CisKKyAgZjcoKSA9PiBmNygpOworICBmOCgpID0+IC8qZXJyb3I6UkVGRVJFTkNFRF9CRUZPUkVfREVDTEFSQVRJT04qL2Y5KCk7CisgIGY5KCkgPT4gZjUoKTsKK30KKycnJyk7CisgICAgdmFyIGZucyA9IHVuaXQuZnVuY3Rpb25zWzBdLmZ1bmN0aW9uczsKKyAgICBleHBlY3QoZm5zWzBdLnR5cGUudG9TdHJpbmcoKSwgJygpIOKGkiBpbnQnKTsKKyAgICBleHBlY3QoZm5zWzFdLnR5cGUudG9TdHJpbmcoKSwgJygpIOKGkiBGdXR1cmU8aW50PicpOworCisgICAgZXhwZWN0KGZuc1syXS50eXBlLnRvU3RyaW5nKCksICcoKSDihpIgaW50Jyk7CisgICAgZXhwZWN0KGZuc1szXS50eXBlLnRvU3RyaW5nKCksICcoKSDihpIgRnV0dXJlPGludD4nKTsKKyAgICBleHBlY3QoZm5zWzRdLnR5cGUudG9TdHJpbmcoKSwgJygpIOKGkiBJdGVyYWJsZTxpbnQ+Jyk7CisgICAgZXhwZWN0KGZuc1s1XS50eXBlLnRvU3RyaW5nKCksICcoKSDihpIgU3RyZWFtPGludD4nKTsKKworICAgIGV4cGVjdChmbnNbNl0udHlwZS50b1N0cmluZygpLCAnKCkg4oaSIG51bScpOworCisgICAgLy8gUmVjdXJzaXZlIGNhc2VzOiB0aGVzZSBpbmZlciBpbiBkZWNsYXJhdGlvbiBvcmRlci4KKyAgICBleHBlY3QoZm5zWzddLnR5cGUudG9TdHJpbmcoKSwgJygpIOKGkiBkeW5hbWljJyk7CisgICAgZXhwZWN0KGZuc1s4XS50eXBlLnRvU3RyaW5nKCksICcoKSDihpIgZHluYW1pYycpOworICAgIGV4cGVjdChmbnNbOV0udHlwZS50b1N0cmluZygpLCAnKCkg4oaSIFN0cmVhbTxpbnQ+Jyk7CisgIH0KKwogICB2b2lkIHRlc3RfaW5mZXJyZWRfbm9uc3RhdGljX2ZpZWxkX2RlcGVuZHNfb25fc3RhdGljX2ZpZWxkX2NvbXBsZXgoKSB7CiAgICAgdmFyIG1haW5Vbml0ID0gY2hlY2tGaWxlKCcnJwogY2xhc3MgQyB7CkBAIC0zNjE2LDYgKzM2NjIsMjMgQEAKICcnJyk7CiAgIH0KIAorICB2b2lkIHRlc3RfbnVsbENvYWxlc2NpbmdPcGVyYXRvcigpIHsKKyAgICAvLyBSZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2RrL2lzc3Vlcy8yNjU1MgorICAgIGNoZWNrRmlsZShyJycnCitMaXN0PGludD4geDsKK3ZhciB5ID0geCA/PyAvKmluZm86SU5GRVJSRURfVFlQRV9MSVRFUkFMKi9bXTsKK0xpc3Q8aW50PiB6ID0geTsKKyAgICAnJycpOworICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGNvbnRleHQgdHlwZS4KKyAgICB2YXIgdW5pdCA9IGNoZWNrRmlsZShyJycnCitMaXN0PGludD4geDsKK0xpc3Q8bnVtPiB5ID0geCA/PyAvKmluZm86SU5GRVJSRURfVFlQRV9MSVRFUkFMKi9bXTsKKyAgICAnJycpOworCisgICAgZXhwZWN0KHVuaXQudG9wTGV2ZWxWYXJpYWJsZXNbMV0uaW5pdGlhbGl6ZXIucmV0dXJuVHlwZS50b1N0cmluZygpLAorICAgICAgICAnTGlzdDxudW0+Jyk7CisgIH0KKwogICB2b2lkIHRlc3RfbnVsbExpdGVyYWxTaG91bGROb3RJbmZlckFzQm90dG9tKCkgewogICAgIC8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9kZXZfY29tcGlsZXIvaXNzdWVzLzQ3CiAgICAgY2hlY2tGaWxlKHInJycKQEAgLTM5MDYsMTAgKzM5NjksOSBAQAogICB9CiAKICAgdm9pZCB0ZXN0X3Vuc2FmZUJsb2NrQ2xvc3VyZUluZmVyZW5jZV9jbG9zdXJlQ2FsbCgpIHsKLSAgICAvLyBOb3RlOiB0aGlzIGlzIGEgRFlOQU1JQ19JTlZPS0UgZHVlIHRvIGRhcnRidWcuY29tLzI2OTYyLgorICAgIC8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2RhcnQtbGFuZy9zZGsvaXNzdWVzLzI2OTYyCiAgICAgdmFyIG1haW5Vbml0ID0gY2hlY2tGaWxlKCcnJwotdmFyIHYgPSAvKmluZm86RFlOQU1JQ19JTlZPS0UqLygoeCkgPT4gMS4wKSgKLSAgLyppbmZvOklORkVSUkVEX1RZUEVfQ0xPU1VSRSovKCkgeyByZXR1cm4gMTsgfSk7Cit2YXIgdiA9ICgoeCkgPT4gMS4wKSgvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oKSB7IHJldHVybiAxOyB9KTsKICcnJyk7CiAgICAgdmFyIHYgPSBtYWluVW5pdC50b3BMZXZlbFZhcmlhYmxlc1swXTsKICAgICBleHBlY3Qodi5uYW1lLCAndicpOwpAQCAtNDA3NSwxMSArNDEzNyw5IEBACiAgIH0KIAogICB2b2lkIHRlc3RfdW5zYWZlQmxvY2tDbG9zdXJlSW5mZXJlbmNlX2Z1bmN0aW9uQ2FsbF9ub1R5cGVQYXJhbV92aWFFeHByKCkgewotICAgIC8vIFRPRE8ocGF1bGJlcnJ5KTogd2h5IGlzIHRoZSBjYWxsIHRvIGYoKSBjb25zaWRlcmVkIGEgRFlOQU1JQ19JTlZPS0U/CiAgICAgdmFyIG1haW5Vbml0ID0gY2hlY2tGaWxlKCcnJwogZG91YmxlIGYoeCkgPT4gMS4wOwotdmFyIHYgPSAvKmluZm86RFlOQU1JQ19JTlZPS0UqLyhmKSgKLSAgLyppbmZvOklORkVSUkVEX1RZUEVfQ0xPU1VSRSovKCkgeyByZXR1cm4gMTsgfSk7Cit2YXIgdiA9IChmKSgvKmluZm86SU5GRVJSRURfVFlQRV9DTE9TVVJFKi8oKSB7IHJldHVybiAxOyB9KTsKICcnJyk7CiAgICAgdmFyIHYgPSBtYWluVW5pdC50b3BMZXZlbFZhcmlhYmxlc1swXTsKICAgICBleHBlY3Qodi5uYW1lLCAndicpOwpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3Rhc2svc3Ryb25nL25vbl9udWxsX2NoZWNrZXJfdGVzdC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rlc3Qvc3JjL3Rhc2svc3Ryb25nL25vbl9udWxsX2NoZWNrZXJfdGVzdC5kYXJ0CmluZGV4IGFjMDU2YzIuLmU1ZmE3YzYgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplci90ZXN0L3NyYy90YXNrL3N0cm9uZy9ub25fbnVsbF9jaGVja2VyX3Rlc3QuZGFydAorKysgYi9wa2cvYW5hbHl6ZXIvdGVzdC9zcmMvdGFzay9zdHJvbmcvbm9uX251bGxfY2hlY2tlcl90ZXN0LmRhcnQKQEAgLTQ4LDExICs0OCwxNyBAQAogICAgIGNoZWNrRmlsZSgnaW50IHggPSBudWxsOycpOwogICB9CiAKLSAgdm9pZCB0ZXN0X25vbm51bGxhYmxlVHlwZXMoKSB7Ci0gICAgLy8gSWYgYGludGBzIGFyZSBub24tbnVsbGFibGUsIHRoZW4gdGhpcyBjb2RlIHNob3VsZCB0aHJvdyBhbiBlcnJvci4KLSAgICBhZGRGaWxlKCdpbnQgeDsnKTsKKyAgdm9pZCB0ZXN0X2luaXRpYWxpemVfbm9ubnVsbGFibGVfd2l0aF9udWxsKCkgewogICAgIGFkZEZpbGUoJ2ludCB4ID0gLyplcnJvcjpJTlZBTElEX0FTU0lHTk1FTlQqL251bGw7Jyk7CisgICAgY2hlY2sobm9ubnVsbGFibGVUeXBlczogPFN0cmluZz5bJ2RhcnQ6Y29yZSxpbnQnXSk7CisgIH0KKworICB2b2lkIHRlc3RfaW5pdGlhbGl6ZV9ub25udWxsYWJsZV93aXRoX3ZhbGlkX3ZhbHVlKCkgewogICAgIGFkZEZpbGUoJ2ludCB4ID0gMDsnKTsKKyAgICBjaGVjayhub25udWxsYWJsZVR5cGVzOiA8U3RyaW5nPlsnZGFydDpjb3JlLGludCddKTsKKyAgfQorCisgIHZvaWQgdGVzdF9hc3NpZ25fbnVsbF90b19ub25udWxsYWJsZSgpIHsKICAgICBhZGRGaWxlKCcnJwogaW50IHggPSAwOwogCkBAIC02Myw0ICs2OSwxMTkgQEAKICcnJyk7CiAgICAgY2hlY2sobm9ubnVsbGFibGVUeXBlczogPFN0cmluZz5bJ2RhcnQ6Y29yZSxpbnQnXSk7CiAgIH0KKworICB2b2lkIHRlc3RfdW5pbml0aWFsaXplZF9ub25udWxsYWJsZV9sb2NhbF92YXJpYWJsZSgpIHsKKyAgICAvLyBJZGVhbGx5LCB3ZSB3aWxsIGRvIGZsb3cgYW5hbHlzaXMgYW5kIHRocm93IGFuIGVycm9yIG9ubHkgaWYgYSB2YXJpYWJsZQorICAgIC8vIGlzIHVzZWQgYmVmb3JlIGl0IGhhcyBiZWVuIGluaXRpYWxpemVkLgorICAgIGFkZEZpbGUoJ21haW4oKSB7IGludCAvKmVycm9yOk5PTl9OVUxMQUJMRV9GSUVMRF9OT1RfSU5JVElBTElaRUQqL3g7IH0nKTsKKyAgICBjaGVjayhub25udWxsYWJsZVR5cGVzOiA8U3RyaW5nPlsnZGFydDpjb3JlLGludCddKTsKKyAgfQorCisgIHZvaWQgdGVzdF91bmluaXRpYWxpemVkX25vbm51bGxhYmxlX3RvcF9sZXZlbF92YXJpYWJsZV9kZWNsYXJhdGlvbigpIHsKKyAgICAvLyBJZiBgaW50YHMgYXJlIG5vbi1udWxsYWJsZSwgdGhlbiB0aGlzIGNvZGUgc2hvdWxkIHRocm93IGFuIGVycm9yLgorICAgIGFkZEZpbGUoJ2ludCAvKmVycm9yOk5PTl9OVUxMQUJMRV9GSUVMRF9OT1RfSU5JVElBTElaRUQqL3g7Jyk7CisgICAgY2hlY2sobm9ubnVsbGFibGVUeXBlczogPFN0cmluZz5bJ2RhcnQ6Y29yZSxpbnQnXSk7CisgIH0KKworICB2b2lkIHRlc3RfdW5pbml0aWFsaXplZF9ub25udWxsYWJsZV9maWVsZF9kZWNsYXJhdGlvbigpIHsKKyAgICBhZGRGaWxlKCcnJwordm9pZCBmb28oKSB7fQorCitjbGFzcyBBIHsKKyAgLy8gSWRlYWxseSwgd2Ugc2hvdWxkIGFsbG93IHggdG8gYmUgaW5pdCBpbiB0aGUgY29uc3RydWN0b3IsIGJ1dCB0aGF0IHJlcXVpcmVzCisgIC8vIHRvbyBtdWNoIGNvbXBsaWNhdGlvbiBpbiB0aGUgY2hlY2tlciwgc28gZm9yIG5vdyB3ZSB0aHJvdyBhIHN0YXRpYyBlcnJvciBhdAorICAvLyB0aGUgZGVjbGFyYXRpb24gc2l0ZS4KKyAgaW50IC8qZXJyb3I6Tk9OX05VTExBQkxFX0ZJRUxEX05PVF9JTklUSUFMSVpFRCoveDsKKworICBBKCk7Cit9CisnJycpOworICAgIGNoZWNrKG5vbm51bGxhYmxlVHlwZXM6IDxTdHJpbmc+WydkYXJ0OmNvcmUsaW50J10pOworICB9CisKKyAgdm9pZCB0ZXN0X3ByZWZlcl9maW5hbF90b19ub25fbnVsbGFibGVfZXJyb3IoKSB7CisgICAgYWRkRmlsZSgnbWFpbigpIHsgZmluYWwgaW50IC8qZXJyb3I6RklOQUxfTk9UX0lOSVRJQUxJWkVEKi94OyB9Jyk7CisgICAgYWRkRmlsZSgnZmluYWwgaW50IC8qZXJyb3I6RklOQUxfTk9UX0lOSVRJQUxJWkVEKi94OycpOworICAgIGFkZEZpbGUoJycnCit2b2lkIGZvbygpIHt9CisKK2NsYXNzIEEgeworICBmaW5hbCBpbnQgeDsKKworICAvKndhcm5pbmc6RklOQUxfTk9UX0lOSVRJQUxJWkVEX0NPTlNUUlVDVE9SXzEqL0EoKTsKK30KKycnJyk7CisgICAgY2hlY2sobm9ubnVsbGFibGVUeXBlczogPFN0cmluZz5bJ2RhcnQ6Y29yZSxpbnQnXSk7CisgIH0KKworICAvLyBEZWZhdWx0IGV4YW1wbGUgZnJvbSBOTkJEIGRvY3VtZW50LgorICBmaW5hbCBTdHJpbmcgZGVmYXVsdE5uYmRFeGFtcGxlID0gJycnCitjbGFzcyBQb2ludCB7CisgIGZpbmFsIGludCB4LCB5OworICBQb2ludCh0aGlzLngsIHRoaXMueSk7CisgIFBvaW50IG9wZXJhdG9yICsoUG9pbnQgb3RoZXIpID0+IG5ldyBQb2ludCh4ICsgb3RoZXIueCwgeSArIG90aGVyLnkpOworICBTdHJpbmcgdG9TdHJpbmcoKSA9PiAieDogXCR4LCB5OiBcJHkiOworfQorCit2b2lkIG1haW4oKSB7CisgIFBvaW50IHAxID0gbmV3IFBvaW50KDAsIDApOworICBQb2ludCBwMiA9IG5ldyBQb2ludCgxMCwgMTApOworICBwcmludCgicDEgKyBwMiA9IFwke3AxICsgcDJ9Iik7Cit9CisnJyc7CisKKyAgZmluYWwgU3RyaW5nIGRlZmF1bHRObmJkRXhhbXBsZU1vZDEgPSAnJycKK2NsYXNzIFBvaW50IHsKKyAgZmluYWwgaW50IHgsIHk7CisgIFBvaW50KHRoaXMueCwgdGhpcy55KTsKKyAgUG9pbnQgb3BlcmF0b3IgKyhQb2ludCBvdGhlcikgPT4gbmV3IFBvaW50KHggKyBvdGhlci54LCB5ICsgb3RoZXIueSk7CisgIFN0cmluZyB0b1N0cmluZygpID0+ICJ4OiBcJHgsIHk6IFwkeSI7Cit9CisKK3ZvaWQgbWFpbigpIHsKKyAgUG9pbnQgcDEgPSBuZXcgUG9pbnQoMCwgMCk7CisgIFBvaW50IHAyID0gbmV3IFBvaW50KDEwLCAvKmJvb20qL251bGwpOyAvLyBDaGFuZ2UgaGVyZS4KKyAgcHJpbnQoInAxICsgcDIgPSBcJHtwMSArIHAyfSIpOworfQorJycnOworCisgIGZpbmFsIFN0cmluZyBkZWZhdWx0Tm5iZEV4YW1wbGVNb2QyID0gJycnCitjbGFzcyBQb2ludCB7CisgIGZpbmFsIGludCB4LCB5OworICBQb2ludCh0aGlzLngsIHRoaXMueSk7CisgIFBvaW50IG9wZXJhdG9yICsoUG9pbnQgb3RoZXIpID0+IG5ldyBQb2ludCh4ICsgb3RoZXIueCwgeSArIG90aGVyLnkpOworICBTdHJpbmcgdG9TdHJpbmcoKSA9PiAieDogXCR4LCB5OiBcJHkiOworfQorCit2b2lkIG1haW4oKSB7CisgIGJvb2wgZiA9IGZhbHNlOyAvLyBOZWNlc3NhcnksIGJlY2F1c2UgZGVhZCBjb2RlIGlzIG90aGVyd2lzZSBkZXRlY3RlZC4KKyAgUG9pbnQgcDEgPSBuZXcgUG9pbnQoMCwgMCk7CisgIFBvaW50IHAyID0gbmV3IFBvaW50KDEwLCAvKmJvb20qL2YgPyAxMCA6IG51bGwpOyAvLyBDaGFuZ2UgaGVyZS4KKyAgcHJpbnQoInAxICsgcDIgPSBcJHtwMSArIHAyfSIpOworfQorJycnOworCisgIHZvaWQgdGVzdF9udWxsYWJsZV9maWVsZHMoKSB7CisgICAgYWRkRmlsZShkZWZhdWx0Tm5iZEV4YW1wbGUpOworICAgIC8vIGBudWxsYCBjYW4gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGBQb2ludGAgaW4gZGVmYXVsdCBtb2RlLgorICAgIGFkZEZpbGUoZGVmYXVsdE5uYmRFeGFtcGxlTW9kMSk7CisgICAgLy8gQSBudWxsYWJsZSBleHByZXNzaW9uIGNhbiBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gYFBvaW50YCBpbiBkZWZhdWx0CisgICAgLy8gbW9kZS4KKyAgICBhZGRGaWxlKGRlZmF1bHRObmJkRXhhbXBsZU1vZDIpOworICAgIGNoZWNrKCk7CisgIH0KKworICB2b2lkIHRlc3Rfbm9ubnVsbGFibGVfZmllbGRzKCkgeworICAgIGFkZEZpbGUoZGVmYXVsdE5uYmRFeGFtcGxlKTsKKyAgICAvLyBgbnVsbGAgY2FuIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBgUG9pbnRgIGluIGRlZmF1bHQgbW9kZS4KKyAgICBhZGRGaWxlKF93aXRoRXJyb3IoZGVmYXVsdE5uYmRFeGFtcGxlTW9kMSwgImVycm9yOklOVkFMSURfQVNTSUdOTUVOVCIpKTsKKyAgICAvLyBBIG51bGxhYmxlIGV4cHJlc3Npb24gY2FuIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBgUG9pbnRgIGluIGRlZmF1bHQKKyAgICAvLyBtb2RlLgorICAgIGFkZEZpbGUoX3dpdGhFcnJvcihkZWZhdWx0Tm5iZEV4YW1wbGVNb2QyLCAiZXJyb3I6SU5WQUxJRF9BU1NJR05NRU5UIikpOworICAgIGNoZWNrKG5vbm51bGxhYmxlVHlwZXM6IDxTdHJpbmc+WydkYXJ0OmNvcmUsaW50J10pOworICB9Cit9CisKK1N0cmluZyBfd2l0aEVycm9yKFN0cmluZyBmaWxlLCBTdHJpbmcgZXJyb3IpIHsKKyAgcmV0dXJuICgiIiArIGZpbGUpLnJlcGxhY2VGaXJzdCgiYm9vbSIsIGVycm9yKTsKIH0KZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplci90b29sL3N1bW1hcnkvZ2VuZXJhdGUuZGFydCBiL3BrZy9hbmFseXplci90b29sL3N1bW1hcnkvZ2VuZXJhdGUuZGFydAppbmRleCA4NjliMzhkLi4xMjRhNmI4IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdG9vbC9zdW1tYXJ5L2dlbmVyYXRlLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyL3Rvb2wvc3VtbWFyeS9nZW5lcmF0ZS5kYXJ0CkBAIC00NTEsNiArNDUxLDcgQEAKICAgICBvdXQoImltcG9ydCAnZmxhdF9idWZmZXJzLmRhcnQnIGFzIGZiOyIpOwogICAgIG91dCgiaW1wb3J0ICdpZGwuZGFydCcgYXMgaWRsOyIpOwogICAgIG91dCgiaW1wb3J0ICdkYXJ0OmNvbnZlcnQnIGFzIGNvbnZlcnQ7Iik7CisgICAgb3V0KCJpbXBvcnQgJ2FwaV9zaWduYXR1cmUuZGFydCcgYXMgYXBpX3NpZzsiKTsKICAgICBvdXQoKTsKICAgICBmb3IgKGlkbE1vZGVsLkVudW1EZWNsYXJhdGlvbiBlbm0gaW4gX2lkbC5lbnVtcy52YWx1ZXMpIHsKICAgICAgIF9nZW5lcmF0ZUVudW1SZWFkZXIoZW5tKTsKQEAgLTYxOCw2ICs2MTksNDQgQEAKICAgICAgICAgfSk7CiAgICAgICAgIG91dCgnfScpOwogICAgICAgfQorICAgICAgLy8gR2VuZXJhdGUgY29sbGVjdEFwaVNpZ25hdHVyZSgpLgorICAgICAgeworICAgICAgICBvdXQoKTsKKyAgICAgICAgb3V0KCcvKionKTsKKyAgICAgICAgb3V0KCcgKiBBY2N1bXVsYXRlIG5vbi1baW5mb3JtYXRpdmVdIGRhdGEgaW50byBbc2lnbmF0dXJlXS4nKTsKKyAgICAgICAgb3V0KCcgKi8nKTsKKyAgICAgICAgb3V0KCd2b2lkIGNvbGxlY3RBcGlTaWduYXR1cmUoYXBpX3NpZy5BcGlTaWduYXR1cmUgc2lnbmF0dXJlKSB7Jyk7CisgICAgICAgIGluZGVudCgoKSB7CisgICAgICAgICAgTGlzdDxpZGxNb2RlbC5GaWVsZERlY2xhcmF0aW9uPiBzb3J0ZWRGaWVsZHMgPSBjbHMuZmllbGRzLnRvTGlzdCgpCisgICAgICAgICAgICAuLnNvcnQoKGlkbE1vZGVsLkZpZWxkRGVjbGFyYXRpb24gYSwgaWRsTW9kZWwuRmllbGREZWNsYXJhdGlvbiBiKSA9PgorICAgICAgICAgICAgICAgIGEuaWQuY29tcGFyZVRvKGIuaWQpKTsKKyAgICAgICAgICBmb3IgKGlkbE1vZGVsLkZpZWxkRGVjbGFyYXRpb24gZmllbGQgaW4gc29ydGVkRmllbGRzKSB7CisgICAgICAgICAgICBpZiAoZmllbGQuaXNJbmZvcm1hdGl2ZSkgeworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyByZWYgPSAndGhpcy5fJHtmaWVsZC5uYW1lfSc7CisgICAgICAgICAgICBpZiAoZmllbGQudHlwZS5pc0xpc3QpIHsKKyAgICAgICAgICAgICAgb3V0KCdpZiAoJHJlZiA9PSBudWxsKSB7Jyk7CisgICAgICAgICAgICAgIGluZGVudCgoKSB7CisgICAgICAgICAgICAgICAgb3V0KCdzaWduYXR1cmUuYWRkSW50KDApOycpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgb3V0KCd9IGVsc2UgeycpOworICAgICAgICAgICAgICBpbmRlbnQoKCkgeworICAgICAgICAgICAgICAgIG91dCgnc2lnbmF0dXJlLmFkZEludCgkcmVmLmxlbmd0aCk7Jyk7CisgICAgICAgICAgICAgICAgb3V0KCdmb3IgKHZhciB4IGluICRyZWYpIHsnKTsKKyAgICAgICAgICAgICAgICBpbmRlbnQoKCkgeworICAgICAgICAgICAgICAgICAgX2dlbmVyYXRlU2lnbmF0dXJlQ2FsbChmaWVsZC50eXBlLnR5cGVOYW1lLCAneCcsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBvdXQoJ30nKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIG91dCgnfScpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgX2dlbmVyYXRlU2lnbmF0dXJlQ2FsbChmaWVsZC50eXBlLnR5cGVOYW1lLCByZWYsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIG91dCgnfScpOworICAgICAgfQogICAgICAgLy8gR2VuZXJhdGUgZmluaXNoLgogICAgICAgaWYgKGNscy5pc1RvcExldmVsKSB7CiAgICAgICAgIG91dCgpOwpAQCAtODIwLDcgKzg1OSw4IEBACiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgb3V0KCckcmV0dXJuVHlwZSBnZXQgJGZpZWxkTmFtZSB7Jyk7CiAgICAgICAgICAgaW5kZW50KCgpIHsKLSAgICAgICAgICAgIFN0cmluZyByZWFkRXhwciA9ICckcmVhZENvZGUudlRhYmxlR2V0KF9iYywgX2JjT2Zmc2V0LCAkaW5kZXgsICRkZWYpJzsKKyAgICAgICAgICAgIFN0cmluZyByZWFkRXhwciA9CisgICAgICAgICAgICAgICAgJyRyZWFkQ29kZS52VGFibGVHZXQoX2JjLCBfYmNPZmZzZXQsICRpbmRleCwgJGRlZiknOwogICAgICAgICAgICAgb3V0KCdfJGZpZWxkTmFtZSA/Pz0gJHJlYWRFeHByOycpOwogICAgICAgICAgICAgb3V0KCdyZXR1cm4gXyRmaWVsZE5hbWU7Jyk7CiAgICAgICAgICAgfSk7CkBAIC05MTgsNiArOTU4LDU2IEBACiAgIH0KIAogICAvKioKKyAgICogR2VuZXJhdGUgYSBjYWxsIHRvIHRoZSBhcHByb3ByaWF0ZSBtZXRob2Qgb2YgW0FwaVNpZ25hdHVyZV0gZm9yIHRoZSB0eXBlCisgICAqIFt0eXBlTmFtZV0sIHVzaW5nIHRoZSBkYXRhIG5hbWVkIGJ5IFtyZWZdLiAgSWYgW2NvdWxkQmVOdWxsXSBpcyBgdHJ1ZWAsCisgICAqIGdlbmVyYXRlIGNvZGUgdG8gaGFuZGxlIHRoZSBwb3NzaWJpbGl0eSB0aGF0IFtyZWZdIGlzIGBudWxsYCAoc3Vic3RpdHV0aW5nCisgICAqIGluIHRoZSBhcHByb3ByaWF0ZSBkZWZhdWx0IHZhbHVlKS4KKyAgICovCisgIHZvaWQgX2dlbmVyYXRlU2lnbmF0dXJlQ2FsbChTdHJpbmcgdHlwZU5hbWUsIFN0cmluZyByZWYsIGJvb2wgY291bGRCZU51bGwpIHsKKyAgICBpZiAoX2lkbC5lbnVtcy5jb250YWluc0tleSh0eXBlTmFtZSkpIHsKKyAgICAgIGlmIChjb3VsZEJlTnVsbCkgeworICAgICAgICBvdXQoJ3NpZ25hdHVyZS5hZGRJbnQoJHJlZiA9PSBudWxsID8gMCA6ICRyZWYuaW5kZXgpOycpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0KCdzaWduYXR1cmUuYWRkSW50KCRyZWYuaW5kZXgpOycpOworICAgICAgfQorICAgIH0gZWxzZSBpZiAoX2lkbC5jbGFzc2VzLmNvbnRhaW5zS2V5KHR5cGVOYW1lKSkgeworICAgICAgaWYgKGNvdWxkQmVOdWxsKSB7CisgICAgICAgIG91dCgnc2lnbmF0dXJlLmFkZEJvb2woJHJlZiAhPSBudWxsKTsnKTsKKyAgICAgIH0KKyAgICAgIG91dCgnJHJlZj8uY29sbGVjdEFwaVNpZ25hdHVyZShzaWduYXR1cmUpOycpOworICAgIH0gZWxzZSB7CisgICAgICBzd2l0Y2ggKHR5cGVOYW1lKSB7CisgICAgICAgIGNhc2UgJ1N0cmluZyc6CisgICAgICAgICAgaWYgKGNvdWxkQmVOdWxsKSB7CisgICAgICAgICAgICByZWYgKz0gIiA/PyAnJyI7CisgICAgICAgICAgfQorICAgICAgICAgIG91dCgic2lnbmF0dXJlLmFkZFN0cmluZygkcmVmKTsiKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnaW50JzoKKyAgICAgICAgICBpZiAoY291bGRCZU51bGwpIHsKKyAgICAgICAgICAgIHJlZiArPSAnID8/IDAnOworICAgICAgICAgIH0KKyAgICAgICAgICBvdXQoJ3NpZ25hdHVyZS5hZGRJbnQoJHJlZik7Jyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2Jvb2wnOgorICAgICAgICAgIGlmIChjb3VsZEJlTnVsbCkgeworICAgICAgICAgICAgcmVmICs9ICcgPT0gdHJ1ZSc7CisgICAgICAgICAgfQorICAgICAgICAgIG91dCgnc2lnbmF0dXJlLmFkZEJvb2woJHJlZik7Jyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2RvdWJsZSc6CisgICAgICAgICAgaWYgKGNvdWxkQmVOdWxsKSB7CisgICAgICAgICAgICByZWYgKz0gJyA/PyAwLjAnOworICAgICAgICAgIH0KKyAgICAgICAgICBvdXQoJ3NpZ25hdHVyZS5hZGREb3VibGUoJHJlZik7Jyk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgdGhyb3cgIkRvbid0IGtub3cgaG93IHRvIGdlbmVyYXRlIHNpZ25hdHVyZSBjYWxsIGZvciAkdHlwZU5hbWUiOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKgogICAgKiBSZXR1cm4gdGhlIGRvY3VtZW50YXRpb24gdGV4dCBvZiB0aGUgZ2l2ZW4gW25vZGVdLCBvciBgbnVsbGAgaWYgdGhlIFtub2RlXQogICAgKiBkb2VzIG5vdCBoYXZlIGEgY29tbWVudC4gIEVhY2ggbGluZSBpcyBgXG5gIHNlcGFyYXRlZC4KICAgICovCmRpZmYgLS1naXQgYS9wa2cvYW5hbHl6ZXIvdG9vbC9zdW1tYXJ5L2lkbF9tb2RlbC5kYXJ0IGIvcGtnL2FuYWx5emVyL3Rvb2wvc3VtbWFyeS9pZGxfbW9kZWwuZGFydAppbmRleCAxOGI5ODFjLi4zNzVkY2IyIDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXIvdG9vbC9zdW1tYXJ5L2lkbF9tb2RlbC5kYXJ0CisrKyBiL3BrZy9hbmFseXplci90b29sL3N1bW1hcnkvaWRsX21vZGVsLmRhcnQKQEAgLTEyMyw2ICsxMjMsOSBAQAogICBmaW5hbCBib29sIGlzTGlzdDsKIAogICBGaWVsZFR5cGUodGhpcy50eXBlTmFtZSwgdGhpcy5pc0xpc3QpOworCisgIEBvdmVycmlkZQorICBTdHJpbmcgdG9TdHJpbmcoKSA9PiBpc0xpc3QgPyAnTGlzdDwkdHlwZU5hbWU+JyA6IHR5cGVOYW1lOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplcl9jbGkvbGliL3NyYy9idWlsZF9tb2RlLmRhcnQgYi9wa2cvYW5hbHl6ZXJfY2xpL2xpYi9zcmMvYnVpbGRfbW9kZS5kYXJ0CmluZGV4IDE4ODMzMTguLjZkMzU1NWYgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplcl9jbGkvbGliL3NyYy9idWlsZF9tb2RlLmRhcnQKKysrIGIvcGtnL2FuYWx5emVyX2NsaS9saWIvc3JjL2J1aWxkX21vZGUuZGFydApAQCAtMTAsNyArMTAsNiBAQAogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL2RhcnQvYXN0L2FzdC5kYXJ0JyBzaG93IENvbXBpbGF0aW9uVW5pdDsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9kYXJ0L2VsZW1lbnQvZWxlbWVudC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9maWxlX3N5c3RlbS9maWxlX3N5c3RlbS5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9maWxlX3N5c3RlbS9waHlzaWNhbF9maWxlX3N5c3RlbS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2VuZ2luZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2Vycm9yLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9nZW5lcmF0ZWQvamF2YV9pby5kYXJ0JzsKQEAgLTM5LDIzICszOCwyNiBAQAogICBmaW5hbCBTdHJpbmdCdWZmZXIgZXJyb3JCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CiAgIGZpbmFsIFN0cmluZ0J1ZmZlciBvdXRCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CiAKKyAgZmluYWwgUmVzb3VyY2VQcm92aWRlciByZXNvdXJjZVByb3ZpZGVyOwogICBmaW5hbCBTdHJpbmcgZGFydFNka1BhdGg7CiAKLSAgQW5hbHl6ZXJXb3JrZXJMb29wKFN5bmNXb3JrZXJDb25uZWN0aW9uIGNvbm5lY3Rpb24sIHt0aGlzLmRhcnRTZGtQYXRofSkKKyAgQW5hbHl6ZXJXb3JrZXJMb29wKHRoaXMucmVzb3VyY2VQcm92aWRlciwgU3luY1dvcmtlckNvbm5lY3Rpb24gY29ubmVjdGlvbiwKKyAgICAgIHt0aGlzLmRhcnRTZGtQYXRofSkKICAgICAgIDogc3VwZXIoY29ubmVjdGlvbjogY29ubmVjdGlvbik7CiAKLSAgZmFjdG9yeSBBbmFseXplcldvcmtlckxvb3Auc3RkKAorICBmYWN0b3J5IEFuYWx5emVyV29ya2VyTG9vcC5zdGQoUmVzb3VyY2VQcm92aWRlciByZXNvdXJjZVByb3ZpZGVyLAogICAgICAge2lvLlN0ZGluIHN0ZGluU3RyZWFtLCBpby5TdGRvdXQgc3Rkb3V0U3RyZWFtLCBTdHJpbmcgZGFydFNka1BhdGh9KSB7CiAgICAgU3luY1dvcmtlckNvbm5lY3Rpb24gY29ubmVjdGlvbiA9IG5ldyBTdGRTeW5jV29ya2VyQ29ubmVjdGlvbigKICAgICAgICAgc3RkaW5TdHJlYW06IHN0ZGluU3RyZWFtLCBzdGRvdXRTdHJlYW06IHN0ZG91dFN0cmVhbSk7Ci0gICAgcmV0dXJuIG5ldyBBbmFseXplcldvcmtlckxvb3AoY29ubmVjdGlvbiwgZGFydFNka1BhdGg6IGRhcnRTZGtQYXRoKTsKKyAgICByZXR1cm4gbmV3IEFuYWx5emVyV29ya2VyTG9vcChyZXNvdXJjZVByb3ZpZGVyLCBjb25uZWN0aW9uLAorICAgICAgICBkYXJ0U2RrUGF0aDogZGFydFNka1BhdGgpOwogICB9CiAKICAgLyoqCiAgICAqIFBlcmZvcm1zIGFuYWx5c2lzIHdpdGggZ2l2ZW4gW29wdGlvbnNdLgogICAgKi8KICAgdm9pZCBhbmFseXplKENvbW1hbmRMaW5lT3B0aW9ucyBvcHRpb25zKSB7Ci0gICAgbmV3IEJ1aWxkTW9kZShvcHRpb25zLCBuZXcgQW5hbHlzaXNTdGF0cygpKS5hbmFseXplKCk7CisgICAgbmV3IEJ1aWxkTW9kZShyZXNvdXJjZVByb3ZpZGVyLCBvcHRpb25zLCBuZXcgQW5hbHlzaXNTdGF0cygpKS5hbmFseXplKCk7CiAgICAgQW5hbHlzaXNFbmdpbmUuaW5zdGFuY2UuY2xlYXJDYWNoZXMoKTsKICAgfQogCkBAIC0xMjMsMTAgKzEyNSwxMCBAQAogICogQW5hbHl6ZXIgdXNlZCB3aGVuIHRoZSAiLS1idWlsZC1tb2RlIiBvcHRpb24gaXMgc3VwcGxpZWQuCiAgKi8KIGNsYXNzIEJ1aWxkTW9kZSB7CisgIGZpbmFsIFJlc291cmNlUHJvdmlkZXIgcmVzb3VyY2VQcm92aWRlcjsKICAgZmluYWwgQ29tbWFuZExpbmVPcHRpb25zIG9wdGlvbnM7CiAgIGZpbmFsIEFuYWx5c2lzU3RhdHMgc3RhdHM7CiAKLSAgZmluYWwgUmVzb3VyY2VQcm92aWRlciByZXNvdXJjZVByb3ZpZGVyID0gUGh5c2ljYWxSZXNvdXJjZVByb3ZpZGVyLklOU1RBTkNFOwogICBTdW1tYXJ5RGF0YVN0b3JlIHN1bW1hcnlEYXRhU3RvcmU7CiAgIEludGVybmFsQW5hbHlzaXNDb250ZXh0IGNvbnRleHQ7CiAgIE1hcDxVcmksIEphdmFGaWxlPiB1cmlUb0ZpbGVNYXA7CkBAIC0xMzYsNyArMTM4LDcgQEAKICAgZmluYWwgU2V0PFNvdXJjZT4gcHJvY2Vzc2VkU291cmNlcyA9IG5ldyBTZXQ8U291cmNlPigpOwogICBmaW5hbCBNYXA8VXJpLCBVbmxpbmtlZFVuaXQ+IHVyaVRvVW5pdCA9IDxVcmksIFVubGlua2VkVW5pdD57fTsKIAotICBCdWlsZE1vZGUodGhpcy5vcHRpb25zLCB0aGlzLnN0YXRzKTsKKyAgQnVpbGRNb2RlKHRoaXMucmVzb3VyY2VQcm92aWRlciwgdGhpcy5vcHRpb25zLCB0aGlzLnN0YXRzKTsKIAogICAvKioKICAgICogUGVyZm9ybSBwYWNrYWdlIGFuYWx5c2lzIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gW29wdGlvbnNdLgpAQCAtMjg1LDcgKzI4Nyw3IEBACiAgICAgXSk7CiAKICAgICAvLyBTZXQgY29udGV4dCBvcHRpb25zLgotICAgIERyaXZlci5zZXRBbmFseXNpc0NvbnRleHRPcHRpb25zKGNvbnRleHQsIG9wdGlvbnMsCisgICAgRHJpdmVyLnNldEFuYWx5c2lzQ29udGV4dE9wdGlvbnMocmVzb3VyY2VQcm92aWRlciwgY29udGV4dCwgb3B0aW9ucywKICAgICAgICAgKEFuYWx5c2lzT3B0aW9uc0ltcGwgY29udGV4dE9wdGlvbnMpIHsKICAgICAgIGlmIChvcHRpb25zLmJ1aWxkU3VtbWFyeU9ubHlEaWV0KSB7CiAgICAgICAgIGNvbnRleHRPcHRpb25zLmFuYWx5emVGdW5jdGlvbkJvZGllcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvcGtnL2FuYWx5emVyX2NsaS9saWIvc3JjL2RyaXZlci5kYXJ0IGIvcGtnL2FuYWx5emVyX2NsaS9saWIvc3JjL2RyaXZlci5kYXJ0CmluZGV4IGRhMTE0MjYuLjljZGRmMGQgMTAwNjQ0Ci0tLSBhL3BrZy9hbmFseXplcl9jbGkvbGliL3NyYy9kcml2ZXIuZGFydAorKysgYi9wa2cvYW5hbHl6ZXJfY2xpL2xpYi9zcmMvZHJpdmVyLmRhcnQKQEAgLTEzLDExICsxMywxMiBAQAogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9vcHRpb25zLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3BsdWdpbi9yZXNvbHZlcl9wcm92aWRlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvYW5hbHlzaXNfb3B0aW9uc19wcm92aWRlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvZW1iZWRkZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc291cmNlL3BhY2thZ2VfbWFwX3Byb3ZpZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9wYWNrYWdlX21hcF9yZXNvbHZlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zb3VyY2UvcHViX3BhY2thZ2VfbWFwX3Byb3ZpZGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NvdXJjZS9zZGtfZXh0LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9jb250ZXh0L2J1aWxkZXIuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXIvc3JjL2RhcnQvc2RrL3Nkay5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphbmFseXplci9zcmMvZ2VuZXJhdGVkL2NvbnN0YW50LmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9nZW5lcmF0ZWQvZW5naW5lLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyL3NyYy9nZW5lcmF0ZWQvZXJyb3IuZGFydCc7CkBAIC05NCw2ICs5NSwxMiBAQAogICAvLy8gU0RLIGluc3RhbmNlLgogICBEYXJ0U2RrIHNkazsKIAorICAvKioKKyAgICogVGhlIHJlc291cmNlIHByb3ZpZGVyIHVzZWQgdG8gYWNjZXNzIHRoZSBmaWxlIHN5c3RlbS4KKyAgICovCisgIGZpbGVfc3lzdGVtLlJlc291cmNlUHJvdmlkZXIgcmVzb3VyY2VQcm92aWRlciA9CisgICAgICBQaHlzaWNhbFJlc291cmNlUHJvdmlkZXIuSU5TVEFOQ0U7CisKICAgLy8vIENvbGxlY3RlZCBhbmFseXNpcyBzdGF0aXN0aWNzLgogICBmaW5hbCBBbmFseXNpc1N0YXRzIHN0YXRzID0gbmV3IEFuYWx5c2lzU3RhdHMoKTsKIApAQCAtMjQ1LDkgKzI1MiwxMSBAQAogICBFcnJvclNldmVyaXR5IF9idWlsZE1vZGVBbmFseXplKENvbW1hbmRMaW5lT3B0aW9ucyBvcHRpb25zKSB7CiAgICAgcmV0dXJuIF9hbmFseXplQWxsVGFnLm1ha2VDdXJyZW50V2hpbGUoKCkgewogICAgICAgaWYgKG9wdGlvbnMuYnVpbGRNb2RlUGVyc2lzdGVudFdvcmtlcikgewotICAgICAgICBuZXcgQW5hbHl6ZXJXb3JrZXJMb29wLnN0ZChkYXJ0U2RrUGF0aDogb3B0aW9ucy5kYXJ0U2RrUGF0aCkucnVuKCk7CisgICAgICAgIG5ldyBBbmFseXplcldvcmtlckxvb3Auc3RkKHJlc291cmNlUHJvdmlkZXIsCisgICAgICAgICAgICAgICAgZGFydFNka1BhdGg6IG9wdGlvbnMuZGFydFNka1BhdGgpCisgICAgICAgICAgICAucnVuKCk7CiAgICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gbmV3IEJ1aWxkTW9kZShvcHRpb25zLCBzdGF0cykuYW5hbHl6ZSgpOworICAgICAgICByZXR1cm4gbmV3IEJ1aWxkTW9kZShyZXNvdXJjZVByb3ZpZGVyLCBvcHRpb25zLCBzdGF0cykuYW5hbHl6ZSgpOwogICAgICAgfQogICAgIH0pOwogICB9CkBAIC0zMzgsOCArMzQ3LDcgQEAKICAgICAgIE1hcDxmaWxlX3N5c3RlbS5Gb2xkZXIsIFlhbWxNYXA+IGVtYmVkZGVyTWFwLCBfUGFja2FnZUluZm8gcGFja2FnZUluZm8pIHsKICAgICAvLyBDcmVhdGUgYSBjdXN0b20gcGFja2FnZSByZXNvbHZlciBpZiBvbmUgaGFzIGJlZW4gc3BlY2lmaWVkLgogICAgIGlmIChwYWNrYWdlUmVzb2x2ZXJQcm92aWRlciAhPSBudWxsKSB7Ci0gICAgICBmaWxlX3N5c3RlbS5Gb2xkZXIgZm9sZGVyID0KLSAgICAgICAgICBQaHlzaWNhbFJlc291cmNlUHJvdmlkZXIuSU5TVEFOQ0UuZ2V0UmVzb3VyY2UoJy4nKTsKKyAgICAgIGZpbGVfc3lzdGVtLkZvbGRlciBmb2xkZXIgPSByZXNvdXJjZVByb3ZpZGVyLmdldFJlc291cmNlKCcuJyk7CiAgICAgICBVcmlSZXNvbHZlciByZXNvbHZlciA9IHBhY2thZ2VSZXNvbHZlclByb3ZpZGVyKGZvbGRlcik7CiAgICAgICBpZiAocmVzb2x2ZXIgIT0gbnVsbCkgewogICAgICAgICBVcmlSZXNvbHZlciBzZGtSZXNvbHZlciA9IG5ldyBEYXJ0VXJpUmVzb2x2ZXIoc2RrKTsKQEAgLTM0OCw3ICszNTYsNyBAQAogICAgICAgICBMaXN0PFVyaVJlc29sdmVyPiByZXNvbHZlcnMgPSA8VXJpUmVzb2x2ZXI+WwogICAgICAgICAgIHNka1Jlc29sdmVyLAogICAgICAgICAgIHJlc29sdmVyLAotICAgICAgICAgIG5ldyBmaWxlX3N5c3RlbS5SZXNvdXJjZVVyaVJlc29sdmVyKFBoeXNpY2FsUmVzb3VyY2VQcm92aWRlci5JTlNUQU5DRSkKKyAgICAgICAgICBuZXcgZmlsZV9zeXN0ZW0uUmVzb3VyY2VVcmlSZXNvbHZlcihyZXNvdXJjZVByb3ZpZGVyKQogICAgICAgICBdOwogICAgICAgICByZXR1cm4gbmV3IFNvdXJjZUZhY3RvcnkocmVzb2x2ZXJzKTsKICAgICAgIH0KQEAgLTM2NCw5ICszNzIsOCBAQAogICAgICAgaWYgKHBhY2thZ2VJbmZvLnBhY2thZ2VNYXAgPT0gbnVsbCkgewogICAgICAgICAvLyBGYWxsIGJhY2sgdG8gcHViIGxpc3QtcGFja2FnZS1kaXJzLgogICAgICAgICBQdWJQYWNrYWdlTWFwUHJvdmlkZXIgcHViUGFja2FnZU1hcFByb3ZpZGVyID0KLSAgICAgICAgICAgIG5ldyBQdWJQYWNrYWdlTWFwUHJvdmlkZXIoUGh5c2ljYWxSZXNvdXJjZVByb3ZpZGVyLklOU1RBTkNFLCBzZGspOwotICAgICAgICBmaWxlX3N5c3RlbS5SZXNvdXJjZSBjd2QgPQotICAgICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZVByb3ZpZGVyLklOU1RBTkNFLmdldFJlc291cmNlKCcuJyk7CisgICAgICAgICAgICBuZXcgUHViUGFja2FnZU1hcFByb3ZpZGVyKHJlc291cmNlUHJvdmlkZXIsIHNkayk7CisgICAgICAgIGZpbGVfc3lzdGVtLlJlc291cmNlIGN3ZCA9IHJlc291cmNlUHJvdmlkZXIuZ2V0UmVzb3VyY2UoJy4nKTsKICAgICAgICAgUGFja2FnZU1hcEluZm8gcGFja2FnZU1hcEluZm8gPQogICAgICAgICAgICAgcHViUGFja2FnZU1hcFByb3ZpZGVyLmNvbXB1dGVQYWNrYWdlTWFwKGN3ZCk7CiAgICAgICAgIE1hcDxTdHJpbmcsIExpc3Q8ZmlsZV9zeXN0ZW0uRm9sZGVyPj4gcGFja2FnZU1hcCA9CkBAIC0zNzYsOCArMzgzLDggQEAKICAgICAgICAgLy8gSWYgaXQgZmFpbGVkLCB0aGF0J3Mgbm90IGEgcHJvYmxlbTsgaXQgc2ltcGx5IG1lYW5zIHdlIGhhdmUgbm8gd2F5CiAgICAgICAgIC8vIHRvIHJlc29sdmUgcGFja2FnZXMuCiAgICAgICAgIGlmIChwYWNrYWdlTWFwSW5mby5wYWNrYWdlTWFwICE9IG51bGwpIHsKLSAgICAgICAgICBwYWNrYWdlVXJpUmVzb2x2ZXIgPSBuZXcgUGFja2FnZU1hcFVyaVJlc29sdmVyKAotICAgICAgICAgICAgICBQaHlzaWNhbFJlc291cmNlUHJvdmlkZXIuSU5TVEFOQ0UsIHBhY2thZ2VNYXApOworICAgICAgICAgIHBhY2thZ2VVcmlSZXNvbHZlciA9CisgICAgICAgICAgICAgIG5ldyBQYWNrYWdlTWFwVXJpUmVzb2x2ZXIocmVzb3VyY2VQcm92aWRlciwgcGFja2FnZU1hcCk7CiAgICAgICAgIH0KICAgICAgIH0KICAgICB9CkBAIC0zODgsNyArMzk1LDcgQEAKICAgICAvLyAnZGFydDonIFVSSXMgY29tZSBmaXJzdC4KIAogICAgIC8vIFNldHVwIGVtYmVkZGluZy4KLSAgICBFbWJlZGRlclNkayBlbWJlZGRlclNkayA9IG5ldyBFbWJlZGRlclNkayhlbWJlZGRlck1hcCk7CisgICAgRW1iZWRkZXJTZGsgZW1iZWRkZXJTZGsgPSBuZXcgRW1iZWRkZXJTZGsocmVzb3VyY2VQcm92aWRlciwgZW1iZWRkZXJNYXApOwogICAgIGlmIChlbWJlZGRlclNkay5saWJyYXJ5TWFwLnNpemUoKSA9PSAwKSB7CiAgICAgICAvLyBUaGUgZW1iZWRkZXIgdXJpIHJlc29sdmVyIGhhcyBubyBtYXBwaW5ncy4gVXNlIHRoZSBkZWZhdWx0IERhcnQgU0RLCiAgICAgICAvLyB1cmkgcmVzb2x2ZXIuCkBAIC00MTAsOCArNDE3LDcgQEAKICAgICB9CiAKICAgICAvLyBGaW5hbGx5IGZpbGVzLgotICAgIHJlc29sdmVycy5hZGQoCi0gICAgICAgIG5ldyBmaWxlX3N5c3RlbS5SZXNvdXJjZVVyaVJlc29sdmVyKFBoeXNpY2FsUmVzb3VyY2VQcm92aWRlci5JTlNUQU5DRSkpOworICAgIHJlc29sdmVycy5hZGQobmV3IGZpbGVfc3lzdGVtLlJlc291cmNlVXJpUmVzb2x2ZXIocmVzb3VyY2VQcm92aWRlcikpOwogCiAgICAgcmV0dXJuIG5ldyBTb3VyY2VGYWN0b3J5KHJlc29sdmVycywgcGFja2FnZUluZm8ucGFja2FnZXMpOwogICB9CkBAIC00NzUsNyArNDgxLDcgQEAKIAogICAgIEFuYWx5emVGdW5jdGlvbkJvZGllc1ByZWRpY2F0ZSBkaWV0UGFyc2luZ1BvbGljeSA9CiAgICAgICAgIF9jaG9vc2VEaWV0UGFyc2luZ1BvbGljeShvcHRpb25zKTsKLSAgICBzZXRBbmFseXNpc0NvbnRleHRPcHRpb25zKF9jb250ZXh0LCBvcHRpb25zLAorICAgIHNldEFuYWx5c2lzQ29udGV4dE9wdGlvbnMocmVzb3VyY2VQcm92aWRlciwgX2NvbnRleHQsIG9wdGlvbnMsCiAgICAgICAgIChBbmFseXNpc09wdGlvbnNJbXBsIGNvbnRleHRPcHRpb25zKSB7CiAgICAgICBjb250ZXh0T3B0aW9ucy5hbmFseXplRnVuY3Rpb25Cb2RpZXNQcmVkaWNhdGUgPSBkaWV0UGFyc2luZ1BvbGljeTsKICAgICB9KTsKQEAgLTU0Niw4ICs1NTIsNyBAQAogICAgICAgcGFja2FnZU1hcCA9IF9QYWNrYWdlUm9vdFBhY2thZ2VNYXBCdWlsZGVyCiAgICAgICAgICAgLmJ1aWxkUGFja2FnZU1hcChvcHRpb25zLnBhY2thZ2VSb290UGF0aCk7CiAgICAgfSBlbHNlIHsKLSAgICAgIGZpbGVfc3lzdGVtLlJlc291cmNlIGN3ZCA9Ci0gICAgICAgICAgUGh5c2ljYWxSZXNvdXJjZVByb3ZpZGVyLklOU1RBTkNFLmdldFJlc291cmNlKCcuJyk7CisgICAgICBmaWxlX3N5c3RlbS5SZXNvdXJjZSBjd2QgPSByZXNvdXJjZVByb3ZpZGVyLmdldFJlc291cmNlKCcuJyk7CiAgICAgICAvLyBMb29rIGZvciAucGFja2FnZXMuCiAgICAgICBwYWNrYWdlcyA9IF9kaXNjb3ZlclBhY2thZ2VzcGVjKG5ldyBVcmkuZGlyZWN0b3J5KGN3ZC5wYXRoKSk7CiAgICAgICBwYWNrYWdlTWFwID0gX2dldFBhY2thZ2VNYXAocGFja2FnZXMpOwpAQCAtNTY0LDkgKzU2OSw3IEBACiAgICAgTWFwPFN0cmluZywgTGlzdDxmaWxlX3N5c3RlbS5Gb2xkZXI+PiBmb2xkZXJNYXAgPQogICAgICAgICBuZXcgTWFwPFN0cmluZywgTGlzdDxmaWxlX3N5c3RlbS5Gb2xkZXI+PigpOwogICAgIHBhY2thZ2VzLmFzTWFwKCkuZm9yRWFjaCgoU3RyaW5nIHBhY2thZ2VQYXRoLCBVcmkgdXJpKSB7Ci0gICAgICBmb2xkZXJNYXBbcGFja2FnZVBhdGhdID0gWwotICAgICAgICBQaHlzaWNhbFJlc291cmNlUHJvdmlkZXIuSU5TVEFOQ0UuZ2V0Rm9sZGVyKHBhdGguZnJvbVVyaSh1cmkpKQotICAgICAgXTsKKyAgICAgIGZvbGRlck1hcFtwYWNrYWdlUGF0aF0gPSBbcmVzb3VyY2VQcm92aWRlci5nZXRGb2xkZXIocGF0aC5mcm9tVXJpKHVyaSkpXTsKICAgICB9KTsKICAgICByZXR1cm4gZm9sZGVyTWFwOwogICB9CkBAIC02NTQsNiArNjU3LDcgQEAKICAgfQogCiAgIHN0YXRpYyB2b2lkIHNldEFuYWx5c2lzQ29udGV4dE9wdGlvbnMoCisgICAgICBmaWxlX3N5c3RlbS5SZXNvdXJjZVByb3ZpZGVyIHJlc291cmNlUHJvdmlkZXIsCiAgICAgICBBbmFseXNpc0NvbnRleHQgY29udGV4dCwKICAgICAgIENvbW1hbmRMaW5lT3B0aW9ucyBvcHRpb25zLAogICAgICAgdm9pZCBjb25maWd1cmVDb250ZXh0T3B0aW9ucyhBbmFseXNpc09wdGlvbnNJbXBsIGNvbnRleHRPcHRpb25zKSkgewpAQCAtNjc4LDcgKzY4Miw3IEBACiAgICAgY29udGV4dC5hbmFseXNpc09wdGlvbnMgPSBjb250ZXh0T3B0aW9uczsKIAogICAgIC8vIFByb2Nlc3MgYW5hbHlzaXMgb3B0aW9ucyBmaWxlIChhbmQgbm90aWZ5IGFsbCBpbnRlcmVzdGVkIHBhcnRpZXMpLgotICAgIF9wcm9jZXNzQW5hbHlzaXNPcHRpb25zKGNvbnRleHQsIG9wdGlvbnMpOworICAgIF9wcm9jZXNzQW5hbHlzaXNPcHRpb25zKHJlc291cmNlUHJvdmlkZXIsIGNvbnRleHQsIG9wdGlvbnMpOwogICB9CiAKICAgLy8vIFBlcmZvcm0gYSBkZWVwIGNvbXBhcmlzb24gb2YgdHdvIHN0cmluZyBtYXBzLgpAQCAtNjk0LDIxICs2OTgsMjMgQEAKICAgICByZXR1cm4gdHJ1ZTsKICAgfQogCi0gIHN0YXRpYyBmaWxlX3N5c3RlbS5GaWxlIF9nZXRPcHRpb25zRmlsZShDb21tYW5kTGluZU9wdGlvbnMgb3B0aW9ucykgeworICBzdGF0aWMgZmlsZV9zeXN0ZW0uRmlsZSBfZ2V0T3B0aW9uc0ZpbGUoCisgICAgICBmaWxlX3N5c3RlbS5SZXNvdXJjZVByb3ZpZGVyIHJlc291cmNlUHJvdmlkZXIsCisgICAgICBDb21tYW5kTGluZU9wdGlvbnMgb3B0aW9ucykgewogICAgIGZpbGVfc3lzdGVtLkZpbGUgZmlsZTsKICAgICBTdHJpbmcgZmlsZVBhdGggPSBvcHRpb25zLmFuYWx5c2lzT3B0aW9uc0ZpbGU7CiAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwpIHsKLSAgICAgIGZpbGUgPSBQaHlzaWNhbFJlc291cmNlUHJvdmlkZXIuSU5TVEFOQ0UuZ2V0RmlsZShmaWxlUGF0aCk7CisgICAgICBmaWxlID0gcmVzb3VyY2VQcm92aWRlci5nZXRGaWxlKGZpbGVQYXRoKTsKICAgICAgIGlmICghZmlsZS5leGlzdHMpIHsKICAgICAgICAgcHJpbnRBbmRGYWlsKCdPcHRpb25zIGZpbGUgbm90IGZvdW5kOiAkZmlsZVBhdGgnLAogICAgICAgICAgICAgZXhpdENvZGU6IEVycm9yU2V2ZXJpdHkuRVJST1Iub3JkaW5hbCk7CiAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgIGZpbGVQYXRoID0gQW5hbHlzaXNFbmdpbmUuQU5BTFlTSVNfT1BUSU9OU19GSUxFOwotICAgICAgZmlsZSA9IFBoeXNpY2FsUmVzb3VyY2VQcm92aWRlci5JTlNUQU5DRS5nZXRGaWxlKGZpbGVQYXRoKTsKKyAgICAgIGZpbGUgPSByZXNvdXJjZVByb3ZpZGVyLmdldEZpbGUoZmlsZVBhdGgpOwogICAgICAgaWYgKCFmaWxlLmV4aXN0cykgewogICAgICAgICBmaWxlUGF0aCA9IEFuYWx5c2lzRW5naW5lLkFOQUxZU0lTX09QVElPTlNfWUFNTF9GSUxFOwotICAgICAgICBmaWxlID0gUGh5c2ljYWxSZXNvdXJjZVByb3ZpZGVyLklOU1RBTkNFLmdldEZpbGUoZmlsZVBhdGgpOworICAgICAgICBmaWxlID0gcmVzb3VyY2VQcm92aWRlci5nZXRGaWxlKGZpbGVQYXRoKTsKICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZpbGU7CkBAIC03MTksOCArNzI1LDEwIEBACiAgICAgICBwYXRoLm5vcm1hbGl6ZShuZXcgRmlsZShzb3VyY2VQYXRoKS5hYnNvbHV0ZS5wYXRoKTsKIAogICBzdGF0aWMgdm9pZCBfcHJvY2Vzc0FuYWx5c2lzT3B0aW9ucygKLSAgICAgIEFuYWx5c2lzQ29udGV4dCBjb250ZXh0LCBDb21tYW5kTGluZU9wdGlvbnMgb3B0aW9ucykgewotICAgIGZpbGVfc3lzdGVtLkZpbGUgZmlsZSA9IF9nZXRPcHRpb25zRmlsZShvcHRpb25zKTsKKyAgICAgIGZpbGVfc3lzdGVtLlJlc291cmNlUHJvdmlkZXIgcmVzb3VyY2VQcm92aWRlciwKKyAgICAgIEFuYWx5c2lzQ29udGV4dCBjb250ZXh0LAorICAgICAgQ29tbWFuZExpbmVPcHRpb25zIG9wdGlvbnMpIHsKKyAgICBmaWxlX3N5c3RlbS5GaWxlIGZpbGUgPSBfZ2V0T3B0aW9uc0ZpbGUocmVzb3VyY2VQcm92aWRlciwgb3B0aW9ucyk7CiAgICAgTGlzdDxPcHRpb25zUHJvY2Vzc29yPiBvcHRpb25zUHJvY2Vzc29ycyA9CiAgICAgICAgIEFuYWx5c2lzRW5naW5lLmluc3RhbmNlLm9wdGlvbnNQbHVnaW4ub3B0aW9uc1Byb2Nlc3NvcnM7CiAgICAgdHJ5IHsKZGlmZiAtLWdpdCBhL3BrZy9hbmFseXplcl9jbGkvdGVzdC9idWlsZF9tb2RlX3Rlc3QuZGFydCBiL3BrZy9hbmFseXplcl9jbGkvdGVzdC9idWlsZF9tb2RlX3Rlc3QuZGFydAppbmRleCA5Yzg4YTBmLi41ZTE2ZDk1IDEwMDY0NAotLS0gYS9wa2cvYW5hbHl6ZXJfY2xpL3Rlc3QvYnVpbGRfbW9kZV90ZXN0LmRhcnQKKysrIGIvcGtnL2FuYWx5emVyX2NsaS90ZXN0L2J1aWxkX21vZGVfdGVzdC5kYXJ0CkBAIC00LDYgKzQsNyBAQAogCiBsaWJyYXJ5IGFuYWx5emVyX2NsaS50ZXN0LmJ1aWx0X21vZGU7CiAKK2ltcG9ydCAncGFja2FnZTphbmFseXplci9maWxlX3N5c3RlbS9tZW1vcnlfZmlsZV9zeXN0ZW0uZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6YW5hbHl6ZXJfY2xpL3NyYy9idWlsZF9tb2RlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyX2NsaS9zcmMvZHJpdmVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmFuYWx5emVyX2NsaS9zcmMvb3B0aW9ucy5kYXJ0JzsKQEAgLTE3LDYgKzE4LDI1IEBACiAgIGRlZmluZVJlZmxlY3RpdmVUZXN0cyhXb3JrZXJMb29wVGVzdCk7CiB9CiAKK3R5cGVkZWYgdm9pZCBfVGVzdFdvcmtlckxvb3BBbmFseXplKENvbW1hbmRMaW5lT3B0aW9ucyBvcHRpb25zKTsKKworLyoqCisgKiBbQW5hbHl6ZXJXb3JrZXJMb29wXSBmb3IgdGVzdGluZy4KKyAqLworY2xhc3MgVGVzdEFuYWx5emVyV29ya2VyTG9vcCBleHRlbmRzIEFuYWx5emVyV29ya2VyTG9vcCB7CisgIGZpbmFsIF9UZXN0V29ya2VyTG9vcEFuYWx5emUgX2FuYWx5emU7CisKKyAgVGVzdEFuYWx5emVyV29ya2VyTG9vcChTeW5jV29ya2VyQ29ubmVjdGlvbiBjb25uZWN0aW9uLCBbdGhpcy5fYW5hbHl6ZV0pCisgICAgICA6IHN1cGVyKG5ldyBNZW1vcnlSZXNvdXJjZVByb3ZpZGVyKCksIGNvbm5lY3Rpb24pOworCisgIEBvdmVycmlkZQorICB2b2lkIGFuYWx5emUoQ29tbWFuZExpbmVPcHRpb25zIG9wdGlvbnMpIHsKKyAgICBpZiAoX2FuYWx5emUgIT0gbnVsbCkgeworICAgICAgX2FuYWx5emUob3B0aW9ucyk7CisgICAgfQorICB9Cit9CisKIEByZWZsZWN0aXZlVGVzdAogY2xhc3MgV29ya2VyTG9vcFRlc3QgewogICBmaW5hbCBUZXN0U3RkaW5TeW5jIHN0ZGluU3RyZWFtID0gbmV3IFRlc3RTdGRpblN5bmMoKTsKQEAgLTMwLDE2ICs1MCw2IEBACiAKICAgdm9pZCBzZXRVcCgpIHt9CiAKLSAgTGlzdDxpbnQ+IF9zZXJpYWxpemVQcm90byhHZW5lcmF0ZWRNZXNzYWdlIG1lc3NhZ2UpIHsKLSAgICB2YXIgYnVmZmVyID0gbWVzc2FnZS53cml0ZVRvQnVmZmVyKCk7Ci0KLSAgICB2YXIgd3JpdGVyID0gbmV3IENvZGVkQnVmZmVyV3JpdGVyKCk7Ci0gICAgd3JpdGVyLndyaXRlSW50MzJOb1RhZyhidWZmZXIubGVuZ3RoKTsKLSAgICB3cml0ZXIud3JpdGVSYXdCeXRlcyhidWZmZXIpOwotCi0gICAgcmV0dXJuIHdyaXRlci50b0J1ZmZlcigpOwotICB9Ci0KICAgdGVzdF9ydW4oKSB7CiAgICAgdmFyIHJlcXVlc3QgPSBuZXcgV29ya1JlcXVlc3QoKTsKICAgICByZXF1ZXN0LmFyZ3VtZW50cy5hZGRBbGwoWwpAQCAtMTE5LDIzICsxMjksMTQgQEAKICAgICBzdGRpblN0cmVhbS5jbG9zZSgpOwogICAgIG5ldyBUZXN0QW5hbHl6ZXJXb3JrZXJMb29wKGNvbm5lY3Rpb24pLnJ1bigpOwogICB9Ci19CiAKLXR5cGVkZWYgdm9pZCBfVGVzdFdvcmtlckxvb3BBbmFseXplKENvbW1hbmRMaW5lT3B0aW9ucyBvcHRpb25zKTsKKyAgTGlzdDxpbnQ+IF9zZXJpYWxpemVQcm90byhHZW5lcmF0ZWRNZXNzYWdlIG1lc3NhZ2UpIHsKKyAgICB2YXIgYnVmZmVyID0gbWVzc2FnZS53cml0ZVRvQnVmZmVyKCk7CiAKLS8qKgotICogW0FuYWx5emVyV29ya2VyTG9vcF0gZm9yIHRlc3RpbmcuCi0gKi8KLWNsYXNzIFRlc3RBbmFseXplcldvcmtlckxvb3AgZXh0ZW5kcyBBbmFseXplcldvcmtlckxvb3AgewotICBmaW5hbCBfVGVzdFdvcmtlckxvb3BBbmFseXplIF9hbmFseXplOworICAgIHZhciB3cml0ZXIgPSBuZXcgQ29kZWRCdWZmZXJXcml0ZXIoKTsKKyAgICB3cml0ZXIud3JpdGVJbnQzMk5vVGFnKGJ1ZmZlci5sZW5ndGgpOworICAgIHdyaXRlci53cml0ZVJhd0J5dGVzKGJ1ZmZlcik7CiAKLSAgVGVzdEFuYWx5emVyV29ya2VyTG9vcChTeW5jV29ya2VyQ29ubmVjdGlvbiBjb25uZWN0aW9uLCBbdGhpcy5fYW5hbHl6ZV0pCi0gICAgICA6IHN1cGVyKGNvbm5lY3Rpb24pOwotCi0gIEBvdmVycmlkZQotICB2b2lkIGFuYWx5emUoQ29tbWFuZExpbmVPcHRpb25zIG9wdGlvbnMpIHsKLSAgICBpZiAoX2FuYWx5emUgIT0gbnVsbCkgewotICAgICAgX2FuYWx5emUob3B0aW9ucyk7Ci0gICAgfQorICAgIHJldHVybiB3cml0ZXIudG9CdWZmZXIoKTsKICAgfQogfQpkaWZmIC0tZ2l0IGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvY29tcGlsZXIuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL2NvbXBpbGVyLmRhcnQKaW5kZXggN2Y3M2RjYy4uYmRkYTk3NCAxMDA2NDQKLS0tIGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvY29tcGlsZXIuZGFydAorKysgYi9wa2cvY29tcGlsZXIvbGliL3NyYy9jb21waWxlci5kYXJ0CkBAIC0yNyw3ICsyNyw2IEBACiBpbXBvcnQgJ2NvbXBpbGVfdGltZV9jb25zdGFudHMuZGFydCc7CiBpbXBvcnQgJ2NvbnN0YW50cy92YWx1ZXMuZGFydCc7CiBpbXBvcnQgJ2NvcmVfdHlwZXMuZGFydCcgc2hvdyBDb3JlQ2xhc3NlcywgQ29yZVR5cGVzOwotaW1wb3J0ICdkYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQnIGFzIGRhcnRfYmFja2VuZDsKIGltcG9ydCAnZGFydF90eXBlcy5kYXJ0JyBzaG93IERhcnRUeXBlLCBEeW5hbWljVHlwZSwgSW50ZXJmYWNlVHlwZSwgVHlwZXM7CiBpbXBvcnQgJ2RlZmVycmVkX2xvYWQuZGFydCcgc2hvdyBEZWZlcnJlZExvYWRUYXNrOwogaW1wb3J0ICdkaWFnbm9zdGljcy9jb2RlX2xvY2F0aW9uLmRhcnQnOwpAQCAtMzAyLDE5ICszMDEsMTMgQEAKIAogICAgIGlmIChtYWtlQmFja2VuZCAhPSBudWxsKSB7CiAgICAgICBiYWNrZW5kID0gbWFrZUJhY2tlbmQodGhpcyk7Ci0gICAgfSBlbHNlIGlmIChvcHRpb25zLmVtaXRKYXZhU2NyaXB0KSB7CisgICAgfSBlbHNlIHsKICAgICAgIGpzX2JhY2tlbmQuSmF2YVNjcmlwdEJhY2tlbmQganNCYWNrZW5kID0gbmV3IGpzX2JhY2tlbmQuSmF2YVNjcmlwdEJhY2tlbmQoCiAgICAgICAgICAgdGhpcywKICAgICAgICAgICBnZW5lcmF0ZVNvdXJjZU1hcDogb3B0aW9ucy5nZW5lcmF0ZVNvdXJjZU1hcCwKICAgICAgICAgICB1c2VTdGFydHVwRW1pdHRlcjogb3B0aW9ucy51c2VTdGFydHVwRW1pdHRlciwKICAgICAgICAgICB1c2VOZXdTb3VyY2VJbmZvOiBvcHRpb25zLnVzZU5ld1NvdXJjZUluZm8pOwogICAgICAgYmFja2VuZCA9IGpzQmFja2VuZDsKLSAgICB9IGVsc2UgewotICAgICAgYmFja2VuZCA9IG5ldyBkYXJ0X2JhY2tlbmQuRGFydEJhY2tlbmQodGhpcywgb3B0aW9ucy5zdHJpcHMsCi0gICAgICAgICAgbXVsdGlGaWxlOiBvcHRpb25zLmRhcnQyZGFydE11bHRpRmlsZSk7Ci0gICAgICBpZiAob3B0aW9ucy5kdW1wSW5mbykgewotICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRFcnJvcignLS1kdW1wLWluZm8gaXMgbm90IHN1cHBvcnRlZCBmb3IgZGFydDJkYXJ0LicpOwotICAgICAgfQogICAgIH0KIAogICAgIGlmIChvcHRpb25zLmR1bXBJbmZvICYmIG9wdGlvbnMudXNlU3RhcnR1cEVtaXR0ZXIpIHsKZGlmZiAtLWdpdCBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnQyanMuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnQyanMuZGFydAppbmRleCAxYjQxYmUxLi5jNGFiMjlmIDEwMDY0NAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0MmpzLmRhcnQKKysrIGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydDJqcy5kYXJ0CkBAIC0xMTUsOCArMTE1LDYgQEAKICAgTGlzdDxTdHJpbmc+IGV4cGxpY2l0T3V0cHV0QXJndW1lbnRzID0gPFN0cmluZz5bXTsKICAgYm9vbCB3YW50SGVscCA9IGZhbHNlOwogICBib29sIHdhbnRWZXJzaW9uID0gZmFsc2U7Ci0gIFN0cmluZyBvdXRwdXRMYW5ndWFnZSA9ICdKYXZhU2NyaXB0JzsKLSAgYm9vbCBzdHJpcEFyZ3VtZW50U2V0ID0gZmFsc2U7CiAgIGJvb2wgYW5hbHl6ZU9ubHkgPSBmYWxzZTsKICAgYm9vbCBhbmFseXplQWxsID0gZmFsc2U7CiAgIGJvb2wgcmVzb2x2ZU9ubHkgPSBmYWxzZTsKQEAgLTE3MywyMCArMTcxLDEwIEBACiAgICAgb3B0aW9uc0ltcGx5Q29tcGlsYXRpb24uYWRkKGFyZ3VtZW50KTsKICAgICBpZiAoYXJndW1lbnQgPT0gJy0tb3V0cHV0LXR5cGU9ZGFydCcgfHwKICAgICAgICAgYXJndW1lbnQgPT0gJy0tb3V0cHV0LXR5cGU9ZGFydC1tdWx0aScpIHsKLSAgICAgIG91dHB1dExhbmd1YWdlID0gT1VUUFVUX0xBTkdVQUdFX0RBUlQ7Ci0gICAgICBpZiAoZXhwbGljaXRPdXRwdXRBcmd1bWVudHMuaXNOb3RFbXB0eSkgewotICAgICAgICBvdXQgPSBjdXJyZW50RGlyZWN0b3J5LnJlc29sdmUoJ291dC5kYXJ0Jyk7Ci0gICAgICAgIHNvdXJjZU1hcE91dCA9IGN1cnJlbnREaXJlY3RvcnkucmVzb2x2ZSgnb3V0LmRhcnQubWFwJyk7Ci0gICAgICB9Ci0gICAgICBkaWFnbm9zdGljSGFuZGxlcigKLSAgICAgICAgICBudWxsLAotICAgICAgICAgIG51bGwsCi0gICAgICAgICAgbnVsbCwKLSAgICAgICAgICAiLS1vdXRwdXQtdHlwZT1kYXJ0IGlzIGRlcHJlY2F0ZWQuIEl0IHdpbGwgcmVtYWluIGF2YWlsYWJsZSAiCi0gICAgICAgICAgImluIERhcnQgMS4xMSwgYnV0IHdpbGwgYmUgcmVtb3ZlZCBpbiBEYXJ0IDEuMTIuIiwKLSAgICAgICAgICBhcGkuRGlhZ25vc3RpYy5XQVJOSU5HKTsKKyAgICAgIGhlbHBBbmRGYWlsKAorICAgICAgICAgICItLW91dHB1dC10eXBlPWRhcnQgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gSXQgd2FzIGRlcHJlY2F0ZWQgIgorICAgICAgICAgICJzaW5jZSBEYXJ0IDEuMTEgYW5kIHJlbW92ZWQgaW4gRGFydCAxLjE5LiIpOwogICAgIH0KLSAgICBwYXNzVGhyb3VnaChhcmd1bWVudCk7CiAgIH0KIAogICB2b2lkIHNldFJlc29sdXRpb25JbnB1dChTdHJpbmcgYXJndW1lbnQpIHsKQEAgLTIwOCwxNCArMTk2LDE0IEBACiAgICAgcmV0dXJuIGZpbGVuYW1lcy5qb2luKCJcbiIpOwogICB9CiAKLSAgdm9pZCBpbXBseUNvbXBpbGF0aW9uKFN0cmluZyBhcmd1bWVudCkgeworICBpbXBseUNvbXBpbGF0aW9uKFN0cmluZyBhcmd1bWVudCkgewogICAgIG9wdGlvbnNJbXBseUNvbXBpbGF0aW9uLmFkZChhcmd1bWVudCk7CiAgICAgcGFzc1Rocm91Z2goYXJndW1lbnQpOwogICB9CiAKLSAgdm9pZCBzZXRTdHJpcChTdHJpbmcgYXJndW1lbnQpIHsKLSAgICBzdHJpcEFyZ3VtZW50U2V0ID0gdHJ1ZTsKLSAgICBpbXBseUNvbXBpbGF0aW9uKGFyZ3VtZW50KTsKKyAgc2V0U3RyaXAoU3RyaW5nIGFyZ3VtZW50KSB7CisgICAgaGVscEFuZEZhaWwoIk9wdGlvbiAnLS1mb3JjZS1zdHJpcCcgaXMgbm90IGluIHVzZSBub3cgdGhhdCIKKyAgICAgICAgIi0tb3V0cHV0LXR5cGU9ZGFydCBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiIpOwogICB9CiAKICAgdm9pZCBzZXRBbmFseXplT25seShTdHJpbmcgYXJndW1lbnQpIHsKQEAgLTMyNiw2ICszMTQsNyBAQAogICAgIG5ldyBPcHRpb25IYW5kbGVyKEZsYWdzLmZhdGFsV2FybmluZ3MsIHBhc3NUaHJvdWdoKSwKICAgICBuZXcgT3B0aW9uSGFuZGxlcigKICAgICAgICAgRmxhZ3Muc3VwcHJlc3NIaW50cywgKF8pID0+IGRpYWdub3N0aWNIYW5kbGVyLnNob3dIaW50cyA9IGZhbHNlKSwKKyAgICAvLyBUT0RPKHNpZ211bmQpOiByZW1vdmUgZW50aXJlbHkgYWZ0ZXIgRGFydCAxLjIwCiAgICAgbmV3IE9wdGlvbkhhbmRsZXIoCiAgICAgICAgICctLW91dHB1dC10eXBlPWRhcnR8LS1vdXRwdXQtdHlwZT1kYXJ0LW11bHRpfC0tb3V0cHV0LXR5cGU9anMnLAogICAgICAgICBzZXRPdXRwdXRUeXBlKSwKQEAgLTM3MCw3ICszNTksNyBAQAogICAgIG5ldyBPcHRpb25IYW5kbGVyKEZsYWdzLmRpc2FibGVUeXBlSW5mZXJlbmNlLCBpbXBseUNvbXBpbGF0aW9uKSwKICAgICBuZXcgT3B0aW9uSGFuZGxlcihGbGFncy50ZXJzZSwgcGFzc1Rocm91Z2gpLAogICAgIG5ldyBPcHRpb25IYW5kbGVyKCctLWRlZmVycmVkLW1hcD0uKycsIGltcGx5Q29tcGlsYXRpb24pLAotICAgIG5ldyBPcHRpb25IYW5kbGVyKEZsYWdzLmR1bXBJbmZvLCBzZXREdW1wSW5mbyksCisgICAgbmV3IE9wdGlvbkhhbmRsZXIoRmxhZ3MuZHVtcEluZm8sIGltcGx5Q29tcGlsYXRpb24pLAogICAgIG5ldyBPcHRpb25IYW5kbGVyKAogICAgICAgICAnLS1kaXNhbGxvdy11bnNhZmUtZXZhbCcsIChfKSA9PiBoYXNEaXNhbGxvd1Vuc2FmZUV2YWwgPSB0cnVlKSwKICAgICBuZXcgT3B0aW9uSGFuZGxlcihPcHRpb24uc2hvd1BhY2thZ2VXYXJuaW5ncywgcGFzc1Rocm91Z2gpLApAQCAtNDI5LDEwICs0MTgsNiBAQAogICAgICAgICAiICckcHJlY29tcGlsZWROYW1lJy4iKTsKICAgfQogCi0gIGlmIChvdXRwdXRMYW5ndWFnZSAhPSBPVVRQVVRfTEFOR1VBR0VfREFSVCAmJiBzdHJpcEFyZ3VtZW50U2V0KSB7Ci0gICAgaGVscEFuZEZhaWwoIk9wdGlvbiAnLS1mb3JjZS1zdHJpcCcgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICIKLSAgICAgICAgIictLW91dHB1dC10eXBlPWRhcnQnLiIpOwotICB9CiAgIGlmIChhcmd1bWVudHMuaXNFbXB0eSkgewogICAgIGhlbHBBbmRGYWlsKCdObyBEYXJ0IGZpbGUgc3BlY2lmaWVkLicpOwogICB9CkBAIC00ODcsMTAgKzQ3Miw2IEBACiAgICAgICAgICAgImluIGNvbWJpbmF0aW9uIHdpdGggdGhlICcke0ZsYWdzLmFuYWx5emVPbmx5fScgb3B0aW9uLiIpOwogICAgIH0KICAgfQotICBpZiAoZHVtcEluZm8gJiYgb3V0cHV0TGFuZ3VhZ2UgPT0gT1VUUFVUX0xBTkdVQUdFX0RBUlQpIHsKLSAgICBoZWxwQW5kRmFpbCgiT3B0aW9uICcke0ZsYWdzLmR1bXBJbmZvfScgaXMgbm90IHN1cHBvcnRlZCBpbiAiCi0gICAgICAgICJjb21iaW5hdGlvbiB3aXRoIHRoZSAnLS1vdXRwdXQtdHlwZT1kYXJ0JyBvcHRpb24uIik7Ci0gIH0KIAogICBvcHRpb25zLmFkZCgnLS1vdXQ9JG91dCcpOwogICBvcHRpb25zLmFkZCgnLS1zb3VyY2UtbWFwPSRzb3VyY2VNYXBPdXQnKTsKQEAgLTUxMSwxMSArNDkyLDExIEBACiAgICAgZGlhZ25vc3RpY0hhbmRsZXIKICAgICAgICAgLmluZm8oJ0NvbXBpbGVkICR7aW5wdXRQcm92aWRlci5kYXJ0Q2hhcmFjdGVyc1JlYWR9IGNoYXJhY3RlcnMgRGFydCAnCiAgICAgICAgICAgICAnLT4gJHtvdXRwdXRQcm92aWRlci50b3RhbENoYXJhY3RlcnNXcml0dGVufSBjaGFyYWN0ZXJzICcKLSAgICAgICAgICAgICckb3V0cHV0TGFuZ3VhZ2UgaW4gJworICAgICAgICAgICAgJ0phdmFTY3JpcHQgaW4gJwogICAgICAgICAgICAgJyR7cmVsYXRpdml6ZShjdXJyZW50RGlyZWN0b3J5LCBvdXQsIFBsYXRmb3JtLmlzV2luZG93cyl9Jyk7CiAgICAgaWYgKGRpYWdub3N0aWNIYW5kbGVyLnZlcmJvc2UpIHsKICAgICAgIFN0cmluZyBpbnB1dCA9IHVyaVBhdGhUb05hdGl2ZShhcmd1bWVudHNbMF0pOwotICAgICAgcHJpbnQoJ0RhcnQgZmlsZSAoJGlucHV0KSBjb21waWxlZCB0byAkb3V0cHV0TGFuZ3VhZ2UuJyk7CisgICAgICBwcmludCgnRGFydCBmaWxlICgkaW5wdXQpIGNvbXBpbGVkIHRvIEphdmFTY3JpcHQuJyk7CiAgICAgICBwcmludCgnV3JvdGUgdGhlIGZvbGxvd2luZyBmaWxlczonKTsKICAgICAgIGZvciAoU3RyaW5nIGZpbGVuYW1lIGluIG91dHB1dFByb3ZpZGVyLmFsbE91dHB1dEZpbGVzKSB7CiAgICAgICAgIHByaW50KCIgICRmaWxlbmFtZSIpOwpAQCAtNTIzLDcgKzUwNCw3IEBACiAgICAgfSBlbHNlIGlmIChleHBsaWNpdE91dHB1dEFyZ3VtZW50cy5pc05vdEVtcHR5KSB7CiAgICAgICBTdHJpbmcgaW5wdXQgPSB1cmlQYXRoVG9OYXRpdmUoYXJndW1lbnRzWzBdKTsKICAgICAgIFN0cmluZyBvdXRwdXQgPSByZWxhdGl2aXplKGN1cnJlbnREaXJlY3RvcnksIG91dCwgUGxhdGZvcm0uaXNXaW5kb3dzKTsKLSAgICAgIHByaW50KCdEYXJ0IGZpbGUgKCRpbnB1dCkgY29tcGlsZWQgdG8gJG91dHB1dExhbmd1YWdlOiAkb3V0cHV0Jyk7CisgICAgICBwcmludCgnRGFydCBmaWxlICgkaW5wdXQpIGNvbXBpbGVkIHRvIEphdmFTY3JpcHQ6ICRvdXRwdXQnKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKICAgfQpAQCAtNjcyLDkgKzY1Myw2IEBACiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIG9ubHkgdXNlZCBmb3IgY29tcGlsZXIgZGV2ZWxvcG1lbnQgYW5kIG1heQogYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uOgogCi0gIC0tb3V0cHV0LXR5cGU9ZGFydAotICAgIE91dHB1dCBEYXJ0IGNvZGUgaW5zdGVhZCBvZiBKYXZhU2NyaXB0LgotCiAgIC0tdGhyb3ctb24tZXJyb3IKICAgICBUaHJvdyBhbiBleGNlcHRpb24gaWYgYSBjb21waWxlLXRpbWUgZXJyb3IgaXMgZGV0ZWN0ZWQuCiAKQEAgLTcwMyw4ICs2ODEsNiBAQAogICAgIEdlbmVyYXRlcyBhbiBvdXQuaW5mby5qc29uIGZpbGUgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZ2VuZXJhdGVkIGNvZGUuCiAgICAgWW91IGNhbiBpbnNwZWN0IHRoZSBnZW5lcmF0ZWQgZmlsZSB3aXRoIHRoZSB2aWV3ZXIgYXQ6CiAgICAgICAgIGh0dHBzOi8vZGFydC1sYW5nLmdpdGh1Yi5pby9kdW1wLWluZm8tdmlzdWFsaXplci8KLSAgICBUaGlzIGZlYXR1cmUgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUKLSAgICAnLS1vdXRwdXQtdHlwZT1kYXJ0JyBvcHRpb24uCiAKICAgLS1nZW5lcmF0ZS1jb2RlLXdpdGgtY29tcGlsZS10aW1lLWVycm9ycwogICAgIEdlbmVyYXRlcyBvdXRwdXQgZXZlbiBpZiB0aGUgcHJvZ3JhbSBjb250YWlucyBjb21waWxlLXRpbWUgZXJyb3JzLiBVc2UgdGhlCmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvYmFja2VuZC5kYXJ0IGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmQuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzlkNjlhZS4uMDAwMDAwMAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvYmFja2VuZC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsNTQ2ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotcGFydCBvZiBkYXJ0X2JhY2tlbmQ7Ci0KLS8vIFRPRE8oYWhlKTogVGhpcyBjbGFzcyBpcyBzaW1wbHkgd3JvbmcuICBUaGlzIGJhY2tlbmQgc2hvdWxkIHVzZQotLy8gZWxlbWVudHMgd2hlbiBpdCBjYW4sIG5vdCBBU1Qgbm9kZXMuICBQZXJoYXBzIGEgW01hcDxFbGVtZW50LAotLy8gVHJlZUVsZW1lbnRzPl0gaXMgd2hhdCBpcyBuZWVkZWQuCi1jbGFzcyBFbGVtZW50QXN0IHsKLSAgZmluYWwgTm9kZSBhc3Q7Ci0gIGZpbmFsIFRyZWVFbGVtZW50cyB0cmVlRWxlbWVudHM7Ci0KLSAgRWxlbWVudEFzdCh0aGlzLmFzdCwgdGhpcy50cmVlRWxlbWVudHMpOwotfQotCi1jbGFzcyBEYXJ0QmFja2VuZCBleHRlbmRzIEJhY2tlbmQgewotICBmaW5hbCBMaXN0PENvbXBpbGVyVGFzaz4gdGFza3M7Ci0gIGZpbmFsIGJvb2wgc3RyaXBBc3NlcnRzOwotCi0gIGJvb2wgZ2V0IHN1cHBvcnRzUmVmbGVjdGlvbiA9PiB0cnVlOwotCi0gIC8vIFRPRE8oemFyYWgpIE1heWJlIGNoYW5nZSB0aGlzIHRvIGEgY29tbWFuZC1saW5lIG9wdGlvbi4KLSAgLy8gUmlnaHQgbm93LCBpdCBpcyBzZXQgYnkgdGhlIHRlc3RzLgotICBib29sIHVzZU1pcnJvckhlbHBlckxpYnJhcnkgPSBmYWxzZTsKLQotICAvLy8gVXBkYXRlZCB0byBhIFtNaXJyb3JSZW5hbWVySW1wbF0gaW5zdGFuY2UgaWYgdGhlIFt1c2VNaXJyb3JIZWxwZXJMaWJyYXJ5XQotICAvLy8gZmllbGQgaXMgc2V0IGFuZCBtaXJyb3IgYXJlIG5lZWRlZC4KLSAgTWlycm9yUmVuYW1lciBtaXJyb3JSZW5hbWVyID0gY29uc3QgTWlycm9yUmVuYW1lcigpOwotCi0gIGZpbmFsIERhcnRPdXRwdXR0ZXIgb3V0cHV0dGVyOwotCi0gIC8vIFVzZWQgaW4gdGVzdC4KLSAgUGxhY2Vob2xkZXJSZW5hbWVyIGdldCBwbGFjZWhvbGRlclJlbmFtZXIgPT4gb3V0cHV0dGVyLnJlbmFtZXI7Ci0gIE1hcDxDbGFzc05vZGUsIExpc3Q8Tm9kZT4+IGdldCBtZW1iZXJOb2RlcyA9PiBvdXRwdXR0ZXIub3V0cHV0Lm1lbWJlck5vZGVzOwotCi0gIENvbnN0YW50U3lzdGVtIGdldCBjb25zdGFudFN5c3RlbSB7Ci0gICAgcmV0dXJuIGNvbnN0YW50Q29tcGlsZXJUYXNrLmNvbnN0YW50Q29tcGlsZXIuY29uc3RhbnRTeXN0ZW07Ci0gIH0KLQotICBCYWNrZW5kQ29uc3RhbnRFbnZpcm9ubWVudCBnZXQgY29uc3RhbnRzID0+IGNvbnN0YW50Q29tcGlsZXJUYXNrOwotCi0gIERhcnRDb25zdGFudFRhc2sgY29uc3RhbnRDb21waWxlclRhc2s7Ci0KLSAgRGFydEltcGFjdFRyYW5zZm9ybWVyIGltcGFjdFRyYW5zZm9ybWVyOwotCi0gIGZpbmFsIFNldDxDbGFzc0VsZW1lbnQ+IHVzZWRUeXBlTGl0ZXJhbHMgPSBuZXcgU2V0PENsYXNzRWxlbWVudD4oKTsKLQotICAvLy8gVGhlIHNldCBvZiB2aXNpYmxlIHBsYXRmb3JtIGNsYXNzZXMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYnkgaW5zdGFudGlhdGVkCi0gIC8vLyB1c2VyIGNsYXNzZXMuCi0gIGZpbmFsIFNldDxDbGFzc0VsZW1lbnQ+IF91c2VySW1wbGVtZW50ZWRQbGF0Zm9ybUNsYXNzZXMgPQotICAgICAgbmV3IFNldDxDbGFzc0VsZW1lbnQ+KCk7Ci0KLSAgYm9vbCBlbmFibGVDb2RlZ2VuV2l0aEVycm9yc0lmU3VwcG9ydGVkKFNwYW5uYWJsZSBub2RlKSB7Ci0gICAgcmVwb3J0ZXIucmVwb3J0SGludE1lc3NhZ2Uobm9kZSwgTWVzc2FnZUtpbmQuR0VORVJJQywgewotICAgICAgJ3RleHQnOiAiR2VuZXJhdGlvbiBvZiBjb2RlIHdpdGggY29tcGlsZSB0aW1lIGVycm9ycyBpcyBub3QgIgotICAgICAgICAgICJzdXBwb3J0ZWQgZm9yIGRhcnQyZGFydC4iCi0gICAgfSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgLyoqCi0gICAqIFRlbGxzIHdoZXRoZXIgaXQgaXMgc2FmZSB0byByZW1vdmUgdHlwZSBkZWNsYXJhdGlvbnMgZnJvbSB2YXJpYWJsZXMsCi0gICAqIGZ1bmN0aW9ucyBwYXJhbWV0ZXJzLiBJdCBiZWNvbWVzIG5vdCBzYWZlIGlmOgotICAgKiAxKSBUeXBlRXJyb3IgaXMgdXNlZCBzb21ld2hlcmUgaW4gdGhlIGNvZGUsCi0gICAqIDIpIFRoZSBjb2RlIGhhcyB0eXBlZGVmcyBpbiByaWdodCBoYW5kIHNpZGUgb2YgSVMgY2hlY2tzLAotICAgKiAzKSBUaGUgY29kZSBoYXMgY2xhc3NlcyB3aGljaCBleHRlbmQgdHlwZWRlZnMsIGhhdmUgdHlwZSBhcmd1bWVudHMgdHlwZWRlZnMKLSAgICogICAgb3IgdHlwZSB2YXJpYWJsZSBib3VuZHMgdHlwZWRlZnMuCi0gICAqIFRoZXNlIHJlc3RyaWN0aW9ucyBjYW4gYmUgbGVzcyBzdHJpY3QuCi0gICAqLwotICBib29sIGlzU2FmZVRvUmVtb3ZlVHlwZURlY2xhcmF0aW9ucygKLSAgICAgIE1hcDxDbGFzc0VsZW1lbnQsIEl0ZXJhYmxlPEVsZW1lbnQ+PiBjbGFzc01lbWJlcnMpIHsKLSAgICBDbGFzc0VsZW1lbnQgdHlwZUVycm9yRWxlbWVudCA9IGNvbXBpbGVyLmNvcmVMaWJyYXJ5LmZpbmQoJ1R5cGVFcnJvcicpOwotICAgIGlmIChjbGFzc01lbWJlcnMuY29udGFpbnNLZXkodHlwZUVycm9yRWxlbWVudCkgfHwKLSAgICAgICAgY29tcGlsZXIucmVzb2x2ZXJXb3JsZC5pc0NoZWNrcwotICAgICAgICAgICAgLmFueSgoRGFydFR5cGUgdHlwZSkgPT4gdHlwZS5lbGVtZW50ID09IHR5cGVFcnJvckVsZW1lbnQpKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFNldDxEYXJ0VHlwZT4gcHJvY2Vzc2VkVHlwZXMgPSBuZXcgU2V0PERhcnRUeXBlPigpOwotICAgIExpc3Q8RGFydFR5cGU+IHdvcmtRdWV1ZSA9IG5ldyBMaXN0PERhcnRUeXBlPigpOwotICAgIHdvcmtRdWV1ZQotICAgICAgICAuYWRkQWxsKGNsYXNzTWVtYmVycy5rZXlzLm1hcCgoY2xhc3NFbGVtZW50KSA9PiBjbGFzc0VsZW1lbnQudGhpc1R5cGUpKTsKLSAgICB3b3JrUXVldWUuYWRkQWxsKGNvbXBpbGVyLnJlc29sdmVyV29ybGQuaXNDaGVja3MpOwotCi0gICAgd2hpbGUgKCF3b3JrUXVldWUuaXNFbXB0eSkgewotICAgICAgRGFydFR5cGUgdHlwZSA9IHdvcmtRdWV1ZS5yZW1vdmVMYXN0KCk7Ci0gICAgICBpZiAocHJvY2Vzc2VkVHlwZXMuY29udGFpbnModHlwZSkpIGNvbnRpbnVlOwotICAgICAgcHJvY2Vzc2VkVHlwZXMuYWRkKHR5cGUpOwotICAgICAgaWYgKHR5cGUgaXMgRnVuY3Rpb25UeXBlKSByZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAodHlwZSBpcyBUeXBlZGVmVHlwZSkgcmV0dXJuIGZhbHNlOwotICAgICAgaWYgKHR5cGUgaXMgSW50ZXJmYWNlVHlwZSkgewotICAgICAgICBJbnRlcmZhY2VUeXBlIGludGVyZmFjZVR5cGUgPSB0eXBlOwotICAgICAgICAvLyBDaGVjayBhbGwgdHlwZSBhcmd1bWVudHMuCi0gICAgICAgIGludGVyZmFjZVR5cGUudHlwZUFyZ3VtZW50cy5mb3JFYWNoKHdvcmtRdWV1ZS5hZGQpOwotICAgICAgICBDbGFzc0VsZW1lbnQgZWxlbWVudCA9IHR5cGUuZWxlbWVudDsKLSAgICAgICAgLy8gQ2hlY2sgYWxsIHN1cGVydHlwZXMuCi0gICAgICAgIGlmIChlbGVtZW50LmFsbFN1cGVydHlwZXMgIT0gbnVsbCkgewotICAgICAgICAgIGVsZW1lbnQuYWxsU3VwZXJ0eXBlcy5mb3JFYWNoKHdvcmtRdWV1ZS5hZGQpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotICB9Ci0KLSAgRGFydEJhY2tlbmQoQ29tcGlsZXIgY29tcGlsZXIsIExpc3Q8U3RyaW5nPiBzdHJpcHMsIHtib29sIG11bHRpRmlsZX0pCi0gICAgICA6IHRhc2tzID0gPENvbXBpbGVyVGFzaz5bXSwKLSAgICAgICAgc3RyaXBBc3NlcnRzID0gc3RyaXBzLmluZGV4T2YoJ2Fzc2VydHMnKSAhPSAtMSwKLSAgICAgICAgY29uc3RhbnRDb21waWxlclRhc2sgPSBuZXcgRGFydENvbnN0YW50VGFzayhjb21waWxlciksCi0gICAgICAgIG91dHB1dHRlciA9IG5ldyBEYXJ0T3V0cHV0dGVyKAotICAgICAgICAgICAgY29tcGlsZXIucmVwb3J0ZXIsIGNvbXBpbGVyLm91dHB1dFByb3ZpZGVyLAotICAgICAgICAgICAgZm9yY2VTdHJpcFR5cGVzOiBzdHJpcHMuaW5kZXhPZigndHlwZXMnKSAhPSAtMSwKLSAgICAgICAgICAgIG11bHRpRmlsZTogbXVsdGlGaWxlLAotICAgICAgICAgICAgZW5hYmxlTWluaWZpY2F0aW9uOiBjb21waWxlci5vcHRpb25zLmVuYWJsZU1pbmlmaWNhdGlvbiksCi0gICAgICAgIHN1cGVyKGNvbXBpbGVyKSB7Ci0gICAgaW1wYWN0VHJhbnNmb3JtZXIgPSBuZXcgRGFydEltcGFjdFRyYW5zZm9ybWVyKHRoaXMpOwotICB9Ci0KLSAgRGlhZ25vc3RpY1JlcG9ydGVyIGdldCByZXBvcnRlciA9PiBjb21waWxlci5yZXBvcnRlcjsKLQotICBSZXNvbHV0aW9uIGdldCByZXNvbHV0aW9uID0+IGNvbXBpbGVyLnJlc29sdXRpb247Ci0KLSAgYm9vbCBjbGFzc05lZWRzUnRpKENsYXNzRWxlbWVudCBjbHMpID0+IGZhbHNlOwotICBib29sIG1ldGhvZE5lZWRzUnRpKEZ1bmN0aW9uRWxlbWVudCBmdW5jdGlvbikgPT4gZmFsc2U7Ci0KLSAgdm9pZCBlbnF1ZXVlSGVscGVycyhSZXNvbHV0aW9uRW5xdWV1ZXIgd29ybGQsIFJlZ2lzdHJ5IHJlZ2lzdHJ5KSB7Ci0gICAgLy8gUmlnaHQgbm93IHJlc29sdmVyIGRvZXNuJ3QgYWx3YXlzIHJlc29sdmUgaW50ZXJmYWNlcyBuZWVkZWQKLSAgICAvLyBmb3IgbGl0ZXJhbHMsIHNvIGZvcmNlIHRoZW0uIFRPRE8oYW50b25tKTogZml4IGluIHRoZSByZXNvbHZlci4KLSAgICBmaW5hbCBMSVRFUkFMX1RZUEVfTkFNRVMgPSBjb25zdCBbCi0gICAgICAnTWFwJywKLSAgICAgICdMaXN0JywKLSAgICAgICdudW0nLAotICAgICAgJ2ludCcsCi0gICAgICAnZG91YmxlJywKLSAgICAgICdib29sJwotICAgIF07Ci0gICAgZmluYWwgY29yZUxpYnJhcnkgPSBjb21waWxlci5jb3JlTGlicmFyeTsKLSAgICBmb3IgKGZpbmFsIG5hbWUgaW4gTElURVJBTF9UWVBFX05BTUVTKSB7Ci0gICAgICBDbGFzc0VsZW1lbnQgY2xhc3NFbGVtZW50ID0gY29yZUxpYnJhcnkuZmluZExvY2FsKG5hbWUpOwotICAgICAgY2xhc3NFbGVtZW50LmVuc3VyZVJlc29sdmVkKHJlc29sdXRpb24pOwotICAgIH0KLSAgICAvLyBFbnF1ZXVlIHRoZSBtZXRob2RzIHRoYXQgdGhlIFZNIG1pZ2h0IGludm9rZSBvbiB1c2VyIG9iamVjdHMgYmVjYXVzZQotICAgIC8vIHdlIGRvbid0IHRydXN0IHRoZSByZXNvbHV0aW9uIHRvIGFsd2F5cyBnZXQgdGhlc2UgaW5jbHVkZWQuCi0gICAgd29ybGQucmVnaXN0ZXJEeW5hbWljVXNlKG5ldyBEeW5hbWljVXNlKFNlbGVjdG9ycy50b1N0cmluZ18sIG51bGwpKTsKLSAgICB3b3JsZC5yZWdpc3RlckR5bmFtaWNVc2UobmV3IER5bmFtaWNVc2UoU2VsZWN0b3JzLmhhc2hDb2RlXywgbnVsbCkpOwotICAgIHdvcmxkLnJlZ2lzdGVyRHluYW1pY1VzZSgKLSAgICAgICAgbmV3IER5bmFtaWNVc2UobmV3IFNlbGVjdG9yLmJpbmFyeU9wZXJhdG9yKCc9PScpLCBudWxsKSk7Ci0gICAgd29ybGQucmVnaXN0ZXJEeW5hbWljVXNlKG5ldyBEeW5hbWljVXNlKFNlbGVjdG9ycy5jb21wYXJlVG8sIG51bGwpKTsKLSAgfQotCi0gIFdvcmxkSW1wYWN0IGNvZGVnZW4oQ29kZWdlbldvcmtJdGVtIHdvcmspIHsKLSAgICByZXR1cm4gY29uc3QgV29ybGRJbXBhY3QoKTsKLSAgfQotCi0gIC8qKgotICAgKiBUZWxscyB3aGV0aGVyIHdlIHNob3VsZCBvdXRwdXQgZ2l2ZW4gZWxlbWVudC4gQ29yZWxpYiBjbGFzc2VzIGxpa2UKLSAgICogT2JqZWN0IHNob3VsZCBub3QgYmUgaW4gdGhlIHJlc3VsdGluZyBjb2RlLgotICAgKi8KLSAgQG92ZXJyaWRlCi0gIGJvb2wgc2hvdWxkT3V0cHV0KEVsZW1lbnQgZWxlbWVudCkgewotICAgIHJldHVybiAoIWVsZW1lbnQubGlicmFyeS5pc1BsYXRmb3JtTGlicmFyeSAmJgotICAgICAgICAgICAgIWVsZW1lbnQuaXNTeW50aGVzaXplZCAmJgotICAgICAgICAgICAgZWxlbWVudCBpcyEgQWJzdHJhY3RGaWVsZEVsZW1lbnQpIHx8Ci0gICAgICAgIG1pcnJvclJlbmFtZXIuaXNNaXJyb3JIZWxwZXJMaWJyYXJ5KGVsZW1lbnQubGlicmFyeSk7Ci0gIH0KLQotICBpbnQgYXNzZW1ibGVQcm9ncmFtKCkgewotICAgIEVsZW1lbnRBc3QgY29tcHV0ZUVsZW1lbnRBc3QoQXN0RWxlbWVudCBlbGVtZW50KSB7Ci0gICAgICByZXR1cm4gbmV3IEVsZW1lbnRBc3QoCi0gICAgICAgICAgZWxlbWVudC5yZXNvbHZlZEFzdC5ub2RlLCBlbGVtZW50LnJlc29sdmVkQXN0LmVsZW1lbnRzKTsKLSAgICB9Ci0KLSAgICAvLyBUT0RPKGpvaG5uaXdpbnRoZXIpOiBSZW1vdmUgdGhlIG5lZWQgZm9yIHRoaXMgbWV0aG9kLgotICAgIHZvaWQgcG9zdFByb2Nlc3NFbGVtZW50QXN0KEFzdEVsZW1lbnQgZWxlbWVudCwgRWxlbWVudEFzdCBlbGVtZW50QXN0LAotICAgICAgICBuZXdUeXBlZGVmRWxlbWVudENhbGxiYWNrLCBuZXdDbGFzc0VsZW1lbnRDYWxsYmFjaykgewotICAgICAgUmVmZXJlbmNlZEVsZW1lbnRDb2xsZWN0b3IgY29sbGVjdG9yID0gbmV3IFJlZmVyZW5jZWRFbGVtZW50Q29sbGVjdG9yKAotICAgICAgICAgIHJlcG9ydGVyLAotICAgICAgICAgIGVsZW1lbnQsCi0gICAgICAgICAgZWxlbWVudEFzdCwKLSAgICAgICAgICBuZXdUeXBlZGVmRWxlbWVudENhbGxiYWNrLAotICAgICAgICAgIG5ld0NsYXNzRWxlbWVudENhbGxiYWNrKTsKLSAgICAgIGNvbGxlY3Rvci5jb2xsZWN0KCk7Ci0gICAgfQotCi0gICAgaW50IHRvdGFsU2l6ZSA9IG91dHB1dHRlci5hc3NlbWJsZVByb2dyYW0oCi0gICAgICAgIGxpYnJhcmllczogY29tcGlsZXIubGlicmFyeUxvYWRlci5saWJyYXJpZXMsCi0gICAgICAgIGluc3RhbnRpYXRlZENsYXNzZXM6IGNvbXBpbGVyLnJlc29sdmVyV29ybGQuZGlyZWN0bHlJbnN0YW50aWF0ZWRDbGFzc2VzLAotICAgICAgICByZXNvbHZlZEVsZW1lbnRzOiBjb21waWxlci5lbnF1ZXVlci5yZXNvbHV0aW9uLnByb2Nlc3NlZEVsZW1lbnRzLAotICAgICAgICB1c2VkVHlwZUxpdGVyYWxzOiB1c2VkVHlwZUxpdGVyYWxzLAotICAgICAgICBwb3N0UHJvY2Vzc0VsZW1lbnRBc3Q6IHBvc3RQcm9jZXNzRWxlbWVudEFzdCwKLSAgICAgICAgY29tcHV0ZUVsZW1lbnRBc3Q6IGNvbXB1dGVFbGVtZW50QXN0LAotICAgICAgICBzaG91bGRPdXRwdXQ6IHNob3VsZE91dHB1dCwKLSAgICAgICAgaXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zOiBpc1NhZmVUb1JlbW92ZVR5cGVEZWNsYXJhdGlvbnMsCi0gICAgICAgIHNvcnRFbGVtZW50czogRWxlbWVudHMuc29ydGVkQnlQb3NpdGlvbiwKLSAgICAgICAgbWlycm9yUmVuYW1lcjogbWlycm9yUmVuYW1lciwKLSAgICAgICAgbWFpbkZ1bmN0aW9uOiBjb21waWxlci5tYWluRnVuY3Rpb24sCi0gICAgICAgIG91dHB1dFVyaTogY29tcGlsZXIub3B0aW9ucy5vdXRwdXRVcmkpOwotCi0gICAgLy8gT3V0cHV0IHZlcmJvc2UgaW5mbyBhYm91dCBzaXplIHJhdGlvIG9mIHJlc3VsdGluZyBidW5kbGUgdG8gYWxsCi0gICAgLy8gcmVmZXJlbmNlZCBub24tcGxhdGZvcm0gc291cmNlcy4KLSAgICBsb2dSZXN1bHRCdW5kbGVTaXplSW5mbyhvdXRwdXR0ZXIubGlicmFyeUluZm8udXNlckxpYnJhcmllcywKLSAgICAgICAgb3V0cHV0dGVyLmVsZW1lbnRJbmZvLnRvcExldmVsRWxlbWVudHMsIHRvdGFsU2l6ZSk7Ci0KLSAgICByZXR1cm4gdG90YWxTaXplOwotICB9Ci0KLSAgdm9pZCBsb2dSZXN1bHRCdW5kbGVTaXplSW5mbyhJdGVyYWJsZTxMaWJyYXJ5RWxlbWVudD4gdXNlckxpYnJhcmllcywKLSAgICAgIEl0ZXJhYmxlPEVsZW1lbnQ+IHRvcExldmVsRWxlbWVudHMsIGludCB0b3RhbE91dHB1dFNpemUpIHsKLSAgICAvLyBTdW0gdG90YWwgc2l6ZSBvZiBzY3JpcHRzIGluIGVhY2ggcmVmZXJlbmNlZCBsaWJyYXJ5LgotICAgIGludCBub25QbGF0Zm9ybVNpemUgPSAwOwotICAgIGZvciAoTGlicmFyeUVsZW1lbnQgbGliIGluIHVzZXJMaWJyYXJpZXMpIHsKLSAgICAgIGZvciAoQ29tcGlsYXRpb25Vbml0RWxlbWVudCBjb21waWxhdGlvblVuaXQgaW4gbGliLmNvbXBpbGF0aW9uVW5pdHMpIHsKLSAgICAgICAgbm9uUGxhdGZvcm1TaXplICs9IGNvbXBpbGF0aW9uVW5pdC5zY3JpcHQuZmlsZS5sZW5ndGg7Ci0gICAgICB9Ci0gICAgfQotICAgIGludCBwZXJjZW50YWdlID0gdG90YWxPdXRwdXRTaXplICogMTAwIH4vIG5vblBsYXRmb3JtU2l6ZTsKLSAgICBsb2coJ1RvdGFsIHVzZWQgbm9uLXBsYXRmb3JtIGZpbGVzIHNpemU6ICR7bm9uUGxhdGZvcm1TaXplfSBieXRlcywgJwotICAgICAgICAnT3V0cHV0IHRvdGFsIHNpemU6ICR0b3RhbE91dHB1dFNpemUgYnl0ZXMgKCR7cGVyY2VudGFnZX0lKScpOwotICB9Ci0KLSAgbG9nKFN0cmluZyBtZXNzYWdlKSA9PiByZXBvcnRlci5sb2coJ1tEYXJ0QmFja2VuZF0gJG1lc3NhZ2UnKTsKLQotICBAb3ZlcnJpZGUKLSAgRnV0dXJlIG9uTGlicmFyaWVzTG9hZGVkKExvYWRlZExpYnJhcmllcyBsb2FkZWRMaWJyYXJpZXMpIHsKLSAgICAvLyBBbGwgcGxhdGZvcm0gY2xhc3NlcyBtdXN0IGJlIHJlc29sdmVkIHRvIGVuc3VyZSB0aGF0IHRoZWlyIG1lbWJlciBuYW1lcwotICAgIC8vIGFyZSBwcmVzZXJ2ZWQuCi0gICAgbG9hZGVkTGlicmFyaWVzLmZvckVhY2hMaWJyYXJ5KChMaWJyYXJ5RWxlbWVudCBsaWJyYXJ5KSB7Ci0gICAgICBpZiAobGlicmFyeS5pc1BsYXRmb3JtTGlicmFyeSkgewotICAgICAgICBsaWJyYXJ5LmZvckVhY2hMb2NhbE1lbWJlcigoRWxlbWVudCBlbGVtZW50KSB7Ci0gICAgICAgICAgaWYgKGVsZW1lbnQuaXNDbGFzcykgewotICAgICAgICAgICAgQ2xhc3NFbGVtZW50IGNsYXNzRWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgICAgICAgICBjbGFzc0VsZW1lbnQuZW5zdXJlUmVzb2x2ZWQocmVzb2x1dGlvbik7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgIH0KLSAgICB9KTsKLSAgICBpZiAodXNlTWlycm9ySGVscGVyTGlicmFyeSAmJgotICAgICAgICBsb2FkZWRMaWJyYXJpZXMuY29udGFpbnNMaWJyYXJ5KFVyaXMuZGFydF9taXJyb3JzKSkgewotICAgICAgcmV0dXJuIGNvbXBpbGVyLmxpYnJhcnlMb2FkZXIKLSAgICAgICAgICAubG9hZExpYnJhcnkoY29tcGlsZXIucmVzb2x2ZWRVcmlUcmFuc2xhdG9yLnRyYW5zbGF0ZSgKLSAgICAgICAgICAgICAgbG9hZGVkTGlicmFyaWVzLmdldExpYnJhcnkoVXJpcy5kYXJ0X21pcnJvcnMpLAotICAgICAgICAgICAgICBNaXJyb3JSZW5hbWVySW1wbC5EQVJUX01JUlJPUl9IRUxQRVIsCi0gICAgICAgICAgICAgIG51bGwpKQotICAgICAgICAgIC50aGVuKChMaWJyYXJ5RWxlbWVudCBsaWJyYXJ5KSB7Ci0gICAgICAgIG1pcnJvclJlbmFtZXIgPSBuZXcgTWlycm9yUmVuYW1lckltcGwoY29tcGlsZXIsIHRoaXMsIGxpYnJhcnkpOwotICAgICAgfSk7Ci0gICAgfQotICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKCk7Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgdm9pZCByZWdpc3RlclN0YXRpY1VzZShFbGVtZW50IGVsZW1lbnQsIEVucXVldWVyIGVucXVldWVyKSB7Ci0gICAgaWYgKGVsZW1lbnQgPT0gY29tcGlsZXIubWlycm9yU3lzdGVtR2V0TmFtZUZ1bmN0aW9uKSB7Ci0gICAgICBGdW5jdGlvbkVsZW1lbnQgZ2V0TmFtZUZ1bmN0aW9uID0gbWlycm9yUmVuYW1lci5nZXROYW1lRnVuY3Rpb247Ci0gICAgICBpZiAoZ2V0TmFtZUZ1bmN0aW9uICE9IG51bGwpIHsKLSAgICAgICAgZW5xdWV1ZXIuYWRkVG9Xb3JrTGlzdChnZXROYW1lRnVuY3Rpb24pOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIEBvdmVycmlkZQotICB2b2lkIHJlZ2lzdGVySW5zdGFudGlhdGVkVHlwZSgKLSAgICAgIEludGVyZmFjZVR5cGUgdHlwZSwgRW5xdWV1ZXIgZW5xdWV1ZXIsIFJlZ2lzdHJ5IHJlZ2lzdHJ5LAotICAgICAge2Jvb2wgbWlycm9yVXNhZ2U6IGZhbHNlfSkgewotICAgIHJlZ2lzdGVyUGxhdGZvcm1NZW1iZXJzKHR5cGUsIHJlZ2lzdGVyVXNlOiByZWdpc3RyeS5yZWdpc3RlckR5bmFtaWNVc2UpOwotICAgIHN1cGVyLnJlZ2lzdGVySW5zdGFudGlhdGVkVHlwZSh0eXBlLCBlbnF1ZXVlciwgcmVnaXN0cnksCi0gICAgICAgIG1pcnJvclVzYWdlOiBtaXJyb3JVc2FnZSk7Ci0gIH0KLQotICAvLy8gUmVnaXN0ZXIgZHluYW1pYyBhY2Nlc3Mgb2YgbWVtYmVycyBvZiBbdHlwZV0gdGhhdCBpbXBsZW1lbnQgbWVtYmVycwotICAvLy8gb2YgdHlwZXMgZGVmaW5lZCBpbiB0aGUgcGxhdGZvcm0gbGlicmFyaWVzLgotICB2b2lkIHJlZ2lzdGVyUGxhdGZvcm1NZW1iZXJzKEludGVyZmFjZVR5cGUgdHlwZSwKLSAgICAgIHt2b2lkIHJlZ2lzdGVyVXNlKER5bmFtaWNVc2UgZHluYW1pY1VzZSl9KSB7Ci0gICAgLy8gV2l0aG91dCBwYXRjaGluZywgZGFydDJkYXJ0IGhhcyBubyB3YXkgb2YgcGVyZm9ybWluZyBzb3VuZCB0cmVlLXNoYWtpbmcKLSAgICAvLyBpbiBmYWNlIGV4dGVybmFsIGZ1bmN0aW9ucy4gVGhlcmVmb3JlIHdlIGVtcGxveSBhbm90aGVyIHNjaGVtZToKLSAgICAvLwotICAgIC8vIEJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHBsYXRmb3JtIGNvZGUgb25seSByZWxpZXMgb24gdGhlCi0gICAgLy8gaW50ZXJmYWNlcyBvZiBpdCdzIG93biBjbGFzc2VzLCB3ZSBjYW4gYXBwcm94aW1hdGUgdGhlIHNlbWFudGljcyBvZgotICAgIC8vIGV4dGVybmFsIGZ1bmN0aW9ucyBieSBlYWdlcmx5IHJlZ2lzdGVyaW5nIGR5bmFtaWMgaW52b2NhdGlvbiBvZiBpbnN0YW5jZQotICAgIC8vIG1lbWJlcnMgZGVmaW5lZCB0aGUgcGxhdGZvcm0gaW50ZXJmYWNlcy4KLSAgICAvLwotICAgIC8vIFNpbmNlIHdlIG9ubHkgbmVlZCB0byBnZW5lcmF0ZSBjb2RlIGZvciBub24tcGxhdGZvcm0gY2xhc3NlcyB3ZSBjYW4KLSAgICAvLyByZXN0cmljdCB0aGlzIHJlZ2lzdHJhdGlvbiB0byBwbGF0Zm9ybSBpbnRlcmZhY2VzIGltcGxlbWVudGVkIGJ5Ci0gICAgLy8gaW5zdGFudGlhdGVkIG5vbi1wbGF0Zm9ybSBjbGFzc2VzLgotICAgIC8vCi0gICAgLy8gQ29uc2lkZXIgZm9yIGluc3RhbmNlIHRoaXMgcHJvZ3JhbToKLSAgICAvLwotICAgIC8vICAgICBpbXBvcnQgJ2RhcnQ6bWF0aCcgc2hvdyBSYW5kb207Ci0gICAgLy8KLSAgICAvLyAgICAgY2xhc3MgTXlSYW5kb20gaW1wbGVtZW50cyBSYW5kb20gewotICAgIC8vICAgICAgIGludCBuZXh0SW50KCkgPT4gMDsKLSAgICAvLyAgICAgfQotICAgIC8vCi0gICAgLy8gICAgIG1haW4oKSB7Ci0gICAgLy8gICAgICAgcHJpbnQoWzAsIDEsIDJdLnNodWZmbGUobmV3IE15UmFuZG9tKCkpKTsKLSAgICAvLyAgICAgfQotICAgIC8vCi0gICAgLy8gSGVyZSBgTXlSYW5kb21gIGlzIGEgc3VidHlwZSBpZiBgUmFuZG9tYCBkZWZpbmVkIGluICdkYXJ0Om1hdGgnLiBCeSB0aGUKLSAgICAvLyBhc3N1bXB0aW9uLCBhbGwgbWV0aG9kcyBkZWZpbmVkIGBSYW5kb21gIGFyZSBwb3RlbnRpYWxseSBjYWxsZWQsIGFuZAotICAgIC8vIHRoZXJlZm9yZSwgdGhvdWdoIHRoZXJlIGFyZSBubyB2aXNpYmxlIGNhbGwgc2l0ZXMgZnJvbSB0aGUgdXNlciBub2RlLAotICAgIC8vIGR5bmFtaWMgaW52b2NhdGlvbiBvZiBmb3IgaW5zdGFuY2UgYG5leHRJbnRgIHNob3VsZCBiZSByZWdpc3RlcmVkLiBJbgotICAgIC8vIHRoaXMgY2FzZSwgYG5leHRJbnRgIGlzIGFjdHVhbGx5IGNhbGxlZCBieSB0aGUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YKLSAgICAvLyBgc2h1ZmZsZWAuCi0KLSAgICBDbGFzc0VsZW1lbnQgY2xzID0gdHlwZS5lbGVtZW50OwotICAgIGlmICghY2xzLmxpYnJhcnkuaXNQbGF0Zm9ybUxpYnJhcnkpIHsKLSAgICAgIGZvciAoTGluazxEYXJ0VHlwZT4gbGluayA9IGNscy5hbGxTdXBlcnR5cGVzOwotICAgICAgICAgICFsaW5rLmlzRW1wdHk7Ci0gICAgICAgICAgbGluayA9IGxpbmsudGFpbCkgewotICAgICAgICBJbnRlcmZhY2VUeXBlIHN1cGVydHlwZSA9IGxpbmsuaGVhZDsKLSAgICAgICAgQ2xhc3NFbGVtZW50IHN1cGVyY2xhc3MgPSBzdXBlcnR5cGUuZWxlbWVudDsKLSAgICAgICAgTGlicmFyeUVsZW1lbnQgbGlicmFyeSA9IHN1cGVyY2xhc3MubGlicmFyeTsKLSAgICAgICAgaWYgKGxpYnJhcnkuaXNQbGF0Zm9ybUxpYnJhcnkpIHsKLSAgICAgICAgICBpZiAoX3VzZXJJbXBsZW1lbnRlZFBsYXRmb3JtQ2xhc3Nlcy5hZGQoc3VwZXJjbGFzcykpIHsKLSAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHNlbGVjdG9ycyBmb3IgYWxsIGluc3RhbmNlIG1ldGhvZHMgc2luY2UgdGhlc2UgbWlnaHQKLSAgICAgICAgICAgIC8vIGJlIGNhbGxlZCBvbiB1c2VyIGNsYXNzZXMgZnJvbSB3aXRoaW4gdGhlIHBsYXRmb3JtCi0gICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4KLSAgICAgICAgICAgIHN1cGVyY2xhc3MuZm9yRWFjaExvY2FsTWVtYmVyKChNZW1iZXJFbGVtZW50IGVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXNDb25zdHJ1Y3RvciB8fCBlbGVtZW50LmlzU3RhdGljKSByZXR1cm47Ci0KLSAgICAgICAgICAgICAgZWxlbWVudC5jb21wdXRlVHlwZShyZXNvbHV0aW9uKTsKLSAgICAgICAgICAgICAgU2VsZWN0b3Igc2VsZWN0b3IgPSBuZXcgU2VsZWN0b3IuZnJvbUVsZW1lbnQoZWxlbWVudCk7Ci0gICAgICAgICAgICAgIHJlZ2lzdGVyVXNlKG5ldyBEeW5hbWljVXNlKHNlbGVjdG9yLCBudWxsKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgYm9vbCBlbmFibGVEZWZlcnJlZExvYWRpbmdJZlN1cHBvcnRlZChTcGFubmFibGUgbm9kZSwgUmVnaXN0cnkgcmVnaXN0cnkpIHsKLSAgICAvLyBUT0RPKHNpZ3VyZG0pOiBJbXBsZW1lbnQgZGVmZXJyZWQgbG9hZGluZyBmb3IgZGFydDJkYXJ0LgotICAgIHJlcG9ydGVyLnJlcG9ydFdhcm5pbmdNZXNzYWdlKAotICAgICAgICBub2RlLCBNZXNzYWdlS2luZC5ERUZFUlJFRF9MSUJSQVJZX0RBUlRfMl9EQVJUKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgVXJpIHJlc29sdmVQYXRjaFVyaShTdHJpbmcgbGlicmFyeU5hbWUsIFVyaSkgewotICAgIC8vIERhcnQyZGFydCBkb2VzIG5vdCB1c2UgcGF0Y2hlcy4KLSAgICByZXR1cm4gbnVsbDsKLSAgfQotfQotCi1jbGFzcyBEYXJ0SW1wYWN0VHJhbnNmb3JtZXIgZXh0ZW5kcyBJbXBhY3RUcmFuc2Zvcm1lciB7Ci0gIGZpbmFsIERhcnRCYWNrZW5kIGJhY2tlbmQ7Ci0KLSAgRGFydEltcGFjdFRyYW5zZm9ybWVyKHRoaXMuYmFja2VuZCk7Ci0KLSAgQG92ZXJyaWRlCi0gIFdvcmxkSW1wYWN0IHRyYW5zZm9ybVJlc29sdXRpb25JbXBhY3QoUmVzb2x1dGlvbkltcGFjdCB3b3JsZEltcGFjdCkgewotICAgIFRyYW5zZm9ybWVkV29ybGRJbXBhY3QgdHJhbnNmb3JtZWQgPQotICAgICAgICBuZXcgVHJhbnNmb3JtZWRXb3JsZEltcGFjdCh3b3JsZEltcGFjdCk7Ci0gICAgZm9yIChUeXBlVXNlIHR5cGVVc2UgaW4gd29ybGRJbXBhY3QudHlwZVVzZXMpIHsKLSAgICAgIGlmICh0eXBlVXNlLmtpbmQgPT0gVHlwZVVzZUtpbmQuVFlQRV9MSVRFUkFMICYmCi0gICAgICAgICAgdHlwZVVzZS50eXBlLmlzSW50ZXJmYWNlVHlwZSkgewotICAgICAgICBiYWNrZW5kLnVzZWRUeXBlTGl0ZXJhbHMuYWRkKHR5cGVVc2UudHlwZS5lbGVtZW50KTsKLSAgICAgIH0KLSAgICAgIGlmICh0eXBlVXNlLmtpbmQgPT0gVHlwZVVzZUtpbmQuSU5TVEFOVElBVElPTikgewotICAgICAgICBiYWNrZW5kLnJlZ2lzdGVyUGxhdGZvcm1NZW1iZXJzKHR5cGVVc2UudHlwZSwKLSAgICAgICAgICAgIHJlZ2lzdGVyVXNlOiB0cmFuc2Zvcm1lZC5yZWdpc3RlckR5bmFtaWNVc2UpOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJhbnNmb3JtZWQ7Ci0gIH0KLX0KLQotY2xhc3MgRW1pdHRlclVucGFyc2VyIGV4dGVuZHMgVW5wYXJzZXIgewotICBmaW5hbCBNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzOwotCi0gIEVtaXR0ZXJVbnBhcnNlcih0aGlzLnJlbmFtZXMsIHtib29sIG1pbmlmeSwgYm9vbCBzdHJpcFR5cGVzfSkKLSAgICAgIDogc3VwZXIobWluaWZ5OiBtaW5pZnksIHN0cmlwVHlwZXM6IHN0cmlwVHlwZXMpOwotCi0gIHZpc2l0KE5vZGUgbm9kZSkgewotICAgIGlmIChub2RlICE9IG51bGwgJiYgcmVuYW1lcy5jb250YWluc0tleShub2RlKSkgewotICAgICAgd3JpdGUocmVuYW1lc1tub2RlXSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN1cGVyLnZpc2l0KG5vZGUpOwotICAgIH0KLSAgfQotCi0gIHVucGFyc2VTZW5kUmVjZWl2ZXIoU2VuZCBub2RlLCB7Ym9vbCBzcGFjZXNOZWVkZWQ6IGZhbHNlfSkgewotICAgIC8vIFRPRE8oc21vayk6IFJlbW92ZSB1Z2x5IGhhY2sgZm9yIGxpYnJhcnkgcHJlZmljZXMuCi0gICAgaWYgKG5vZGUucmVjZWl2ZXIgIT0gbnVsbCAmJiByZW5hbWVzW25vZGUucmVjZWl2ZXJdID09ICcnKSByZXR1cm47Ci0gICAgc3VwZXIudW5wYXJzZVNlbmRSZWNlaXZlcihub2RlLCBzcGFjZXNOZWVkZWQ6IHNwYWNlc05lZWRlZCk7Ci0gIH0KLQotICB1bnBhcnNlRnVuY3Rpb25OYW1lKE5vZGUgbmFtZSkgewotICAgIGlmIChuYW1lICE9IG51bGwgJiYgcmVuYW1lcy5jb250YWluc0tleShuYW1lKSkgewotICAgICAgd3JpdGUocmVuYW1lc1tuYW1lXSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN1cGVyLnVucGFyc2VGdW5jdGlvbk5hbWUobmFtZSk7Ci0gICAgfQotICB9Ci19Ci0KLS8qKgotICogU29tZSBlbGVtZW50cyBhcmUgbm90IHJlY29yZGVkIGJ5IHJlc29sdmVyIG5vdywKLSAqIGZvciBleGFtcGxlLCB0eXBlZGVmcyBvciBjbGFzc2VzIHdoaWNoIGFyZSBvbmx5Ci0gKiB1c2VkIGluIHNpZ25hdHVyZXMsIGFzL2lzIG9wZXJhdG9ycyBvciBpbiBzdXBlciBjbGF1c2VzCi0gKiAoanVzdCB0byBuYW1lIGEgZmV3KS4gIFJldHJhdmVyc2UgQVNUIHRvIHBpY2sgdGhvc2UgdXAuCi0gKi8KLWNsYXNzIFJlZmVyZW5jZWRFbGVtZW50Q29sbGVjdG9yIGV4dGVuZHMgVmlzaXRvciB7Ci0gIGZpbmFsIERpYWdub3N0aWNSZXBvcnRlciByZXBvcnRlcjsKLSAgZmluYWwgRWxlbWVudCBlbGVtZW50OwotICBmaW5hbCBFbGVtZW50QXN0IGVsZW1lbnRBc3Q7Ci0gIGZpbmFsIG5ld1R5cGVkZWZFbGVtZW50Q2FsbGJhY2s7Ci0gIGZpbmFsIG5ld0NsYXNzRWxlbWVudENhbGxiYWNrOwotCi0gIFJlZmVyZW5jZWRFbGVtZW50Q29sbGVjdG9yKHRoaXMucmVwb3J0ZXIsIHRoaXMuZWxlbWVudCwgdGhpcy5lbGVtZW50QXN0LAotICAgICAgdGhpcy5uZXdUeXBlZGVmRWxlbWVudENhbGxiYWNrLCB0aGlzLm5ld0NsYXNzRWxlbWVudENhbGxiYWNrKTsKLQotICB2aXNpdE5vZGUoTm9kZSBub2RlKSB7Ci0gICAgbm9kZS52aXNpdENoaWxkcmVuKHRoaXMpOwotICB9Ci0KLSAgdmlzaXRUeXBlQW5ub3RhdGlvbihUeXBlQW5ub3RhdGlvbiB0eXBlQW5ub3RhdGlvbikgewotICAgIFRyZWVFbGVtZW50cyB0cmVlRWxlbWVudHMgPSBlbGVtZW50QXN0LnRyZWVFbGVtZW50czsKLSAgICBmaW5hbCBEYXJ0VHlwZSB0eXBlID0gdHJlZUVsZW1lbnRzLmdldFR5cGUodHlwZUFubm90YXRpb24pOwotICAgIGFzc2VydChpbnZhcmlhbnQodHlwZUFubm90YXRpb24sIHR5cGUgIT0gbnVsbCwKLSAgICAgICAgbWVzc2FnZTogIk1pc3NpbmcgdHlwZSBmb3IgdHlwZSBhbm5vdGF0aW9uOiAkdHJlZUVsZW1lbnRzLiIpKTsKLSAgICBpZiAodHlwZS5pc1R5cGVkZWYpIG5ld1R5cGVkZWZFbGVtZW50Q2FsbGJhY2sodHlwZS5lbGVtZW50KTsKLSAgICBpZiAodHlwZS5pc0ludGVyZmFjZVR5cGUpIG5ld0NsYXNzRWxlbWVudENhbGxiYWNrKHR5cGUuZWxlbWVudCk7Ci0gICAgdHlwZUFubm90YXRpb24udmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZvaWQgY29sbGVjdCgpIHsKLSAgICByZXBvcnRlci53aXRoQ3VycmVudEVsZW1lbnQoZWxlbWVudCwgKCkgewotICAgICAgZWxlbWVudEFzdC5hc3QuYWNjZXB0KHRoaXMpOwotICAgIH0pOwotICB9Ci19Ci0KLUNvbXBhcmF0b3IgY29tcGFyZUJ5KGYpID0+ICh4LCB5KSA9PiBmKHgpLmNvbXBhcmVUbyhmKHkpKTsKLQotTGlzdCBzb3J0ZWQoSXRlcmFibGUgbCwgY29tcGFyaXNvbikgewotICBmaW5hbCByZXN1bHQgPSBuZXcgTGlzdC5mcm9tKGwpOwotICByZXN1bHQuc29ydChjb21wYXJpc29uKTsKLSAgcmV0dXJuIHJlc3VsdDsKLX0KLQotY29tcGFyZUVsZW1lbnRzKGUwLCBlMSkgewotICBpbnQgcmVzdWx0ID0gY29tcGFyZUJ5KChlKSA9PiBlLmxpYnJhcnkuY2Fub25pY2FsVXJpLnRvU3RyaW5nKCkpKGUwLCBlMSk7Ci0gIGlmIChyZXN1bHQgIT0gMCkgcmV0dXJuIHJlc3VsdDsKLSAgcmV0dXJuIGNvbXBhcmVCeSgoZSkgPT4gZS5wb3NpdGlvbi5jaGFyT2Zmc2V0KShlMCwgZTEpOwotfQotCi0vLy8gW0NvbnN0YW50Q29tcGlsZXJUYXNrXSBmb3IgY29tcGlsYXRpb24gb2YgY29uc3RhbnRzIGZvciB0aGUgRGFydCBiYWNrZW5kLgotLy8vCi0vLy8gU2luY2UgdGhpcyB0YXNrIG5lZWRzIG5vIGRpc3RpbmN0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgY29uc3RhbnRzCi0vLy8gaXQgYWxzbyBzZXJ2ZXMgYXMgdGhlIFtCYWNrZW5kQ29uc3RhbnRFbnZpcm9ubWVudF0uCi1jbGFzcyBEYXJ0Q29uc3RhbnRUYXNrIGV4dGVuZHMgQ29uc3RhbnRDb21waWxlclRhc2sKLSAgICBpbXBsZW1lbnRzIEJhY2tlbmRDb25zdGFudEVudmlyb25tZW50IHsKLSAgZmluYWwgRGFydENvbnN0YW50Q29tcGlsZXIgY29uc3RhbnRDb21waWxlcjsKLQotICBEYXJ0Q29uc3RhbnRUYXNrKENvbXBpbGVyIGNvbXBpbGVyKQotICAgICAgOiB0aGlzLmNvbnN0YW50Q29tcGlsZXIgPSBuZXcgRGFydENvbnN0YW50Q29tcGlsZXIoY29tcGlsZXIpLAotICAgICAgICBzdXBlcihjb21waWxlci5tZWFzdXJlcik7Ci0KLSAgU3RyaW5nIGdldCBuYW1lID0+ICdDb25zdGFudEhhbmRsZXInOwotCi0gIEBvdmVycmlkZQotICBDb25zdGFudFN5c3RlbSBnZXQgY29uc3RhbnRTeXN0ZW0gPT4gY29uc3RhbnRDb21waWxlci5jb25zdGFudFN5c3RlbTsKLQotICBAb3ZlcnJpZGUKLSAgYm9vbCBoYXNDb25zdGFudFZhbHVlKENvbnN0YW50RXhwcmVzc2lvbiBleHByZXNzaW9uKSB7Ci0gICAgcmV0dXJuIGNvbnN0YW50Q29tcGlsZXIuaGFzQ29uc3RhbnRWYWx1ZShleHByZXNzaW9uKTsKLSAgfQotCi0gIEBvdmVycmlkZQotICBDb25zdGFudFZhbHVlIGdldENvbnN0YW50VmFsdWUoQ29uc3RhbnRFeHByZXNzaW9uIGV4cHJlc3Npb24pIHsKLSAgICByZXR1cm4gY29uc3RhbnRDb21waWxlci5nZXRDb25zdGFudFZhbHVlKGV4cHJlc3Npb24pOwotICB9Ci0KLSAgQG92ZXJyaWRlCi0gIENvbnN0YW50VmFsdWUgZ2V0Q29uc3RhbnRWYWx1ZUZvclZhcmlhYmxlKFZhcmlhYmxlRWxlbWVudCBlbGVtZW50KSB7Ci0gICAgcmV0dXJuIGNvbnN0YW50Q29tcGlsZXIuZ2V0Q29uc3RhbnRWYWx1ZUZvclZhcmlhYmxlKGVsZW1lbnQpOwotICB9Ci0KLSAgQG92ZXJyaWRlCi0gIENvbnN0YW50RXhwcmVzc2lvbiBnZXRDb25zdGFudEZvck5vZGUoTm9kZSBub2RlLCBUcmVlRWxlbWVudHMgZWxlbWVudHMpIHsKLSAgICByZXR1cm4gY29uc3RhbnRDb21waWxlci5nZXRDb25zdGFudEZvck5vZGUobm9kZSwgZWxlbWVudHMpOwotICB9Ci0KLSAgQG92ZXJyaWRlCi0gIENvbnN0YW50VmFsdWUgZ2V0Q29uc3RhbnRWYWx1ZUZvck5vZGUoTm9kZSBub2RlLCBUcmVlRWxlbWVudHMgZWxlbWVudHMpIHsKLSAgICByZXR1cm4gZ2V0Q29uc3RhbnRWYWx1ZSgKLSAgICAgICAgY29uc3RhbnRDb21waWxlci5nZXRDb25zdGFudEZvck5vZGUobm9kZSwgZWxlbWVudHMpKTsKLSAgfQotCi0gIEBvdmVycmlkZQotICBDb25zdGFudFZhbHVlIGdldENvbnN0YW50VmFsdWVGb3JNZXRhZGF0YShNZXRhZGF0YUFubm90YXRpb24gbWV0YWRhdGEpIHsKLSAgICByZXR1cm4gZ2V0Q29uc3RhbnRWYWx1ZShtZXRhZGF0YS5jb25zdGFudCk7Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgQ29uc3RhbnRFeHByZXNzaW9uIGNvbXBpbGVDb25zdGFudChWYXJpYWJsZUVsZW1lbnQgZWxlbWVudCkgewotICAgIHJldHVybiBtZWFzdXJlKCgpIHsKLSAgICAgIHJldHVybiBjb25zdGFudENvbXBpbGVyLmNvbXBpbGVDb25zdGFudChlbGVtZW50KTsKLSAgICB9KTsKLSAgfQotCi0gIEBvdmVycmlkZQotICB2b2lkIGV2YWx1YXRlKENvbnN0YW50RXhwcmVzc2lvbiBjb25zdGFudCkgewotICAgIHJldHVybiBtZWFzdXJlKCgpIHsKLSAgICAgIHJldHVybiBjb25zdGFudENvbXBpbGVyLmV2YWx1YXRlKGNvbnN0YW50KTsKLSAgICB9KTsKLSAgfQotCi0gIEBvdmVycmlkZQotICBDb25zdGFudEV4cHJlc3Npb24gY29tcGlsZVZhcmlhYmxlKFZhcmlhYmxlRWxlbWVudCBlbGVtZW50KSB7Ci0gICAgcmV0dXJuIG1lYXN1cmUoKCkgewotICAgICAgcmV0dXJuIGNvbnN0YW50Q29tcGlsZXIuY29tcGlsZVZhcmlhYmxlKGVsZW1lbnQpOwotICAgIH0pOwotICB9Ci0KLSAgQG92ZXJyaWRlCi0gIENvbnN0YW50RXhwcmVzc2lvbiBjb21waWxlTm9kZShOb2RlIG5vZGUsIFRyZWVFbGVtZW50cyBlbGVtZW50cywKLSAgICAgIHtib29sIGVuZm9yY2VDb25zdDogdHJ1ZX0pIHsKLSAgICByZXR1cm4gbWVhc3VyZSgoKSB7Ci0gICAgICByZXR1cm4gY29uc3RhbnRDb21waWxlci5jb21waWxlTm9kZVdpdGhEZWZpbml0aW9ucyhub2RlLCBlbGVtZW50cywKLSAgICAgICAgICBpc0NvbnN0OiBlbmZvcmNlQ29uc3QpOwotICAgIH0pOwotICB9Ci0KLSAgQG92ZXJyaWRlCi0gIENvbnN0YW50RXhwcmVzc2lvbiBjb21waWxlTWV0YWRhdGEoCi0gICAgICBNZXRhZGF0YUFubm90YXRpb24gbWV0YWRhdGEsIE5vZGUgbm9kZSwgVHJlZUVsZW1lbnRzIGVsZW1lbnRzKSB7Ci0gICAgcmV0dXJuIG1lYXN1cmUoKCkgewotICAgICAgcmV0dXJuIGNvbnN0YW50Q29tcGlsZXIuY29tcGlsZU1ldGFkYXRhKG1ldGFkYXRhLCBub2RlLCBlbGVtZW50cyk7Ci0gICAgfSk7Ci0gIH0KLQotICAvLyBUT0RPKGpvaG5uaXdpbnRoZXIpOiBSZW1vdmUgdGhpcyB3aGVuIHZhbHVlcyBhcmUgY29tcHV0ZWQgZnJvbSB0aGUKLSAgLy8gZXhwcmVzc2lvbnMuCi0gIEBvdmVycmlkZQotICB2b2lkIGNvcHlDb25zdGFudFZhbHVlcyhEYXJ0Q29uc3RhbnRUYXNrIHRhc2spIHsKLSAgICBjb25zdGFudENvbXBpbGVyLmNvbnN0YW50VmFsdWVNYXAKLSAgICAgICAgLmFkZEFsbCh0YXNrLmNvbnN0YW50Q29tcGlsZXIuY29uc3RhbnRWYWx1ZU1hcCk7Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgdm9pZCByZWdpc3RlckxhenlTdGF0aWMoRmllbGRFbGVtZW50IGVsZW1lbnQpIHsKLSAgICAvLyBEbyBub3RoaW5nLgotICB9Ci19CmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvYmFja2VuZF9hc3RfZW1pdHRlci5kYXJ0IGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmRfYXN0X2VtaXR0ZXIuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ3YTQ1Zi4uMDAwMDAwMAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvYmFja2VuZF9hc3RfZW1pdHRlci5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1saWJyYXJ5IGJhY2tlbmRfYXN0X2VtaXR0ZXI7Ci0KLWltcG9ydCAnYmFja2VuZF9hc3Rfbm9kZXMuZGFydCc7Ci1pbXBvcnQgJy4uL2RhcnRfdHlwZXMuZGFydCc7Ci1pbXBvcnQgJy4uL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnOwotCi1jbGFzcyBUeXBlR2VuZXJhdG9yIHsKLSAgLy8vIFRPRE8oam9obm5pd2ludGhlcik6IFJlbW92ZSB0aGlzIHdoZW4gaXNzdWUgMjEyODMgaGFzIGJlZW4gcmVzb2x2ZWQuCi0gIHN0YXRpYyBpbnQgcHNldWRvTmFtZUNvdW50ZXIgPSAwOwotCi0gIHN0YXRpYyBQYXJhbWV0ZXIgZW1pdFBhcmFtZXRlcihEYXJ0VHlwZSB0eXBlLAotICAgICAge1N0cmluZyBuYW1lLCBFbGVtZW50IGVsZW1lbnR9KSB7Ci0gICAgaWYgKG5hbWUgPT0gbnVsbCAmJiBlbGVtZW50ICE9IG51bGwpIHsKLSAgICAgIG5hbWUgPSBlbGVtZW50Lm5hbWU7Ci0gICAgfQotICAgIGlmIChuYW1lID09IG51bGwpIHsKLSAgICAgIG5hbWUgPSAnXyR7cHNldWRvTmFtZUNvdW50ZXIrK30nOwotICAgIH0KLSAgICBQYXJhbWV0ZXIgcGFyYW1ldGVyOwotICAgIGlmICh0eXBlLmlzRnVuY3Rpb25UeXBlKSB7Ci0gICAgICBGdW5jdGlvblR5cGUgZnVuY3Rpb25UeXBlID0gdHlwZTsKLSAgICAgIFR5cGVBbm5vdGF0aW9uIHJldHVyblR5cGUgPSBjcmVhdGVPcHRpb25hbFR5cGUoZnVuY3Rpb25UeXBlLnJldHVyblR5cGUpOwotICAgICAgUGFyYW1ldGVycyBpbm5lclBhcmFtZXRlcnMgPSBjcmVhdGVQYXJhbWV0ZXJzRnJvbVR5cGUoZnVuY3Rpb25UeXBlKTsKLSAgICAgIHBhcmFtZXRlciA9IG5ldyBQYXJhbWV0ZXIuZnVuY3Rpb24obmFtZSwgcmV0dXJuVHlwZSwgaW5uZXJQYXJhbWV0ZXJzKTsKLSAgICB9IGVsc2UgewotICAgICAgVHlwZUFubm90YXRpb24gdHlwZUFubm90YXRpb24gPSBjcmVhdGVPcHRpb25hbFR5cGUodHlwZSk7Ci0gICAgICBwYXJhbWV0ZXIgPSBuZXcgUGFyYW1ldGVyKG5hbWUsIHR5cGU6IHR5cGVBbm5vdGF0aW9uKTsKLSAgICB9Ci0gICAgcGFyYW1ldGVyLmVsZW1lbnQgPSBlbGVtZW50OwotICAgIHJldHVybiBwYXJhbWV0ZXI7Ci0gIH0KLQotICBzdGF0aWMgUGFyYW1ldGVycyBjcmVhdGVQYXJhbWV0ZXJzRnJvbVR5cGUoRnVuY3Rpb25UeXBlIGZ1bmN0aW9uVHlwZSkgewotICAgIHBzZXVkb05hbWVDb3VudGVyID0gMDsKLSAgICBpZiAoZnVuY3Rpb25UeXBlLm5hbWVkUGFyYW1ldGVycy5pc0VtcHR5KSB7Ci0gICAgICByZXR1cm4gbmV3IFBhcmFtZXRlcnMoY3JlYXRlUGFyYW1ldGVycyhmdW5jdGlvblR5cGUucGFyYW1ldGVyVHlwZXMpLAotICAgICAgICAgIGNyZWF0ZVBhcmFtZXRlcnMoZnVuY3Rpb25UeXBlLm9wdGlvbmFsUGFyYW1ldGVyVHlwZXMpLCBmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgUGFyYW1ldGVycygKLSAgICAgICAgICBjcmVhdGVQYXJhbWV0ZXJzKGZ1bmN0aW9uVHlwZS5wYXJhbWV0ZXJUeXBlcyksCi0gICAgICAgICAgY3JlYXRlUGFyYW1ldGVycyhmdW5jdGlvblR5cGUubmFtZWRQYXJhbWV0ZXJUeXBlcywKLSAgICAgICAgICAgICAgbmFtZXM6IGZ1bmN0aW9uVHlwZS5uYW1lZFBhcmFtZXRlcnMpLAotICAgICAgICAgIHRydWUpOwotICAgIH0KLSAgfQotCi0gIHN0YXRpYyBMaXN0PFBhcmFtZXRlcj4gY3JlYXRlUGFyYW1ldGVycyhJdGVyYWJsZTxEYXJ0VHlwZT4gcGFyYW1ldGVyVHlwZXMsCi0gICAgICB7SXRlcmFibGU8U3RyaW5nPiBuYW1lczogY29uc3QgPFN0cmluZz5bXSwKLSAgICAgIEl0ZXJhYmxlPEVsZW1lbnQ+IGVsZW1lbnRzOiBjb25zdCA8RWxlbWVudD5bXX0pIHsKLSAgICBJdGVyYXRvcjxTdHJpbmc+IG5hbWUgPSBuYW1lcy5pdGVyYXRvcjsKLSAgICBJdGVyYXRvcjxFbGVtZW50PiBlbGVtZW50ID0gZWxlbWVudHMuaXRlcmF0b3I7Ci0gICAgcmV0dXJuIHBhcmFtZXRlclR5cGVzLm1hcCgoRGFydFR5cGUgdHlwZSkgewotICAgICAgbmFtZS5tb3ZlTmV4dCgpOwotICAgICAgZWxlbWVudC5tb3ZlTmV4dCgpOwotICAgICAgcmV0dXJuIGVtaXRQYXJhbWV0ZXIodHlwZSwgbmFtZTogbmFtZS5jdXJyZW50LCBlbGVtZW50OiBlbGVtZW50LmN1cnJlbnQpOwotICAgIH0pLnRvTGlzdCgpOwotICB9Ci0KLSAgLy8vIExpa2UgW2NyZWF0ZVR5cGVBbm5vdGF0aW9uXSBleGNlcHQgdGhlIGR5bmFtaWMgdHlwZSBpcyBjb252ZXJ0ZWQgdG8gbnVsbC4KLSAgc3RhdGljIFR5cGVBbm5vdGF0aW9uIGNyZWF0ZU9wdGlvbmFsVHlwZShEYXJ0VHlwZSB0eXBlKSB7Ci0gICAgaWYgKHR5cGUudHJlYXRBc0R5bmFtaWMpIHsKLSAgICAgIHJldHVybiBudWxsOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gY3JlYXRlVHlwZSh0eXBlKTsKLSAgICB9Ci0gIH0KLQotICAvLy8gQ3JlYXRlcyB0aGUgW1R5cGVBbm5vdGF0aW9uXSBmb3IgYSBbdHlwZV0gdGhhdCBpcyBub3QgZnVuY3Rpb24gdHlwZS4KLSAgc3RhdGljIFR5cGVBbm5vdGF0aW9uIGNyZWF0ZVR5cGUoRGFydFR5cGUgdHlwZSkgewotICAgIGlmICh0eXBlIGlzIEdlbmVyaWNUeXBlKSB7Ci0gICAgICBpZiAodHlwZS50cmVhdEFzUmF3KSB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZUFubm90YXRpb24odHlwZS5lbGVtZW50Lm5hbWUpLi5kYXJ0VHlwZSA9IHR5cGU7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3IFR5cGVBbm5vdGF0aW9uKHR5cGUuZWxlbWVudC5uYW1lLAotICAgICAgICAgIHR5cGUudHlwZUFyZ3VtZW50cy5tYXAoY3JlYXRlVHlwZSkudG9MaXN0KGdyb3dhYmxlOiBmYWxzZSkpCi0gICAgICAgIC4uZGFydFR5cGUgPSB0eXBlOwotICAgIH0gZWxzZSBpZiAodHlwZSBpcyBWb2lkVHlwZSkgewotICAgICAgcmV0dXJuIG5ldyBUeXBlQW5ub3RhdGlvbigndm9pZCcpLi5kYXJ0VHlwZSA9IHR5cGU7Ci0gICAgfSBlbHNlIGlmICh0eXBlIGlzIFR5cGVWYXJpYWJsZVR5cGUpIHsKLSAgICAgIHJldHVybiBuZXcgVHlwZUFubm90YXRpb24odHlwZS5uYW1lKS4uZGFydFR5cGUgPSB0eXBlOwotICAgIH0gZWxzZSBpZiAodHlwZSBpcyBEeW5hbWljVHlwZSkgewotICAgICAgcmV0dXJuIG5ldyBUeXBlQW5ub3RhdGlvbigiZHluYW1pYyIpLi5kYXJ0VHlwZSA9IHR5cGU7Ci0gICAgfSBlbHNlIGlmICh0eXBlIGlzIE1hbGZvcm1lZFR5cGUpIHsKLSAgICAgIHJldHVybiBuZXcgVHlwZUFubm90YXRpb24odHlwZS5uYW1lKS4uZGFydFR5cGUgPSB0eXBlOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyAiVW5zdXBwb3J0ZWQgdHlwZSBhbm5vdGF0aW9uOiAkdHlwZSI7Ci0gICAgfQotICB9Ci19CmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvYmFja2VuZF9hc3Rfbm9kZXMuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9iYWNrZW5kX2FzdF9ub2Rlcy5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzhhYmQwLi4wMDAwMDAwCi0tLSBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9iYWNrZW5kX2FzdF9ub2Rlcy5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMTU1NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTQsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWxpYnJhcnkgYmFja2VuZF9hc3Rfbm9kZXM7Ci0KLWltcG9ydCAnLi4vY29uc3RhbnRzL3ZhbHVlcy5kYXJ0JyBhcyB2YWx1ZXM7Ci1pbXBvcnQgJy4uL2RhcnRfdHlwZXMuZGFydCcgYXMgdHlwZXM7Ci1pbXBvcnQgJy4uL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnIGFzIGVsZW1lbnRzOwotaW1wb3J0ICcuLi90cmVlL3RyZWUuZGFydCcgYXMgdHJlZTsKLWltcG9ydCAnLi4vdXRpbC9jaGFyYWN0ZXJzLmRhcnQnIGFzIGNoYXJhY3RlcnM7Ci0KLS8vLyBUaGUgZm9sbG93aW5nIG5vZGVzIGNvcnJlc3BvbmQgdG8gW3RyZWUuU2VuZF0gZXhwcmVzc2lvbnM6Ci0vLy8gW0ZpZWxkRXhwcmVzc2lvbl0sIFtJbmRleEV4cHJlc3Npb25dLCBbQXNzaWdubWVudF0sIFtJbmNyZW1lbnRdLAotLy8vIFtDYWxsRnVuY3Rpb25dLCBbQ2FsbE1ldGhvZF0sIFtDYWxsTmV3XSwgW0NhbGxTdGF0aWNdLCBbVW5hcnlPcGVyYXRvcl0sCi0vLy8gW0JpbmFyeU9wZXJhdG9yXSwgYW5kIFtUeXBlT3BlcmF0b3JdLgotYWJzdHJhY3QgY2xhc3MgTm9kZSB7fQotCi0vLy8gUmVjZWl2ZXIgaXMgYW4gW0V4cHJlc3Npb25dIG9yIHRoZSBbU3VwZXJSZWNlaXZlcl0uCi1hYnN0cmFjdCBjbGFzcyBSZWNlaXZlciBleHRlbmRzIE5vZGUge30KLQotLy8vIEFyZ3VtZW50IGlzIGFuIFtFeHByZXNzaW9uXSBvciBhIFtOYW1lZEFyZ3VtZW50XS4KLWFic3RyYWN0IGNsYXNzIEFyZ3VtZW50IGV4dGVuZHMgTm9kZSB7fQotCi1hYnN0cmFjdCBjbGFzcyBFeHByZXNzaW9uIGV4dGVuZHMgTm9kZSBpbXBsZW1lbnRzIFJlY2VpdmVyLCBBcmd1bWVudCB7Ci0gIGJvb2wgZ2V0IGFzc2lnbmFibGUgPT4gZmFsc2U7Ci19Ci0KLWFic3RyYWN0IGNsYXNzIFJvb3ROb2RlIGV4dGVuZHMgTm9kZSB7Ci0gIGVsZW1lbnRzLkVsZW1lbnQgZ2V0IGVsZW1lbnQ7Ci19Ci0KLWNsYXNzIEZpZWxkRGVmaW5pdGlvbiBleHRlbmRzIFJvb3ROb2RlIHsKLSAgZmluYWwgZWxlbWVudHMuRWxlbWVudCBlbGVtZW50OwotICBmaW5hbCBFeHByZXNzaW9uIGluaXRpYWxpemVyOwotICBGaWVsZERlZmluaXRpb24odGhpcy5lbGVtZW50LCB0aGlzLmluaXRpYWxpemVyKTsKLX0KLQotYWJzdHJhY3QgY2xhc3MgU3RhdGVtZW50IGV4dGVuZHMgTm9kZSB7fQotCi0vLy8gVXNlZCBhcyByZWNlaXZlciBpbiBleHByZXNzaW9ucyB0aGF0IGRpc3BhdGNoIHRvIHRoZSBzdXBlciBjbGFzcy4KLS8vLyBGb3IgaW5zdGFuY2UsIGFuIGV4cHJlc3Npb24gc3VjaCBhcyBgc3VwZXIuZigpYCBpcyByZXByZXNlbnRlZAotLy8vIGJ5IGEgW0NhbGxNZXRob2RdIG5vZGUgd2l0aCBbU3VwZXJSZWNlaXZlcl0gYXMgaXRzIHJlY2VpdmVyLgotY2xhc3MgU3VwZXJSZWNlaXZlciBleHRlbmRzIFJlY2VpdmVyIHsKLSAgc3RhdGljIGZpbmFsIFN1cGVyUmVjZWl2ZXIgX2luc3RhbmNlID0gbmV3IFN1cGVyUmVjZWl2ZXIuX2NyZWF0ZSgpOwotCi0gIGZhY3RvcnkgU3VwZXJSZWNlaXZlcigpID0+IF9pbnN0YW5jZTsKLSAgU3VwZXJSZWNlaXZlci5fY3JlYXRlKCk7Ci19Ci0KLS8vLyBOYW1lZCBhcmd1bWVudHMgbWF5IG9jY3VyIGluIHRoZSBhcmd1bWVudCBsaXN0IG9mCi0vLy8gW0NhbGxGdW5jdGlvbl0sIFtDYWxsTWV0aG9kXSwgW0NhbGxOZXddLCBhbmQgW0NhbGxTdGF0aWNdLgotY2xhc3MgTmFtZWRBcmd1bWVudCBleHRlbmRzIEFyZ3VtZW50IHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0gIGZpbmFsIEV4cHJlc3Npb24gZXhwcmVzc2lvbjsKLQotICBOYW1lZEFyZ3VtZW50KHRoaXMubmFtZSwgdGhpcy5leHByZXNzaW9uKTsKLX0KLQotY2xhc3MgVHlwZUFubm90YXRpb24gZXh0ZW5kcyBOb2RlIHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0gIGZpbmFsIExpc3Q8VHlwZUFubm90YXRpb24+IHR5cGVBcmd1bWVudHM7Ci0KLSAgdHlwZXMuRGFydFR5cGUgZGFydFR5cGU7Ci0KLSAgVHlwZUFubm90YXRpb24odGhpcy5uYW1lLCBbdGhpcy50eXBlQXJndW1lbnRzID0gY29uc3QgPFR5cGVBbm5vdGF0aW9uPltdXSk7Ci19Ci0KLS8vIFNUQVRFTUVOVFMKLQotY2xhc3MgQmxvY2sgZXh0ZW5kcyBTdGF0ZW1lbnQgewotICBmaW5hbCBMaXN0PFN0YXRlbWVudD4gc3RhdGVtZW50czsKLQotICBCbG9jayh0aGlzLnN0YXRlbWVudHMpOwotfQotCi1jbGFzcyBCcmVhayBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIFN0cmluZyBsYWJlbDsKLQotICBCcmVhayhbdGhpcy5sYWJlbF0pOwotfQotCi1jbGFzcyBDb250aW51ZSBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIFN0cmluZyBsYWJlbDsKLQotICBDb250aW51ZShbdGhpcy5sYWJlbF0pOwotfQotCi1jbGFzcyBFbXB0eVN0YXRlbWVudCBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIHN0YXRpYyBmaW5hbCBFbXB0eVN0YXRlbWVudCBfaW5zdGFuY2UgPSBuZXcgRW1wdHlTdGF0ZW1lbnQuX2NyZWF0ZSgpOwotCi0gIGZhY3RvcnkgRW1wdHlTdGF0ZW1lbnQoKSA9PiBfaW5zdGFuY2U7Ci0gIEVtcHR5U3RhdGVtZW50Ll9jcmVhdGUoKTsKLX0KLQotY2xhc3MgRXhwcmVzc2lvblN0YXRlbWVudCBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIEV4cHJlc3Npb24gZXhwcmVzc2lvbjsKLQotICBFeHByZXNzaW9uU3RhdGVtZW50KHRoaXMuZXhwcmVzc2lvbik7Ci19Ci0KLWNsYXNzIEZvciBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIE5vZGUgaW5pdGlhbGl6ZXI7Ci0gIGZpbmFsIEV4cHJlc3Npb24gY29uZGl0aW9uOwotICBmaW5hbCBMaXN0PEV4cHJlc3Npb24+IHVwZGF0ZXM7Ci0gIGZpbmFsIFN0YXRlbWVudCBib2R5OwotCi0gIC8vLyBJbml0aWFsaXplciBtdXN0IGJlIFtWYXJpYWJsZURlY2xhcmF0aW9uc10gb3IgW0V4cHJlc3Npb25dIG9yIG51bGwuCi0gIEZvcih0aGlzLmluaXRpYWxpemVyLCB0aGlzLmNvbmRpdGlvbiwgdGhpcy51cGRhdGVzLCB0aGlzLmJvZHkpIHsKLSAgICBhc3NlcnQoaW5pdGlhbGl6ZXIgPT0gbnVsbCB8fAotICAgICAgICBpbml0aWFsaXplciBpcyBWYXJpYWJsZURlY2xhcmF0aW9ucyB8fAotICAgICAgICBpbml0aWFsaXplciBpcyBFeHByZXNzaW9uKTsKLSAgfQotfQotCi1jbGFzcyBGb3JJbiBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIE5vZGUgbGVmdEhhbmRWYWx1ZTsKLSAgZmluYWwgRXhwcmVzc2lvbiBleHByZXNzaW9uOwotICBmaW5hbCBTdGF0ZW1lbnQgYm9keTsKLQotICAvLy8gW2xlZnRIYW5kVmFsdWVdIG11c3QgYmUgW0lkZW50aWZpZXJdIG9yIFtWYXJpYWJsZURlY2xhcmF0aW9uc10gd2l0aAotICAvLy8gZXhhY3RseSBvbmUgZGVmaW5pdGlvbiwgYW5kIHRoYXQgdmFyaWFibGUgZGVmaW5pdGlvbiBtdXN0IGhhdmUgbm8KLSAgLy8vIGluaXRpYWxpemVyLgotICBGb3JJbihOb2RlIGxlZnRIYW5kVmFsdWUsIHRoaXMuZXhwcmVzc2lvbiwgdGhpcy5ib2R5KQotICAgICAgOiB0aGlzLmxlZnRIYW5kVmFsdWUgPSBsZWZ0SGFuZFZhbHVlIHsKLSAgICBhc3NlcnQobGVmdEhhbmRWYWx1ZSBpcyBJZGVudGlmaWVyIHx8Ci0gICAgICAgIChsZWZ0SGFuZFZhbHVlIGlzIFZhcmlhYmxlRGVjbGFyYXRpb25zICYmCi0gICAgICAgICAgICBsZWZ0SGFuZFZhbHVlLmRlY2xhcmF0aW9ucy5sZW5ndGggPT0gMSAmJgotICAgICAgICAgICAgbGVmdEhhbmRWYWx1ZS5kZWNsYXJhdGlvbnNbMF0uaW5pdGlhbGl6ZXIgPT0gbnVsbCkpOwotICB9Ci19Ci0KLWNsYXNzIFdoaWxlIGV4dGVuZHMgU3RhdGVtZW50IHsKLSAgZmluYWwgRXhwcmVzc2lvbiBjb25kaXRpb247Ci0gIGZpbmFsIFN0YXRlbWVudCBib2R5OwotCi0gIFdoaWxlKHRoaXMuY29uZGl0aW9uLCB0aGlzLmJvZHkpOwotfQotCi1jbGFzcyBEb1doaWxlIGV4dGVuZHMgU3RhdGVtZW50IHsKLSAgZmluYWwgU3RhdGVtZW50IGJvZHk7Ci0gIGZpbmFsIEV4cHJlc3Npb24gY29uZGl0aW9uOwotCi0gIERvV2hpbGUodGhpcy5ib2R5LCB0aGlzLmNvbmRpdGlvbik7Ci19Ci0KLWNsYXNzIElmIGV4dGVuZHMgU3RhdGVtZW50IHsKLSAgZmluYWwgRXhwcmVzc2lvbiBjb25kaXRpb247Ci0gIGZpbmFsIFN0YXRlbWVudCB0aGVuU3RhdGVtZW50OwotICBmaW5hbCBTdGF0ZW1lbnQgZWxzZVN0YXRlbWVudDsKLQotICBJZih0aGlzLmNvbmRpdGlvbiwgdGhpcy50aGVuU3RhdGVtZW50LCBbdGhpcy5lbHNlU3RhdGVtZW50XSk7Ci19Ci0KLWNsYXNzIExhYmVsZWRTdGF0ZW1lbnQgZXh0ZW5kcyBTdGF0ZW1lbnQgewotICBmaW5hbCBTdHJpbmcgbGFiZWw7Ci0gIGZpbmFsIFN0YXRlbWVudCBzdGF0ZW1lbnQ7Ci0KLSAgTGFiZWxlZFN0YXRlbWVudCh0aGlzLmxhYmVsLCB0aGlzLnN0YXRlbWVudCk7Ci19Ci0KLWNsYXNzIFJldGhyb3cgZXh0ZW5kcyBTdGF0ZW1lbnQge30KLQotY2xhc3MgUmV0dXJuIGV4dGVuZHMgU3RhdGVtZW50IHsKLSAgZmluYWwgRXhwcmVzc2lvbiBleHByZXNzaW9uOwotCi0gIFJldHVybihbdGhpcy5leHByZXNzaW9uXSk7Ci19Ci0KLWNsYXNzIFN3aXRjaCBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIEV4cHJlc3Npb24gZXhwcmVzc2lvbjsKLSAgZmluYWwgTGlzdDxTd2l0Y2hDYXNlPiBjYXNlczsKLQotICBTd2l0Y2godGhpcy5leHByZXNzaW9uLCB0aGlzLmNhc2VzKTsKLX0KLQotLy8vIEEgc2VxdWVuY2Ugb2YgY2FzZSBjbGF1c2VzIGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2Ugb2Ygc3RhdGVtZW50cy4KLS8vLyBSZXByZXNlbnRzIHRoZSBkZWZhdWx0IGNhc2UgaWYgW2V4cHJlc3Npb25zXSBpcyBudWxsLgotLy8vCi0vLy8gTk9URToKLS8vLyBDb250cm9sIHdpbGwgbmV2ZXIgZmFsbCB0aHJvdWdoIHRvIHRoZSBmb2xsb3dpbmcgU3dpdGNoQ2FzZSwgZXZlbiBpZgotLy8vIHRoZSBsaXN0IG9mIHN0YXRlbWVudHMgaXMgZW1wdHkuIEFuIGVtcHR5IGxpc3Qgb2Ygc3RhdGVtZW50cyB3aWxsIGJlCi0vLy8gdW5wYXJzZWQgdG8gYSBzZW1pY29sb24gdG8gZ3VhcmFudGVlIHRoaXMgYmVoYXZpb3VyLgotY2xhc3MgU3dpdGNoQ2FzZSBleHRlbmRzIE5vZGUgewotICBmaW5hbCBMaXN0PEV4cHJlc3Npb24+IGV4cHJlc3Npb25zOwotICBmaW5hbCBMaXN0PFN0YXRlbWVudD4gc3RhdGVtZW50czsKLQotICBTd2l0Y2hDYXNlKHRoaXMuZXhwcmVzc2lvbnMsIHRoaXMuc3RhdGVtZW50cyk7Ci0gIFN3aXRjaENhc2UuZGVmYXVsdENhc2UodGhpcy5zdGF0ZW1lbnRzKSA6IGV4cHJlc3Npb25zID0gbnVsbDsKLQotICBib29sIGdldCBpc0RlZmF1bHRDYXNlID0+IGV4cHJlc3Npb25zID09IG51bGw7Ci19Ci0KLS8vLyBBIHRyeSBzdGF0ZW1lbnQuIFRoZSB0cnksIGNhdGNoIGFuZCBmaW5hbGx5IGJsb2NrcyB3aWxsIGF1dG9tYXRpY2FsbHkKLS8vLyBiZSBwcmludGVkIGluc2lkZSBhIGJsb2NrIHN0YXRlbWVudCBpZiBuZWNlc3NhcnkuCi1jbGFzcyBUcnkgZXh0ZW5kcyBTdGF0ZW1lbnQgewotICBmaW5hbCBTdGF0ZW1lbnQgdHJ5QmxvY2s7Ci0gIGZpbmFsIExpc3Q8Q2F0Y2hCbG9jaz4gY2F0Y2hCbG9ja3M7Ci0gIGZpbmFsIFN0YXRlbWVudCBmaW5hbGx5QmxvY2s7Ci0KLSAgVHJ5KHRoaXMudHJ5QmxvY2ssIHRoaXMuY2F0Y2hCbG9ja3MsIFt0aGlzLmZpbmFsbHlCbG9ja10pIHsKLSAgICBhc3NlcnQoY2F0Y2hCbG9ja3MubGVuZ3RoID4gMCB8fCBmaW5hbGx5QmxvY2sgIT0gbnVsbCk7Ci0gIH0KLX0KLQotY2xhc3MgQ2F0Y2hCbG9jayBleHRlbmRzIE5vZGUgewotICBmaW5hbCBUeXBlQW5ub3RhdGlvbiBvblR5cGU7Ci0gIGZpbmFsIFZhcmlhYmxlRGVjbGFyYXRpb24gZXhjZXB0aW9uVmFyOwotICBmaW5hbCBWYXJpYWJsZURlY2xhcmF0aW9uIHN0YWNrVmFyOwotICBmaW5hbCBTdGF0ZW1lbnQgYm9keTsKLQotICAvLy8gQXQgbGVhc3Qgb25UeXBlIG9yIGV4Y2VwdGlvblZhciBtdXN0IGJlIGdpdmVuLgotICAvLy8gc3RhY2tWYXIgbWF5IG9ubHkgYmUgZ2l2ZW4gaWYgZXhjZXB0aW9uVmFyIGlzIGFsc28gZ2l2ZW4uCi0gIENhdGNoQmxvY2sodGhpcy5ib2R5LCB7dGhpcy5vblR5cGUsIHRoaXMuZXhjZXB0aW9uVmFyLCB0aGlzLnN0YWNrVmFyfSkgewotICAgIC8vIE11c3Qgc3BlY2lmeSBhdCBsZWFzdCBhIHR5cGUgb3IgYW4gZXhjZXB0aW9uIGJpbmRpbmcuCi0gICAgYXNzZXJ0KG9uVHlwZSAhPSBudWxsIHx8IGV4Y2VwdGlvblZhciAhPSBudWxsKTsKLQotICAgIC8vIFdlIGNhbm5vdCBiaW5kIHRoZSBzdGFjayB0cmFjZSB3aXRob3V0IGJpbmRpbmcgdGhlIGV4Y2VwdGlvbiB0b28uCi0gICAgYXNzZXJ0KHN0YWNrVmFyID09IG51bGwgfHwgZXhjZXB0aW9uVmFyICE9IG51bGwpOwotICB9Ci19Ci0KLWNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb25zIGV4dGVuZHMgU3RhdGVtZW50IHsKLSAgZmluYWwgVHlwZUFubm90YXRpb24gdHlwZTsKLSAgZmluYWwgYm9vbCBpc0ZpbmFsOwotICBmaW5hbCBib29sIGlzQ29uc3Q7Ci0gIGZpbmFsIExpc3Q8VmFyaWFibGVEZWNsYXJhdGlvbj4gZGVjbGFyYXRpb25zOwotCi0gIFZhcmlhYmxlRGVjbGFyYXRpb25zKHRoaXMuZGVjbGFyYXRpb25zLAotICAgICAge3RoaXMudHlwZSwgdGhpcy5pc0ZpbmFsOiBmYWxzZSwgdGhpcy5pc0NvbnN0OiBmYWxzZX0pIHsKLSAgICAvLyBDYW5ub3QgYmUgYm90aCBmaW5hbCBhbmQgY29uc3QuCi0gICAgYXNzZXJ0KCFpc0ZpbmFsIHx8ICFpc0NvbnN0KTsKLSAgfQotfQotCi1jbGFzcyBWYXJpYWJsZURlY2xhcmF0aW9uIGV4dGVuZHMgTm9kZSB7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotICBmaW5hbCBFeHByZXNzaW9uIGluaXRpYWxpemVyOwotCi0gIGVsZW1lbnRzLkVsZW1lbnQgZWxlbWVudDsKLQotICBWYXJpYWJsZURlY2xhcmF0aW9uKHRoaXMubmFtZSwgW3RoaXMuaW5pdGlhbGl6ZXJdKTsKLX0KLQotY2xhc3MgRnVuY3Rpb25EZWNsYXJhdGlvbiBleHRlbmRzIFN0YXRlbWVudCB7Ci0gIGZpbmFsIEZ1bmN0aW9uRXhwcmVzc2lvbiBmdW5jdGlvbjsKLQotICBUeXBlQW5ub3RhdGlvbiBnZXQgcmV0dXJuVHlwZSA9PiBmdW5jdGlvbi5yZXR1cm5UeXBlOwotICBQYXJhbWV0ZXJzIGdldCBwYXJhbWV0ZXJzID0+IGZ1bmN0aW9uLnBhcmFtZXRlcnM7Ci0gIFN0cmluZyBnZXQgbmFtZSA9PiBmdW5jdGlvbi5uYW1lOwotICBTdGF0ZW1lbnQgZ2V0IGJvZHkgPT4gZnVuY3Rpb24uYm9keTsKLQotICBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuZnVuY3Rpb24pOwotfQotCi1jbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgTm9kZSB7Ci0gIGZpbmFsIExpc3Q8UGFyYW1ldGVyPiByZXF1aXJlZFBhcmFtZXRlcnM7Ci0gIGZpbmFsIExpc3Q8UGFyYW1ldGVyPiBvcHRpb25hbFBhcmFtZXRlcnM7Ci0gIGZpbmFsIGJvb2wgaGFzTmFtZWRQYXJhbWV0ZXJzOwotCi0gIFBhcmFtZXRlcnModGhpcy5yZXF1aXJlZFBhcmFtZXRlcnMsCi0gICAgICBbdGhpcy5vcHRpb25hbFBhcmFtZXRlcnMsIHRoaXMuaGFzTmFtZWRQYXJhbWV0ZXJzID0gZmFsc2VdKTsKLQotICBQYXJhbWV0ZXJzLm5hbWVkKHRoaXMucmVxdWlyZWRQYXJhbWV0ZXJzLCB0aGlzLm9wdGlvbmFsUGFyYW1ldGVycykKLSAgICAgIDogaGFzTmFtZWRQYXJhbWV0ZXJzID0gdHJ1ZTsKLQotICBQYXJhbWV0ZXJzLnBvc2l0aW9uYWwodGhpcy5yZXF1aXJlZFBhcmFtZXRlcnMsIHRoaXMub3B0aW9uYWxQYXJhbWV0ZXJzKQotICAgICAgOiBoYXNOYW1lZFBhcmFtZXRlcnMgPSBmYWxzZTsKLQotICBib29sIGdldCBoYXNPcHRpb25hbFBhcmFtZXRlcnMgPT4KLSAgICAgIG9wdGlvbmFsUGFyYW1ldGVycyAhPSBudWxsICYmIG9wdGlvbmFsUGFyYW1ldGVycy5sZW5ndGggPiAwOwotfQotCi1jbGFzcyBQYXJhbWV0ZXIgZXh0ZW5kcyBOb2RlIHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0KLSAgLy8vIFR5cGUgb2YgcGFyYW1ldGVyLCBvciByZXR1cm4gdHlwZSBvZiBmdW5jdGlvbiBwYXJhbWV0ZXIuCi0gIGZpbmFsIFR5cGVBbm5vdGF0aW9uIHR5cGU7Ci0KLSAgRXhwcmVzc2lvbiBkZWZhdWx0VmFsdWU7Ci0KLSAgLy8vIFBhcmFtZXRlcnMgdG8gZnVuY3Rpb24gcGFyYW1ldGVyLiBOdWxsIGZvciBub24tZnVuY3Rpb24gcGFyYW1ldGVycy4KLSAgZmluYWwgUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotCi0gIGVsZW1lbnRzLkZvcm1hbEVsZW1lbnQgZWxlbWVudDsKLQotICBQYXJhbWV0ZXIodGhpcy5uYW1lLCB7dGhpcy50eXBlLCB0aGlzLmRlZmF1bHRWYWx1ZX0pIDogcGFyYW1ldGVycyA9IG51bGw7Ci0KLSAgUGFyYW1ldGVyLmZ1bmN0aW9uKHRoaXMubmFtZSwgVHlwZUFubm90YXRpb24gcmV0dXJuVHlwZSwgdGhpcy5wYXJhbWV0ZXJzLAotICAgICAgW3RoaXMuZGVmYXVsdFZhbHVlXSkKLSAgICAgIDogdHlwZSA9IHJldHVyblR5cGUgewotICAgIGFzc2VydChwYXJhbWV0ZXJzICE9IG51bGwpOwotICB9Ci0KLSAgLy8vIFRydWUgaWYgdGhpcyBpcyBhIGZ1bmN0aW9uIHBhcmFtZXRlci4KLSAgYm9vbCBnZXQgaXNGdW5jdGlvbiA9PiBwYXJhbWV0ZXJzICE9IG51bGw7Ci19Ci0KLS8vIEVYUFJFU1NJT05TCi0KLWFic3RyYWN0IGNsYXNzIEluaXRpYWxpemVyIGV4dGVuZHMgRXhwcmVzc2lvbiB7fQotCi1jbGFzcyBGaWVsZEluaXRpYWxpemVyIGV4dGVuZHMgSW5pdGlhbGl6ZXIgewotICBmaW5hbCBlbGVtZW50cy5GaWVsZEVsZW1lbnQgZWxlbWVudDsKLSAgZmluYWwgRXhwcmVzc2lvbiBib2R5OwotCi0gIEZpZWxkSW5pdGlhbGl6ZXIodGhpcy5lbGVtZW50LCB0aGlzLmJvZHkpOwotfQotCi1jbGFzcyBTdXBlckluaXRpYWxpemVyIGV4dGVuZHMgSW5pdGlhbGl6ZXIgewotICBmaW5hbCBlbGVtZW50cy5Db25zdHJ1Y3RvckVsZW1lbnQgdGFyZ2V0OwotICBmaW5hbCBMaXN0PEFyZ3VtZW50PiBhcmd1bWVudHM7Ci0KLSAgU3VwZXJJbml0aWFsaXplcih0aGlzLnRhcmdldCwgdGhpcy5hcmd1bWVudHMpOwotfQotCi1jbGFzcyBGdW5jdGlvbkV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIGltcGxlbWVudHMgUm9vdE5vZGUgewotICBmaW5hbCBUeXBlQW5ub3RhdGlvbiByZXR1cm5UeXBlOwotICBTdHJpbmcgbmFtZTsKLSAgZmluYWwgUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICBmaW5hbCBTdGF0ZW1lbnQgYm9keTsKLSAgZmluYWwgYm9vbCBpc0dldHRlcjsKLSAgZmluYWwgYm9vbCBpc1NldHRlcjsKLQotICBlbGVtZW50cy5GdW5jdGlvbkVsZW1lbnQgZWxlbWVudDsKLQotICBGdW5jdGlvbkV4cHJlc3Npb24odGhpcy5wYXJhbWV0ZXJzLCB0aGlzLmJvZHksCi0gICAgICB7dGhpcy5uYW1lLAotICAgICAgdGhpcy5yZXR1cm5UeXBlLAotICAgICAgdGhpcy5pc0dldHRlcjogZmFsc2UsCi0gICAgICB0aGlzLmlzU2V0dGVyOiBmYWxzZX0pIHsKLSAgICAvLyBGdW5jdGlvbiBtdXN0IGhhdmUgYSBuYW1lIGlmIGl0IGhhcyBhIHJldHVybiB0eXBlCi0gICAgYXNzZXJ0KHJldHVyblR5cGUgPT0gbnVsbCB8fCBuYW1lICE9IG51bGwpOwotICB9Ci19Ci0KLWNsYXNzIENvbnN0cnVjdG9yRGVmaW5pdGlvbiBleHRlbmRzIEZ1bmN0aW9uRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIExpc3Q8SW5pdGlhbGl6ZXI+IGluaXRpYWxpemVyczsKLSAgZmluYWwgYm9vbCBpc0NvbnN0OwotCi0gIENvbnN0cnVjdG9yRGVmaW5pdGlvbihQYXJhbWV0ZXJzIHBhcmFtZXRlcnMsIFN0YXRlbWVudCBib2R5LAotICAgICAgdGhpcy5pbml0aWFsaXplcnMsIFN0cmluZyBuYW1lLCB0aGlzLmlzQ29uc3QpCi0gICAgICA6IHN1cGVyKHBhcmFtZXRlcnMsIGJvZHksIG5hbWU6IG5hbWUpOwotfQotCi1jbGFzcyBDb25kaXRpb25hbCBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBFeHByZXNzaW9uIGNvbmRpdGlvbjsKLSAgZmluYWwgRXhwcmVzc2lvbiB0aGVuRXhwcmVzc2lvbjsKLSAgZmluYWwgRXhwcmVzc2lvbiBlbHNlRXhwcmVzc2lvbjsKLQotICBDb25kaXRpb25hbCh0aGlzLmNvbmRpdGlvbiwgdGhpcy50aGVuRXhwcmVzc2lvbiwgdGhpcy5lbHNlRXhwcmVzc2lvbik7Ci19Ci0KLS8vLyBBbiBpZGVudGlmaWVyIGV4cHJlc3Npb24uCi0vLy8gVGhlIHVucGFyc2VyIGRvZXMgbm90IGNvbmNlcm4gaXRzZWxmIHdpdGggc2NvcGluZyBydWxlcywgYW5kIGl0IGlzIHRoZQotLy8vIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBBU1QgY3JlYXRvciB0byBlbnN1cmUgdGhhdCB0aGUgaWRlbnRpZmllciByZXNvbHZlcwotLy8vIHRvIHRoZSBwcm9wZXIgZGVmaW5pdGlvbi4KLS8vLyBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoaXMgY2xhc3MgaXMgYWxzbyB1c2VkIHRvIHJlZmVyZW5jZSBzdGF0aWMgZmllbGRzIGFuZAotLy8vIHRvcC1sZXZlbCB2YXJpYWJsZXMgdGhhdCBhcmUgcXVhbGlmaWVkIHdpdGggYSBjbGFzcyBhbmQvb3IgbGlicmFyeSBuYW1lLAotLy8vIGFzc3VtaW5nIHRoZSBbZWxlbWVudF0gaXMgc2V0LiBUaGlzIGlzIGxpa2VseSB0byBjaGFuZ2Ugd2hlbiB0aGUgb2xkIGJhY2tlbmQKLS8vLyBpcyByZXBsYWNlZC4KLWNsYXNzIElkZW50aWZpZXIgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0KLSAgZWxlbWVudHMuRWxlbWVudCBlbGVtZW50OwotCi0gIElkZW50aWZpZXIodGhpcy5uYW1lKTsKLQotICBib29sIGdldCBhc3NpZ25hYmxlID0+IHRydWU7Ci19Ci0KLWNsYXNzIExpdGVyYWwgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgdmFsdWVzLlByaW1pdGl2ZUNvbnN0YW50VmFsdWUgdmFsdWU7Ci0KLSAgTGl0ZXJhbCh0aGlzLnZhbHVlKTsKLX0KLQotY2xhc3MgTGl0ZXJhbExpc3QgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgYm9vbCBpc0NvbnN0OwotICBmaW5hbCBUeXBlQW5ub3RhdGlvbiB0eXBlQXJndW1lbnQ7Ci0gIGZpbmFsIExpc3Q8RXhwcmVzc2lvbj4gdmFsdWVzOwotCi0gIExpdGVyYWxMaXN0KHRoaXMudmFsdWVzLCB7dGhpcy50eXBlQXJndW1lbnQsIHRoaXMuaXNDb25zdDogZmFsc2V9KTsKLX0KLQotY2xhc3MgTGl0ZXJhbE1hcCBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBib29sIGlzQ29uc3Q7Ci0gIGZpbmFsIExpc3Q8VHlwZUFubm90YXRpb24+IHR5cGVBcmd1bWVudHM7Ci0gIGZpbmFsIExpc3Q8TGl0ZXJhbE1hcEVudHJ5PiBlbnRyaWVzOwotCi0gIExpdGVyYWxNYXAodGhpcy5lbnRyaWVzLCB7dGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmlzQ29uc3Q6IGZhbHNlfSkgewotICAgIGFzc2VydCh0aGlzLnR5cGVBcmd1bWVudHMgPT0gbnVsbCB8fAotICAgICAgICB0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoID09IDAgfHwKLSAgICAgICAgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCA9PSAyKTsKLSAgfQotfQotCi1jbGFzcyBMaXRlcmFsTWFwRW50cnkgZXh0ZW5kcyBOb2RlIHsKLSAgZmluYWwgRXhwcmVzc2lvbiBrZXk7Ci0gIGZpbmFsIEV4cHJlc3Npb24gdmFsdWU7Ci0KLSAgTGl0ZXJhbE1hcEVudHJ5KHRoaXMua2V5LCB0aGlzLnZhbHVlKTsKLX0KLQotY2xhc3MgTGl0ZXJhbFN5bWJvbCBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBTdHJpbmcgaWQ7Ci0KLSAgLy8vIFtpZF0gc2hvdWxkIG5vdCBpbmNsdWRlIHRoZSAjIHN5bWJvbAotICBMaXRlcmFsU3ltYm9sKHRoaXMuaWQpOwotfQotCi0vLy8gQSB0eXBlIGxpdGVyYWwuIFRoaXMgaXMgZGlzdGluY3QgZnJvbSBbSWRlbnRpZmllcl0gc2luY2UgdGhlIHVucGFyc2VyCi0vLy8gbmVlZHMgdG8gdGhpcyBkaXN0aW5ndWlzaCBhIHN0YXRpYyBpbnZvY2F0aW9uIGZyb20gYSBtZXRob2QgaW52b2NhdGlvbgotLy8vIG9uIGEgdHlwZSBsaXRlcmFsLgotY2xhc3MgTGl0ZXJhbFR5cGUgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0KLSAgdHlwZXMuRGFydFR5cGUgdHlwZTsKLQotICBMaXRlcmFsVHlwZSh0aGlzLm5hbWUpOwotfQotCi0vLy8gUmVmZXJlbmNlIHRvIGEgdHlwZSB2YXJpYWJsZS4KLS8vLyBUaGlzIGlzIGRpc3RpbmN0IGZyb20gW0lkZW50aWZpZXJdIHNpbmNlIHRoZSB1bnBhcnNlciBuZWVkcyB0byB0aGlzCi0vLy8gZGlzdGluZ3Vpc2ggYSBmdW5jdGlvbiBpbnZvY2F0aW9uIGBUKClgIGZyb20gYSB0eXBlIHZhcmlhYmxlIGludm9jYXRpb24KLS8vLyBgKFQpKClgICh0aGUgbGF0dGVyIGlzIGludmFsaWQsIGJ1dCBtdXN0IGJlIGdlbmVyYXRlZCBhbnl3YXkpLgotY2xhc3MgUmVpZnlUeXBlVmFyIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotCi0gIGVsZW1lbnRzLlR5cGVWYXJpYWJsZUVsZW1lbnQgZWxlbWVudDsKLQotICBSZWlmeVR5cGVWYXIodGhpcy5uYW1lKTsKLX0KLQotLy8vIFN0cmluZ0NvbmNhdCBpcyB1c2VkIGluIHBsYWNlIG9mIHN0cmluZyBpbnRlcnBvbGF0aW9uIGFuZCBqdXh0YXBvc2l0aW9uLgotLy8vIFNlbWFudGljYWxseSwgZWFjaCBzdWJleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBhbmQgY29udmVydGVkIHRvIGEgc3RyaW5nCi0vLy8gYnkgYHRvU3RyaW5nKClgLiBUaGVzZSBzdHJpbmcgYXJlIHRoZW4gY29uY2F0ZW5hdGVkIGFuZCByZXR1cm5lZC4KLS8vLyBTdHJpbmdDb25jYXQgdW5wYXJzZXMgdG8gYSBzdHJpbmcgbGl0ZXJhbCwgcG9zc2libHkgd2l0aCBpbnRlcnBvbGF0aW9ucy4KLS8vLyBUaGUgdW5wYXJzZXIgd2lsbCBmbGF0dGVuIG5lc3RlZCBTdHJpbmdDb25jYXRzLgotLy8vIEEgU3RyaW5nQ29uY2F0IG5vZGUgbWF5IGhhdmUgYW55IG51bWJlciBvZiBjaGlsZHJlbiwgaW5jbHVkaW5nIHplcm8gYW5kIG9uZS4KLWNsYXNzIFN0cmluZ0NvbmNhdCBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBMaXN0PEV4cHJlc3Npb24+IGV4cHJlc3Npb25zOwotCi0gIFN0cmluZ0NvbmNhdCh0aGlzLmV4cHJlc3Npb25zKTsKLX0KLQotLy8vIEV4cHJlc3Npb24gb2YgZm9ybSBgZS5mYC4KLWNsYXNzIEZpZWxkRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBSZWNlaXZlciBvYmplY3Q7Ci0gIGZpbmFsIFN0cmluZyBmaWVsZE5hbWU7Ci0KLSAgRmllbGRFeHByZXNzaW9uKHRoaXMub2JqZWN0LCB0aGlzLmZpZWxkTmFtZSk7Ci0KLSAgYm9vbCBnZXQgYXNzaWduYWJsZSA9PiB0cnVlOwotfQotCi0vLy8gRXhwcmVzc2lvbiBvZiBmb3JtIGBlMVtlMl1gLgotY2xhc3MgSW5kZXhFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIFJlY2VpdmVyIG9iamVjdDsKLSAgZmluYWwgRXhwcmVzc2lvbiBpbmRleDsKLQotICBJbmRleEV4cHJlc3Npb24odGhpcy5vYmplY3QsIHRoaXMuaW5kZXgpOwotCi0gIGJvb2wgZ2V0IGFzc2lnbmFibGUgPT4gdHJ1ZTsKLX0KLQotLy8vIEV4cHJlc3Npb24gb2YgZm9ybSBgZSguLilgCi0vLy8gTm90ZSB0aGF0IGlmIFtjYWxsZWVdIGlzIGEgW0ZpZWxkRXhwcmVzc2lvbl0gdGhpcyB3aWxsIHRyYW5zbGF0ZSBpbnRvCi0vLy8gYChlLmYpKC4uKWAgYW5kIG5vdCBgZS5mKC4uKWAuIFVzZSBhIFtDYWxsTWV0aG9kXSB0byBnZW5lcmF0ZQotLy8vIHRoZSBsYXR0ZXIgdHlwZSBvZiBleHByZXNzaW9uLgotY2xhc3MgQ2FsbEZ1bmN0aW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIEV4cHJlc3Npb24gY2FsbGVlOwotICBmaW5hbCBMaXN0PEFyZ3VtZW50PiBhcmd1bWVudHM7Ci0KLSAgQ2FsbEZ1bmN0aW9uKHRoaXMuY2FsbGVlLCB0aGlzLmFyZ3VtZW50cyk7Ci19Ci0KLS8vLyBFeHByZXNzaW9uIG9mIGZvcm0gYGUuZiguLilgLgotY2xhc3MgQ2FsbE1ldGhvZCBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBSZWNlaXZlciBvYmplY3Q7Ci0gIGZpbmFsIFN0cmluZyBtZXRob2ROYW1lOwotICBmaW5hbCBMaXN0PEFyZ3VtZW50PiBhcmd1bWVudHM7Ci0KLSAgQ2FsbE1ldGhvZCh0aGlzLm9iamVjdCwgdGhpcy5tZXRob2ROYW1lLCB0aGlzLmFyZ3VtZW50cyk7Ci19Ci0KLS8vLyBFeHByZXNzaW9uIG9mIGZvcm0gYG5ldyBUKC4uKWAsIGBuZXcgVC5mKC4uKWAsIGBjb25zdCBUKC4uKWAsCi0vLy8gb3IgYGNvbnN0IFQuZiguLilgLgotY2xhc3MgQ2FsbE5ldyBleHRlbmRzIEV4cHJlc3Npb24gewotICBmaW5hbCBib29sIGlzQ29uc3Q7Ci0gIGZpbmFsIFR5cGVBbm5vdGF0aW9uIHR5cGU7Ci0gIGZpbmFsIFN0cmluZyBjb25zdHJ1Y3Rvck5hbWU7Ci0gIGZpbmFsIExpc3Q8QXJndW1lbnQ+IGFyZ3VtZW50czsKLQotICBlbGVtZW50cy5GdW5jdGlvbkVsZW1lbnQgY29uc3RydWN0b3I7Ci0gIHR5cGVzLkRhcnRUeXBlIGRhcnRUeXBlOwotCi0gIENhbGxOZXcodGhpcy50eXBlLCB0aGlzLmFyZ3VtZW50cywKLSAgICAgIHt0aGlzLmNvbnN0cnVjdG9yTmFtZSwgdGhpcy5pc0NvbnN0OiBmYWxzZX0pOwotfQotCi0vLy8gRXhwcmVzc2lvbiBvZiBmb3JtIGBULmYoLi4pYC4KLWNsYXNzIENhbGxTdGF0aWMgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgU3RyaW5nIGNsYXNzTmFtZTsKLSAgZmluYWwgU3RyaW5nIG1ldGhvZE5hbWU7Ci0gIGZpbmFsIExpc3Q8QXJndW1lbnQ+IGFyZ3VtZW50czsKLQotICBlbGVtZW50cy5FbGVtZW50IGVsZW1lbnQ7Ci0KLSAgQ2FsbFN0YXRpYyh0aGlzLmNsYXNzTmFtZSwgdGhpcy5tZXRob2ROYW1lLCB0aGlzLmFyZ3VtZW50cyk7Ci19Ci0KLS8vLyBFeHByZXNzaW9uIG9mIGZvcm0gYCFlYCBvciBgLWVgIG9yIGB+ZWAuCi1jbGFzcyBVbmFyeU9wZXJhdG9yIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIFN0cmluZyBvcGVyYXRvck5hbWU7Ci0gIGZpbmFsIFJlY2VpdmVyIG9wZXJhbmQ7Ci0KLSAgVW5hcnlPcGVyYXRvcih0aGlzLm9wZXJhdG9yTmFtZSwgdGhpcy5vcGVyYW5kKSB7Ci0gICAgYXNzZXJ0KGlzVW5hcnlPcGVyYXRvcihvcGVyYXRvck5hbWUpKTsKLSAgfQotfQotCi0vLy8gRXhwcmVzc2lvbiBvZiBmb3JtIGBlMSArIGUyYCwgYGUxIC0gZTJgLCBldGMuCi0vLy8gVGhpcyBub2RlIGFsc28gcmVwcmVzZW50cyBhcHBsaWNhdGlvbiBvZiB0aGUgbG9naWNhbCBvcGVyYXRvcnMgJiYgYW5kIHx8LgotY2xhc3MgQmluYXJ5T3BlcmF0b3IgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgUmVjZWl2ZXIgbGVmdDsKLSAgZmluYWwgU3RyaW5nIG9wZXJhdG9yOwotICBmaW5hbCBFeHByZXNzaW9uIHJpZ2h0OwotCi0gIEJpbmFyeU9wZXJhdG9yKHRoaXMubGVmdCwgdGhpcy5vcGVyYXRvciwgdGhpcy5yaWdodCkgewotICAgIGFzc2VydChpc0JpbmFyeU9wZXJhdG9yKG9wZXJhdG9yKSk7Ci0gIH0KLX0KLQotLy8vIEV4cHJlc3Npb24gb2YgZm9ybSBgZSBpcyBUYCBvciBgZSBpcyEgVGAgb3IgYGUgYXMgVGAuCi1jbGFzcyBUeXBlT3BlcmF0b3IgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgZmluYWwgRXhwcmVzc2lvbiBleHByZXNzaW9uOwotICBmaW5hbCBTdHJpbmcgb3BlcmF0b3I7Ci0gIGZpbmFsIFR5cGVBbm5vdGF0aW9uIHR5cGU7Ci0KLSAgVHlwZU9wZXJhdG9yKHRoaXMuZXhwcmVzc2lvbiwgdGhpcy5vcGVyYXRvciwgdGhpcy50eXBlKSB7Ci0gICAgYXNzZXJ0KG9wZXJhdG9yID09ICdpcycgfHwgb3BlcmF0b3IgPT0gJ2FzJyB8fCBvcGVyYXRvciA9PSAnaXMhJyk7Ci0gIH0KLX0KLQotY2xhc3MgSW5jcmVtZW50IGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIEV4cHJlc3Npb24gZXhwcmVzc2lvbjsKLSAgZmluYWwgU3RyaW5nIG9wZXJhdG9yOwotICBmaW5hbCBib29sIGlzUHJlZml4OwotCi0gIEluY3JlbWVudCh0aGlzLmV4cHJlc3Npb24sIHRoaXMub3BlcmF0b3IsIHRoaXMuaXNQcmVmaXgpIHsKLSAgICBhc3NlcnQob3BlcmF0b3IgPT0gJysrJyB8fCBvcGVyYXRvciA9PSAnLS0nKTsKLSAgICBhc3NlcnQoZXhwcmVzc2lvbi5hc3NpZ25hYmxlKTsKLSAgfQotCi0gIEluY3JlbWVudC5wcmVmaXgoRXhwcmVzc2lvbiBleHByZXNzaW9uLCBTdHJpbmcgb3BlcmF0b3IpCi0gICAgICA6IHRoaXMoZXhwcmVzc2lvbiwgb3BlcmF0b3IsIHRydWUpOwotCi0gIEluY3JlbWVudC5wb3N0Zml4KEV4cHJlc3Npb24gZXhwcmVzc2lvbiwgU3RyaW5nIG9wZXJhdG9yKQotICAgICAgOiB0aGlzKGV4cHJlc3Npb24sIG9wZXJhdG9yLCBmYWxzZSk7Ci19Ci0KLWNsYXNzIEFzc2lnbm1lbnQgZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgc3RhdGljIGZpbmFsIF9vcGVyYXRvcnMgPSBuZXcgU2V0LmZyb20oWwotICAgICc9JywKLSAgICAnfD0nLAotICAgICdePScsCi0gICAgJyY9JywKLSAgICAnPDw9JywKLSAgICAnPj49JywKLSAgICAnKz0nLAotICAgICctPScsCi0gICAgJyo9JywKLSAgICAnLz0nLAotICAgICclPScsCi0gICAgJ34vPScKLSAgXSk7Ci0KLSAgZmluYWwgRXhwcmVzc2lvbiBsZWZ0OwotICBmaW5hbCBTdHJpbmcgb3BlcmF0b3I7Ci0gIGZpbmFsIEV4cHJlc3Npb24gcmlnaHQ7Ci0KLSAgQXNzaWdubWVudCh0aGlzLmxlZnQsIHRoaXMub3BlcmF0b3IsIHRoaXMucmlnaHQpIHsKLSAgICBhc3NlcnQoX29wZXJhdG9ycy5jb250YWlucyhvcGVyYXRvcikpOwotICAgIGFzc2VydChsZWZ0LmFzc2lnbmFibGUpOwotICB9Ci19Ci0KLWNsYXNzIFRocm93IGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIGZpbmFsIEV4cHJlc3Npb24gZXhwcmVzc2lvbjsKLQotICBUaHJvdyh0aGlzLmV4cHJlc3Npb24pOwotfQotCi1jbGFzcyBUaGlzIGV4dGVuZHMgRXhwcmVzc2lvbiB7Ci0gIHN0YXRpYyBmaW5hbCBUaGlzIF9pbnN0YW5jZSA9IG5ldyBUaGlzLl9jcmVhdGUoKTsKLQotICBmYWN0b3J5IFRoaXMoKSA9PiBfaW5zdGFuY2U7Ci0gIFRoaXMuX2NyZWF0ZSgpOwotfQotCi0vLyBVTlBBUlNFUgotCi1ib29sIGlzVW5hcnlPcGVyYXRvcihTdHJpbmcgb3ApIHsKLSAgcmV0dXJuIG9wID09ICchJyB8fCBvcCA9PSAnLScgfHwgb3AgPT0gJ34nOwotfQotCi1ib29sIGlzQmluYXJ5T3BlcmF0b3IoU3RyaW5nIG9wKSB7Ci0gIHJldHVybiBCSU5BUllfUFJFQ0VERU5DRS5jb250YWluc0tleShvcCk7Ci19Ci0KLS8vLyBUcnVlIGlmIHRoZSBnaXZlbiBvcGVyYXRvciBjYW4gYmUgY29udmVydGVkIHRvIGEgY29tcG91bmQgYXNzaWdubWVudC4KLWJvb2wgaXNDb21wb3VuZGFibGVPcGVyYXRvcihTdHJpbmcgb3ApIHsKLSAgc3dpdGNoIChCSU5BUllfUFJFQ0VERU5DRVtvcF0pIHsKLSAgICBjYXNlIEJJVFdJU0VfT1I6Ci0gICAgY2FzZSBCSVRXSVNFX1hPUjoKLSAgICBjYXNlIEJJVFdJU0VfQU5EOgotICAgIGNhc2UgU0hJRlQ6Ci0gICAgY2FzZSBBRERJVElWRToKLSAgICBjYXNlIE1VTFRJUExJQ0FUSVZFOgotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgfQotfQotCi0vLyBQcmVjZWRlbmNlIGxldmVscwotY29uc3QgaW50IEVYUFJFU1NJT04gPSAxOwotY29uc3QgaW50IENPTkRJVElPTkFMID0gMjsKLWNvbnN0IGludCBMT0dJQ0FMX09SID0gMzsKLWNvbnN0IGludCBMT0dJQ0FMX0FORCA9IDQ7Ci1jb25zdCBpbnQgRVFVQUxJVFkgPSA2OwotY29uc3QgaW50IFJFTEFUSU9OQUwgPSA3OwotY29uc3QgaW50IEJJVFdJU0VfT1IgPSA4OwotY29uc3QgaW50IEJJVFdJU0VfWE9SID0gOTsKLWNvbnN0IGludCBCSVRXSVNFX0FORCA9IDEwOwotY29uc3QgaW50IFNISUZUID0gMTE7Ci1jb25zdCBpbnQgQURESVRJVkUgPSAxMjsKLWNvbnN0IGludCBNVUxUSVBMSUNBVElWRSA9IDEzOwotY29uc3QgaW50IFVOQVJZID0gMTQ7Ci1jb25zdCBpbnQgUE9TVEZJWF9JTkNSRU1FTlQgPSAxNTsKLWNvbnN0IGludCBUWVBFX0xJVEVSQUwgPSAxOTsKLWNvbnN0IGludCBQUklNQVJZID0gMjA7Ci0KLS8vLyBQcmVjZWRlbmNlIGxldmVsIHJlcXVpcmVkIGZvciB0aGUgY2FsbGVlIGluIGEgW0Z1bmN0aW9uQ2FsbF0uCi1jb25zdCBpbnQgQ0FMTEVFID0gMjE7Ci0KLWNvbnN0IE1hcDxTdHJpbmcsIGludD4gQklOQVJZX1BSRUNFREVOQ0UgPSBjb25zdCB7Ci0gICcmJic6IExPR0lDQUxfQU5ELAotICAnfHwnOiBMT0dJQ0FMX09SLAotICAnPT0nOiBFUVVBTElUWSwKLSAgJyE9JzogRVFVQUxJVFksCi0gICc+JzogUkVMQVRJT05BTCwKLSAgJz49JzogUkVMQVRJT05BTCwKLSAgJzwnOiBSRUxBVElPTkFMLAotICAnPD0nOiBSRUxBVElPTkFMLAotICAnfCc6IEJJVFdJU0VfT1IsCi0gICdeJzogQklUV0lTRV9YT1IsCi0gICcmJzogQklUV0lTRV9BTkQsCi0gICc+Pic6IFNISUZULAotICAnPDwnOiBTSElGVCwKLSAgJysnOiBBRERJVElWRSwKLSAgJy0nOiBBRERJVElWRSwKLSAgJyonOiBNVUxUSVBMSUNBVElWRSwKLSAgJyUnOiBNVUxUSVBMSUNBVElWRSwKLSAgJy8nOiBNVUxUSVBMSUNBVElWRSwKLSAgJ34vJzogTVVMVElQTElDQVRJVkUsCi19OwotCi0vLy8gUmV0dXJuIHRydWUgaWYgYmluYXJ5IG9wZXJhdG9ycyB3aXRoIHRoZSBnaXZlbiBwcmVjZWRlbmNlIGxldmVsIGFyZQotLy8vIChsZWZ0KSBhc3NvY2lhdGl2ZS4gRmFsc2UgaWYgdGhleSBhcmUgbm9uLWFzc29jaWF0aXZlLgotYm9vbCBpc0Fzc29jaWF0aXZlQmluYXJ5T3BlcmF0b3IoaW50IHByZWNlZGVuY2UpIHsKLSAgcmV0dXJuIHByZWNlZGVuY2UgIT0gRVFVQUxJVFkgJiYgcHJlY2VkZW5jZSAhPSBSRUxBVElPTkFMOwotfQotCi0vLy8gVHJ1ZSBpZiBbeF0gaXMgYSBsZXR0ZXIsIGRpZ2l0LCBvciB1bmRlcnNjb3JlLgotLy8vIFN1Y2ggY2hhcmFjdGVycyBtYXkgbm90IGZvbGxvdyBhIHNob3J0aGFuZCBzdHJpbmcgaW50ZXJwb2xhdGlvbi4KLWJvb2wgaXNJZGVudGlmaWVyUGFydE5vRG9sbGFyKGR5bmFtaWMgeCkgewotICBpZiAoeCBpcyEgaW50KSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIHJldHVybiAoY2hhcmFjdGVycy4kMCA8PSB4ICYmIHggPD0gY2hhcmFjdGVycy4kOSkgfHwKLSAgICAgIChjaGFyYWN0ZXJzLiRBIDw9IHggJiYgeCA8PSBjaGFyYWN0ZXJzLiRaKSB8fAotICAgICAgKGNoYXJhY3RlcnMuJGEgPD0geCAmJiB4IDw9IGNoYXJhY3RlcnMuJHopIHx8Ci0gICAgICAoeCA9PSBjaGFyYWN0ZXJzLiRfKTsKLX0KLQotLy8vIFRoZSB1bnBhcnNlciB3aWxsIGFwcGx5IHRoZSBmb2xsb3dpbmcgc3ludGFjdGljIHJld3JpdGluZ3M6Ci0vLy8gICBVc2Ugc2hvcnQtaGFuZCBmdW5jdGlvbiByZXR1cm5zOgotLy8vICAgICBmb28oKXtyZXR1cm4gRX0gPT0+IGZvbygpID0+IEU7Ci0vLy8gICBSZW1vdmUgZW1wdHkgZWxzZSBicmFuY2g6Ci0vLy8gICAgIGlmIChFKSBTIGVsc2UgOyA9PT4gaWYgKEUpIFMKLS8vLyAgIEZsYXR0ZW4gbmVzdGVkIGJsb2NrczoKLS8vLyAgICAge1M7IHtTOyBTfTsgU30gPT0+IHtTOyBTOyBTOyBTfQotLy8vICAgUmVtb3ZlIGVtcHR5IHN0YXRlbWVudHMgZnJvbSBibG9jazoKLS8vLyAgICAge1M7IDsgU30gPT0+IHtTOyBTfQotLy8vICAgVW5mb2xkIHNpbmdsZXRvbiBibG9ja3M6Ci0vLy8gICAgIHtTfSA9PT4gUwotLy8vICAgRW1wdHkgYmxvY2sgdG8gZW1wdHkgc3RhdGVtZW50OgotLy8vICAgICB7fSA9PT4gOwotLy8vICAgSW50cm9kdWNlIG5vdC1lcXVhbHMgb3BlcmF0b3I6Ci0vLy8gICAgICEoRSA9PSBFKSA9PT4gRSAhPSBFCi0vLy8gICBJbnRyb2R1Y2UgaXMtbm90IG9wZXJhdG9yOgotLy8vICAgICAhKEUgaXMgVCkgPT0+IEUgaXMhVAotLy8vCi0vLy8gVGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnMgd2lsbCBOT1QgYmUgYXBwbGllZCBoZXJlOgotLy8vICAgVXNlIGltcGxpY2l0IHRoaXM6Ci0vLy8gICAgIHRoaXMuZm9vID09PiBmb28gICAgICAgICAgICAgIChwcmVjb25kaXRpb25zIHRvbyBjb21wbGV4IGZvciB1bnBhcnNlcikKLS8vLyAgIE1lcmdlIGFkamFjZW50IHZhcmlhYmxlIGRlZmluaXRpb25zOgotLy8vICAgICB2YXIgeDsgdmFyIHkgID09PiB2YXIgeCx5OyAgICAoaG9pc3Rpbmcgd2lsbCBiZSBkb25lIGVsc2V3aGVyZSkKLS8vLyAgIE1lcmdlIGFkamFjZW50IGxhYmVsczoKLS8vLyAgICAgZm9vOiBiYXI6IFMgPT0+IGZvb2JhcjogUyAgICAgKHNjb3BpbmcgaXMgY2F0ZWdvcmljYWxseSBpZ25vcmVkKQotLy8vCi0vLy8gVGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnMgbWlnaHQgYmUgYXBwbGllZCBoZXJlIGluIHRoZSBmdXR1cmU6Ci0vLy8gICBVc2UgaW1wbGljaXQgZHluYW1pYyB0eXBlczoKLS8vLyAgICAgZHluYW1pYyB4ID0gRSA9PT4gdmFyIHggPSBFCi0vLy8gICAgIDxkeW5hbWljPltdICAgPT0+IFtdCi1jbGFzcyBVbnBhcnNlciB7Ci0gIFN0cmluZ1Npbmsgb3V0cHV0OwotCi0gIFVucGFyc2VyKHRoaXMub3V0cHV0KTsKLQotICB2b2lkIHdyaXRlKFN0cmluZyBzKSB7Ci0gICAgb3V0cHV0LndyaXRlKHMpOwotICB9Ci0KLSAgLy8vIE91dHB1dHMgZWFjaCBlbGVtZW50IGZyb20gW2l0ZW1zXSBzZXBhcmF0ZWQgYnkgW3NlcGFyYXRvcl0uCi0gIC8vLyBUaGUgYWN0dWFsIHByaW50aW5nIG11c3QgYmUgcGVyZm9ybWVkIGJ5IHRoZSBbY2FsbGJhY2tdLgotICB2b2lkIHdyaXRlRWFjaChTdHJpbmcgc2VwYXJhdG9yLCBJdGVyYWJsZSBpdGVtcywgdm9pZCBjYWxsYmFjayhhbnkpKSB7Ci0gICAgYm9vbCBmaXJzdCA9IHRydWU7Ci0gICAgZm9yICh2YXIgeCBpbiBpdGVtcykgewotICAgICAgaWYgKGZpcnN0KSB7Ci0gICAgICAgIGZpcnN0ID0gZmFsc2U7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB3cml0ZShzZXBhcmF0b3IpOwotICAgICAgfQotICAgICAgY2FsbGJhY2soeCk7Ci0gICAgfQotICB9Ci0KLSAgdm9pZCB3cml0ZU9wZXJhdG9yKFN0cmluZyBvcGVyYXRvcikgewotICAgIHdyaXRlKCIgIik7Ci0gICAgd3JpdGUob3BlcmF0b3IpOwotICAgIHdyaXRlKCIgIik7Ci0gIH0KLQotICAvLy8gVW5mb2xkcyBzaW5nbGV0b24gYmxvY2tzIGFuZCByZXR1cm5zIHRoZSBpbm5lciBzdGF0ZW1lbnQuCi0gIC8vLyBJZiBhbiBlbXB0eSBibG9jayBpcyBmb3VuZCwgdGhlIFtFbXB0eVN0YXRlbWVudF0gaXMgcmV0dXJuZWQgaW5zdGVhZC4KLSAgU3RhdGVtZW50IHVuZm9sZEJsb2NrcyhTdGF0ZW1lbnQgc3RtdCkgewotICAgIHdoaWxlIChzdG10IGlzIEJsb2NrICYmIHN0bXQuc3RhdGVtZW50cy5sZW5ndGggPT0gMSkgewotICAgICAgU3RhdGVtZW50IGlubmVyID0gKHN0bXQgYXMgQmxvY2spLnN0YXRlbWVudHNbMF07Ci0gICAgICBpZiAoZGVmaW5lc1ZhcmlhYmxlKGlubmVyKSkgewotICAgICAgICByZXR1cm4gc3RtdDsgLy8gRG8gbm90IHVuZm9sZCBibG9jayB3aXRoIGxleGljYWwgc2NvcGUuCi0gICAgICB9Ci0gICAgICBzdG10ID0gaW5uZXI7Ci0gICAgfQotICAgIGlmIChzdG10IGlzIEJsb2NrICYmIHN0bXQuc3RhdGVtZW50cy5sZW5ndGggPT0gMCkKLSAgICAgIHJldHVybiBuZXcgRW1wdHlTdGF0ZW1lbnQoKTsKLSAgICByZXR1cm4gc3RtdDsKLSAgfQotCi0gIHZvaWQgd3JpdGVBcmd1bWVudChBcmd1bWVudCBhcmcpIHsKLSAgICBpZiAoYXJnIGlzIE5hbWVkQXJndW1lbnQpIHsKLSAgICAgIHdyaXRlKGFyZy5uYW1lKTsKLSAgICAgIHdyaXRlKCc6Jyk7Ci0gICAgICB3cml0ZUV4cHJlc3Npb24oYXJnLmV4cHJlc3Npb24pOwotICAgIH0gZWxzZSB7Ci0gICAgICB3cml0ZUV4cHJlc3Npb24oYXJnKTsKLSAgICB9Ci0gIH0KLQotICAvLy8gUHJpbnRzIHRoZSBleHByZXNzaW9uIFtlXS4KLSAgdm9pZCB3cml0ZUV4cHJlc3Npb24oRXhwcmVzc2lvbiBlKSB7Ci0gICAgd3JpdGVFeHAoZSwgRVhQUkVTU0lPTik7Ci0gIH0KLQotICAvLy8gUHJpbnRzIFtlXSBhcyBhbiBleHByZXNzaW9uIHdpdGggcHJlY2VkZW5jZSBvZiBhdCBsZWFzdCBbbWluUHJlY2VkZW5jZV0sCi0gIC8vLyB1c2luZyBwYXJlbnRoZXNlcyBpZiBuZWNlc3NhcnkgdG8gcmFpc2UgdGhlIHByZWNlZGVuY2UgbGV2ZWwuCi0gIC8vLyBBYnVzaW5nIHRlcm1pbm9sb2d5IHNsaWdodGx5LCB0aGUgZnVuY3Rpb24gYWNjZXB0cyBhIFtSZWNlaXZlcl0gd2hpY2gKLSAgLy8vIG1heSBhbHNvIGJlIHRoZSBbU3VwZXJSZWNlaXZlcl0gb2JqZWN0LgotICB2b2lkIHdyaXRlRXhwKFJlY2VpdmVyIGUsIGludCBtaW5QcmVjZWRlbmNlLCB7YmVnaW5TdG10OiBmYWxzZX0pIHsKLSAgICB2b2lkIHdpdGhQcmVjZWRlbmNlKGludCBhY3R1YWwsIHZvaWQgYWN0aW9uKCkpIHsKLSAgICAgIGlmIChhY3R1YWwgPCBtaW5QcmVjZWRlbmNlKSB7Ci0gICAgICAgIHdyaXRlKCIoIik7Ci0gICAgICAgIGJlZ2luU3RtdCA9IGZhbHNlOwotICAgICAgICBhY3Rpb24oKTsKLSAgICAgICAgd3JpdGUoIikiKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGFjdGlvbigpOwotICAgICAgfQotICAgIH0KLSAgICBpZiAoZSBpcyBTdXBlclJlY2VpdmVyKSB7Ci0gICAgICB3cml0ZSgnc3VwZXInKTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgRnVuY3Rpb25FeHByZXNzaW9uKSB7Ci0gICAgICBhc3NlcnQoIWUuaXNHZXR0ZXIgJiYgIWUuaXNTZXR0ZXIpOwotICAgICAgU3RhdGVtZW50IHN0bXQgPSB1bmZvbGRCbG9ja3MoZS5ib2R5KTsKLSAgICAgIGludCBwcmVjZWRlbmNlID0gc3RtdCBpcyBSZXR1cm4gPyBFWFBSRVNTSU9OIDogUFJJTUFSWTsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKHByZWNlZGVuY2UsICgpIHsKLSAgICAgICAgLy8gQSBuYW1lZCBmdW5jdGlvbiBleHByZXNzaW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzdGF0ZW1lbnQKLSAgICAgICAgLy8gY2FuIGJlIG1pc3Rha2VuIGZvciBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLgotICAgICAgICAvLyAoTm90ZTogRnVuY3Rpb25zIHdpdGggYSByZXR1cm4gdHlwZSBhbHNvIGhhdmUgYSBuYW1lKQotICAgICAgICBib29sIG5lZWRQYXJlbiA9IGJlZ2luU3RtdCAmJiBlLm5hbWUgIT0gbnVsbDsKLSAgICAgICAgaWYgKG5lZWRQYXJlbikgewotICAgICAgICAgIHdyaXRlKCcoJyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGUucmV0dXJuVHlwZSAhPSBudWxsKSB7Ci0gICAgICAgICAgd3JpdGVUeXBlKGUucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgd3JpdGUoJyAnKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZS5uYW1lICE9IG51bGwpIHsKLSAgICAgICAgICB3cml0ZShlLm5hbWUpOwotICAgICAgICB9Ci0gICAgICAgIHdyaXRlUGFyYW1ldGVycyhlLnBhcmFtZXRlcnMpOwotICAgICAgICBpZiAoc3RtdCBpcyBSZXR1cm4pIHsKLSAgICAgICAgICB3cml0ZSgnPT4gJyk7Ci0gICAgICAgICAgd3JpdGVFeHAoc3RtdC5leHByZXNzaW9uLCBFWFBSRVNTSU9OKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB3cml0ZUJsb2NrKHN0bXQpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChuZWVkUGFyZW4pIHsKLSAgICAgICAgICB3cml0ZSgnKScpOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgQ29uZGl0aW9uYWwpIHsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKENPTkRJVElPTkFMLCAoKSB7Ci0gICAgICAgIHdyaXRlRXhwKGUuY29uZGl0aW9uLCBMT0dJQ0FMX09SLCBiZWdpblN0bXQ6IGJlZ2luU3RtdCk7Ci0gICAgICAgIHdyaXRlKCcgPyAnKTsKLSAgICAgICAgd3JpdGVFeHAoZS50aGVuRXhwcmVzc2lvbiwgRVhQUkVTU0lPTik7Ci0gICAgICAgIHdyaXRlKCcgOiAnKTsKLSAgICAgICAgd3JpdGVFeHAoZS5lbHNlRXhwcmVzc2lvbiwgRVhQUkVTU0lPTik7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgSWRlbnRpZmllcikgewotICAgICAgd3JpdGUoZS5uYW1lKTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgTGl0ZXJhbCkgewotICAgICAgaWYgKGUudmFsdWUuaXNTdHJpbmcpIHsKLSAgICAgICAgd3JpdGVTdHJpbmdMaXRlcmFsKGUpOwotICAgICAgfSBlbHNlIGlmIChlLnZhbHVlLmlzRG91YmxlKSB7Ci0gICAgICAgIGRvdWJsZSB2ID0gZS52YWx1ZS5wcmltaXRpdmVWYWx1ZTsKLSAgICAgICAgaWYgKHYgPT0gZG91YmxlLklORklOSVRZKSB7Ci0gICAgICAgICAgd2l0aFByZWNlZGVuY2UoTVVMVElQTElDQVRJVkUsICgpIHsKLSAgICAgICAgICAgIHdyaXRlKCcxLzAuMCcpOwotICAgICAgICAgIH0pOwotICAgICAgICB9IGVsc2UgaWYgKHYgPT0gZG91YmxlLk5FR0FUSVZFX0lORklOSVRZKSB7Ci0gICAgICAgICAgd2l0aFByZWNlZGVuY2UoTVVMVElQTElDQVRJVkUsICgpIHsKLSAgICAgICAgICAgIHdyaXRlKCctMS8wLjAnKTsKLSAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIGlmICh2LmlzTmFOKSB7Ci0gICAgICAgICAgd2l0aFByZWNlZGVuY2UoTVVMVElQTElDQVRJVkUsICgpIHsKLSAgICAgICAgICAgIHdyaXRlKCcwLzAuMCcpOwotICAgICAgICAgIH0pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHdyaXRlKHYudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHdyaXRlKGUudmFsdWUudG9EYXJ0VGV4dCgpKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGUgaXMgTGl0ZXJhbExpc3QpIHsKLSAgICAgIGlmIChlLmlzQ29uc3QpIHsKLSAgICAgICAgd3JpdGUoJyBjb25zdCAnKTsKLSAgICAgIH0KLSAgICAgIGlmIChlLnR5cGVBcmd1bWVudCAhPSBudWxsKSB7Ci0gICAgICAgIHdyaXRlKCc8Jyk7Ci0gICAgICAgIHdyaXRlVHlwZShlLnR5cGVBcmd1bWVudCk7Ci0gICAgICAgIHdyaXRlKCc+Jyk7Ci0gICAgICB9Ci0gICAgICB3cml0ZSgnWycpOwotICAgICAgd3JpdGVFYWNoKCcsJywgZS52YWx1ZXMsIHdyaXRlRXhwcmVzc2lvbik7Ci0gICAgICB3cml0ZSgnXScpOwotICAgIH0gZWxzZSBpZiAoZSBpcyBMaXRlcmFsTWFwKSB7Ci0gICAgICAvLyBUaGUgY3VybHkgYnJhY2UgY2FuIGJlIG1pc3Rha2VuIGZvciBhIGJsb2NrIHN0YXRlbWVudCBpZiB3ZQotICAgICAgLy8gYXJlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBzdGF0ZW1lbnQuCi0gICAgICBib29sIG5lZWRQYXJlbiA9IGJlZ2luU3RtdDsKLSAgICAgIGlmIChlLmlzQ29uc3QpIHsKLSAgICAgICAgd3JpdGUoJyBjb25zdCAnKTsKLSAgICAgICAgbmVlZFBhcmVuID0gZmFsc2U7Ci0gICAgICB9Ci0gICAgICBpZiAoZS50eXBlQXJndW1lbnRzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgd3JpdGUoJzwnKTsKLSAgICAgICAgd3JpdGVFYWNoKCcsJywgZS50eXBlQXJndW1lbnRzLCB3cml0ZVR5cGUpOwotICAgICAgICB3cml0ZSgnPicpOwotICAgICAgICBuZWVkUGFyZW4gPSBmYWxzZTsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkUGFyZW4pIHsKLSAgICAgICAgd3JpdGUoJygnKTsKLSAgICAgIH0KLSAgICAgIHdyaXRlKCd7Jyk7Ci0gICAgICB3cml0ZUVhY2goJywnLCBlLmVudHJpZXMsIChMaXRlcmFsTWFwRW50cnkgZW4pIHsKLSAgICAgICAgd3JpdGVFeHAoZW4ua2V5LCBFWFBSRVNTSU9OKTsKLSAgICAgICAgd3JpdGUoJyA6ICcpOwotICAgICAgICB3cml0ZUV4cChlbi52YWx1ZSwgRVhQUkVTU0lPTik7Ci0gICAgICB9KTsKLSAgICAgIHdyaXRlKCd9Jyk7Ci0gICAgICBpZiAobmVlZFBhcmVuKSB7Ci0gICAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChlIGlzIExpdGVyYWxTeW1ib2wpIHsKLSAgICAgIHdyaXRlKCcjJyk7Ci0gICAgICB3cml0ZShlLmlkKTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgTGl0ZXJhbFR5cGUpIHsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKFRZUEVfTElURVJBTCwgKCkgewotICAgICAgICB3cml0ZShlLm5hbWUpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIFJlaWZ5VHlwZVZhcikgewotICAgICAgd2l0aFByZWNlZGVuY2UoUFJJTUFSWSwgKCkgewotICAgICAgICB3cml0ZShlLm5hbWUpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIFN0cmluZ0NvbmNhdCkgewotICAgICAgd3JpdGVTdHJpbmdMaXRlcmFsKGUpOwotICAgIH0gZWxzZSBpZiAoZSBpcyBVbmFyeU9wZXJhdG9yKSB7Ci0gICAgICBSZWNlaXZlciBvcGVyYW5kID0gZS5vcGVyYW5kOwotICAgICAgLy8gISh4ID09IHkpID09PiB4ICE9IHkuCi0gICAgICBpZiAoZS5vcGVyYXRvck5hbWUgPT0gJyEnICYmCi0gICAgICAgICAgb3BlcmFuZCBpcyBCaW5hcnlPcGVyYXRvciAmJgotICAgICAgICAgIG9wZXJhbmQub3BlcmF0b3IgPT0gJz09JykgewotICAgICAgICB3aXRoUHJlY2VkZW5jZShFUVVBTElUWSwgKCkgewotICAgICAgICAgIHdyaXRlRXhwKG9wZXJhbmQubGVmdCwgUkVMQVRJT05BTCk7Ci0gICAgICAgICAgd3JpdGVPcGVyYXRvcignIT0nKTsKLSAgICAgICAgICB3cml0ZUV4cChvcGVyYW5kLnJpZ2h0LCBSRUxBVElPTkFMKTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgICAvLyAhKHggaXMgVCkgPT0+IHggaXMhVAotICAgICAgZWxzZSBpZiAoZS5vcGVyYXRvck5hbWUgPT0gJyEnICYmCi0gICAgICAgICAgb3BlcmFuZCBpcyBUeXBlT3BlcmF0b3IgJiYKLSAgICAgICAgICBvcGVyYW5kLm9wZXJhdG9yID09ICdpcycpIHsKLSAgICAgICAgd2l0aFByZWNlZGVuY2UoUkVMQVRJT05BTCwgKCkgewotICAgICAgICAgIHdyaXRlRXhwKG9wZXJhbmQuZXhwcmVzc2lvbiwgQklUV0lTRV9PUiwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgICAgIHdyaXRlKCcgaXMhJyk7Ci0gICAgICAgICAgd3JpdGVUeXBlKG9wZXJhbmQudHlwZSk7Ci0gICAgICAgIH0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgd2l0aFByZWNlZGVuY2UoVU5BUlksICgpIHsKLSAgICAgICAgICB3cml0ZU9wZXJhdG9yKGUub3BlcmF0b3JOYW1lKTsKLSAgICAgICAgICB3cml0ZUV4cChlLm9wZXJhbmQsIFVOQVJZKTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChlIGlzIEJpbmFyeU9wZXJhdG9yKSB7Ci0gICAgICBpbnQgcHJlY2VkZW5jZSA9IEJJTkFSWV9QUkVDRURFTkNFW2Uub3BlcmF0b3JdOwotICAgICAgd2l0aFByZWNlZGVuY2UocHJlY2VkZW5jZSwgKCkgewotICAgICAgICAvLyBBbGwgYmluYXJ5IG9wZXJhdG9ycyBhcmUgbGVmdC1hc3NvY2lhdGl2ZSBvciBub24tYXNzb2NpYXRpdmUuCi0gICAgICAgIC8vIEZvciBlYWNoIG9wZXJhbmQsIHdlIHVzZSBlaXRoZXIgdGhlIHNhbWUgcHJlY2VkZW5jZSBsZXZlbCBhcwotICAgICAgICAvLyB0aGUgY3VycmVudCBvcGVyYXRvciwgb3Igb25lIGhpZ2hlci4KLSAgICAgICAgaW50IGRlbHRhTGVmdCA9IGlzQXNzb2NpYXRpdmVCaW5hcnlPcGVyYXRvcihwcmVjZWRlbmNlKSA/IDAgOiAxOwotICAgICAgICB3cml0ZUV4cChlLmxlZnQsIHByZWNlZGVuY2UgKyBkZWx0YUxlZnQsIGJlZ2luU3RtdDogYmVnaW5TdG10KTsKLSAgICAgICAgd3JpdGVPcGVyYXRvcihlLm9wZXJhdG9yKTsKLSAgICAgICAgd3JpdGVFeHAoZS5yaWdodCwgcHJlY2VkZW5jZSArIDEpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIFR5cGVPcGVyYXRvcikgewotICAgICAgd2l0aFByZWNlZGVuY2UoUkVMQVRJT05BTCwgKCkgewotICAgICAgICB3cml0ZUV4cChlLmV4cHJlc3Npb24sIEJJVFdJU0VfT1IsIGJlZ2luU3RtdDogYmVnaW5TdG10KTsKLSAgICAgICAgd3JpdGUoJyAnKTsKLSAgICAgICAgd3JpdGUoZS5vcGVyYXRvcik7Ci0gICAgICAgIHdyaXRlKCcgJyk7Ci0gICAgICAgIHdyaXRlVHlwZShlLnR5cGUpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIEFzc2lnbm1lbnQpIHsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKEVYUFJFU1NJT04sICgpIHsKLSAgICAgICAgd3JpdGVFeHAoZS5sZWZ0LCBQUklNQVJZLCBiZWdpblN0bXQ6IGJlZ2luU3RtdCk7Ci0gICAgICAgIHdyaXRlT3BlcmF0b3IoZS5vcGVyYXRvcik7Ci0gICAgICAgIHdyaXRlRXhwKGUucmlnaHQsIEVYUFJFU1NJT04pOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIEZpZWxkRXhwcmVzc2lvbikgewotICAgICAgd2l0aFByZWNlZGVuY2UoUFJJTUFSWSwgKCkgewotICAgICAgICB3cml0ZUV4cChlLm9iamVjdCwgUFJJTUFSWSwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgICB3cml0ZSgnLicpOwotICAgICAgICB3cml0ZShlLmZpZWxkTmFtZSk7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgSW5kZXhFeHByZXNzaW9uKSB7Ci0gICAgICB3aXRoUHJlY2VkZW5jZShDQUxMRUUsICgpIHsKLSAgICAgICAgd3JpdGVFeHAoZS5vYmplY3QsIFBSSU1BUlksIGJlZ2luU3RtdDogYmVnaW5TdG10KTsKLSAgICAgICAgd3JpdGUoJ1snKTsKLSAgICAgICAgd3JpdGVFeHAoZS5pbmRleCwgRVhQUkVTU0lPTik7Ci0gICAgICAgIHdyaXRlKCddJyk7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgQ2FsbEZ1bmN0aW9uKSB7Ci0gICAgICB3aXRoUHJlY2VkZW5jZShDQUxMRUUsICgpIHsKLSAgICAgICAgd3JpdGVFeHAoZS5jYWxsZWUsIENBTExFRSwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgICB3cml0ZSgnKCcpOwotICAgICAgICB3cml0ZUVhY2goJywnLCBlLmFyZ3VtZW50cywgd3JpdGVBcmd1bWVudCk7Ci0gICAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgQ2FsbE1ldGhvZCkgewotICAgICAgd2l0aFByZWNlZGVuY2UoQ0FMTEVFLCAoKSB7Ci0gICAgICAgIHdyaXRlRXhwKGUub2JqZWN0LCBQUklNQVJZLCBiZWdpblN0bXQ6IGJlZ2luU3RtdCk7Ci0gICAgICAgIHdyaXRlKCcuJyk7Ci0gICAgICAgIHdyaXRlKGUubWV0aG9kTmFtZSk7Ci0gICAgICAgIHdyaXRlKCcoJyk7Ci0gICAgICAgIHdyaXRlRWFjaCgnLCcsIGUuYXJndW1lbnRzLCB3cml0ZUFyZ3VtZW50KTsKLSAgICAgICAgd3JpdGUoJyknKTsKLSAgICAgIH0pOwotICAgIH0gZWxzZSBpZiAoZSBpcyBDYWxsTmV3KSB7Ci0gICAgICB3aXRoUHJlY2VkZW5jZShDQUxMRUUsICgpIHsKLSAgICAgICAgd3JpdGUoJyAnKTsKLSAgICAgICAgd3JpdGUoZS5pc0NvbnN0ID8gJ2NvbnN0ICcgOiAnbmV3ICcpOwotICAgICAgICB3cml0ZVR5cGUoZS50eXBlKTsKLSAgICAgICAgaWYgKGUuY29uc3RydWN0b3JOYW1lICE9IG51bGwpIHsKLSAgICAgICAgICB3cml0ZSgnLicpOwotICAgICAgICAgIHdyaXRlKGUuY29uc3RydWN0b3JOYW1lKTsKLSAgICAgICAgfQotICAgICAgICB3cml0ZSgnKCcpOwotICAgICAgICB3cml0ZUVhY2goJywnLCBlLmFyZ3VtZW50cywgd3JpdGVBcmd1bWVudCk7Ci0gICAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgQ2FsbFN0YXRpYykgewotICAgICAgd2l0aFByZWNlZGVuY2UoQ0FMTEVFLCAoKSB7Ci0gICAgICAgIHdyaXRlKGUuY2xhc3NOYW1lKTsKLSAgICAgICAgd3JpdGUoJy4nKTsKLSAgICAgICAgd3JpdGUoZS5tZXRob2ROYW1lKTsKLSAgICAgICAgd3JpdGUoJygnKTsKLSAgICAgICAgd3JpdGVFYWNoKCcsJywgZS5hcmd1bWVudHMsIHdyaXRlQXJndW1lbnQpOwotICAgICAgICB3cml0ZSgnKScpOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIEluY3JlbWVudCkgewotICAgICAgaW50IHByZWNlZGVuY2UgPSBlLmlzUHJlZml4ID8gVU5BUlkgOiBQT1NURklYX0lOQ1JFTUVOVDsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKHByZWNlZGVuY2UsICgpIHsKLSAgICAgICAgaWYgKGUuaXNQcmVmaXgpIHsKLSAgICAgICAgICB3cml0ZShlLm9wZXJhdG9yKTsKLSAgICAgICAgICB3cml0ZUV4cChlLmV4cHJlc3Npb24sIFBSSU1BUlkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHdyaXRlRXhwKGUuZXhwcmVzc2lvbiwgUFJJTUFSWSwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgICAgIHdyaXRlKGUub3BlcmF0b3IpOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICB9IGVsc2UgaWYgKGUgaXMgVGhyb3cpIHsKLSAgICAgIHdpdGhQcmVjZWRlbmNlKEVYUFJFU1NJT04sICgpIHsKLSAgICAgICAgd3JpdGUoJ3Rocm93ICcpOwotICAgICAgICB3cml0ZUV4cChlLmV4cHJlc3Npb24sIEVYUFJFU1NJT04pOwotICAgICAgfSk7Ci0gICAgfSBlbHNlIGlmIChlIGlzIFRoaXMpIHsKLSAgICAgIHdyaXRlKCd0aGlzJyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93ICJVbmV4cGVjdGVkIGV4cHJlc3Npb246ICRlIjsKLSAgICB9Ci0gIH0KLQotICB2b2lkIHdyaXRlUGFyYW1ldGVycyhQYXJhbWV0ZXJzIHBhcmFtcykgewotICAgIHdyaXRlKCcoJyk7Ci0gICAgd3JpdGVFYWNoKCcsJywgcGFyYW1zLnJlcXVpcmVkUGFyYW1ldGVycywgKFBhcmFtZXRlciBwKSB7Ci0gICAgICBpZiAocC50eXBlICE9IG51bGwpIHsKLSAgICAgICAgd3JpdGVUeXBlKHAudHlwZSk7Ci0gICAgICAgIHdyaXRlKCcgJyk7Ci0gICAgICB9Ci0gICAgICB3cml0ZShwLm5hbWUpOwotICAgICAgaWYgKHAucGFyYW1ldGVycyAhPSBudWxsKSB7Ci0gICAgICAgIHdyaXRlUGFyYW1ldGVycyhwLnBhcmFtZXRlcnMpOwotICAgICAgfQotICAgIH0pOwotICAgIGlmIChwYXJhbXMuaGFzT3B0aW9uYWxQYXJhbWV0ZXJzKSB7Ci0gICAgICBpZiAocGFyYW1zLnJlcXVpcmVkUGFyYW1ldGVycy5sZW5ndGggPiAwKSB7Ci0gICAgICAgIHdyaXRlKCcsJyk7Ci0gICAgICB9Ci0gICAgICB3cml0ZShwYXJhbXMuaGFzTmFtZWRQYXJhbWV0ZXJzID8gJ3snIDogJ1snKTsKLSAgICAgIHdyaXRlRWFjaCgnLCcsIHBhcmFtcy5vcHRpb25hbFBhcmFtZXRlcnMsIChQYXJhbWV0ZXIgcCkgewotICAgICAgICBpZiAocC50eXBlICE9IG51bGwpIHsKLSAgICAgICAgICB3cml0ZVR5cGUocC50eXBlKTsKLSAgICAgICAgICB3cml0ZSgnICcpOwotICAgICAgICB9Ci0gICAgICAgIHdyaXRlKHAubmFtZSk7Ci0gICAgICAgIGlmIChwLnBhcmFtZXRlcnMgIT0gbnVsbCkgewotICAgICAgICAgIHdyaXRlUGFyYW1ldGVycyhwLnBhcmFtZXRlcnMpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwLmRlZmF1bHRWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgd3JpdGUocGFyYW1zLmhhc05hbWVkUGFyYW1ldGVycyA/ICc6JyA6ICc9Jyk7Ci0gICAgICAgICAgd3JpdGVFeHAocC5kZWZhdWx0VmFsdWUsIEVYUFJFU1NJT04pOwotICAgICAgICB9Ci0gICAgICB9KTsKLSAgICAgIHdyaXRlKHBhcmFtcy5oYXNOYW1lZFBhcmFtZXRlcnMgPyAnfScgOiAnXScpOwotICAgIH0KLSAgICB3cml0ZSgnKScpOwotICB9Ci0KLSAgdm9pZCB3cml0ZVN0YXRlbWVudChTdGF0ZW1lbnQgc3RtdCwge2Jvb2wgc2hvcnRJZjogdHJ1ZX0pIHsKLSAgICBzdG10ID0gdW5mb2xkQmxvY2tzKHN0bXQpOwotICAgIGlmIChzdG10IGlzIEJsb2NrKSB7Ci0gICAgICB3cml0ZSgneycpOwotICAgICAgc3RtdC5zdGF0ZW1lbnRzLmZvckVhY2god3JpdGVCbG9ja01lbWJlcik7Ci0gICAgICB3cml0ZSgnfScpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBCcmVhaykgewotICAgICAgd3JpdGUoJ2JyZWFrJyk7Ci0gICAgICBpZiAoc3RtdC5sYWJlbCAhPSBudWxsKSB7Ci0gICAgICAgIHdyaXRlKCcgJyk7Ci0gICAgICAgIHdyaXRlKHN0bXQubGFiZWwpOwotICAgICAgfQotICAgICAgd3JpdGUoJzsnKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgQ29udGludWUpIHsKLSAgICAgIHdyaXRlKCdjb250aW51ZScpOwotICAgICAgaWYgKHN0bXQubGFiZWwgIT0gbnVsbCkgewotICAgICAgICB3cml0ZSgnICcpOwotICAgICAgICB3cml0ZShzdG10LmxhYmVsKTsKLSAgICAgIH0KLSAgICAgIHdyaXRlKCc7Jyk7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIEVtcHR5U3RhdGVtZW50KSB7Ci0gICAgICB3cml0ZSgnOycpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBFeHByZXNzaW9uU3RhdGVtZW50KSB7Ci0gICAgICB3cml0ZUV4cChzdG10LmV4cHJlc3Npb24sIEVYUFJFU1NJT04sIGJlZ2luU3RtdDogdHJ1ZSk7Ci0gICAgICB3cml0ZSgnOycpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBGb3IpIHsKLSAgICAgIHdyaXRlKCdmb3IoJyk7Ci0gICAgICBOb2RlIGluaXQgPSBzdG10LmluaXRpYWxpemVyOwotICAgICAgaWYgKGluaXQgaXMgRXhwcmVzc2lvbikgewotICAgICAgICB3cml0ZUV4cChpbml0LCBFWFBSRVNTSU9OKTsKLSAgICAgIH0gZWxzZSBpZiAoaW5pdCBpcyBWYXJpYWJsZURlY2xhcmF0aW9ucykgewotICAgICAgICB3cml0ZVZhcmlhYmxlRGVmaW5pdGlvbnMoaW5pdCk7Ci0gICAgICB9Ci0gICAgICB3cml0ZSgnOycpOwotICAgICAgaWYgKHN0bXQuY29uZGl0aW9uICE9IG51bGwpIHsKLSAgICAgICAgd3JpdGVFeHAoc3RtdC5jb25kaXRpb24sIEVYUFJFU1NJT04pOwotICAgICAgfQotICAgICAgd3JpdGUoJzsnKTsKLSAgICAgIHdyaXRlRWFjaCgnLCcsIHN0bXQudXBkYXRlcywgd3JpdGVFeHByZXNzaW9uKTsKLSAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICB3cml0ZVN0YXRlbWVudChzdG10LmJvZHksIHNob3J0SWY6IHNob3J0SWYpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBGb3JJbikgewotICAgICAgd3JpdGUoJ2ZvcignKTsKLSAgICAgIE5vZGUgbGh2ID0gc3RtdC5sZWZ0SGFuZFZhbHVlOwotICAgICAgaWYgKGxodiBpcyBJZGVudGlmaWVyKSB7Ci0gICAgICAgIHdyaXRlKGxodi5uYW1lKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHdyaXRlVmFyaWFibGVEZWZpbml0aW9ucyhsaHYgYXMgVmFyaWFibGVEZWNsYXJhdGlvbnMpOwotICAgICAgfQotICAgICAgd3JpdGUoJyBpbiAnKTsKLSAgICAgIHdyaXRlRXhwKHN0bXQuZXhwcmVzc2lvbiwgRVhQUkVTU0lPTik7Ci0gICAgICB3cml0ZSgnKScpOwotICAgICAgd3JpdGVTdGF0ZW1lbnQoc3RtdC5ib2R5LCBzaG9ydElmOiBzaG9ydElmKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgV2hpbGUpIHsKLSAgICAgIHdyaXRlKCd3aGlsZSgnKTsKLSAgICAgIHdyaXRlRXhwKHN0bXQuY29uZGl0aW9uLCBFWFBSRVNTSU9OKTsKLSAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICB3cml0ZVN0YXRlbWVudChzdG10LmJvZHksIHNob3J0SWY6IHNob3J0SWYpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBEb1doaWxlKSB7Ci0gICAgICB3cml0ZSgnZG8gJyk7Ci0gICAgICB3cml0ZVN0YXRlbWVudChzdG10LmJvZHkpOwotICAgICAgd3JpdGUoJ3doaWxlKCcpOwotICAgICAgd3JpdGVFeHAoc3RtdC5jb25kaXRpb24sIEVYUFJFU1NJT04pOwotICAgICAgd3JpdGUoJyk7Jyk7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIElmKSB7Ci0gICAgICAvLyBpZiAoRSkgUyBlbHNlIDsgPT0+IGlmIChFKSBTCi0gICAgICBTdGF0ZW1lbnQgZWxzZVBhcnQgPSB1bmZvbGRCbG9ja3Moc3RtdC5lbHNlU3RhdGVtZW50KTsKLSAgICAgIGlmIChlbHNlUGFydCBpcyBFbXB0eVN0YXRlbWVudCkgewotICAgICAgICBlbHNlUGFydCA9IG51bGw7Ci0gICAgICB9Ci0gICAgICBpZiAoIXNob3J0SWYgJiYgZWxzZVBhcnQgPT0gbnVsbCkgewotICAgICAgICB3cml0ZSgneycpOwotICAgICAgfQotICAgICAgd3JpdGUoJ2lmKCcpOwotICAgICAgd3JpdGVFeHAoc3RtdC5jb25kaXRpb24sIEVYUFJFU1NJT04pOwotICAgICAgd3JpdGUoJyknKTsKLSAgICAgIHdyaXRlU3RhdGVtZW50KHN0bXQudGhlblN0YXRlbWVudCwgc2hvcnRJZjogZWxzZVBhcnQgPT0gbnVsbCk7Ci0gICAgICBpZiAoZWxzZVBhcnQgIT0gbnVsbCkgewotICAgICAgICB3cml0ZSgnZWxzZSAnKTsKLSAgICAgICAgd3JpdGVTdGF0ZW1lbnQoZWxzZVBhcnQsIHNob3J0SWY6IHNob3J0SWYpOwotICAgICAgfQotICAgICAgaWYgKCFzaG9ydElmICYmIGVsc2VQYXJ0ID09IG51bGwpIHsKLSAgICAgICAgd3JpdGUoJ30nKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgTGFiZWxlZFN0YXRlbWVudCkgewotICAgICAgd3JpdGUoc3RtdC5sYWJlbCk7Ci0gICAgICB3cml0ZSgnOicpOwotICAgICAgd3JpdGVTdGF0ZW1lbnQoc3RtdC5zdGF0ZW1lbnQsIHNob3J0SWY6IHNob3J0SWYpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBSZXRocm93KSB7Ci0gICAgICB3cml0ZSgncmV0aHJvdzsnKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgUmV0dXJuKSB7Ci0gICAgICB3cml0ZSgncmV0dXJuJyk7Ci0gICAgICBpZiAoc3RtdC5leHByZXNzaW9uICE9IG51bGwpIHsKLSAgICAgICAgd3JpdGUoJyAnKTsKLSAgICAgICAgd3JpdGVFeHAoc3RtdC5leHByZXNzaW9uLCBFWFBSRVNTSU9OKTsKLSAgICAgIH0KLSAgICAgIHdyaXRlKCc7Jyk7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIFN3aXRjaCkgewotICAgICAgd3JpdGUoJ3N3aXRjaCgnKTsKLSAgICAgIHdyaXRlRXhwKHN0bXQuZXhwcmVzc2lvbiwgRVhQUkVTU0lPTik7Ci0gICAgICB3cml0ZSgnKXsnKTsKLSAgICAgIGZvciAoU3dpdGNoQ2FzZSBjYXplIGluIHN0bXQuY2FzZXMpIHsKLSAgICAgICAgaWYgKGNhemUuaXNEZWZhdWx0Q2FzZSkgewotICAgICAgICAgIHdyaXRlKCdkZWZhdWx0OicpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGZvciAoRXhwcmVzc2lvbiBleHAgaW4gY2F6ZS5leHByZXNzaW9ucykgewotICAgICAgICAgICAgd3JpdGUoJ2Nhc2UgJyk7Ci0gICAgICAgICAgICB3cml0ZUV4cChleHAsIEVYUFJFU1NJT04pOwotICAgICAgICAgICAgd3JpdGUoJzonKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGNhemUuc3RhdGVtZW50cy5pc0VtcHR5KSB7Ci0gICAgICAgICAgd3JpdGUoJzsnKTsgLy8gUHJldmVudCBmYWxsLXRocm91Z2guCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgY2F6ZS5zdGF0ZW1lbnRzLmZvckVhY2god3JpdGVCbG9ja01lbWJlcik7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIHdyaXRlKCd9Jyk7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIFRyeSkgewotICAgICAgd3JpdGUoJ3RyeScpOwotICAgICAgd3JpdGVCbG9jayhzdG10LnRyeUJsb2NrKTsKLSAgICAgIGZvciAoQ2F0Y2hCbG9jayBibG9jayBpbiBzdG10LmNhdGNoQmxvY2tzKSB7Ci0gICAgICAgIGlmIChibG9jay5vblR5cGUgIT0gbnVsbCkgewotICAgICAgICAgIHdyaXRlKCdvbiAnKTsKLSAgICAgICAgICB3cml0ZVR5cGUoYmxvY2sub25UeXBlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYmxvY2suZXhjZXB0aW9uVmFyICE9IG51bGwpIHsKLSAgICAgICAgICB3cml0ZSgnY2F0Y2goJyk7Ci0gICAgICAgICAgd3JpdGUoYmxvY2suZXhjZXB0aW9uVmFyLm5hbWUpOwotICAgICAgICAgIGlmIChibG9jay5zdGFja1ZhciAhPSBudWxsKSB7Ci0gICAgICAgICAgICB3cml0ZSgnLCcpOwotICAgICAgICAgICAgd3JpdGUoYmxvY2suc3RhY2tWYXIubmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHdyaXRlKCcpJyk7Ci0gICAgICAgIH0KLSAgICAgICAgd3JpdGVCbG9jayhibG9jay5ib2R5KTsKLSAgICAgIH0KLSAgICAgIGlmIChzdG10LmZpbmFsbHlCbG9jayAhPSBudWxsKSB7Ci0gICAgICAgIHdyaXRlKCdmaW5hbGx5Jyk7Ci0gICAgICAgIHdyaXRlQmxvY2soc3RtdC5maW5hbGx5QmxvY2spOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBWYXJpYWJsZURlY2xhcmF0aW9ucykgewotICAgICAgd3JpdGVWYXJpYWJsZURlZmluaXRpb25zKHN0bXQpOwotICAgICAgd3JpdGUoJzsnKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgRnVuY3Rpb25EZWNsYXJhdGlvbikgewotICAgICAgYXNzZXJ0KCFzdG10LmZ1bmN0aW9uLmlzR2V0dGVyICYmICFzdG10LmZ1bmN0aW9uLmlzU2V0dGVyKTsKLSAgICAgIGlmIChzdG10LnJldHVyblR5cGUgIT0gbnVsbCkgewotICAgICAgICB3cml0ZVR5cGUoc3RtdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgd3JpdGUoJyAnKTsKLSAgICAgIH0KLSAgICAgIHdyaXRlKHN0bXQubmFtZSk7Ci0gICAgICB3cml0ZVBhcmFtZXRlcnMoc3RtdC5wYXJhbWV0ZXJzKTsKLSAgICAgIFN0YXRlbWVudCBib2R5ID0gdW5mb2xkQmxvY2tzKHN0bXQuYm9keSk7Ci0gICAgICBpZiAoYm9keSBpcyBSZXR1cm4pIHsKLSAgICAgICAgd3JpdGUoJz0+ICcpOwotICAgICAgICB3cml0ZUV4cChib2R5LmV4cHJlc3Npb24sIEVYUFJFU1NJT04pOwotICAgICAgICB3cml0ZSgnOycpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgd3JpdGVCbG9jayhib2R5KTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgc3RhdGVtZW50OiAkc3RtdCI7Ci0gICAgfQotICB9Ci0KLSAgLy8vIFdyaXRlcyBhIHZhcmlhYmxlIGRlZmluaXRpb24gc3RhdGVtZW50IHdpdGhvdXQgdGhlIHRyYWlsaW5nIHNlbWljb2xvbgotICB2b2lkIHdyaXRlVmFyaWFibGVEZWZpbml0aW9ucyhWYXJpYWJsZURlY2xhcmF0aW9ucyB2ZHMpIHsKLSAgICBpZiAodmRzLmlzQ29uc3QpCi0gICAgICB3cml0ZSgnY29uc3QgJyk7Ci0gICAgZWxzZSBpZiAodmRzLmlzRmluYWwpIHdyaXRlKCdmaW5hbCAnKTsKLSAgICBpZiAodmRzLnR5cGUgIT0gbnVsbCkgewotICAgICAgd3JpdGVUeXBlKHZkcy50eXBlKTsKLSAgICAgIHdyaXRlKCcgJyk7Ci0gICAgfQotICAgIGlmICghdmRzLmlzQ29uc3QgJiYgIXZkcy5pc0ZpbmFsICYmIHZkcy50eXBlID09IG51bGwpIHsKLSAgICAgIHdyaXRlKCd2YXIgJyk7Ci0gICAgfQotICAgIHdyaXRlRWFjaCgnLCcsIHZkcy5kZWNsYXJhdGlvbnMsIChWYXJpYWJsZURlY2xhcmF0aW9uIHZkKSB7Ci0gICAgICB3cml0ZSh2ZC5uYW1lKTsKLSAgICAgIGlmICh2ZC5pbml0aWFsaXplciAhPSBudWxsKSB7Ci0gICAgICAgIHdyaXRlKCc9Jyk7Ci0gICAgICAgIHdyaXRlRXhwKHZkLmluaXRpYWxpemVyLCBFWFBSRVNTSU9OKTsKLSAgICAgIH0KLSAgICB9KTsKLSAgfQotCi0gIC8vLyBUcnVlIG9mIHN0YXRlbWVudHMgdGhhdCBpbnRyb2R1Y2UgdmFyaWFibGVzIGluIHRoZSBzY29wZSBvZiB0aGVpcgotICAvLy8gc3Vycm91bmRpbmcgYmxvY2suIEJsb2NrcyBjb250YWluaW5nIHN1Y2ggc3RhdGVtZW50cyBjYW5ub3QgYmUgdW5mb2xkZWQuCi0gIHN0YXRpYyBib29sIGRlZmluZXNWYXJpYWJsZShTdGF0ZW1lbnQgcykgewotICAgIHJldHVybiBzIGlzIFZhcmlhYmxlRGVjbGFyYXRpb25zIHx8IHMgaXMgRnVuY3Rpb25EZWNsYXJhdGlvbjsKLSAgfQotCi0gIC8vLyBXcml0ZXMgdGhlIGdpdmVuIHN0YXRlbWVudCBpbiBhIGNvbnRleHQgd2hlcmUgb25seSBibG9ja3MgYXJlIGFsbG93ZWQuCi0gIHZvaWQgd3JpdGVCbG9jayhTdGF0ZW1lbnQgc3RtdCkgewotICAgIGlmIChzdG10IGlzIEJsb2NrKSB7Ci0gICAgICB3cml0ZVN0YXRlbWVudChzdG10KTsKLSAgICB9IGVsc2UgewotICAgICAgd3JpdGUoJ3snKTsKLSAgICAgIHdyaXRlQmxvY2tNZW1iZXIoc3RtdCk7Ci0gICAgICB3cml0ZSgnfScpOwotICAgIH0KLSAgfQotCi0gIC8vLyBPdXRwdXRzIGEgc3RhdGVtZW50IHRoYXQgaXMgYSBtZW1iZXIgb2YgYSBibG9jayBzdGF0ZW1lbnQgKG9yIGEgc2ltaWxhcgotICAvLy8gc2VxdWVuY2Ugb2Ygc3RhdGVtZW50cywgc3VjaCBhcyBpbiBzd2l0Y2ggc3RhdGVtZW50KS4KLSAgLy8vIFRoaXMgd2lsbCBmbGF0dGVuIGJsb2NrcyBhbmQgc2tpcCBlbXB0eSBzdGF0ZW1lbnQuCi0gIHZvaWQgd3JpdGVCbG9ja01lbWJlcihTdGF0ZW1lbnQgc3RtdCkgewotICAgIGlmIChzdG10IGlzIEJsb2NrICYmICFzdG10LnN0YXRlbWVudHMuYW55KGRlZmluZXNWYXJpYWJsZSkpIHsKLSAgICAgIHN0bXQuc3RhdGVtZW50cy5mb3JFYWNoKHdyaXRlQmxvY2tNZW1iZXIpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBFbXB0eVN0YXRlbWVudCkgewotICAgICAgLy8gZG8gbm90aGluZwotICAgIH0gZWxzZSB7Ci0gICAgICB3cml0ZVN0YXRlbWVudChzdG10KTsKLSAgICB9Ci0gIH0KLQotICB2b2lkIHdyaXRlVHlwZShUeXBlQW5ub3RhdGlvbiB0eXBlKSB7Ci0gICAgd3JpdGUodHlwZS5uYW1lKTsKLSAgICBpZiAodHlwZS50eXBlQXJndW1lbnRzICE9IG51bGwgJiYgdHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCA+IDApIHsKLSAgICAgIHdyaXRlKCc8Jyk7Ci0gICAgICB3cml0ZUVhY2goJywnLCB0eXBlLnR5cGVBcmd1bWVudHMsIHdyaXRlVHlwZSk7Ci0gICAgICB3cml0ZSgnPicpOwotICAgIH0KLSAgfQotCi0gIC8vLyBBIGxpc3Qgb2Ygc3RyaW5nIHF1b3RpbmdzIHRoYXQgdGhlIHByaW50ZXIgbWF5IHVzZSB0byBxdW90ZSBzdHJpbmdzLgotICAvLyBJZ25vcmUgbXVsdGlsaW5lIHF1b3RpbmdzIGZvciBub3cuIFdvdWxkIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgbm8KLSAgLy8gbmV3bGluZSAocG90ZW50aWFsbHkgcHJlZml4ZWQgYnkgd2hpdGVzcGFjZSkgZm9sbG93cyB0aGUgcXVvdGluZy4KLSAgc3RhdGljIGNvbnN0IF9RVU9USU5HUyA9IGNvbnN0IDx0cmVlLlN0cmluZ1F1b3Rpbmc+WwotICAgIGNvbnN0IHRyZWUuU3RyaW5nUXVvdGluZyhjaGFyYWN0ZXJzLiREUSwgcmF3OiBmYWxzZSwgbGVmdFF1b3RlTGVuZ3RoOiAxKSwKLSAgICBjb25zdCB0cmVlLlN0cmluZ1F1b3RpbmcoY2hhcmFjdGVycy4kRFEsIHJhdzogdHJ1ZSwgbGVmdFF1b3RlTGVuZ3RoOiAxKSwKLSAgICBjb25zdCB0cmVlLlN0cmluZ1F1b3RpbmcoY2hhcmFjdGVycy4kU1EsIHJhdzogZmFsc2UsIGxlZnRRdW90ZUxlbmd0aDogMSksCi0gICAgY29uc3QgdHJlZS5TdHJpbmdRdW90aW5nKGNoYXJhY3RlcnMuJFNRLCByYXc6IHRydWUsIGxlZnRRdW90ZUxlbmd0aDogMSksCi0gIF07Ci0KLSAgc3RhdGljIFN0cmluZ0xpdGVyYWxPdXRwdXQgYW5hbHl6ZVN0cmluZ0xpdGVyYWwoRXhwcmVzc2lvbiBub2RlKSB7Ci0gICAgLy8gRmxhdHRlbiB0aGUgU3RyaW5nQ29uY2F0IHRyZWUuCi0gICAgTGlzdCBwYXJ0cyA9IFtdOyAvLyBFeHByZXNzaW9uIG9yIGludCAoY2hhciBub2RlKQotICAgIHZvaWQgY29sbGVjdFBhcnRzKEV4cHJlc3Npb24gZSkgewotICAgICAgaWYgKGUgaXMgU3RyaW5nQ29uY2F0KSB7Ci0gICAgICAgIGUuZXhwcmVzc2lvbnMuZm9yRWFjaChjb2xsZWN0UGFydHMpOwotICAgICAgfSBlbHNlIGlmIChlIGlzIExpdGVyYWwgJiYgZS52YWx1ZS5pc1N0cmluZykgewotICAgICAgICBmb3IgKGludCBjaGFyIGluIGUudmFsdWUucHJpbWl0aXZlVmFsdWUpIHsKLSAgICAgICAgICBwYXJ0cy5hZGQoY2hhcik7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhcnRzLmFkZChlKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgY29sbGVjdFBhcnRzKG5vZGUpOwotCi0gICAgLy8gV2UgdXNlIGEgZHluYW1pYyBhbGdvcml0aG0gdG8gY29tcHV0ZSB0aGUgb3B0aW1hbCB3YXkgb2YgcHJpbnRpbmcKLSAgICAvLyB0aGUgc3RyaW5nIGxpdGVyYWwuCi0gICAgLy8KLSAgICAvLyBVc2luZyBzdHJpbmcganV4dGFwb3NpdGlvbnMsIGl0IGlzIHBvc3NpYmxlIHRvIHN3aXRjaCBmcm9tIG9uZSBxdW90aW5nCi0gICAgLy8gdG8gYW5vdGhlciwgZS5nLiB0aGUgY29uc3RhbnQgIicnJyciICciIiIiJyB1c2VzIHRoaXMgdHJpY2suCi0gICAgLy8KLSAgICAvLyBBcyB3ZSBtb3ZlIHRocm91Z2ggdGhlIHN0cmluZyBmcm9tIGxlZnQgdG8gcmlnaHQsIHdlIG1haW50YWluIGEgc3RyYXRlZ3kKLSAgICAvLyBmb3IgZWFjaCBTdHJpbmdRdW90aW5nIFEsIGRlbm90aW5nIHRoZSBiZXN0IHdheSB0byBwcmludCB0aGUgY3VycmVudAotICAgIC8vIHByZWZpeCBzbyB0aGF0IHdlIGVuZCB3aXRoIGEgc3RyaW5nIGxpdGVyYWwgcXVvdGVkIHdpdGggUS4KLSAgICAvLyBBdCBldmVyeSBzdGVwLCBlYWNoIHN0cmF0ZWd5IGlzIGVpdGhlcjoKLSAgICAvLyAgMSkgVXBkYXRlZCB0byBpbmNsdWRlIHRoZSBjb3N0IG9mIHByaW50aW5nIHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICAvLyAgMikgQWJhbmRvbmVkIGJlY2F1c2UgaXQgaXMgY2hlYXBlciB0byB1c2UgYW5vdGhlciBzdHJhdGVneSBhcyBwcmVmaXgsCi0gICAgLy8gICAgIGFuZCB0aGVuIHN3aXRjaGluZyBxdW90YXRpb24gdXNpbmcgYSBqdXh0YXBvc2l0aW9uLgotCi0gICAgaW50IGdldFF1b3RlQ29zdCh0cmVlLlN0cmluZ1F1b3RpbmcgcXVvdCkgewotICAgICAgcmV0dXJuIHF1b3QubGVmdFF1b3RlTGVuZ3RoICsgcXVvdC5yaWdodFF1b3RlTGVuZ3RoOwotICAgIH0KLQotICAgIC8vIENyZWF0ZSBpbml0aWFsIHNjb3JlcyBmb3IgZWFjaCBTdHJpbmdRdW90aW5nIGFuZCBpbmRleCB0aGVtCi0gICAgLy8gaW50byByYXcvbm9uLXJhdyBhbmQgc2luZ2xlLXF1b3RlL2RvdWJsZS1xdW90ZS4KLSAgICBMaXN0PE9wZW5TdHJpbmdDaHVuaz4gYmVzdCA9IDxPcGVuU3RyaW5nQ2h1bms+W107Ci0gICAgTGlzdDxpbnQ+IHJhd3MgPSA8aW50PltdOwotICAgIExpc3Q8aW50PiBub25SYXdzID0gPGludD5bXTsKLSAgICBMaXN0PGludD4gc3FzID0gPGludD5bXTsKLSAgICBMaXN0PGludD4gZHFzID0gPGludD5bXTsKLSAgICBmb3IgKHRyZWUuU3RyaW5nUXVvdGluZyBxIGluIF9RVU9USU5HUykgewotICAgICAgT3BlblN0cmluZ0NodW5rIGNodW5rID0gbmV3IE9wZW5TdHJpbmdDaHVuayhudWxsLCBxLCBnZXRRdW90ZUNvc3QocSkpOwotICAgICAgaW50IGluZGV4ID0gYmVzdC5sZW5ndGg7Ci0gICAgICBiZXN0LmFkZChjaHVuayk7Ci0KLSAgICAgIGlmIChxLnJhdykgewotICAgICAgICByYXdzLmFkZChpbmRleCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBub25SYXdzLmFkZChpbmRleCk7Ci0gICAgICB9Ci0gICAgICBpZiAocS5xdW90ZSA9PSBjaGFyYWN0ZXJzLiRTUSkgewotICAgICAgICBzcXMuYWRkKGluZGV4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGRxcy5hZGQoaW5kZXgpOwotICAgICAgfQotICAgIH0KLQotICAgIC8vLyBBcHBsaWVzIGFkZGl0aW9uYWwgY29zdCB0byBlYWNoIHRyYWNrIGluIFtwZW5hbGl6ZWRdLCBhbmQgY29uc2lkZXJzCi0gICAgLy8vIHN3aXRjaGluZyBmcm9tIGVhY2ggW3BlbmFsaXplZF0gdG8gYSBbbm9uUGVuYWxpemVkXSB0cmFjay4KLSAgICB2b2lkIHBlbmFsaXplKExpc3Q8aW50PiBwZW5hbGl6ZWQsIExpc3Q8aW50PiBub25QZW5hbGl6ZWQsIGludCBlbmRJbmRleCwKLSAgICAgICAgbnVtIGNvc3QodHJlZS5TdHJpbmdRdW90aW5nIHEpKSB7Ci0gICAgICBmb3IgKGludCBqIGluIHBlbmFsaXplZCkgewotICAgICAgICAvLyBDaGVjayBpZiBhbm90aGVyIHRyYWNrIGNhbiBiZW5lZml0IGZyb20gc3dpdGNoaW5nIGZyb20gdGhpcyB0cmFjay4KLSAgICAgICAgZm9yIChpbnQgayBpbiBub25QZW5hbGl6ZWQpIHsKLSAgICAgICAgICBudW0gbmV3Q29zdCA9IGJlc3Rbal0uY29zdCArCi0gICAgICAgICAgICAgIDEgLy8gV2hpdGVzcGFjZSBpbiBzdHJpbmcganV4dGFwb3NpdGlvbgotICAgICAgICAgICAgICArCi0gICAgICAgICAgICAgIGdldFF1b3RlQ29zdChiZXN0W2tdLnF1b3RpbmcpOwotICAgICAgICAgIGlmIChuZXdDb3N0IDwgYmVzdFtrXS5jb3N0KSB7Ci0gICAgICAgICAgICBiZXN0W2tdID0gbmV3IE9wZW5TdHJpbmdDaHVuaygKLSAgICAgICAgICAgICAgICBiZXN0W2pdLmVuZChlbmRJbmRleCksIGJlc3Rba10ucXVvdGluZywgbmV3Q29zdCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGJlc3Rbal0uY29zdCArPSBjb3N0KGJlc3Rbal0ucXVvdGluZyk7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBzdHJpbmcgYW5kIHVwZGF0ZSB0aGUgc2NvcmUgZm9yIGVhY2ggU3RyaW5nUXVvdGluZy4KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICB2YXIgcGFydCA9IHBhcnRzW2ldOwotICAgICAgaWYgKHBhcnQgaXMgaW50KSB7Ci0gICAgICAgIGludCBjaGFyID0gcGFydDsKLSAgICAgICAgc3dpdGNoIChjaGFyKSB7Ci0gICAgICAgICAgY2FzZSBjaGFyYWN0ZXJzLiQkOgotICAgICAgICAgIGNhc2UgY2hhcmFjdGVycy4kQkFDS1NMQVNIOgotICAgICAgICAgICAgcGVuYWxpemUobm9uUmF3cywgcmF3cywgaSwgKHEpID0+IDEpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgY2FzZSBjaGFyYWN0ZXJzLiREUToKLSAgICAgICAgICAgIHBlbmFsaXplKGRxcywgc3FzLCBpLCAocSkgPT4gcS5yYXcgPyBkb3VibGUuSU5GSU5JVFkgOiAxKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgY2hhcmFjdGVycy4kU1E6Ci0gICAgICAgICAgICBwZW5hbGl6ZShzcXMsIGRxcywgaSwgKHEpID0+IHEucmF3ID8gZG91YmxlLklORklOSVRZIDogMSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICBjYXNlIGNoYXJhY3RlcnMuJExGOgotICAgICAgICAgIGNhc2UgY2hhcmFjdGVycy4kQ1I6Ci0gICAgICAgICAgY2FzZSBjaGFyYWN0ZXJzLiRGRjoKLSAgICAgICAgICBjYXNlIGNoYXJhY3RlcnMuJEJTOgotICAgICAgICAgIGNhc2UgY2hhcmFjdGVycy4kVlRBQjoKLSAgICAgICAgICBjYXNlIGNoYXJhY3RlcnMuJFRBQjoKLSAgICAgICAgICBjYXNlIGNoYXJhY3RlcnMuJEVPRjoKLSAgICAgICAgICAgIHBlbmFsaXplKHJhd3MsIG5vblJhd3MsIGksIChxKSA9PiBkb3VibGUuSU5GSU5JVFkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFBlbmFsaXplIHJhdyBsaXRlcmFscyBmb3Igc3RyaW5nIGludGVycG9sYXRpb24uCi0gICAgICAgIHBlbmFsaXplKHJhd3MsIG5vblJhd3MsIGksIChxKSA9PiBkb3VibGUuSU5GSU5JVFkpOwotCi0gICAgICAgIC8vIFNwbGl0dGluZyBhIHN0cmluZyBjYW4gc29tZXRpbWVzIGFsbG93IHVzIHRvIHVzZSBhIHNob3J0aGFuZAotICAgICAgICAvLyBzdHJpbmcgaW50ZXJwb2xhdGlvbiB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbGxlZ2FsLgotICAgICAgICAvLyBFLmcuICIuLi4ke2Zvb314Li4uIiAtPiAiLi4uJGZvbyIgJ3guLi4nCi0gICAgICAgIC8vIElmIGFyZSBvdGhlciBmYWN0b3JzIHRoYXQgbWFrZSBzcGxpdHRpbmcgYWR2YW50YWdlb3VzLAotICAgICAgICAvLyB3ZSBjYW4gZ2FpbiBldmVuIG1vcmUgYnkgZG9pbmcgdGhlIHNwbGl0IGhlcmUuCi0gICAgICAgIGlmIChwYXJ0IGlzIElkZW50aWZpZXIgJiYKLSAgICAgICAgICAgICFwYXJ0Lm5hbWUuY29udGFpbnMocickJykgJiYKLSAgICAgICAgICAgIGkgKyAxIDwgcGFydHMubGVuZ3RoICYmCi0gICAgICAgICAgICBpc0lkZW50aWZpZXJQYXJ0Tm9Eb2xsYXIocGFydHNbaSArIDFdKSkgewotICAgICAgICAgIGZvciAoaW50IGogaW4gbm9uUmF3cykgewotICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBiZXN0Lmxlbmd0aDsgaysrKSB7Ci0gICAgICAgICAgICAgIG51bSBuZXdDb3N0ID0gYmVzdFtqXS5jb3N0ICsKLSAgICAgICAgICAgICAgICAgIDEgLy8gV2hpdGVzcGFjZSBpbiBzdHJpbmcganV4dGFwb3NpdGlvbgotICAgICAgICAgICAgICAgICAgLQotICAgICAgICAgICAgICAgICAgMiAvLyBTYXZlIHR3byBjdXJseSBicmFjZXMKLSAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgIGdldFF1b3RlQ29zdChiZXN0W2tdLnF1b3RpbmcpOwotICAgICAgICAgICAgICBpZiAobmV3Q29zdCA8IGJlc3Rba10uY29zdCkgewotICAgICAgICAgICAgICAgIGJlc3Rba10gPSBuZXcgT3BlblN0cmluZ0NodW5rKAotICAgICAgICAgICAgICAgICAgICBiZXN0W2pdLmVuZChpICsgMSksIGJlc3Rba10ucXVvdGluZywgbmV3Q29zdCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBTZWxlY3QgdGhlIGNoZWFwZXN0IHN0cmF0ZWd5Ci0gICAgT3BlblN0cmluZ0NodW5rIGJlc3RDaHVuayA9IGJlc3RbMF07Ci0gICAgZm9yIChPcGVuU3RyaW5nQ2h1bmsgY2h1bmsgaW4gYmVzdCkgewotICAgICAgaWYgKGNodW5rLmNvc3QgPCBiZXN0Q2h1bmsuY29zdCkgewotICAgICAgICBiZXN0Q2h1bmsgPSBjaHVuazsKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbmV3IFN0cmluZ0xpdGVyYWxPdXRwdXQocGFydHMsIGJlc3RDaHVuay5lbmQocGFydHMubGVuZ3RoKSk7Ci0gIH0KLQotICB2b2lkIHdyaXRlU3RyaW5nTGl0ZXJhbChFeHByZXNzaW9uIG5vZGUpIHsKLSAgICBTdHJpbmdMaXRlcmFsT3V0cHV0IG91dHB1dCA9IGFuYWx5emVTdHJpbmdMaXRlcmFsKG5vZGUpOwotICAgIExpc3QgcGFydHMgPSBvdXRwdXQucGFydHM7Ci0gICAgdm9pZCBwcmludENodW5rKFN0cmluZ0NodW5rIGNodW5rKSB7Ci0gICAgICBpbnQgc3RhcnRJbmRleDsKLSAgICAgIGlmIChjaHVuay5wcmV2aW91cyAhPSBudWxsKSB7Ci0gICAgICAgIHByaW50Q2h1bmsoY2h1bmsucHJldmlvdXMpOwotICAgICAgICB3cml0ZSgnICcpOyAvLyBTdHJpbmcganV4dGFwb3NpdGlvbiByZXF1aXJlcyBhIHNwYWNlIGJldHdlZW4gbGl0ZXJhbHMuCi0gICAgICAgIHN0YXJ0SW5kZXggPSBjaHVuay5wcmV2aW91cy5lbmRJbmRleDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXJ0SW5kZXggPSAwOwotICAgICAgfQotICAgICAgaWYgKGNodW5rLnF1b3RpbmcucmF3KSB7Ci0gICAgICAgIHdyaXRlKCdyJyk7Ci0gICAgICB9Ci0gICAgICB3cml0ZShjaHVuay5xdW90aW5nLnF1b3RlQ2hhcik7Ci0gICAgICBib29sIHJhdyA9IGNodW5rLnF1b3RpbmcucmF3OwotICAgICAgaW50IHF1b3RlQ29kZSA9IGNodW5rLnF1b3RpbmcucXVvdGU7Ci0gICAgICBmb3IgKGludCBpID0gc3RhcnRJbmRleDsgaSA8IGNodW5rLmVuZEluZGV4OyBpKyspIHsKLSAgICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKLSAgICAgICAgaWYgKHBhcnQgaXMgaW50KSB7Ci0gICAgICAgICAgaW50IGNoYXIgPSBwYXJ0OwotICAgICAgICAgIHdyaXRlKGdldEVzY2FwZWRDaGFyYWN0ZXIoY2hhciwgcXVvdGVDb2RlLCByYXcpKTsKLSAgICAgICAgfSBlbHNlIGlmIChwYXJ0IGlzIElkZW50aWZpZXIgJiYKLSAgICAgICAgICAgICFwYXJ0Lm5hbWUuY29udGFpbnMocickJykgJiYKLSAgICAgICAgICAgIChpID09IGNodW5rLmVuZEluZGV4IC0gMSB8fAotICAgICAgICAgICAgICAgICFpc0lkZW50aWZpZXJQYXJ0Tm9Eb2xsYXIocGFydHNbaSArIDFdKSkpIHsKLSAgICAgICAgICB3cml0ZShyJyQnKTsKLSAgICAgICAgICB3cml0ZShwYXJ0Lm5hbWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHdyaXRlKHInJHsnKTsKLSAgICAgICAgICB3cml0ZUV4cHJlc3Npb24ocGFydCk7Ci0gICAgICAgICAgd3JpdGUoJ30nKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgd3JpdGUoY2h1bmsucXVvdGluZy5xdW90ZUNoYXIpOwotICAgIH0KLSAgICBwcmludENodW5rKG91dHB1dC5jaHVuayk7Ci0gIH0KLQotICBzdGF0aWMgU3RyaW5nIGdldEVzY2FwZWRDaGFyYWN0ZXIoaW50IGNoYXIsIGludCBxdW90ZUNvZGUsIGJvb2wgcmF3KSB7Ci0gICAgc3dpdGNoIChjaGFyKSB7Ci0gICAgICBjYXNlIGNoYXJhY3RlcnMuJCQ6Ci0gICAgICAgIHJldHVybiByYXcgPyByJyQnIDogcidcJCc7Ci0gICAgICBjYXNlIGNoYXJhY3RlcnMuJEJBQ0tTTEFTSDoKLSAgICAgICAgcmV0dXJuIHJhdyA/IHInXCcgOiByJ1xcJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kRFE6Ci0gICAgICAgIHJldHVybiBxdW90ZUNvZGUgPT0gY2hhciA/IHInXCInIDogciciJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kU1E6Ci0gICAgICAgIHJldHVybiBxdW90ZUNvZGUgPT0gY2hhciA/IHIiXCciIDogciInIjsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kTEY6Ci0gICAgICAgIHJldHVybiByJ1xuJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kQ1I6Ci0gICAgICAgIHJldHVybiByJ1xyJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kRkY6Ci0gICAgICAgIHJldHVybiByJ1xmJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kQlM6Ci0gICAgICAgIHJldHVybiByJ1xiJzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kVEFCOgotICAgICAgICByZXR1cm4gcidcdCc7Ci0gICAgICBjYXNlIGNoYXJhY3RlcnMuJFZUQUI6Ci0gICAgICAgIHJldHVybiByJ1x2JzsKLSAgICAgIGNhc2UgY2hhcmFjdGVycy4kRU9GOgotICAgICAgICByZXR1cm4gcidceDAwJzsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyKTsKLSAgICB9Ci0gIH0KLX0KLQotLy8vIFRoZSBjb250ZW50cyBvZiBhIHN0cmluZyBsaXRlcmFsIHRvZ2V0aGVyIHdpdGggYSBzdHJhdGVneSBmb3IgcHJpbnRpbmcgaXQuCi1jbGFzcyBTdHJpbmdMaXRlcmFsT3V0cHV0IHsKLSAgLy8vIE1peCBvZiBbRXhwcmVzc2lvbl0gYW5kIGBpbnRgLiBFYWNoIGV4cHJlc3Npb24gaXMgYSBzdHJpbmcgaW50ZXJwb2xhdGlvbiwKLSAgLy8vIGFuZCBlYWNoIGBpbnRgIGlzIHRoZSBjaGFyYWN0ZXIgY29kZSBvZiBhIGNoYXJhY3RlciBpbiBhIHN0cmluZyBsaXRlcmFsLgotICBmaW5hbCBMaXN0IHBhcnRzOwotICBmaW5hbCBTdHJpbmdDaHVuayBjaHVuazsKLQotICBTdHJpbmdMaXRlcmFsT3V0cHV0KHRoaXMucGFydHMsIHRoaXMuY2h1bmspOwotfQotCi0vLy8gU3RyYXRlZ3kgZm9yIHByaW50aW5nIGEgcHJlZml4IG9mIGEgc3RyaW5nIGxpdGVyYWwuCi0vLy8gQSBjaHVuayByZXByZXNlbnRzIHRoZSBzdWJzdHJpbmcgZ29pbmcgZnJvbSBbOnByZXZpb3VzLmVuZEluZGV4Ol0gdG8KLS8vLyBbZW5kSW5kZXhdIChvciBmcm9tIDAgdG8gW2VuZEluZGV4XSBpZiBbcHJldmlvdXNdIGlzIG51bGwpLgotY2xhc3MgU3RyaW5nQ2h1bmsgewotICBmaW5hbCBTdHJpbmdDaHVuayBwcmV2aW91czsKLSAgZmluYWwgdHJlZS5TdHJpbmdRdW90aW5nIHF1b3Rpbmc7Ci0gIGZpbmFsIGludCBlbmRJbmRleDsKLQotICBTdHJpbmdDaHVuayh0aGlzLnByZXZpb3VzLCB0aGlzLnF1b3RpbmcsIHRoaXMuZW5kSW5kZXgpOwotfQotCi0vLy8gW1N0cmluZ0NodW5rXSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gYXNzaWduZWQgYW4gW2VuZEluZGV4XS4KLS8vLyBJdCBhZGRpdGlvbmFsbHkgaGFzIGEgW2Nvc3RdIGRlbm90aW5nIHRoZSBudW1iZXIgb2YgYXV4aWxsaWFyeSBjaGFyYWN0ZXJzCi0vLy8gKHF1b3Rlcywgc3BhY2VzLCBldGMpIG5lZWRlZCB0byBwcmludCB0aGUgbGl0ZXJhbCB1c2luZyB0aGlzIHN0cmF0ZWd5Ci1jbGFzcyBPcGVuU3RyaW5nQ2h1bmsgewotICBmaW5hbCBTdHJpbmdDaHVuayBwcmV2aW91czsKLSAgZmluYWwgdHJlZS5TdHJpbmdRdW90aW5nIHF1b3Rpbmc7Ci0gIG51bSBjb3N0OwotCi0gIE9wZW5TdHJpbmdDaHVuayh0aGlzLnByZXZpb3VzLCB0aGlzLnF1b3RpbmcsIHRoaXMuY29zdCk7Ci0KLSAgU3RyaW5nQ2h1bmsgZW5kKGludCBlbmRJbmRleCkgewotICAgIHJldHVybiBuZXcgU3RyaW5nQ2h1bmsocHJldmlvdXMsIHF1b3RpbmcsIGVuZEluZGV4KTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmRfYXN0X3RvX2Zyb250ZW5kX2FzdC5kYXJ0IGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmRfYXN0X3RvX2Zyb250ZW5kX2FzdC5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njk4NThkLi4wMDAwMDAwCi0tLSBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9iYWNrZW5kX2FzdF90b19mcm9udGVuZF9hc3QuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDEzNTMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1saWJyYXJ5IGRhcnRfdHJlZV9wcmludGVyOwotCi1pbXBvcnQgJy4uL2NvbW1vbi5kYXJ0JzsKLWltcG9ydCAnLi4vY29uc3RhbnRzL3ZhbHVlcy5kYXJ0JyBhcyB2YWx1ZXM7Ci1pbXBvcnQgJy4uL2RhcnRfdHlwZXMuZGFydCcgYXMgdHlwZXM7Ci1pbXBvcnQgJy4uL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnIGFzIGVsZW1lbnRzOwotaW1wb3J0ICcuLi9yZXNvbHV0aW9uL3RyZWVfZWxlbWVudHMuZGFydCcgc2hvdyBUcmVlRWxlbWVudE1hcHBpbmc7Ci1pbXBvcnQgJy4uL3Rva2Vucy90b2tlbi5kYXJ0JzsKLWltcG9ydCAnLi4vdG9rZW5zL3Rva2VuX2NvbnN0YW50cy5kYXJ0JzsKLWltcG9ydCAnLi4vdG9rZW5zL3ByZWNlZGVuY2UuZGFydCc7Ci1pbXBvcnQgJy4uL3Rva2Vucy9wcmVjZWRlbmNlX2NvbnN0YW50cy5kYXJ0JzsKLWltcG9ydCAnLi4vdHJlZS90cmVlLmRhcnQnIGFzIHRyZWU7Ci1pbXBvcnQgJy4uL3V0aWwvdXRpbC5kYXJ0JzsKLWltcG9ydCAnYmFja2VuZF9hc3Rfbm9kZXMuZGFydCc7Ci1pbXBvcnQgJ2JhY2tlbmRfYXN0X2VtaXR0ZXIuZGFydCcgc2hvdyBUeXBlR2VuZXJhdG9yOwotCi0vLy8gVHJhbnNsYXRlcyB0aGUgYmFja2VuZCBBU1QgdG8gRGFydCBmcm9udGVuZCBBU1QuCi10cmVlLk5vZGUgZW1pdChUcmVlRWxlbWVudE1hcHBpbmcgdHJlZUVsZW1lbnRzLCBSb290Tm9kZSByb290KSB7Ci0gIHJldHVybiBuZXcgVHJlZVByaW50ZXIodHJlZUVsZW1lbnRzKS5tYWtlRGVmaW5pdGlvbihyb290KTsKLX0KLQotLy8vIElmIHRydWUsIHRoZSB1bnBhcnNlciB3aWxsIGluc2VydCBhIGNvbWVudCBpbiBmcm9udCBvZiBldmVyeSBmdW5jdGlvbgotLy8vIGl0IGVtaXRzLiBUaGlzIGhlbHBzIGluZGljYXRlIHdoaWNoIGZ1bmN0aW9ucyB3ZXJlIHRyYW5zbGF0ZWQgYnkgdGhlIG5ldwotLy8vIGJhY2tlbmQuCi1ib29sIElOU0VSVF9ORVdfQkFDS0VORF9DT01NRU5UID0KLSAgICBjb25zdCBib29sLmZyb21FbnZpcm9ubWVudCgiSU5TRVJUX05FV19CQUNLRU5EX0NPTU1FTlQiKTsKLQotLy8vIENvbnZlcnRzIGJhY2tlbmQgQVNUcyB0byBmcm9udGVuZCBBU1RzLgotY2xhc3MgVHJlZVByaW50ZXIgewotICBUcmVlRWxlbWVudE1hcHBpbmcgdHJlZUVsZW1lbnRzOwotCi0gIFRyZWVQcmludGVyKFt0aGlzLnRyZWVFbGVtZW50c10pOwotCi0gIHRyZWUuTm9kZSBtYWtlRGVmaW5pdGlvbihSb290Tm9kZSBub2RlKSB7Ci0gICAgaWYgKG5vZGUgaXMgRmllbGREZWZpbml0aW9uKSB7Ci0gICAgICB0cmVlLk5vZGUgZGVmaW5pdGlvbjsKLSAgICAgIGlmIChub2RlLmluaXRpYWxpemVyID09IG51bGwpIHsKLSAgICAgICAgZGVmaW5pdGlvbiA9IG1ha2VJZGVudGlmaWVyKG5vZGUuZWxlbWVudC5uYW1lKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlZmluaXRpb24gPSBuZXcgdHJlZS5TZW5kU2V0KAotICAgICAgICAgICAgbnVsbCwKLSAgICAgICAgICAgIG1ha2VJZGVudGlmaWVyKG5vZGUuZWxlbWVudC5uYW1lKSwKLSAgICAgICAgICAgIG5ldyB0cmVlLk9wZXJhdG9yKGFzc2lnbm1lbnRUb2tlbigiPSIpKSwKLSAgICAgICAgICAgIHNpbmdsZXRvbihtYWtlRXhwcmVzc2lvbihub2RlLmluaXRpYWxpemVyKSkpOwotICAgICAgfQotICAgICAgc2V0RWxlbWVudChkZWZpbml0aW9uLCBub2RlLmVsZW1lbnQsIG5vZGUpOwotICAgICAgcmV0dXJuIG5ldyB0cmVlLlZhcmlhYmxlRGVmaW5pdGlvbnMoCi0gICAgICAgICAgbnVsbCwgLy8gVE9ETyhzaWd1cmRtKTogVHlwZQotICAgICAgICAgIG1ha2VWYXJNb2RpZmllcnMoCi0gICAgICAgICAgICAgIHVzZVZhcjogdHJ1ZSwKLSAgICAgICAgICAgICAgaXNGaW5hbDogbm9kZS5lbGVtZW50LmlzRmluYWwsCi0gICAgICAgICAgICAgIGlzU3RhdGljOiBub2RlLmVsZW1lbnQuaXNTdGF0aWMsCi0gICAgICAgICAgICAgIGlzQ29uc3Q6IG5vZGUuZWxlbWVudC5pc0NvbnN0KSwKLSAgICAgICAgICBtYWtlTGlzdChudWxsLCBbZGVmaW5pdGlvbl0sIGNsb3NlOiBzZW1pY29sb24pKTsKLSAgICB9IGVsc2UgaWYgKG5vZGUgaXMgRnVuY3Rpb25FeHByZXNzaW9uKSB7Ci0gICAgICByZXR1cm4gbWFrZUV4cHJlc3Npb24obm9kZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0gIH0KLQotICB2b2lkIHNldEVsZW1lbnQodHJlZS5Ob2RlIG5vZGUsIGVsZW1lbnRzLkVsZW1lbnQgZWxlbWVudCwgc291cmNlKSB7Ci0gICAgaWYgKHRyZWVFbGVtZW50cyAhPSBudWxsKSB7Ci0gICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7Ci0gICAgICAgIHRocm93ICJNaXNzaW5nIGVsZW1lbnQgZnJvbSAke3NvdXJjZX0iOwotICAgICAgfQotICAgICAgdHJlZUVsZW1lbnRzW25vZGVdID0gZWxlbWVudDsKLSAgICB9Ci0gIH0KLQotICB2b2lkIHNldFR5cGUodHJlZS5Ob2RlIG5vZGUsIHR5cGVzLkRhcnRUeXBlIHR5cGUsIHNvdXJjZSkgewotICAgIGlmICh0cmVlRWxlbWVudHMgIT0gbnVsbCkgewotICAgICAgaWYgKHR5cGUgPT0gbnVsbCkgewotICAgICAgICB0aHJvdyAiTWlzc2luZyB0eXBlIGZyb20gJHtzb3VyY2V9IjsKLSAgICAgIH0KLSAgICAgIHRyZWVFbGVtZW50cy5zZXRUeXBlKG5vZGUsIHR5cGUpOwotICAgIH0KLSAgfQotCi0gIC8vIEdyb3VwIHRva2VuczogKCkgW10ge30gPD4KLSAgc3RhdGljIEJlZ2luR3JvdXBUb2tlbiBtYWtlR3JvdXAoUHJlY2VkZW5jZUluZm8gb3BlbiwgUHJlY2VkZW5jZUluZm8gY2xvc2UpIHsKLSAgICBCZWdpbkdyb3VwVG9rZW4gb3BlblRvayA9IG5ldyBCZWdpbkdyb3VwVG9rZW4ob3BlbiwgLTEpOwotICAgIG9wZW5Ub2suZW5kR3JvdXAgPSBuZXcgU3ltYm9sVG9rZW4oY2xvc2UsIC0xKTsKLSAgICByZXR1cm4gb3BlblRvazsKLSAgfQotCi0gIGZpbmFsIEJlZ2luR3JvdXBUb2tlbiBvcGVuUGFyZW4gPQotICAgICAgbWFrZUdyb3VwKE9QRU5fUEFSRU5fSU5GTywgQ0xPU0VfUEFSRU5fSU5GTyk7Ci0gIGZpbmFsIEJlZ2luR3JvdXBUb2tlbiBvcGVuQnJhY2UgPQotICAgICAgbWFrZUdyb3VwKE9QRU5fQ1VSTFlfQlJBQ0tFVF9JTkZPLCBDTE9TRV9DVVJMWV9CUkFDS0VUX0lORk8pOwotICBmaW5hbCBCZWdpbkdyb3VwVG9rZW4gb3BlbkJyYWNrZXQgPQotICAgICAgbWFrZUdyb3VwKE9QRU5fU1FVQVJFX0JSQUNLRVRfSU5GTywgQ0xPU0VfU1FVQVJFX0JSQUNLRVRfSU5GTyk7Ci0gIGZpbmFsIEJlZ2luR3JvdXBUb2tlbiBsdCA9IG1ha2VHcm91cChMVF9JTkZPLCBHVF9JTkZPKTsKLQotICBUb2tlbiBnZXQgY2xvc2VQYXJlbiA9PiBvcGVuUGFyZW4uZW5kR3JvdXA7Ci0gIFRva2VuIGdldCBjbG9zZUJyYWNlID0+IG9wZW5CcmFjZS5lbmRHcm91cDsKLSAgVG9rZW4gZ2V0IGNsb3NlQnJhY2tldCA9PiBvcGVuQnJhY2tldC5lbmRHcm91cDsKLSAgVG9rZW4gZ2V0IGd0ID0+IGx0LmVuZEdyb3VwOwotCi0gIC8vIFN5bWJvbCB0b2tlbnMKLSAgZmluYWwgVG9rZW4gc2VtaWNvbG9uID0gbmV3IFN5bWJvbFRva2VuKFNFTUlDT0xPTl9JTkZPLCAtMSk7Ci0gIGZpbmFsIFRva2VuIGluZGV4VG9rZW4gPSBuZXcgU3ltYm9sVG9rZW4oSU5ERVhfSU5GTywgLTEpOyAvLyAiW10iCi0gIGZpbmFsIFRva2VuIHF1ZXN0aW9uID0gbmV3IFN5bWJvbFRva2VuKFFVRVNUSU9OX0lORk8sIC0xKTsKLSAgZmluYWwgVG9rZW4gY29sb24gPSBuZXcgU3ltYm9sVG9rZW4oQ09MT05fSU5GTywgLTEpOwotICBmaW5hbCBUb2tlbiBoYXNoID0gbmV3IFN5bWJvbFRva2VuKEhBU0hfSU5GTywgLTEpOwotICBmaW5hbCBUb2tlbiBiYW5nID0gbmV3IFN5bWJvbFRva2VuKEJBTkdfSU5GTywgLTEpOwotICBmaW5hbCBUb2tlbiBlcSA9IG5ldyBTeW1ib2xUb2tlbihFUV9JTkZPLCAtMSk7Ci0KLSAgLy8gS2V5d29yZCB0b2tlbnMKLSAgc3RhdGljIFRva2VuIG1ha2VJZFRva2VuKFN0cmluZyB0ZXh0KSB7Ci0gICAgcmV0dXJuIG5ldyBTdHJpbmdUb2tlbi5mcm9tU3RyaW5nKElERU5USUZJRVJfSU5GTywgdGV4dCwgLTEpOwotICB9Ci0KLSAgZmluYWwgVG9rZW4gbmV3VG9rZW4gPSBtYWtlSWRUb2tlbignbmV3Jyk7Ci0gIGZpbmFsIFRva2VuIGNvbnN0VG9rZW4gPSBtYWtlSWRUb2tlbignY29uc3QnKTsKLSAgZmluYWwgVG9rZW4gdGhyb3dUb2tlbiA9IG1ha2VJZFRva2VuKCd0aHJvdycpOwotICBmaW5hbCBUb2tlbiByZXRocm93VG9rZW4gPSBtYWtlSWRUb2tlbigncmV0aHJvdycpOwotICBmaW5hbCBUb2tlbiBicmVha1Rva2VuID0gbWFrZUlkVG9rZW4oJ2JyZWFrJyk7Ci0gIGZpbmFsIFRva2VuIGNvbnRpbnVlVG9rZW4gPSBtYWtlSWRUb2tlbignY29udGludWUnKTsKLSAgZmluYWwgVG9rZW4gZG9Ub2tlbiA9IG1ha2VJZFRva2VuKCdkbycpOwotICBmaW5hbCBUb2tlbiB3aGlsZVRva2VuID0gbWFrZUlkVG9rZW4oJ3doaWxlJyk7Ci0gIGZpbmFsIFRva2VuIGlmVG9rZW4gPSBtYWtlSWRUb2tlbignaWYnKTsKLSAgZmluYWwgVG9rZW4gZWxzZVRva2VuID0gbWFrZUlkVG9rZW4oJ2Vsc2UnKTsKLSAgZmluYWwgVG9rZW4gYXdhaXRUb2tlbiA9IG1ha2VJZFRva2VuKCdhd2FpdCcpOwotICBmaW5hbCBUb2tlbiBmb3JUb2tlbiA9IG1ha2VJZFRva2VuKCdmb3InKTsKLSAgZmluYWwgVG9rZW4gaW5Ub2tlbiA9IG1ha2VJZFRva2VuKCdpbicpOwotICBmaW5hbCBUb2tlbiByZXR1cm5Ub2tlbiA9IG1ha2VJZFRva2VuKCdyZXR1cm4nKTsKLSAgZmluYWwgVG9rZW4gc3dpdGNoVG9rZW4gPSBtYWtlSWRUb2tlbignc3dpdGNoJyk7Ci0gIGZpbmFsIFRva2VuIGNhc2VUb2tlbiA9IG1ha2VJZFRva2VuKCdjYXNlJyk7Ci0gIGZpbmFsIFRva2VuIGRlZmF1bHRUb2tlbiA9IG1ha2VJZFRva2VuKCdkZWZhdWx0Jyk7Ci0gIGZpbmFsIFRva2VuIHRyeVRva2VuID0gbWFrZUlkVG9rZW4oJ3RyeScpOwotICBmaW5hbCBUb2tlbiBjYXRjaFRva2VuID0gbWFrZUlkVG9rZW4oJ2NhdGNoJyk7Ci0gIGZpbmFsIFRva2VuIG9uVG9rZW4gPSBtYWtlSWRUb2tlbignb24nKTsKLSAgZmluYWwgVG9rZW4gZmluYWxseVRva2VuID0gbWFrZUlkVG9rZW4oJ2ZpbmFsbHknKTsKLSAgZmluYWwgVG9rZW4gZ2V0VG9rZW4gPSBtYWtlSWRUb2tlbignZ2V0Jyk7Ci0gIGZpbmFsIFRva2VuIHNldFRva2VuID0gbWFrZUlkVG9rZW4oJ3NldCcpOwotICBmaW5hbCBUb2tlbiBjbGFzc1Rva2VuID0gbWFrZUlkVG9rZW4oJ2NsYXNzJyk7Ci0gIGZpbmFsIFRva2VuIGV4dGVuZHNUb2tlbiA9IG1ha2VJZFRva2VuKCdleHRlbmRzJyk7Ci0gIGZpbmFsIFRva2VuIHdpdGhUb2tlbiA9IG1ha2VJZFRva2VuKCd3aXRoJyk7Ci0gIGZpbmFsIFRva2VuIGltcGxlbWVudHNUb2tlbiA9IG1ha2VJZFRva2VuKCdpbXBsZW1lbnRzJyk7Ci0gIGZpbmFsIFRva2VuIHR5cGVkZWZUb2tlbiA9IG1ha2VJZFRva2VuKCd0eXBlZGVmJyk7Ci0gIGZpbmFsIFRva2VuIGVudW1Ub2tlbiA9IG1ha2VJZFRva2VuKCdlbnVtJyk7Ci0KLSAgc3RhdGljIHRyZWUuSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihTdHJpbmcgbmFtZSkgewotICAgIHJldHVybiBuZXcgdHJlZS5JZGVudGlmaWVyKAotICAgICAgICBuZXcgU3RyaW5nVG9rZW4uZnJvbVN0cmluZyhJREVOVElGSUVSX0lORk8sIG5hbWUsIC0xKSk7Ci0gIH0KLQotICBzdGF0aWMgdHJlZS5PcGVyYXRvciBtYWtlT3BlcmF0b3IoU3RyaW5nIG5hbWUpIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuT3BlcmF0b3IoCi0gICAgICAgIG5ldyBTdHJpbmdUb2tlbi5mcm9tU3RyaW5nKElERU5USUZJRVJfSU5GTywgbmFtZSwgLTEpKTsKLSAgfQotCi0gIC8vIFV0aWxpdGllcyBmb3IgY3JlYXRpbmcgTm9kZUxpc3RzCi0gIExpbms8dHJlZS5Ob2RlPiBtYWtlTGluayhJdGVyYWJsZTx0cmVlLk5vZGU+IG5vZGVzKSB7Ci0gICAgTGlua0J1aWxkZXIgYnVpbGRlciA9IG5ldyBMaW5rQnVpbGRlcigpOwotICAgIGZvciAodHJlZS5Ob2RlIG5vZGUgaW4gbm9kZXMpIHsKLSAgICAgIGJ1aWxkZXIuYWRkTGFzdChub2RlKTsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9MaW5rKCk7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IGJsYW5rTGlzdCgpIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuTm9kZUxpc3QobnVsbCwgbWFrZUxpbmsoW10pLCBudWxsLCAnJyk7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IHNpbmdsZXRvbih0cmVlLk5vZGUgbm9kZSkgewotICAgIHJldHVybiBuZXcgdHJlZS5Ob2RlTGlzdChudWxsLCBtYWtlTGluayhbbm9kZV0pLCBudWxsLCAnJyk7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IG1ha2VMaXN0KFN0cmluZyBkZWxpbWl0ZXIsIEl0ZXJhYmxlPHRyZWUuTm9kZT4gbm9kZXMsCi0gICAgICB7VG9rZW4gb3BlbiwgVG9rZW4gY2xvc2V9KSB7Ci0gICAgcmV0dXJuIG5ldyB0cmVlLk5vZGVMaXN0KG9wZW4sIG1ha2VMaW5rKG5vZGVzKSwgY2xvc2UsIGRlbGltaXRlcik7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IHBhcmVuTGlzdChTdHJpbmcgZGVsaW1pdGVyLCBJdGVyYWJsZTx0cmVlLk5vZGU+IG5vZGVzKSB7Ci0gICAgcmV0dXJuIG1ha2VMaXN0KGRlbGltaXRlciwgbm9kZXMsIG9wZW46IG9wZW5QYXJlbiwgY2xvc2U6IGNsb3NlUGFyZW4pOwotICB9Ci0KLSAgdHJlZS5Ob2RlTGlzdCBicmFja2V0TGlzdChTdHJpbmcgZGVsaW1pdGVyLCBJdGVyYWJsZTx0cmVlLk5vZGU+IG5vZGVzKSB7Ci0gICAgcmV0dXJuIG1ha2VMaXN0KGRlbGltaXRlciwgbm9kZXMsIG9wZW46IG9wZW5CcmFja2V0LCBjbG9zZTogY2xvc2VCcmFja2V0KTsKLSAgfQotCi0gIHRyZWUuTm9kZUxpc3QgYnJhY2VMaXN0KFN0cmluZyBkZWxpbWl0ZXIsIEl0ZXJhYmxlPHRyZWUuTm9kZT4gbm9kZXMpIHsKLSAgICByZXR1cm4gbWFrZUxpc3QoZGVsaW1pdGVyLCBub2Rlcywgb3Blbjogb3BlbkJyYWNlLCBjbG9zZTogY2xvc2VCcmFjZSk7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IGFyZ0xpc3QoSXRlcmFibGU8dHJlZS5Ob2RlPiBub2RlcykgewotICAgIHJldHVybiBwYXJlbkxpc3QoJywnLCBub2Rlcyk7Ci0gIH0KLQotICB0cmVlLk5vZGVMaXN0IHR5cGVBcmdMaXN0KEl0ZXJhYmxlPHRyZWUuTm9kZT4gbm9kZXMpIHsKLSAgICByZXR1cm4gbWFrZUxpc3QoJywnLCBub2Rlcywgb3BlbjogbHQsIGNsb3NlOiBndCk7Ci0gIH0KLQotICAvLy8gQ29udmVydHMgYSBxdWFsaWZpZWQgbmFtZSBpbnRvIG5lc3RlZCBTZW5kcy4KLSAgdHJlZS5Ob2RlIG1ha2VOYW1lKFN0cmluZyBuYW1lKSB7Ci0gICAgaWYgKG5hbWUgPT0gbnVsbCkgewotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotICAgIExpc3Q8U3RyaW5nPiBuYW1lcyA9IG5hbWUuc3BsaXQoJy4nKS50b0xpc3QoZ3Jvd2FibGU6IGZhbHNlKTsKLSAgICB0cmVlLk5vZGUgbm9kZSA9IG1ha2VJZGVudGlmaWVyKG5hbWVzWzBdKTsKLSAgICBmb3IgKGludCBpID0gMTsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICBub2RlID0gbmV3IHRyZWUuU2VuZChub2RlLCBtYWtlSWRlbnRpZmllcihuYW1lc1tpXSkpOwotICAgIH0KLSAgICByZXR1cm4gbm9kZTsKLSAgfQotCi0gIHN0YXRpYyBUb2tlbiBhc3NpZ25tZW50VG9rZW4oU3RyaW5nIG9wZXJhdG9yTmFtZSkgewotICAgIHN3aXRjaCAob3BlcmF0b3JOYW1lKSB7Ci0gICAgICBjYXNlICc9JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihFUV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICcrPSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oUExVU19FUV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICctPSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oTUlOVVNfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnKj0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKFNUQVJfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnLz0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKFNMQVNIX0VRX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJ34vPSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oVElMREVfU0xBU0hfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnJT0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKFBFUkNFTlRfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnJj0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEFNUEVSU0FORF9FUV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICdePSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oQ0FSRVRfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnfD0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEJBUl9FUV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICc+Pj0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEdUX0dUX0VRX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJzw8PSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oTFRfTFRfRVFfSU5GTywgLTEpOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgIlVucmVjb2duaXplZCBhc3NpZ25tZW50IG9wZXJhdG9yOiAkb3BlcmF0b3JOYW1lIjsKLSAgICB9Ci0gIH0KLQotICBzdGF0aWMgVG9rZW4gYmlub3BUb2tlbihTdHJpbmcgb3BlcmF0b3JOYW1lKSB7Ci0gICAgc3dpdGNoIChvcGVyYXRvck5hbWUpIHsKLSAgICAgIGNhc2UgJysnOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKFBMVVNfSU5GTywgLTEpOwotICAgICAgY2FzZSAnLSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oTUlOVVNfSU5GTywgLTEpOwotICAgICAgY2FzZSAnKic6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oU1RBUl9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICcvJzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihTTEFTSF9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICd+Lyc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oVElMREVfU0xBU0hfSU5GTywgLTEpOwotICAgICAgY2FzZSAnJSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oUEVSQ0VOVF9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICcmJzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihBTVBFUlNBTkRfSU5GTywgLTEpOwotICAgICAgY2FzZSAnXic6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oQ0FSRVRfSU5GTywgLTEpOwotICAgICAgY2FzZSAnfCc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oQkFSX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJz4+JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihHVF9HVF9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICc8PCc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oTFRfTFRfSU5GTywgLTEpOwotICAgICAgY2FzZSAnPT0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEVRX0VRX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJyE9JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihCQU5HX0VRX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJz4nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEdUX0lORk8sIC0xKTsKLSAgICAgIGNhc2UgJz49JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihHVF9FUV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICc8JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihMVF9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICc8PSc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oTFRfRVFfSU5GTywgLTEpOwotICAgICAgY2FzZSAnJiYnOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEFNUEVSU0FORF9BTVBFUlNBTkRfSU5GTywgLTEpOwotICAgICAgY2FzZSAnfHwnOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKEJBUl9CQVJfSU5GTywgLTEpOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgIlVucmVjb2duaXplZCBiaW5hcnkgb3BlcmF0b3I6ICRvcGVyYXRvck5hbWUiOwotICAgIH0KLSAgfQotCi0gIHN0YXRpYyBUb2tlbiBpbmNyZW1lbnRUb2tlbihTdHJpbmcgb3BlcmF0b3JOYW1lKSB7Ci0gICAgc3dpdGNoIChvcGVyYXRvck5hbWUpIHsKLSAgICAgIGNhc2UgJysrJzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihQTFVTX1BMVVNfSU5GTywgLTEpOwotICAgICAgY2FzZSAnLS0nOgotICAgICAgICByZXR1cm4gbmV3IFN5bWJvbFRva2VuKE1JTlVTX01JTlVTX0lORk8sIC0xKTsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93ICJVbnJlY29nbml6ZWQgaW5jcmVtZW50IG9wZXJhdG9yOiAkb3BlcmF0b3JOYW1lIjsKLSAgICB9Ci0gIH0KLQotICBzdGF0aWMgVG9rZW4gdHlwZU9wVG9rZW4oU3RyaW5nIG9wZXJhdG9yTmFtZSkgewotICAgIHN3aXRjaCAob3BlcmF0b3JOYW1lKSB7Ci0gICAgICAvLyAiaXMhIiBpcyBub3QgYW4gb3BlcmF0b3IgaW4gdGhlIGZyb250ZW5kIEFTVC4KLSAgICAgIGNhc2UgJ2lzJzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihJU19JTkZPLCAtMSk7Ci0gICAgICBjYXNlICdhcyc6Ci0gICAgICAgIHJldHVybiBuZXcgU3ltYm9sVG9rZW4oQVNfSU5GTywgLTEpOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgJ1VucmVjb2duaXplZCB0eXBlIG9wZXJhdG9yOiAkb3BlcmF0b3JOYW1lJzsKLSAgICB9Ci0gIH0KLQotICBUb2tlbiB1bm9wVG9rZW4oU3RyaW5nIG9wZXJhdG9yTmFtZSkgewotICAgIHN3aXRjaCAob3BlcmF0b3JOYW1lKSB7Ci0gICAgICBjYXNlICctJzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihNSU5VU19JTkZPLCAtMSk7Ci0gICAgICBjYXNlICd+JzoKLSAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2xUb2tlbihUSUxERV9JTkZPLCAtMSk7Ci0gICAgICBjYXNlICchJzoKLSAgICAgICAgcmV0dXJuIGJhbmc7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICB0aHJvdyAiVW5yZWNvZ25pemVkIHVuYXJ5IG9wZXJhdG9yOiAkb3BlcmF0b3JOYW1lIjsKLSAgICB9Ci0gIH0KLQotICB0cmVlLk5vZGUgbWFrZVN0YXRpY1JlY2VpdmVyKGVsZW1lbnRzLkVsZW1lbnQgZWxlbWVudCkgewotICAgIGlmICh0cmVlRWxlbWVudHMgPT0gbnVsbCkgcmV0dXJuIG51bGw7Ci0gICAgaWYgKGVsZW1lbnQuaXNTdGF0aWMpIHsKLSAgICAgIGVsZW1lbnRzLkNsYXNzRWxlbWVudCBlbmNsb3NpbmdDbGFzcyA9IGVsZW1lbnQuZW5jbG9zaW5nQ2xhc3M7Ci0gICAgICB0cmVlLlNlbmQgc2VuZCA9IG5ldyB0cmVlLlNlbmQobnVsbCwgbWFrZUlkZW50aWZpZXIoZW5jbG9zaW5nQ2xhc3MubmFtZSkpOwotICAgICAgdHJlZUVsZW1lbnRzW3NlbmRdID0gZW5jbG9zaW5nQ2xhc3M7Ci0gICAgICByZXR1cm4gc2VuZDsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotICB9Ci0KLSAgdHJlZS5Ob2RlIG1ha2VBcmd1bWVudChBcmd1bWVudCBhcmcpIHsKLSAgICBpZiAoYXJnIGlzIEV4cHJlc3Npb24pIHsKLSAgICAgIHJldHVybiBtYWtlRXhwcmVzc2lvbihhcmcpOwotICAgIH0gZWxzZSBpZiAoYXJnIGlzIE5hbWVkQXJndW1lbnQpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5OYW1lZEFyZ3VtZW50KAotICAgICAgICAgIG1ha2VJZGVudGlmaWVyKGFyZy5uYW1lKSwgY29sb24sIG1ha2VFeHByZXNzaW9uKGFyZy5leHByZXNzaW9uKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93ICJVbnJlY29nbml6ZWQgYXJndW1lbnQgdHlwZTogJHthcmd9IjsKLSAgICB9Ci0gIH0KLQotICB0cmVlLk5vZGUgbWFrZUV4cHJlc3Npb24oRXhwcmVzc2lvbiBleHApIHsKLSAgICByZXR1cm4gbWFrZUV4cChleHAsIEVYUFJFU1NJT04pOwotICB9Ci0KLSAgLy8vIENvbnZlcnRzIFtleHBdIHRvIGEgW3RyZWUuTm9kZV0gdGhhdCB1bnBhcnNlcyB0byBhbiBleHByZXNzaW9uIHdpdGgKLSAgLy8vIGEgcHJlY2VkZW5jZSBsZXZlbCBvZiBhdCBsZWFzdCBbbWluUHJlY2VkZW5jZV0uIFRoZSBleHByZXNzaW9uIHdpbGwgYmUKLSAgLy8vIHdyYXBwZWQgaW4gYSBwYXJlbnRoZXNpcyBpZiBuZWNlc3NhcnkuCi0gIHRyZWUuTm9kZSBtYWtlRXhwKFJlY2VpdmVyIGV4cCwgaW50IG1pblByZWNlZGVuY2UsIHtib29sIGJlZ2luU3RtdDogZmFsc2V9KSB7Ci0gICAgdHJlZS5Ob2RlIHJlc3VsdDsKLSAgICBpbnQgcHJlY2VkZW5jZTsKLSAgICBib29sIG5lZWRQYXJlbiA9IGZhbHNlOwotICAgIGlmIChleHAgaXMgU3VwZXJSZWNlaXZlcikgewotICAgICAgcHJlY2VkZW5jZSA9IENBTExFRTsKLSAgICAgIHJlc3VsdCA9IG1ha2VJZGVudGlmaWVyKCdzdXBlcicpOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIEFzc2lnbm1lbnQpIHsKLSAgICAgIEV4cHJlc3Npb24gbGVmdCA9IGV4cC5sZWZ0OwotICAgICAgdHJlZS5Ob2RlIHJlY2VpdmVyOwotICAgICAgdHJlZS5Ob2RlIHNlbGVjdG9yOwotICAgICAgdHJlZS5Ob2RlTGlzdCBhcmd1bWVudHM7Ci0gICAgICBlbGVtZW50cy5FbGVtZW50IGVsZW1lbnQ7Ci0gICAgICBpZiAobGVmdCBpcyBJZGVudGlmaWVyKSB7Ci0gICAgICAgIHJlY2VpdmVyID0gbWFrZVN0YXRpY1JlY2VpdmVyKGxlZnQuZWxlbWVudCk7Ci0gICAgICAgIHNlbGVjdG9yID0gbWFrZUlkZW50aWZpZXIobGVmdC5uYW1lKTsKLSAgICAgICAgYXJndW1lbnRzID0gc2luZ2xldG9uKG1ha2VFeHByZXNzaW9uKGV4cC5yaWdodCkpOwotICAgICAgICBlbGVtZW50ID0gbGVmdC5lbGVtZW50OwotICAgICAgfSBlbHNlIGlmIChsZWZ0IGlzIEZpZWxkRXhwcmVzc2lvbikgewotICAgICAgICByZWNlaXZlciA9IG1ha2VFeHAobGVmdC5vYmplY3QsIFBSSU1BUlksIGJlZ2luU3RtdDogYmVnaW5TdG10KTsKLSAgICAgICAgc2VsZWN0b3IgPSBtYWtlSWRlbnRpZmllcihsZWZ0LmZpZWxkTmFtZSk7Ci0gICAgICAgIGFyZ3VtZW50cyA9IHNpbmdsZXRvbihtYWtlRXhwcmVzc2lvbihleHAucmlnaHQpKTsKLSAgICAgIH0gZWxzZSBpZiAobGVmdCBpcyBJbmRleEV4cHJlc3Npb24pIHsKLSAgICAgICAgcmVjZWl2ZXIgPSBtYWtlRXhwKGxlZnQub2JqZWN0LCBQUklNQVJZLCBiZWdpblN0bXQ6IGJlZ2luU3RtdCk7Ci0gICAgICAgIHNlbGVjdG9yID0gbmV3IHRyZWUuT3BlcmF0b3IoaW5kZXhUb2tlbik7Ci0gICAgICAgIGFyZ3VtZW50cyA9IGJyYWNrZXRMaXN0KAotICAgICAgICAgICAgJywnLCBbbWFrZUV4cHJlc3Npb24obGVmdC5pbmRleCksIG1ha2VFeHByZXNzaW9uKGV4cC5yaWdodCldKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICJVbmV4cGVjdGVkIGxlZnQtaGFuZCBzaWRlIG9mIGFzc2lnbm1lbnQ6ICR7bGVmdH0iOwotICAgICAgfQotICAgICAgdHJlZS5PcGVyYXRvciBvcCA9IG5ldyB0cmVlLk9wZXJhdG9yKGFzc2lnbm1lbnRUb2tlbihleHAub3BlcmF0b3IpKTsKLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLlNlbmRTZXQocmVjZWl2ZXIsIHNlbGVjdG9yLCBvcCwgYXJndW1lbnRzKTsKLSAgICAgIGlmIChsZWZ0IGlzIElkZW50aWZpZXIpIHsKLSAgICAgICAgc2V0RWxlbWVudChyZXN1bHQsIGVsZW1lbnQsIGV4cCk7Ci0gICAgICB9Ci0gICAgICBwcmVjZWRlbmNlID0gRVhQUkVTU0lPTjsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBGaWVsZEluaXRpYWxpemVyKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gRVhQUkVTU0lPTjsKLSAgICAgIHRyZWUuTm9kZSByZWNlaXZlciA9IG1ha2VJZGVudGlmaWVyKCd0aGlzJyk7Ci0gICAgICB0cmVlLk5vZGUgc2VsZWN0b3IgPSBtYWtlSWRlbnRpZmllcihleHAuZWxlbWVudC5uYW1lKTsKLSAgICAgIHRyZWUuT3BlcmF0b3Igb3AgPSBuZXcgdHJlZS5PcGVyYXRvcihhc3NpZ25tZW50VG9rZW4oIj0iKSk7Ci0gICAgICAvLyBXZSBwYXNzIENBTExFRSB0byBlbnN1cmUgd2Ugd3JpdGUgZWcuOgotICAgICAgLy8gY2xhc3MgQiB7IHZhciB4OyBCKCkgOiB4ID0gKCgpIHtyZXR1cm4gYTt9KSB7fX0KLSAgICAgIC8vIE5vdCB0aGUgaW52YWxpZDoKLSAgICAgIC8vIGNsYXNzIEIgeyB2YXIgeDsgQigpIDogeCA9ICgpIHtyZXR1cm4gYTt9IHt9fQotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZFNldCgKLSAgICAgICAgICByZWNlaXZlciwgc2VsZWN0b3IsIG9wLCBzaW5nbGV0b24obWFrZUV4cChleHAuYm9keSwgQ0FMTEVFKSkpOwotICAgICAgc2V0RWxlbWVudChyZXN1bHQsIGV4cC5lbGVtZW50LCBleHApOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIFN1cGVySW5pdGlhbGl6ZXIpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBFWFBSRVNTSU9OOwotICAgICAgdHJlZS5Ob2RlIHJlY2VpdmVyID0gbWFrZUlkZW50aWZpZXIoJ3N1cGVyJyk7Ci0gICAgICB0cmVlLk5vZGVMaXN0IGFyZ3VtZW50cyA9Ci0gICAgICAgICAgYXJnTGlzdChleHAuYXJndW1lbnRzLm1hcChtYWtlQXJndW1lbnQpLnRvTGlzdCgpKTsKLSAgICAgIGlmIChleHAudGFyZ2V0Lm5hbWUgPT0gIiIpIHsKLSAgICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZChudWxsLCByZWNlaXZlciwgYXJndW1lbnRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9Ci0gICAgICAgICAgICBuZXcgdHJlZS5TZW5kKHJlY2VpdmVyLCBtYWtlSWRlbnRpZmllcihleHAudGFyZ2V0Lm5hbWUpLCBhcmd1bWVudHMpOwotICAgICAgfQotICAgICAgc2V0RWxlbWVudChyZXN1bHQsIGV4cC50YXJnZXQsIGV4cCk7Ci0gICAgfSBlbHNlIGlmIChleHAgaXMgQmluYXJ5T3BlcmF0b3IpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBCSU5BUllfUFJFQ0VERU5DRVtleHAub3BlcmF0b3JdOwotICAgICAgaW50IGRlbHRhTGVmdCA9IGlzQXNzb2NpYXRpdmVCaW5hcnlPcGVyYXRvcihwcmVjZWRlbmNlKSA/IDAgOiAxOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZCgKLSAgICAgICAgICBtYWtlRXhwKGV4cC5sZWZ0LCBwcmVjZWRlbmNlICsgZGVsdGFMZWZ0LCBiZWdpblN0bXQ6IGJlZ2luU3RtdCksCi0gICAgICAgICAgbmV3IHRyZWUuT3BlcmF0b3IoYmlub3BUb2tlbihleHAub3BlcmF0b3IpKSwKLSAgICAgICAgICBzaW5nbGV0b24obWFrZUV4cChleHAucmlnaHQsIHByZWNlZGVuY2UgKyAxKSkpOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIENhbGxGdW5jdGlvbikgewotICAgICAgcHJlY2VkZW5jZSA9IENBTExFRTsKLSAgICAgIHRyZWUuTm9kZSBzZWxlY3RvcjsKLSAgICAgIEV4cHJlc3Npb24gY2FsbGVlID0gZXhwLmNhbGxlZTsKLSAgICAgIGVsZW1lbnRzLkVsZW1lbnQgZWxlbWVudDsKLSAgICAgIHRyZWUuTm9kZSByZWNlaXZlcjsKLSAgICAgIGlmIChjYWxsZWUgaXMgSWRlbnRpZmllcikgewotICAgICAgICByZWNlaXZlciA9IG1ha2VTdGF0aWNSZWNlaXZlcihjYWxsZWUuZWxlbWVudCk7Ci0gICAgICAgIHNlbGVjdG9yID0gbWFrZUlkZW50aWZpZXIoY2FsbGVlLm5hbWUpOwotICAgICAgICBlbGVtZW50ID0gY2FsbGVlLmVsZW1lbnQ7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBzZWxlY3RvciA9IG1ha2VFeHAoY2FsbGVlLCBDQUxMRUUsIGJlZ2luU3RtdDogYmVnaW5TdG10KTsKLSAgICAgIH0KLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLlNlbmQoCi0gICAgICAgICAgcmVjZWl2ZXIsIHNlbGVjdG9yLCBhcmdMaXN0KGV4cC5hcmd1bWVudHMubWFwKG1ha2VBcmd1bWVudCkpKTsKLSAgICAgIGlmIChjYWxsZWUgaXMgSWRlbnRpZmllcikgewotICAgICAgICBzZXRFbGVtZW50KHJlc3VsdCwgZWxlbWVudCwgZXhwKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBDYWxsTWV0aG9kKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gQ0FMTEVFOwotICAgICAgLy8gVE9ETyhzcmEpOiBFbGlkZSByZWNlaXZlciB3aGVuIFRoaXMsIGJ1dCBvbmx5IGlmIG5vdCBpbiBhIHNjb3BlIHRoYXQKLSAgICAgIC8vIHNoYWRvd3MgdGhlIG1ldGhvZCAoZS5nLiBjb25zdHJ1Y3RvciBib2R5KS4KLSAgICAgIHRyZWUuTm9kZSByZWNlaXZlciA9IG1ha2VFeHAoZXhwLm9iamVjdCwgUFJJTUFSWSwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZChyZWNlaXZlciwgbWFrZUlkZW50aWZpZXIoZXhwLm1ldGhvZE5hbWUpLAotICAgICAgICAgIGFyZ0xpc3QoZXhwLmFyZ3VtZW50cy5tYXAobWFrZUFyZ3VtZW50KSkpOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIENhbGxOZXcpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBDQUxMRUU7Ci0gICAgICB0cmVlLk5vZGUgc2VsZWN0b3IgPSBtYWtlTmFtZShleHAudHlwZS5uYW1lKTsKLSAgICAgIGlmIChleHAudHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgc2VsZWN0b3IgPSBuZXcgdHJlZS5UeXBlQW5ub3RhdGlvbigKLSAgICAgICAgICAgIHNlbGVjdG9yLCB0eXBlQXJnTGlzdChleHAudHlwZS50eXBlQXJndW1lbnRzLm1hcChtYWtlVHlwZSkpKTsKLSAgICAgICAgc2V0VHlwZShzZWxlY3RvciwgZXhwLmRhcnRUeXBlLCBleHApOwotICAgICAgfQotICAgICAgaWYgKGV4cC5jb25zdHJ1Y3Rvck5hbWUgIT0gbnVsbCkgewotICAgICAgICBzZWxlY3RvciA9IG5ldyB0cmVlLlNlbmQoc2VsZWN0b3IsIG1ha2VJZGVudGlmaWVyKGV4cC5jb25zdHJ1Y3Rvck5hbWUpKTsKLSAgICAgIH0KLSAgICAgIHRyZWUuU2VuZCBzZW5kID0gbmV3IHRyZWUuU2VuZCgKLSAgICAgICAgICBudWxsLCBzZWxlY3RvciwgYXJnTGlzdChleHAuYXJndW1lbnRzLm1hcChtYWtlQXJndW1lbnQpKSk7Ci0gICAgICByZXN1bHQgPQotICAgICAgICAgIG5ldyB0cmVlLk5ld0V4cHJlc3Npb24oZXhwLmlzQ29uc3QgPyBjb25zdFRva2VuIDogbmV3VG9rZW4sIHNlbmQpOwotICAgICAgc2V0VHlwZShyZXN1bHQsIGV4cC5kYXJ0VHlwZSwgZXhwKTsKLSAgICAgIHNldEVsZW1lbnQoc2VuZCwgZXhwLmNvbnN0cnVjdG9yLCBleHApOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIENhbGxTdGF0aWMpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBDQUxMRUU7Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kKAotICAgICAgICAgIG1ha2VTdGF0aWNSZWNlaXZlcihleHAuZWxlbWVudCksCi0gICAgICAgICAgbWFrZUlkZW50aWZpZXIoZXhwLm1ldGhvZE5hbWUpLAotICAgICAgICAgIGFyZ0xpc3QoZXhwLmFyZ3VtZW50cy5tYXAobWFrZUFyZ3VtZW50KSkpOwotICAgICAgc2V0RWxlbWVudChyZXN1bHQsIGV4cC5lbGVtZW50LCBleHApOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIENvbmRpdGlvbmFsKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gQ09ORElUSU9OQUw7Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5Db25kaXRpb25hbCgKLSAgICAgICAgICBtYWtlRXhwKGV4cC5jb25kaXRpb24sIExPR0lDQUxfT1IsIGJlZ2luU3RtdDogYmVnaW5TdG10KSwKLSAgICAgICAgICBtYWtlRXhwKGV4cC50aGVuRXhwcmVzc2lvbiwgRVhQUkVTU0lPTiksCi0gICAgICAgICAgbWFrZUV4cChleHAuZWxzZUV4cHJlc3Npb24sIEVYUFJFU1NJT04pLAotICAgICAgICAgIHF1ZXN0aW9uLAotICAgICAgICAgIGNvbG9uKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBGaWVsZEV4cHJlc3Npb24pIHsKLSAgICAgIHByZWNlZGVuY2UgPSBQUklNQVJZOwotICAgICAgLy8gVE9ETyhzcmEpOiBFbGlkZSByZWNlaXZlciB3aGVuIFRoaXMsIGJ1dCBvbmx5IGlmIG5vdCBpbiBhIHNjb3BlIHRoYXQKLSAgICAgIC8vIHNoYWRvd3MgdGhlIG1ldGhvZCAoZS5nLiBjb25zdHJ1Y3RvciBib2R5KS4KLSAgICAgIHRyZWUuTm9kZSByZWNlaXZlciA9IG1ha2VFeHAoZXhwLm9iamVjdCwgUFJJTUFSWSwgYmVnaW5TdG10OiBiZWdpblN0bXQpOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZChyZWNlaXZlciwgbWFrZUlkZW50aWZpZXIoZXhwLmZpZWxkTmFtZSkpOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIENvbnN0cnVjdG9yRGVmaW5pdGlvbikgewotICAgICAgcHJlY2VkZW5jZSA9IEVYUFJFU1NJT047Ci0gICAgICB0cmVlLk5vZGVMaXN0IHBhcmFtZXRlcnMgPSBtYWtlUGFyYW1ldGVycyhleHAucGFyYW1ldGVycyk7Ci0gICAgICB0cmVlLk5vZGVMaXN0IGluaXRpYWxpemVycyA9Ci0gICAgICAgICAgZXhwLmluaXRpYWxpemVycyA9PSBudWxsIHx8IGV4cC5pbml0aWFsaXplcnMuaXNFbXB0eQotICAgICAgICAgICAgICA/IG51bGwKLSAgICAgICAgICAgICAgOiBtYWtlTGlzdCgiLCIsIGV4cC5pbml0aWFsaXplcnMubWFwKG1ha2VFeHByZXNzaW9uKS50b0xpc3QoKSk7Ci0gICAgICB0cmVlLk5vZGUgYm9keSA9IGV4cC5pc0NvbnN0IHx8IGV4cC5ib2R5ID09IG51bGwKLSAgICAgICAgICA/IG5ldyB0cmVlLkVtcHR5U3RhdGVtZW50KHNlbWljb2xvbikKLSAgICAgICAgICA6IG1ha2VGdW5jdGlvbkJvZHkoZXhwLmJvZHkpOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuRnVuY3Rpb25FeHByZXNzaW9uKAotICAgICAgICAgIGNvbnN0cnVjdG9yTmFtZShleHApLAotICAgICAgICAgIC8vIEdFTkVSSUNfTUVUSE9EUzogSW4gb3JkZXIgdG8gc3VwcG9ydCBnZW5lcmljIG1ldGhvZHMgZnVsbHksCi0gICAgICAgICAgLy8gd2UgbXVzdCByZXRyaWV2ZSBhbmQgcGFzcyB0aGUgYWN0dWFsIHR5cGUgdmFyaWFibGVzIGhlcmUuCi0gICAgICAgICAgbnVsbCwgLy8gdHlwZVZhcmlhYmxlcwotICAgICAgICAgIHBhcmFtZXRlcnMsCi0gICAgICAgICAgYm9keSwKLSAgICAgICAgICBudWxsLCAvLyByZXR1cm4gdHlwZQotICAgICAgICAgIG1ha2VGdW5jdGlvbk1vZGlmaWVycyhleHApLAotICAgICAgICAgIGluaXRpYWxpemVycywKLSAgICAgICAgICBudWxsLCAvLyBnZXQvc2V0Ci0gICAgICAgICAgbnVsbCk7IC8vIGFzeW5jIG1vZGlmaWVyCi0gICAgICBzZXRFbGVtZW50KHJlc3VsdCwgZXhwLmVsZW1lbnQsIGV4cCk7Ci0gICAgfSBlbHNlIGlmIChleHAgaXMgRnVuY3Rpb25FeHByZXNzaW9uKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gUFJJTUFSWTsKLSAgICAgIGlmIChiZWdpblN0bXQgJiYgZXhwLm5hbWUgIT0gbnVsbCkgewotICAgICAgICBuZWVkUGFyZW4gPSB0cnVlOyAvLyBEbyBub3QgbWlzdGFrZSBmb3IgZnVuY3Rpb24gZGVjbGFyYXRpb24uCi0gICAgICB9Ci0gICAgICBUb2tlbiBnZXRPclNldCA9IGV4cC5pc0dldHRlciA/IGdldFRva2VuIDogZXhwLmlzU2V0dGVyID8gc2V0VG9rZW4gOiBudWxsOwotICAgICAgdHJlZS5Ob2RlTGlzdCBwYXJhbWV0ZXJzID0KLSAgICAgICAgICBleHAuaXNHZXR0ZXIgPyBtYWtlTGlzdCgiIiwgW10pIDogbWFrZVBhcmFtZXRlcnMoZXhwLnBhcmFtZXRlcnMpOwotICAgICAgdHJlZS5Ob2RlIGJvZHkgPSBtYWtlRnVuY3Rpb25Cb2R5KGV4cC5ib2R5KTsKLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLkZ1bmN0aW9uRXhwcmVzc2lvbigKLSAgICAgICAgICBmdW5jdGlvbk5hbWUoZXhwKSwKLSAgICAgICAgICAvLyBHRU5FUklDX01FVEhPRFM6IEluIG9yZGVyIHRvIHN1cHBvcnQgZ2VuZXJpYyBtZXRob2RzIGZ1bGx5LAotICAgICAgICAgIC8vIHdlIG11c3QgcmV0cmlldmUgYW5kIHBhc3MgdGhlIGFjdHVhbCB0eXBlIHZhcmlhYmxlcyBoZXJlLgotICAgICAgICAgIG51bGwsIC8vIHR5cGVWYXJpYWJsZXMKLSAgICAgICAgICBwYXJhbWV0ZXJzLAotICAgICAgICAgIGJvZHksCi0gICAgICAgICAgZXhwLnJldHVyblR5cGUgPT0gbnVsbCB8fCBleHAuZWxlbWVudC5pc0NvbnN0cnVjdG9yCi0gICAgICAgICAgICAgID8gbnVsbAotICAgICAgICAgICAgICA6IG1ha2VUeXBlKGV4cC5yZXR1cm5UeXBlKSwKLSAgICAgICAgICBtYWtlRnVuY3Rpb25Nb2RpZmllcnMoZXhwKSwKLSAgICAgICAgICBudWxsLCAvLyBpbml0aWFsaXplcnMKLSAgICAgICAgICBnZXRPclNldCwgLy8gZ2V0L3NldAotICAgICAgICAgIG51bGwpOyAvLyBhc3luYyBtb2RpZmllcgotICAgICAgZWxlbWVudHMuRWxlbWVudCBlbGVtZW50ID0gZXhwLmVsZW1lbnQ7Ci0gICAgICBpZiAoZWxlbWVudCAhPSBudWxsKSBzZXRFbGVtZW50KHJlc3VsdCwgZWxlbWVudCwgZXhwKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBJZGVudGlmaWVyKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gQ0FMTEVFOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZCgKLSAgICAgICAgICBtYWtlU3RhdGljUmVjZWl2ZXIoZXhwLmVsZW1lbnQpLCBtYWtlSWRlbnRpZmllcihleHAubmFtZSkpOwotICAgICAgc2V0RWxlbWVudChyZXN1bHQsIGV4cC5lbGVtZW50LCBleHApOwotICAgIH0gZWxzZSBpZiAoZXhwIGlzIEluY3JlbWVudCkgewotICAgICAgRXhwcmVzc2lvbiBsdmFsdWUgPSBleHAuZXhwcmVzc2lvbjsKLSAgICAgIHRyZWUuTm9kZSByZWNlaXZlcjsKLSAgICAgIHRyZWUuTm9kZSBzZWxlY3RvcjsKLSAgICAgIHRyZWUuTm9kZSBhcmd1bWVudDsKLSAgICAgIGJvb2wgaW5uZXJCZWdpblN0bXQgPSBiZWdpblN0bXQgJiYgIWV4cC5pc1ByZWZpeDsKLSAgICAgIGlmIChsdmFsdWUgaXMgSWRlbnRpZmllcikgewotICAgICAgICByZWNlaXZlciA9IG1ha2VTdGF0aWNSZWNlaXZlcihsdmFsdWUuZWxlbWVudCk7Ci0gICAgICAgIHNlbGVjdG9yID0gbWFrZUlkZW50aWZpZXIobHZhbHVlLm5hbWUpOwotICAgICAgfSBlbHNlIGlmIChsdmFsdWUgaXMgRmllbGRFeHByZXNzaW9uKSB7Ci0gICAgICAgIHJlY2VpdmVyID0gbWFrZUV4cChsdmFsdWUub2JqZWN0LCBQUklNQVJZLCBiZWdpblN0bXQ6IGlubmVyQmVnaW5TdG10KTsKLSAgICAgICAgc2VsZWN0b3IgPSBtYWtlSWRlbnRpZmllcihsdmFsdWUuZmllbGROYW1lKTsKLSAgICAgIH0gZWxzZSBpZiAobHZhbHVlIGlzIEluZGV4RXhwcmVzc2lvbikgewotICAgICAgICByZWNlaXZlciA9IG1ha2VFeHAobHZhbHVlLm9iamVjdCwgUFJJTUFSWSwgYmVnaW5TdG10OiBpbm5lckJlZ2luU3RtdCk7Ci0gICAgICAgIHNlbGVjdG9yID0gbmV3IHRyZWUuT3BlcmF0b3IoaW5kZXhUb2tlbik7Ci0gICAgICAgIGFyZ3VtZW50ID0gbWFrZUV4cHJlc3Npb24obHZhbHVlLmluZGV4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICJVbnJlY29nbml6ZWQgbGVmdC1oYW5kIHNpZGU6ICR7bHZhbHVlfSI7Ci0gICAgICB9Ci0gICAgICB0cmVlLk9wZXJhdG9yIG9wID0gbmV3IHRyZWUuT3BlcmF0b3IoaW5jcmVtZW50VG9rZW4oZXhwLm9wZXJhdG9yKSk7Ci0gICAgICBpZiAoZXhwLmlzUHJlZml4KSB7Ci0gICAgICAgIHByZWNlZGVuY2UgPSBVTkFSWTsKLSAgICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZFNldC5wcmVmaXgocmVjZWl2ZXIsIHNlbGVjdG9yLCBvcCwgYXJndW1lbnQpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcHJlY2VkZW5jZSA9IFBPU1RGSVhfSU5DUkVNRU5UOwotICAgICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kU2V0LnBvc3RmaXgocmVjZWl2ZXIsIHNlbGVjdG9yLCBvcCwgYXJndW1lbnQpOwotICAgICAgfQotICAgICAgaWYgKGx2YWx1ZSBpcyBJZGVudGlmaWVyKSB7Ci0gICAgICAgIHNldEVsZW1lbnQocmVzdWx0LCBsdmFsdWUuZWxlbWVudCwgZXhwKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBJbmRleEV4cHJlc3Npb24pIHsKLSAgICAgIHByZWNlZGVuY2UgPSBDQUxMRUU7Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kKAotICAgICAgICAgIG1ha2VFeHAoZXhwLm9iamVjdCwgUFJJTUFSWSwgYmVnaW5TdG10OiBiZWdpblN0bXQpLAotICAgICAgICAgIG5ldyB0cmVlLk9wZXJhdG9yKGluZGV4VG9rZW4pLAotICAgICAgICAgIGJyYWNrZXRMaXN0KCcsJywgW21ha2VFeHByZXNzaW9uKGV4cC5pbmRleCldKSk7Ci0gICAgfSBlbHNlIGlmIChleHAgaXMgTGl0ZXJhbCkgewotICAgICAgcHJlY2VkZW5jZSA9IENBTExFRTsKLSAgICAgIHZhbHVlcy5QcmltaXRpdmVDb25zdGFudFZhbHVlIHZhbHVlID0gZXhwLnZhbHVlOwotICAgICAgVG9rZW4gdG9rID0gbmV3IFN0cmluZ1Rva2VuLmZyb21TdHJpbmcoCi0gICAgICAgICAgU1RSSU5HX0lORk8sICcke3ZhbHVlLnByaW1pdGl2ZVZhbHVlfScsIC0xKTsKLSAgICAgIGlmICh2YWx1ZS5pc1N0cmluZykgewotICAgICAgICByZXN1bHQgPSB1bnBhcnNlU3RyaW5nTGl0ZXJhbChleHApOwotICAgICAgfSBlbHNlIGlmICh2YWx1ZS5pc0ludCkgewotICAgICAgICByZXN1bHQgPSBuZXcgdHJlZS5MaXRlcmFsSW50KHRvaywgbnVsbCk7Ci0gICAgICB9IGVsc2UgaWYgKHZhbHVlLmlzRG91YmxlKSB7Ci0gICAgICAgIGlmICh2YWx1ZS5wcmltaXRpdmVWYWx1ZSA9PSBkb3VibGUuSU5GSU5JVFkpIHsKLSAgICAgICAgICBwcmVjZWRlbmNlID0gTVVMVElQTElDQVRJVkU7Ci0gICAgICAgICAgdG9rID0gbmV3IFN0cmluZ1Rva2VuLmZyb21TdHJpbmcoU1RSSU5HX0lORk8sICcxLzAuMCcsIC0xKTsKLSAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5wcmltaXRpdmVWYWx1ZSA9PSBkb3VibGUuTkVHQVRJVkVfSU5GSU5JVFkpIHsKLSAgICAgICAgICBwcmVjZWRlbmNlID0gTVVMVElQTElDQVRJVkU7Ci0gICAgICAgICAgdG9rID0gbmV3IFN0cmluZ1Rva2VuLmZyb21TdHJpbmcoU1RSSU5HX0lORk8sICctMS8wLjAnLCAtMSk7Ci0gICAgICAgIH0gZWxzZSBpZiAodmFsdWUucHJpbWl0aXZlVmFsdWUuaXNOYU4pIHsKLSAgICAgICAgICBwcmVjZWRlbmNlID0gTVVMVElQTElDQVRJVkU7Ci0gICAgICAgICAgdG9rID0gbmV3IFN0cmluZ1Rva2VuLmZyb21TdHJpbmcoU1RSSU5HX0lORk8sICcwLzAuMCcsIC0xKTsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSBuZXcgdHJlZS5MaXRlcmFsRG91YmxlKHRvaywgbnVsbCk7Ci0gICAgICB9IGVsc2UgaWYgKHZhbHVlLmlzQm9vbCkgewotICAgICAgICByZXN1bHQgPSBuZXcgdHJlZS5MaXRlcmFsQm9vbCh0b2ssIG51bGwpOwotICAgICAgfSBlbHNlIGlmICh2YWx1ZS5pc051bGwpIHsKLSAgICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuTGl0ZXJhbE51bGwodG9rKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93ICJVbnJlY29nbml6ZWQgY29uc3RhbnQ6ICR7dmFsdWV9IjsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBMaXRlcmFsTGlzdCkgewotICAgICAgcHJlY2VkZW5jZSA9IFBSSU1BUlk7Ci0gICAgICB0cmVlLk5vZGVMaXN0IHR5cGVBcmdzID0gbnVsbDsKLSAgICAgIGlmIChleHAudHlwZUFyZ3VtZW50ICE9IG51bGwpIHsKLSAgICAgICAgdHlwZUFyZ3MgPSB0eXBlQXJnTGlzdChbbWFrZVR5cGUoZXhwLnR5cGVBcmd1bWVudCldKTsKLSAgICAgIH0KLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLkxpdGVyYWxMaXN0KAotICAgICAgICAgIHR5cGVBcmdzLAotICAgICAgICAgIGJyYWNrZXRMaXN0KCcsJywgZXhwLnZhbHVlcy5tYXAobWFrZUV4cHJlc3Npb24pKSwKLSAgICAgICAgICBleHAuaXNDb25zdCA/IGNvbnN0VG9rZW4gOiBudWxsKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBMaXRlcmFsTWFwKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gUFJJTUFSWTsKLSAgICAgIGlmIChiZWdpblN0bXQpIHsKLSAgICAgICAgLy8gVGhlIG9wZW5pbmcgYnJhY2UgY2FuIGJlIGNvbmZ1c2VkIHdpdGggYSBibG9jayBzdGF0ZW1lbnQuCi0gICAgICAgIG5lZWRQYXJlbiA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB0cmVlLk5vZGVMaXN0IHR5cGVBcmdzID0gbnVsbDsKLSAgICAgIGlmIChleHAudHlwZUFyZ3VtZW50cyAhPSBudWxsICYmIGV4cC50eXBlQXJndW1lbnRzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgdHlwZUFyZ3MgPSB0eXBlQXJnTGlzdChleHAudHlwZUFyZ3VtZW50cy5tYXAobWFrZVR5cGUpKTsKLSAgICAgIH0KLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLkxpdGVyYWxNYXAoCi0gICAgICAgICAgdHlwZUFyZ3MsCi0gICAgICAgICAgYnJhY2VMaXN0KCcsJywgZXhwLmVudHJpZXMubWFwKG1ha2VMaXRlcmFsTWFwRW50cnkpKSwKLSAgICAgICAgICBleHAuaXNDb25zdCA/IGNvbnN0VG9rZW4gOiBudWxsKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBMaXRlcmFsU3ltYm9sKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gUFJJTUFSWTsKLSAgICAgIHJlc3VsdCA9IG5ldyB0cmVlLkxpdGVyYWxTeW1ib2woCi0gICAgICAgICAgaGFzaCwgbWFrZUxpc3QoJy4nLCBleHAuaWQuc3BsaXQoJy4nKS5tYXAobWFrZUlkZW50aWZpZXIpKSk7Ci0gICAgfSBlbHNlIGlmIChleHAgaXMgTGl0ZXJhbFR5cGUpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBUWVBFX0xJVEVSQUw7Ci0gICAgICBlbGVtZW50cy5FbGVtZW50IG9wdGlvbmFsRWxlbWVudCA9IGV4cC50eXBlLmVsZW1lbnQ7Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kKAotICAgICAgICAgIG9wdGlvbmFsRWxlbWVudCA9PSBudWxsID8gbnVsbCA6IG1ha2VTdGF0aWNSZWNlaXZlcihvcHRpb25hbEVsZW1lbnQpLAotICAgICAgICAgIG1ha2VJZGVudGlmaWVyKGV4cC5uYW1lKSk7Ci0gICAgICB0cmVlRWxlbWVudHMuc2V0VHlwZShyZXN1bHQsIGV4cC50eXBlKTsKLSAgICAgIGlmIChvcHRpb25hbEVsZW1lbnQgIT0gbnVsbCkgewotICAgICAgICAvLyBkeW5hbWljIGRvZXMgbm90IGhhdmUgYW4gZWxlbWVudAotICAgICAgICBzZXRFbGVtZW50KHJlc3VsdCwgb3B0aW9uYWxFbGVtZW50LCBleHApOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAoZXhwIGlzIFJlaWZ5VHlwZVZhcikgewotICAgICAgcHJlY2VkZW5jZSA9IFBSSU1BUlk7Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kKG51bGwsIG1ha2VJZGVudGlmaWVyKGV4cC5uYW1lKSk7Ci0gICAgICBzZXRFbGVtZW50KHJlc3VsdCwgZXhwLmVsZW1lbnQsIGV4cCk7Ci0gICAgICBzZXRUeXBlKHJlc3VsdCwgZXhwLmVsZW1lbnQudHlwZSwgZXhwKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBTdHJpbmdDb25jYXQpIHsKLSAgICAgIHByZWNlZGVuY2UgPSBQUklNQVJZOwotICAgICAgcmVzdWx0ID0gdW5wYXJzZVN0cmluZ0xpdGVyYWwoZXhwKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBUaGlzKSB7Ci0gICAgICBwcmVjZWRlbmNlID0gQ0FMTEVFOwotICAgICAgcmVzdWx0ID0gbWFrZUlkZW50aWZpZXIoJ3RoaXMnKTsKLSAgICB9IGVsc2UgaWYgKGV4cCBpcyBUaHJvdykgewotICAgICAgcHJlY2VkZW5jZSA9IEVYUFJFU1NJT047IC8vID8/PwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuVGhyb3cobWFrZUV4cHJlc3Npb24oZXhwLmV4cHJlc3Npb24pLCB0aHJvd1Rva2VuLAotICAgICAgICAgIHRocm93VG9rZW4pOyAvLyBlbmRUb2tlbiBub3QgdXNlZCBieSB1bnBhcnNlcgotICAgIH0gZWxzZSBpZiAoZXhwIGlzIFR5cGVPcGVyYXRvcikgewotICAgICAgcHJlY2VkZW5jZSA9IFJFTEFUSU9OQUw7Ci0gICAgICB0cmVlLk9wZXJhdG9yIG9wZXJhdG9yOwotICAgICAgdHJlZS5Ob2RlIHJpZ2h0T3BlcmFuZCA9IG1ha2VUeXBlKGV4cC50eXBlKTsKLSAgICAgIGlmIChleHAub3BlcmF0b3IgPT0gJ2lzIScpIHsKLSAgICAgICAgb3BlcmF0b3IgPSBuZXcgdHJlZS5PcGVyYXRvcih0eXBlT3BUb2tlbignaXMnKSk7Ci0gICAgICAgIHJpZ2h0T3BlcmFuZCA9Ci0gICAgICAgICAgICBuZXcgdHJlZS5TZW5kKHJpZ2h0T3BlcmFuZCwgbmV3IHRyZWUuT3BlcmF0b3IoYmFuZyksIGJsYW5rTGlzdCgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIG9wZXJhdG9yID0gbmV3IHRyZWUuT3BlcmF0b3IodHlwZU9wVG9rZW4oZXhwLm9wZXJhdG9yKSk7Ci0gICAgICB9Ci0gICAgICByZXN1bHQgPSBuZXcgdHJlZS5TZW5kKAotICAgICAgICAgIG1ha2VFeHAoZXhwLmV4cHJlc3Npb24sIEJJVFdJU0VfT1IsIGJlZ2luU3RtdDogYmVnaW5TdG10KSwKLSAgICAgICAgICBvcGVyYXRvciwKLSAgICAgICAgICBzaW5nbGV0b24ocmlnaHRPcGVyYW5kKSk7Ci0gICAgfSBlbHNlIGlmIChleHAgaXMgVW5hcnlPcGVyYXRvcikgewotICAgICAgcHJlY2VkZW5jZSA9IFVOQVJZOwotICAgICAgcmVzdWx0ID0gbmV3IHRyZWUuU2VuZC5wcmVmaXgobWFrZUV4cChleHAub3BlcmFuZCwgVU5BUlkpLAotICAgICAgICAgIG5ldyB0cmVlLk9wZXJhdG9yKHVub3BUb2tlbihleHAub3BlcmF0b3JOYW1lKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0aHJvdyAiVW5rbm93biBleHByZXNzaW9uIHR5cGU6ICR7ZXhwfSI7Ci0gICAgfQotCi0gICAgbmVlZFBhcmVuID0gbmVlZFBhcmVuIHx8IHByZWNlZGVuY2UgPCBtaW5QcmVjZWRlbmNlOwotICAgIGlmIChuZWVkUGFyZW4pIHsKLSAgICAgIHJlc3VsdCA9IHBhcmVudGhlc2l6ZShyZXN1bHQpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotICB9Ci0KLSAgLy8vIENyZWF0ZXMgYSBMaXRlcmFsU3RyaW5nIHdpdGggW3ZlcmJhdGltXSBhcyB0aGUgdmFsdWUuCi0gIC8vLyBObyAodW4pcXVvdGluZyBvciAodW4pZXNjYXBpbmcgd2lsbCBiZSBwZXJmb3JtZWQgYnkgdGhpcyBtZXRob2QuCi0gIC8vLyBUaGUgW0RhcnRTdHJpbmddIGluc2lkZSB0aGUgbGl0ZXJhbCB3aWxsIGJlIHNldCB0byBudWxsIGJlY2F1c2UgdGhlCi0gIC8vLyBjb2RlIGVtaXR0ZXIgZG9lcyBub3QgdXNlIGl0LgotICB0cmVlLkxpdGVyYWxTdHJpbmcgbWFrZVZlcmJhdGltU3RyaW5nTGl0ZXJhbChTdHJpbmcgdmVyYmF0aW0pIHsKLSAgICBUb2tlbiB0b2sgPSBuZXcgU3RyaW5nVG9rZW4uZnJvbVN0cmluZyhTVFJJTkdfSU5GTywgdmVyYmF0aW0sIC0xKTsKLSAgICByZXR1cm4gbmV3IHRyZWUuTGl0ZXJhbFN0cmluZyh0b2ssIG51bGwpOwotICB9Ci0KLSAgdHJlZS5MaXRlcmFsTWFwRW50cnkgbWFrZUxpdGVyYWxNYXBFbnRyeShMaXRlcmFsTWFwRW50cnkgZW4pIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuTGl0ZXJhbE1hcEVudHJ5KAotICAgICAgICBtYWtlRXhwcmVzc2lvbihlbi5rZXkpLCBjb2xvbiwgbWFrZUV4cHJlc3Npb24oZW4udmFsdWUpKTsKLSAgfQotCi0gIC8vLyBBIGNvbW1lbnQgdG9rZW4gdG8gYmUgaW5zZXJ0ZWQgd2hlbiBbSU5TRVJUX05FV19CQUNLRU5EX0NPTU1FTlRdIGlzIHRydWUuCi0gIGZpbmFsIFN5bWJvbFRva2VuIG5ld0JhY2tlbmRDb21tZW50ID0gbmV3IFN5bWJvbFRva2VuKAotICAgICAgY29uc3QgUHJlY2VkZW5jZUluZm8oJy8qIG5ldyBiYWNrZW5kICovICcsIDAsIE9QRU5fQ1VSTFlfQlJBQ0tFVF9UT0tFTiksCi0gICAgICAtMSk7Ci0KLSAgdHJlZS5Ob2RlIG1ha2VGdW5jdGlvbkJvZHkoU3RhdGVtZW50IHN0bXQpIHsKLSAgICBpZiAoSU5TRVJUX05FV19CQUNLRU5EX0NPTU1FTlQpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5CbG9jaygKLSAgICAgICAgICBtYWtlTGlzdCgnJywgW21ha2VCbG9jayhzdG10KV0sIG9wZW46IG5ld0JhY2tlbmRDb21tZW50KSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBtYWtlQmxvY2soc3RtdCk7Ci0gICAgfQotICB9Ci0KLSAgLy8vIFByb2R1Y2VzIGEgc3RhdGVtZW50IGluIGEgY29udGV4dCB3aGVyZSBvbmx5IGJsb2NrcyBhcmUgYWxsb3dlZC4KLSAgdHJlZS5Ob2RlIG1ha2VCbG9jayhTdGF0ZW1lbnQgc3RtdCkgewotICAgIGlmIChzdG10IGlzIEJsb2NrIHx8IHN0bXQgaXMgRW1wdHlTdGF0ZW1lbnQpIHsKLSAgICAgIHJldHVybiBtYWtlU3RhdGVtZW50KHN0bXQpOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuQmxvY2soYnJhY2VMaXN0KCcnLCBbbWFrZVN0YXRlbWVudChzdG10KV0pKTsKLSAgICB9Ci0gIH0KLQotICAvLy8gQWRkcyB0aGUgZ2l2ZW4gc3RhdGVtZW50IHRvIGEgYmxvY2suIElmIHRoZSBzdGF0ZW1lbnQgaXRzZWxmIGlzIGEgYmxvY2sKLSAgLy8vIGl0IHdpbGwgYmUgZmxhdHRlbmVkIChpZiB0aGlzIGRvZXMgbm90IGNoYW5nZSBsZXhpY2FsIHNjb3BpbmcpLgotICB2b2lkIGFkZEJsb2NrTWVtYmVyKFN0YXRlbWVudCBzdG10LCBMaXN0PHRyZWUuTm9kZT4gYWNjdW11bGF0b3IpIHsKLSAgICBpZiAoc3RtdCBpcyBCbG9jayAmJiAhc3RtdC5zdGF0ZW1lbnRzLmFueShVbnBhcnNlci5kZWZpbmVzVmFyaWFibGUpKSB7Ci0gICAgICBmb3IgKFN0YXRlbWVudCBpbm5lclN0bXQgaW4gc3RtdC5zdGF0ZW1lbnRzKSB7Ci0gICAgICAgIGFkZEJsb2NrTWVtYmVyKGlubmVyU3RtdCwgYWNjdW11bGF0b3IpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBFbXB0eVN0YXRlbWVudCkgewotICAgICAgLy8gTm8gbmVlZCB0byBpbmNsdWRlIGVtcHR5IHN0YXRlbWVudHMgaW5zaWRlIGJsb2NrcwotICAgIH0gZWxzZSB7Ci0gICAgICBhY2N1bXVsYXRvci5hZGQobWFrZVN0YXRlbWVudChzdG10KSk7Ci0gICAgfQotICB9Ci0KLSAgLy8vIFRydWUgaWYgW3N0bXRdIGlzIGVxdWl2YWxlbnQgdG8gYW4gZW1wdHkgc3RhdGVtZW50LgotICBib29sIGlzRW1wdHlTdGF0ZW1lbnQoU3RhdGVtZW50IHN0bXQpIHsKLSAgICByZXR1cm4gc3RtdCBpcyBFbXB0eVN0YXRlbWVudCB8fAotICAgICAgICAoc3RtdCBpcyBCbG9jayAmJiBzdG10LnN0YXRlbWVudHMuZXZlcnkoaXNFbXB0eVN0YXRlbWVudCkpOwotICB9Ci0KLSAgdHJlZS5Ob2RlIG1ha2VTdGF0ZW1lbnQoU3RhdGVtZW50IHN0bXQsIHtib29sIHNob3J0SWY6IHRydWV9KSB7Ci0gICAgaWYgKHN0bXQgaXMgQmxvY2spIHsKLSAgICAgIExpc3Q8dHJlZS5Ob2RlPiBib2R5ID0gPHRyZWUuTm9kZT5bXTsKLSAgICAgIGZvciAoU3RhdGVtZW50IGlubmVyU3RtdCBpbiBzdG10LnN0YXRlbWVudHMpIHsKLSAgICAgICAgYWRkQmxvY2tNZW1iZXIoaW5uZXJTdG10LCBib2R5KTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBuZXcgdHJlZS5CbG9jayhicmFjZUxpc3QoJycsIGJvZHkpKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgQnJlYWspIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5CcmVha1N0YXRlbWVudCgKLSAgICAgICAgICBzdG10LmxhYmVsID09IG51bGwgPyBudWxsIDogbWFrZUlkZW50aWZpZXIoc3RtdC5sYWJlbCksCi0gICAgICAgICAgYnJlYWtUb2tlbiwKLSAgICAgICAgICBzZW1pY29sb24pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBDb250aW51ZSkgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLkNvbnRpbnVlU3RhdGVtZW50KAotICAgICAgICAgIHN0bXQubGFiZWwgPT0gbnVsbCA/IG51bGwgOiBtYWtlSWRlbnRpZmllcihzdG10LmxhYmVsKSwKLSAgICAgICAgICBjb250aW51ZVRva2VuLAotICAgICAgICAgIHNlbWljb2xvbik7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIERvV2hpbGUpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5Eb1doaWxlKAotICAgICAgICAgIG1ha2VTdGF0ZW1lbnQoc3RtdC5ib2R5LCBzaG9ydElmOiBzaG9ydElmKSwKLSAgICAgICAgICBwYXJlbnRoZXNpemUobWFrZUV4cHJlc3Npb24oc3RtdC5jb25kaXRpb24pKSwKLSAgICAgICAgICBkb1Rva2VuLAotICAgICAgICAgIHdoaWxlVG9rZW4sCi0gICAgICAgICAgc2VtaWNvbG9uKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgRW1wdHlTdGF0ZW1lbnQpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5FbXB0eVN0YXRlbWVudChzZW1pY29sb24pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBFeHByZXNzaW9uU3RhdGVtZW50KSB7Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuRXhwcmVzc2lvblN0YXRlbWVudCgKLSAgICAgICAgICBtYWtlRXhwKHN0bXQuZXhwcmVzc2lvbiwgRVhQUkVTU0lPTiwgYmVnaW5TdG10OiB0cnVlKSwgc2VtaWNvbG9uKTsKLSAgICB9IGVsc2UgaWYgKHN0bXQgaXMgRm9yKSB7Ci0gICAgICB0cmVlLk5vZGUgaW5pdGlhbGl6ZXI7Ci0gICAgICBpZiAoc3RtdC5pbml0aWFsaXplciBpcyBWYXJpYWJsZURlY2xhcmF0aW9ucykgewotICAgICAgICBpbml0aWFsaXplciA9IG1ha2VWYXJpYWJsZURlY2xhcmF0aW9ucyhzdG10LmluaXRpYWxpemVyKTsKLSAgICAgIH0gZWxzZSBpZiAoc3RtdC5pbml0aWFsaXplciBpcyBFeHByZXNzaW9uKSB7Ci0gICAgICAgIGluaXRpYWxpemVyID0gbWFrZUV4cHJlc3Npb24oc3RtdC5pbml0aWFsaXplcik7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBpbml0aWFsaXplciA9IG51bGw7Ci0gICAgICB9Ci0gICAgICB0cmVlLk5vZGUgY29uZGl0aW9uOwotICAgICAgaWYgKHN0bXQuY29uZGl0aW9uICE9IG51bGwpIHsKLSAgICAgICAgY29uZGl0aW9uID0gbmV3IHRyZWUuRXhwcmVzc2lvblN0YXRlbWVudCgKLSAgICAgICAgICAgIG1ha2VFeHByZXNzaW9uKHN0bXQuY29uZGl0aW9uKSwgc2VtaWNvbG9uKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvbmRpdGlvbiA9IG5ldyB0cmVlLkVtcHR5U3RhdGVtZW50KHNlbWljb2xvbik7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuRm9yKAotICAgICAgICAgIGluaXRpYWxpemVyLAotICAgICAgICAgIGNvbmRpdGlvbiwKLSAgICAgICAgICBtYWtlTGlzdCgnLCcsIHN0bXQudXBkYXRlcy5tYXAobWFrZUV4cHJlc3Npb24pKSwKLSAgICAgICAgICBtYWtlU3RhdGVtZW50KHN0bXQuYm9keSwgc2hvcnRJZjogc2hvcnRJZiksCi0gICAgICAgICAgZm9yVG9rZW4pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBGb3JJbikgewotICAgICAgdHJlZS5Ob2RlIGxlZnQ7Ci0gICAgICBpZiAoc3RtdC5sZWZ0SGFuZFZhbHVlIGlzIElkZW50aWZpZXIpIHsKLSAgICAgICAgbGVmdCA9IG1ha2VFeHByZXNzaW9uKHN0bXQubGVmdEhhbmRWYWx1ZSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBsZWZ0ID0gbWFrZVZhcmlhYmxlRGVjbGFyYXRpb25zKHN0bXQubGVmdEhhbmRWYWx1ZSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuU3luY0ZvckluKGxlZnQsIG1ha2VFeHByZXNzaW9uKHN0bXQuZXhwcmVzc2lvbiksCi0gICAgICAgICAgbWFrZVN0YXRlbWVudChzdG10LmJvZHksIHNob3J0SWY6IHNob3J0SWYpLCBmb3JUb2tlbiwgaW5Ub2tlbik7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIEZ1bmN0aW9uRGVjbGFyYXRpb24pIHsKLSAgICAgIHRyZWUuRnVuY3Rpb25FeHByZXNzaW9uIGZ1bmN0aW9uID0gbmV3IHRyZWUuRnVuY3Rpb25FeHByZXNzaW9uKAotICAgICAgICAgIHN0bXQubmFtZSAhPSBudWxsID8gbWFrZUlkZW50aWZpZXIoc3RtdC5uYW1lKSA6IG51bGwsCi0gICAgICAgICAgLy8gR0VORVJJQ19NRVRIT0RTOiBJbiBvcmRlciB0byBzdXBwb3J0IGdlbmVyaWMgbWV0aG9kcyBmdWxseSwKLSAgICAgICAgICAvLyB3ZSBtdXN0IHJldHJpZXZlIGFuZCBwYXNzIHRoZSBhY3R1YWwgdHlwZSB2YXJpYWJsZXMgaGVyZS4KLSAgICAgICAgICBudWxsLCAvLyB0eXBlVmFyaWFibGVzCi0gICAgICAgICAgbWFrZVBhcmFtZXRlcnMoc3RtdC5wYXJhbWV0ZXJzKSwKLSAgICAgICAgICBtYWtlRnVuY3Rpb25Cb2R5KHN0bXQuYm9keSksCi0gICAgICAgICAgc3RtdC5yZXR1cm5UeXBlICE9IG51bGwgPyBtYWtlVHlwZShzdG10LnJldHVyblR5cGUpIDogbnVsbCwKLSAgICAgICAgICBtYWtlRW1wdHlNb2RpZmllcnMoKSwKLSAgICAgICAgICBudWxsLCAvLyBpbml0aWFsaXplcnMKLSAgICAgICAgICBudWxsLCAvLyBnZXQvc2V0Ci0gICAgICAgICAgbnVsbCk7IC8vIGFzeW5jIG1vZGlmaWVyCi0gICAgICBzZXRFbGVtZW50KGZ1bmN0aW9uLCBzdG10LmZ1bmN0aW9uLmVsZW1lbnQsIHN0bXQpOwotICAgICAgcmV0dXJuIG5ldyB0cmVlLkZ1bmN0aW9uRGVjbGFyYXRpb24oZnVuY3Rpb24pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBJZikgewotICAgICAgaWYgKHN0bXQuZWxzZVN0YXRlbWVudCA9PSBudWxsIHx8IGlzRW1wdHlTdGF0ZW1lbnQoc3RtdC5lbHNlU3RhdGVtZW50KSkgewotICAgICAgICB0cmVlLk5vZGUgbm9kZSA9IG5ldyB0cmVlLklmKAotICAgICAgICAgICAgcGFyZW50aGVzaXplKG1ha2VFeHByZXNzaW9uKHN0bXQuY29uZGl0aW9uKSksCi0gICAgICAgICAgICBtYWtlU3RhdGVtZW50KHN0bXQudGhlblN0YXRlbWVudCksCi0gICAgICAgICAgICBudWxsLCAvLyBlbHNlIHN0YXRlbWVudAotICAgICAgICAgICAgaWZUb2tlbiwKLSAgICAgICAgICAgIG51bGwpOyAvLyBlbHNlIHRva2VuCi0gICAgICAgIGlmIChzaG9ydElmKQotICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgcmV0dXJuIG5ldyB0cmVlLkJsb2NrKGJyYWNlTGlzdCgnJywgW25vZGVdKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gbmV3IHRyZWUuSWYoCi0gICAgICAgICAgICBwYXJlbnRoZXNpemUobWFrZUV4cHJlc3Npb24oc3RtdC5jb25kaXRpb24pKSwKLSAgICAgICAgICAgIG1ha2VTdGF0ZW1lbnQoc3RtdC50aGVuU3RhdGVtZW50LCBzaG9ydElmOiBmYWxzZSksCi0gICAgICAgICAgICBtYWtlU3RhdGVtZW50KHN0bXQuZWxzZVN0YXRlbWVudCwgc2hvcnRJZjogc2hvcnRJZiksCi0gICAgICAgICAgICBpZlRva2VuLAotICAgICAgICAgICAgZWxzZVRva2VuKTsgLy8gZWxzZSB0b2tlbgotICAgICAgfQotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBMYWJlbGVkU3RhdGVtZW50KSB7Ci0gICAgICBMaXN0PHRyZWUuTGFiZWw+IGxhYmVscyA9IFtdOwotICAgICAgU3RhdGVtZW50IGlubmVyID0gc3RtdDsKLSAgICAgIHdoaWxlIChpbm5lciBpcyBMYWJlbGVkU3RhdGVtZW50KSB7Ci0gICAgICAgIExhYmVsZWRTdGF0ZW1lbnQgbGJsID0gaW5uZXIgYXMgTGFiZWxlZFN0YXRlbWVudDsKLSAgICAgICAgbGFiZWxzLmFkZChuZXcgdHJlZS5MYWJlbChtYWtlSWRlbnRpZmllcihsYmwubGFiZWwpLCBjb2xvbikpOwotICAgICAgICBpbm5lciA9IGxibC5zdGF0ZW1lbnQ7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuTGFiZWxlZFN0YXRlbWVudCgKLSAgICAgICAgICBtYWtlTGlzdCgnJywgbGFiZWxzKSwgbWFrZVN0YXRlbWVudChpbm5lciwgc2hvcnRJZjogc2hvcnRJZikpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBSZXRocm93KSB7Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuUmV0aHJvdyhyZXRocm93VG9rZW4sIHNlbWljb2xvbik7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIFJldHVybikgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLlJldHVybihyZXR1cm5Ub2tlbiwgc2VtaWNvbG9uLAotICAgICAgICAgIHN0bXQuZXhwcmVzc2lvbiA9PSBudWxsID8gbnVsbCA6IG1ha2VFeHByZXNzaW9uKHN0bXQuZXhwcmVzc2lvbikpOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBTd2l0Y2gpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5Td2l0Y2hTdGF0ZW1lbnQoCi0gICAgICAgICAgcGFyZW50aGVzaXplKG1ha2VFeHByZXNzaW9uKHN0bXQuZXhwcmVzc2lvbikpLAotICAgICAgICAgIGJyYWNlTGlzdCgnJywgc3RtdC5jYXNlcy5tYXAobWFrZVN3aXRjaENhc2UpKSwKLSAgICAgICAgICBzd2l0Y2hUb2tlbik7Ci0gICAgfSBlbHNlIGlmIChzdG10IGlzIFRyeSkgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLlRyeVN0YXRlbWVudCgKLSAgICAgICAgICBtYWtlQmxvY2soc3RtdC50cnlCbG9jayksCi0gICAgICAgICAgbWFrZUxpc3QobnVsbCwgc3RtdC5jYXRjaEJsb2Nrcy5tYXAobWFrZUNhdGNoQmxvY2spKSwKLSAgICAgICAgICBzdG10LmZpbmFsbHlCbG9jayA9PSBudWxsID8gbnVsbCA6IG1ha2VCbG9jayhzdG10LmZpbmFsbHlCbG9jayksCi0gICAgICAgICAgdHJ5VG9rZW4sCi0gICAgICAgICAgc3RtdC5maW5hbGx5QmxvY2sgPT0gbnVsbCA/IG51bGwgOiBmaW5hbGx5VG9rZW4pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBWYXJpYWJsZURlY2xhcmF0aW9ucykgewotICAgICAgcmV0dXJuIG1ha2VWYXJpYWJsZURlY2xhcmF0aW9ucyhzdG10LCB1c2VWYXI6IHRydWUsIGVuZFRva2VuOiBzZW1pY29sb24pOwotICAgIH0gZWxzZSBpZiAoc3RtdCBpcyBXaGlsZSkgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLldoaWxlKHBhcmVudGhlc2l6ZShtYWtlRXhwcmVzc2lvbihzdG10LmNvbmRpdGlvbikpLAotICAgICAgICAgIG1ha2VTdGF0ZW1lbnQoc3RtdC5ib2R5LCBzaG9ydElmOiBzaG9ydElmKSwgd2hpbGVUb2tlbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93ICJVbnJlY29nbml6ZWQgc3RhdGVtZW50OiAke3N0bXR9IjsKLSAgICB9Ci0gIH0KLQotICB0cmVlLk5vZGUgbWFrZVZhcmlhYmxlRGVjbGFyYXRpb24oVmFyaWFibGVEZWNsYXJhdGlvbiB2ZCkgewotICAgIHRyZWUuTm9kZSBpZCA9IG1ha2VJZGVudGlmaWVyKHZkLm5hbWUpOwotICAgIHNldEVsZW1lbnQoaWQsIHZkLmVsZW1lbnQsIHZkKTsKLSAgICBpZiAodmQuaW5pdGlhbGl6ZXIgPT0gbnVsbCkgewotICAgICAgcmV0dXJuIGlkOwotICAgIH0KLSAgICB0cmVlLk5vZGUgc2VuZCA9IG5ldyB0cmVlLlNlbmRTZXQobnVsbCwgaWQsIG5ldyB0cmVlLk9wZXJhdG9yKGVxKSwKLSAgICAgICAgc2luZ2xldG9uKG1ha2VFeHByZXNzaW9uKHZkLmluaXRpYWxpemVyKSkpOwotICAgIHNldEVsZW1lbnQoc2VuZCwgdmQuZWxlbWVudCwgdmQpOwotICAgIHJldHVybiBzZW5kOwotICB9Ci0KLSAgLy8vIElmIFt1c2VWYXJdIGlzIHRydWUsIHRoZSB2YXJpYWJsZSBkZWZpbml0aW9uIHdpbGwgdXNlIGB2YXJgIGFzIG1vZGlmaWVyCi0gIC8vLyBpZiBubyBvdGhlciBtb2RpZmllcnMgYXJlIHByZXNlbnQuCi0gIC8vLyBbZW5kVG9rZW5dIHdpbGwgYmUgdXNlZCB0byB0ZXJtaW5hdGUgdGhlIGRlY2xhcmF0aW9uIGxpc3QuCi0gIHRyZWUuTm9kZSBtYWtlVmFyaWFibGVEZWNsYXJhdGlvbnMoVmFyaWFibGVEZWNsYXJhdGlvbnMgZGVjbCwKLSAgICAgIHtib29sIHVzZVZhcjogZmFsc2UsIFRva2VuIGVuZFRva2VuOiBudWxsfSkgewotICAgIHJldHVybiBuZXcgdHJlZS5WYXJpYWJsZURlZmluaXRpb25zKAotICAgICAgICBkZWNsLnR5cGUgPT0gbnVsbCA/IG51bGwgOiBtYWtlVHlwZShkZWNsLnR5cGUpLAotICAgICAgICBtYWtlVmFyTW9kaWZpZXJzKAotICAgICAgICAgICAgaXNDb25zdDogZGVjbC5pc0NvbnN0LAotICAgICAgICAgICAgaXNGaW5hbDogZGVjbC5pc0ZpbmFsLAotICAgICAgICAgICAgdXNlVmFyOiB1c2VWYXIgJiYgZGVjbC50eXBlID09IG51bGwpLAotICAgICAgICBtYWtlTGlzdCgnLCcsIGRlY2wuZGVjbGFyYXRpb25zLm1hcChtYWtlVmFyaWFibGVEZWNsYXJhdGlvbiksCi0gICAgICAgICAgICBjbG9zZTogZW5kVG9rZW4pKTsKLSAgfQotCi0gIHRyZWUuQ2F0Y2hCbG9jayBtYWtlQ2F0Y2hCbG9jayhDYXRjaEJsb2NrIGJsb2NrKSB7Ci0gICAgTGlzdDx0cmVlLlZhcmlhYmxlRGVmaW5pdGlvbnM+IGZvcm1hbHMgPSBbXTsKLSAgICBpZiAoYmxvY2suZXhjZXB0aW9uVmFyICE9IG51bGwpIHsKLSAgICAgIHRyZWUuTm9kZSBleGNlcHRpb25OYW1lID0gbWFrZUlkZW50aWZpZXIoYmxvY2suZXhjZXB0aW9uVmFyLm5hbWUpOwotICAgICAgc2V0RWxlbWVudChleGNlcHRpb25OYW1lLCBibG9jay5leGNlcHRpb25WYXIuZWxlbWVudCwgYmxvY2suZXhjZXB0aW9uVmFyKTsKLSAgICAgIGZvcm1hbHMuYWRkKG5ldyB0cmVlLlZhcmlhYmxlRGVmaW5pdGlvbnMoCi0gICAgICAgICAgbnVsbCwgbWFrZUVtcHR5TW9kaWZpZXJzKCksIHNpbmdsZXRvbihleGNlcHRpb25OYW1lKSkpOwotICAgIH0KLSAgICBpZiAoYmxvY2suc3RhY2tWYXIgIT0gbnVsbCkgewotICAgICAgdHJlZS5Ob2RlIHN0YWNrVHJhY2VOYW1lID0gbWFrZUlkZW50aWZpZXIoYmxvY2suc3RhY2tWYXIubmFtZSk7Ci0gICAgICBzZXRFbGVtZW50KHN0YWNrVHJhY2VOYW1lLCBibG9jay5zdGFja1Zhci5lbGVtZW50LCBibG9jay5zdGFja1Zhcik7Ci0gICAgICBmb3JtYWxzLmFkZChuZXcgdHJlZS5WYXJpYWJsZURlZmluaXRpb25zKAotICAgICAgICAgIG51bGwsIG1ha2VFbXB0eU1vZGlmaWVycygpLCBzaW5nbGV0b24oc3RhY2tUcmFjZU5hbWUpKSk7Ci0gICAgfQotICAgIHJldHVybiBuZXcgdHJlZS5DYXRjaEJsb2NrKAotICAgICAgICBibG9jay5vblR5cGUgPT0gbnVsbCA/IG51bGwgOiBtYWtlVHlwZShibG9jay5vblR5cGUpLAotICAgICAgICBibG9jay5leGNlcHRpb25WYXIgPT0gbnVsbCA/IG51bGwgOiBhcmdMaXN0KGZvcm1hbHMpLAotICAgICAgICBtYWtlQmxvY2soYmxvY2suYm9keSksCi0gICAgICAgIGJsb2NrLm9uVHlwZSA9PSBudWxsID8gbnVsbCA6IG9uVG9rZW4sCi0gICAgICAgIGJsb2NrLmV4Y2VwdGlvblZhciA9PSBudWxsID8gbnVsbCA6IGNhdGNoVG9rZW4pOwotICB9Ci0KLSAgdHJlZS5Td2l0Y2hDYXNlIG1ha2VTd2l0Y2hDYXNlKFN3aXRjaENhc2UgY2F6ZSkgewotICAgIGlmIChjYXplLmlzRGVmYXVsdENhc2UpIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5Td2l0Y2hDYXNlKAotICAgICAgICAgIGJsYW5rTGlzdCgpLAotICAgICAgICAgIGRlZmF1bHRUb2tlbiwKLSAgICAgICAgICBtYWtlTGlzdCgnJywgY2F6ZS5zdGF0ZW1lbnRzLm1hcChtYWtlU3RhdGVtZW50KSksCi0gICAgICAgICAgbnVsbCk7IC8vIHN0YXJ0VG9rZW4gdW51c2VkIGJ5IHVucGFyc2VyCi0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgdHJlZS5Td2l0Y2hDYXNlKAotICAgICAgICAgIG1ha2VMaXN0KCcnLCBjYXplLmV4cHJlc3Npb25zLm1hcChtYWtlQ2FzZU1hdGNoKSksCi0gICAgICAgICAgbnVsbCwgLy8gZGVmYXVsdEtleXdvcmQsCi0gICAgICAgICAgbWFrZUxpc3QoJycsIGNhemUuc3RhdGVtZW50cy5tYXAobWFrZVN0YXRlbWVudCkpLAotICAgICAgICAgIG51bGwpOyAvLyBzdGFydFRva2VuIHVudXNlZCBieSB1bnBhcnNlcgotICAgIH0KLSAgfQotCi0gIHRyZWUuQ2FzZU1hdGNoIG1ha2VDYXNlTWF0Y2goRXhwcmVzc2lvbiBleHApIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuQ2FzZU1hdGNoKGNhc2VUb2tlbiwgbWFrZUV4cHJlc3Npb24oZXhwKSwgY29sb24pOwotICB9Ci0KLSAgdHJlZS5UeXBlQW5ub3RhdGlvbiBtYWtlVHlwZShUeXBlQW5ub3RhdGlvbiB0eXBlKSB7Ci0gICAgdHJlZS5Ob2RlTGlzdCB0eXBlQXJnczsKLSAgICBpZiAodHlwZS50eXBlQXJndW1lbnRzLmxlbmd0aCA+IDApIHsKLSAgICAgIHR5cGVBcmdzID0gdHlwZUFyZ0xpc3QodHlwZS50eXBlQXJndW1lbnRzLm1hcChtYWtlVHlwZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICB0eXBlQXJncyA9IG51bGw7Ci0gICAgfQotICAgIHRyZWUuVHlwZUFubm90YXRpb24gcmVzdWx0ID0KLSAgICAgICAgbmV3IHRyZWUuVHlwZUFubm90YXRpb24obWFrZUlkZW50aWZpZXIodHlwZS5uYW1lKSwgdHlwZUFyZ3MpOwotICAgIHNldFR5cGUocmVzdWx0LCB0eXBlLmRhcnRUeXBlLCB0eXBlKTsKLSAgICByZXR1cm4gcmVzdWx0OwotICB9Ci0KLSAgdHJlZS5Ob2RlTGlzdCBtYWtlUGFyYW1ldGVycyhQYXJhbWV0ZXJzIHBhcmFtcykgewotICAgIExpc3Q8dHJlZS5Ob2RlPiBub2RlcyA9Ci0gICAgICAgIHBhcmFtcy5yZXF1aXJlZFBhcmFtZXRlcnMubWFwKG1ha2VQYXJhbWV0ZXIpLnRvTGlzdCgpOwotICAgIGlmIChwYXJhbXMuaGFzT3B0aW9uYWxQYXJhbWV0ZXJzKSB7Ci0gICAgICBUb2tlbiBhc3NpZ24gPSBwYXJhbXMuaGFzTmFtZWRQYXJhbWV0ZXJzID8gY29sb24gOiBlcTsKLSAgICAgIFRva2VuIG9wZW4gPSBwYXJhbXMuaGFzTmFtZWRQYXJhbWV0ZXJzID8gb3BlbkJyYWNlIDogb3BlbkJyYWNrZXQ7Ci0gICAgICBUb2tlbiBjbG9zZSA9IHBhcmFtcy5oYXNOYW1lZFBhcmFtZXRlcnMgPyBjbG9zZUJyYWNlIDogY2xvc2VCcmFja2V0OwotICAgICAgSXRlcmFibGU8dHJlZS5Ob2RlPiBvcHQgPQotICAgICAgICAgIHBhcmFtcy5vcHRpb25hbFBhcmFtZXRlcnMubWFwKChwKSA9PiBtYWtlUGFyYW1ldGVyKHAsIGFzc2lnbikpOwotICAgICAgbm9kZXMuYWRkKG5ldyB0cmVlLk5vZGVMaXN0KG9wZW4sIG1ha2VMaW5rKG9wdCksIGNsb3NlLCAnLCcpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFyZ0xpc3Qobm9kZXMpOwotICB9Ci0KLSAgLy8vIFthc3NpZ25PcGVyYXRvcl0gaXMgdXNlZCBmb3Igd3JpdGluZyB0aGUgZGVmYXVsdCB2YWx1ZS4KLSAgdHJlZS5Ob2RlIG1ha2VQYXJhbWV0ZXIoUGFyYW1ldGVyIHBhcmFtLCBbVG9rZW4gYXNzaWduT3BlcmF0b3JdKSB7Ci0gICAgaWYgKHBhcmFtLmlzRnVuY3Rpb24pIHsKLSAgICAgIHRyZWUuTm9kZSBkZWZpbml0aW9uID0gbmV3IHRyZWUuRnVuY3Rpb25FeHByZXNzaW9uKAotICAgICAgICAgIG1ha2VJZGVudGlmaWVyKHBhcmFtLm5hbWUpLAotICAgICAgICAgIC8vIEdFTkVSSUNfTUVUSE9EUzogSW4gb3JkZXIgdG8gc3VwcG9ydCBnZW5lcmljIG1ldGhvZHMgZnVsbHksCi0gICAgICAgICAgLy8gd2UgbXVzdCByZXRyaWV2ZSBhbmQgcGFzcyB0aGUgYWN0dWFsIHR5cGUgdmFyaWFibGVzIGhlcmUuCi0gICAgICAgICAgbnVsbCwgLy8gdHlwZVZhcmlhYmxlcwotICAgICAgICAgIG1ha2VQYXJhbWV0ZXJzKHBhcmFtLnBhcmFtZXRlcnMpLAotICAgICAgICAgIG51bGwsIC8vIGJvZHkKLSAgICAgICAgICAgICAgcGFyYW0udHlwZSA9PSBudWxsID8gbnVsbCA6IG1ha2VUeXBlKHBhcmFtLnR5cGUpLAotICAgICAgICAgIG1ha2VFbXB0eU1vZGlmaWVycygpLCAvLyBUT0RPOiBGdW5jdGlvbiBwYXJhbWV0ZXIgbW9kaWZpZXJzPwotICAgICAgICAgIG51bGwsIC8vIGluaXRpYWxpemVycwotICAgICAgICAgIG51bGwsIC8vIGdldC9zZXQKLSAgICAgICAgICBudWxsKTsgLy8gYXN5bmMgbW9kaWZpZXIKLSAgICAgIGlmIChwYXJhbS5lbGVtZW50ICE9IG51bGwpIHsKLSAgICAgICAgc2V0RWxlbWVudChkZWZpbml0aW9uLCBwYXJhbS5lbGVtZW50LCBwYXJhbSk7Ci0gICAgICB9Ci0gICAgICBpZiAocGFyYW0uZGVmYXVsdFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgZGVmaW5pdGlvbiA9IG5ldyB0cmVlLlNlbmRTZXQoCi0gICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgZGVmaW5pdGlvbiwKLSAgICAgICAgICAgIG5ldyB0cmVlLk9wZXJhdG9yKGFzc2lnbk9wZXJhdG9yKSwKLSAgICAgICAgICAgIHNpbmdsZXRvbihtYWtlRXhwcmVzc2lvbihwYXJhbS5kZWZhdWx0VmFsdWUpKSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbmV3IHRyZWUuVmFyaWFibGVEZWZpbml0aW9ucygKLSAgICAgICAgICBudWxsLCBtYWtlRW1wdHlNb2RpZmllcnMoKSwgc2luZ2xldG9uKGRlZmluaXRpb24pKTsKLSAgICB9IGVsc2UgewotICAgICAgdHJlZS5Ob2RlIGRlZmluaXRpb247Ci0gICAgICBpZiAocGFyYW0uZGVmYXVsdFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgZGVmaW5pdGlvbiA9IG5ldyB0cmVlLlNlbmRTZXQoCi0gICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgbWFrZUlkZW50aWZpZXIocGFyYW0ubmFtZSksCi0gICAgICAgICAgICBuZXcgdHJlZS5PcGVyYXRvcihhc3NpZ25PcGVyYXRvciksCi0gICAgICAgICAgICBzaW5nbGV0b24obWFrZUV4cHJlc3Npb24ocGFyYW0uZGVmYXVsdFZhbHVlKSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZGVmaW5pdGlvbiA9IG1ha2VJZGVudGlmaWVyKHBhcmFtLm5hbWUpOwotICAgICAgfQotICAgICAgaWYgKHBhcmFtLmVsZW1lbnQgIT0gbnVsbCkgewotICAgICAgICBzZXRFbGVtZW50KGRlZmluaXRpb24sIHBhcmFtLmVsZW1lbnQsIHBhcmFtKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBuZXcgdHJlZS5WYXJpYWJsZURlZmluaXRpb25zKAotICAgICAgICAgIHBhcmFtLnR5cGUgPT0gbnVsbCA/IG51bGwgOiBtYWtlVHlwZShwYXJhbS50eXBlKSwKLSAgICAgICAgICBtYWtlRW1wdHlNb2RpZmllcnMoKSwgLy8gVE9ETzogUGFyYW1ldGVyIG1vZGlmaWVycz8KLSAgICAgICAgICBzaW5nbGV0b24oZGVmaW5pdGlvbikpOwotICAgIH0KLSAgfQotCi0gIHRyZWUuTW9kaWZpZXJzIG1ha2VFbXB0eU1vZGlmaWVycygpIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuTW9kaWZpZXJzKGJsYW5rTGlzdCgpKTsKLSAgfQotCi0gIHRyZWUuTW9kaWZpZXJzIG1ha2VNb2RpZmllcnMoCi0gICAgICB7Ym9vbCBpc0V4dGVybmFsOiBmYWxzZSwKLSAgICAgIGJvb2wgaXNTdGF0aWM6IGZhbHNlLAotICAgICAgYm9vbCBpc0Fic3RyYWN0OiBmYWxzZSwKLSAgICAgIGJvb2wgaXNGYWN0b3J5OiBmYWxzZSwKLSAgICAgIGJvb2wgaXNDb25zdDogZmFsc2UsCi0gICAgICBib29sIGlzRmluYWw6IGZhbHNlLAotICAgICAgYm9vbCBpc1ZhcjogZmFsc2V9KSB7Ci0gICAgTGlzdDx0cmVlLk5vZGU+IG5vZGVzID0gW107Ci0gICAgaWYgKGlzRXh0ZXJuYWwpIHsKLSAgICAgIG5vZGVzLmFkZChtYWtlSWRlbnRpZmllcignZXh0ZXJuYWwnKSk7Ci0gICAgfQotICAgIGlmIChpc1N0YXRpYykgewotICAgICAgbm9kZXMuYWRkKG1ha2VJZGVudGlmaWVyKCdzdGF0aWMnKSk7Ci0gICAgfQotICAgIGlmIChpc0Fic3RyYWN0KSB7Ci0gICAgICBub2Rlcy5hZGQobWFrZUlkZW50aWZpZXIoJ2Fic3RyYWN0JykpOwotICAgIH0KLSAgICBpZiAoaXNGYWN0b3J5KSB7Ci0gICAgICBub2Rlcy5hZGQobWFrZUlkZW50aWZpZXIoJ2ZhY3RvcnknKSk7Ci0gICAgfQotICAgIGlmIChpc0NvbnN0KSB7Ci0gICAgICBub2Rlcy5hZGQobWFrZUlkZW50aWZpZXIoJ2NvbnN0JykpOwotICAgIH0KLSAgICBpZiAoaXNGaW5hbCkgewotICAgICAgbm9kZXMuYWRkKG1ha2VJZGVudGlmaWVyKCdmaW5hbCcpKTsKLSAgICB9Ci0gICAgaWYgKGlzVmFyKSB7Ci0gICAgICBub2Rlcy5hZGQobWFrZUlkZW50aWZpZXIoJ3ZhcicpKTsKLSAgICB9Ci0gICAgcmV0dXJuIG5ldyB0cmVlLk1vZGlmaWVycyhtYWtlTGlzdCgnICcsIG5vZGVzKSk7Ci0gIH0KLQotICB0cmVlLk1vZGlmaWVycyBtYWtlVmFyTW9kaWZpZXJzKAotICAgICAge2Jvb2wgaXNDb25zdDogZmFsc2UsCi0gICAgICBib29sIGlzRmluYWw6IGZhbHNlLAotICAgICAgYm9vbCB1c2VWYXI6IGZhbHNlLAotICAgICAgYm9vbCBpc1N0YXRpYzogZmFsc2V9KSB7Ci0gICAgcmV0dXJuIG1ha2VNb2RpZmllcnMoCi0gICAgICAgIGlzU3RhdGljOiBpc1N0YXRpYywKLSAgICAgICAgaXNDb25zdDogaXNDb25zdCwKLSAgICAgICAgaXNGaW5hbDogaXNGaW5hbCwKLSAgICAgICAgaXNWYXI6IHVzZVZhciAmJiAhKGlzQ29uc3QgfHwgaXNGaW5hbCkpOwotICB9Ci0KLSAgdHJlZS5Nb2RpZmllcnMgbWFrZUZ1bmN0aW9uTW9kaWZpZXJzKEZ1bmN0aW9uRXhwcmVzc2lvbiBleHApIHsKLSAgICBpZiAoZXhwLmVsZW1lbnQgPT0gbnVsbCkgcmV0dXJuIG1ha2VFbXB0eU1vZGlmaWVycygpOwotICAgIHJldHVybiBtYWtlTW9kaWZpZXJzKAotICAgICAgICBpc0V4dGVybmFsOiBleHAuZWxlbWVudC5pc0V4dGVybmFsLAotICAgICAgICBpc1N0YXRpYzogZXhwLmVsZW1lbnQuaXNTdGF0aWMsCi0gICAgICAgIGlzRmFjdG9yeTogZXhwLmVsZW1lbnQuaXNGYWN0b3J5Q29uc3RydWN0b3IsCi0gICAgICAgIGlzQ29uc3Q6IGV4cC5lbGVtZW50LmlzQ29uc3QpOwotICB9Ci0KLSAgdHJlZS5Ob2RlIG1ha2VOb2RlRm9yQ2xhc3NFbGVtZW50KGVsZW1lbnRzLkNsYXNzRWxlbWVudCBjbHMpIHsKLSAgICBpZiAoY2xzLmlzTWl4aW5BcHBsaWNhdGlvbikgewotICAgICAgcmV0dXJuIG1ha2VOYW1lZE1peGluQXBwbGljYXRpb24oY2xzKTsKLSAgICB9IGVsc2UgaWYgKGNscy5pc0VudW1DbGFzcykgewotICAgICAgcmV0dXJuIG1ha2VFbnVtKGNscyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBtYWtlQ2xhc3NOb2RlKGNscyk7Ci0gICAgfQotICB9Ci0KLSAgdHJlZS5UeXBlZGVmIG1ha2VUeXBlZGVmKGVsZW1lbnRzLlR5cGVkZWZFbGVtZW50IHR5cGRlZikgewotICAgIHR5cGVzLkZ1bmN0aW9uVHlwZSBmdW5jdGlvblR5cGUgPSB0eXBkZWYuYWxpYXM7Ci0gICAgZmluYWwgdHJlZS5UeXBlQW5ub3RhdGlvbiByZXR1cm5UeXBlID0KLSAgICAgICAgbWFrZVR5cGUoVHlwZUdlbmVyYXRvci5jcmVhdGVUeXBlKGZ1bmN0aW9uVHlwZS5yZXR1cm5UeXBlKSk7Ci0KLSAgICBmaW5hbCB0cmVlLklkZW50aWZpZXIgbmFtZSA9IG1ha2VJZGVudGlmaWVyKHR5cGRlZi5uYW1lKTsKLSAgICBmaW5hbCB0cmVlLk5vZGVMaXN0IHR5cGVQYXJhbWV0ZXJzID0KLSAgICAgICAgbWFrZVR5cGVQYXJhbWV0ZXJzKHR5cGRlZi50eXBlVmFyaWFibGVzKTsKLSAgICBmaW5hbCB0cmVlLk5vZGVMaXN0IGZvcm1hbHMgPQotICAgICAgICBtYWtlUGFyYW1ldGVycyhUeXBlR2VuZXJhdG9yLmNyZWF0ZVBhcmFtZXRlcnNGcm9tVHlwZShmdW5jdGlvblR5cGUpKTsKLQotICAgIGZpbmFsIFRva2VuIHR5cGVkZWZLZXl3b3JkID0gdHlwZWRlZlRva2VuOwotICAgIGZpbmFsIFRva2VuIGVuZFRva2VuID0gc2VtaWNvbG9uOwotCi0gICAgcmV0dXJuIG5ldyB0cmVlLlR5cGVkZWYoCi0gICAgICAgIHJldHVyblR5cGUsIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCBmb3JtYWxzLCB0eXBlZGVmS2V5d29yZCwgZW5kVG9rZW4pOwotICB9Ci0KLSAgLy8vIENyZWF0ZSBhIFt0cmVlLk5vZGVMaXN0XSBjb250YWluaW5nIHRoZSB0eXBlIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbgotICAvLy8gW3R5cGVWYXJhaWFibGVzLgotICB0cmVlLk5vZGVMaXN0IG1ha2VUeXBlUGFyYW1ldGVycyhMaXN0PHR5cGVzLkRhcnRUeXBlPiB0eXBlVmFyaWFibGVzKSB7Ci0gICAgaWYgKHR5cGVWYXJpYWJsZXMuaXNFbXB0eSkgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLk5vZGVMaXN0LmVtcHR5KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIExpc3Q8dHJlZS5Ob2RlPiB0eXBlVmFyaWFibGVMaXN0ID0gPHRyZWUuTm9kZT5bXTsKLSAgICAgIGZvciAodHlwZXMuVHlwZVZhcmlhYmxlVHlwZSB0eXBlVmFyaWFibGUgaW4gdHlwZVZhcmlhYmxlcykgewotICAgICAgICB0cmVlLk5vZGUgaWQgPSBtYWtlSWRlbnRpZmllcih0eXBlVmFyaWFibGUubmFtZSk7Ci0gICAgICAgIHRyZWVFbGVtZW50c1tpZF0gPSB0eXBlVmFyaWFibGUuZWxlbWVudDsKLSAgICAgICAgdHJlZS5Ob2RlIGJvdW5kOwotICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZS5lbGVtZW50LmJvdW5kLmlzT2JqZWN0KSB7Ci0gICAgICAgICAgYm91bmQgPQotICAgICAgICAgICAgICBtYWtlVHlwZShUeXBlR2VuZXJhdG9yLmNyZWF0ZVR5cGUodHlwZVZhcmlhYmxlLmVsZW1lbnQuYm91bmQpKTsKLSAgICAgICAgfQotICAgICAgICB0cmVlLlR5cGVWYXJpYWJsZSBub2RlID0gbmV3IHRyZWUuVHlwZVZhcmlhYmxlKGlkLCBleHRlbmRzVG9rZW4sIGJvdW5kKTsKLSAgICAgICAgdHJlZUVsZW1lbnRzLnNldFR5cGUobm9kZSwgdHlwZVZhcmlhYmxlKTsKLSAgICAgICAgdHlwZVZhcmlhYmxlTGlzdC5hZGQobm9kZSk7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gbWFrZUxpc3QoJywnLCB0eXBlVmFyaWFibGVMaXN0LCBvcGVuOiBsdCwgY2xvc2U6IGd0KTsKLSAgICB9Ci0gIH0KLQotICAvLy8gQ3JlYXRlIGEgW3RyZWUuTm9kZUxpc3RdIGNvbnRhaW5pbmcgdGhlIGRlY2xhcmVkIGludGVyZmFjZXMuCi0gIC8vLwotICAvLy8gW2ludGVyZmFjZXNdIGlzIGZyb20gW2VsZW1lbnRzLkNsYXNzRWxlbWVudF0gaW4gcmV2ZXJzZSBkZWNsYXJhdGlvbiBvcmRlcgotICAvLy8gYW5kIGl0IGNvbnRhaW5zIG1peGlucy4gVG8gcHJvZHVjZSBhIGxpc3Qgb2YgdGhlIGRlY2xhcmVkIGludGVyZmFjZXMgb25seSwKLSAgLy8vIGludGVyZmFjZXMgaW4gW21peGluVHlwZXNdIGFyZSBvbWl0dGVkLgotICAvLy8KLSAgLy8vIFtmb3JOYW1lZE1peGluQXBwbGljYXRpb25dIGlzIGJlY2F1c2UgdGhlIHN0cnVjdHVyZSBvZiB0aGUgW3RyZWUuTm9kZUxpc3RdCi0gIC8vLyBkaWZmZXJzIGJldHdlZW4gW3RyZWUuTmFtZWRNaXhpbkFwcGxpY2F0aW9uXSBhbmQgW3RyZWUuQ2xhc3NOb2RlXS4KLSAgLy8gVE9ETyhqb2hubml3aW50aGVyKTogTm9ybWFsaXplIGludGVyZmFjZXMgb25bdHJlZS5OYW1lZE1peGluQXBwbGljYXRpb25dCi0gIC8vIGFuZCBbdHJlZS5DbGFzc05vZGVdLgotICB0cmVlLk5vZGVMaXN0IG1ha2VJbnRlcmZhY2VzKAotICAgICAgTGluazx0eXBlcy5EYXJ0VHlwZT4gaW50ZXJmYWNlcywgU2V0PHR5cGVzLkRhcnRUeXBlPiBtaXhpblR5cGVzLAotICAgICAge2Jvb2wgZm9yTmFtZWRNaXhpbkFwcGxpY2F0aW9uOiBmYWxzZX0pIHsKLSAgICBMaW5rPHRyZWUuTm9kZT4gdHlwZUFubm90YXRpb25zID0gY29uc3QgTGluazx0cmVlLk5vZGU+KCk7Ci0gICAgZm9yIChMaW5rPHR5cGVzLkRhcnRUeXBlPiBsaW5rID0gaW50ZXJmYWNlczsKLSAgICAgICAgIWxpbmsuaXNFbXB0eTsKLSAgICAgICAgbGluayA9IGxpbmsudGFpbCkgewotICAgICAgdHlwZXMuRGFydFR5cGUgaW50ZXJmYWNlID0gbGluay5oZWFkOwotICAgICAgaWYgKCFtaXhpblR5cGVzLmNvbnRhaW5zKGludGVyZmFjZSkpIHsKLSAgICAgICAgdHlwZUFubm90YXRpb25zID0gdHlwZUFubm90YXRpb25zCi0gICAgICAgICAgICAucHJlcGVuZChtYWtlVHlwZShUeXBlR2VuZXJhdG9yLmNyZWF0ZVR5cGUoaW50ZXJmYWNlKSkpOwotICAgICAgfQotICAgIH0KLSAgICBpZiAodHlwZUFubm90YXRpb25zLmlzRW1wdHkpIHsKLSAgICAgIHJldHVybiBmb3JOYW1lZE1peGluQXBwbGljYXRpb24gPyBudWxsIDogbmV3IHRyZWUuTm9kZUxpc3QuZW1wdHkoKTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIG5ldyB0cmVlLk5vZGVMaXN0KAotICAgICAgICAgIGZvck5hbWVkTWl4aW5BcHBsaWNhdGlvbiA/IG51bGwgOiBpbXBsZW1lbnRzVG9rZW4sCi0gICAgICAgICAgdHlwZUFubm90YXRpb25zLAotICAgICAgICAgIG51bGwsCi0gICAgICAgICAgJywnKTsKLSAgICB9Ci0gIH0KLQotICAvLy8gQ3JlYXRlcyBhIFt0cmVlLk5hbWVkTWl4aW5BcHBsaWNhdGlvbl0gbm9kZSBmb3IgW2Nsc10uCi0gIC8vIFRPRE8oam9obm5pd2ludGhlcik6IFVuaWZ5IGNyZWF0aW9uIG9mIG1peGluIGxpc3RzIGJldHdlZW4KLSAgLy8gW05hbWVkTWl4aW5BcHBsaWNhdGlvbkVsZW1lbnRdIGFuZCBbQ2xhc3NFbGVtZW50XS4KLSAgdHJlZS5OYW1lZE1peGluQXBwbGljYXRpb24gbWFrZU5hbWVkTWl4aW5BcHBsaWNhdGlvbigKLSAgICAgIGVsZW1lbnRzLk1peGluQXBwbGljYXRpb25FbGVtZW50IGNscykgewotICAgIGFzc2VydChpbnZhcmlhbnQoY2xzLCAhY2xzLmlzVW5uYW1lZE1peGluQXBwbGljYXRpb24sCi0gICAgICAgIG1lc3NhZ2U6ICJDYW5ub3QgY3JlYXRlIENsYXNzTm9kZSBmb3IgdW5uYW1lZCBtaXhpbiBhcHBsaWNhdGlvbiAiCi0gICAgICAgICAgICAiJGNscy4iKSk7Ci0gICAgdHJlZS5Nb2RpZmllcnMgbW9kaWZpZXJzID0gbWFrZU1vZGlmaWVycyhpc0Fic3RyYWN0OiBjbHMuaXNBYnN0cmFjdCk7Ci0gICAgdHJlZS5JZGVudGlmaWVyIG5hbWUgPSBtYWtlSWRlbnRpZmllcihjbHMubmFtZSk7Ci0gICAgdHJlZS5Ob2RlTGlzdCB0eXBlUGFyYW1ldGVycyA9IG1ha2VUeXBlUGFyYW1ldGVycyhjbHMudHlwZVZhcmlhYmxlcyk7Ci0KLSAgICBTZXQ8dHlwZXMuRGFydFR5cGU+IG1peGluVHlwZXMgPSBuZXcgU2V0PHR5cGVzLkRhcnRUeXBlPigpOwotICAgIExpbms8dHJlZS5Ob2RlPiBtaXhpbnMgPSBjb25zdCBMaW5rPHRyZWUuTm9kZT4oKTsKLQotICAgIHZvaWQgYWRkTWl4aW4odHlwZXMuRGFydFR5cGUgbWl4aW5UeXBlKSB7Ci0gICAgICBtaXhpblR5cGVzLmFkZChtaXhpblR5cGUpOwotICAgICAgbWl4aW5zID0gbWl4aW5zLnByZXBlbmQobWFrZVR5cGUoVHlwZUdlbmVyYXRvci5jcmVhdGVUeXBlKG1peGluVHlwZSkpKTsKLSAgICB9Ci0KLSAgICBhZGRNaXhpbihjbHMubWl4aW5UeXBlKTsKLQotICAgIHRyZWUuTm9kZSBzdXBlcmNsYXNzOwotICAgIHR5cGVzLkludGVyZmFjZVR5cGUgc3VwZXJ0eXBlID0gY2xzLnN1cGVydHlwZTsKLSAgICB3aGlsZSAoc3VwZXJ0eXBlLmVsZW1lbnQuaXNVbm5hbWVkTWl4aW5BcHBsaWNhdGlvbikgewotICAgICAgZWxlbWVudHMuTWl4aW5BcHBsaWNhdGlvbkVsZW1lbnQgbWl4aW5BcHBsaWNhdGlvbiA9IHN1cGVydHlwZS5lbGVtZW50OwotICAgICAgYWRkTWl4aW4oY2xzLmFzSW5zdGFuY2VPZihtaXhpbkFwcGxpY2F0aW9uLm1peGluKSk7Ci0gICAgICBzdXBlcnR5cGUgPSBtaXhpbkFwcGxpY2F0aW9uLnN1cGVydHlwZTsKLSAgICB9Ci0gICAgc3VwZXJjbGFzcyA9Ci0gICAgICAgIG1ha2VUeXBlKFR5cGVHZW5lcmF0b3IuY3JlYXRlVHlwZShjbHMuYXNJbnN0YW5jZU9mKHN1cGVydHlwZS5lbGVtZW50KSkpOwotICAgIHRyZWUuTm9kZSBzdXBlcm5vZGUgPSBuZXcgdHJlZS5NaXhpbkFwcGxpY2F0aW9uKAotICAgICAgICBzdXBlcmNsYXNzLCBuZXcgdHJlZS5Ob2RlTGlzdChudWxsLCBtaXhpbnMsIG51bGwsICcsJykpOwotCi0gICAgdHJlZS5Ob2RlTGlzdCBpbnRlcmZhY2VzID0gbWFrZUludGVyZmFjZXMoY2xzLmludGVyZmFjZXMsIG1peGluVHlwZXMsCi0gICAgICAgIGZvck5hbWVkTWl4aW5BcHBsaWNhdGlvbjogdHJ1ZSk7Ci0KLSAgICByZXR1cm4gbmV3IHRyZWUuTmFtZWRNaXhpbkFwcGxpY2F0aW9uKG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCBtb2RpZmllcnMsCi0gICAgICAgIHN1cGVybm9kZSwgaW50ZXJmYWNlcywgY2xhc3NUb2tlbiwgc2VtaWNvbG9uKTsKLSAgfQotCi0gIHRyZWUuRW51bSBtYWtlRW51bShlbGVtZW50cy5FbnVtQ2xhc3NFbGVtZW50IGNscykgewotICAgIHJldHVybiBuZXcgdHJlZS5FbnVtKAotICAgICAgICBlbnVtVG9rZW4sCi0gICAgICAgIG1ha2VJZGVudGlmaWVyKGNscy5uYW1lKSwKLSAgICAgICAgbWFrZUxpc3QoJywnLCBjbHMuZW51bVZhbHVlcy5tYXAoKGUpID0+IG1ha2VJZGVudGlmaWVyKGUubmFtZSkpLAotICAgICAgICAgICAgb3Blbjogb3BlbkJyYWNlLCBjbG9zZTogY2xvc2VCcmFjZSkpOwotICB9Ci0KLSAgLy8vIENyZWF0ZXMgYSBbdHJlZS5DbGFzc05vZGVdIG5vZGUgZm9yIFtjbHNdLgotICB0cmVlLkNsYXNzTm9kZSBtYWtlQ2xhc3NOb2RlKGVsZW1lbnRzLkNsYXNzRWxlbWVudCBjbHMpIHsKLSAgICBhc3NlcnQoaW52YXJpYW50KGNscywgIWNscy5pc1VubmFtZWRNaXhpbkFwcGxpY2F0aW9uLAotICAgICAgICBtZXNzYWdlOiAiQ2Fubm90IGNyZWF0ZSBDbGFzc05vZGUgZm9yIHVubmFtZWQgbWl4aW4gYXBwbGljYXRpb24gIgotICAgICAgICAgICAgIiRjbHMuIikpOwotICAgIHRyZWUuTW9kaWZpZXJzIG1vZGlmaWVycyA9IG1ha2VNb2RpZmllcnMoaXNBYnN0cmFjdDogY2xzLmlzQWJzdHJhY3QpOwotICAgIHRyZWUuSWRlbnRpZmllciBuYW1lID0gbWFrZUlkZW50aWZpZXIoY2xzLm5hbWUpOwotICAgIHRyZWUuTm9kZUxpc3QgdHlwZVBhcmFtZXRlcnMgPSBtYWtlVHlwZVBhcmFtZXRlcnMoY2xzLnR5cGVWYXJpYWJsZXMpOwotICAgIHRyZWUuTm9kZSBzdXBlcm5vZGU7Ci0gICAgdHlwZXMuSW50ZXJmYWNlVHlwZSBzdXBlcnR5cGUgPSBjbHMuc3VwZXJ0eXBlOwotICAgIFNldDx0eXBlcy5EYXJ0VHlwZT4gbWl4aW5UeXBlcyA9IG5ldyBTZXQ8dHlwZXMuRGFydFR5cGU+KCk7Ci0gICAgTGluazx0cmVlLk5vZGU+IG1peGlucyA9IGNvbnN0IExpbms8dHJlZS5Ob2RlPigpOwotCi0gICAgdm9pZCBhZGRNaXhpbih0eXBlcy5EYXJ0VHlwZSBtaXhpblR5cGUpIHsKLSAgICAgIG1peGluVHlwZXMuYWRkKG1peGluVHlwZSk7Ci0gICAgICBtaXhpbnMgPSBtaXhpbnMucHJlcGVuZChtYWtlVHlwZShUeXBlR2VuZXJhdG9yLmNyZWF0ZVR5cGUobWl4aW5UeXBlKSkpOwotICAgIH0KLQotICAgIGlmIChzdXBlcnR5cGUgIT0gbnVsbCkgewotICAgICAgaWYgKHN1cGVydHlwZS5lbGVtZW50LmlzVW5uYW1lZE1peGluQXBwbGljYXRpb24pIHsKLSAgICAgICAgd2hpbGUgKHN1cGVydHlwZS5lbGVtZW50LmlzVW5uYW1lZE1peGluQXBwbGljYXRpb24pIHsKLSAgICAgICAgICBlbGVtZW50cy5NaXhpbkFwcGxpY2F0aW9uRWxlbWVudCBtaXhpbkFwcGxpY2F0aW9uID0gc3VwZXJ0eXBlLmVsZW1lbnQ7Ci0gICAgICAgICAgYWRkTWl4aW4oY2xzLmFzSW5zdGFuY2VPZihtaXhpbkFwcGxpY2F0aW9uLm1peGluKSk7Ci0gICAgICAgICAgc3VwZXJ0eXBlID0gbWl4aW5BcHBsaWNhdGlvbi5zdXBlcnR5cGU7Ci0gICAgICAgIH0KLSAgICAgICAgdHJlZS5Ob2RlIHN1cGVyY2xhc3MgPSBtYWtlVHlwZSgKLSAgICAgICAgICAgIFR5cGVHZW5lcmF0b3IuY3JlYXRlVHlwZShjbHMuYXNJbnN0YW5jZU9mKHN1cGVydHlwZS5lbGVtZW50KSkpOwotICAgICAgICBzdXBlcm5vZGUgPSBuZXcgdHJlZS5NaXhpbkFwcGxpY2F0aW9uKAotICAgICAgICAgICAgc3VwZXJjbGFzcywgbmV3IHRyZWUuTm9kZUxpc3QobnVsbCwgbWl4aW5zLCBudWxsLCAnLCcpKTsKLSAgICAgIH0gZWxzZSBpZiAoIXN1cGVydHlwZS5pc09iamVjdCkgewotICAgICAgICBzdXBlcm5vZGUgPSBtYWtlVHlwZShUeXBlR2VuZXJhdG9yLmNyZWF0ZVR5cGUoc3VwZXJ0eXBlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHRyZWUuTm9kZUxpc3QgaW50ZXJmYWNlcyA9IG1ha2VJbnRlcmZhY2VzKGNscy5pbnRlcmZhY2VzLCBtaXhpblR5cGVzKTsKLQotICAgIFRva2VuIGV4dGVuZHNLZXl3b3JkID0gc3VwZXJub2RlICE9IG51bGwgPyBleHRlbmRzVG9rZW4gOiBudWxsOwotICAgIHJldHVybiBuZXcgdHJlZS5DbGFzc05vZGUoCi0gICAgICAgIG1vZGlmaWVycywKLSAgICAgICAgbmFtZSwKLSAgICAgICAgdHlwZVBhcmFtZXRlcnMsCi0gICAgICAgIHN1cGVybm9kZSwKLSAgICAgICAgaW50ZXJmYWNlcywKLSAgICAgICAgb3BlbkJyYWNlLAotICAgICAgICBleHRlbmRzS2V5d29yZCwKLSAgICAgICAgbnVsbCwgLy8gTm8gYm9keS4KLSAgICAgICAgY2xvc2VCcmFjZSk7Ci0gIH0KLQotICB0cmVlLk5vZGUgY29uc3RydWN0b3JOYW1lKENvbnN0cnVjdG9yRGVmaW5pdGlvbiBleHApIHsKLSAgICBTdHJpbmcgbmFtZSA9IGV4cC5uYW1lOwotICAgIHRyZWUuSWRlbnRpZmllciBjbGFzc05hbWUgPSBtYWtlSWRlbnRpZmllcihleHAuZWxlbWVudC5lbmNsb3NpbmdDbGFzcy5uYW1lKTsKLSAgICB0cmVlLk5vZGUgcmVzdWx0ID0KLSAgICAgICAgbmFtZSA9PSAiIiA/IGNsYXNzTmFtZSA6IG5ldyB0cmVlLlNlbmQoY2xhc3NOYW1lLCBtYWtlSWRlbnRpZmllcihuYW1lKSk7Ci0gICAgc2V0RWxlbWVudChyZXN1bHQsIGV4cC5lbGVtZW50LCBleHApOwotICAgIHJldHVybiByZXN1bHQ7Ci0gIH0KLQotICB0cmVlLk5vZGUgZnVuY3Rpb25OYW1lKEZ1bmN0aW9uRXhwcmVzc2lvbiBleHApIHsKLSAgICBTdHJpbmcgbmFtZSA9IGV4cC5uYW1lOwotICAgIGlmIChuYW1lID09IG51bGwpIHJldHVybiBudWxsOwotICAgIGlmIChpc1VzZXJEZWZpbmFibGVPcGVyYXRvcihuYW1lKSkgewotICAgICAgcmV0dXJuIG1ha2VPcGVyYXRvcigib3BlcmF0b3IkbmFtZSIpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSAidW5hcnktIikgewotICAgICAgcmV0dXJuIG1ha2VPcGVyYXRvcigib3BlcmF0b3ItIik7Ci0gICAgfQotICAgIHJldHVybiBtYWtlSWRlbnRpZmllcihuYW1lKTsKLSAgfQotCi0gIHRyZWUuTm9kZSBwYXJlbnRoZXNpemUodHJlZS5Ob2RlIG5vZGUpIHsKLSAgICByZXR1cm4gbmV3IHRyZWUuUGFyZW50aGVzaXplZEV4cHJlc3Npb24obm9kZSwgb3BlblBhcmVuKTsKLSAgfQotCi0gIHRyZWUuTm9kZSB1bnBhcnNlU3RyaW5nTGl0ZXJhbChFeHByZXNzaW9uIGV4cCkgewotICAgIFN0cmluZ0xpdGVyYWxPdXRwdXQgb3V0cHV0ID0gVW5wYXJzZXIuYW5hbHl6ZVN0cmluZ0xpdGVyYWwoZXhwKTsKLSAgICBMaXN0IHBhcnRzID0gb3V0cHV0LnBhcnRzOwotICAgIHRyZWUuTm9kZSBwcmludFN0cmluZ0NodW5rKFN0cmluZ0NodW5rIGNodW5rKSB7Ci0gICAgICBib29sIHJhdyA9IGNodW5rLnF1b3RpbmcucmF3OwotICAgICAgaW50IHF1b3RlQ29kZSA9IGNodW5rLnF1b3RpbmcucXVvdGU7Ci0KLSAgICAgIExpc3Q8dHJlZS5TdHJpbmdJbnRlcnBvbGF0aW9uUGFydD4gbGl0ZXJhbFBhcnRzID0gW107Ci0gICAgICB0cmVlLkxpdGVyYWxTdHJpbmcgZmlyc3RMaXRlcmFsOwotICAgICAgdHJlZS5Ob2RlIGN1cnJlbnRJbnRlcnBvbGF0aW9uOwotCi0gICAgICAvLyBzYiBjb250YWlucyB0aGUgY3VycmVudCB1bmZpbmlzaGVkIExpdGVyYWxTdHJpbmcKLSAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKLSAgICAgIGlmIChyYXcpIHsKLSAgICAgICAgc2Iud3JpdGUoJ3InKTsKLSAgICAgIH0KLSAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2h1bmsucXVvdGluZy5sZWZ0UXVvdGVDaGFyQ291bnQ7IGkrKykgewotICAgICAgICBzYi53cml0ZShjaHVuay5xdW90aW5nLnF1b3RlQ2hhcik7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFByaW50IGV2ZXJ5IGNoYXJhY3RlciBhbmQgc3RyaW5nIGludGVycG9sYXRpb24KLSAgICAgIGludCBzdGFydEluZGV4ID0gY2h1bmsucHJldmlvdXMgIT0gbnVsbCA/IGNodW5rLnByZXZpb3VzLmVuZEluZGV4IDogMDsKLSAgICAgIGZvciAoaW50IGkgPSBzdGFydEluZGV4OyBpIDwgY2h1bmsuZW5kSW5kZXg7IGkrKykgewotICAgICAgICB2YXIgcGFydCA9IHBhcnRzW2ldOwotICAgICAgICBpZiAocGFydCBpcyBFeHByZXNzaW9uKSB7Ci0gICAgICAgICAgLy8gRmluaXNoIHRoZSBwcmV2aW91cyBzdHJpbmcgaW50ZXJwb2xhdGlvbiwgaWYgdGhlcmUgaXMgb25lLgotICAgICAgICAgIHRyZWUuTGl0ZXJhbFN0cmluZyBsaXQgPSBtYWtlVmVyYmF0aW1TdHJpbmdMaXRlcmFsKHNiLnRvU3RyaW5nKCkpOwotICAgICAgICAgIGlmIChjdXJyZW50SW50ZXJwb2xhdGlvbiAhPSBudWxsKSB7Ci0gICAgICAgICAgICBsaXRlcmFsUGFydHMuYWRkKAotICAgICAgICAgICAgICAgIG5ldyB0cmVlLlN0cmluZ0ludGVycG9sYXRpb25QYXJ0KGN1cnJlbnRJbnRlcnBvbGF0aW9uLCBsaXQpKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmlyc3RMaXRlcmFsID0gbGl0OwotICAgICAgICAgIH0KLSAgICAgICAgICBzYi5jbGVhcigpOwotICAgICAgICAgIGN1cnJlbnRJbnRlcnBvbGF0aW9uID0gbWFrZUV4cHJlc3Npb24ocGFydCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaW50IGNoYXIgPSBwYXJ0OwotICAgICAgICAgIHNiLndyaXRlKFVucGFyc2VyLmdldEVzY2FwZWRDaGFyYWN0ZXIoY2hhciwgcXVvdGVDb2RlLCByYXcpKTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAgICAvLyBQcmludCBlbmRpbmcgcXVvdGVzCi0gICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNodW5rLnF1b3RpbmcucmlnaHRRdW90ZUxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIHNiLndyaXRlKGNodW5rLnF1b3RpbmcucXVvdGVDaGFyKTsKLSAgICAgIH0KLQotICAgICAgLy8gRmluaXNoIHRoZSBwcmV2aW91cyBzdHJpbmcgaW50ZXJwb2xhdGlvbiwgaWYgdGhlcmUgaXMgb25lLgotICAgICAgLy8gVGhlbiB3cmFwIGV2ZXJ5dGhpbmcgaW4gYSBTdHJpbmdJbnRlcnBvbGF0aW9uLCBpZiByZWxldmFudC4KLSAgICAgIHRyZWUuTGl0ZXJhbFN0cmluZyBsaXQgPSBtYWtlVmVyYmF0aW1TdHJpbmdMaXRlcmFsKHNiLnRvU3RyaW5nKCkpOwotICAgICAgdHJlZS5Ob2RlIG5vZGU7Ci0gICAgICBpZiAoZmlyc3RMaXRlcmFsID09IG51bGwpIHsKLSAgICAgICAgbm9kZSA9IGxpdDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGxpdGVyYWxQYXJ0cwotICAgICAgICAgICAgLmFkZChuZXcgdHJlZS5TdHJpbmdJbnRlcnBvbGF0aW9uUGFydChjdXJyZW50SW50ZXJwb2xhdGlvbiwgbGl0KSk7Ci0gICAgICAgIG5vZGUgPSBuZXcgdHJlZS5TdHJpbmdJbnRlcnBvbGF0aW9uKAotICAgICAgICAgICAgZmlyc3RMaXRlcmFsLCBtYWtlTGlzdCgnJywgbGl0ZXJhbFBhcnRzKSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIEp1eHRhcG9zZSB3aXRoIHRoZSBwcmV2aW91cyBzdHJpbmcgY2h1bmtzLCBpZiBhbnkuCi0gICAgICBpZiAoY2h1bmsucHJldmlvdXMgIT0gbnVsbCkgewotICAgICAgICByZXR1cm4gbmV3IHRyZWUuU3RyaW5nSnV4dGFwb3NpdGlvbigKLSAgICAgICAgICAgIHByaW50U3RyaW5nQ2h1bmsoY2h1bmsucHJldmlvdXMpLCBub2RlKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcHJpbnRTdHJpbmdDaHVuayhvdXRwdXQuY2h1bmspOwotICB9Ci19CmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQgYi9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyOTA5MWYuLjAwMDAwMDAKLS0tIGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL2RhcnRfYmFja2VuZC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEyLCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1saWJyYXJ5IGRhcnRfYmFja2VuZDsKLQotaW1wb3J0ICdkYXJ0OmFzeW5jJyBzaG93IEZ1dHVyZTsKLWltcG9ydCAnZGFydDptYXRoJyBzaG93IG1heDsKLQotaW1wb3J0ICcuLi8uLi9jb21waWxlci5kYXJ0JyBzaG93IENvbXBpbGVyT3V0cHV0UHJvdmlkZXI7Ci1pbXBvcnQgJy4uL2NvbW1vbi5kYXJ0JzsKLWltcG9ydCAnLi4vY29tbW9uL2JhY2tlbmRfYXBpLmRhcnQnIHNob3cgQmFja2VuZCwgSW1wYWN0VHJhbnNmb3JtZXI7Ci1pbXBvcnQgJy4uL2NvbW1vbi9jb2RlZ2VuLmRhcnQnIHNob3cgQ29kZWdlbldvcmtJdGVtOwotaW1wb3J0ICcuLi9jb21tb24vbmFtZXMuZGFydCcgc2hvdyBTZWxlY3RvcnMsIFVyaXM7Ci1pbXBvcnQgJy4uL2NvbW1vbi9yZWdpc3RyeS5kYXJ0JyBzaG93IFJlZ2lzdHJ5OwotaW1wb3J0ICcuLi9jb21tb24vcmVzb2x1dGlvbi5kYXJ0JyBzaG93IFJlc29sdXRpb24sIFJlc29sdXRpb25JbXBhY3Q7Ci1pbXBvcnQgJy4uL2NvbW1vbi90YXNrcy5kYXJ0JyBzaG93IENvbXBpbGVyVGFzazsKLWltcG9ydCAnLi4vY29tcGlsZXIuZGFydCcgc2hvdyBDb21waWxlcjsKLWltcG9ydCAnLi4vY29tcGlsZV90aW1lX2NvbnN0YW50cy5kYXJ0JzsKLWltcG9ydCAnLi4vY29uc3RhbnRzL2NvbnN0YW50X3N5c3RlbS5kYXJ0JzsKLWltcG9ydCAnLi4vY29uc3RhbnRzL2V4cHJlc3Npb25zLmRhcnQnOwotaW1wb3J0ICcuLi9jb25zdGFudHMvdmFsdWVzLmRhcnQnOwotaW1wb3J0ICcuLi9kYXJ0X3R5cGVzLmRhcnQnOwotaW1wb3J0ICcuLi9lbGVtZW50cy9lbGVtZW50cy5kYXJ0JzsKLWltcG9ydCAnLi4vZW5xdWV1ZS5kYXJ0JyBzaG93IEVucXVldWVyLCBSZXNvbHV0aW9uRW5xdWV1ZXI7Ci1pbXBvcnQgJy4uL2xpYnJhcnlfbG9hZGVyLmRhcnQnIHNob3cgTG9hZGVkTGlicmFyaWVzOwotaW1wb3J0ICcuLi9taXJyb3JfcmVuYW1lci9taXJyb3JfcmVuYW1lci5kYXJ0JzsKLWltcG9ydCAnLi4vcmVzb2x1dGlvbi90cmVlX2VsZW1lbnRzLmRhcnQnIHNob3cgVHJlZUVsZW1lbnRzLCBUcmVlRWxlbWVudE1hcHBpbmc7Ci1pbXBvcnQgJy4uL3Rva2Vucy9rZXl3b3JkLmRhcnQnIHNob3cgS2V5d29yZDsKLWltcG9ydCAnLi4vdHJlZS90cmVlLmRhcnQnOwotaW1wb3J0ICcuLi91bml2ZXJzZS9zZWxlY3Rvci5kYXJ0JyBzaG93IFNlbGVjdG9yOwotaW1wb3J0ICcuLi91bml2ZXJzZS91c2UuZGFydCcgc2hvdyBEeW5hbWljVXNlLCBUeXBlVXNlLCBUeXBlVXNlS2luZDsKLWltcG9ydCAnLi4vdW5pdmVyc2Uvd29ybGRfaW1wYWN0LmRhcnQnIHNob3cgV29ybGRJbXBhY3QsIFRyYW5zZm9ybWVkV29ybGRJbXBhY3Q7Ci1pbXBvcnQgJy4uL3V0aWwvdXRpbC5kYXJ0JzsKLWltcG9ydCAnYmFja2VuZF9hc3RfdG9fZnJvbnRlbmRfYXN0LmRhcnQnIGFzIGJhY2tlbmQyZnJvbnRlbmQ7Ci0KLXBhcnQgJ2JhY2tlbmQuZGFydCc7Ci1wYXJ0ICdyZW5hbWVyLmRhcnQnOwotcGFydCAncGxhY2Vob2xkZXJfY29sbGVjdG9yLmRhcnQnOwotcGFydCAnb3V0cHV0dGVyLmRhcnQnOwpkaWZmIC0tZ2l0IGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL291dHB1dHRlci5kYXJ0IGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL291dHB1dHRlci5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTkwMjJhLi4wMDAwMDAwCi0tLSBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9vdXRwdXR0ZXIuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDU3NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTQsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLXBhcnQgb2YgZGFydF9iYWNrZW5kOwotCi10eXBlZGVmIGJvb2wgSXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zKAotICAgIE1hcDxDbGFzc0VsZW1lbnQsIEl0ZXJhYmxlPEVsZW1lbnQ+PiBjbGFzc01lbWJlcnMpOwotdHlwZWRlZiB2b2lkIEVsZW1lbnRDYWxsYmFjazxFPihFIGVsZW1lbnQpOwotdHlwZWRlZiB2b2lkIEVsZW1lbnRQb3N0UHJvY2Vzc0Z1bmN0aW9uKAotICAgIEFzdEVsZW1lbnQgZWxlbWVudCwKLSAgICBFbGVtZW50QXN0IGVsZW1lbnRBc3QsCi0gICAgRWxlbWVudENhbGxiYWNrPFR5cGVkZWZFbGVtZW50PiB0eXBlZGVmQ2FsbGJhY2ssCi0gICAgRWxlbWVudENhbGxiYWNrPENsYXNzRWxlbWVudD4gY2xhc3NDYWxsYmFjayk7Ci10eXBlZGVmIEVsZW1lbnRBc3QgQ29tcHV0ZUVsZW1lbnRBc3RGdW5jdGlvbihBc3RFbGVtZW50IGVsZW1lbnQpOwotdHlwZWRlZiBib29sIEVsZW1lbnRGaWx0ZXIoRWxlbWVudCBlbGVtZW50KTsKLXR5cGVkZWYgTGlzdDxFbGVtZW50PiBFbGVtZW50U29ydGVyKEl0ZXJhYmxlPEVsZW1lbnQ+IGVsZW1lbnRzKTsKLQotLy8vIE91dHB1dCBlbmdpbmUgZm9yIGRhcnQyZGFydCB0aGF0IGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBkYXJ0MmpzIGFuZCB0aGUKLS8vLyBhbmFseXplciBpbXBsZW1lbnRhdGlvbnMgb2YgZGFydDJkYXJ0LgotY2xhc3MgRGFydE91dHB1dHRlciB7Ci0gIGZpbmFsIERpYWdub3N0aWNSZXBvcnRlciByZXBvcnRlcjsKLSAgZmluYWwgQ29tcGlsZXJPdXRwdXRQcm92aWRlciBvdXRwdXRQcm92aWRlcjsKLSAgZmluYWwgYm9vbCBmb3JjZVN0cmlwVHlwZXM7Ci0KLSAgLy8gVE9ETyhhbnRvbm0pOiBtYWtlIGF2YWlsYWJsZSBmcm9tIGNvbW1hbmQtbGluZSBvcHRpb25zLgotICBmaW5hbCBib29sIG91dHB1dEFzdCA9IGZhbHNlOwotICBmaW5hbCBib29sIGVuYWJsZU1pbmlmaWNhdGlvbjsKLQotICAvLy8gSWYgYHRydWVgLCBsaWJyYXJpZXMgYXJlIGdlbmVyYXRlZCBpbnRvIHNlcGFyYXRlIGZpbGVzLgotICBmaW5hbCBib29sIG11bHRpRmlsZTsKLQotICAvLy8gSW50ZXJuYWwgc3RydWN0dXJlcyBhY2Nlc3NpYmxlIGZvciB0ZXN0cyBhbmQgbG9nZ2luZy4KLSAgLy8gVE9ETyhqb2hubml3aW50aGVyKTogQ2xlYW4gdGhpcyB1cC4KLSAgUGxhY2Vob2xkZXJSZW5hbWVyIHJlbmFtZXI7Ci0gIE1haW5PdXRwdXRHZW5lcmF0b3Igb3V0cHV0OwotICBMaWJyYXJ5SW5mbyBsaWJyYXJ5SW5mbzsKLSAgRWxlbWVudEluZm8gZWxlbWVudEluZm87Ci0KLSAgLy8gVE9ETyhqb2hubml3aW50aGVyKTogU3VwcG9ydCByZWNvbXBpbGF0aW9uLgotICBEYXJ0T3V0cHV0dGVyKHRoaXMucmVwb3J0ZXIsIHRoaXMub3V0cHV0UHJvdmlkZXIsCi0gICAgICB7Ym9vbCB0aGlzLmZvcmNlU3RyaXBUeXBlczogZmFsc2UsCi0gICAgICBib29sIHRoaXMuZW5hYmxlTWluaWZpY2F0aW9uOiBmYWxzZSwKLSAgICAgIGJvb2wgdGhpcy5tdWx0aUZpbGU6IGZhbHNlfSk7Ci0KLSAgLy8vIEdlbmVyYXRlIERhcnQgY29kZSBmb3IgdGhlIHByb2dyYW0gc3RhcnRpbmcgYXQgW21haW5GdW5jdGlvbl0uCi0gIC8vLwotICAvLy8gW2xpYnJhcmllc10gaXMgdGhlIHNldCBvZiBhbGwgbGlicmFyaWVzICh1c2VyL3BhY2thZ2Uvc2RrKSB0aGF0IGFyZQotICAvLy8gcmVmZXJlbmNlZCBpbiB0aGUgcHJvZ3JhbS4KLSAgLy8vCi0gIC8vLyBbaW5zdGFudGlhdGVkQ2xhc3Nlc10gaXMgdGhlIHNldCBvZiBjbGFzc2VzIHRoYXQgYXJlIHBvdGVudGlhbGx5Ci0gIC8vLyBpbnN0YW50aWF0ZWQgaW4gdGhlIHByb2dyYW0uCi0gIC8vLwotICAvLy8gW3Jlc29sdmVkRWxlbWVudHNdIGlzIHRoZSBzZXQgb2YgbWV0aG9kcywgY29uc3RydWN0b3JzLCBhbmQgZmllbGRzIHRoYXQKLSAgLy8vIGFyZSBwb3RlbnRpYWxseSBhY2Nlc3NlZC9jYWxsZWQgaW4gdGhlIHByb2dyYW0uCi0gIC8vLwotICAvLy8gVGhlIFtzb3J0RWxlbWVudHNdIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc29ydCBbaW5zdGFudGlhdGVkQ2xhc3Nlc10gYW5kCi0gIC8vLyBbcmVzb2x2ZWRFbGVtZW50c10gaW4gdGhlIGdlbmVyYXRlZCBvdXRwdXQuCi0gIC8vLwotICAvLy8gUmV0dXJucyB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUuCi0gIGludCBhc3NlbWJsZVByb2dyYW0oCi0gICAgICB7TWlycm9yUmVuYW1lciBtaXJyb3JSZW5hbWVyOiBjb25zdCBNaXJyb3JSZW5hbWVyKCksCi0gICAgICBJdGVyYWJsZTxMaWJyYXJ5RWxlbWVudD4gbGlicmFyaWVzLAotICAgICAgSXRlcmFibGU8RWxlbWVudD4gaW5zdGFudGlhdGVkQ2xhc3NlcywKLSAgICAgIEl0ZXJhYmxlPEVsZW1lbnQ+IHJlc29sdmVkRWxlbWVudHMsCi0gICAgICBJdGVyYWJsZTxDbGFzc0VsZW1lbnQ+IHVzZWRUeXBlTGl0ZXJhbHM6IGNvbnN0IDxDbGFzc0VsZW1lbnQ+W10sCi0gICAgICBGdW5jdGlvbkVsZW1lbnQgbWFpbkZ1bmN0aW9uLAotICAgICAgVXJpIG91dHB1dFVyaSwKLSAgICAgIEVsZW1lbnRQb3N0UHJvY2Vzc0Z1bmN0aW9uIHBvc3RQcm9jZXNzRWxlbWVudEFzdCwKLSAgICAgIENvbXB1dGVFbGVtZW50QXN0RnVuY3Rpb24gY29tcHV0ZUVsZW1lbnRBc3QsCi0gICAgICBFbGVtZW50RmlsdGVyIHNob3VsZE91dHB1dCwKLSAgICAgIElzU2FmZVRvUmVtb3ZlVHlwZURlY2xhcmF0aW9ucyBpc1NhZmVUb1JlbW92ZVR5cGVEZWNsYXJhdGlvbnMsCi0gICAgICBFbGVtZW50U29ydGVyIHNvcnRFbGVtZW50c30pIHsKLSAgICBhc3NlcnQoaW52YXJpYW50KE5PX0xPQ0FUSU9OX1NQQU5OQUJMRSwgbGlicmFyaWVzICE9IG51bGwsCi0gICAgICAgIG1lc3NhZ2U6ICInbGlicmFyaWVzJyBtdXN0IGJlIG5vbi1udWxsLiIpKTsKLSAgICBhc3NlcnQoaW52YXJpYW50KE5PX0xPQ0FUSU9OX1NQQU5OQUJMRSwgaW5zdGFudGlhdGVkQ2xhc3NlcyAhPSBudWxsLAotICAgICAgICBtZXNzYWdlOiAiJ2luc3RhbnRpYXRlZENsYXNzZXMnIG11c3QgYmUgbm9uLW51bGwuIikpOwotICAgIGFzc2VydChpbnZhcmlhbnQoTk9fTE9DQVRJT05fU1BBTk5BQkxFLCByZXNvbHZlZEVsZW1lbnRzICE9IG51bGwsCi0gICAgICAgIG1lc3NhZ2U6ICIncmVzb2x2ZWRFbGVtZW50cycgbXVzdCBiZSBub24tbnVsbC4iKSk7Ci0gICAgYXNzZXJ0KGludmFyaWFudChOT19MT0NBVElPTl9TUEFOTkFCTEUsIG1haW5GdW5jdGlvbiAhPSBudWxsLAotICAgICAgICBtZXNzYWdlOiAiJ21haW5GdW5jdGlvbicgbXVzdCBiZSBub24tbnVsbC4iKSk7Ci0gICAgYXNzZXJ0KGludmFyaWFudChOT19MT0NBVElPTl9TUEFOTkFCTEUsIGNvbXB1dGVFbGVtZW50QXN0ICE9IG51bGwsCi0gICAgICAgIG1lc3NhZ2U6ICInY29tcHV0ZUVsZW1lbnRBc3QnIG11c3QgYmUgbm9uLW51bGwuIikpOwotICAgIGFzc2VydChpbnZhcmlhbnQoTk9fTE9DQVRJT05fU1BBTk5BQkxFLCBzaG91bGRPdXRwdXQgIT0gbnVsbCwKLSAgICAgICAgbWVzc2FnZTogIidzaG91bGRPdXRwdXQnIG11c3QgYmUgbm9uLW51bGwuIikpOwotICAgIGFzc2VydChpbnZhcmlhbnQoCi0gICAgICAgIE5PX0xPQ0FUSU9OX1NQQU5OQUJMRSwgaXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zICE9IG51bGwsCi0gICAgICAgIG1lc3NhZ2U6ICInaXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zJyBtdXN0IGJlIG5vbi1udWxsLiIpKTsKLQotICAgIGlmIChzb3J0RWxlbWVudHMgPT0gbnVsbCkgewotICAgICAgLy8gRW5zdXJlIGRldGVybWluaXN0aWMgb3V0cHV0IG9yZGVyLgotICAgICAgc29ydEVsZW1lbnRzID0gKEl0ZXJhYmxlPEVsZW1lbnQ+IGVsZW1lbnRzKSB7Ci0gICAgICAgIExpc3Q8RWxlbWVudD4gbGlzdCA9IGVsZW1lbnRzLnRvTGlzdCgpOwotICAgICAgICBsaXN0LnNvcnQoKEVsZW1lbnQgYSwgRWxlbWVudCBiKSA9PiBhLm5hbWUuY29tcGFyZVRvKGIubmFtZSkpOwotICAgICAgICByZXR1cm4gbGlzdDsKLSAgICAgIH07Ci0gICAgfQotCi0gICAgbGlicmFyeUluZm8gPQotICAgICAgICBMaWJyYXJ5SW5mby5wcm9jZXNzTGlicmFyaWVzKHJlcG9ydGVyLCBsaWJyYXJpZXMsIHJlc29sdmVkRWxlbWVudHMpOwotCi0gICAgZWxlbWVudEluZm8gPSBFbGVtZW50SW5mb1Byb2Nlc3Nvci5jcmVhdGVFbGVtZW50SW5mbygKLSAgICAgICAgaW5zdGFudGlhdGVkQ2xhc3NlcywgcmVzb2x2ZWRFbGVtZW50cywgdXNlZFR5cGVMaXRlcmFscywKLSAgICAgICAgcG9zdFByb2Nlc3NFbGVtZW50QXN0OiBwb3N0UHJvY2Vzc0VsZW1lbnRBc3QsCi0gICAgICAgIHBhcnNlRWxlbWVudEFzdDogY29tcHV0ZUVsZW1lbnRBc3QsCi0gICAgICAgIHNob3VsZE91dHB1dDogc2hvdWxkT3V0cHV0LAotICAgICAgICBzb3J0RWxlbWVudHM6IHNvcnRFbGVtZW50cyk7Ci0KLSAgICBQbGFjZWhvbGRlckNvbGxlY3RvciBjb2xsZWN0b3IgPSBjb2xsZWN0UGxhY2Vob2xkZXJzKAotICAgICAgICByZXBvcnRlciwgbWlycm9yUmVuYW1lciwgbWFpbkZ1bmN0aW9uLCBsaWJyYXJ5SW5mbywgZWxlbWVudEluZm8pOwotCi0gICAgcmVuYW1lciA9IGNyZWF0ZVJlbmFtZXIoY29sbGVjdG9yLCBsaWJyYXJ5SW5mbywgZWxlbWVudEluZm8sCi0gICAgICAgIGVuYWJsZU1pbmlmaWNhdGlvbjogZW5hYmxlTWluaWZpY2F0aW9uLAotICAgICAgICBmb3JjZVN0cmlwVHlwZXM6IGZvcmNlU3RyaXBUeXBlcywKLSAgICAgICAgaXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zOiBpc1NhZmVUb1JlbW92ZVR5cGVEZWNsYXJhdGlvbnMpOwotCi0gICAgaWYgKG91dHB1dEFzdCkgewotICAgICAgU3RyaW5nIGNvZGUgPSBhc3RPdXRwdXQocmVwb3J0ZXIsIGVsZW1lbnRJbmZvKTsKLSAgICAgIG91dHB1dFByb3ZpZGVyKCIiLCAiZGFydCIpCi0gICAgICAgIC4uYWRkKGNvZGUpCi0gICAgICAgIC4uY2xvc2UoKTsKLSAgICAgIHJldHVybiBjb2RlLmxlbmd0aDsKLSAgICB9IGVsc2UgewotICAgICAgb3V0cHV0ID0gbmV3IE1haW5PdXRwdXRHZW5lcmF0b3IoKTsKLSAgICAgIHJldHVybiBvdXRwdXQuZ2VuZXJhdGVDb2RlKGxpYnJhcnlJbmZvLCBlbGVtZW50SW5mbywgY29sbGVjdG9yLCByZW5hbWVyLAotICAgICAgICAgIG1haW5GdW5jdGlvbiwgb3V0cHV0VXJpLCBvdXRwdXRQcm92aWRlciwgbWlycm9yUmVuYW1lciwKLSAgICAgICAgICBtdWx0aUZpbGU6IG11bHRpRmlsZSwKLSAgICAgICAgICBmb3JjZVN0cmlwVHlwZXM6IGZvcmNlU3RyaXBUeXBlcywKLSAgICAgICAgICBlbmFibGVNaW5pZmljYXRpb246IGVuYWJsZU1pbmlmaWNhdGlvbik7Ci0gICAgfQotICB9Ci0KLSAgc3RhdGljIFBsYWNlaG9sZGVyQ29sbGVjdG9yIGNvbGxlY3RQbGFjZWhvbGRlcnMoCi0gICAgICBEaWFnbm9zdGljUmVwb3J0ZXIgcmVwb3J0ZXIsCi0gICAgICBNaXJyb3JSZW5hbWVyIG1pcnJvclJlbmFtZXIsCi0gICAgICBGdW5jdGlvbkVsZW1lbnQgbWFpbkZ1bmN0aW9uLAotICAgICAgTGlicmFyeUluZm8gbGlicmFyeUluZm8sCi0gICAgICBFbGVtZW50SW5mbyBlbGVtZW50SW5mbykgewotICAgIC8vIENyZWF0ZSBhbGwgbmVjZXNzYXJ5IHBsYWNlaG9sZGVycy4KLSAgICBQbGFjZWhvbGRlckNvbGxlY3RvciBjb2xsZWN0b3IgPSBuZXcgUGxhY2Vob2xkZXJDb2xsZWN0b3IoCi0gICAgICAgIHJlcG9ydGVyLAotICAgICAgICBtaXJyb3JSZW5hbWVyLAotICAgICAgICBsaWJyYXJ5SW5mby5maXhlZER5bmFtaWNOYW1lcywKLSAgICAgICAgZWxlbWVudEluZm8uZWxlbWVudEFzdHMsCi0gICAgICAgIG1haW5GdW5jdGlvbik7Ci0KLSAgICBtYWtlUGxhY2Vob2xkZXJzKGVsZW1lbnQpIHsKLSAgICAgIGNvbGxlY3Rvci5jb2xsZWN0KGVsZW1lbnQpOwotCi0gICAgICBpZiAoZWxlbWVudC5pc0NsYXNzICYmICFlbGVtZW50LmlzRW51bUNsYXNzKSB7Ci0gICAgICAgIGVsZW1lbnRJbmZvLmNsYXNzTWVtYmVyc1tlbGVtZW50XS5mb3JFYWNoKG1ha2VQbGFjZWhvbGRlcnMpOwotICAgICAgfQotICAgIH0KLSAgICBlbGVtZW50SW5mby50b3BMZXZlbEVsZW1lbnRzLmZvckVhY2gobWFrZVBsYWNlaG9sZGVycyk7Ci0gICAgcmV0dXJuIGNvbGxlY3RvcjsKLSAgfQotCi0gIHN0YXRpYyBQbGFjZWhvbGRlclJlbmFtZXIgY3JlYXRlUmVuYW1lcihQbGFjZWhvbGRlckNvbGxlY3RvciBjb2xsZWN0b3IsCi0gICAgICBMaWJyYXJ5SW5mbyBsaWJyYXJ5SW5mbywgRWxlbWVudEluZm8gZWxlbWVudEluZm8sCi0gICAgICB7Ym9vbCBlbmFibGVNaW5pZmljYXRpb246IGZhbHNlLAotICAgICAgYm9vbCBmb3JjZVN0cmlwVHlwZXM6IGZhbHNlLAotICAgICAgaXNTYWZlVG9SZW1vdmVUeXBlRGVjbGFyYXRpb25zfSkgewotICAgIC8vIENyZWF0ZSByZW5hbWVzLgotICAgIGJvb2wgc2hvdWxkQ3V0RGVjbGFyYXRpb25UeXBlcyA9IGZvcmNlU3RyaXBUeXBlcyB8fAotICAgICAgICAoZW5hYmxlTWluaWZpY2F0aW9uICYmCi0gICAgICAgICAgICBpc1NhZmVUb1JlbW92ZVR5cGVEZWNsYXJhdGlvbnMoZWxlbWVudEluZm8uY2xhc3NNZW1iZXJzKSk7Ci0KLSAgICBQbGFjZWhvbGRlclJlbmFtZXIgcGxhY2Vob2xkZXJSZW5hbWVyID0gbmV3IFBsYWNlaG9sZGVyUmVuYW1lcigKLSAgICAgICAgbGlicmFyeUluZm8uZml4ZWREeW5hbWljTmFtZXMsCi0gICAgICAgIGxpYnJhcnlJbmZvLmZpeGVkU3RhdGljTmFtZXMsCi0gICAgICAgIGxpYnJhcnlJbmZvLnJlZXhwb3J0aW5nTGlicmFyaWVzLAotICAgICAgICBjdXREZWNsYXJhdGlvblR5cGVzOiBzaG91bGRDdXREZWNsYXJhdGlvblR5cGVzLAotICAgICAgICBlbmFibGVNaW5pZmljYXRpb246IGVuYWJsZU1pbmlmaWNhdGlvbik7Ci0KLSAgICBwbGFjZWhvbGRlclJlbmFtZXIuY29tcHV0ZVJlbmFtZXMoY29sbGVjdG9yKTsKLSAgICByZXR1cm4gcGxhY2Vob2xkZXJSZW5hbWVyOwotICB9Ci0KLSAgc3RhdGljIFN0cmluZyBhc3RPdXRwdXQoCi0gICAgICBEaWFnbm9zdGljUmVwb3J0ZXIgcmVwb3J0ZXIsIEVsZW1lbnRJbmZvIGVsZW1lbnRJbmZvKSB7Ci0gICAgLy8gVE9ETyhhbnRvbm0pOiBJZGVhbGx5IFhNTCBzaG91bGQgYmUgYSBzZXBhcmF0ZSBiYWNrZW5kLgotICAgIC8vIFRPRE8oYW50b25tKTogb2JleSByZW5hbWVzIGFuZCBtaW5pZmljYXRpb24sIGF0IGxlYXN0IGFzIGFuIG9wdGlvbi4KLSAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7Ci0gICAgb3V0cHV0RWxlbWVudChlbGVtZW50KSB7Ci0gICAgICBzYi53cml0ZShlbGVtZW50LnBhcnNlTm9kZShyZXBvcnRlcikudG9EZWJ1Z1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICAvLyBFbWl0IFhNTCBmb3IgQVNUIGluc3RlYWQgb2YgdGhlIHByb2dyYW0uCi0gICAgZm9yIChFbGVtZW50IHRvcExldmVsIGluIGVsZW1lbnRJbmZvLnRvcExldmVsRWxlbWVudHMpIHsKLSAgICAgIGlmICh0b3BMZXZlbC5pc0NsYXNzICYmCi0gICAgICAgICAgIWVsZW1lbnRJbmZvLmVtaXROb01lbWJlcnNGb3IuY29udGFpbnModG9wTGV2ZWwpKSB7Ci0gICAgICAgIC8vIFRPRE8oYW50b25tKTogYWRkIHNvbWUgY2xhc3MgaW5mby4KLSAgICAgICAgZWxlbWVudEluZm8uY2xhc3NNZW1iZXJzW3RvcExldmVsXS5mb3JFYWNoKG91dHB1dEVsZW1lbnQpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgb3V0cHV0RWxlbWVudCh0b3BMZXZlbCk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVybiAnPFByb2dyYW0+XG4kc2I8L1Byb2dyYW0+XG4nOwotICB9Ci19Ci0KLWNsYXNzIExpYnJhcnlJbmZvIHsKLSAgZmluYWwgU2V0PFN0cmluZz4gZml4ZWRTdGF0aWNOYW1lczsKLSAgZmluYWwgU2V0PFN0cmluZz4gZml4ZWREeW5hbWljTmFtZXM7Ci0gIGZpbmFsIE1hcDxFbGVtZW50LCBMaWJyYXJ5RWxlbWVudD4gcmVleHBvcnRpbmdMaWJyYXJpZXM7Ci0gIGZpbmFsIExpc3Q8TGlicmFyeUVsZW1lbnQ+IHVzZXJMaWJyYXJpZXM7Ci0KLSAgTGlicmFyeUluZm8odGhpcy5maXhlZFN0YXRpY05hbWVzLCB0aGlzLmZpeGVkRHluYW1pY05hbWVzLAotICAgICAgdGhpcy5yZWV4cG9ydGluZ0xpYnJhcmllcywgdGhpcy51c2VyTGlicmFyaWVzKTsKLQotICBzdGF0aWMgTGlicmFyeUluZm8gcHJvY2Vzc0xpYnJhcmllcygKLSAgICAgIERpYWdub3N0aWNSZXBvcnRlciByZXBvcnRlciwKLSAgICAgIEl0ZXJhYmxlPExpYnJhcnlFbGVtZW50PiBsaWJyYXJpZXMsCi0gICAgICBJdGVyYWJsZTxBc3RFbGVtZW50PiByZXNvbHZlZEVsZW1lbnRzKSB7Ci0gICAgU2V0PFN0cmluZz4gZml4ZWRTdGF0aWNOYW1lcyA9IG5ldyBTZXQ8U3RyaW5nPigpOwotICAgIFNldDxTdHJpbmc+IGZpeGVkRHluYW1pY05hbWVzID0gbmV3IFNldDxTdHJpbmc+KCk7Ci0gICAgTWFwPEVsZW1lbnQsIExpYnJhcnlFbGVtZW50PiByZWV4cG9ydGluZ0xpYnJhcmllcyA9Ci0gICAgICAgIDxFbGVtZW50LCBMaWJyYXJ5RWxlbWVudD57fTsKLSAgICBMaXN0PExpYnJhcnlFbGVtZW50PiB1c2VyTGlicmFyaWVzID0gPExpYnJhcnlFbGVtZW50PltdOwotICAgIC8vIENvbnNlcnZhdGl2ZWx5IHRyYXZlcnNlIGFsbCBwbGF0Zm9ybSBsaWJyYXJpZXMgYW5kIGNvbGxlY3QgbWVtYmVyIG5hbWVzLgotICAgIC8vIFRPRE8oYW50b25tKTogaWRlYWxseSB3ZSBzaG91bGQgb25seSBjb2xsZWN0IG5hbWVzIG9mIHVzZWQgbWVtYmVycywKLSAgICAvLyBob3dldmVyIGFzIG9mIHRvZGF5IHRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIG5hbWVzIG9mIHNvbWUgY29yZSBsaWJyYXJ5Ci0gICAgLy8gaW50ZXJmYWNlcywgbW9zdCBwcm9iYWJseSBmb3IgaW50ZXJmYWNlcyBvZiBsaXRlcmFscy4KLQotICAgIGZvciAoTGlicmFyeUVsZW1lbnQgbGlicmFyeSBpbiBsaWJyYXJpZXMpIHsKLSAgICAgIGlmICghbGlicmFyeS5pc1BsYXRmb3JtTGlicmFyeSkgewotICAgICAgICB1c2VyTGlicmFyaWVzLmFkZChsaWJyYXJ5KTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICBsaWJyYXJ5LmZvckVhY2hMb2NhbE1lbWJlcigoRWxlbWVudCBlbGVtZW50KSB7Ci0gICAgICAgIGlmIChlbGVtZW50LmlzQ2xhc3MpIHsKLSAgICAgICAgICBDbGFzc0VsZW1lbnQgY2xhc3NFbGVtZW50ID0gZWxlbWVudDsKLSAgICAgICAgICBhc3NlcnQoaW52YXJpYW50KGNsYXNzRWxlbWVudCwgY2xhc3NFbGVtZW50LmlzUmVzb2x2ZWQsCi0gICAgICAgICAgICAgIG1lc3NhZ2U6ICJVbnJlc29sdmVkIHBsYXRmb3JtIGNsYXNzLiIpKTsKLSAgICAgICAgICBjbGFzc0VsZW1lbnQuZm9yRWFjaExvY2FsTWVtYmVyKChtZW1iZXIpIHsKLSAgICAgICAgICAgIGlmIChtZW1iZXIuaXNJbnN0YW5jZU1lbWJlcikgewotICAgICAgICAgICAgICBmaXhlZER5bmFtaWNOYW1lcy5hZGQobWVtYmVyLm5hbWUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgZml4ZWRTdGF0aWNOYW1lcy5hZGQobWVtYmVyLm5hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIC8vIEV2ZW4gY2xhc3MgbmFtZXMgYXJlIGFkZGVkIGR1ZSB0byBhIGRlbGljYXRlIHByb2JsZW0gd2UgaGF2ZToKLSAgICAgICAgLy8gaWYgb25lIGltcG9ydHMgZGFydDpjb3JlIHdpdGggYSBwcmVmaXgsIHdlIGNhbm5vdCB0ZWxsIHByZWZpeC5uYW1lCi0gICAgICAgIC8vIGZyb20gZHluYW1pYyBpbnZvY2F0aW9uIChhbGFzISkuICBTbyB3ZSdkIGJldHRlciBlcnIgb24gcHJlc2VydmluZwotICAgICAgICAvLyB0aG9zZSBuYW1lcy4KLSAgICAgICAgZml4ZWRTdGF0aWNOYW1lcy5hZGQoZWxlbWVudC5uYW1lKTsKLSAgICAgIH0pOwotCi0gICAgICBsaWJyYXJ5LmZvckVhY2hFeHBvcnQoKEVsZW1lbnQgZXhwb3J0KSB7Ci0gICAgICAgIGlmICghbGlicmFyeS5pc0ludGVybmFsTGlicmFyeSAmJiBleHBvcnQubGlicmFyeS5pc0ludGVybmFsTGlicmFyeSkgewotICAgICAgICAgIC8vIElmIGFuIGVsZW1lbnQgb2YgYW4gaW50ZXJuYWwgbGlicmFyeSBpcyByZWV4cG9ydGVkIGJ5IGEgcGxhdGZvcm0KLSAgICAgICAgICAvLyBsaWJyYXJ5LCB3ZSBoYXZlIHRvIGltcG9ydCB0aGUgcmVleHBvcnRpbmcgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZQotICAgICAgICAgIC8vIGludGVybmFsIGxpYnJhcnksIGJlY2F1c2UgdGhlIGludGVybmFsIGxpYnJhcnkgaXMgYW4KLSAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgZGFydDJqcy4KLSAgICAgICAgICByZWV4cG9ydGluZ0xpYnJhcmllc1tleHBvcnRdID0gbGlicmFyeTsKLSAgICAgICAgfQotICAgICAgfSk7Ci0gICAgfQotCi0gICAgLy8gTWFwIHRvIGtlZXAgdHJhY2sgb2YgbmFtZXMgb2YgZW51bSBjbGFzc2VzLiBTaW5jZSB0aGVzZSBjYW5ub3QgYmUgcmVuYW1lZAotICAgIC8vIHdlIGVuc3VyZSB0aGF0IHRoZXkgYXJlIHVuaXF1ZS4KLSAgICBNYXA8U3RyaW5nLCBDbGFzc0VsZW1lbnQ+IGVudW1DbGFzc01hcCA9IDxTdHJpbmcsIENsYXNzRWxlbWVudD57fTsKLQotICAgIC8vIEFzIG9mIG5vdyBuYW1lcyBvZiBuYW1lZCBvcHRpb25hbHMgYXJlIG5vdCByZW5hbWVkLiBUaGVyZWZvcmUgYWRkIGFsbAotICAgIC8vIGZpZWxkIG5hbWVzIHVzZWQgYXMgbmFtZWQgb3B0aW9uYWxzIGludG8gW2ZpeGVkTWVtYmVyTmFtZXNdLgotICAgIGZvciAoZmluYWwgZWxlbWVudCBpbiByZXNvbHZlZEVsZW1lbnRzKSB7Ci0gICAgICBpZiAoIWVsZW1lbnQuaXNDb25zdHJ1Y3RvcikgY29udGludWU7Ci0gICAgICBmb3IgKFBhcmFtZXRlckVsZW1lbnQgcGFyYW1ldGVyIGluIGVsZW1lbnQucGFyYW1ldGVycykgewotICAgICAgICBpZiAocGFyYW1ldGVyLmlzSW5pdGlhbGl6aW5nRm9ybWFsICYmIHBhcmFtZXRlci5pc05hbWVkKSB7Ci0gICAgICAgICAgZml4ZWREeW5hbWljTmFtZXMuYWRkKHBhcmFtZXRlci5uYW1lKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgQ2xhc3NFbGVtZW50IGNscyA9IGVsZW1lbnQuZW5jbG9zaW5nQ2xhc3M7Ci0gICAgICBpZiAoY2xzICE9IG51bGwgJiYgY2xzLmlzRW51bUNsYXNzKSB7Ci0gICAgICAgIGZpeGVkRHluYW1pY05hbWVzLmFkZCgnaW5kZXgnKTsKLQotICAgICAgICBDbGFzc0VsZW1lbnQgZXhpc3RpbmdFbnVtQ2xhc3MgPQotICAgICAgICAgICAgZW51bUNsYXNzTWFwLnB1dElmQWJzZW50KGNscy5uYW1lLCAoKSA9PiBjbHMpOwotICAgICAgICBpZiAoZXhpc3RpbmdFbnVtQ2xhc3MgIT0gY2xzKSB7Ci0gICAgICAgICAgcmVwb3J0ZXIucmVwb3J0RXJyb3IoCi0gICAgICAgICAgICAgIHJlcG9ydGVyLmNyZWF0ZU1lc3NhZ2UoY2xzLCBNZXNzYWdlS2luZC5HRU5FUklDLCB7Ci0gICAgICAgICAgICAgICAgJ3RleHQnOiAiRHVwbGljYXRlIGVudW0gbmFtZXMgYXJlIG5vdCBzdXBwb3J0ZWQgIgotICAgICAgICAgICAgICAgICAgICAiaW4gZGFydDJkYXJ0LiIKLSAgICAgICAgICAgICAgfSksCi0gICAgICAgICAgICAgIDxEaWFnbm9zdGljTWVzc2FnZT5bCi0gICAgICAgICAgICAgICAgcmVwb3J0ZXIuY3JlYXRlTWVzc2FnZShleGlzdGluZ0VudW1DbGFzcywgTWVzc2FnZUtpbmQuR0VORVJJQywgewotICAgICAgICAgICAgICAgICAgJ3RleHQnOiAiVGhpcyBpcyB0aGUgb3RoZXIgZGVjbGFyYXRpb24gb2YgJyR7Y2xzLm5hbWV9Jy4iCi0gICAgICAgICAgICAgICAgfSksCi0gICAgICAgICAgICAgIF0pOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotCi0gICAgZml4ZWRTdGF0aWNOYW1lcy5hZGRBbGwoZW51bUNsYXNzTWFwLmtleXMpOwotCi0gICAgLy8gVGhlIFZNIHdpbGwgYXV0b21hdGljYWxseSBpbnZva2UgdGhlIGNhbGwgbWV0aG9kIG9mIG9iamVjdHMKLSAgICAvLyB0aGF0IGFyZSBpbnZva2VkIGFzIGZ1bmN0aW9ucy4gTWFrZSBzdXJlIHRvIG5vdCByZW5hbWUgdGhhdC4KLSAgICBmaXhlZER5bmFtaWNOYW1lcy5hZGQoJ2NhbGwnKTsKLQotICAgIHJldHVybiBuZXcgTGlicmFyeUluZm8oZml4ZWRTdGF0aWNOYW1lcywgZml4ZWREeW5hbWljTmFtZXMsCi0gICAgICAgIHJlZXhwb3J0aW5nTGlicmFyaWVzLCB1c2VyTGlicmFyaWVzKTsKLSAgfQotfQotCi1jbGFzcyBFbGVtZW50SW5mbyB7Ci0gIGZpbmFsIE1hcDxFbGVtZW50LCBFbGVtZW50QXN0PiBlbGVtZW50QXN0czsKLSAgZmluYWwgSXRlcmFibGU8RWxlbWVudD4gdG9wTGV2ZWxFbGVtZW50czsKLSAgZmluYWwgTWFwPENsYXNzRWxlbWVudCwgSXRlcmFibGU8RWxlbWVudD4+IGNsYXNzTWVtYmVyczsKLSAgZmluYWwgSXRlcmFibGU8Q2xhc3NFbGVtZW50PiBlbWl0Tm9NZW1iZXJzRm9yOwotCi0gIEVsZW1lbnRJbmZvKHRoaXMuZWxlbWVudEFzdHMsIHRoaXMudG9wTGV2ZWxFbGVtZW50cywgdGhpcy5jbGFzc01lbWJlcnMsCi0gICAgICB0aGlzLmVtaXROb01lbWJlcnNGb3IpOwotfQotCi1jbGFzcyBFbGVtZW50SW5mb1Byb2Nlc3NvciBpbXBsZW1lbnRzIEVsZW1lbnRJbmZvIHsKLSAgZmluYWwgTWFwPEVsZW1lbnQsIEVsZW1lbnRBc3Q+IGVsZW1lbnRBc3RzID0gbmV3IE1hcDxFbGVtZW50LCBFbGVtZW50QXN0PigpOwotICBmaW5hbCBTZXQ8RWxlbWVudD4gdG9wTGV2ZWxFbGVtZW50cyA9IG5ldyBTZXQ8RWxlbWVudD4oKTsKLSAgZmluYWwgTWFwPENsYXNzRWxlbWVudCwgU2V0PEVsZW1lbnQ+PiBjbGFzc01lbWJlcnMgPQotICAgICAgbmV3IE1hcDxDbGFzc0VsZW1lbnQsIFNldDxFbGVtZW50Pj4oKTsKLSAgZmluYWwgU2V0PENsYXNzRWxlbWVudD4gZW1pdE5vTWVtYmVyc0ZvciA9IG5ldyBTZXQ8Q2xhc3NFbGVtZW50PigpOwotICBmaW5hbCBFbGVtZW50UG9zdFByb2Nlc3NGdW5jdGlvbiBwb3N0UHJvY2Vzc0VsZW1lbnRBc3Q7Ci0gIGZpbmFsIENvbXB1dGVFbGVtZW50QXN0RnVuY3Rpb24gcGFyc2VFbGVtZW50QXN0OwotICBmaW5hbCBFbGVtZW50RmlsdGVyIHNob3VsZE91dHB1dDsKLQotICBFbGVtZW50SW5mb1Byb2Nlc3NvcigKLSAgICAgIHt0aGlzLnBvc3RQcm9jZXNzRWxlbWVudEFzdCwgdGhpcy5wYXJzZUVsZW1lbnRBc3QsIHRoaXMuc2hvdWxkT3V0cHV0fSk7Ci0KLSAgc3RhdGljIEVsZW1lbnRJbmZvIGNyZWF0ZUVsZW1lbnRJbmZvKAotICAgICAgSXRlcmFibGU8Q2xhc3NFbGVtZW50PiBpbnN0YW50aWF0ZWRDbGFzc2VzLAotICAgICAgSXRlcmFibGU8QXN0RWxlbWVudD4gcmVzb2x2ZWRFbGVtZW50cywKLSAgICAgIEl0ZXJhYmxlPENsYXNzRWxlbWVudD4gdXNlZFR5cGVMaXRlcmFscywKLSAgICAgIHtFbGVtZW50UG9zdFByb2Nlc3NGdW5jdGlvbiBwb3N0UHJvY2Vzc0VsZW1lbnRBc3QsCi0gICAgICBDb21wdXRlRWxlbWVudEFzdEZ1bmN0aW9uIHBhcnNlRWxlbWVudEFzdCwKLSAgICAgIEVsZW1lbnRGaWx0ZXIgc2hvdWxkT3V0cHV0LAotICAgICAgRWxlbWVudFNvcnRlciBzb3J0RWxlbWVudHN9KSB7Ci0gICAgRWxlbWVudEluZm9Qcm9jZXNzb3IgcHJvY2Vzc29yID0gbmV3IEVsZW1lbnRJbmZvUHJvY2Vzc29yKAotICAgICAgICBwb3N0UHJvY2Vzc0VsZW1lbnRBc3Q6IHBvc3RQcm9jZXNzRWxlbWVudEFzdCwKLSAgICAgICAgcGFyc2VFbGVtZW50QXN0OiBwYXJzZUVsZW1lbnRBc3QsCi0gICAgICAgIHNob3VsZE91dHB1dDogc2hvdWxkT3V0cHV0KTsKLSAgICByZXR1cm4gcHJvY2Vzc29yLnByb2Nlc3MoCi0gICAgICAgIGluc3RhbnRpYXRlZENsYXNzZXMsIHJlc29sdmVkRWxlbWVudHMsIHVzZWRUeXBlTGl0ZXJhbHMsCi0gICAgICAgIHNvcnRFbGVtZW50czogc29ydEVsZW1lbnRzKTsKLSAgfQotCi0gIEVsZW1lbnRJbmZvIHByb2Nlc3MoCi0gICAgICBJdGVyYWJsZTxDbGFzc0VsZW1lbnQ+IGluc3RhbnRpYXRlZENsYXNzZXMsCi0gICAgICBJdGVyYWJsZTxBc3RFbGVtZW50PiByZXNvbHZlZEVsZW1lbnRzLAotICAgICAgSXRlcmFibGU8Q2xhc3NFbGVtZW50PiB1c2VkVHlwZUxpdGVyYWxzLAotICAgICAge0VsZW1lbnRTb3J0ZXIgc29ydEVsZW1lbnRzfSkgewotICAgIC8vIEJ1aWxkIGFsbCB0b3AgbGV2ZWwgZWxlbWVudHMgdG8gZW1pdCBhbmQgbmVjZXNzYXJ5IGNsYXNzIG1lbWJlcnMuCi0gICAgaW5zdGFudGlhdGVkQ2xhc3Nlcy53aGVyZShzaG91bGRPdXRwdXQpLmZvckVhY2goYWRkQ2xhc3MpOwotICAgIHJlc29sdmVkRWxlbWVudHMud2hlcmUoc2hvdWxkT3V0cHV0KS5mb3JFYWNoKGFkZE1lbWJlcik7Ci0gICAgdXNlZFR5cGVMaXRlcmFscy5mb3JFYWNoKChDbGFzc0VsZW1lbnQgZWxlbWVudCkgewotICAgICAgaWYgKHNob3VsZE91dHB1dChlbGVtZW50KSkgewotICAgICAgICBpZiAoIXRvcExldmVsRWxlbWVudHMuY29udGFpbnMoZWxlbWVudCkpIHsKLSAgICAgICAgICAvLyBUaGUgY2xhc3MgaXMgb25seSByZWZlcmVuY2VkIGJ5IHR5cGUgbGl0ZXJhbHMuCi0gICAgICAgICAgZW1pdE5vTWVtYmVyc0Zvci5hZGQoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgYWRkQ2xhc3MoZWxlbWVudCk7Ci0gICAgICB9Ci0gICAgfSk7Ci0KLSAgICAvLyBTb3J0IGVsZW1lbnRzLgotICAgIExpc3Q8RWxlbWVudD4gc29ydGVkVG9wTGV2ZWxzID0gc29ydEVsZW1lbnRzKHRvcExldmVsRWxlbWVudHMpOwotICAgIE1hcDxDbGFzc0VsZW1lbnQsIExpc3Q8RWxlbWVudD4+IHNvcnRlZENsYXNzTWVtYmVycyA9Ci0gICAgICAgIG5ldyBNYXA8Q2xhc3NFbGVtZW50LCBMaXN0PEVsZW1lbnQ+PigpOwotICAgIGNsYXNzTWVtYmVycy5mb3JFYWNoKChjbGFzc0VsZW1lbnQsIG1lbWJlcnMpIHsKLSAgICAgIHNvcnRlZENsYXNzTWVtYmVyc1tjbGFzc0VsZW1lbnRdID0gc29ydEVsZW1lbnRzKG1lbWJlcnMpOwotICAgIH0pOwotCi0gICAgcmV0dXJuIG5ldyBFbGVtZW50SW5mbygKLSAgICAgICAgZWxlbWVudEFzdHMsIHNvcnRlZFRvcExldmVscywgc29ydGVkQ2xhc3NNZW1iZXJzLCBlbWl0Tm9NZW1iZXJzRm9yKTsKLSAgfQotCi0gIHZvaWQgcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCBlbGVtZW50LCBFbGVtZW50QXN0IGVsZW1lbnRBc3QpIHsKLSAgICBpZiAocG9zdFByb2Nlc3NFbGVtZW50QXN0ICE9IG51bGwpIHsKLSAgICAgIHBvc3RQcm9jZXNzRWxlbWVudEFzdChlbGVtZW50LCBlbGVtZW50QXN0LCBuZXdUeXBlZGVmRWxlbWVudENhbGxiYWNrLAotICAgICAgICAgIG5ld0NsYXNzRWxlbWVudENhbGxiYWNrKTsKLSAgICB9Ci0gICAgZWxlbWVudEFzdHNbZWxlbWVudF0gPSBlbGVtZW50QXN0OwotICB9Ci0KLSAgdm9pZCBhZGRUb3BMZXZlbChBc3RFbGVtZW50IGVsZW1lbnQsIEVsZW1lbnRBc3QgZWxlbWVudEFzdCkgewotICAgIGlmICh0b3BMZXZlbEVsZW1lbnRzLmNvbnRhaW5zKGVsZW1lbnQpKSByZXR1cm47Ci0gICAgdG9wTGV2ZWxFbGVtZW50cy5hZGQoZWxlbWVudCk7Ci0gICAgcHJvY2Vzc0VsZW1lbnQoZWxlbWVudCwgZWxlbWVudEFzdCk7Ci0gIH0KLQotICB2b2lkIGFkZENsYXNzKENsYXNzRWxlbWVudCBjbGFzc0VsZW1lbnQpIHsKLSAgICBUcmVlRWxlbWVudHMgdHJlZUVsZW1lbnRzID0gbmV3IFRyZWVFbGVtZW50TWFwcGluZyhjbGFzc0VsZW1lbnQpOwotICAgIGJhY2tlbmQyZnJvbnRlbmQuVHJlZVByaW50ZXIgdHJlZVByaW50ZXIgPQotICAgICAgICBuZXcgYmFja2VuZDJmcm9udGVuZC5UcmVlUHJpbnRlcih0cmVlRWxlbWVudHMpOwotICAgIE5vZGUgbm9kZSA9IHRyZWVQcmludGVyLm1ha2VOb2RlRm9yQ2xhc3NFbGVtZW50KGNsYXNzRWxlbWVudCk7Ci0gICAgYWRkVG9wTGV2ZWwoY2xhc3NFbGVtZW50LCBuZXcgRWxlbWVudEFzdChub2RlLCB0cmVlRWxlbWVudHMpKTsKLSAgICBjbGFzc01lbWJlcnMucHV0SWZBYnNlbnQoY2xhc3NFbGVtZW50LCAoKSA9PiBuZXcgU2V0KCkpOwotICB9Ci0KLSAgdm9pZCBuZXdUeXBlZGVmRWxlbWVudENhbGxiYWNrKFR5cGVkZWZFbGVtZW50IGVsZW1lbnQpIHsKLSAgICBpZiAoIXNob3VsZE91dHB1dChlbGVtZW50KSkgcmV0dXJuOwotICAgIFRyZWVFbGVtZW50cyB0cmVlRWxlbWVudHMgPSBuZXcgVHJlZUVsZW1lbnRNYXBwaW5nKGVsZW1lbnQpOwotICAgIGJhY2tlbmQyZnJvbnRlbmQuVHJlZVByaW50ZXIgdHJlZVByaW50ZXIgPQotICAgICAgICBuZXcgYmFja2VuZDJmcm9udGVuZC5UcmVlUHJpbnRlcih0cmVlRWxlbWVudHMpOwotICAgIE5vZGUgbm9kZSA9IHRyZWVQcmludGVyLm1ha2VUeXBlZGVmKGVsZW1lbnQpOwotICAgIGFkZFRvcExldmVsKGVsZW1lbnQsIG5ldyBFbGVtZW50QXN0KG5vZGUsIHRyZWVFbGVtZW50cykpOwotICB9Ci0KLSAgdm9pZCBuZXdDbGFzc0VsZW1lbnRDYWxsYmFjayhDbGFzc0VsZW1lbnQgY2xhc3NFbGVtZW50KSB7Ci0gICAgaWYgKCFzaG91bGRPdXRwdXQoY2xhc3NFbGVtZW50KSkgcmV0dXJuOwotICAgIGFkZENsYXNzKGNsYXNzRWxlbWVudCk7Ci0gIH0KLQotICB2b2lkIGFkZE1lbWJlcihlbGVtZW50KSB7Ci0gICAgaWYgKGVsZW1lbnQuaXNDbGFzc01lbWJlcikgewotICAgICAgQ2xhc3NFbGVtZW50IGVuY2xvc2luZ0NsYXNzID0gZWxlbWVudC5lbmNsb3NpbmdDbGFzczsKLSAgICAgIGFzc2VydChlbmNsb3NpbmdDbGFzcy5pc0NsYXNzKTsKLSAgICAgIGFzc2VydChzaG91bGRPdXRwdXQoZW5jbG9zaW5nQ2xhc3MpKTsKLSAgICAgIGFkZENsYXNzKGVuY2xvc2luZ0NsYXNzKTsKLSAgICAgIGNsYXNzTWVtYmVyc1tlbmNsb3NpbmdDbGFzc10uYWRkKGVsZW1lbnQpOwotICAgICAgaWYgKGVuY2xvc2luZ0NsYXNzLmlzRW51bUNsYXNzKSByZXR1cm47Ci0gICAgICBwcm9jZXNzRWxlbWVudChlbGVtZW50LCBwYXJzZUVsZW1lbnRBc3QoZWxlbWVudCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICBpZiAoZWxlbWVudC5pc1RvcExldmVsKSB7Ci0gICAgICAgIGFkZFRvcExldmVsKGVsZW1lbnQsIHBhcnNlRWxlbWVudEFzdChlbGVtZW50KSk7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8vLyBNYWluIG91dHB1dCBnZW5lcmF0b3IgZm9yIFtEYXJ0T3V0cHV0dGVyXSB0aGF0IGVtaXRzIGRhcnQgY29kZSB0aHJvdWdoIGEKLS8vLyBbQ29tcGlsZXJPdXRwdXRQcm92aWRlcl0uCi1jbGFzcyBNYWluT3V0cHV0R2VuZXJhdG9yIHsKLSAgZmluYWwgTWFwPENsYXNzTm9kZSwgTGlzdDxOb2RlPj4gbWVtYmVyTm9kZXMgPQotICAgICAgbmV3IE1hcDxDbGFzc05vZGUsIExpc3Q8Tm9kZT4+KCk7Ci0gIGZpbmFsIExpc3Q8Tm9kZT4gdG9wTGV2ZWxOb2RlcyA9IDxOb2RlPltdOwotCi0gIC8vLyBHZW5lcmF0ZXMgdGhlIGNvZGUgYW5kIHJldHVybnMgdGhlIHRvdGFsIHNpemUuCi0gIGludCBnZW5lcmF0ZUNvZGUoCi0gICAgICBMaWJyYXJ5SW5mbyBsaWJyYXJ5SW5mbywKLSAgICAgIEVsZW1lbnRJbmZvIGVsZW1lbnRJbmZvLAotICAgICAgUGxhY2Vob2xkZXJDb2xsZWN0b3IgY29sbGVjdG9yLAotICAgICAgUGxhY2Vob2xkZXJSZW5hbWVyIHBsYWNlaG9sZGVyUmVuYW1lciwKLSAgICAgIEZ1bmN0aW9uRWxlbWVudCBtYWluRnVuY3Rpb24sCi0gICAgICBVcmkgb3V0cHV0VXJpLAotICAgICAgQ29tcGlsZXJPdXRwdXRQcm92aWRlciBvdXRwdXRQcm92aWRlciwKLSAgICAgIE1pcnJvclJlbmFtZXIgbWlycm9yUmVuYW1lciwKLSAgICAgIHtib29sIG11bHRpRmlsZTogZmFsc2UsCi0gICAgICBib29sIGZvcmNlU3RyaXBUeXBlczogZmFsc2UsCi0gICAgICBib29sIGVuYWJsZU1pbmlmaWNhdGlvbjogZmFsc2V9KSB7Ci0gICAgZm9yIChFbGVtZW50IGVsZW1lbnQgaW4gZWxlbWVudEluZm8udG9wTGV2ZWxFbGVtZW50cykgewotICAgICAgdG9wTGV2ZWxOb2Rlcy5hZGQoZWxlbWVudEluZm8uZWxlbWVudEFzdHNbZWxlbWVudF0uYXN0KTsKLSAgICAgIGlmIChlbGVtZW50LmlzQ2xhc3MpIHsKLSAgICAgICAgQ2xhc3NFbGVtZW50IGNscyA9IGVsZW1lbnQ7Ci0gICAgICAgIGlmIChjbHMuaXNNaXhpbkFwcGxpY2F0aW9uIHx8IGNscy5pc0VudW1DbGFzcykgewotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGZpbmFsIG1lbWJlcnMgPSA8Tm9kZT5bXTsKLSAgICAgICAgZm9yIChFbGVtZW50IG1lbWJlciBpbiBlbGVtZW50SW5mby5jbGFzc01lbWJlcnNbY2xzXSkgewotICAgICAgICAgIG1lbWJlcnMuYWRkKGVsZW1lbnRJbmZvLmVsZW1lbnRBc3RzW21lbWJlcl0uYXN0KTsKLSAgICAgICAgfQotICAgICAgICBtZW1iZXJOb2Rlc1tlbGVtZW50SW5mby5lbGVtZW50QXN0c1tjbHNdLmFzdF0gPSBtZW1iZXJzOwotICAgICAgfQotICAgIH0KLQotICAgIG1pcnJvclJlbmFtZXIuYWRkUmVuYW1lcygKLSAgICAgICAgcGxhY2Vob2xkZXJSZW5hbWVyLnJlbmFtZXMsIHRvcExldmVsTm9kZXMsIGNvbGxlY3Rvcik7Ci0KLSAgICBNYXA8TGlicmFyeUVsZW1lbnQsIFN0cmluZz4gb3V0cHV0UGF0aHMgPSBuZXcgTWFwPExpYnJhcnlFbGVtZW50LCBTdHJpbmc+KCk7Ci0gICAgTWFwPExpYnJhcnlFbGVtZW50LCBFbWl0dGVyVW5wYXJzZXI+IHVucGFyc2VycyA9Ci0gICAgICAgIG5ldyBNYXA8TGlicmFyeUVsZW1lbnQsIEVtaXR0ZXJVbnBhcnNlcj4oKTsKLQotICAgIC8vIFRoZSBzaW5nbGUgdW5wYXJzZXIgdXNlZCBpZiB3ZSBjb2xsZWN0IGFsbCB0aGUgb3V0cHV0IGluIG9uZSBmaWxlLgotICAgIEVtaXR0ZXJVbnBhcnNlciBtYWluVW5wYXJzZXIgPSBtdWx0aUZpbGUKLSAgICAgICAgPyBudWxsCi0gICAgICAgIDogbmV3IEVtaXR0ZXJVbnBhcnNlcihwbGFjZWhvbGRlclJlbmFtZXIucmVuYW1lcywKLSAgICAgICAgICAgIHN0cmlwVHlwZXM6IGZvcmNlU3RyaXBUeXBlcywgbWluaWZ5OiBlbmFibGVNaW5pZmljYXRpb24pOwotCi0gICAgaWYgKG11bHRpRmlsZSkgewotICAgICAgLy8gVE9ETyhzaWd1cmRtKTogRmFjdG9yIGhhbmRsaW5nIG9mIGxpYnJhcnktcGF0aHMgb3V0IGZyb20gZW1pdHRpbmcuCi0gICAgICBTdHJpbmcgbWFpbk5hbWUgPSBvdXRwdXRVcmkucGF0aFNlZ21lbnRzLmxhc3Q7Ci0gICAgICBTdHJpbmcgbWFpbkJhc2VOYW1lID0gbWFpbk5hbWUuZW5kc1dpdGgoIi5kYXJ0IikKLSAgICAgICAgICA/IG1haW5OYW1lLnN1YnN0cmluZygwLCBtYWluTmFtZS5sZW5ndGggLSA1KQotICAgICAgICAgIDogbWFpbk5hbWU7Ci0gICAgICAvLyBNYXAgZWFjaCBsaWJyYXJ5IHRvIGEgcGF0aCBiYXNlZCBvbiB0aGUgdXJpIG9mIHRoZSBvcmlnaW5hbAotICAgICAgLy8gbGlicmFyeSBhbmQgW2NvbXBpbGVyLm9wdGlvbnMub3V0cHV0VXJpXS4KLSAgICAgIFNldDxTdHJpbmc+IHVzZWRMaWJyYXJ5UGF0aHMgPSBuZXcgU2V0PFN0cmluZz4oKTsKLSAgICAgIGZvciAoTGlicmFyeUVsZW1lbnQgbGlicmFyeSBpbiBsaWJyYXJ5SW5mby51c2VyTGlicmFyaWVzKSB7Ci0gICAgICAgIGlmIChsaWJyYXJ5ID09IG1haW5GdW5jdGlvbi5saWJyYXJ5KSB7Ci0gICAgICAgICAgb3V0cHV0UGF0aHNbbGlicmFyeV0gPSBtYWluQmFzZU5hbWU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgTGlzdDxTdHJpbmc+IG5hbWVzID0KLSAgICAgICAgICAgICAgbGlicmFyeS5jYW5vbmljYWxVcmkucGF0aFNlZ21lbnRzLmxhc3Quc3BsaXQoIi4iKTsKLSAgICAgICAgICBpZiAobmFtZXMubGFzdCA9PSAiZGFydCIpIHsKLSAgICAgICAgICAgIG5hbWVzID0gbmFtZXMuc3VibGlzdCgwLCBuYW1lcy5sZW5ndGggLSAxKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgb3V0cHV0UGF0aHNbbGlicmFyeV0gPQotICAgICAgICAgICAgICAiJG1haW5CYXNlTmFtZS4ke21ha2VVbmlxdWUobmFtZXMuam9pbigiLiIpLCB1c2VkTGlicmFyeVBhdGhzKX0iOwotICAgICAgICB9Ci0gICAgICB9Ci0KLSAgICAgIC8vLyBSZXdyaXRlcyBpbXBvcnRzL2V4cG9ydHMgdG8gcmVmZXIgdG8gdGhlIHBhdGhzIGdpdmVuIGluIFtvdXRwdXRQYXRoc10uCi0gICAgICBmb3IgKExpYnJhcnlFbGVtZW50IG91dHB1dExpYnJhcnkgaW4gbGlicmFyeUluZm8udXNlckxpYnJhcmllcykgewotICAgICAgICBFbWl0dGVyVW5wYXJzZXIgdW5wYXJzZXIgPSBuZXcgRW1pdHRlclVucGFyc2VyKAotICAgICAgICAgICAgcGxhY2Vob2xkZXJSZW5hbWVyLnJlbmFtZXMsCi0gICAgICAgICAgICBzdHJpcFR5cGVzOiBmb3JjZVN0cmlwVHlwZXMsCi0gICAgICAgICAgICBtaW5pZnk6IGVuYWJsZU1pbmlmaWNhdGlvbik7Ci0gICAgICAgIHVucGFyc2Vyc1tvdXRwdXRMaWJyYXJ5XSA9IHVucGFyc2VyOwotICAgICAgICBpZiAob3V0cHV0TGlicmFyeS5oYXNMaWJyYXJ5TmFtZSkgewotICAgICAgICAgIHVucGFyc2VyLnVucGFyc2VMaWJyYXJ5TmFtZShvdXRwdXRMaWJyYXJ5LmxpYnJhcnlOYW1lKTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKEltcG9ydEVsZW1lbnQgaW1wb3J0IGluIG91dHB1dExpYnJhcnkuaW1wb3J0cykgewotICAgICAgICAgIExpYnJhcnlFbGVtZW50IGxpYnJhcnlFbGVtZW50ID0gaW1wb3J0LmltcG9ydGVkTGlicmFyeTsKLSAgICAgICAgICBTdHJpbmcgdXJpID0gb3V0cHV0UGF0aHMuY29udGFpbnNLZXkobGlicmFyeUVsZW1lbnQpCi0gICAgICAgICAgICAgID8gIiR7b3V0cHV0UGF0aHNbbGlicmFyeUVsZW1lbnRdfS5kYXJ0IgotICAgICAgICAgICAgICA6IGxpYnJhcnlFbGVtZW50LmNhbm9uaWNhbFVyaS50b1N0cmluZygpOwotICAgICAgICAgIHVucGFyc2VyLnVucGFyc2VJbXBvcnRUYWcodXJpKTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKEV4cG9ydEVsZW1lbnQgZXhwb3J0IGluIG91dHB1dExpYnJhcnkuZXhwb3J0cykgewotICAgICAgICAgIExpYnJhcnlFbGVtZW50IGxpYnJhcnlFbGVtZW50ID0gZXhwb3J0LmV4cG9ydGVkTGlicmFyeTsKLSAgICAgICAgICBTdHJpbmcgdXJpID0gb3V0cHV0UGF0aHMuY29udGFpbnNLZXkobGlicmFyeUVsZW1lbnQpCi0gICAgICAgICAgICAgID8gIiR7b3V0cHV0UGF0aHNbbGlicmFyeUVsZW1lbnRdfS5kYXJ0IgotICAgICAgICAgICAgICA6IGxpYnJhcnlFbGVtZW50LmNhbm9uaWNhbFVyaS50b1N0cmluZygpOwotICAgICAgICAgIHVucGFyc2VyLnVucGFyc2VFeHBvcnRUYWcodXJpKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBwbGFjZWhvbGRlclJlbmFtZXIucGxhdGZvcm1JbXBvcnRzCi0gICAgICAgICAgLmZvckVhY2goKExpYnJhcnlFbGVtZW50IGxpYnJhcnksIFN0cmluZyBwcmVmaXgpIHsKLSAgICAgICAgYXNzZXJ0KGxpYnJhcnkuaXNQbGF0Zm9ybUxpYnJhcnkgJiYgIWxpYnJhcnkuaXNJbnRlcm5hbExpYnJhcnkpOwotICAgICAgICBtYWluVW5wYXJzZXIudW5wYXJzZUltcG9ydFRhZyhsaWJyYXJ5LmNhbm9uaWNhbFVyaS50b1N0cmluZygpKTsKLSAgICAgICAgaWYgKHByZWZpeCAhPSBudWxsKSB7Ci0gICAgICAgICAgLy8gQWRkaW5nIGEgcHJlZml4ZWQgaW1wb3J0IGJlY2F1c2UgKHNvbWUpIHRvcC1sZXZlbCBhY2Nlc3MgbmVlZAotICAgICAgICAgIC8vIGl0IHRvIGF2b2lkIHNoYWRvd2luZy4KLSAgICAgICAgICAvLyBUT0RPKGpvaG5uaXdpbnRoZXIpOiBBdm9pZCBwcmVmaXgtbGVzcyBpbXBvcnQgaWYgbm90IG5lZWRlZC4KLSAgICAgICAgICBtYWluVW5wYXJzZXIudW5wYXJzZUltcG9ydFRhZyhsaWJyYXJ5LmNhbm9uaWNhbFVyaS50b1N0cmluZygpLAotICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotICAgIH0KLQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZWxlbWVudEluZm8udG9wTGV2ZWxFbGVtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgRWxlbWVudCBlbGVtZW50ID0gZWxlbWVudEluZm8udG9wTGV2ZWxFbGVtZW50cy5lbGVtZW50QXQoaSk7Ci0gICAgICBOb2RlIG5vZGUgPSB0b3BMZXZlbE5vZGVzW2ldOwotICAgICAgVW5wYXJzZXIgdW5wYXJzZXIgPSBtdWx0aUZpbGUgPyB1bnBhcnNlcnNbZWxlbWVudC5saWJyYXJ5XSA6IG1haW5VbnBhcnNlcjsKLSAgICAgIGlmIChub2RlIGlzIENsYXNzTm9kZSkgewotICAgICAgICAvLyBUT0RPKHNtb2spOiBGaWx0ZXIgb3V0IGRlZmF1bHQgY29uc3RydWN0b3JzIGhlcmUuCi0gICAgICAgIHVucGFyc2VyLnVucGFyc2VDbGFzc1dpdGhCb2R5KG5vZGUsIG1lbWJlck5vZGVzW25vZGVdKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHVucGFyc2VyLnVucGFyc2Uobm9kZSk7Ci0gICAgICB9Ci0gICAgICB1bnBhcnNlci5uZXdsaW5lKCk7Ci0gICAgfQotCi0gICAgaW50IHRvdGFsU2l6ZSA9IDA7Ci0gICAgaWYgKG11bHRpRmlsZSkgewotICAgICAgZm9yIChMaWJyYXJ5RWxlbWVudCBvdXRwdXRMaWJyYXJ5IGluIGxpYnJhcnlJbmZvLnVzZXJMaWJyYXJpZXMpIHsKLSAgICAgICAgLy8gVE9ETyhzaWd1cmRtKTogTWFrZSB0aGUgdW5wYXJzZXIgb3V0cHV0IGRpcmVjdGx5IGludG8gdGhlIGJ1ZmZlcgotICAgICAgICAvLyBpbnN0ZWFkIG9mIGNhY2hpbmcgaW4gYC5yZXN1bHRgLgotICAgICAgICBTdHJpbmcgY29kZSA9IHVucGFyc2Vyc1tvdXRwdXRMaWJyYXJ5XS5yZXN1bHQ7Ci0gICAgICAgIHRvdGFsU2l6ZSArPSBjb2RlLmxlbmd0aDsKLSAgICAgICAgb3V0cHV0UHJvdmlkZXIob3V0cHV0UGF0aHNbb3V0cHV0TGlicmFyeV0sICJkYXJ0IikKLSAgICAgICAgICAuLmFkZChjb2RlKQotICAgICAgICAgIC4uY2xvc2UoKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgU3RyaW5nIGNvZGUgPSBtYWluVW5wYXJzZXIucmVzdWx0OwotICAgICAgb3V0cHV0UHJvdmlkZXIoIiIsICJkYXJ0IikKLSAgICAgICAgLi5hZGQoY29kZSkKLSAgICAgICAgLi5jbG9zZSgpOwotCi0gICAgICB0b3RhbFNpemUgPSBjb2RlLmxlbmd0aDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdG90YWxTaXplOwotICB9Ci19CmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvcGxhY2Vob2xkZXJfY29sbGVjdG9yLmRhcnQgYi9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvcGxhY2Vob2xkZXJfY29sbGVjdG9yLmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1ZjI1NzYuLjAwMDAwMDAKLS0tIGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGFydF9iYWNrZW5kL3BsYWNlaG9sZGVyX2NvbGxlY3Rvci5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsNzI0ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotcGFydCBvZiBkYXJ0X2JhY2tlbmQ7Ci0KLWNsYXNzIExvY2FsUGxhY2Vob2xkZXIgewotICBmaW5hbCBTdHJpbmcgaWRlbnRpZmllcjsKLSAgZmluYWwgU2V0PE5vZGU+IG5vZGVzOwotICBMb2NhbFBsYWNlaG9sZGVyKHRoaXMuaWRlbnRpZmllcikgOiBub2RlcyA9IG5ldyBTZXQ8Tm9kZT4oKTsKLSAgaW50IGdldCBoYXNoQ29kZSA9PiBpZGVudGlmaWVyLmhhc2hDb2RlOwotICBTdHJpbmcgdG9TdHJpbmcoKSA9PiAnbG9jYWxfcGxhY2Vob2xkZXJbaWQoJGlkZW50aWZpZXIpLCBub2Rlcygkbm9kZXMpXSc7Ci19Ci0KLWNsYXNzIEZ1bmN0aW9uU2NvcGUgewotICBmaW5hbCBTZXQ8U3RyaW5nPiBwYXJhbWV0ZXJJZGVudGlmaWVyczsKLSAgZmluYWwgU2V0PExvY2FsUGxhY2Vob2xkZXI+IGxvY2FsUGxhY2Vob2xkZXJzOwotICBGdW5jdGlvblNjb3BlKCkKLSAgICAgIDogcGFyYW1ldGVySWRlbnRpZmllcnMgPSBuZXcgU2V0PFN0cmluZz4oKSwKLSAgICAgICAgbG9jYWxQbGFjZWhvbGRlcnMgPSBuZXcgU2V0PExvY2FsUGxhY2Vob2xkZXI+KCk7Ci0gIHZvaWQgcmVnaXN0ZXJQYXJhbWV0ZXIoSWRlbnRpZmllciBub2RlKSB7Ci0gICAgcGFyYW1ldGVySWRlbnRpZmllcnMuYWRkKG5vZGUuc291cmNlKTsKLSAgfQotfQotCi1jbGFzcyBDb25zdHJ1Y3RvclBsYWNlaG9sZGVyIHsKLSAgZmluYWwgSWRlbnRpZmllciBub2RlOwotICBmaW5hbCBDb25zdHJ1Y3RvckVsZW1lbnQgZWxlbWVudDsKLQotICBDb25zdHJ1Y3RvclBsYWNlaG9sZGVyKHRoaXMubm9kZSwgdGhpcy5lbGVtZW50KTsKLX0KLQotY2xhc3MgRGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXIgewotICBmaW5hbCBUeXBlQW5ub3RhdGlvbiB0eXBlTm9kZTsKLSAgZmluYWwgYm9vbCByZXF1aXJlc1ZhcjsKLSAgRGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXIodGhpcy50eXBlTm9kZSwgdGhpcy5yZXF1aXJlc1Zhcik7Ci19Ci0KLWNsYXNzIFNlbmRWaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7Ci0gIGZpbmFsIFRyZWVFbGVtZW50cyBlbGVtZW50czsKLSAgZmluYWwgUGxhY2Vob2xkZXJDb2xsZWN0b3IgY29sbGVjdG9yOwotCi0gIFNlbmRWaXNpdG9yKHRoaXMuY29sbGVjdG9yLCB0aGlzLmVsZW1lbnRzKTsKLQotICB2aXNpdFNlbmQoU2VuZCBub2RlKSB7Ci0gICAgRWxlbWVudCBlbGVtZW50ID0gZWxlbWVudHNbbm9kZV07Ci0gICAgaWYgKGVsZW1lbnRzLmlzVHlwZUxpdGVyYWwobm9kZSkpIHsKLSAgICAgIERhcnRUeXBlIHR5cGUgPSBlbGVtZW50cy5nZXRUeXBlTGl0ZXJhbFR5cGUobm9kZSk7Ci0gICAgICBpZiAoIXR5cGUuaXNEeW5hbWljKSB7Ci0gICAgICAgIGlmICh0eXBlIGlzIFR5cGVWYXJpYWJsZVR5cGUpIHsKLSAgICAgICAgICBjb2xsZWN0b3IubWFrZVR5cGVWYXJpYWJsZVBsYWNlaG9sZGVyKG5vZGUuc2VsZWN0b3IsIHR5cGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGNvbGxlY3Rvci5tYWtlVHlwZVBsYWNlaG9sZGVyKG5vZGUuc2VsZWN0b3IsIHR5cGUpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChub2RlLmlzU3VwZXJDYWxsKSB7Ci0gICAgICBpZiAoZWxlbWVudCAhPSBudWxsICYmIGVsZW1lbnQuaXNDb25zdHJ1Y3RvcikgewotICAgICAgICBjb2xsZWN0b3IudHJ5TWFrZUNvbnN0cnVjdG9yUGxhY2Vob2xkZXIobm9kZSwgZWxlbWVudCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBjb2xsZWN0b3IudHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKG5vZGUuc2VsZWN0b3IpOwotICAgICAgfQotICAgIH0gZWxzZSBpZiAobm9kZS5pc09wZXJhdG9yKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChub2RlLmlzUHJvcGVydHlBY2Nlc3MpIHsKLSAgICAgIGlmICghRWxlbWVudHMuaXNVbnJlc29sdmVkKGVsZW1lbnQpICYmIGVsZW1lbnQuaW1wbGllc1R5cGUpIHsKLSAgICAgICAgY29sbGVjdG9yLm1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZSwgZWxlbWVudCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2aXNpdEdldHRlclNlbmQobm9kZSk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChlbGVtZW50ICE9IG51bGwgJiYgSW5pdGlhbGl6ZXJzLmlzQ29uc3RydWN0b3JSZWRpcmVjdChub2RlKSkgewotICAgICAgdmlzaXRTdGF0aWNTZW5kKG5vZGUpOwotICAgIH0gZWxzZSBpZiAoRWxlbWVudHMuaXNDbG9zdXJlU2VuZChub2RlLCBlbGVtZW50KSkgewotICAgICAgaWYgKGVsZW1lbnQgIT0gbnVsbCkgewotICAgICAgICBjb2xsZWN0b3IudHJ5TWFrZUxvY2FsUGxhY2Vob2xkZXIoZWxlbWVudCwgbm9kZS5zZWxlY3Rvcik7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmIChFbGVtZW50cy5pc1VucmVzb2x2ZWQoZWxlbWVudCkpIHsKLSAgICAgICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkgewotICAgICAgICAgIC8vIEV4YW1wbGU6IGYoKSB3aXRoICdmJyB1bmJvdW5kLgotICAgICAgICAgIC8vIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGluc2lkZSBhbiBpbnN0YW5jZSBtZXRob2QuCi0gICAgICAgICAgdmlzaXREeW5hbWljU2VuZChub2RlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2aXNpdFN0YXRpY1NlbmQobm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5pc0luc3RhbmNlTWVtYmVyKSB7Ci0gICAgICAgIC8vIEV4YW1wbGU6IGYoKSB3aXRoICdmJyBib3VuZCB0byBpbnN0YW5jZSBtZXRob2QuCi0gICAgICAgIHZpc2l0RHluYW1pY1NlbmQobm9kZSk7Ci0gICAgICB9IGVsc2UgaWYgKCFlbGVtZW50LmlzSW5zdGFuY2VNZW1iZXIpIHsKLSAgICAgICAgLy8gRXhhbXBsZTogQS5mKCkgb3IgZigpIHdpdGggJ2YnIGJvdW5kIHRvIGEgc3RhdGljIGZ1bmN0aW9uLgotICAgICAgICAvLyBBbHNvIGluY2x1ZGVzIG5ldyBBKCkgb3IgbmV3IEEubmFtZWQoKSB3aGljaCBpcyB0cmVhdGVkIGxpa2UgYQotICAgICAgICAvLyBzdGF0aWMgY2FsbCB0byBhIGZhY3RvcnkuCi0gICAgICAgIHZpc2l0U3RhdGljU2VuZChub2RlKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICB2aXNpdER5bmFtaWNTZW5kKFNlbmQgbm9kZSkgewotICAgIGZpbmFsIGVsZW1lbnQgPSBlbGVtZW50c1tub2RlXTsKLSAgICBpZiAoZWxlbWVudCA9PSBudWxsIHx8ICFlbGVtZW50LmlzTWFsZm9ybWVkKSB7Ci0gICAgICBjb2xsZWN0b3IudHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKG5vZGUuc2VsZWN0b3IpOwotICAgIH0KLSAgfQotCi0gIHZpc2l0R2V0dGVyU2VuZChTZW5kIG5vZGUpIHsKLSAgICBmaW5hbCBlbGVtZW50ID0gZWxlbWVudHNbbm9kZV07Ci0gICAgLy8gZWxlbWVudCA9PSBudWxsIG1lYW5zIGR5bmFtaWMgcHJvcGVydHkgYWNjZXNzLgotICAgIGlmIChlbGVtZW50ID09IG51bGwpIHsKLSAgICAgIGNvbGxlY3Rvci50cnlNYWtlTWVtYmVyUGxhY2Vob2xkZXIobm9kZS5zZWxlY3Rvcik7Ci0gICAgfSBlbHNlIGlmIChlbGVtZW50LmlzTWFsZm9ybWVkKSB7Ci0gICAgICBjb2xsZWN0b3IubWFrZVVucmVzb2x2ZWRQbGFjZWhvbGRlcihub2RlKTsKLSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaXNQcmVmaXgpIHsKLSAgICAgIC8vIE5vZGUgaXMgcHJlZml4IHBhcnQgaW4gY2FzZSBvZiBzb3VyY2UgJ2xpYi5zb21lc2V0dGVyID0gNTsnCi0gICAgICBjb2xsZWN0b3IubWFrZUVyYXNlUHJlZml4UGxhY2Vob2xkZXIobm9kZSk7Ci0gICAgfSBlbHNlIGlmIChFbGVtZW50cy5pc1N0YXRpY09yVG9wTGV2ZWwoZWxlbWVudCkpIHsKLSAgICAgIC8vIFVucXVhbGlmaWVkIG9yIHByZWZpeGVkIHRvcCBsZXZlbCBvciBzdGF0aWMuCi0gICAgICBjb2xsZWN0b3IubWFrZUVsZW1lbnRQbGFjZWhvbGRlcihub2RlLnNlbGVjdG9yLCBlbGVtZW50KTsKLSAgICB9IGVsc2UgaWYgKCFlbGVtZW50LmlzVG9wTGV2ZWwpIHsKLSAgICAgIGlmIChlbGVtZW50LmlzSW5zdGFuY2VNZW1iZXIpIHsKLSAgICAgICAgY29sbGVjdG9yLnRyeU1ha2VNZW1iZXJQbGFjZWhvbGRlcihub2RlLnNlbGVjdG9yKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIE1heSBnZXQgRnVuY3Rpb25FeHByZXNzaW9uIGhlcmUgaW4gc2VsZWN0b3IKLSAgICAgICAgLy8gaW4gY2FzZSBvZiBBKGludCB0aGlzLmYoKSk7Ci0gICAgICAgIGlmIChub2RlLnNlbGVjdG9yIGlzIElkZW50aWZpZXIpIHsKLSAgICAgICAgICBjb2xsZWN0b3IudHJ5TWFrZUxvY2FsUGxhY2Vob2xkZXIoZWxlbWVudCwgbm9kZS5zZWxlY3Rvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgYXNzZXJ0KG5vZGUuc2VsZWN0b3IgaXMgRnVuY3Rpb25FeHByZXNzaW9uKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHZpc2l0U3RhdGljU2VuZChTZW5kIG5vZGUpIHsKLSAgICBFbGVtZW50IGVsZW1lbnQgPSBlbGVtZW50c1tub2RlXTsKLSAgICBjb2xsZWN0b3IubWlycm9yUmVuYW1lcgotICAgICAgICAucmVnaXN0ZXJTdGF0aWNTZW5kKGNvbGxlY3Rvci5jdXJyZW50RWxlbWVudCwgZWxlbWVudCwgbm9kZSk7Ci0KLSAgICBpZiAoRWxlbWVudHMuaXNVbnJlc29sdmVkKGVsZW1lbnQpIHx8IGVsZW1lbnQuaXNEZWZlcnJlZExvYWRlckdldHRlcikgewotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoZWxlbWVudC5pc0NvbnN0cnVjdG9yIHx8IGVsZW1lbnQuaXNGYWN0b3J5Q29uc3RydWN0b3IpIHsKLSAgICAgIC8vIFJlbmFtZSBuYW1lZCBjb25zdHJ1Y3RvciBpbiByZWRpcmVjdGlvbiBwb3NpdGlvbjoKLSAgICAgIC8vIGNsYXNzIEMgeyBDLm5hbWVkKCk7IEMucmVkaXJlY3RpbmcoKSA6IHRoaXMubmFtZWQoKTsgfQotICAgICAgaWYgKG5vZGUucmVjZWl2ZXIgaXMgSWRlbnRpZmllciAmJgotICAgICAgICAgIG5vZGUucmVjZWl2ZXIuYXNJZGVudGlmaWVyKCkuaXNUaGlzKCkpIHsKLSAgICAgICAgYXNzZXJ0KG5vZGUuc2VsZWN0b3IgaXMgSWRlbnRpZmllcik7Ci0gICAgICAgIGNvbGxlY3Rvci50cnlNYWtlQ29uc3RydWN0b3JQbGFjZWhvbGRlcihub2RlLCBlbGVtZW50KTsKLSAgICAgIH0KLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY29sbGVjdG9yLm1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZS5zZWxlY3RvciwgZWxlbWVudCk7Ci0gICAgLy8gQW5vdGhlciB1Z2x5IGNhc2U6IDxsaWIgcHJlZml4Pi48dG9wIGxldmVsPiBpcyByZXByZXNlbnRlZCBhcwotICAgIC8vIHJlY2VpdmVyOiBsaWIgcHJlZml4LCBzZWxlY3RvcjogdG9wIGxldmVsLgotICAgIGlmIChlbGVtZW50LmlzVG9wTGV2ZWwgJiYgbm9kZS5yZWNlaXZlciAhPSBudWxsKSB7Ci0gICAgICBhc3NlcnQoZWxlbWVudHNbbm9kZS5yZWNlaXZlcl0uaXNQcmVmaXgpOwotICAgICAgLy8gSGFjazogcHV0dGluZyBudWxsIGludG8gbWFwIG92ZXJyaWRlcyByZWNlaXZlciBvZiBvcmlnaW5hbCBub2RlLgotICAgICAgY29sbGVjdG9yLm1ha2VFcmFzZVByZWZpeFBsYWNlaG9sZGVyKG5vZGUucmVjZWl2ZXIpOwotICAgIH0KLSAgfQotCi0gIGludGVybmFsRXJyb3IoU3Bhbm5hYmxlIG5vZGUsIFN0cmluZyByZWFzb24pIHsKLSAgICBjb2xsZWN0b3IuaW50ZXJuYWxFcnJvcihyZWFzb24sIG5vZGU6IG5vZGUpOwotICB9Ci0KLSAgdmlzaXROb2RlKE5vZGUgbm9kZSkgewotICAgIGludGVybmFsRXJyb3Iobm9kZSwgIlVuaGFuZGxlZCBub2RlIik7Ci0gIH0KLX0KLQotY2xhc3MgUGxhY2Vob2xkZXJDb2xsZWN0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgZmluYWwgRGlhZ25vc3RpY1JlcG9ydGVyIHJlcG9ydGVyOwotICBmaW5hbCBNaXJyb3JSZW5hbWVyIG1pcnJvclJlbmFtZXI7Ci0gIGZpbmFsIEZ1bmN0aW9uRWxlbWVudCBtYWluRnVuY3Rpb247Ci0gIGZpbmFsIFNldDxTdHJpbmc+IGZpeGVkTWVtYmVyTmFtZXM7IC8vIG1lbWJlciBuYW1lcyB3aGljaCBjYW5ub3QgYmUgcmVuYW1lZC4KLSAgZmluYWwgTWFwPEVsZW1lbnQsIEVsZW1lbnRBc3Q+IGVsZW1lbnRBc3RzOwotICBmaW5hbCBTZXQ8Tm9kZT4gcHJlZml4Tm9kZXNUb0VyYXNlID0gbmV3IFNldDxOb2RlPigpOwotICBmaW5hbCBTZXQ8Tm9kZT4gdW5yZXNvbHZlZE5vZGVzID0gbmV3IFNldDxOb2RlPigpOwotICBmaW5hbCBNYXA8RWxlbWVudCwgU2V0PE5vZGU+PiBlbGVtZW50Tm9kZXMgPSBuZXcgTWFwPEVsZW1lbnQsIFNldDxOb2RlPj4oKTsKLSAgZmluYWwgTWFwPEZ1bmN0aW9uRWxlbWVudCwgRnVuY3Rpb25TY29wZT4gZnVuY3Rpb25TY29wZXMgPQotICAgICAgbmV3IE1hcDxGdW5jdGlvbkVsZW1lbnQsIEZ1bmN0aW9uU2NvcGU+KCk7Ci0gIGZpbmFsIE1hcDxMaWJyYXJ5RWxlbWVudCwgU2V0PElkZW50aWZpZXI+PiBwcml2YXRlTm9kZXMgPQotICAgICAgbmV3IE1hcDxMaWJyYXJ5RWxlbWVudCwgU2V0PElkZW50aWZpZXI+PigpOwotICBmaW5hbCBMaXN0PERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyPiBkZWNsYXJhdGlvblR5cGVQbGFjZWhvbGRlcnMgPQotICAgICAgbmV3IExpc3Q8RGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXI+KCk7Ci0gIGZpbmFsIE1hcDxTdHJpbmcsIFNldDxJZGVudGlmaWVyPj4gbWVtYmVyUGxhY2Vob2xkZXJzID0KLSAgICAgIG5ldyBNYXA8U3RyaW5nLCBTZXQ8SWRlbnRpZmllcj4+KCk7Ci0gIGZpbmFsIExpc3Q8Q29uc3RydWN0b3JQbGFjZWhvbGRlcj4gY29uc3RydWN0b3JQbGFjZWhvbGRlcnMgPQotICAgICAgbmV3IExpc3Q8Q29uc3RydWN0b3JQbGFjZWhvbGRlcj4oKTsKLSAgTWFwPFN0cmluZywgTG9jYWxQbGFjZWhvbGRlcj4gY3VycmVudExvY2FsUGxhY2Vob2xkZXJzOwotICBFbGVtZW50IGN1cnJlbnRFbGVtZW50OwotICBGdW5jdGlvbkVsZW1lbnQgdG9wbW9zdEVuY2xvc2luZ0Z1bmN0aW9uOwotICBUcmVlRWxlbWVudHMgdHJlZUVsZW1lbnRzOwotCi0gIGdldCBjdXJyZW50RnVuY3Rpb25TY29wZSA9PiBmdW5jdGlvblNjb3Blcy5wdXRJZkFic2VudCgKLSAgICAgIHRvcG1vc3RFbmNsb3NpbmdGdW5jdGlvbiwgKCkgPT4gbmV3IEZ1bmN0aW9uU2NvcGUoKSk7Ci0KLSAgUGxhY2Vob2xkZXJDb2xsZWN0b3IodGhpcy5yZXBvcnRlciwgdGhpcy5taXJyb3JSZW5hbWVyLCB0aGlzLmZpeGVkTWVtYmVyTmFtZXMsCi0gICAgICB0aGlzLmVsZW1lbnRBc3RzLCB0aGlzLm1haW5GdW5jdGlvbik7Ci0KLSAgdm9pZCBjb2xsZWN0RnVuY3Rpb25EZWNsYXJhdGlvblBsYWNlaG9sZGVycygKLSAgICAgIEZ1bmN0aW9uRWxlbWVudCBlbGVtZW50LCBGdW5jdGlvbkV4cHJlc3Npb24gbm9kZSkgewotICAgIGlmIChlbGVtZW50LmlzQ29uc3RydWN0b3IpIHsKLSAgICAgIENvbnN0cnVjdG9yRWxlbWVudCBjb25zdHJ1Y3RvciA9IGVsZW1lbnQ7Ci0gICAgICB0cnlNYWtlQ29uc3RydWN0b3JQbGFjZWhvbGRlcihub2RlLm5hbWUsIGVsZW1lbnQpOwotICAgICAgUmVkaXJlY3RpbmdGYWN0b3J5Qm9keSBib2R5QXNSZWRpcmVjdGluZ0ZhY3RvcnlCb2R5ID0KLSAgICAgICAgICBub2RlLmJvZHkuYXNSZWRpcmVjdGluZ0ZhY3RvcnlCb2R5KCk7Ci0gICAgICBpZiAoYm9keUFzUmVkaXJlY3RpbmdGYWN0b3J5Qm9keSAhPSBudWxsKSB7Ci0gICAgICAgIC8vIEZhY3RvcnkgcmVkaXJlY3Rpb24uCi0gICAgICAgIEZ1bmN0aW9uRWxlbWVudCByZWRpcmVjdFRhcmdldCA9IGNvbnN0cnVjdG9yLmltbWVkaWF0ZVJlZGlyZWN0aW9uVGFyZ2V0OwotICAgICAgICBhc3NlcnQocmVkaXJlY3RUYXJnZXQgIT0gbnVsbCAmJiByZWRpcmVjdFRhcmdldCAhPSBlbGVtZW50KTsKLSAgICAgICAgdHJ5TWFrZUNvbnN0cnVjdG9yUGxhY2Vob2xkZXIoCi0gICAgICAgICAgICBib2R5QXNSZWRpcmVjdGluZ0ZhY3RvcnlCb2R5LmNvbnN0cnVjdG9yUmVmZXJlbmNlLCByZWRpcmVjdFRhcmdldCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChFbGVtZW50cy5pc1N0YXRpY09yVG9wTGV2ZWwoZWxlbWVudCkpIHsKLSAgICAgIC8vIE5vdGU6IHRoaXMgY29kZSBzaG91bGQgb25seSByZW5hbWUgcHJpdmF0ZSBpZGVudGlmaWVycyBmb3IgY2xhc3MnCi0gICAgICAvLyBmaWVsZHMvZ2V0dGVycy9zZXR0ZXJzL21ldGhvZHMuICBUb3AtbGV2ZWwgaWRlbnRpZmllcnMgYXJlIHJlbmFtZWQKLSAgICAgIC8vIGp1c3QgdG8gZXNjYXBlIGNvbmZsaWN0cyBhbmQgdGhhdCBzaG91bGQgYmUgZW5vdWdoIGFzIHdlIHNob3VsZG4ndAotICAgICAgLy8gYmUgYWJsZSB0byByZXNvbHZlIHByaXZhdGUgaWRlbnRpZmllcnMgZm9yIG90aGVyIGxpYnJhcmllcy4KLSAgICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZS5uYW1lLCBlbGVtZW50KTsKLSAgICB9IGVsc2UgaWYgKGVsZW1lbnQuaXNDbGFzc01lbWJlcikgewotICAgICAgaWYgKG5vZGUubmFtZSBpcyBJZGVudGlmaWVyKSB7Ci0gICAgICAgIHRyeU1ha2VNZW1iZXJQbGFjZWhvbGRlcihub2RlLm5hbWUpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgYXNzZXJ0KG5vZGUubmFtZS5hc1NlbmQoKS5pc09wZXJhdG9yKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICB2b2lkIGNvbGxlY3RGaWVsZERlY2xhcmF0aW9uUGxhY2Vob2xkZXJzKEVsZW1lbnQgZWxlbWVudCwgTm9kZSBub2RlKSB7Ci0gICAgSWRlbnRpZmllciBuYW1lID0gbm9kZSBpcyBJZGVudGlmaWVyID8gbm9kZSA6IG5vZGUuYXNTZW5kKCkuc2VsZWN0b3I7Ci0gICAgaWYgKEVsZW1lbnRzLmlzU3RhdGljT3JUb3BMZXZlbChlbGVtZW50KSkgewotICAgICAgbWFrZUVsZW1lbnRQbGFjZWhvbGRlcihuYW1lLCBlbGVtZW50KTsKLSAgICB9IGVsc2UgaWYgKEVsZW1lbnRzLmlzSW5zdGFuY2VGaWVsZChlbGVtZW50KSkgewotICAgICAgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKG5hbWUpOwotICAgIH0KLSAgfQotCi0gIHZvaWQgY29sbGVjdChFbGVtZW50IGVsZW1lbnQpIHsKLSAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gZWxlbWVudDsKLSAgICB0aGlzLnRvcG1vc3RFbmNsb3NpbmdGdW5jdGlvbiA9IG51bGw7Ci0gICAgZmluYWwgRWxlbWVudEFzdCBlbGVtZW50QXN0ID0gZWxlbWVudEFzdHNbZWxlbWVudF07Ci0gICAgdGhpcy50cmVlRWxlbWVudHMgPSBlbGVtZW50QXN0LnRyZWVFbGVtZW50czsKLSAgICBOb2RlIGVsZW1lbnROb2RlID0gZWxlbWVudEFzdC5hc3Q7Ci0gICAgaWYgKGVsZW1lbnQgaXMgRnVuY3Rpb25FbGVtZW50KSB7Ci0gICAgICBjb2xsZWN0RnVuY3Rpb25EZWNsYXJhdGlvblBsYWNlaG9sZGVycyhlbGVtZW50LCBlbGVtZW50Tm9kZSk7Ci0gICAgfSBlbHNlIGlmIChlbGVtZW50IGlzIFZhcmlhYmxlRWxlbWVudCkgewotICAgICAgVmFyaWFibGVEZWZpbml0aW9ucyBkZWZpbml0aW9ucyA9IGVsZW1lbnROb2RlOwotICAgICAgTm9kZSBkZWZpbml0aW9uID0gZGVmaW5pdGlvbnMuZGVmaW5pdGlvbnMubm9kZXMuaGVhZDsKLSAgICAgIGNvbGxlY3RGaWVsZERlY2xhcmF0aW9uUGxhY2Vob2xkZXJzKGVsZW1lbnQsIGRlZmluaXRpb24pOwotICAgICAgbWFrZVZhckRlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyKGRlZmluaXRpb25zKTsKLSAgICB9IGVsc2UgewotICAgICAgYXNzZXJ0KGVsZW1lbnQgaXMgQ2xhc3NFbGVtZW50IHx8IGVsZW1lbnQgaXMgVHlwZWRlZkVsZW1lbnQpOwotICAgIH0KLSAgICBjdXJyZW50TG9jYWxQbGFjZWhvbGRlcnMgPSBuZXcgTWFwPFN0cmluZywgTG9jYWxQbGFjZWhvbGRlcj4oKTsKLSAgICBpZiAoIShlbGVtZW50IGlzIENvbnN0cnVjdG9yRWxlbWVudCAmJiBlbGVtZW50LmlzUmVkaXJlY3RpbmdGYWN0b3J5KSkgewotICAgICAgLy8gRG8gbm90IHZpc2l0IHRoZSBib2R5IG9mIHJlZGlyZWN0aW5nIGZhY3Rvcmllcy4KLSAgICAgIHJlcG9ydGVyLndpdGhDdXJyZW50RWxlbWVudChlbGVtZW50LCAoKSB7Ci0gICAgICAgIGVsZW1lbnROb2RlLmFjY2VwdCh0aGlzKTsKLSAgICAgIH0pOwotICAgIH0KLSAgfQotCi0gIC8vIFRPRE8oa2FybGtsb3NlKTogc2hvdWxkIHdlIGNyZWF0ZSBwbGFjZWhvbGRlcnMgZm9yIHRoZXNlPwotICBib29sIGlzVHlwZWRlZlBhcmFtZXRlcihFbGVtZW50IGVsZW1lbnQpIHsKLSAgICByZXR1cm4gZWxlbWVudCAhPSBudWxsICYmCi0gICAgICAgIGVsZW1lbnQuZW5jbG9zaW5nRWxlbWVudCAhPSBudWxsICYmCi0gICAgICAgIGVsZW1lbnQuZW5jbG9zaW5nRWxlbWVudC5pc1R5cGVkZWY7Ci0gIH0KLQotICB2b2lkIHRyeU1ha2VMb2NhbFBsYWNlaG9sZGVyKEVsZW1lbnQgZWxlbWVudCwgSWRlbnRpZmllciBub2RlKSB7Ci0gICAgYm9vbCBpc05hbWVkT3B0aW9uYWxQYXJhbWV0ZXIoKSB7Ci0gICAgICBGdW5jdGlvblR5cGVkRWxlbWVudCBmdW5jdGlvbiA9IGVsZW1lbnQuZW5jbG9zaW5nRWxlbWVudDsKLSAgICAgIEZ1bmN0aW9uU2lnbmF0dXJlIHNpZ25hdHVyZSA9IGZ1bmN0aW9uLmZ1bmN0aW9uU2lnbmF0dXJlOwotICAgICAgaWYgKCFzaWduYXR1cmUub3B0aW9uYWxQYXJhbWV0ZXJzQXJlTmFtZWQpIHJldHVybiBmYWxzZTsKLSAgICAgIGZvciAoRWxlbWVudCBwYXJhbWV0ZXIgaW4gc2lnbmF0dXJlLm9wdGlvbmFsUGFyYW1ldGVycykgewotICAgICAgICBpZiAoaWRlbnRpY2FsKHBhcmFtZXRlciwgZWxlbWVudCkpIHJldHVybiB0cnVlOwotICAgICAgfQotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoZWxlbWVudC5pc1JlZ3VsYXJQYXJhbWV0ZXIgJiYKLSAgICAgICAgIWlzVHlwZWRlZlBhcmFtZXRlcihlbGVtZW50KSAmJgotICAgICAgICBpc05hbWVkT3B0aW9uYWxQYXJhbWV0ZXIoKSkgewotICAgICAgY3VycmVudEZ1bmN0aW9uU2NvcGUucmVnaXN0ZXJQYXJhbWV0ZXIobm9kZSk7Ci0gICAgfSBlbHNlIGlmIChFbGVtZW50cy5pc0xvY2FsKGVsZW1lbnQpICYmICFpc1R5cGVkZWZQYXJhbWV0ZXIoZWxlbWVudCkpIHsKLSAgICAgIG1ha2VMb2NhbFBsYWNlaG9sZGVyKG5vZGUpOwotICAgIH0KLSAgfQotCi0gIHZvaWQgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKElkZW50aWZpZXIgbm9kZSkgewotICAgIGFzc2VydChub2RlICE9IG51bGwpOwotICAgIGlmIChub2RlIGlzIE9wZXJhdG9yKSByZXR1cm47Ci0gICAgU3RyaW5nIGlkZW50aWZpZXIgPSBub2RlLnNvdXJjZTsKLSAgICBpZiAoZml4ZWRNZW1iZXJOYW1lcy5jb250YWlucyhpZGVudGlmaWVyKSkgcmV0dXJuOwotICAgIG1lbWJlclBsYWNlaG9sZGVycwotICAgICAgICAucHV0SWZBYnNlbnQoaWRlbnRpZmllciwgKCkgPT4gbmV3IFNldDxJZGVudGlmaWVyPigpKQotICAgICAgICAuYWRkKG5vZGUpOwotICB9Ci0KLSAgdm9pZCBtYWtlVHlwZVBsYWNlaG9sZGVyKE5vZGUgbm9kZSwgRGFydFR5cGUgdHlwZSkgewotICAgIFNlbmQgc2VuZCA9IG5vZGUuYXNTZW5kKCk7Ci0gICAgaWYgKHNlbmQgIT0gbnVsbCkgewotICAgICAgLy8gUHJlZml4LgotICAgICAgYXNzZXJ0KHNlbmQucmVjZWl2ZXIgaXMgSWRlbnRpZmllcik7Ci0gICAgICBhc3NlcnQoc2VuZC5zZWxlY3RvciBpcyBJZGVudGlmaWVyKTsKLSAgICAgIG1ha2VFcmFzZVByZWZpeFBsYWNlaG9sZGVyKHNlbmQucmVjZWl2ZXIpOwotICAgICAgbm9kZSA9IHNlbmQuc2VsZWN0b3I7Ci0gICAgfQotICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZSwgdHlwZS5lbGVtZW50KTsKLSAgfQotCi0gIHZvaWQgbWFrZVR5cGVWYXJpYWJsZVBsYWNlaG9sZGVyKE5vZGUgbm9kZSwgVHlwZVZhcmlhYmxlVHlwZSB0eXBlKSB7Ci0gICAgU2VuZCBzZW5kID0gbm9kZS5hc1NlbmQoKTsKLSAgICBpZiAoc2VuZCAhPSBudWxsKSB7Ci0gICAgICAvLyBQcmVmaXguCi0gICAgICBhc3NlcnQoc2VuZC5yZWNlaXZlciBpcyBJZGVudGlmaWVyKTsKLSAgICAgIGFzc2VydChzZW5kLnNlbGVjdG9yIGlzIElkZW50aWZpZXIpOwotICAgICAgbWFrZUVyYXNlUHJlZml4UGxhY2Vob2xkZXIoc2VuZC5yZWNlaXZlcik7Ci0gICAgICBub2RlID0gc2VuZC5zZWxlY3RvcjsKLSAgICB9Ci0gICAgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKG5vZGUpOwotICB9Ci0KLSAgdm9pZCBtYWtlT21pdERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyKFR5cGVBbm5vdGF0aW9uIHR5cGUpIHsKLSAgICBpZiAodHlwZSA9PSBudWxsKSByZXR1cm47Ci0gICAgZGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXJzCi0gICAgICAgIC5hZGQobmV3IERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyKHR5cGUsIGZhbHNlKSk7Ci0gIH0KLQotICB2b2lkIG1ha2VWYXJEZWNsYXJhdGlvblR5cGVQbGFjZWhvbGRlcihWYXJpYWJsZURlZmluaXRpb25zIG5vZGUpIHsKLSAgICAvLyBUT0RPKHNtb2spOiBNYXliZSBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhpcyBtZXRob2QgYW5kCi0gICAgLy8gbWFrZURlY2xhcmF0aW9UeXBlUGxhY2Vob2xkZXIgaGF2ZSB0eXBlIGRlY2xhcmF0aW9uIHBsYWNlaG9sZGVyCi0gICAgLy8gY29sbGVjdG9yIGxvZ2ljIGluIHZpc2l0VmFyaWFibGVEZWZpbml0aW9ucyB3aGVuIHJlc29sdmVyIGJlY29tZXMgYmV0dGVyCi0gICAgLy8gYW5kL29yIGNhdGNoIHN5bnRheCBjaGFuZ2VzLgotICAgIGlmIChub2RlLnR5cGUgPT0gbnVsbCkgcmV0dXJuOwotICAgIGJvb2wgcmVxdWlyZXNWYXIgPSAhbm9kZS5tb2RpZmllcnMuaXNGaW5hbE9yQ29uc3Q7Ci0gICAgZGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXJzCi0gICAgICAgIC5hZGQobmV3IERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyKG5vZGUudHlwZSwgcmVxdWlyZXNWYXIpKTsKLSAgfQotCi0gIC8vLyBNYXJrcyBbbm9kZV0gdG8gYmUgZXJhc2VkIGluIHRoZSBvdXRwdXQuCi0gIC8vLyBUaGlzIGlzIGRvbmUgZm9yIGxpYnJhcnkgcHJlZml4ZXMgYmVjYXVzZSB0aGV5IGFyZSBub3QgdXNlZCBpbiB0aGUgb3V0cHV0Ci0gIC8vLyBiZWNhdXNlIGFsbCBpbXBvcnRzIGFyZSBmbGF0dGVuZWQgYW5kIGNvbmZsaWN0cyBhcmUgcmVuYW1lZCBhd2F5LgotICB2b2lkIG1ha2VFcmFzZVByZWZpeFBsYWNlaG9sZGVyKE5vZGUgbm9kZSkgewotICAgIGFzc2VydChub2RlIGlzIElkZW50aWZpZXIgfHwgbm9kZSBpcyBTZW5kKTsKLSAgICBwcmVmaXhOb2Rlc1RvRXJhc2UuYWRkKG5vZGUpOwotICB9Ci0KLSAgdm9pZCBtYWtlRWxlbWVudFBsYWNlaG9sZGVyKE5vZGUgbm9kZSwgRWxlbWVudCBlbGVtZW50KSB7Ci0gICAgYXNzZXJ0KG5vZGUgIT0gbnVsbCk7Ci0gICAgYXNzZXJ0KGVsZW1lbnQgIT0gbnVsbCk7Ci0gICAgTGlicmFyeUVsZW1lbnQgbGlicmFyeSA9IGVsZW1lbnQubGlicmFyeTsKLSAgICBpZiAoaWRlbnRpY2FsKGVsZW1lbnQsIG1haW5GdW5jdGlvbikpIHJldHVybjsKLSAgICBpZiAobGlicmFyeS5pc0RhcnRDb3JlKSByZXR1cm47Ci0KLSAgICBpZiAobGlicmFyeS5pc1BsYXRmb3JtTGlicmFyeSAmJiAhZWxlbWVudC5pc1RvcExldmVsKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQ2xhc3NFbGVtZW50IGNscyA9IGVsZW1lbnQuZW5jbG9zaW5nQ2xhc3M7Ci0gICAgaWYgKGNscyAhPSBudWxsICYmIGNscy5pc0VudW1DbGFzcykgewotICAgICAgLy8gRW51bXMgYW5kIGVudW0gdmFsdWVzIGNhbm5vdCBiZSBjaGFuZ2VkLCBzaW5jZSB0aGUgc2VtYW50aWNzIG9mCi0gICAgICAvLyBgdG9TdHJpbmdgIGlzIGRlZmluZWQgYnkgdGhlIG5hbWVzIG9mIHRoZSBkZWNsYXJhdGlvbnMuCi0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGVsZW1lbnQuaXNBY2Nlc3NvcikgewotICAgICAgZWxlbWVudCA9IChlbGVtZW50IGFzIEFjY2Vzc29yRWxlbWVudCkuYWJzdHJhY3RGaWVsZDsKLSAgICB9Ci0gICAgZWxlbWVudE5vZGVzLnB1dElmQWJzZW50KGVsZW1lbnQsICgpID0+IG5ldyBTZXQ8Tm9kZT4oKSkuYWRkKG5vZGUpOwotICB9Ci0KLSAgLy8vIE1hcmtzIFtub2RlXSB0byBiZSByZW5hbWVkIHBlci1saWJyYXJ5IGlmIGl0IG5hbWVzIGFuIGluc3RhbmNlIG1lbWJlcgotICAvLy8gYW5kIGhhcyBhIHByaXZhdGUgbmFtZS4KLSAgdm9pZCB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIoTm9kZSBub2RlLCBFbGVtZW50IGVsZW1lbnQpIHsKLSAgICBpZiAobm9kZSBpcyBJZGVudGlmaWVyICYmCi0gICAgICAgICFFbGVtZW50cy5pc1N0YXRpY09yVG9wTGV2ZWwoZWxlbWVudCkgJiYKLSAgICAgICAgIUVsZW1lbnRzLmlzTG9jYWwoZWxlbWVudCkgJiYKLSAgICAgICAgTmFtZS5pc1ByaXZhdGVOYW1lKG5vZGUuc291cmNlKSkgewotICAgICAgcHJpdmF0ZU5vZGVzCi0gICAgICAgICAgLnB1dElmQWJzZW50KGN1cnJlbnRFbGVtZW50LmxpYnJhcnksICgpID0+IG5ldyBTZXQ8SWRlbnRpZmllcj4oKSkKLSAgICAgICAgICAuYWRkKG5vZGUpOwotICAgIH0KLSAgfQotCi0gIHZvaWQgbWFrZVVucmVzb2x2ZWRQbGFjZWhvbGRlcihOb2RlIG5vZGUpIHsKLSAgICB1bnJlc29sdmVkTm9kZXMuYWRkKG5vZGUpOwotICB9Ci0KLSAgdm9pZCBtYWtlTG9jYWxQbGFjZWhvbGRlcihJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsKLSAgICBMb2NhbFBsYWNlaG9sZGVyIGdldExvY2FsUGxhY2Vob2xkZXIoKSB7Ci0gICAgICBTdHJpbmcgbmFtZSA9IGlkZW50aWZpZXIuc291cmNlOwotICAgICAgcmV0dXJuIGN1cnJlbnRMb2NhbFBsYWNlaG9sZGVycy5wdXRJZkFic2VudChuYW1lLCAoKSB7Ci0gICAgICAgIExvY2FsUGxhY2Vob2xkZXIgbG9jYWxQbGFjZWhvbGRlciA9IG5ldyBMb2NhbFBsYWNlaG9sZGVyKG5hbWUpOwotICAgICAgICBjdXJyZW50RnVuY3Rpb25TY29wZS5sb2NhbFBsYWNlaG9sZGVycy5hZGQobG9jYWxQbGFjZWhvbGRlcik7Ci0gICAgICAgIHJldHVybiBsb2NhbFBsYWNlaG9sZGVyOwotICAgICAgfSk7Ci0gICAgfQotICAgIGdldExvY2FsUGxhY2Vob2xkZXIoKS5ub2Rlcy5hZGQoaWRlbnRpZmllcik7Ci0gIH0KLQotICAvLy8gRmluZHMgdGhlIGZpcnN0IGNvbnN0cnVjdG9yIG9uIHRoZSBjaGFpbiBvZiBkZWZpbmluZ0NvbnN0cnVjdG9yIGZyb20KLSAgLy8vIFtlbGVtZW50XSB0aGF0IGlzIG5vdCBpbiBhIHN5bnRoZXRpYyBjbGFzcy4KLSAgRWxlbWVudCBmaW5kRGVmaW5pbmdDb25zdHJ1Y3RvcihDb25zdHJ1Y3RvckVsZW1lbnQgZWxlbWVudCkgewotICAgIHdoaWxlIChlbGVtZW50LmRlZmluaW5nQ29uc3RydWN0b3IgIT0gbnVsbCkgewotICAgICAgZWxlbWVudCA9IGVsZW1lbnQuZGVmaW5pbmdDb25zdHJ1Y3RvcjsKLSAgICB9Ci0gICAgcmV0dXJuIGVsZW1lbnQ7Ci0gIH0KLQotICB2b2lkIHRyeU1ha2VDb25zdHJ1Y3RvclBsYWNlaG9sZGVyKE5vZGUgbm9kZSwgQ29uc3RydWN0b3JFbGVtZW50IGVsZW1lbnQpIHsKLSAgICBpZiAoRWxlbWVudHMuaXNVbnJlc29sdmVkKGVsZW1lbnQpKSB7Ci0gICAgICBtYWtlVW5yZXNvbHZlZFBsYWNlaG9sZGVyKG5vZGUpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyBBIGxpYnJhcnkgcHJlZml4LgotICAgIE5vZGUgcHJlZml4OwotICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBjbGFzcyB3aXRoIHRoZSBjb25zdHJ1Y3Rvci4KLSAgICBOb2RlIGNsYXNzTmFtZTsKLSAgICAvLyBXaWxsIGJlIG51bGwgZm9yIHVubmFtZWQgY29uc3RydWN0b3JzLgotICAgIElkZW50aWZpZXIgY29uc3RydWN0b3JOYW1lOwotICAgIC8vIEZpcnN0IGRlY29uc3RydWN0IHRoZSBjb25zdHJ1Y3RvciwgdGhlcmUgYXJlIDQgcG9zc2liaWxpdGllczoKLSAgICAvLyAgQ2xhc3NOYW1lKCkKLSAgICAvLyAgcHJlZml4LkNsYXNzTmFtZSgpCi0gICAgLy8gIENsYXNzTmFtZS5jb25zdHJ1Y3Rvck5hbWUoKQotICAgIC8vICBwcmVmaXguQ2xhc3NOYW1lLmNvbnN0cnVjdG9yTmFtZSgpCi0gICAgaWYgKG5vZGUgaXMgU2VuZCkgewotICAgICAgaWYgKG5vZGUucmVjZWl2ZXIgaXMgU2VuZCkgewotICAgICAgICBTZW5kIHJlY2VpdmVyID0gbm9kZS5yZWNlaXZlcjsKLSAgICAgICAgLy8gcHJlZml4LkNsYXNzTmFtZS5jb25zdHJ1Y3Rvck5hbWUoKQotICAgICAgICBhc3NlcnQodHJlZUVsZW1lbnRzW3JlY2VpdmVyLnJlY2VpdmVyXSAhPSBudWxsICYmCi0gICAgICAgICAgICB0cmVlRWxlbWVudHNbcmVjZWl2ZXIucmVjZWl2ZXJdLmlzUHJlZml4KTsKLSAgICAgICAgcHJlZml4ID0gcmVjZWl2ZXIucmVjZWl2ZXI7Ci0gICAgICAgIGNsYXNzTmFtZSA9IHJlY2VpdmVyLnNlbGVjdG9yOwotICAgICAgICBjb25zdHJ1Y3Rvck5hbWUgPSBub2RlLnNlbGVjdG9yOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgRWxlbWVudCByZWNlaXZlckVsZW1lbnQgPSB0cmVlRWxlbWVudHNbbm9kZS5yZWNlaXZlcl07Ci0gICAgICAgIGlmIChyZWNlaXZlckVsZW1lbnQgIT0gbnVsbCAmJiByZWNlaXZlckVsZW1lbnQuaXNQcmVmaXgpIHsKLSAgICAgICAgICAvLyBwcmVmaXguQ2xhc3NOYW1lKCkKLSAgICAgICAgICBwcmVmaXggPSBub2RlLnJlY2VpdmVyOwotICAgICAgICAgIGNsYXNzTmFtZSA9IG5vZGUuc2VsZWN0b3I7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gQ2xhc3NOYW1lLmNvbnN0cnVjdG9yTmFtZSgpCi0gICAgICAgICAgY2xhc3NOYW1lID0gbm9kZS5yZWNlaXZlcjsKLSAgICAgICAgICBjb25zdHJ1Y3Rvck5hbWUgPSBub2RlLnNlbGVjdG9yOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIC8vIENsYXNzTmFtZSgpCi0gICAgICBjbGFzc05hbWUgPSBub2RlOwotICAgIH0KLQotICAgIGlmIChwcmVmaXggIT0gbnVsbCkgewotICAgICAgbWFrZUVyYXNlUHJlZml4UGxhY2Vob2xkZXIocHJlZml4KTsKLSAgICB9Ci0KLSAgICBpZiAoY2xhc3NOYW1lIGlzIFR5cGVBbm5vdGF0aW9uKSB7Ci0gICAgICB2aXNpdFR5cGVBbm5vdGF0aW9uKGNsYXNzTmFtZSk7Ci0gICAgfSBlbHNlIGlmIChFbGVtZW50cy5pc1VucmVzb2x2ZWQoZWxlbWVudCkpIHsKLSAgICAgIC8vIFdlIGhhbmRsZSB1bnJlc29sdmVkIG5vZGVzIGVsc2V3aGVyZS4KLSAgICB9IGVsc2UgaWYgKGNsYXNzTmFtZS5pc1RoaXMoKSB8fCBjbGFzc05hbWUuaXNTdXBlcigpKSB7Ci0gICAgICAvLyBEbyBub3QgcmVuYW1lIHN1cGVyIGFuZCB0aGlzLgotICAgIH0gZWxzZSBpZiAoY2xhc3NOYW1lIGlzIElkZW50aWZpZXIpIHsKLSAgICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIoY2xhc3NOYW1lLCBlbGVtZW50LmNvbnRleHRDbGFzcyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHRocm93ICJCYWQgdHlwZSBvZiBjb25zdHJ1Y3RvciBuYW1lICRjbGFzc05hbWUiOwotICAgIH0KLQotICAgIGlmIChjb25zdHJ1Y3Rvck5hbWUgIT0gbnVsbCkgewotICAgICAgRWxlbWVudCBkZWZpbmluZ0NvbnN0cnVjdG9yID0gZmluZERlZmluaW5nQ29uc3RydWN0b3IoZWxlbWVudCk7Ci0gICAgICBjb25zdHJ1Y3RvclBsYWNlaG9sZGVycy5hZGQoCi0gICAgICAgICAgbmV3IENvbnN0cnVjdG9yUGxhY2Vob2xkZXIoY29uc3RydWN0b3JOYW1lLCBkZWZpbmluZ0NvbnN0cnVjdG9yKSk7Ci0gICAgICB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIoY29uc3RydWN0b3JOYW1lLCBlbGVtZW50KTsKLSAgICB9Ci0gIH0KLQotICB2b2lkIGludGVybmFsRXJyb3IoU3RyaW5nIHJlYXNvbiwge05vZGUgbm9kZX0pIHsKLSAgICByZXBvcnRlci5pbnRlcm5hbEVycm9yKG5vZGUsIHJlYXNvbik7Ci0gIH0KLQotICB2aXNpdChOb2RlIG5vZGUpID0+IChub2RlID09IG51bGwpID8gbnVsbCA6IG5vZGUuYWNjZXB0KHRoaXMpOwotCi0gIHZpc2l0Tm9kZShOb2RlIG5vZGUpIHsKLSAgICBub2RlLnZpc2l0Q2hpbGRyZW4odGhpcyk7Ci0gIH0gLy8gV2UgbXVzdCBnbyBkZWVwZXIuCi0KLSAgdmlzaXROZXdFeHByZXNzaW9uKE5ld0V4cHJlc3Npb24gbm9kZSkgewotICAgIFNlbmQgc2VuZCA9IG5vZGUuc2VuZDsKLSAgICBEYXJ0VHlwZSB0eXBlID0gdHJlZUVsZW1lbnRzLmdldFR5cGUobm9kZSk7Ci0gICAgYXNzZXJ0KHR5cGUgIT0gbnVsbCk7Ci0gICAgRWxlbWVudCBjb25zdHJ1Y3RvciA9IHRyZWVFbGVtZW50c1tzZW5kXTsKLSAgICBhc3NlcnQoY29uc3RydWN0b3IgIT0gbnVsbCk7Ci0gICAgYXNzZXJ0KHNlbmQucmVjZWl2ZXIgPT0gbnVsbCk7Ci0gICAgaWYgKCFFbGVtZW50cy5pc01hbGZvcm1lZChjb25zdHJ1Y3RvcikpIHsKLSAgICAgIHRyeU1ha2VDb25zdHJ1Y3RvclBsYWNlaG9sZGVyKG5vZGUuc2VuZC5zZWxlY3RvciwgY29uc3RydWN0b3IpOwotICAgICAgLy8gVE9ETyhzbW9rKTogU2hvdWxkIHRoaXMgYmUgaW4gdmlzaXROYW1lZEFyZ3VtZW50PwotICAgICAgLy8gRmllbGQgbmFtZXMgY2FuIGJlIGV4cG9zZWQgYXMgbmFtZXMgb2Ygb3B0aW9uYWwgYXJndW1lbnRzLCBlLmcuCi0gICAgICAvLyBjbGFzcyBDIHsKLSAgICAgIC8vICAgZmluYWwgZmllbGQ7Ci0gICAgICAvLyAgIEMoW3RoaXMuZmllbGRdKTsKLSAgICAgIC8vIH0KLSAgICAgIC8vIERvIG5vdCBmb3JnZXQgdG8gcmVuYW1lIHRoZW0gYXMgd2VsbC4KLSAgICAgIEZ1bmN0aW9uRWxlbWVudCBjb25zdHJ1Y3RvckZ1bmN0aW9uID0gY29uc3RydWN0b3I7Ci0gICAgICBMaXN0PEVsZW1lbnQ+IG9wdGlvbmFsUGFyYW1ldGVycyA9Ci0gICAgICAgICAgY29uc3RydWN0b3JGdW5jdGlvbi5mdW5jdGlvblNpZ25hdHVyZS5vcHRpb25hbFBhcmFtZXRlcnM7Ci0gICAgICBmb3IgKGZpbmFsIGFyZ3VtZW50IGluIHNlbmQuYXJndW1lbnRzTm9kZSkgewotICAgICAgICBOYW1lZEFyZ3VtZW50IG5hbWVkID0gYXJndW1lbnQuYXNOYW1lZEFyZ3VtZW50KCk7Ci0gICAgICAgIGlmIChuYW1lZCA9PSBudWxsKSBjb250aW51ZTsKLSAgICAgICAgSWRlbnRpZmllciBuYW1lID0gbmFtZWQubmFtZTsKLSAgICAgICAgU3RyaW5nIG5hbWVBc1N0cmluZyA9IG5hbWUuc291cmNlOwotICAgICAgICBmb3IgKGZpbmFsIHBhcmFtZXRlciBpbiBvcHRpb25hbFBhcmFtZXRlcnMpIHsKLSAgICAgICAgICBpZiAocGFyYW1ldGVyLmlzSW5pdGlhbGl6aW5nRm9ybWFsKSB7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVyLm5hbWUgPT0gbmFtZUFzU3RyaW5nKSB7Ci0gICAgICAgICAgICAgIHRyeU1ha2VNZW1iZXJQbGFjZWhvbGRlcihuYW1lKTsKLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIG1ha2VVbnJlc29sdmVkUGxhY2Vob2xkZXIobm9kZS5zZW5kLnNlbGVjdG9yKTsKLSAgICB9Ci0gICAgdmlzaXQobm9kZS5zZW5kLmFyZ3VtZW50c05vZGUpOwotICB9Ci0KLSAgdmlzaXRTZW5kKFNlbmQgc2VuZCkgewotICAgIEVsZW1lbnQgZWxlbWVudCA9IHRyZWVFbGVtZW50c1tzZW5kXTsKLSAgICB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIoc2VuZC5zZWxlY3RvciwgZWxlbWVudCk7Ci0gICAgbmV3IFNlbmRWaXNpdG9yKHRoaXMsIHRyZWVFbGVtZW50cykudmlzaXRTZW5kKHNlbmQpOwotICAgIHNlbmQudmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZpc2l0U2VuZFNldChTZW5kU2V0IHNlbmQpIHsKLSAgICBFbGVtZW50IGVsZW1lbnQgPSB0cmVlRWxlbWVudHNbc2VuZF07Ci0gICAgaWYgKEVsZW1lbnRzLmlzTWFsZm9ybWVkKGVsZW1lbnQpKSB7Ci0gICAgICAvLyBDb21wbGljYXRlZCBjYXNlOiBjb25zdHJ1Y3RzIGxpa2UgcmVjZWl2ZXIuc2VsZWN0b3IrKyBjYW4gcmVzb2x2ZQotICAgICAgLy8gdG8gRXJyb25lb3VzRWxlbWVudC4gIEZvcnR1bmF0ZWx5LCByZWNlaXZlci5zZWxlY3RvciBzdGlsbAotICAgICAgLy8gY2FuIGJlIHJlc292ZWQgdmlhIHRyZWVFbGVtZW50c1tzZW5kLnNlbGVjdG9yXSwgdGhhdCdzIGFsbAotICAgICAgLy8gdGhhdCBpcyBuZWVkZWQgdG8gcmVuYW1lIHRoZSBjb25zdHJ1Y3QgcHJvcGVybHkuCi0gICAgICBlbGVtZW50ID0gdHJlZUVsZW1lbnRzW3NlbmQuc2VsZWN0b3JdOwotICAgIH0KLSAgICB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIoc2VuZC5zZWxlY3RvciwgZWxlbWVudCk7Ci0gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkgewotICAgICAgaWYgKHNlbmQucmVjZWl2ZXIgIT0gbnVsbCkgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKHNlbmQuc2VsZWN0b3IpOwotICAgIH0gZWxzZSBpZiAoIWVsZW1lbnQuaXNNYWxmb3JtZWQpIHsKLSAgICAgIGlmIChFbGVtZW50cy5pc1N0YXRpY09yVG9wTGV2ZWwoZWxlbWVudCkpIHsKLSAgICAgICAgLy8gVE9ETyhzbW9rKTogV29ydGggaW52ZXN0aWdhdGluZyB3aHkgc29tZXRpbWVzIHdlIGdldCBnZXR0ZXIvc2V0dGVyCi0gICAgICAgIC8vIGhlcmUgYW5kIHNvbWV0aW1lcyBhYnN0cmFjdCBmaWVsZC4KLSAgICAgICAgYXNzZXJ0KGVsZW1lbnQuaXNDbGFzcyB8fAotICAgICAgICAgICAgZWxlbWVudCBpcyBWYXJpYWJsZUVsZW1lbnQgfHwKLSAgICAgICAgICAgIGVsZW1lbnQuaXNBY2Nlc3NvciB8fAotICAgICAgICAgICAgZWxlbWVudC5pc0Fic3RyYWN0RmllbGQgfHwKLSAgICAgICAgICAgIGVsZW1lbnQuaXNGdW5jdGlvbiB8fAotICAgICAgICAgICAgZWxlbWVudC5pc1R5cGVkZWYgfHwKLSAgICAgICAgICAgIGVsZW1lbnQgaXMgVHlwZVZhcmlhYmxlRWxlbWVudCk7Ci0gICAgICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIoc2VuZC5zZWxlY3RvciwgZWxlbWVudCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBzZW5kLnNlbGVjdG9yLmFzSWRlbnRpZmllcigpOwotICAgICAgICBpZiAoaWRlbnRpZmllciA9PSBudWxsKSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIG9wdGlvbmFsIGZ1bmN0aW9uIGV4cHJlc3Npb24gcGFyYW1ldGVycyB3aXRoIGRlZmF1bHQgdmFsdWVzLgotICAgICAgICAgIGlkZW50aWZpZXIgPSBzZW5kLnNlbGVjdG9yLmFzRnVuY3Rpb25FeHByZXNzaW9uKCkubmFtZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRWxlbWVudHMuaXNJbnN0YW5jZUZpZWxkKGVsZW1lbnQpKSB7Ci0gICAgICAgICAgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKGlkZW50aWZpZXIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHRyeU1ha2VMb2NhbFBsYWNlaG9sZGVyKGVsZW1lbnQsIGlkZW50aWZpZXIpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIHNlbmQudmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZpc2l0VHlwZUFubm90YXRpb24oVHlwZUFubm90YXRpb24gbm9kZSkgewotICAgIGZpbmFsIHR5cGUgPSB0cmVlRWxlbWVudHMuZ2V0VHlwZShub2RlKTsKLSAgICBhc3NlcnQoaW52YXJpYW50KG5vZGUsIHR5cGUgIT0gbnVsbCwKLSAgICAgICAgbWVzc2FnZTogIk1pc3NpbmcgdHlwZSBmb3IgdHlwZSBhbm5vdGF0aW9uOiAkdHJlZUVsZW1lbnRzIikpOwotICAgIGlmICghdHlwZS5pc1ZvaWQpIHsKLSAgICAgIGlmICghdHlwZS50cmVhdEFzRHluYW1pYykgewotICAgICAgICBpZiAodHlwZSBpcyBUeXBlVmFyaWFibGVUeXBlKSB7Ci0gICAgICAgICAgbWFrZVR5cGVWYXJpYWJsZVBsYWNlaG9sZGVyKG5vZGUudHlwZU5hbWUsIHR5cGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG1ha2VUeXBlUGxhY2Vob2xkZXIobm9kZS50eXBlTmFtZSwgdHlwZSk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoIXR5cGUuaXNEeW5hbWljKSB7Ci0gICAgICAgIG1ha2VVbnJlc29sdmVkUGxhY2Vob2xkZXIobm9kZS50eXBlTmFtZSk7Ci0gICAgICB9Ci0gICAgfQotICAgIC8vIFZpc2l0IG9ubHkgdHlwZSBhcmd1bWVudHMsIG90aGVyd2lzZSBpbiBjYXNlIG9mIGxpYi5DbGFzcyB0eXBlCi0gICAgLy8gYW5ub3RhdGlvbiB0eXBlTmFtZSBpcyBTZW5kIGFuZCB3ZSBnbyB0byB2aXNpdEdldHRlclNlbmQsIGFzIGEgcmVzdWx0Ci0gICAgLy8gIkNsYXNzIiBpcyBhZGRlZCB0byBtZW1iZXIgcGxhY2Vob2xkZXJzLgotICAgIHZpc2l0KG5vZGUudHlwZUFyZ3VtZW50cyk7Ci0gIH0KLQotICB2aXNpdFZhcmlhYmxlRGVmaW5pdGlvbnMoVmFyaWFibGVEZWZpbml0aW9ucyBub2RlKSB7Ci0gICAgLy8gQ29sbGVjdCBvbmx5IGxvY2FsIHBsYWNlaG9sZGVycy4KLSAgICBmb3IgKE5vZGUgZGVmaW5pdGlvbiBpbiBub2RlLmRlZmluaXRpb25zLm5vZGVzKSB7Ci0gICAgICBFbGVtZW50IGRlZmluaXRpb25FbGVtZW50ID0gdHJlZUVsZW1lbnRzW2RlZmluaXRpb25dOwotICAgICAgLy8gZGVmaW5pdGlvbkVsZW1lbnQgbWF5IGJlIG51bGwgaWYgd2UncmUgaW5zaWRlIHZhcmlhYmxlIGRlZmluaXRpb25zCi0gICAgICAvLyBvZiBhIGZ1bmN0aW9uIHRoYXQgaXMgYSBwYXJhbWV0ZXIgb2YgYW5vdGhlciBmdW5jdGlvbi4KLSAgICAgIC8vIFRPRE8oc21vayk6IEZpeCB0aGlzIHdoZW4gcmVzb2x2ZXIgY29ycmVjdGx5IGRlYWxzIHdpdGgKLSAgICAgIC8vIHN1Y2ggY2FzZXMuCi0gICAgICBpZiAoZGVmaW5pdGlvbkVsZW1lbnQgPT0gbnVsbCkgY29udGludWU7Ci0KLSAgICAgIFNlbmQgc2VuZCA9IGRlZmluaXRpb24uYXNTZW5kKCk7Ci0gICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBkZWZpbml0aW9uIGlzIElkZW50aWZpZXIKLSAgICAgICAgICA/IGRlZmluaXRpb24KLSAgICAgICAgICA6IGRlZmluaXRpb24gaXMgU2VuZAotICAgICAgICAgICAgICA/IChzZW5kLnNlbGVjdG9yIGlzIElkZW50aWZpZXIgPyBzZW5kLnNlbGVjdG9yIDogbnVsbCkKLSAgICAgICAgICAgICAgOiBudWxsOwotCi0gICAgICB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIoaWRlbnRpZmllciwgZGVmaW5pdGlvbkVsZW1lbnQpOwotCi0gICAgICBpZiAoc2VuZCAhPSBudWxsKSB7Ci0gICAgICAgIC8vIE1heSBnZXQgRnVuY3Rpb25FeHByZXNzaW9uIGhlcmUgaW4gZGVmaW5pdGlvbi5zZWxlY3RvcgotICAgICAgICAvLyBpbiBjYXNlIG9mIEEoaW50IHRoaXMuZigpKTsKLSAgICAgICAgaWYgKHNlbmQuc2VsZWN0b3IgaXMgSWRlbnRpZmllcikgewotICAgICAgICAgIGlmIChkZWZpbml0aW9uRWxlbWVudC5pc0luaXRpYWxpemluZ0Zvcm1hbCkgewotICAgICAgICAgICAgdHJ5TWFrZU1lbWJlclBsYWNlaG9sZGVyKHNlbmQuc2VsZWN0b3IpOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0cnlNYWtlTG9jYWxQbGFjZWhvbGRlcihkZWZpbml0aW9uRWxlbWVudCwgc2VuZC5zZWxlY3Rvcik7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGFzc2VydChzZW5kLnNlbGVjdG9yIGlzIEZ1bmN0aW9uRXhwcmVzc2lvbik7Ci0gICAgICAgICAgaWYgKGRlZmluaXRpb25FbGVtZW50LmlzSW5pdGlhbGl6aW5nRm9ybWFsKSB7Ci0gICAgICAgICAgICB0cnlNYWtlTWVtYmVyUGxhY2Vob2xkZXIoc2VuZC5zZWxlY3Rvci5hc0Z1bmN0aW9uRXhwcmVzc2lvbigpLm5hbWUpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSBlbHNlIGlmIChkZWZpbml0aW9uIGlzIElkZW50aWZpZXIpIHsKLSAgICAgICAgdHJ5TWFrZUxvY2FsUGxhY2Vob2xkZXIoZGVmaW5pdGlvbkVsZW1lbnQsIGRlZmluaXRpb24pOwotICAgICAgfSBlbHNlIGlmIChkZWZpbml0aW9uIGlzIEZ1bmN0aW9uRXhwcmVzc2lvbikgewotICAgICAgICAvLyBTa2lwLCBpdCB3aWxsIGJlIHByb2Nlc3NlZCBpbiB2aXNpdEZ1bmN0aW9uRXhwcmVzc2lvbi4KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGludGVybmFsRXJyb3IoJ1VuZXhwZWN0ZWQgZGVmaW5pdGlvbiBzdHJ1Y3R1cmUgJGRlZmluaXRpb24nKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgbm9kZS52aXNpdENoaWxkcmVuKHRoaXMpOwotICB9Ci0KLSAgdmlzaXRGdW5jdGlvbkV4cHJlc3Npb24oRnVuY3Rpb25FeHByZXNzaW9uIG5vZGUpIHsKLSAgICBib29sIGlzS2V5d29yZChJZGVudGlmaWVyIGlkKSA9PgotICAgICAgICBpZCAhPSBudWxsICYmIEtleXdvcmQua2V5d29yZHNbaWQuc291cmNlXSAhPSBudWxsOwotCi0gICAgRWxlbWVudCBlbGVtZW50ID0gdHJlZUVsZW1lbnRzW25vZGVdOwotICAgIC8vIE1heSBnZXQgbnVsbDsKLSAgICBpZiAoZWxlbWVudCAhPSBudWxsKSB7Ci0gICAgICB0cnlNYWtlUHJpdmF0ZUlkZW50aWZpZXIobm9kZS5uYW1lLCBlbGVtZW50KTsKLQotICAgICAgLy8gUmVuYW1lIG9ubHkgbG9jYWwgZnVuY3Rpb25zLgotICAgICAgaWYgKHRvcG1vc3RFbmNsb3NpbmdGdW5jdGlvbiA9PSBudWxsICYmCi0gICAgICAgICAgZWxlbWVudCBpcyEgTG9jYWxQYXJhbWV0ZXJFbGVtZW50ICYmCi0gICAgICAgICAgZWxlbWVudCBpcyEgSW5pdGlhbGl6aW5nRm9ybWFsRWxlbWVudCkgewotICAgICAgICB0b3Btb3N0RW5jbG9zaW5nRnVuY3Rpb24gPSBlbGVtZW50OwotICAgICAgfQotICAgICAgaWYgKCFpZGVudGljYWwoZWxlbWVudCwgY3VycmVudEVsZW1lbnQpKSB7Ci0gICAgICAgIGlmIChub2RlLm5hbWUgIT0gbnVsbCkgewotICAgICAgICAgIGFzc2VydChub2RlLm5hbWUgaXMgSWRlbnRpZmllcik7Ci0gICAgICAgICAgdHJ5TWFrZUxvY2FsUGxhY2Vob2xkZXIoZWxlbWVudCwgbm9kZS5uYW1lKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICAgIG5vZGUudmlzaXRDaGlsZHJlbih0aGlzKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBvbWl0IHJldHVybiB0eXBlIG9mIG1ldGhvZHMgd2hpY2ggbmFtZXMgYXJlCi0gICAgLy8gaWRlbnRpZmllcnMsIGJlY2F1c2UgdGhlIGZvbGxvd2luZyB3b3JrcyBmaW5lOgotICAgIC8vIGludCBpbnRlcmZhY2UoKSA9PiAxOwotICAgIC8vIEJ1dCBvbWl0dGluZyAnaW50JyBtYWtlcyBWTSB1bmhhcHB5LgotICAgIC8vIFRPRE8oc21vayk6IFJlbW92ZSBpdCB3aGVuIGh0dHA6Ly9kYXJ0YnVnLmNvbS81Mjc4IGlzIGZpeGVkLgotICAgIGlmIChub2RlLm5hbWUgPT0gbnVsbCB8fCAhaXNLZXl3b3JkKG5vZGUubmFtZS5hc0lkZW50aWZpZXIoKSkpIHsKLSAgICAgIG1ha2VPbWl0RGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXIobm9kZS5yZXR1cm5UeXBlKTsKLSAgICB9Ci0gICAgY29sbGVjdEZ1bmN0aW9uUGFyYW1ldGVycyhub2RlLnBhcmFtZXRlcnMpOwotICB9Ci0KLSAgdm9pZCBjb2xsZWN0RnVuY3Rpb25QYXJhbWV0ZXJzKE5vZGVMaXN0IHBhcmFtZXRlcnMpIHsKLSAgICBpZiAocGFyYW1ldGVycyA9PSBudWxsKSByZXR1cm47Ci0gICAgZm9yIChOb2RlIHBhcmFtZXRlciBpbiBwYXJhbWV0ZXJzLm5vZGVzKSB7Ci0gICAgICBpZiAocGFyYW1ldGVyIGlzIE5vZGVMaXN0KSB7Ci0gICAgICAgIC8vIE9wdGlvbmFsIHBhcmFtZXRlciBsaXN0LgotICAgICAgICBjb2xsZWN0RnVuY3Rpb25QYXJhbWV0ZXJzKHBhcmFtZXRlcik7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnQocGFyYW1ldGVyIGlzIFZhcmlhYmxlRGVmaW5pdGlvbnMpOwotICAgICAgICBtYWtlT21pdERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVyKAotICAgICAgICAgICAgcGFyYW1ldGVyLmFzVmFyaWFibGVEZWZpbml0aW9ucygpLnR5cGUpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIHZpc2l0Q2xhc3NOb2RlKENsYXNzTm9kZSBub2RlKSB7Ci0gICAgQ2xhc3NFbGVtZW50IGNsYXNzRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50OwotICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZS5uYW1lLCBjbGFzc0VsZW1lbnQpOwotICAgIG5vZGUudmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZpc2l0TmFtZWRNaXhpbkFwcGxpY2F0aW9uKE5hbWVkTWl4aW5BcHBsaWNhdGlvbiBub2RlKSB7Ci0gICAgQ2xhc3NFbGVtZW50IGNsYXNzRWxlbWVudCA9IGN1cnJlbnRFbGVtZW50OwotICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZS5uYW1lLCBjbGFzc0VsZW1lbnQpOwotICAgIG5vZGUudmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZpc2l0VHlwZVZhcmlhYmxlKFR5cGVWYXJpYWJsZSBub2RlKSB7Ci0gICAgRGFydFR5cGUgdHlwZSA9IHRyZWVFbGVtZW50cy5nZXRUeXBlKG5vZGUpOwotICAgIGFzc2VydChpbnZhcmlhbnQobm9kZSwgdHlwZSAhPSBudWxsLAotICAgICAgICBtZXNzYWdlOiAiTWlzc2luZyB0eXBlIGZvciB0eXBlIHZhcmlhYmxlOiAkdHJlZUVsZW1lbnRzIikpOwotICAgIG1ha2VUeXBlVmFyaWFibGVQbGFjZWhvbGRlcihub2RlLm5hbWUsIHR5cGUpOwotICAgIG5vZGUudmlzaXRDaGlsZHJlbih0aGlzKTsKLSAgfQotCi0gIHZpc2l0VHlwZWRlZihUeXBlZGVmIG5vZGUpIHsKLSAgICBhc3NlcnQoY3VycmVudEVsZW1lbnQgaXMgVHlwZWRlZkVsZW1lbnQpOwotICAgIG1ha2VFbGVtZW50UGxhY2Vob2xkZXIobm9kZS5uYW1lLCBjdXJyZW50RWxlbWVudCk7Ci0gICAgbm9kZS52aXNpdENoaWxkcmVuKHRoaXMpOwotICAgIG1ha2VPbWl0RGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXIobm9kZS5yZXR1cm5UeXBlKTsKLSAgICBjb2xsZWN0RnVuY3Rpb25QYXJhbWV0ZXJzKG5vZGUuZm9ybWFscyk7Ci0gIH0KLQotICB2aXNpdEJsb2NrKEJsb2NrIG5vZGUpIHsKLSAgICBmb3IgKE5vZGUgc3RhdGVtZW50IGluIG5vZGUuc3RhdGVtZW50cy5ub2RlcykgewotICAgICAgaWYgKHN0YXRlbWVudCBpcyBWYXJpYWJsZURlZmluaXRpb25zKSB7Ci0gICAgICAgIG1ha2VWYXJEZWNsYXJhdGlvblR5cGVQbGFjZWhvbGRlcihzdGF0ZW1lbnQpOwotICAgICAgfQotICAgIH0KLSAgICBub2RlLnZpc2l0Q2hpbGRyZW4odGhpcyk7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9yZW5hbWVyLmRhcnQgYi9wa2cvY29tcGlsZXIvbGliL3NyYy9kYXJ0X2JhY2tlbmQvcmVuYW1lci5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWIyNmQ3Li4wMDAwMDAwCi0tLSBhL3BrZy9jb21waWxlci9saWIvc3JjL2RhcnRfYmFja2VuZC9yZW5hbWVyLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzNzIgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEyLCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1wYXJ0IG9mIGRhcnRfYmFja2VuZDsKLQotQ29tcGFyYXRvciBnZXQgX2NvbXBhcmVOb2RlcyA9PiBjb21wYXJlQnkoKG4pID0+IG4uZ2V0QmVnaW5Ub2tlbigpLmNoYXJPZmZzZXQpOwotCi1hYnN0cmFjdCBjbGFzcyBSZW5hbWFibGUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKLSAgZmluYWwgaW50IFJFTkFNQUJMRV9UWVBFX0VMRU1FTlQgPSAxOwotICBmaW5hbCBpbnQgUkVOQU1BQkxFX1RZUEVfTUVNQkVSID0gMjsKLSAgZmluYWwgaW50IFJFTkFNQUJMRV9UWVBFX0xPQ0FMID0gMzsKLQotICBmaW5hbCBTZXQ8Tm9kZT4gbm9kZXM7Ci0KLSAgUmVuYW1hYmxlKHRoaXMubm9kZXMpOwotICBpbnQgY29tcGFyZVRvKFJlbmFtYWJsZSBvdGhlcikgewotICAgIGludCBub2Rlc0RpZmYgPSBvdGhlci5ub2Rlcy5sZW5ndGguY29tcGFyZVRvKHRoaXMubm9kZXMubGVuZ3RoKTsKLSAgICBpZiAobm9kZXNEaWZmICE9IDApIHJldHVybiBub2Rlc0RpZmY7Ci0gICAgaW50IHR5cGVEaWZmID0gdGhpcy5raW5kLmNvbXBhcmVUbyhvdGhlci5raW5kKTsKLSAgICByZXR1cm4gdHlwZURpZmYgIT0gMCA/IHR5cGVEaWZmIDogY29tcGFyZUludGVybmFscyhvdGhlcik7Ci0gIH0KLQotICBpbnQgY29tcGFyZUludGVybmFscyhSZW5hbWFibGUgb3RoZXIpOwotICBpbnQgZ2V0IGtpbmQ7Ci0KLSAgU3RyaW5nIGNyZWF0ZU5ld05hbWUoUGxhY2Vob2xkZXJSZW5hbWVyIHBsYWNlaG9sZGVyUmVuYW1lcik7Ci19Ci0KLWNsYXNzIEdsb2JhbFJlbmFtYWJsZSBleHRlbmRzIFJlbmFtYWJsZSB7Ci0gIGZpbmFsIEVudGl0eSBlbnRpdHk7Ci0KLSAgR2xvYmFsUmVuYW1hYmxlKHRoaXMuZW50aXR5LCBTZXQ8Tm9kZT4gbm9kZXMpIDogc3VwZXIobm9kZXMpOwotCi0gIGludCBjb21wYXJlSW50ZXJuYWxzKEdsb2JhbFJlbmFtYWJsZSBvdGhlcikgPT4KLSAgICAgIGNvbXBhcmVFbGVtZW50cyh0aGlzLmVudGl0eSwgb3RoZXIuZW50aXR5KTsKLSAgaW50IGdldCBraW5kID0+IFJFTkFNQUJMRV9UWVBFX0VMRU1FTlQ7Ci0gIFN0cmluZyBjcmVhdGVOZXdOYW1lKFBsYWNlaG9sZGVyUmVuYW1lciBwbGFjZWhvbGRlclJlbmFtZXIpIHsKLSAgICByZXR1cm4gcGxhY2Vob2xkZXJSZW5hbWVyLl9yZW5hbWVHbG9iYWwoZW50aXR5KTsKLSAgfQotfQotCi1jbGFzcyBNZW1iZXJSZW5hbWFibGUgZXh0ZW5kcyBSZW5hbWFibGUgewotICBmaW5hbCBTdHJpbmcgaWRlbnRpZmllcjsKLSAgTWVtYmVyUmVuYW1hYmxlKHRoaXMuaWRlbnRpZmllciwgU2V0PE5vZGU+IG5vZGVzKSA6IHN1cGVyKG5vZGVzKTsKLSAgaW50IGNvbXBhcmVJbnRlcm5hbHMoTWVtYmVyUmVuYW1hYmxlIG90aGVyKSA9PgotICAgICAgdGhpcy5pZGVudGlmaWVyLmNvbXBhcmVUbyhvdGhlci5pZGVudGlmaWVyKTsKLSAgaW50IGdldCBraW5kID0+IFJFTkFNQUJMRV9UWVBFX01FTUJFUjsKLSAgU3RyaW5nIGNyZWF0ZU5ld05hbWUoUGxhY2Vob2xkZXJSZW5hbWVyIHBsYWNlaG9sZGVyUmVuYW1lcikgewotICAgIHJldHVybiBwbGFjZWhvbGRlclJlbmFtZXIuX2dlbmVyYXRlTWVtYmVyTmFtZShpZGVudGlmaWVyKTsKLSAgfQotfQotCi1jbGFzcyBMb2NhbFJlbmFtYWJsZSBleHRlbmRzIFJlbmFtYWJsZSB7Ci0gIExvY2FsUmVuYW1hYmxlKFNldDxOb2RlPiBub2RlcykgOiBzdXBlcihub2Rlcyk7Ci0gIGludCBjb21wYXJlSW50ZXJuYWxzKExvY2FsUmVuYW1hYmxlIG90aGVyKSA9PiBfY29tcGFyZU5vZGVzKAotICAgICAgc29ydGVkKHRoaXMubm9kZXMsIF9jb21wYXJlTm9kZXMpWzBdLAotICAgICAgc29ydGVkKG90aGVyLm5vZGVzLCBfY29tcGFyZU5vZGVzKVswXSk7Ci0gIGludCBnZXQga2luZCA9PiBSRU5BTUFCTEVfVFlQRV9MT0NBTDsKLSAgU3RyaW5nIGNyZWF0ZU5ld05hbWUoUGxhY2Vob2xkZXJSZW5hbWVyIHBsYWNlaG9sZGVyUmVuYW1lcikgewotICAgIHJldHVybiBwbGFjZWhvbGRlclJlbmFtZXIuX2dlbmVyYXRlVW5pcXVlVG9wTGV2ZWxOYW1lKCIiKTsKLSAgfQotfQotCi0vKioKLSAqIFJlbmFtZXMgb25seSB0b3AtbGV2ZWwgZWxlbWVudHMgdGhhdCB3b3VsZCBsZWFkIHRvIGFtYmlndWl0eSBpZiBub3QgcmVuYW1lZC4KLSAqLwotY2xhc3MgUGxhY2Vob2xkZXJSZW5hbWVyIHsKLSAgLy8vIEFmdGVyIHJ1bm5pbmcgW2NvbXB1dGVSZW5hbWVzXSB0aGlzIHdpbGwgY29udGFpbiB0aGUgY29tcHV0ZWQgcmVuYW1lcy4KLSAgZmluYWwgTWFwPE5vZGUsIFN0cmluZz4gcmVuYW1lcyA9IG5ldyBNYXA8Tm9kZSwgU3RyaW5nPigpOwotCi0gIC8vLyBBZnRlciBydW5uaW5nIFtjb21wdXRlUmVuYW1lc10gdGhpcyB3aWxsIG1hcCB0aGUgdXNlZCBwbGF0Zm9ybQotICAvLy8gbGlicmFyaWVzIHRvIHRoZWlyIHJlc3BlY3RpdmUgcHJlZml4ZXMuCi0gIGZpbmFsIE1hcDxMaWJyYXJ5RWxlbWVudCwgU3RyaW5nPiBwbGF0Zm9ybUltcG9ydHMgPQotICAgICAgPExpYnJhcnlFbGVtZW50LCBTdHJpbmc+e307Ci0KLSAgZmluYWwgYm9vbCBlbmFibGVNaW5pZmljYXRpb247Ci0gIGZpbmFsIFNldDxTdHJpbmc+IGZpeGVkRHluYW1pY05hbWVzOwotICBmaW5hbCBTZXQ8U3RyaW5nPiBmaXhlZFN0YXRpY05hbWVzOwotICBmaW5hbCBNYXA8RWxlbWVudCwgTGlicmFyeUVsZW1lbnQ+IHJlZXhwb3J0aW5nTGlicmFyaWVzOwotICBmaW5hbCBib29sIGN1dERlY2xhcmF0aW9uVHlwZXM7Ci0KLSAgZmluYWwgTWFwPEVudGl0eSwgU3RyaW5nPiBfcmVuYW1lZENhY2hlID0gbmV3IE1hcDxFbnRpdHksIFN0cmluZz4oKTsKLSAgZmluYWwgTWFwPEVudGl0eSwgTWFwPFN0cmluZywgU3RyaW5nPj4gX3ByaXZhdGVDYWNoZSA9Ci0gICAgICBuZXcgTWFwPEVudGl0eSwgTWFwPFN0cmluZywgU3RyaW5nPj4oKTsKLQotICAvLyBJZGVudGlmaWVycyB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCwgb3IgYXJlIHJlc2VydmVkIGJ5IHRoZQotICAvLyBsYW5ndWFnZS9wbGF0Zm9ybS4KLSAgU2V0PFN0cmluZz4gX2ZvcmJpZGRlbklkZW50aWZpZXJzOwotICBTZXQ8U3RyaW5nPiBfYWxsTmFtZWRQYXJhbWV0ZXJJZGVudGlmaWVyczsKLQotICBHZW5lcmF0b3IgX2dlbmVyYXRvcjsKLQotICBQbGFjZWhvbGRlclJlbmFtZXIoCi0gICAgICB0aGlzLmZpeGVkRHluYW1pY05hbWVzLCB0aGlzLmZpeGVkU3RhdGljTmFtZXMsIHRoaXMucmVleHBvcnRpbmdMaWJyYXJpZXMsCi0gICAgICB7dGhpcy5lbmFibGVNaW5pZmljYXRpb24sIHRoaXMuY3V0RGVjbGFyYXRpb25UeXBlc30pOwotCi0gIHZvaWQgX3JlbmFtZU5vZGVzKEl0ZXJhYmxlPE5vZGU+IG5vZGVzLCBTdHJpbmcgcmVuYW1lcihOb2RlIG5vZGUpKSB7Ci0gICAgZm9yIChOb2RlIG5vZGUgaW4gc29ydGVkKG5vZGVzLCBfY29tcGFyZU5vZGVzKSkgewotICAgICAgcmVuYW1lc1tub2RlXSA9IHJlbmFtZXIobm9kZSk7Ci0gICAgfQotICB9Ci0KLSAgU3RyaW5nIF9nZW5lcmF0ZVVuaXF1ZVRvcExldmVsTmFtZShTdHJpbmcgb3JpZ2luYWxOYW1lKSB7Ci0gICAgU3RyaW5nIG5ld05hbWUgPSBfZ2VuZXJhdG9yLmdlbmVyYXRlKG9yaWdpbmFsTmFtZSwgKG5hbWUpIHsKLSAgICAgIHJldHVybiBfZm9yYmlkZGVuSWRlbnRpZmllcnMuY29udGFpbnMobmFtZSkgfHwKLSAgICAgICAgICBfYWxsTmFtZWRQYXJhbWV0ZXJJZGVudGlmaWVycy5jb250YWlucyhuYW1lKTsKLSAgICB9KTsKLSAgICBfZm9yYmlkZGVuSWRlbnRpZmllcnMuYWRkKG5ld05hbWUpOwotICAgIHJldHVybiBuZXdOYW1lOwotICB9Ci0KLSAgU3RyaW5nIF9nZW5lcmF0ZU1lbWJlck5hbWUoU3RyaW5nIG9yaWdpbmFsKSB7Ci0gICAgcmV0dXJuIF9nZW5lcmF0b3IuZ2VuZXJhdGUob3JpZ2luYWwsIF9mb3JiaWRkZW5JZGVudGlmaWVycy5jb250YWlucyk7Ci0gIH0KLQotICAvLy8gTG9va3MgdXAgW29yaWdpbmFsTmFtZV0gaW4gdGhlIFtfcHJpdmF0ZUNhY2hlXSBjYWNoZSBvZiBbbGlicmFyeV0uCi0gIC8vLyBJZiBbb3JpZ2luYWxOYW1lXSB3YXMgbm90IHJlbmFtZWQgYmVmb3JlLCBnZW5lcmF0ZSBhIG5ldyBuYW1lLgotICBTdHJpbmcgX2dldFByaXZhdGVOYW1lKExpYnJhcnlFbGVtZW50IGxpYnJhcnksIFN0cmluZyBvcmlnaW5hbE5hbWUpIHsKLSAgICByZXR1cm4gX3ByaXZhdGVDYWNoZQotICAgICAgICAucHV0SWZBYnNlbnQobGlicmFyeSwgKCkgPT4gbmV3IE1hcDxTdHJpbmcsIFN0cmluZz4oKSkKLSAgICAgICAgLnB1dElmQWJzZW50KAotICAgICAgICAgICAgb3JpZ2luYWxOYW1lLCAoKSA9PiBfZ2VuZXJhdGVVbmlxdWVUb3BMZXZlbE5hbWUob3JpZ2luYWxOYW1lKSk7Ci0gIH0KLQotICBTdHJpbmcgX3JlbmFtZUNvbnN0cnVjdG9yKENvbnN0cnVjdG9yUGxhY2Vob2xkZXIgcGxhY2Vob2xkZXIpIHsKLSAgICBTdHJpbmcgbmFtZSA9IHBsYWNlaG9sZGVyLmVsZW1lbnQubmFtZTsKLSAgICBpZiAobmFtZSA9PSAnJykgcmV0dXJuICIiOwotICAgIFN0cmluZyByZXN1bHQgPSBfcmVuYW1lR2xvYmFsKHBsYWNlaG9sZGVyLmVsZW1lbnQpOwotICAgIHJldHVybiByZXN1bHQ7Ci0gIH0KLQotICBTdHJpbmcgX3JlbmFtZUdsb2JhbChFbnRpdHkgZW50aXR5KSB7Ci0gICAgYXNzZXJ0KGVudGl0eSBpcyEgRWxlbWVudCB8fAotICAgICAgICBFbGVtZW50cy5pc01hbGZvcm1lZChlbnRpdHkpIHx8Ci0gICAgICAgIEVsZW1lbnRzLmlzU3RhdGljT3JUb3BMZXZlbChlbnRpdHkpIHx8Ci0gICAgICAgIGVudGl0eSBpcyBUeXBlVmFyaWFibGVFbGVtZW50KTsKLSAgICAvLyBUT0RPKHNtb2spOiBXZSBtYXkgd2FudCB0byByZXVzZSBjbGFzcyBzdGF0aWMgZmllbGQgYW5kIG1ldGhvZCBuYW1lcy4KLSAgICBpZiAoZW50aXR5IGlzIEVsZW1lbnQpIHsKLSAgICAgIExpYnJhcnlFbGVtZW50IGxpYnJhcnkgPSBlbnRpdHkubGlicmFyeTsKLSAgICAgIGlmIChyZWV4cG9ydGluZ0xpYnJhcmllcy5jb250YWluc0tleShlbnRpdHkpKSB7Ci0gICAgICAgIGxpYnJhcnkgPSByZWV4cG9ydGluZ0xpYnJhcmllc1tlbnRpdHldOwotICAgICAgfQotICAgICAgaWYgKGxpYnJhcnkuaXNQbGF0Zm9ybUxpYnJhcnkpIHsKLSAgICAgICAgLy8gVE9ETyhqb2hubml3aW50aGVyKTogSGFuZGxlIHByZWZpeGVzIGZvciBkYXJ0OmNvcmUuCi0gICAgICAgIGlmIChsaWJyYXJ5LmNhbm9uaWNhbFVyaSA9PSBVcmlzLmRhcnRfY29yZSkgcmV0dXJuIGVudGl0eS5uYW1lOwotICAgICAgICBpZiAobGlicmFyeS5pc0ludGVybmFsTGlicmFyeSkgewotICAgICAgICAgIHRocm93IG5ldyBTcGFubmFibGVBc3NlcnRpb25GYWlsdXJlKAotICAgICAgICAgICAgICBlbnRpdHksCi0gICAgICAgICAgICAgICJJbnRlcm5hbCBsaWJyYXJ5ICRsaWJyYXJ5IHNob3VsZCBuZXZlciBoYXZlIGJlZW4gaW1wb3J0ZWQgZnJvbSAiCi0gICAgICAgICAgICAgICJ0aGUgY29kZSBjb21waWxlZCBieSBkYXJ0MmRhcnQuIik7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgcHJlZml4ID0gcGxhdGZvcm1JbXBvcnRzLnB1dElmQWJzZW50KGxpYnJhcnksICgpID0+IG51bGwpOwotICAgICAgICBpZiAoZW50aXR5LmlzVG9wTGV2ZWwgJiYgZml4ZWREeW5hbWljTmFtZXMuY29udGFpbnMoZW50aXR5Lm5hbWUpKSB7Ci0gICAgICAgICAgaWYgKHByZWZpeCA9PSBudWxsKSB7Ci0gICAgICAgICAgICBwcmVmaXggPSBfZ2VuZXJhdGVVbmlxdWVUb3BMZXZlbE5hbWUoJycpOwotICAgICAgICAgICAgcGxhdGZvcm1JbXBvcnRzW2xpYnJhcnldID0gcHJlZml4OwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gJyRwcmVmaXguJHtlbnRpdHkubmFtZX0nOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBlbnRpdHkubmFtZTsKLSAgICAgIH0KLSAgICB9Ci0gICAgU3RyaW5nIG5hbWUgPSBfcmVuYW1lZENhY2hlLnB1dElmQWJzZW50KAotICAgICAgICBlbnRpdHksICgpID0+IF9nZW5lcmF0ZVVuaXF1ZVRvcExldmVsTmFtZShlbnRpdHkubmFtZSkpOwotICAgIC8vIExvb2sgdXAgaW4gW19yZW5hbWVkQ2FjaGVdIGZvciBhIG5hbWUgZm9yIFtlbnRpdHldIC4KLSAgICAvLyBJZiBpdCB3YXMgbm90IHJlbmFtZWQgYmVmb3JlLCBnZW5lcmF0ZSBhIG5ldyBuYW1lLgotICAgIHJldHVybiBuYW1lOwotICB9Ci0KLSAgdm9pZCBfY29tcHV0ZU1pbmlmaWVkUmVuYW1lcyhQbGFjZWhvbGRlckNvbGxlY3RvciBwbGFjZWhvbGRlckNvbGxlY3RvcikgewotICAgIF9nZW5lcmF0b3IgPSBuZXcgTWluaWZ5aW5nR2VuZXJhdG9yKCk7Ci0KLSAgICAvLyBCdWlsZCBhIGxpc3Qgc29ydGVkIGJ5IHVzYWdlIG9mIGxvY2FsIG5vZGVzIHRoYXQgd2lsbCBiZSByZW5hbWVkIHRvCi0gICAgLy8gdGhlIHNhbWUgaWRlbnRpZmllci4gU28gdGhlIHRvcC11c2VkIGxvY2FsIHZhcmlhYmxlcyBpbiBhbGwgZnVuY3Rpb25zCi0gICAgLy8gd2lsbCBiZSByZW5hbWVkIGZpcnN0IGFuZCB3aWxsIGFsbCBzaGFyZSB0aGUgc2FtZSBuZXcgaWRlbnRpZmllci4KLSAgICBpbnQgbWF4TGVuZ3RoID0gcGxhY2Vob2xkZXJDb2xsZWN0b3IuZnVuY3Rpb25TY29wZXMudmFsdWVzCi0gICAgICAgIC5mb2xkKDAsIChhLCBiKSA9PiBtYXgoYSwgYi5sb2NhbFBsYWNlaG9sZGVycy5sZW5ndGgpKTsKLQotICAgIExpc3Q8U2V0PE5vZGU+PiBhbGxMb2NhbHMgPQotICAgICAgICBuZXcgTGlzdDxTZXQ8Tm9kZT4+LmdlbmVyYXRlKG1heExlbmd0aCwgKF8pID0+IG5ldyBTZXQ8Tm9kZT4oKSk7Ci0KLSAgICBmb3IgKEZ1bmN0aW9uU2NvcGUgZnVuY3Rpb25TY29wZQotICAgICAgICBpbiBwbGFjZWhvbGRlckNvbGxlY3Rvci5mdW5jdGlvblNjb3Blcy52YWx1ZXMpIHsKLSAgICAgIC8vIEFkZCBjdXJyZW50IHNvcnRlZCBsb2NhbCBpZGVudGlmaWVycyB0byB0aGUgd2hvbGUgc29ydGVkIGxpc3QKLSAgICAgIC8vIG9mIGFsbCBsb2NhbCBpZGVudGlmaWVycyBmb3IgYWxsIGZ1bmN0aW9ucy4KLSAgICAgIExpc3Q8TG9jYWxQbGFjZWhvbGRlcj4gY3VycmVudFNvcnRlZFBsYWNlaG9sZGVycyA9IHNvcnRlZCgKLSAgICAgICAgICBmdW5jdGlvblNjb3BlLmxvY2FsUGxhY2Vob2xkZXJzLAotICAgICAgICAgIGNvbXBhcmVCeSgoTG9jYWxQbGFjZWhvbGRlciBwaCkgPT4gLXBoLm5vZGVzLmxlbmd0aCkpOwotCi0gICAgICBMaXN0PFNldDxOb2RlPj4gY3VycmVudFNvcnRlZE5vZGVzID0gY3VycmVudFNvcnRlZFBsYWNlaG9sZGVycwotICAgICAgICAgIC5tYXAoKExvY2FsUGxhY2Vob2xkZXIgcGgpID0+IHBoLm5vZGVzKQotICAgICAgICAgIC50b0xpc3QoKTsKLQotICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50U29ydGVkTm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgYWxsTG9jYWxzW2ldLmFkZEFsbChjdXJyZW50U29ydGVkTm9kZXNbaV0pOwotICAgICAgfQotICAgIH0KLQotICAgIC8vIFJlbmFtZSBlbGVtZW50cywgbWVtYmVycyBhbmQgbG9jYWxzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZWlyIHVzYWdlCi0gICAgLy8gY291bnQsIG90aGVyd2lzZSB3aGVuIHdlIHJlbmFtZSBlbGVtZW50cyBmaXJzdCB0aGVyZSB3aWxsIGJlIG5vIGdvb2QKLSAgICAvLyBpZGVudGlmaWVycyBsZWZ0IGZvciBtZW1iZXJzIGV2ZW4gaWYgdGhleSBhcmUgdXNlZCBvZnRlbi4KLSAgICBMaXN0PFJlbmFtYWJsZT4gcmVuYW1hYmxlcyA9IG5ldyBMaXN0PFJlbmFtYWJsZT4oKTsKLSAgICBwbGFjZWhvbGRlckNvbGxlY3Rvci5lbGVtZW50Tm9kZXMKLSAgICAgICAgLmZvckVhY2goKEVsZW1lbnQgZWxlbWVudCwgU2V0PE5vZGU+IG5vZGVzKSB7Ci0gICAgICByZW5hbWFibGVzLmFkZChuZXcgR2xvYmFsUmVuYW1hYmxlKGVsZW1lbnQsIG5vZGVzKSk7Ci0gICAgfSk7Ci0gICAgcGxhY2Vob2xkZXJDb2xsZWN0b3IubWVtYmVyUGxhY2Vob2xkZXJzCi0gICAgICAgIC5mb3JFYWNoKChTdHJpbmcgbWVtYmVyTmFtZSwgU2V0PElkZW50aWZpZXI+IGlkZW50aWZpZXJzKSB7Ci0gICAgICByZW5hbWFibGVzLmFkZChuZXcgTWVtYmVyUmVuYW1hYmxlKG1lbWJlck5hbWUsIGlkZW50aWZpZXJzKSk7Ci0gICAgfSk7Ci0gICAgZm9yIChTZXQ8Tm9kZT4gbG9jYWxJZGVudGlmaWVycyBpbiBhbGxMb2NhbHMpIHsKLSAgICAgIHJlbmFtYWJsZXMuYWRkKG5ldyBMb2NhbFJlbmFtYWJsZShsb2NhbElkZW50aWZpZXJzKSk7Ci0gICAgfQotICAgIHJlbmFtYWJsZXMuc29ydCgpOwotICAgIGZvciAoUmVuYW1hYmxlIHJlbmFtYWJsZSBpbiByZW5hbWFibGVzKSB7Ci0gICAgICBTdHJpbmcgbmV3TmFtZSA9IHJlbmFtYWJsZS5jcmVhdGVOZXdOYW1lKHRoaXMpOwotICAgICAgX3JlbmFtZU5vZGVzKHJlbmFtYWJsZS5ub2RlcywgKF8pID0+IG5ld05hbWUpOwotICAgIH0KLSAgfQotCi0gIHZvaWQgX2NvbXB1dGVOb25NaW5pZmllZFJlbmFtZXMoUGxhY2Vob2xkZXJDb2xsZWN0b3IgcGxhY2Vob2xkZXJDb2xsZWN0b3IpIHsKLSAgICBfZ2VuZXJhdG9yID0gbmV3IENvbnNlcnZhdGl2ZUdlbmVyYXRvcigpOwotICAgIC8vIFJlbmFtZSBlbGVtZW50cy4KLSAgICBwbGFjZWhvbGRlckNvbGxlY3Rvci5lbGVtZW50Tm9kZXMKLSAgICAgICAgLmZvckVhY2goKEVsZW1lbnQgZWxlbWVudCwgU2V0PE5vZGU+IG5vZGVzKSB7Ci0gICAgICBfcmVuYW1lTm9kZXMobm9kZXMsIChfKSA9PiBfcmVuYW1lR2xvYmFsKGVsZW1lbnQpKTsKLSAgICB9KTsKLQotICAgIC8vIFJlbmFtZSBsb2NhbHMuCi0gICAgcGxhY2Vob2xkZXJDb2xsZWN0b3IuZnVuY3Rpb25TY29wZXMKLSAgICAgICAgLmZvckVhY2goKGZ1bmN0aW9uRWxlbWVudCwgZnVuY3Rpb25TY29wZSkgewotICAgICAgU2V0PFN0cmluZz4gbWVtYmVySWRlbnRpZmllcnMgPSBuZXcgU2V0PFN0cmluZz4oKTsKLSAgICAgIFNldDxMb2NhbFBsYWNlaG9sZGVyPiBwbGFjZWhvbGRlcnMgPSBmdW5jdGlvblNjb3BlLmxvY2FsUGxhY2Vob2xkZXJzOwotICAgICAgaWYgKGZ1bmN0aW9uRWxlbWVudCAhPSBudWxsICYmIGZ1bmN0aW9uRWxlbWVudC5lbmNsb3NpbmdDbGFzcyAhPSBudWxsKSB7Ci0gICAgICAgIGZ1bmN0aW9uRWxlbWVudC5lbmNsb3NpbmdDbGFzcy5mb3JFYWNoTWVtYmVyKChlbmNsb3NpbmdDbGFzcywgbWVtYmVyKSB7Ci0gICAgICAgICAgbWVtYmVySWRlbnRpZmllcnMuYWRkKG1lbWJlci5uYW1lKTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgICBTZXQ8U3RyaW5nPiB1c2VkTG9jYWxJZGVudGlmaWVycyA9IG5ldyBTZXQ8U3RyaW5nPigpOwotICAgICAgZm9yIChMb2NhbFBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyIGluIHBsYWNlaG9sZGVycykgewotICAgICAgICBTdHJpbmcgbmV4dElkID0gX2dlbmVyYXRvci5nZW5lcmF0ZShwbGFjZWhvbGRlci5pZGVudGlmaWVyLCAobmFtZSkgewotICAgICAgICAgIHJldHVybiBmdW5jdGlvblNjb3BlLnBhcmFtZXRlcklkZW50aWZpZXJzLmNvbnRhaW5zKG5hbWUpIHx8Ci0gICAgICAgICAgICAgIF9mb3JiaWRkZW5JZGVudGlmaWVycy5jb250YWlucyhuYW1lKSB8fAotICAgICAgICAgICAgICB1c2VkTG9jYWxJZGVudGlmaWVycy5jb250YWlucyhuYW1lKSB8fAotICAgICAgICAgICAgICBtZW1iZXJJZGVudGlmaWVycy5jb250YWlucyhuYW1lKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHVzZWRMb2NhbElkZW50aWZpZXJzLmFkZChuZXh0SWQpOwotICAgICAgICBfcmVuYW1lTm9kZXMocGxhY2Vob2xkZXIubm9kZXMsIChfKSA9PiBuZXh0SWQpOwotICAgICAgfQotICAgIH0pOwotCi0gICAgLy8gRG8gbm90IHJlbmFtZSBtZW1iZXJzIHRvIHRvcC1sZXZlbHMsIHRoYXQgYWxsb3dzIHRvIGF2b2lkIHJlbmFtaW5nCi0gICAgLy8gbWVtYmVycyB0byBjb25zdHJ1Y3RvcnMuCi0gICAgcGxhY2Vob2xkZXJDb2xsZWN0b3IubWVtYmVyUGxhY2Vob2xkZXJzLmZvckVhY2goKGlkZW50aWZpZXIsIG5vZGVzKSB7Ci0gICAgICBTdHJpbmcgbmV3SWRlbnRpZmllciA9IF9nZW5lcmF0ZU1lbWJlck5hbWUoaWRlbnRpZmllcik7Ci0gICAgICBfcmVuYW1lTm9kZXMobm9kZXMsIChfKSA9PiBuZXdJZGVudGlmaWVyKTsKLSAgICB9KTsKLSAgfQotCi0gIC8vLyBGaW5kcyByZW5hbWluZ3MgZm9yIGFsbCB0aGUgcGxhY2Vob2xkZXJzIGluIFtwbGFjZWhvbGRlckNvbGxlY3Rvcl0gYW5kCi0gIC8vLyBzdG9yZXMgdGhlbSBpbiBbcmVuYW1lc10uCi0gIC8vLyBBbHNvIGFkZHMgdG8gW3BsYXRmb3JtSW1wb3J0c10gYWxsIHRoZSBwbGF0Zm9ybS1saWJyYXJpZXMgdGhhdCBhcmUgdXNlZC4KLSAgdm9pZCBjb21wdXRlUmVuYW1lcyhQbGFjZWhvbGRlckNvbGxlY3RvciBwbGFjZWhvbGRlckNvbGxlY3RvcikgewotICAgIF9hbGxOYW1lZFBhcmFtZXRlcklkZW50aWZpZXJzID0gbmV3IFNldDxTdHJpbmc+KCk7Ci0gICAgZm9yIChGdW5jdGlvblNjb3BlIGZ1bmN0aW9uU2NvcGUKLSAgICAgICAgaW4gcGxhY2Vob2xkZXJDb2xsZWN0b3IuZnVuY3Rpb25TY29wZXMudmFsdWVzKSB7Ci0gICAgICBfYWxsTmFtZWRQYXJhbWV0ZXJJZGVudGlmaWVycy5hZGRBbGwoZnVuY3Rpb25TY29wZS5wYXJhbWV0ZXJJZGVudGlmaWVycyk7Ci0gICAgfQotCi0gICAgX2ZvcmJpZGRlbklkZW50aWZpZXJzID0gbmV3IFNldDxTdHJpbmc+LmZyb20oZml4ZWREeW5hbWljTmFtZXMpOwotICAgIF9mb3JiaWRkZW5JZGVudGlmaWVycy5hZGRBbGwoZml4ZWRTdGF0aWNOYW1lcyk7Ci0gICAgX2ZvcmJpZGRlbklkZW50aWZpZXJzLmFkZEFsbChLZXl3b3JkLmtleXdvcmRzLmtleXMpOwotICAgIF9mb3JiaWRkZW5JZGVudGlmaWVycy5hZGQoJ21haW4nKTsKLQotICAgIGlmIChlbmFibGVNaW5pZmljYXRpb24pIHsKLSAgICAgIF9jb21wdXRlTWluaWZpZWRSZW5hbWVzKHBsYWNlaG9sZGVyQ29sbGVjdG9yKTsKLSAgICB9IGVsc2UgewotICAgICAgX2NvbXB1dGVOb25NaW5pZmllZFJlbmFtZXMocGxhY2Vob2xkZXJDb2xsZWN0b3IpOwotICAgIH0KLQotICAgIC8vIFJlbmFtZSBjb25zdHJ1Y3RvcnMuCi0gICAgZm9yIChDb25zdHJ1Y3RvclBsYWNlaG9sZGVyIHBsYWNlaG9sZGVyCi0gICAgICAgIGluIHBsYWNlaG9sZGVyQ29sbGVjdG9yLmNvbnN0cnVjdG9yUGxhY2Vob2xkZXJzKSB7Ci0gICAgICByZW5hbWVzW3BsYWNlaG9sZGVyLm5vZGVdID0gX3JlbmFtZUNvbnN0cnVjdG9yKHBsYWNlaG9sZGVyKTsKLSAgICB9Ci0gICAgOwotCi0gICAgLy8gUmVuYW1lIHByaXZhdGUgaWRlbnRpZmllcnMgdW5pcXVlbHkgZm9yIGVhY2ggbGlicmFyeS4KLSAgICBwbGFjZWhvbGRlckNvbGxlY3Rvci5wcml2YXRlTm9kZXMKLSAgICAgICAgLmZvckVhY2goKExpYnJhcnlFbGVtZW50IGxpYnJhcnksIFNldDxJZGVudGlmaWVyPiBpZGVudGlmaWVycykgewotICAgICAgZm9yIChJZGVudGlmaWVyIGlkZW50aWZpZXIgaW4gaWRlbnRpZmllcnMpIHsKLSAgICAgICAgcmVuYW1lc1tpZGVudGlmaWVyXSA9IF9nZXRQcml2YXRlTmFtZShsaWJyYXJ5LCBpZGVudGlmaWVyLnNvdXJjZSk7Ci0gICAgICB9Ci0gICAgfSk7Ci0KLSAgICAvLyBSZW5hbWUgdW5yZXNvbHZlZCBub2RlcywgdG8gbWFrZSBzdXJlIHRoZXkgc3RpbGwgZG8gbm90IHJlc29sdmUuCi0gICAgZm9yIChOb2RlIG5vZGUgaW4gcGxhY2Vob2xkZXJDb2xsZWN0b3IudW5yZXNvbHZlZE5vZGVzKSB7Ci0gICAgICByZW5hbWVzW25vZGVdID0gX2dlbmVyYXRlVW5pcXVlVG9wTGV2ZWxOYW1lKCdVbnJlc29sdmVkJyk7Ci0gICAgfQotCi0gICAgLy8gRXJhc2UgcHJlZml4ZXMgdGhhdCBhcmUgbm93IG5vdCBuZWVkZWQuCi0gICAgZm9yIChOb2RlIG5vZGUgaW4gcGxhY2Vob2xkZXJDb2xsZWN0b3IucHJlZml4Tm9kZXNUb0VyYXNlKSB7Ci0gICAgICByZW5hbWVzW25vZGVdID0gJyc7Ci0gICAgfQotCi0gICAgaWYgKGN1dERlY2xhcmF0aW9uVHlwZXMpIHsKLSAgICAgIGZvciAoRGVjbGFyYXRpb25UeXBlUGxhY2Vob2xkZXIgcGxhY2Vob2xkZXIKLSAgICAgICAgICBpbiBwbGFjZWhvbGRlckNvbGxlY3Rvci5kZWNsYXJhdGlvblR5cGVQbGFjZWhvbGRlcnMpIHsKLSAgICAgICAgcmVuYW1lc1twbGFjZWhvbGRlci50eXBlTm9kZV0gPSBwbGFjZWhvbGRlci5yZXF1aXJlc1ZhciA/ICd2YXInIDogJyc7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLS8qKgotICogR2VuZXJhdGVzIG1pbmkgSUQgYmFzZWQgb24gaW5kZXguCi0gKiBJbiBvdGhlciB3b3JkcywgaXQgY29udmVydHMgaW5kZXggdG8gdmlzdWFsIHJlcHJlc2VudGF0aW9uCi0gKiBhcyBpZiBkaWdpdHMgYXJlIGdpdmVuIGNoYXJhY3RlcnMuCi0gKi8KLVN0cmluZyBnZW5lcmF0ZU1pbmlJZChpbnQgaW5kZXgpIHsKLSAgY29uc3QgU3RyaW5nIGZpcnN0Q2hhckFscGhhYmV0ID0KLSAgICAgIHInQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7Ci0gIGNvbnN0IFN0cmluZyBvdGhlckNoYXJzQWxwaGFiZXQgPQotICAgICAgcidBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OV8kJzsKLSAgLy8gSXQncyBsaWtlIGNvbnZlcnRpbmcgaW5kZXggaW4gZGVjaW1hbCB0byBbY2hhcnNdIHJhZGl4LgotICBpZiAoaW5kZXggPCBmaXJzdENoYXJBbHBoYWJldC5sZW5ndGgpIHJldHVybiBmaXJzdENoYXJBbHBoYWJldFtpbmRleF07Ci0gIFN0cmluZ0J1ZmZlciByZXN1bHRCdWlsZGVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOwotICByZXN1bHRCdWlsZGVyLndyaXRlQ2hhckNvZGUoCi0gICAgICBmaXJzdENoYXJBbHBoYWJldC5jb2RlVW5pdEF0KGluZGV4ICUgZmlyc3RDaGFyQWxwaGFiZXQubGVuZ3RoKSk7Ci0gIGluZGV4IH4vPSBmaXJzdENoYXJBbHBoYWJldC5sZW5ndGg7Ci0gIGludCBsZW5ndGggPSBvdGhlckNoYXJzQWxwaGFiZXQubGVuZ3RoOwotICB3aGlsZSAoaW5kZXggPj0gbGVuZ3RoKSB7Ci0gICAgcmVzdWx0QnVpbGRlci53cml0ZUNoYXJDb2RlKG90aGVyQ2hhcnNBbHBoYWJldC5jb2RlVW5pdEF0KGluZGV4ICUgbGVuZ3RoKSk7Ci0gICAgaW5kZXggfi89IGxlbmd0aDsKLSAgfQotICByZXN1bHRCdWlsZGVyLndyaXRlKG90aGVyQ2hhcnNBbHBoYWJldFtpbmRleF0pOwotICByZXR1cm4gcmVzdWx0QnVpbGRlci50b1N0cmluZygpOwotfQotCi1hYnN0cmFjdCBjbGFzcyBHZW5lcmF0b3IgewotICBTdHJpbmcgZ2VuZXJhdGUoU3RyaW5nIG9yaWdpbmFsTmFtZSwgYm9vbCBpc0ZvcmJpZGRlbihTdHJpbmcgbmFtZSkpOwotfQotCi0vLy8gQWx3YXlzIHRyaWVzIHRvIHJldHVybiBvcmlnaW5hbCBpZGVudGlmaWVyIG5hbWUgdW5sZXNzIGl0IGlzIGZvcmJpZGRlbi4KLWNsYXNzIENvbnNlcnZhdGl2ZUdlbmVyYXRvciBpbXBsZW1lbnRzIEdlbmVyYXRvciB7Ci0gIFN0cmluZyBnZW5lcmF0ZShTdHJpbmcgb3JpZ2luYWxOYW1lLCBib29sIGlzRm9yYmlkZGVuKFN0cmluZyBuYW1lKSkgewotICAgIFN0cmluZyByZXN1bHQgPSBvcmlnaW5hbE5hbWU7Ci0gICAgaW50IGluZGV4ID0gMDsKLSAgICB3aGlsZSAoaXNGb3JiaWRkZW4ocmVzdWx0KSkgewotICAgICAgLy98fCByZXN1bHQgPT0gb3JpZ2luYWxOYW1lKSB7Ci0gICAgICByZXN1bHQgPSAnJHtvcmlnaW5hbE5hbWV9XyR7Z2VuZXJhdGVNaW5pSWQoaW5kZXgrKyl9JzsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLSAgfQotfQotCi0vLy8gQWx3YXlzIHRyaWVzIHRvIGdlbmVyYXRlIHRoZSBtb3N0IGNvbXBhY3QgaWRlbnRpZmllci4KLWNsYXNzIE1pbmlmeWluZ0dlbmVyYXRvciBpbXBsZW1lbnRzIEdlbmVyYXRvciB7Ci0gIGludCBpbmRleCA9IDA7Ci0KLSAgTWluaWZ5aW5nR2VuZXJhdG9yKCk7Ci0KLSAgU3RyaW5nIGdlbmVyYXRlKFN0cmluZyBvcmlnaW5hbE5hbWUsIGJvb2wgaXNGb3JiaWRkZW4oU3RyaW5nIG5hbWUpKSB7Ci0gICAgU3RyaW5nIHJlc3VsdDsKLSAgICBkbyB7Ci0gICAgICByZXN1bHQgPSBnZW5lcmF0ZU1pbmlJZChpbmRleCsrKTsKLSAgICB9IHdoaWxlIChpc0ZvcmJpZGRlbihyZXN1bHQpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotICB9Ci19CmRpZmYgLS1naXQgYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kaWFnbm9zdGljcy9tZXNzYWdlcy5kYXJ0IGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvZGlhZ25vc3RpY3MvbWVzc2FnZXMuZGFydAppbmRleCAxMWMwMDAwLi40NzJlMDE2IDEwMDY0NAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9kaWFnbm9zdGljcy9tZXNzYWdlcy5kYXJ0CisrKyBiL3BrZy9jb21waWxlci9saWIvc3JjL2RpYWdub3N0aWNzL21lc3NhZ2VzLmRhcnQKQEAgLTM2MjYsMTUgKzM2MjYsMTggQEAKICAgICAgIE1lc3NhZ2VLaW5kLkVYVEVSTkFMX1dJVEhfQk9EWTogY29uc3QgTWVzc2FnZVRlbXBsYXRlKAogICAgICAgICAgIE1lc3NhZ2VLaW5kLkVYVEVSTkFMX1dJVEhfQk9EWSwKICAgICAgICAgICAiRXh0ZXJuYWwgZnVuY3Rpb24gJyN7ZnVuY3Rpb25OYW1lfScgY2Fubm90IGhhdmUgYSBmdW5jdGlvbiBib2R5LiIsCi0gICAgICAgICAgb3B0aW9uczogY29uc3QgWyItLW91dHB1dC10eXBlPWRhcnQiXSwKICAgICAgICAgICBob3dUb0ZpeDoKICAgICAgICAgICAgICAgIlRyeSByZW1vdmluZyB0aGUgJ2V4dGVybmFsJyBtb2RpZmllciBvciB0aGUgZnVuY3Rpb24gYm9keS4iLAogICAgICAgICAgIGV4YW1wbGVzOiBjb25zdCBbCiAgICAgICAgICAgICAiIiIKK2ltcG9ydCAncGFja2FnZTpqcy9qcy5kYXJ0JzsKK0BKUygpCiBleHRlcm5hbCBmb28oKSA9PiAwOwogbWFpbigpID0+IGZvbygpOwogIiIiLAogICAgICAgICAgICAgIiIiCitpbXBvcnQgJ3BhY2thZ2U6anMvanMuZGFydCc7CitASlMoKQogZXh0ZXJuYWwgZm9vKCkge30KIG1haW4oKSA9PiBmb28oKTsKICIiIgpkaWZmIC0tZ2l0IGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvbWlycm9yX3JlbmFtZXIvbWlycm9yX3JlbmFtZXIuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL21pcnJvcl9yZW5hbWVyL21pcnJvcl9yZW5hbWVyLmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MzhmOGUuLjAwMDAwMDAKLS0tIGEvcGtnL2NvbXBpbGVyL2xpYi9zcmMvbWlycm9yX3JlbmFtZXIvbWlycm9yX3JlbmFtZXIuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMywgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotbGlicmFyeSBtaXJyb3JfcmVuYW1lcjsKLQotaW1wb3J0ICcuLi9jb21waWxlci5kYXJ0JyBzaG93IENvbXBpbGVyOwotaW1wb3J0ICcuLi9kYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQnCi0gICAgc2hvdyBEYXJ0QmFja2VuZCwgUGxhY2Vob2xkZXJDb2xsZWN0b3I7Ci1pbXBvcnQgJy4uL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnOwotaW1wb3J0ICcuLi90b2tlbnMvdG9rZW4uZGFydCcgc2hvdyBUb2tlbjsKLWltcG9ydCAnLi4vdHJlZS90cmVlLmRhcnQnOwotCi1wYXJ0ICdyZW5hbWVyLmRhcnQnOwotCi1jbGFzcyBNaXJyb3JSZW5hbWVyIHsKLSAgY29uc3QgTWlycm9yUmVuYW1lcigpOwotCi0gIExpYnJhcnlFbGVtZW50IGdldCBoZWxwZXJMaWJyYXJ5ID0+IG51bGw7Ci0KLSAgRnVuY3Rpb25FbGVtZW50IGdldCBnZXROYW1lRnVuY3Rpb24gPT4gbnVsbDsKLQotICBib29sIGlzTWlycm9ySGVscGVyTGlicmFyeShMaWJyYXJ5RWxlbWVudCBlbGVtZW50KSA9PiBmYWxzZTsKLQotICB2b2lkIHJlZ2lzdGVyU3RhdGljU2VuZChFbGVtZW50IGN1cnJlbnRFbGVtZW50LCBFbGVtZW50IHRhcmdldCwgTm9kZSBub2RlKSB7fQotCi0gIHZvaWQgYWRkUmVuYW1lcyhNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzLCBMaXN0PE5vZGU+IHRvcExldmVsTm9kZXMsCi0gICAgICBQbGFjZWhvbGRlckNvbGxlY3RvciBwbGFjZWhvbGRlckNvbGxlY3Rvcikge30KLX0KZGlmZiAtLWdpdCBhL3BrZy9jb21waWxlci9saWIvc3JjL21pcnJvcl9yZW5hbWVyL3JlbmFtZXIuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL21pcnJvcl9yZW5hbWVyL3JlbmFtZXIuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWIyZGFhMS4uMDAwMDAwMAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9taXJyb3JfcmVuYW1lci9yZW5hbWVyLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEzLCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1wYXJ0IG9mIG1pcnJvcl9yZW5hbWVyOwotCi1jbGFzcyBNaXJyb3JSZW5hbWVySW1wbCBpbXBsZW1lbnRzIE1pcnJvclJlbmFtZXIgewotICBzdGF0aWMgY29uc3QgU3RyaW5nIE1JUlJPUl9IRUxQRVJfR0VUX05BTUVfRlVOQ1RJT04gPSAnaGVscGVyR2V0TmFtZSc7Ci0gIHN0YXRpYyBmaW5hbCBVcmkgREFSVF9NSVJST1JfSEVMUEVSID0KLSAgICAgIG5ldyBVcmkoc2NoZW1lOiAnZGFydCcsIHBhdGg6ICdfbWlycm9yX2hlbHBlcicpOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIE1JUlJPUl9IRUxQRVJfU1lNQk9MU19NQVBfTkFNRSA9ICdfU1lNQk9MUyc7Ci0KLSAgLy8vIEluaXRpYWxpemVkIHdoZW4gZGFydDptaXJyb3JzIGlzIGxvYWRlZCBpZiB0aGUgdXNlTWlycm9ySGVscGVyTGlicmFyeQotICAvLy8gZmllbGQgaXMgc2V0LgotICBmaW5hbCBMaWJyYXJ5RWxlbWVudCBoZWxwZXJMaWJyYXJ5OwotCi0gIC8vLyBJbml0aWFsaXplZCB3aGVuIGRhcnQ6bWlycm9ycyBpcyBsb2FkZWQgaWYgdGhlIHVzZU1pcnJvckhlbHBlckxpYnJhcnkKLSAgLy8vIGZpZWxkIGlzIHNldC4KLSAgZmluYWwgRnVuY3Rpb25FbGVtZW50IGdldE5hbWVGdW5jdGlvbjsKLQotICAvLy8gSW5pdGlhbGl6ZWQgd2hlbiBkYXJ0Om1pcnJvcnMgaXMgbG9hZGVkIGlmIHRoZSB1c2VNaXJyb3JIZWxwZXJMaWJyYXJ5Ci0gIC8vLyBmaWVsZCBpcyBzZXQuCi0gIGZpbmFsIEZpZWxkRWxlbWVudCBzeW1ib2xzTWFwVmFyaWFibGU7Ci0KLSAgLy8vIE1hcHMgbWFuZ2xlZCBuYW1lIHRvIG9yaWdpbmFsIG5hbWUuCi0gIE1hcDxTdHJpbmcsIFN0cmluZz4gc3ltYm9scyA9IG5ldyBNYXA8U3RyaW5nLCBTdHJpbmc+KCk7Ci0KLSAgLy8vIENvbnRhaW5zIGFsbCBvY2N1cnJlbmNzIG9mIE1pcnJvclN5c3RlbS5nZXROYW1lKCkgY2FsbHMgaW4gdGhlIHVzZXIgY29kZS4KLSAgTGlzdDxOb2RlPiBtaXJyb3JTeXN0ZW1HZXROYW1lTm9kZXMgPSA8Tm9kZT5bXTsKLQotICAvKioKLSAgICogIEluaXRpYWxpemVkIHdoZW4gdGhlIHBsYWNlaG9sZGVyQ29sbGVjdG9yIGNvbGxlY3RzIHRoZSBGdW5jdGlvbkVsZW1lbnQKLSAgICogIGJhY2tlbmQubWlycm9ySGVscGVyR2V0TmFtZUZ1bmN0aW9uIHdoaWNoIHJlcHJlc2VudHMgdGhlIGhlbHBlckdldE5hbWUKLSAgICogIGZ1bmN0aW9uIGluIF9taXJyb3JfaGVscGVyLgotICAgKi8KLSAgRnVuY3Rpb25FeHByZXNzaW9uIGdldCBnZXROYW1lRnVuY3Rpb25Ob2RlID0+IGdldE5hbWVGdW5jdGlvbi5ub2RlOwotICBWYXJpYWJsZURlZmluaXRpb25zIGdldCBzeW1ib2xzTWFwTm9kZSA9PiBzeW1ib2xzTWFwVmFyaWFibGUubm9kZTsKLSAgQ29tcGlsZXIgY29tcGlsZXI7Ci0gIERhcnRCYWNrZW5kIGJhY2tlbmQ7Ci0KLSAgTWlycm9yUmVuYW1lckltcGwodGhpcy5jb21waWxlciwgdGhpcy5iYWNrZW5kLCBMaWJyYXJ5RWxlbWVudCBsaWJyYXJ5KQotICAgICAgOiB0aGlzLmhlbHBlckxpYnJhcnkgPSBsaWJyYXJ5LAotICAgICAgICBnZXROYW1lRnVuY3Rpb24gPQotICAgICAgICAgICAgbGlicmFyeS5maW5kKE1pcnJvclJlbmFtZXJJbXBsLk1JUlJPUl9IRUxQRVJfR0VUX05BTUVfRlVOQ1RJT04pLAotICAgICAgICBzeW1ib2xzTWFwVmFyaWFibGUgPQotICAgICAgICAgICAgbGlicmFyeS5maW5kKE1pcnJvclJlbmFtZXJJbXBsLk1JUlJPUl9IRUxQRVJfU1lNQk9MU19NQVBfTkFNRSk7Ci0KLSAgYm9vbCBpc01pcnJvckhlbHBlckxpYnJhcnkoTGlicmFyeUVsZW1lbnQgZWxlbWVudCkgewotICAgIHJldHVybiBlbGVtZW50ID09IGhlbHBlckxpYnJhcnk7Ci0gIH0KLQotICB2b2lkIHJlZ2lzdGVyU3RhdGljU2VuZChFbGVtZW50IGN1cnJlbnRFbGVtZW50LCBFbGVtZW50IHRhcmdldCwgU2VuZCBub2RlKSB7Ci0gICAgaWYgKHRhcmdldCA9PSBjb21waWxlci5taXJyb3JTeXN0ZW1HZXROYW1lRnVuY3Rpb24gJiYKLSAgICAgICAgY3VycmVudEVsZW1lbnQubGlicmFyeSAhPSBoZWxwZXJMaWJyYXJ5KSB7Ci0gICAgICAvLyBBY2Nlc3MgdG8gYE1pcnJvclN5c3RlbS5nZXROYW1lYCB0aGF0IG5lZWRzIHRvIGJlIHJlZGlyZWN0ZWQgdG8gdGhlCi0gICAgICAvLyBbZ2V0TmFtZUZ1bmN0aW9uXS4KLSAgICAgIG1pcnJvclN5c3RlbUdldE5hbWVOb2Rlcy5hZGQobm9kZSk7Ci0gICAgfQotICB9Ci0KLSAgLyoqCi0gICAqIEFkZHMgYSB0b3BsZXZlbCBub2RlIHRvIHRoZSBvdXRwdXQgY29udGFpbmluZyBhIG1hcCBmcm9tIHRoZSBtYW5nbGVkCi0gICAqIHRvIHRoZSB1bm1hbmdsZWQgbmFtZXMgYW5kIHJlcGxhY2VzIGNhbGxzIHRvIE1pcnJvclN5c3RlbS5nZXROYW1lKCkKLSAgICogd2l0aCBjYWxscyB0byB0aGUgY29ycmVzcG9uZGluZyB3cmFwcGVyIGZyb20gX21pcnJvcl9oZWxwZXIgd2hpY2ggaGFzCi0gICAqIGJlZW4gYWRkZWQgZHVyaW5nIHJlc29sdXRpb24uIFtyZW5hbWVzXSBpcyBhc3N1bWVkIHRvIG1hcCBub2RlcyBpbiB1c2VyCi0gICAqIGNvZGUgdG8gbWFuZ2xlZCBuYW1lcyBhcHBlYXJpbmcgaW4gb3V0cHV0IGNvZGUsIGFuZCBbdG9wTGV2ZWxOb2Rlc10gc2hvdWxkCi0gICAqIGNvbnRhaW4gYWxsIHRoZSB0b3BsZXZlbCBhc3Qgbm9kZXMgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgaW4gdGhlIG91dHB1dC4KLSAgICovCi0gIHZvaWQgYWRkUmVuYW1lcyhNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzLCBMaXN0PE5vZGU+IHRvcExldmVsTm9kZXMsCi0gICAgICBQbGFjZWhvbGRlckNvbGxlY3RvciBwbGFjZWhvbGRlckNvbGxlY3RvcikgewotICAgIC8vIFJpZ2h0IG5vdyB3ZSBvbmx5IHN1cHBvcnQgaW5zdGFuY2VzIG9mIE1pcnJvclN5c3RlbS5nZXROYW1lLAotICAgIC8vIGhlbmNlIGlmIHRoZXJlIGFyZSBubyBvY2N1cmVuY2Ugb2YgdGhlc2Ugd2UgZG9uJ3QgZG8gYW55dGhpbmcuCi0gICAgaWYgKG1pcnJvclN5c3RlbUdldE5hbWVOb2Rlcy5pc0VtcHR5KSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTm9kZSBwYXJzZShTdHJpbmcgdGV4dCkgewotICAgICAgVG9rZW4gdG9rZW5zID0gY29tcGlsZXIuc2Nhbm5lci50b2tlbml6ZSh0ZXh0KTsKLSAgICAgIHJldHVybiBjb21waWxlci5wYXJzZXIucGFyc2VDb21waWxhdGlvblVuaXQodG9rZW5zKTsKLSAgICB9Ci0KLSAgICAvLyBBZGQgdG9wbGV2ZWwgbWFwIGNvbnRhaW5pbmcgYWxsIHJlbmFtZXMgb2YgbWVtYmVycy4KLSAgICBzeW1ib2xzID0gbmV3IE1hcDxTdHJpbmcsIFN0cmluZz4oKTsKLSAgICBmb3IgKFNldDxJZGVudGlmaWVyPiBzIGluIHBsYWNlaG9sZGVyQ29sbGVjdG9yLm1lbWJlclBsYWNlaG9sZGVycy52YWx1ZXMpIHsKLSAgICAgIC8vIEFsbCBtZW1iZXJzIGluIGEgc2V0IGhhdmUgdGhlIHNhbWUgbmFtZSBzbyB3ZSBvbmx5IG5lZWQgdG8gbG9vayBhdCBvbmUuCi0gICAgICBJZGVudGlmaWVyIHNhbXBsZU5vZGUgPSBzLmZpcnN0OwotICAgICAgc3ltYm9scy5wdXRJZkFic2VudChyZW5hbWVzW3NhbXBsZU5vZGVdLCAoKSA9PiBzYW1wbGVOb2RlLnNvdXJjZSk7Ci0gICAgfQotCi0gICAgSWRlbnRpZmllciBzeW1ib2xzTWFwSWRlbnRpZmllciA9Ci0gICAgICAgIHN5bWJvbHNNYXBOb2RlLmRlZmluaXRpb25zLm5vZGVzLmhlYWQuYXNTZW5kKCkuc2VsZWN0b3I7Ci0gICAgYXNzZXJ0KHN5bWJvbHNNYXBJZGVudGlmaWVyICE9IG51bGwpOwotICAgIHRvcExldmVsTm9kZXMucmVtb3ZlKHN5bWJvbHNNYXBOb2RlKTsKLQotICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoCi0gICAgICAgICdjb25zdCAke3JlbmFtZXNbc3ltYm9sc01hcElkZW50aWZpZXJdfSA9IGNvbnN0PFN0cmluZyxTdHJpbmc+eycpOwotICAgIGJvb2wgZmlyc3QgPSB0cnVlOwotICAgIGZvciAoU3RyaW5nIG1hbmdsZWROYW1lIGluIHN5bWJvbHMua2V5cykgewotICAgICAgaWYgKCFmaXJzdCkgewotICAgICAgICBzYi53cml0ZSgnLCcpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgIH0KLSAgICAgIHNiLndyaXRlKCInJG1hbmdsZWROYW1lJyA6ICciKTsKLSAgICAgIHNiLndyaXRlKHN5bWJvbHNbbWFuZ2xlZE5hbWVdKTsKLSAgICAgIHNiLndyaXRlKCInIik7Ci0gICAgfQotICAgIHNiLndyaXRlKCd9OycpOwotICAgIHNiLndyaXRlQ2hhckNvZGUoMCk7IC8vIFRlcm1pbmF0ZSB0aGUgc3RyaW5nIHdpdGggJzAnLCBzZWUgW1N0cmluZ1NjYW5uZXJdLgotICAgIHRvcExldmVsTm9kZXMuYWRkKHBhcnNlKHNiLnRvU3RyaW5nKCkpKTsKLQotICAgIC8vIFJlcGxhY2UgY2FsbHMgdG8gTWlycm9yc3lzdGVtLmdldE5hbWUgd2l0aCBjYWxscyB0byBoZWxwZXIgZnVuY3Rpb24uCi0gICAgbWlycm9yU3lzdGVtR2V0TmFtZU5vZGVzLmZvckVhY2goKG5vZGUpIHsKLSAgICAgIHJlbmFtZXNbbm9kZS5zZWxlY3Rvcl0gPSByZW5hbWVzW2dldE5hbWVGdW5jdGlvbk5vZGUubmFtZV07Ci0gICAgICByZW5hbWVzW25vZGUucmVjZWl2ZXJdID0gJyc7Ci0gICAgfSk7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3BrZy9jb21waWxlci9saWIvc3JjL29wdGlvbnMuZGFydCBiL3BrZy9jb21waWxlci9saWIvc3JjL29wdGlvbnMuZGFydAppbmRleCBjNWVlZmNlLi45OGI4OGUwIDEwMDY0NAotLS0gYS9wa2cvY29tcGlsZXIvbGliL3NyYy9vcHRpb25zLmRhcnQKKysrIGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvb3B0aW9ucy5kYXJ0CkBAIC0yNDUsMTIgKzI0NSw2IEBACiAgIC8vLyBXaGV0aGVyIHRvIHByZXNlcnZlIGNvbW1lbnRzIHdoaWxlIHNjYW5uaW5nIChvbmx5IHVzZSBmb3IgZGFydDptaXJyb3JzKS4KICAgZmluYWwgYm9vbCBwcmVzZXJ2ZUNvbW1lbnRzOwogCi0gIC8vLyBXaGV0aGVyIHRvIGVtaXQgSmF2YVNjcmlwdCAoZmFsc2UgZW5hYmxlcyBkYXJ0MmRhcnQpLgotICBmaW5hbCBib29sIGVtaXRKYXZhU2NyaXB0OwotCi0gIC8vLyBXaGVuIHVzaW5nIGRhcnQyZGFydCwgd2hldGhlciB0byB1c2UgdGhlIG11bHRpIGZpbGUgZm9ybWF0LgotICBmaW5hbCBib29sIGRhcnQyZGFydE11bHRpRmlsZTsKLQogICAvLy8gU3RyaXAgb3B0aW9uIHVzZWQgYnkgZGFydDJkYXJ0LgogICBmaW5hbCBMaXN0PFN0cmluZz4gc3RyaXBzOwogCkBAIC0yODAsNyArMjc0LDYgQEAKICAgICAgICAgYW5hbHl6ZVNpZ25hdHVyZXNPbmx5OiBfaGFzT3B0aW9uKG9wdGlvbnMsIEZsYWdzLmFuYWx5emVTaWduYXR1cmVzT25seSksCiAgICAgICAgIGJ1aWxkSWQ6IF9leHRyYWN0U3RyaW5nT3B0aW9uKAogICAgICAgICAgICAgb3B0aW9ucywgJy0tYnVpbGQtaWQ9JywgX1VOREVURVJNSU5FRF9CVUlMRF9JRCksCi0gICAgICAgIGRhcnQyZGFydE11bHRpRmlsZTogX2hhc09wdGlvbihvcHRpb25zLCAnLS1vdXRwdXQtdHlwZT1kYXJ0LW11bHRpJyksCiAgICAgICAgIGRlZmVycmVkTWFwVXJpOiBfZXh0cmFjdFVyaU9wdGlvbihvcHRpb25zLCAnLS1kZWZlcnJlZC1tYXA9JyksCiAgICAgICAgIGZhdGFsV2FybmluZ3M6IF9oYXNPcHRpb24ob3B0aW9ucywgRmxhZ3MuZmF0YWxXYXJuaW5ncyksCiAgICAgICAgIHRlcnNlRGlhZ25vc3RpY3M6IF9oYXNPcHRpb24ob3B0aW9ucywgRmxhZ3MudGVyc2UpLApAQCAtMjkxLDggKzI4NCw2IEBACiAgICAgICAgIGRpc2FibGVJbmxpbmluZzogX2hhc09wdGlvbihvcHRpb25zLCBGbGFncy5kaXNhYmxlSW5saW5pbmcpLAogICAgICAgICBkaXNhYmxlVHlwZUluZmVyZW5jZTogX2hhc09wdGlvbihvcHRpb25zLCBGbGFncy5kaXNhYmxlVHlwZUluZmVyZW5jZSksCiAgICAgICAgIGR1bXBJbmZvOiBfaGFzT3B0aW9uKG9wdGlvbnMsIEZsYWdzLmR1bXBJbmZvKSwKLSAgICAgICAgZW1pdEphdmFTY3JpcHQ6ICEoX2hhc09wdGlvbihvcHRpb25zLCAnLS1vdXRwdXQtdHlwZT1kYXJ0JykgfHwKLSAgICAgICAgICAgIF9oYXNPcHRpb24ob3B0aW9ucywgJy0tb3V0cHV0LXR5cGU9ZGFydC1tdWx0aScpKSwKICAgICAgICAgZW5hYmxlQXNzZXJ0TWVzc2FnZTogX2hhc09wdGlvbihvcHRpb25zLCBGbGFncy5lbmFibGVBc3NlcnRNZXNzYWdlKSwKICAgICAgICAgZW5hYmxlR2VuZXJpY01ldGhvZFN5bnRheDoKICAgICAgICAgICAgIF9oYXNPcHRpb24ob3B0aW9ucywgRmxhZ3MuZ2VuZXJpY01ldGhvZFN5bnRheCksCkBAIC0zNTQsNyArMzQ1LDYgQEAKICAgICAgIGJvb2wgYW5hbHl6ZU9ubHk6IGZhbHNlLAogICAgICAgYm9vbCBhbmFseXplU2lnbmF0dXJlc09ubHk6IGZhbHNlLAogICAgICAgU3RyaW5nIGJ1aWxkSWQ6IF9VTkRFVEVSTUlORURfQlVJTERfSUQsCi0gICAgICBib29sIGRhcnQyZGFydE11bHRpRmlsZTogZmFsc2UsCiAgICAgICBVcmkgZGVmZXJyZWRNYXBVcmk6IG51bGwsCiAgICAgICBib29sIGZhdGFsV2FybmluZ3M6IGZhbHNlLAogICAgICAgYm9vbCB0ZXJzZURpYWdub3N0aWNzOiBmYWxzZSwKQEAgLTM2NCw3ICszNTQsNiBAQAogICAgICAgYm9vbCBkaXNhYmxlSW5saW5pbmc6IGZhbHNlLAogICAgICAgYm9vbCBkaXNhYmxlVHlwZUluZmVyZW5jZTogZmFsc2UsCiAgICAgICBib29sIGR1bXBJbmZvOiBmYWxzZSwKLSAgICAgIGJvb2wgZW1pdEphdmFTY3JpcHQ6IHRydWUsCiAgICAgICBib29sIGVuYWJsZUFzc2VydE1lc3NhZ2U6IGZhbHNlLAogICAgICAgYm9vbCBlbmFibGVHZW5lcmljTWV0aG9kU3ludGF4OiBmYWxzZSwKICAgICAgIGJvb2wgZW5hYmxlSW5pdGlhbGl6aW5nRm9ybWFsQWNjZXNzOiBmYWxzZSwKQEAgLTQyOCw3ICs0MTcsNiBAQAogICAgICAgICAgICAgYW5hbHl6ZU9ubHkgfHwgYW5hbHl6ZVNpZ25hdHVyZXNPbmx5IHx8IGFuYWx5emVBbGwgfHwgcmVzb2x2ZU9ubHksCiAgICAgICAgIGFuYWx5emVTaWduYXR1cmVzT25seTogYW5hbHl6ZVNpZ25hdHVyZXNPbmx5LAogICAgICAgICBidWlsZElkOiBidWlsZElkLAotICAgICAgICBkYXJ0MmRhcnRNdWx0aUZpbGU6IGRhcnQyZGFydE11bHRpRmlsZSwKICAgICAgICAgZGVmZXJyZWRNYXBVcmk6IGRlZmVycmVkTWFwVXJpLAogICAgICAgICBmYXRhbFdhcm5pbmdzOiBmYXRhbFdhcm5pbmdzLAogICAgICAgICB0ZXJzZURpYWdub3N0aWNzOiB0ZXJzZURpYWdub3N0aWNzLApAQCAtNDM2LDkgKzQyNCw4IEBACiAgICAgICAgIHN1cHByZXNzSGludHM6IHN1cHByZXNzSGludHMsCiAgICAgICAgIHNob3duUGFja2FnZVdhcm5pbmdzOiBzaG93blBhY2thZ2VXYXJuaW5ncywKICAgICAgICAgZGlzYWJsZUlubGluaW5nOiBkaXNhYmxlSW5saW5pbmcgfHwgaGFzSW5jcmVtZW50YWxTdXBwb3J0LAotICAgICAgICBkaXNhYmxlVHlwZUluZmVyZW5jZTogZGlzYWJsZVR5cGVJbmZlcmVuY2UgfHwgIWVtaXRKYXZhU2NyaXB0LAorICAgICAgICBkaXNhYmxlVHlwZUluZmVyZW5jZTogZGlzYWJsZVR5cGVJbmZlcmVuY2UsCiAgICAgICAgIGR1bXBJbmZvOiBkdW1wSW5mbywKLSAgICAgICAgZW1pdEphdmFTY3JpcHQ6IGVtaXRKYXZhU2NyaXB0LAogICAgICAgICBlbmFibGVBc3NlcnRNZXNzYWdlOiBlbmFibGVBc3NlcnRNZXNzYWdlLAogICAgICAgICBlbmFibGVHZW5lcmljTWV0aG9kU3ludGF4OiBlbmFibGVHZW5lcmljTWV0aG9kU3ludGF4LAogICAgICAgICBlbmFibGVJbml0aWFsaXppbmdGb3JtYWxBY2Nlc3M6IGVuYWJsZUluaXRpYWxpemluZ0Zvcm1hbEFjY2VzcywKQEAgLTQ1Miw4ICs0MzksNyBAQAogICAgICAgICBoYXNJbmNyZW1lbnRhbFN1cHBvcnQ6IGhhc0luY3JlbWVudGFsU3VwcG9ydCwKICAgICAgICAgb3V0cHV0VXJpOiBvdXRwdXRVcmksCiAgICAgICAgIHBsYXRmb3JtQ29uZmlnVXJpOiBwbGF0Zm9ybUNvbmZpZ1VyaSA/PwotICAgICAgICAgICAgX3Jlc29sdmVQbGF0Zm9ybUNvbmZpZygKLSAgICAgICAgICAgICAgICBsaWJyYXJ5Um9vdCwgbnVsbCwgIWVtaXRKYXZhU2NyaXB0LCBjb25zdCBbXSksCisgICAgICAgICAgICBfcmVzb2x2ZVBsYXRmb3JtQ29uZmlnKGxpYnJhcnlSb290LCBudWxsLCBjb25zdCBbXSksCiAgICAgICAgIHByZXNlcnZlQ29tbWVudHM6IHByZXNlcnZlQ29tbWVudHMsCiAgICAgICAgIHByZXNlcnZlVXJpczogcHJlc2VydmVVcmlzLAogICAgICAgICByZXNvbHV0aW9uSW5wdXRzOiByZXNvbHV0aW9uSW5wdXRzLApAQCAtNDgyLDcgKzQ2OCw2IEBACiAgICAgICB0aGlzLmFuYWx5emVPbmx5OiBmYWxzZSwKICAgICAgIHRoaXMuYW5hbHl6ZVNpZ25hdHVyZXNPbmx5OiBmYWxzZSwKICAgICAgIHRoaXMuYnVpbGRJZDogX1VOREVURVJNSU5FRF9CVUlMRF9JRCwKLSAgICAgIHRoaXMuZGFydDJkYXJ0TXVsdGlGaWxlOiBmYWxzZSwKICAgICAgIHRoaXMuZGVmZXJyZWRNYXBVcmk6IG51bGwsCiAgICAgICB0aGlzLmZhdGFsV2FybmluZ3M6IGZhbHNlLAogICAgICAgdGhpcy50ZXJzZURpYWdub3N0aWNzOiBmYWxzZSwKQEAgLTQ5Miw3ICs0NzcsNiBAQAogICAgICAgdGhpcy5kaXNhYmxlSW5saW5pbmc6IGZhbHNlLAogICAgICAgdGhpcy5kaXNhYmxlVHlwZUluZmVyZW5jZTogZmFsc2UsCiAgICAgICB0aGlzLmR1bXBJbmZvOiBmYWxzZSwKLSAgICAgIHRoaXMuZW1pdEphdmFTY3JpcHQ6IHRydWUsCiAgICAgICB0aGlzLmVuYWJsZUFzc2VydE1lc3NhZ2U6IGZhbHNlLAogICAgICAgdGhpcy5lbmFibGVHZW5lcmljTWV0aG9kU3ludGF4OiBmYWxzZSwKICAgICAgIHRoaXMuZW5hYmxlSW5pdGlhbGl6aW5nRm9ybWFsQWNjZXNzOiBmYWxzZSwKQEAgLTU0MSw3ICs1MjUsNiBAQAogICAgICAgYW5hbHl6ZU9ubHksCiAgICAgICBhbmFseXplU2lnbmF0dXJlc09ubHksCiAgICAgICBidWlsZElkLAotICAgICAgZGFydDJkYXJ0TXVsdGlGaWxlLAogICAgICAgZGVmZXJyZWRNYXBVcmksCiAgICAgICBmYXRhbFdhcm5pbmdzLAogICAgICAgdGVyc2VEaWFnbm9zdGljcywKQEAgLTU1MSw3ICs1MzQsNiBAQAogICAgICAgZGlzYWJsZUlubGluaW5nLAogICAgICAgZGlzYWJsZVR5cGVJbmZlcmVuY2UsCiAgICAgICBkdW1wSW5mbywKLSAgICAgIGVtaXRKYXZhU2NyaXB0LAogICAgICAgZW5hYmxlQXNzZXJ0TWVzc2FnZSwKICAgICAgIGVuYWJsZUdlbmVyaWNNZXRob2RTeW50YXgsCiAgICAgICBlbmFibGVJbml0aWFsaXppbmdGb3JtYWxBY2Nlc3MsCkBAIC01OTksNyArNTgxLDYgQEAKICAgICAgICAgYW5hbHl6ZVNpZ25hdHVyZXNPbmx5OgogICAgICAgICAgICAgYW5hbHl6ZVNpZ25hdHVyZXNPbmx5ID8/IG9wdGlvbnMuYW5hbHl6ZVNpZ25hdHVyZXNPbmx5LAogICAgICAgICBidWlsZElkOiBidWlsZElkID8/IG9wdGlvbnMuYnVpbGRJZCwKLSAgICAgICAgZGFydDJkYXJ0TXVsdGlGaWxlOiBkYXJ0MmRhcnRNdWx0aUZpbGUgPz8gb3B0aW9ucy5kYXJ0MmRhcnRNdWx0aUZpbGUsCiAgICAgICAgIGRlZmVycmVkTWFwVXJpOiBkZWZlcnJlZE1hcFVyaSA/PyBvcHRpb25zLmRlZmVycmVkTWFwVXJpLAogICAgICAgICBmYXRhbFdhcm5pbmdzOiBmYXRhbFdhcm5pbmdzID8/IG9wdGlvbnMuZmF0YWxXYXJuaW5ncywKICAgICAgICAgdGVyc2VEaWFnbm9zdGljczogdGVyc2VEaWFnbm9zdGljcyA/PyBvcHRpb25zLnRlcnNlRGlhZ25vc3RpY3MsCkBAIC02MTEsNyArNTkyLDYgQEAKICAgICAgICAgZGlzYWJsZVR5cGVJbmZlcmVuY2U6CiAgICAgICAgICAgICBkaXNhYmxlVHlwZUluZmVyZW5jZSA/PyBvcHRpb25zLmRpc2FibGVUeXBlSW5mZXJlbmNlLAogICAgICAgICBkdW1wSW5mbzogZHVtcEluZm8gPz8gb3B0aW9ucy5kdW1wSW5mbywKLSAgICAgICAgZW1pdEphdmFTY3JpcHQ6IGVtaXRKYXZhU2NyaXB0ID8/IG9wdGlvbnMuZW1pdEphdmFTY3JpcHQsCiAgICAgICAgIGVuYWJsZUFzc2VydE1lc3NhZ2U6IGVuYWJsZUFzc2VydE1lc3NhZ2UgPz8gb3B0aW9ucy5lbmFibGVBc3NlcnRNZXNzYWdlLAogICAgICAgICBlbmFibGVHZW5lcmljTWV0aG9kU3ludGF4OgogICAgICAgICAgICAgZW5hYmxlR2VuZXJpY01ldGhvZFN5bnRheCA/PyBvcHRpb25zLmVuYWJsZUdlbmVyaWNNZXRob2RTeW50YXgsCkBAIC03MjIsMTEgKzcwMiw5IEBACiB9CiAKIFVyaSBfcmVzb2x2ZVBsYXRmb3JtQ29uZmlnKFVyaSBsaWJyYXJ5Um9vdCwgU3RyaW5nIHBsYXRmb3JtQ29uZmlnUGF0aCwKLSAgICBib29sIGlzRGFydDJEYXJ0LCBJdGVyYWJsZTxTdHJpbmc+IGNhdGVnb3JpZXMpIHsKKyAgICBJdGVyYWJsZTxTdHJpbmc+IGNhdGVnb3JpZXMpIHsKICAgaWYgKHBsYXRmb3JtQ29uZmlnUGF0aCAhPSBudWxsKSB7CiAgICAgcmV0dXJuIGxpYnJhcnlSb290LnJlc29sdmUocGxhdGZvcm1Db25maWdQYXRoKTsKLSAgfSBlbHNlIGlmIChpc0RhcnQyRGFydCkgewotICAgIHJldHVybiBsaWJyYXJ5Um9vdC5yZXNvbHZlKF9kYXJ0MmRhcnRQbGF0Zm9ybSk7CiAgIH0gZWxzZSB7CiAgICAgaWYgKGNhdGVnb3JpZXMubGVuZ3RoID09IDApIHsKICAgICAgIHJldHVybiBsaWJyYXJ5Um9vdC5yZXNvbHZlKF9jbGllbnRQbGF0Zm9ybSk7CkBAIC03NDcsNyArNzI1LDYgQEAKICAgcmV0dXJuIF9yZXNvbHZlUGxhdGZvcm1Db25maWcoCiAgICAgICBsaWJyYXJ5Um9vdCwKICAgICAgIF9leHRyYWN0U3RyaW5nT3B0aW9uKG9wdGlvbnMsICItLXBsYXRmb3JtLWNvbmZpZz0iLCBudWxsKSwKLSAgICAgIF9oYXNPcHRpb24ob3B0aW9ucywgJy0tb3V0cHV0LXR5cGU9ZGFydCcpLAogICAgICAgX2V4dHJhY3RDc3ZPcHRpb24ob3B0aW9ucywgJy0tY2F0ZWdvcmllcz0nKSk7CiB9CiAKQEAgLTc1NSw3ICs3MzIsNiBAQAogY29uc3QgU3RyaW5nIF9jbGllbnRQbGF0Zm9ybSA9ICJsaWIvZGFydF9jbGllbnQucGxhdGZvcm0iOwogY29uc3QgU3RyaW5nIF9zZXJ2ZXJQbGF0Zm9ybSA9ICJsaWIvZGFydF9zZXJ2ZXIucGxhdGZvcm0iOwogY29uc3QgU3RyaW5nIF9zaGFyZWRQbGF0Zm9ybSA9ICJsaWIvZGFydF9zaGFyZWQucGxhdGZvcm0iOwotY29uc3QgU3RyaW5nIF9kYXJ0MmRhcnRQbGF0Zm9ybSA9ICJsaWIvZGFydDJkYXJ0LnBsYXRmb3JtIjsKIAogY29uc3QgU3RyaW5nIF9VTkRFVEVSTUlORURfQlVJTERfSUQgPSAiYnVpbGQgbnVtYmVyIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIjsKIGNvbnN0IGJvb2wgX2ZvcmNlSW5jcmVtZW50YWxTdXBwb3J0ID0KZGlmZiAtLWdpdCBhL3BrZy9jb21waWxlci9saWIvc3JjL3NzYS9pbnRlcmNlcHRvcl9zaW1wbGlmaWVyLmRhcnQgYi9wa2cvY29tcGlsZXIvbGliL3NyYy9zc2EvaW50ZXJjZXB0b3Jfc2ltcGxpZmllci5kYXJ0CmluZGV4IDMyNDljMzEuLjZhNWM4MmQgMTAwNjQ0Ci0tLSBhL3BrZy9jb21waWxlci9saWIvc3JjL3NzYS9pbnRlcmNlcHRvcl9zaW1wbGlmaWVyLmRhcnQKKysrIGIvcGtnL2NvbXBpbGVyL2xpYi9zcmMvc3NhL2ludGVyY2VwdG9yX3NpbXBsaWZpZXIuZGFydApAQCAtMjMyLDE3ICsyMzIsMjQgQEAKICAgICAgIGlmIChpbnRlcmNlcHRlZENsYXNzZXMuY29udGFpbnMoaGVscGVycy5qc051bWJlckNsYXNzKSAmJgogICAgICAgICAgICEoaW50ZXJjZXB0ZWRDbGFzc2VzLmNvbnRhaW5zKGhlbHBlcnMuanNEb3VibGVDbGFzcykgfHwKICAgICAgICAgICAgICAgaW50ZXJjZXB0ZWRDbGFzc2VzLmNvbnRhaW5zKGhlbHBlcnMuanNJbnRDbGFzcykpKSB7CisgICAgICAgIFNldDxDbGFzc0VsZW1lbnQ+IHJlcXVpcmVkOwogICAgICAgICBmb3IgKEhJbnN0cnVjdGlvbiB1c2VyIGluIG5vZGUudXNlZEJ5KSB7CiAgICAgICAgICAgaWYgKHVzZXIgaXMhIEhJbnZva2UpIGNvbnRpbnVlOwogICAgICAgICAgIFNldDxDbGFzc0VsZW1lbnQ+IGludGVyY2VwdGVkID0KICAgICAgICAgICAgICAgYmFja2VuZC5nZXRJbnRlcmNlcHRlZENsYXNzZXNPbih1c2VyLnNlbGVjdG9yLm5hbWUpOwogICAgICAgICAgIGlmIChpbnRlcmNlcHRlZC5jb250YWlucyhoZWxwZXJzLmpzSW50Q2xhc3MpKSB7Ci0gICAgICAgICAgICBpbnRlcmNlcHRlZENsYXNzZXMuYWRkKGhlbHBlcnMuanNJbnRDbGFzcyk7CisgICAgICAgICAgICByZXF1aXJlZCA/Pz0gbmV3IFNldDxDbGFzc0VsZW1lbnQ+KCk7CisgICAgICAgICAgICByZXF1aXJlZC5hZGQoaGVscGVycy5qc0ludENsYXNzKTsKICAgICAgICAgICB9CiAgICAgICAgICAgaWYgKGludGVyY2VwdGVkLmNvbnRhaW5zKGhlbHBlcnMuanNEb3VibGVDbGFzcykpIHsKLSAgICAgICAgICAgIGludGVyY2VwdGVkQ2xhc3Nlcy5hZGQoaGVscGVycy5qc0RvdWJsZUNsYXNzKTsKKyAgICAgICAgICAgIHJlcXVpcmVkID8/PSBuZXcgU2V0PENsYXNzRWxlbWVudD4oKTsKKyAgICAgICAgICAgIHJlcXVpcmVkLmFkZChoZWxwZXJzLmpzRG91YmxlQ2xhc3MpOwogICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICAvLyBEb24ndCBtb2RpZnkgdGhlIHJlc3VsdCBvZiBbYmFja2VuZC5nZXRJbnRlcmNlcHRlZENsYXNzZXNPbl0uCisgICAgICAgIGlmIChyZXF1aXJlZCAhPSBudWxsKSB7CisgICAgICAgICAgaW50ZXJjZXB0ZWRDbGFzc2VzID0gaW50ZXJjZXB0ZWRDbGFzc2VzLnVuaW9uKHJlcXVpcmVkKTsKKyAgICAgICAgfQogICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICBpbnRlcmNlcHRlZENsYXNzZXMgPSBuZXcgU2V0PENsYXNzRWxlbWVudD4oKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL2lvX25hdGl2ZXMuY2MgYi9ydW50aW1lL2Jpbi9pb19uYXRpdmVzLmNjCmluZGV4IDYwOWJiZWYuLjhjOWM4YzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYmluL2lvX25hdGl2ZXMuY2MKKysrIGIvcnVudGltZS9iaW4vaW9fbmF0aXZlcy5jYwpAQCAtMTIxLDYgKzEyMSw3IEBACiAgIFYoU29ja2V0X0NyZWF0ZUNvbm5lY3QsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBWKFNvY2tldF9DcmVhdGVCaW5kQ29ubmVjdCwgNCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgVihTb2NrZXRfQ3JlYXRlQmluZERhdGFncmFtLCA0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIFYoU29ja2V0X0lzQmluZEVycm9yLCAyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBWKFNvY2tldF9BdmFpbGFibGUsIDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgVihTb2NrZXRfUmVhZCwgMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIFYoU29ja2V0X1JlY3ZGcm9tLCAxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvcnVudGltZS9iaW4vc2VjdXJlX3NvY2tldF9ib3Jpbmdzc2wuY2MgYi9ydW50aW1lL2Jpbi9zZWN1cmVfc29ja2V0X2JvcmluZ3NzbC5jYwppbmRleCBkZWYzYWFlLi5lODgxODE1IDEwMDY0NAotLS0gYS9ydW50aW1lL2Jpbi9zZWN1cmVfc29ja2V0X2JvcmluZ3NzbC5jYworKysgYi9ydW50aW1lL2Jpbi9zZWN1cmVfc29ja2V0X2JvcmluZ3NzbC5jYwpAQCAtOTQsMTEgKzk0LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1lc3NhZ2UpIHsKICAgY2hhciBlcnJvcl9zdHJpbmdbU1NMX0VSUk9SX01FU1NBR0VfQlVGRkVSX1NJWkVdOwogICBGZXRjaEVycm9yU3RyaW5nKGVycm9yX3N0cmluZywgU1NMX0VSUk9SX01FU1NBR0VfQlVGRkVSX1NJWkUpOwotICBPU0Vycm9yIG9zX2Vycm9yX3N0cnVjdChzdGF0dXMsIGVycm9yX3N0cmluZywgT1NFcnJvcjo6a0JvcmluZ1NTTCk7Ci0gIERhcnRfSGFuZGxlIG9zX2Vycm9yID0gRGFydFV0aWxzOjpOZXdEYXJ0T1NFcnJvcigmb3NfZXJyb3Jfc3RydWN0KTsKLSAgRGFydF9IYW5kbGUgZXhjZXB0aW9uID0KLSAgICAgIERhcnRVdGlsczo6TmV3RGFydElPRXhjZXB0aW9uKGV4Y2VwdGlvbl90eXBlLCBtZXNzYWdlLCBvc19lcnJvcik7Ci0gIEFTU0VSVCghRGFydF9Jc0Vycm9yKGV4Y2VwdGlvbikpOworICBEYXJ0X0hhbmRsZSBleGNlcHRpb247CisgIHsKKyAgICBPU0Vycm9yIG9zX2Vycm9yX3N0cnVjdChzdGF0dXMsIGVycm9yX3N0cmluZywgT1NFcnJvcjo6a0JvcmluZ1NTTCk7CisgICAgRGFydF9IYW5kbGUgb3NfZXJyb3IgPSBEYXJ0VXRpbHM6Ok5ld0RhcnRPU0Vycm9yKCZvc19lcnJvcl9zdHJ1Y3QpOworICAgIGV4Y2VwdGlvbiA9CisgICAgICAgIERhcnRVdGlsczo6TmV3RGFydElPRXhjZXB0aW9uKGV4Y2VwdGlvbl90eXBlLCBtZXNzYWdlLCBvc19lcnJvcik7CisgICAgQVNTRVJUKCFEYXJ0X0lzRXJyb3IoZXhjZXB0aW9uKSk7CisgIH0KICAgRGFydF9UaHJvd0V4Y2VwdGlvbihleGNlcHRpb24pOwogICBVTlJFQUNIQUJMRSgpOwogfQpAQCAtMTQzLDggKzE0Niw4IEBACiB9CiAKIAotc3RhdGljIFNTTF9DVFgqIEdldFNlY3VyaXR5Q29udGV4dChEYXJ0X05hdGl2ZUFyZ3VtZW50cyBhcmdzKSB7Ci0gIFNTTF9DVFgqIGNvbnRleHQ7CitzdGF0aWMgU1NMQ29udGV4dCogR2V0U2VjdXJpdHlDb250ZXh0KERhcnRfTmF0aXZlQXJndW1lbnRzIGFyZ3MpIHsKKyAgU1NMQ29udGV4dCogY29udGV4dDsKICAgRGFydF9IYW5kbGUgZGFydF90aGlzID0gVGhyb3dJZkVycm9yKERhcnRfR2V0TmF0aXZlQXJndW1lbnQoYXJncywgMCkpOwogICBBU1NFUlQoRGFydF9Jc0luc3RhbmNlKGRhcnRfdGhpcykpOwogICBUaHJvd0lmRXJyb3IoRGFydF9HZXROYXRpdmVJbnN0YW5jZUZpZWxkKApAQCAtMTU1LDE3ICsxNTgsMTcgQEAKIH0KIAogCi1zdGF0aWMgdm9pZCBGcmVlU2VjdXJpdHlDb250ZXh0KAorc3RhdGljIHZvaWQgRGVsZXRlU2VjdXJpdHlDb250ZXh0KAogICAgIHZvaWQqIGlzb2xhdGVfZGF0YSwKICAgICBEYXJ0X1dlYWtQZXJzaXN0ZW50SGFuZGxlIGhhbmRsZSwKICAgICB2b2lkKiBjb250ZXh0X3BvaW50ZXIpIHsKLSAgU1NMX0NUWCogY29udGV4dCA9IHN0YXRpY19jYXN0PFNTTF9DVFgqPihjb250ZXh0X3BvaW50ZXIpOwotICBTU0xfQ1RYX2ZyZWUoY29udGV4dCk7CisgIFNTTENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxTU0xDb250ZXh0Kj4oY29udGV4dF9wb2ludGVyKTsKKyAgZGVsZXRlIGNvbnRleHQ7CiB9CiAKIAogc3RhdGljIERhcnRfSGFuZGxlIFNldFNlY3VyaXR5Q29udGV4dChEYXJ0X05hdGl2ZUFyZ3VtZW50cyBhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfQ1RYKiBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTENvbnRleHQqIGNvbnRleHQpIHsKICAgY29uc3QgaW50IGFwcHJveGltYXRlX3NpemVfb2ZfY29udGV4dCA9IDE1MDA7CiAgIERhcnRfSGFuZGxlIGRhcnRfdGhpcyA9IERhcnRfR2V0TmF0aXZlQXJndW1lbnQoYXJncywgMCk7CiAgIFJFVFVSTl9JRl9FUlJPUihkYXJ0X3RoaXMpOwpAQCAtMTc4LDcgKzE4MSw3IEBACiAgIERhcnRfTmV3V2Vha1BlcnNpc3RlbnRIYW5kbGUoZGFydF90aGlzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm94aW1hdGVfc2l6ZV9vZl9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyZWVTZWN1cml0eUNvbnRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlbGV0ZVNlY3VyaXR5Q29udGV4dCk7CiAgIHJldHVybiBEYXJ0X051bGwoKTsKIH0KIApAQCAtMTk4LDcgKzIwMSw3IEBACiAvLyBGb3J3YXJkIGRlY2xhcmF0aW9uLgogc3RhdGljIHZvaWQgU2V0QWxwblByb3RvY29sTGlzdChEYXJ0X0hhbmRsZSBwcm90b2NvbHNfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0wqIHNzbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMX0NUWCogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMQ29udGV4dCogY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19zZXJ2ZXIpOwogCiAKQEAgLTIzNSw3ICsyMzgsNyBAQAogICAvLyBUT0RPKHdoZXNzZSk6IElzIHRydW5jYXRpbmcgYSBEYXJ0IHN0cmluZyBjb250YWluaW5nIFwwIHdoYXQgd2Ugd2FudD8KICAgVGhyb3dJZkVycm9yKERhcnRfU3RyaW5nVG9DU3RyaW5nKGhvc3RfbmFtZV9vYmplY3QsICZob3N0X25hbWUpKTsKIAotICBTU0xfQ1RYKiBjb250ZXh0ID0gTlVMTDsKKyAgU1NMQ29udGV4dCogY29udGV4dCA9IE5VTEw7CiAgIGlmICghRGFydF9Jc051bGwoY29udGV4dF9vYmplY3QpKSB7CiAgICAgVGhyb3dJZkVycm9yKERhcnRfR2V0TmF0aXZlSW5zdGFuY2VGaWVsZCgKICAgICAgICAgY29udGV4dF9vYmplY3QsCkBAIC0yNDgsNyArMjUxLDcgQEAKICAgQVNTRVJUKCFEYXJ0X0lzTnVsbChwcm90b2NvbHNfaGFuZGxlKSk7CiAKICAgR2V0RmlsdGVyKGFyZ3MpLT5Db25uZWN0KGhvc3RfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2NsaWVudF9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVfY2xpZW50X2NlcnRpZmljYXRlLApAQCAtNDI2LDE0ICs0MjksMTUgQEAKIAogdm9pZCBGVU5DVElPTl9OQU1FKFNlY3VyaXR5Q29udGV4dF9BbGxvY2F0ZSkoRGFydF9OYXRpdmVBcmd1bWVudHMgYXJncykgewogICBTU0xGaWx0ZXI6OkluaXRpYWxpemVMaWJyYXJ5KCk7Ci0gIFNTTF9DVFgqIGNvbnRleHQgPSBTU0xfQ1RYX25ldyhUTFNfbWV0aG9kKCkpOwotICBTU0xfQ1RYX3NldF92ZXJpZnkoY29udGV4dCwgU1NMX1ZFUklGWV9QRUVSLCBDZXJ0aWZpY2F0ZUNhbGxiYWNrKTsKLSAgU1NMX0NUWF9zZXRfbWluX3ZlcnNpb24oY29udGV4dCwgVExTMV9WRVJTSU9OKTsKLSAgU1NMX0NUWF9zZXRfY2lwaGVyX2xpc3QoY29udGV4dCwgIkhJR0g6TUVESVVNIik7Ci0gIFNTTF9DVFhfc2V0X2NpcGhlcl9saXN0X3RsczExKGNvbnRleHQsICJISUdIOk1FRElVTSIpOworICBTU0xfQ1RYKiBjdHggPSBTU0xfQ1RYX25ldyhUTFNfbWV0aG9kKCkpOworICBTU0xfQ1RYX3NldF92ZXJpZnkoY3R4LCBTU0xfVkVSSUZZX1BFRVIsIENlcnRpZmljYXRlQ2FsbGJhY2spOworICBTU0xfQ1RYX3NldF9taW5fdmVyc2lvbihjdHgsIFRMUzFfVkVSU0lPTik7CisgIFNTTF9DVFhfc2V0X2NpcGhlcl9saXN0KGN0eCwgIkhJR0g6TUVESVVNIik7CisgIFNTTF9DVFhfc2V0X2NpcGhlcl9saXN0X3RsczExKGN0eCwgIkhJR0g6TUVESVVNIik7CisgIFNTTENvbnRleHQqIGNvbnRleHQgPSBuZXcgU1NMQ29udGV4dChjdHgpOwogICBEYXJ0X0hhbmRsZSBlcnIgPSBTZXRTZWN1cml0eUNvbnRleHQoYXJncywgY29udGV4dCk7CiAgIGlmIChEYXJ0X0lzRXJyb3IoZXJyKSkgewotICAgIFNTTF9DVFhfZnJlZShjb250ZXh0KTsKKyAgICBkZWxldGUgY29udGV4dDsKICAgICBEYXJ0X1Byb3BhZ2F0ZUVycm9yKGVycik7CiAgIH0KIH0KQEAgLTY2MywxNCArNjY3LDE3IEBACiAKIHZvaWQgRlVOQ1RJT05fTkFNRShTZWN1cml0eUNvbnRleHRfVXNlUHJpdmF0ZUtleUJ5dGVzKSgKICAgICBEYXJ0X05hdGl2ZUFyZ3VtZW50cyBhcmdzKSB7Ci0gIFNTTF9DVFgqIGNvbnRleHQgPSBHZXRTZWN1cml0eUNvbnRleHQoYXJncyk7CisgIFNTTENvbnRleHQqIGNvbnRleHQgPSBHZXRTZWN1cml0eUNvbnRleHQoYXJncyk7CiAgIGNvbnN0IGNoYXIqIHBhc3N3b3JkID0gR2V0UGFzc3dvcmRBcmd1bWVudChhcmdzLCAyKTsKIAogICBpbnQgc3RhdHVzOwogICB7CiAgICAgU2NvcGVkTWVtQklPIGJpbyhUaHJvd0lmRXJyb3IoRGFydF9HZXROYXRpdmVBcmd1bWVudChhcmdzLCAxKSkpOwogICAgIEVWUF9QS0VZICprZXkgPSBHZXRQcml2YXRlS2V5KGJpby5iaW8oKSwgcGFzc3dvcmQpOwotICAgIHN0YXR1cyA9IFNTTF9DVFhfdXNlX1ByaXZhdGVLZXkoY29udGV4dCwga2V5KTsKKyAgICBzdGF0dXMgPSBTU0xfQ1RYX3VzZV9Qcml2YXRlS2V5KGNvbnRleHQtPmNvbnRleHQoKSwga2V5KTsKKyAgICAvLyBTU0xfQ1RYX3VzZV9Qcml2YXRlS2V5IGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBrZXkgb24gc3VjY2VzcywKKyAgICAvLyBzbyB3ZSBoYXZlIHRvIGNhbGwgRVZQX1BLRVlfZnJlZSBvbiBib3RoIHN1Y2Nlc3MgYW5kIGZhaWx1cmUuCisgICAgRVZQX1BLRVlfZnJlZShrZXkpOwogICB9CiAKICAgLy8gVE9ETygyNDE4NCk6IEhhbmRsZSBkaWZmZXJlbnQgZXhwZWN0ZWQgZXJyb3JzIGhlcmUgLSBmaWxlIG1pc3NpbmcsCkBAIC02OTksMTYgKzcwNiwxOCBAQAogICBTY29wZWRYNTA5U3RhY2sgY2VydF9zdGFjayhjYV9jZXJ0cyk7CiAgIFg1MDlfU1RPUkUqIHN0b3JlID0gU1NMX0NUWF9nZXRfY2VydF9zdG9yZShjb250ZXh0KTsKICAgc3RhdHVzID0gWDUwOV9TVE9SRV9hZGRfY2VydChzdG9yZSwgY2VydCk7CisgIC8vIFg1MDlfU1RPUkVfYWRkX2NlcnQgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGNlcnQgb24gc3VjY2Vzcy4KKyAgWDUwOV9mcmVlKGNlcnQpOwogICBpZiAoc3RhdHVzID09IDApIHsKLSAgICBYNTA5X2ZyZWUoY2VydCk7CiAgICAgcmV0dXJuIHN0YXR1czsKICAgfQogCiAgIFg1MDkqIGNhOwogICB3aGlsZSAoKGNhID0gc2tfWDUwOV9zaGlmdChjZXJ0X3N0YWNrLmdldCgpKSkgIT0gTlVMTCkgewogICAgIHN0YXR1cyA9IFg1MDlfU1RPUkVfYWRkX2NlcnQoc3RvcmUsIGNhKTsKKyAgICAvLyBYNTA5X1NUT1JFX2FkZF9jZXJ0IGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBjZXJ0IG9uIHN1Y2Nlc3MuCisgICAgWDUwOV9mcmVlKGNhKTsKICAgICBpZiAoc3RhdHVzID09IDApIHsKLSAgICAgIFg1MDlfZnJlZShjYSk7CiAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KICAgfQpAQCAtNzI0LDggKzczMyw5IEBACiAgIFg1MDkqIGNlcnQgPSBOVUxMOwogICB3aGlsZSAoKGNlcnQgPSBQRU1fcmVhZF9iaW9fWDUwOShiaW8sIE5VTEwsIE5VTEwsIE5VTEwpKSAhPSBOVUxMKSB7CiAgICAgc3RhdHVzID0gWDUwOV9TVE9SRV9hZGRfY2VydChzdG9yZSwgY2VydCk7CisgICAgLy8gWDUwOV9TVE9SRV9hZGRfY2VydCBpbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgY2VydCBvbiBzdWNjZXNzLgorICAgIFg1MDlfZnJlZShjZXJ0KTsKICAgICBpZiAoc3RhdHVzID09IDApIHsKLSAgICAgIFg1MDlfZnJlZShjZXJ0KTsKICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQogICB9CkBAIC03NTksMTIgKzc2OSwxMyBAQAogCiB2b2lkIEZVTkNUSU9OX05BTUUoU2VjdXJpdHlDb250ZXh0X1NldFRydXN0ZWRDZXJ0aWZpY2F0ZXNCeXRlcykoCiAgICAgRGFydF9OYXRpdmVBcmd1bWVudHMgYXJncykgewotICBTU0xfQ1RYKiBjb250ZXh0ID0gR2V0U2VjdXJpdHlDb250ZXh0KGFyZ3MpOworICBTU0xDb250ZXh0KiBjb250ZXh0ID0gR2V0U2VjdXJpdHlDb250ZXh0KGFyZ3MpOwogICBjb25zdCBjaGFyKiBwYXNzd29yZCA9IEdldFBhc3N3b3JkQXJndW1lbnQoYXJncywgMik7CiAgIGludCBzdGF0dXM7CiAgIHsKICAgICBTY29wZWRNZW1CSU8gYmlvKFRocm93SWZFcnJvcihEYXJ0X0dldE5hdGl2ZUFyZ3VtZW50KGFyZ3MsIDEpKSk7Ci0gICAgc3RhdHVzID0gU2V0VHJ1c3RlZENlcnRpZmljYXRlc0J5dGVzKGNvbnRleHQsIGJpby5iaW8oKSwgcGFzc3dvcmQpOworICAgIHN0YXR1cyA9IFNldFRydXN0ZWRDZXJ0aWZpY2F0ZXNCeXRlcygKKyAgICAgICAgY29udGV4dC0+Y29udGV4dCgpLCBiaW8uYmlvKCksIHBhc3N3b3JkKTsKICAgfQogICBDaGVja1N0YXR1cyhzdGF0dXMsCiAgICAgICAgICAgICAgICJUbHNFeGNlcHRpb24iLApAQCAtNzc5LDcgKzc5MCw3IEBACiAKIHZvaWQgRlVOQ1RJT05fTkFNRShTZWN1cml0eUNvbnRleHRfVHJ1c3RCdWlsdGluUm9vdHMpKAogICAgIERhcnRfTmF0aXZlQXJndW1lbnRzIGFyZ3MpIHsKLSAgU1NMX0NUWCogY29udGV4dCA9IEdldFNlY3VyaXR5Q29udGV4dChhcmdzKTsKKyAgU1NMQ29udGV4dCogY29udGV4dCA9IEdldFNlY3VyaXR5Q29udGV4dChhcmdzKTsKICNpZiBkZWZpbmVkKFRBUkdFVF9PU19BTkRST0lEKQogICAvLyBPbiBBbmRyb2lkLCB3ZSBkb24ndCBjb21waWxlIGluIHRoZSB0cnVzdGVkIHJvb3QgY2VydGlmaWNhdGVzLiBJbnNlYWQsCiAgIC8vIHdlIHVzZSB0aGUgZGlyZWN0b3J5IG9mIHRydXN0ZWQgY2VydGlmaWNhdGVzIGFscmVhZHkgcHJlc2VudCBvbiB0aGUgZGV2aWNlLgpAQCAtNzg5LDEwICs4MDAsMTEgQEAKICAgLy8gdGhlIERhcnQgdGhyZWFkIHNvIHRoYXQgRGFydCBjb2RlIGNhbiBiZSBpbnZva2VkIGZyb20gdGhlICJiYWQgY2VydGlmaWNhdGUiCiAgIC8vIGNhbGxiYWNrIGNhbGxlZCBieSBTU0xfZG9faGFuZHNoYWtlLgogICBjb25zdCBjaGFyKiBhbmRyb2lkX2NhY2VydHMgPSAiL3N5c3RlbS9ldGMvc2VjdXJpdHkvY2FjZXJ0cyI7Ci0gIGludCBzdGF0dXMgPSBTU0xfQ1RYX2xvYWRfdmVyaWZ5X2xvY2F0aW9ucyhjb250ZXh0LCBOVUxMLCBhbmRyb2lkX2NhY2VydHMpOworICBpbnQgc3RhdHVzID0gU1NMX0NUWF9sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoCisgICAgICBjb250ZXh0LT5jb250ZXh0KCksIE5VTEwsIGFuZHJvaWRfY2FjZXJ0cyk7CiAgIENoZWNrU3RhdHVzKHN0YXR1cywgIlRsc0V4Y2VwdGlvbiIsICJGYWlsdXJlIHRydXN0aW5nIGJ1aWx0aW50IHJvb3RzIik7CiAjZWxzZQotICBYNTA5X1NUT1JFKiBzdG9yZSA9IFNTTF9DVFhfZ2V0X2NlcnRfc3RvcmUoY29udGV4dCk7CisgIFg1MDlfU1RPUkUqIHN0b3JlID0gU1NMX0NUWF9nZXRfY2VydF9zdG9yZShjb250ZXh0LT5jb250ZXh0KCkpOwogICBCSU8qIHJvb3RzX2JpbyA9CiAgICAgICBCSU9fbmV3X21lbV9idWYoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4ocm9vdF9jZXJ0aWZpY2F0ZXNfcGVtKSwKICAgICAgICAgICAgICAgICAgICAgICByb290X2NlcnRpZmljYXRlc19wZW1fbGVuZ3RoKTsKQEAgLTgwMSw3ICs4MTMsMTIgQEAKICAgLy8gYmFja2VkIGJ5IGEgbWVtb3J5IGJ1ZmZlciksIGFuZCByZXR1cm5zIFg1MDkgb2JqZWN0cywgb25lIGJ5IG9uZS4KICAgLy8gV2hlbiB0aGUgZW5kIG9mIHRoZSBiaW8gaXMgcmVhY2hlZCwgaXQgcmV0dXJucyBudWxsLgogICB3aGlsZSAoKHJvb3RfY2VydCA9IFBFTV9yZWFkX2Jpb19YNTA5KHJvb3RzX2JpbywgTlVMTCwgTlVMTCwgTlVMTCkpICE9IE5VTEwpIHsKLSAgICBYNTA5X1NUT1JFX2FkZF9jZXJ0KHN0b3JlLCByb290X2NlcnQpOworICAgIGludCBzdGF0dXMgPSBYNTA5X1NUT1JFX2FkZF9jZXJ0KHN0b3JlLCByb290X2NlcnQpOworICAgIC8vIFg1MDlfU1RPUkVfYWRkX2NlcnQgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGNlcnQgb24gc3VjY2Vzcy4KKyAgICBYNTA5X2ZyZWUocm9vdF9jZXJ0KTsKKyAgICBpZiAoc3RhdHVzID09IDApIHsKKyAgICAgIGJyZWFrOworICAgIH0KICAgfQogICBCSU9fZnJlZShyb290c19iaW8pOwogICAvLyBJZiB0aGVyZSBpcyBhbiBlcnJvciBoZXJlLCBpdCBtdXN0IGJlIHRoZSBlcnJvciBpbmRpY2F0aW5nIHRoYXQgd2UgYXJlIGRvbmUKQEAgLTg0NCw2ICs4NjEsOCBAQAogICBYNTA5KiBjYTsKICAgd2hpbGUgKChjYSA9IHNrX1g1MDlfc2hpZnQoY2VydHMuZ2V0KCkpKSAhPSBOVUxMKSB7CiAgICAgc3RhdHVzID0gU1NMX0NUWF9hZGQwX2NoYWluX2NlcnQoY29udGV4dCwgY2EpOworICAgIC8vIFNTTF9DVFhfYWRkMF9jaGFpbl9jZXJ0IGRvZXMgbm90IGluYyByZWYgY291bnQsIHNvIGRvbid0IGZyZWUgdW5sZXNzIHRoZQorICAgIC8vIGNhbGwgZmFpbHMuCiAgICAgaWYgKHN0YXR1cyA9PSAwKSB7CiAgICAgICBYNTA5X2ZyZWUoY2EpOwogICAgICAgcmV0dXJuIHN0YXR1czsKQEAgLTg3NSw2ICs4OTQsOCBAQAogICBYNTA5KiBjYTsKICAgd2hpbGUgKChjYSA9IFBFTV9yZWFkX2Jpb19YNTA5KGJpbywgTlVMTCwgTlVMTCwgTlVMTCkpICE9IE5VTEwpIHsKICAgICBzdGF0dXMgPSBTU0xfQ1RYX2FkZDBfY2hhaW5fY2VydChjb250ZXh0LCBjYSk7CisgICAgLy8gU1NMX0NUWF9hZGQwX2NoYWluX2NlcnQgZG9lcyBub3QgaW5jIHJlZiBjb3VudCwgc28gZG9uJ3QgZnJlZSB1bmxlc3MgdGhlCisgICAgLy8gY2FsbCBmYWlscy4KICAgICBpZiAoc3RhdHVzID09IDApIHsKICAgICAgIFg1MDlfZnJlZShjYSk7CiAgICAgICByZXR1cm4gc3RhdHVzOwpAQCAtOTA2LDEyICs5MjcsMTIgQEAKIAogdm9pZCBGVU5DVElPTl9OQU1FKFNlY3VyaXR5Q29udGV4dF9Vc2VDZXJ0aWZpY2F0ZUNoYWluQnl0ZXMpKAogICAgIERhcnRfTmF0aXZlQXJndW1lbnRzIGFyZ3MpIHsKLSAgU1NMX0NUWCogY29udGV4dCA9IEdldFNlY3VyaXR5Q29udGV4dChhcmdzKTsKKyAgU1NMQ29udGV4dCogY29udGV4dCA9IEdldFNlY3VyaXR5Q29udGV4dChhcmdzKTsKICAgY29uc3QgY2hhciogcGFzc3dvcmQgPSBHZXRQYXNzd29yZEFyZ3VtZW50KGFyZ3MsIDIpOwogICBpbnQgc3RhdHVzOwogICB7CiAgICAgU2NvcGVkTWVtQklPIGJpbyhUaHJvd0lmRXJyb3IoRGFydF9HZXROYXRpdmVBcmd1bWVudChhcmdzLCAxKSkpOwotICAgIHN0YXR1cyA9IFVzZUNoYWluQnl0ZXMoY29udGV4dCwgYmlvLmJpbygpLCBwYXNzd29yZCk7CisgICAgc3RhdHVzID0gVXNlQ2hhaW5CeXRlcyhjb250ZXh0LT5jb250ZXh0KCksIGJpby5iaW8oKSwgcGFzc3dvcmQpOwogICB9CiAgIENoZWNrU3RhdHVzKHN0YXR1cywKICAgICAgICAgICAgICAgIlRsc0V4Y2VwdGlvbiIsCkBAIC05MzcsMTQgKzk1OCwxNiBAQAogCiAgIFNjb3BlZFg1MDlTdGFjayBjZXJ0X3N0YWNrKGNhX2NlcnRzKTsKICAgc3RhdHVzID0gU1NMX0NUWF9hZGRfY2xpZW50X0NBKGNvbnRleHQsIGNlcnQpOworICAvLyBTU0xfQ1RYX2FkZF9jbGllbnRfQ0EgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGNlcnQgb24gc3VjY2Vzcy4KKyAgWDUwOV9mcmVlKGNlcnQpOwogICBpZiAoc3RhdHVzID09IDApIHsKLSAgICBYNTA5X2ZyZWUoY2VydCk7CiAgICAgcmV0dXJuIHN0YXR1czsKICAgfQogCiAgIFg1MDkqIGNhOwogICB3aGlsZSAoKGNhID0gc2tfWDUwOV9zaGlmdChjZXJ0X3N0YWNrLmdldCgpKSkgIT0gTlVMTCkgewogICAgIHN0YXR1cyA9IFNTTF9DVFhfYWRkX2NsaWVudF9DQShjb250ZXh0LCBjYSk7CisgICAgLy8gU1NMX0NUWF9hZGRfY2xpZW50X0NBIGluY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBjYSBvbiBzdWNjZXNzLgogICAgIFg1MDlfZnJlZShjYSk7ICAvLyBUaGUgbmFtZSBoYXMgYmVlbiBleHRyYWN0ZWQuCiAgICAgaWYgKHN0YXR1cyA9PSAwKSB7CiAgICAgICByZXR1cm4gc3RhdHVzOwpAQCAtOTg5LDEzICsxMDEyLDEzIEBACiAKIHZvaWQgRlVOQ1RJT05fTkFNRShTZWN1cml0eUNvbnRleHRfU2V0Q2xpZW50QXV0aG9yaXRpZXNCeXRlcykoCiAgICAgRGFydF9OYXRpdmVBcmd1bWVudHMgYXJncykgewotICBTU0xfQ1RYKiBjb250ZXh0ID0gR2V0U2VjdXJpdHlDb250ZXh0KGFyZ3MpOworICBTU0xDb250ZXh0KiBjb250ZXh0ID0gR2V0U2VjdXJpdHlDb250ZXh0KGFyZ3MpOwogICBjb25zdCBjaGFyKiBwYXNzd29yZCA9IEdldFBhc3N3b3JkQXJndW1lbnQoYXJncywgMik7CiAKICAgaW50IHN0YXR1czsKICAgewogICAgIFNjb3BlZE1lbUJJTyBiaW8oVGhyb3dJZkVycm9yKERhcnRfR2V0TmF0aXZlQXJndW1lbnQoYXJncywgMSkpKTsKLSAgICBzdGF0dXMgPSBTZXRDbGllbnRBdXRob3JpdGllcyhjb250ZXh0LCBiaW8uYmlvKCksIHBhc3N3b3JkKTsKKyAgICBzdGF0dXMgPSBTZXRDbGllbnRBdXRob3JpdGllcyhjb250ZXh0LT5jb250ZXh0KCksIGJpby5iaW8oKSwgcGFzc3dvcmQpOwogICB9CiAKICAgQ2hlY2tTdGF0dXMoc3RhdHVzLApAQCAtMTAwNiw3ICsxMDI5LDcgQEAKIAogdm9pZCBGVU5DVElPTl9OQU1FKFNlY3VyaXR5Q29udGV4dF9TZXRBbHBuUHJvdG9jb2xzKSgKICAgICBEYXJ0X05hdGl2ZUFyZ3VtZW50cyBhcmdzKSB7Ci0gIFNTTF9DVFgqIGNvbnRleHQgPSBHZXRTZWN1cml0eUNvbnRleHQoYXJncyk7CisgIFNTTENvbnRleHQqIGNvbnRleHQgPSBHZXRTZWN1cml0eUNvbnRleHQoYXJncyk7CiAgIERhcnRfSGFuZGxlIHByb3RvY29sc19oYW5kbGUgPQogICAgICAgVGhyb3dJZkVycm9yKERhcnRfR2V0TmF0aXZlQXJndW1lbnQoYXJncywgMSkpOwogICBEYXJ0X0hhbmRsZSBpc19zZXJ2ZXJfaGFuZGxlID0KQEAgLTEzNjMsNyArMTM4Niw3IEBACiAvLyBTZXRzIHRoZSBwcm90b2NvbCBsaXN0IGZvciBBTFBOIG9uIGEgU1NMIG9iamVjdCBvciBhIGNvbnRleHQuCiBzdGF0aWMgdm9pZCBTZXRBbHBuUHJvdG9jb2xMaXN0KERhcnRfSGFuZGxlIHByb3RvY29sc19oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTCogc3NsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfQ1RYKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xDb250ZXh0KiBjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX3NlcnZlcikgewogICAvLyBFbmFibGUgQUxQTiAoYXBwbGljYXRpb24gbGF5ZXIgcHJvdG9jb2wgbmVnb3RpYXRpb24pIGlmIHRoZSBjYWxsZXIgcHJvdmlkZXMKICAgLy8gYSB2YWxpZCBsaXN0IG9mIHN1cHBvcnRlZCBwcm90b2NvbHMuCkBAIC0xNDAwLDEzICsxNDIzLDkgQEAKICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90Kj4obWFsbG9jKHByb3RvY29sX3N0cmluZ19sZW4gKyAxKSk7CiAgICAgICBtZW1tb3ZlKHByb3RvY29sX3N0cmluZ19jb3B5LCBwcm90b2NvbF9zdHJpbmcsIHByb3RvY29sX3N0cmluZ19sZW4pOwogICAgICAgcHJvdG9jb2xfc3RyaW5nX2NvcHlbcHJvdG9jb2xfc3RyaW5nX2xlbl0gPSAnXDAnOwotICAgICAgU1NMX0NUWF9zZXRfYWxwbl9zZWxlY3RfY2IoY29udGV4dCwgQWxwbkNhbGxiYWNrLCBwcm90b2NvbF9zdHJpbmdfY29weSk7Ci0gICAgICAvLyBUT0RPKHdoZXNzZSk6IElmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFnYWluLCBmcmVlIHRoZSBwcmV2aW91cwotICAgICAgLy8gcHJvdG9jb2xfc3RyaW5nX2NvcHkuICBJdCBtYXkgYmUgYmV0dGVyIHRvIGtlZXAgdGhpcyBhcyBhIG5hdGl2ZQotICAgICAgLy8gZmllbGQgb24gdGhlIERhcnQgb2JqZWN0LCBzaW5jZSBmZXRjaGluZyBpdCBmcm9tIHRoZSBzdHJ1Y3R1cmUgaXMKLSAgICAgIC8vIG5vdCBpbiB0aGUgcHVibGljIGFwaS4KLSAgICAgIC8vIEFsc28gZnJlZSBwcm90b2NvbF9zdHJpbmdfY29weSB3aGVuIHRoZSBjb250ZXh0IGlzIGRlc3Ryb3llZCwKLSAgICAgIC8vIGluIEZyZWVTZWN1cml0eUNvbnRleHQoKQorICAgICAgU1NMX0NUWF9zZXRfYWxwbl9zZWxlY3RfY2IoCisgICAgICAgICAgY29udGV4dC0+Y29udGV4dCgpLCBBbHBuQ2FsbGJhY2ssIHByb3RvY29sX3N0cmluZ19jb3B5KTsKKyAgICAgIGNvbnRleHQtPnNldF9hbHBuX3Byb3RvY29sX3N0cmluZyhwcm90b2NvbF9zdHJpbmdfY29weSk7CiAgICAgfSBlbHNlIHsKICAgICAgIC8vIFRoZSBmdW5jdGlvbiBtYWtlcyBhIGxvY2FsIGNvcHkgb2YgcHJvdG9jb2xfc3RyaW5nLCB3aGljaCBpdCBvd25zLgogICAgICAgaWYgKHNzbCAhPSBOVUxMKSB7CkBAIC0xNDE2LDcgKzE0MzUsNyBAQAogICAgICAgICBBU1NFUlQoY29udGV4dCAhPSBOVUxMKTsKICAgICAgICAgQVNTRVJUKHNzbCA9PSBOVUxMKTsKICAgICAgICAgc3RhdHVzID0gU1NMX0NUWF9zZXRfYWxwbl9wcm90b3MoCi0gICAgICAgICAgICBjb250ZXh0LCBwcm90b2NvbF9zdHJpbmcsIHByb3RvY29sX3N0cmluZ19sZW4pOworICAgICAgICAgICAgY29udGV4dC0+Y29udGV4dCgpLCBwcm90b2NvbF9zdHJpbmcsIHByb3RvY29sX3N0cmluZ19sZW4pOwogICAgICAgfQogICAgICAgQVNTRVJUKHN0YXR1cyA9PSAwKTsgIC8vIFRoZSBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLXN0YW5kYXJkIHN0YXR1cy4KICAgICB9CmRpZmYgLS1naXQgYS9ydW50aW1lL2Jpbi9zZWN1cmVfc29ja2V0X2JvcmluZ3NzbC5oIGIvcnVudGltZS9iaW4vc2VjdXJlX3NvY2tldF9ib3Jpbmdzc2wuaAppbmRleCBkNTQ0OWE0Li43ODhiMjU3IDEwMDY0NAotLS0gYS9ydW50aW1lL2Jpbi9zZWN1cmVfc29ja2V0X2JvcmluZ3NzbC5oCisrKyBiL3J1bnRpbWUvYmluL3NlY3VyZV9zb2NrZXRfYm9yaW5nc3NsLmgKQEAgLTMzLDggKzMzLDM5IEBACiBleHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciogcm9vdF9jZXJ0aWZpY2F0ZXNfcGVtOwogZXh0ZXJuIHVuc2lnbmVkIGludCByb290X2NlcnRpZmljYXRlc19wZW1fbGVuZ3RoOwogCitjbGFzcyBTU0xDb250ZXh0IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFNTTENvbnRleHQoU1NMX0NUWCogY29udGV4dCkgOgorICAgICAgY29udGV4dF8oY29udGV4dCksCisgICAgICBhbHBuX3Byb3RvY29sX3N0cmluZ18oTlVMTCkgeworICB9CisKKyAgflNTTENvbnRleHQoKSB7CisgICAgU1NMX0NUWF9mcmVlKGNvbnRleHRfKTsKKyAgICBpZiAoYWxwbl9wcm90b2NvbF9zdHJpbmdfICE9IE5VTEwpIHsKKyAgICAgIGZyZWUoYWxwbl9wcm90b2NvbF9zdHJpbmdfKTsKKyAgICB9CisgIH0KKworICBTU0xfQ1RYKiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29udGV4dF87IH0KKworICB1aW50OF90KiBhbHBuX3Byb3RvY29sX3N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGFscG5fcHJvdG9jb2xfc3RyaW5nXzsgfQorICB2b2lkIHNldF9hbHBuX3Byb3RvY29sX3N0cmluZyh1aW50OF90KiBwcm90b2NvbF9zdHJpbmcpIHsKKyAgICBpZiAoYWxwbl9wcm90b2NvbF9zdHJpbmdfICE9IE5VTEwpIHsKKyAgICAgIGZyZWUoYWxwbl9wcm90b2NvbF9zdHJpbmdfKTsKKyAgICB9CisgICAgYWxwbl9wcm90b2NvbF9zdHJpbmdfID0gcHJvdG9jb2xfc3RyaW5nOworICB9CisKKyBwcml2YXRlOgorICBTU0xfQ1RYKiBjb250ZXh0XzsKKyAgdWludDhfdCogYWxwbl9wcm90b2NvbF9zdHJpbmdfOworCisgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTU0xDb250ZXh0KTsKK307CisKIC8qCi0gKiBTU0xGaWx0ZXIgZW5jYXBzdWxhdGVzIHRoZSBOU1MgU1NMKFRMUykgY29kZSBpbiBhIGZpbHRlciwgdGhhdCBjb21tdW5pY2F0ZXMKKyAqIFNTTEZpbHRlciBlbmNhcHN1bGF0ZXMgdGhlIFNTTChUTFMpIGNvZGUgaW4gYSBmaWx0ZXIsIHRoYXQgY29tbXVuaWNhdGVzCiAgKiB3aXRoIHRoZSBjb250YWluaW5nIF9TZWN1cmVGaWx0ZXJJbXBsIERhcnQgb2JqZWN0IHRocm91Z2ggZm91ciBzaGFyZWQKICAqIEV4dGVybmFsQnl0ZUFycmF5IGJ1ZmZlcnMsIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIHBsYWludGV4dCwgYW5kCiAgKiByZWFkaW5nIGFuZCB3cml0aW5nIGVuY3J5cHRlZCB0ZXh0LiAgVGhlIGZpbHRlciBoYW5kbGVzIGhhbmRzaGFraW5nCmRpZmYgLS1naXQgYS9ydW50aW1lL2Jpbi9zb2NrZXQuY2MgYi9ydW50aW1lL2Jpbi9zb2NrZXQuY2MKaW5kZXggN2I2Zjk1YS4uNzQ1MzA2ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9iaW4vc29ja2V0LmNjCisrKyBiL3J1bnRpbWUvYmluL3NvY2tldC5jYwpAQCAtMjM0LDYgKzIzNCwxMiBAQAogICB9CiB9CiAKK3ZvaWQgRlVOQ1RJT05fTkFNRShTb2NrZXRfSXNCaW5kRXJyb3IpKERhcnRfTmF0aXZlQXJndW1lbnRzIGFyZ3MpIHsKKyAgaW50cHRyX3QgZXJyb3JfbnVtYmVyID0KKyAgICAgIERhcnRVdGlsczo6R2V0SW50cHRyVmFsdWUoRGFydF9HZXROYXRpdmVBcmd1bWVudChhcmdzLCAxKSk7CisgIGJvb2wgaXNfYmluZF9lcnJvciA9IFNvY2tldDo6SXNCaW5kRXJyb3IoZXJyb3JfbnVtYmVyKTsKKyAgRGFydF9TZXRSZXR1cm5WYWx1ZShhcmdzLCBpc19iaW5kX2Vycm9yID8gRGFydF9UcnVlKCkgOiBEYXJ0X0ZhbHNlKCkpOworfQogCiB2b2lkIEZVTkNUSU9OX05BTUUoU29ja2V0X0NyZWF0ZUJpbmREYXRhZ3JhbSkoRGFydF9OYXRpdmVBcmd1bWVudHMgYXJncykgewogICBSYXdBZGRyIGFkZHI7CmRpZmYgLS1naXQgYS9ydW50aW1lL2Jpbi9zb2NrZXQuaCBiL3J1bnRpbWUvYmluL3NvY2tldC5oCmluZGV4IDBiMTc3MDYuLjZhNTBkNzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYmluL3NvY2tldC5oCisrKyBiL3J1bnRpbWUvYmluL3NvY2tldC5oCkBAIC0yNzgsNiArMjc4LDkgQEAKICAgLy8gc3BlY2lmaWVkIGFzIHRoZSBwb3J0IGNvbXBvbmVudCBvZiB0aGUgcGFzc2VkIFJhd0FkZHIgc3RydWN0dXJlLgogICBzdGF0aWMgaW50cHRyX3QgQ3JlYXRlQmluZENvbm5lY3QoY29uc3QgUmF3QWRkciYgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJhd0FkZHImIHNvdXJjZV9hZGRyKTsKKyAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBlcnJvci1udW1iZXIgaXMgYmVjYXVzZSB0aGUgc3lzdGVtIHdhcyBub3QgYWJsZQorICAvLyB0byBiaW5kIHRoZSBzb2NrZXQgdG8gYSBzcGVjaWZpYyBJUC4KKyAgc3RhdGljIGJvb2wgSXNCaW5kRXJyb3IoaW50cHRyX3QgZXJyb3JfbnVtYmVyKTsKICAgLy8gQ3JlYXRlcyBhIGRhdGFncmFtIHNvY2tldCB3aGljaCBpcyBib3VuZC4gVGhlIHBvcnQgdG8gYmluZAogICAvLyB0byBpcyBzcGVjaWZpZWQgYXMgdGhlIHBvcnQgY29tcG9uZW50IG9mIHRoZSBSYXdBZGRyIHN0cnVjdHVyZS4KICAgc3RhdGljIGludHB0cl90IENyZWF0ZUJpbmREYXRhZ3JhbShjb25zdCBSYXdBZGRyJiBhZGRyLCBib29sIHJldXNlQWRkcmVzcyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL2Jpbi9zb2NrZXRfYW5kcm9pZC5jYyBiL3J1bnRpbWUvYmluL3NvY2tldF9hbmRyb2lkLmNjCmluZGV4IGIzZTNmYzQuLmNhZGRiM2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYmluL3NvY2tldF9hbmRyb2lkLmNjCisrKyBiL3J1bnRpbWUvYmluL3NvY2tldF9hbmRyb2lkLmNjCkBAIC0xMDEsNiArMTAxLDEyIEBACiB9CiAKIAorYm9vbCBTb2NrZXQ6OklzQmluZEVycm9yKGludHB0cl90IGVycm9yX251bWJlcikgeworICByZXR1cm4gZXJyb3JfbnVtYmVyID09IEVBRERSSU5VU0UgfHwgZXJyb3JfbnVtYmVyID09IEVBRERSTk9UQVZBSUwgfHwKKyAgICAgIGVycm9yX251bWJlciA9PSBFSU5WQUw7Cit9CisKKwogaW50cHRyX3QgU29ja2V0OjpBdmFpbGFibGUoaW50cHRyX3QgZmQpIHsKICAgcmV0dXJuIEZEVXRpbHM6OkF2YWlsYWJsZUJ5dGVzKGZkKTsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL3NvY2tldF9mdWNoc2lhLmNjIGIvcnVudGltZS9iaW4vc29ja2V0X2Z1Y2hzaWEuY2MKaW5kZXggNzhiNTA3MS4uYjc5ZDFjMCAxMDA2NDQKLS0tIGEvcnVudGltZS9iaW4vc29ja2V0X2Z1Y2hzaWEuY2MKKysrIGIvcnVudGltZS9iaW4vc29ja2V0X2Z1Y2hzaWEuY2MKQEAgLTQ1LDYgKzQ1LDEyIEBACiB9CiAKIAorYm9vbCBTb2NrZXQ6OklzQmluZEVycm9yKGludHB0cl90IGVycm9yX251bWJlcikgeworICBVTklNUExFTUVOVEVEKCk7CisgIHJldHVybiBmYWxzZTsKK30KKworCiBpbnRwdHJfdCBTb2NrZXQ6OkF2YWlsYWJsZShpbnRwdHJfdCBmZCkgewogICBVTklNUExFTUVOVEVEKCk7CiAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL3NvY2tldF9saW51eC5jYyBiL3J1bnRpbWUvYmluL3NvY2tldF9saW51eC5jYwppbmRleCA2MzkzNTY3Li5mYzBmMWU0IDEwMDY0NAotLS0gYS9ydW50aW1lL2Jpbi9zb2NrZXRfbGludXguY2MKKysrIGIvcnVudGltZS9iaW4vc29ja2V0X2xpbnV4LmNjCkBAIC0xMDEsNiArMTAxLDEyIEBACiB9CiAKIAorYm9vbCBTb2NrZXQ6OklzQmluZEVycm9yKGludHB0cl90IGVycm9yX251bWJlcikgeworICByZXR1cm4gZXJyb3JfbnVtYmVyID09IEVBRERSSU5VU0UgfHwgZXJyb3JfbnVtYmVyID09IEVBRERSTk9UQVZBSUwgfHwKKyAgICAgIGVycm9yX251bWJlciA9PSBFSU5WQUw7Cit9CisKKwogaW50cHRyX3QgU29ja2V0OjpBdmFpbGFibGUoaW50cHRyX3QgZmQpIHsKICAgcmV0dXJuIEZEVXRpbHM6OkF2YWlsYWJsZUJ5dGVzKGZkKTsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL3NvY2tldF9tYWNvcy5jYyBiL3J1bnRpbWUvYmluL3NvY2tldF9tYWNvcy5jYwppbmRleCA3MDhjZDNjLi5lNTRjYzU5IDEwMDY0NAotLS0gYS9ydW50aW1lL2Jpbi9zb2NrZXRfbWFjb3MuY2MKKysrIGIvcnVudGltZS9iaW4vc29ja2V0X21hY29zLmNjCkBAIC01OCw2ICs1OCw3IEBACiAgICAgcmV0dXJuIC0xOwogICB9CiAgIEZEVXRpbHM6OlNldENsb3NlT25FeGVjKGZkKTsKKyAgRkRVdGlsczo6U2V0Tm9uQmxvY2tpbmcoZmQpOwogICByZXR1cm4gZmQ7CiB9CiAKQEAgLTc5LDggKzgwLDYgQEAKICAgICByZXR1cm4gZmQ7CiAgIH0KIAotICBGRFV0aWxzOjpTZXROb25CbG9ja2luZyhmZCk7Ci0KICAgcmV0dXJuIENvbm5lY3QoZmQsIGFkZHIpOwogfQogCkBAIC0xMDMsNiArMTAyLDEyIEBACiB9CiAKIAorYm9vbCBTb2NrZXQ6OklzQmluZEVycm9yKGludHB0cl90IGVycm9yX251bWJlcikgeworICByZXR1cm4gZXJyb3JfbnVtYmVyID09IEVBRERSSU5VU0UgfHwgZXJyb3JfbnVtYmVyID09IEVBRERSTk9UQVZBSUwgfHwKKyAgICAgIGVycm9yX251bWJlciA9PSBFSU5WQUw7Cit9CisKKwogaW50cHRyX3QgU29ja2V0OjpBdmFpbGFibGUoaW50cHRyX3QgZmQpIHsKICAgcmV0dXJuIEZEVXRpbHM6OkF2YWlsYWJsZUJ5dGVzKGZkKTsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL3NvY2tldF9wYXRjaC5kYXJ0IGIvcnVudGltZS9iaW4vc29ja2V0X3BhdGNoLmRhcnQKaW5kZXggMmQzYmE3My4uYThiNjBjMyAxMDA2NDQKLS0tIGEvcnVudGltZS9iaW4vc29ja2V0X3BhdGNoLmRhcnQKKysrIGIvcnVudGltZS9iaW4vc29ja2V0X3BhdGNoLmRhcnQKQEAgLTQzMSw3ICs0MzEsMTMgQEAKICAgICAgICAgICAgIGlmIChyZXN1bHQgaXMgT1NFcnJvcikgewogICAgICAgICAgICAgICAvLyBLZWVwIGZpcnN0IGVycm9yLCBpZiBwcmVzZW50LgogICAgICAgICAgICAgICBpZiAoZXJyb3IgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGVycm9yID0gY3JlYXRlRXJyb3IocmVzdWx0LCAiQ29ubmVjdGlvbiBmYWlsZWQiLCBhZGRyZXNzLCBwb3J0KTsKKyAgICAgICAgICAgICAgICBpbnQgZXJyb3JDb2RlID0gcmVzdWx0LmVycm9yQ29kZTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb2RlICE9IG51bGwgJiYgc29ja2V0LmlzQmluZEVycm9yKGVycm9yQ29kZSkpIHsKKyAgICAgICAgICAgICAgICAgIGVycm9yID0gY3JlYXRlRXJyb3IocmVzdWx0LCAiQmluZCBmYWlsZWQiLCBzb3VyY2VBZGRyZXNzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgZXJyb3IgPQorICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUVycm9yKHJlc3VsdCwgIkNvbm5lY3Rpb24gZmFpbGVkIiwgYWRkcmVzcywgcG9ydCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGNvbm5lY3ROZXh0KCk7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTA3NSw2ICsxMDgxLDcgQEAKICAgbmF0aXZlQ3JlYXRlQmluZENvbm5lY3QoCiAgICAgICBMaXN0PGludD4gYWRkciwgaW50IHBvcnQsIExpc3Q8aW50PiBzb3VyY2VBZGRyKQogICAgICAgbmF0aXZlICJTb2NrZXRfQ3JlYXRlQmluZENvbm5lY3QiOworICBib29sIGlzQmluZEVycm9yKGludCBlcnJvck51bWJlcikgbmF0aXZlICJTb2NrZXRfSXNCaW5kRXJyb3IiOwogICBuYXRpdmVDcmVhdGVCaW5kTGlzdGVuKExpc3Q8aW50PiBhZGRyLCBpbnQgcG9ydCwgaW50IGJhY2tsb2csIGJvb2wgdjZPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hhcmVkKQogICAgICAgbmF0aXZlICJTZXJ2ZXJTb2NrZXRfQ3JlYXRlQmluZExpc3RlbiI7CmRpZmYgLS1naXQgYS9ydW50aW1lL2Jpbi9zb2NrZXRfdW5zdXBwb3J0ZWQuY2MgYi9ydW50aW1lL2Jpbi9zb2NrZXRfdW5zdXBwb3J0ZWQuY2MKaW5kZXggMGVhMjdmMS4uMDg5ZTQ4ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9iaW4vc29ja2V0X3Vuc3VwcG9ydGVkLmNjCisrKyBiL3J1bnRpbWUvYmluL3NvY2tldF91bnN1cHBvcnRlZC5jYwpAQCAtMzUsNiArMzUsMTIgQEAKIH0KIAogCit2b2lkIEZVTkNUSU9OX05BTUUoU29ja2V0X0lzQmluZEVycm9yKShEYXJ0X05hdGl2ZUFyZ3VtZW50cyBhcmdzKSB7CisgIERhcnRfVGhyb3dFeGNlcHRpb24oRGFydFV0aWxzOjpOZXdEYXJ0QXJndW1lbnRFcnJvcigKKyAgICAgICJTb2NrZXRzIHVuc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iKSk7Cit9CisKKwogdm9pZCBGVU5DVElPTl9OQU1FKFNvY2tldF9DcmVhdGVCaW5kRGF0YWdyYW0pKERhcnRfTmF0aXZlQXJndW1lbnRzIGFyZ3MpIHsKICAgRGFydF9UaHJvd0V4Y2VwdGlvbihEYXJ0VXRpbHM6Ok5ld0RhcnRBcmd1bWVudEVycm9yKAogICAgICAgIlNvY2tldHMgdW5zdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIpKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvYmluL3NvY2tldF93aW4uY2MgYi9ydW50aW1lL2Jpbi9zb2NrZXRfd2luLmNjCmluZGV4IGUzZDM2NmQuLmY3NmY3NjQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYmluL3NvY2tldF93aW4uY2MKKysrIGIvcnVudGltZS9iaW4vc29ja2V0X3dpbi5jYwpAQCAtMjUwLDYgKzI1MCwxMiBAQAogfQogCiAKK2Jvb2wgU29ja2V0OjpJc0JpbmRFcnJvcihpbnRwdHJfdCBlcnJvcl9udW1iZXIpIHsKKyAgcmV0dXJuIGVycm9yX251bWJlciA9PSBXU0FFQUREUklOVVNFIHx8IGVycm9yX251bWJlciA9PSBXU0FFQUREUk5PVEFWQUlMIHx8CisgICAgICBlcnJvcl9udW1iZXIgPT0gV1NBRUlOVkFMOworfQorCisKIHZvaWQgU29ja2V0OjpHZXRFcnJvcihpbnRwdHJfdCBmZCwgT1NFcnJvciogb3NfZXJyb3IpIHsKICAgSGFuZGxlKiBoYW5kbGUgPSByZWludGVycHJldF9jYXN0PEhhbmRsZSo+KGZkKTsKICAgb3NfZXJyb3ItPlNldENvZGVBbmRNZXNzYWdlKE9TRXJyb3I6OmtTeXN0ZW0sIGhhbmRsZS0+bGFzdF9lcnJvcigpKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbGliL2RvdWJsZS5kYXJ0IGIvcnVudGltZS9saWIvZG91YmxlLmRhcnQKaW5kZXggYWRlNGI5My4uMzRkNzgwMyAxMDA2NDQKLS0tIGEvcnVudGltZS9saWIvZG91YmxlLmRhcnQKKysrIGIvcnVudGltZS9saWIvZG91YmxlLmRhcnQKQEAgLTI3Nyw0ICsyNzcsMTEgQEAKICAgICAgIHJldHVybiBMRVNTOwogICAgIH0KICAgfQorCisgIHN0YXRpYyBjb25zdCBpbnQgX0ZSQUNUSU9OQUxfQklUUyA9IC8vIEJpdHMgdG8ga2VlcCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4KKyAgICAgIGNvbnN0IGludC5mcm9tRW52aXJvbm1lbnQoImRvdWJsZUZyYWN0aW9uYWxCaXRzIiwgZGVmYXVsdFZhbHVlOiAyMCk7CisgIHN0YXRpYyBjb25zdCBkb3VibGUgX0JJQVMgPSAxLjUgKiAoMSA8PCAoNTIgLSBfRlJBQ1RJT05BTF9CSVRTKSk7CisKKyAgLy8gUmV0dXJucyB0aGlzIHdpdGggb25seSBfRlJBQ1RJT05BTF9CSVRTIGJpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQuCisgIGRvdWJsZSBnZXQgcCA9PiB0aGlzICsgX0JJQVMgLSBfQklBUzsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL2FwcC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvYXBwLmRhcnQKaW5kZXggMzcxYzI2Ni4uNDg1NjQ0OCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvYXBwLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvYXBwLmRhcnQKQEAgLTEyLDcgKzEyLDYgQEAKIGltcG9ydCAncGFja2FnZTpsb2dnaW5nL2xvZ2dpbmcuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZV9odG1sLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L2VsZW1lbnRzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBhcyBNOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3JlcG9zaXRvcmllcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS90cmFjZXIuZGFydCc7CkBAIC0yMyw2ICsyMiw3IEBACiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvdXRpbHMuZGFydCc7CiAKIHBhcnQgJ3NyYy9hcHAvYXBwbGljYXRpb24uZGFydCc7CitwYXJ0ICdzcmMvYXBwL2V2ZW50LmRhcnQnOwogcGFydCAnc3JjL2FwcC9sb2NhdGlvbl9tYW5hZ2VyLmRhcnQnOwogcGFydCAnc3JjL2FwcC9ub3RpZmljYXRpb24uZGFydCc7CiBwYXJ0ICdzcmMvYXBwL3BhZ2UuZGFydCc7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9lbGVtZW50cy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvZWxlbWVudHMuZGFydAppbmRleCA2ZTJmNGY4Li5lY2MzMmFjIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9lbGVtZW50cy5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL2VsZW1lbnRzLmRhcnQKQEAgLTMsNyArMyw2IEBACiAvLyBFeHBvcnQgZWxlbWVudHMuCiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2FjdGlvbl9saW5rLmRhcnQnOwogZXhwb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jbGFzc19yZWZfYXNfdmFsdWUuZGFydCc7Ci1leHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NsYXNzX3RyZWUuZGFydCc7CiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NsYXNzX3ZpZXcuZGFydCc7CiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NvZGVfdmlldy5kYXJ0JzsKIGV4cG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY29udGV4dF9yZWYuZGFydCc7CkBAIC01Myw2ICs1Miw3IEBACiAKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY2xhc3NfcmVmLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jbGFzc19yZWZfd3JhcHBlci5kYXJ0JzsKK2ltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY2xhc3NfdHJlZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY29kZV9yZWYuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NvZGVfcmVmX3dyYXBwZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF9jb2xsZWN0aW9uLmRhcnQnOwpAQCAtMTAxLDYgKzEwMSw3IEBACiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvcmVuZGVyaW5nX3F1ZXVlLmRhcnQnOwogCiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NsYXNzX3JlZi5kYXJ0JzsKK2V4cG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY2xhc3NfdHJlZS5kYXJ0JzsKIGV4cG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY29kZV9yZWYuZGFydCc7CiBleHBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF9jb2xsZWN0aW9uLmRhcnQnOwogZXhwb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jb250YWluZXJzL3ZpcnR1YWxfdHJlZS5kYXJ0JzsKQEAgLTEzNCw2ICsxMzUsNyBAQAogRnV0dXJlIGluaXRFbGVtZW50cygpIGFzeW5jIHsKICAgQ2xhc3NSZWZFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKICAgQ2xhc3NSZWZFbGVtZW50V3JhcHBlci50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CisgIENsYXNzVHJlZUVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogICBDb2RlUmVmRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAgIENvZGVSZWZFbGVtZW50V3JhcHBlci50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAgIEN1cmx5QmxvY2tFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL2VsZW1lbnRzLmh0bWwgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9lbGVtZW50cy5odG1sCmluZGV4IGVkNWM3M2MuLjJiNDJkNDcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL2VsZW1lbnRzLmh0bWwKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvZWxlbWVudHMuaHRtbApAQCAtMSw2ICsxLDUgQEAKIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSJzcmMvZWxlbWVudHMvYWN0aW9uX2xpbmsuaHRtbCI+CiA8bGluayByZWw9ImltcG9ydCIgaHJlZj0ic3JjL2VsZW1lbnRzL2NsYXNzX3JlZl9hc192YWx1ZS5odG1sIj4KLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSJzcmMvZWxlbWVudHMvY2xhc3NfdHJlZS5odG1sIj4KIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSJzcmMvZWxlbWVudHMvY2xhc3Nfdmlldy5odG1sIj4KIDxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSJzcmMvZWxlbWVudHMvY29kZV92aWV3Lmh0bWwiPgogPGxpbmsgcmVsPSJpbXBvcnQiIGhyZWY9InNyYy9lbGVtZW50cy9jcHVfcHJvZmlsZS5odG1sIj4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL21vY2tzLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9tb2Nrcy5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTM1ZmEwLi4wMDAwMDAwCi0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL21vY2tzLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWxpYnJhcnkgbW9ja3M7Ci0KLWltcG9ydCAnZGFydDphc3luYyc7Ci0KLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKLQotcGFydCAnc3JjL21vY2tzL2V4Y2VwdGlvbnMvY29ubmVjdGlvbl9leGNlcHRpb24uZGFydCc7Ci0KLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL2Vycm9yLmRhcnQnOwotcGFydCAnc3JjL21vY2tzL29iamVjdHMvY29kZS5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL2V2ZW50LmRhcnQnOwotcGFydCAnc3JjL21vY2tzL29iamVjdHMvY2xhc3MuZGFydCc7Ci1wYXJ0ICdzcmMvbW9ja3Mvb2JqZWN0cy9mbGFnLmRhcnQnOwotcGFydCAnc3JjL21vY2tzL29iamVjdHMvZnVuY3Rpb24uZGFydCc7Ci1wYXJ0ICdzcmMvbW9ja3Mvb2JqZWN0cy9pc29sYXRlLmRhcnQnOwotcGFydCAnc3JjL21vY2tzL29iamVjdHMvbGlicmFyeS5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL25vdGlmaWNhdGlvbi5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL3RhcmdldC5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9vYmplY3RzL3ZtLmRhcnQnOwotCi1wYXJ0ICdzcmMvbW9ja3MvcmVwb3NpdG9yaWVzL2NyYXNoX2R1bXAuZGFydCc7Ci1wYXJ0ICdzcmMvbW9ja3MvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydCc7Ci1wYXJ0ICdzcmMvbW9ja3MvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0JzsKLXBhcnQgJ3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvc2NyaXB0LmRhcnQnOwotcGFydCAnc3JjL21vY2tzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydCc7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9tb2RlbHMuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL21vZGVscy5kYXJ0CmluZGV4IDZmYTg4NTMuLmRlZDZkNzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL21vZGVscy5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL21vZGVscy5kYXJ0CkBAIC0yOCw5ICsyOCwxMCBAQAogcGFydCAnc3JjL21vZGVscy9vYmplY3RzL3RpbWVsaW5lX2V2ZW50LmRhcnQnOwogcGFydCAnc3JjL21vZGVscy9vYmplY3RzL3ZtLmRhcnQnOwogCi1wYXJ0ICdzcmMvbW9kZWxzL3JlcG9zaXRvcnkuZGFydCc7Ci1wYXJ0ICdzcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQnOworcGFydCAnc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydCc7CitwYXJ0ICdzcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9ldmVudC5kYXJ0JzsKIHBhcnQgJ3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydCc7CitwYXJ0ICdzcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9pbnN0YW5jZS5kYXJ0JzsKIHBhcnQgJ3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0JzsKIHBhcnQgJ3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0JzsKIHBhcnQgJ3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0JzsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3JlcG9zaXRvcmllcy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvcmVwb3NpdG9yaWVzLmRhcnQKaW5kZXggZmVlYjhmMi4uOWYzYzM0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvcmVwb3NpdG9yaWVzLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvcmVwb3NpdG9yaWVzLmRhcnQKQEAgLTEyLDcgKzEyLDEwIEBACiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZV9jb21tb24uZGFydCcgYXMgU0M7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvdXRpbHMuZGFydCc7CiAKK3BhcnQgJ3NyYy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydCc7CitwYXJ0ICdzcmMvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQnOwogcGFydCAnc3JjL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQnOworcGFydCAnc3JjL3JlcG9zaXRvcmllcy9pbnN0YW5jZS5kYXJ0JzsKIHBhcnQgJ3NyYy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQnOwogcGFydCAnc3JjL3JlcG9zaXRvcmllcy9zY3JpcHQuZGFydCc7CiBwYXJ0ICdzcmMvcmVwb3NpdG9yaWVzL3NldHRpbmdzLmRhcnQnOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc2VydmljZV9jb21tb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NlcnZpY2VfY29tbW9uLmRhcnQKaW5kZXggOGU3YjVjMC4uY2QxNDZlZSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc2VydmljZV9jb21tb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zZXJ2aWNlX2NvbW1vbi5kYXJ0CkBAIC05MSw2ICs5MSw4IEBACiAgIGJvb2wgX2hhc0ZpbmlzaGVkQ29ubmVjdCA9IGZhbHNlOwogICBVdGY4RGVjb2RlciBfdXRmOERlY29kZXIgPSBjb25zdCBVdGY4RGVjb2RlcigpOwogCisgIFN0cmluZyBnZXQgZGlzcGxheU5hbWUgPT4gJyR7bmFtZX1AJHt0YXJnZXQubmFtZX0nOworCiAgIENvbW1vbldlYlNvY2tldCBfd2ViU29ja2V0OwogCiAgIENvbW1vbldlYlNvY2tldFZNKHRoaXMudGFyZ2V0LCB0aGlzLl93ZWJTb2NrZXQpIHsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvYXBwbGljYXRpb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvYXBwbGljYXRpb24uZGFydAppbmRleCBhOGJmYWJiLi5kNzI5OTRkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvYXBwL2FwcGxpY2F0aW9uLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2FwcC9hcHBsaWNhdGlvbi5kYXJ0CkBAIC0xMCw2ICsxMCw3IEBACiAgIHN0YXRpYyBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uIGFwcDsKICAgZmluYWwgUmVuZGVyaW5nUXVldWUgcXVldWUgPSBuZXcgUmVuZGVyaW5nUXVldWUoKTsKICAgZmluYWwgVGFyZ2V0UmVwb3NpdG9yeSB0YXJnZXRzID0gbmV3IFRhcmdldFJlcG9zaXRvcnkoKTsKKyAgZmluYWwgRXZlbnRSZXBvc2l0b3J5IGV2ZW50cyA9IG5ldyBFdmVudFJlcG9zaXRvcnkoKTsKICAgZmluYWwgTm90aWZpY2F0aW9uUmVwb3NpdG9yeSBub3RpZmljYXRpb25zID0gbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnkoKTsKICAgZmluYWwgX3BhZ2VSZWdpc3RyeSA9IG5ldyBMaXN0PFBhZ2U+KCk7CiAgIExvY2F0aW9uTWFuYWdlciBfbG9jYXRpb25NYW5hZ2VyOwpAQCAtNDAsMTEgKzQxLDExIEBACiAgICAgICAgICAgLy8gVGhpcyBkaXNjb25uZWN0IGV2ZW50IG9jY3VyZWQgKmFmdGVyKiBhIG5ldyBWTSB3YXMgaW5zdGFsbGVkLgogICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBub3RpZmljYXRpb25zLmFkZCgKLSAgICAgICAgICAgIG5ldyBFdmVudE5vdGlmaWNhdGlvbi5mcm9tU2VydmljZUV2ZW50KAotICAgICAgICAgICAgICBuZXcgU2VydmljZUV2ZW50LmNvbm5lY3Rpb25DbG9zZWQocmVhc29uKSkpOworICAgICAgICBldmVudHMuYWRkKG5ldyBDb25uZWN0aW9uQ2xvc2VkRXZlbnQobmV3IERhdGVUaW1lLm5vdygpLCByZWFzb24pKTsKICAgICAgIH0pOwogCisgICAgICAvLyBUT0RPKGNiZXJuYXNjaGluYSkgc21hcnQgY29ubmVjdGlvbiBvZiBzdHJlYW1zIGluIHRoZSBldmVudHMgb2JqZWN0LgorICAgICAgdm0ubGlzdGVuRXZlbnRTdHJlYW0oVk0ua1ZNU3RyZWFtLCBfb25FdmVudCk7CiAgICAgICB2bS5saXN0ZW5FdmVudFN0cmVhbShWTS5rSXNvbGF0ZVN0cmVhbSwgX29uRXZlbnQpOwogICAgICAgdm0ubGlzdGVuRXZlbnRTdHJlYW0oVk0ua0RlYnVnU3RyZWFtLCBfb25FdmVudCk7CiAgICAgfQpAQCAtNjUsNDggKzY2LDg0IEBACiAgICAgbG9jYXRpb25NYW5hZ2VyLl92aXNpdCgpOwogICB9CiAKKyAgdm9pZCBfZGVsZXRlUGF1c2VFdmVudHMoZSkgeworICAgIG5vdGlmaWNhdGlvbnMuZGVsZXRlUGF1c2VFdmVudHMoaXNvbGF0ZTogZS5pc29sYXRlKTsKKyAgfQorICB2b2lkIF9hZGROb3RpZmljYXRpb24oTS5FdmVudCBlKSB7CisgICAgbm90aWZpY2F0aW9ucy5hZGQobmV3IEV2ZW50Tm90aWZpY2F0aW9uKGUpKTsKKyAgfQorCiAgIHZvaWQgX29uRXZlbnQoU2VydmljZUV2ZW50IGV2ZW50KSB7CiAgICAgYXNzZXJ0KGV2ZW50LmtpbmQgIT0gU2VydmljZUV2ZW50LmtOb25lKTsKIAorICAgIE0uRXZlbnQgZTsKKwogICAgIHN3aXRjaChldmVudC5raW5kKSB7CiAgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rVk1VcGRhdGU6CisgICAgICAgIGUgPSBuZXcgVk1VcGRhdGVFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50LnZtKTsKKyAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rSXNvbGF0ZVN0YXJ0OgorICAgICAgICBlID0gbmV3IElzb2xhdGVTdGFydEV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSk7CisgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0lzb2xhdGVSdW5uYWJsZToKKyAgICAgICAgZSA9IG5ldyBJc29sYXRlUnVubmFibGVFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUpOworICAgICAgICBicmVhazsKICAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtJc29sYXRlVXBkYXRlOgotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0JyZWFrcG9pbnRBZGRlZDoKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtCcmVha3BvaW50UmVzb2x2ZWQ6Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rQnJlYWtwb2ludFJlbW92ZWQ6Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rRGVidWdnZXJTZXR0aW5nc1VwZGF0ZToKLSAgICAgICAgLy8gSWdub3JlIGZvciBub3cuCisgICAgICAgIGUgPSBuZXcgSXNvbGF0ZVVwZGF0ZUV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSk7CiAgICAgICAgIGJyZWFrOwotCiAgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rSXNvbGF0ZVJlbG9hZDoKLSAgICAgICAgbm90aWZpY2F0aW9ucy5hZGQobmV3IEV2ZW50Tm90aWZpY2F0aW9uLmZyb21TZXJ2aWNlRXZlbnQoZXZlbnQpKTsKKyAgICAgICAgZSA9IG5ldyBJc29sYXRlUmVsb2FkRXZlbnQoZXZlbnQudGltZXN0YW1wLCBldmVudC5pc29sYXRlLCBldmVudC5lcnJvcik7CiAgICAgICAgIGJyZWFrOwotCiAgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rSXNvbGF0ZUV4aXQ6CisgICAgICAgIGUgPSBuZXcgSXNvbGF0ZUV4aXRFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUpOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtCcmVha3BvaW50QWRkZWQ6CisgICAgICAgIGUgPSBuZXcgQnJlYWtwb2ludEFkZGVkRXZlbnQoZXZlbnQudGltZXN0YW1wLCBldmVudC5pc29sYXRlLAorICAgICAgICAgICAgZXZlbnQuYnJlYWtwb2ludCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0JyZWFrcG9pbnRSZXNvbHZlZDoKKyAgICAgICAgZSA9IG5ldyBCcmVha3BvaW50UmVzb2x2ZWRFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUsCisgICAgICAgICAgICBldmVudC5icmVha3BvaW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rQnJlYWtwb2ludFJlbW92ZWQ6CisgICAgICAgIGUgPSBuZXcgQnJlYWtwb2ludFJlbW92ZWRFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUsCisgICAgICAgICAgZXZlbnQuYnJlYWtwb2ludCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0RlYnVnZ2VyU2V0dGluZ3NVcGRhdGU6CisgICAgICAgIGUgPSBuZXcgRGVidWdnZXJTZXR0aW5nc1VwZGF0ZUV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSk7CisgICAgICAgIGJyZWFrOwogICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua1Jlc3VtZToKLSAgICAgICAgbm90aWZpY2F0aW9ucy5kZWxldGVQYXVzZUV2ZW50cyhpc29sYXRlOiBldmVudC5pc29sYXRlKTsKKyAgICAgICAgZSA9IG5ldyBSZXN1bWVFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUsIGV2ZW50LnRvcEZyYW1lKTsKICAgICAgICAgYnJlYWs7Ci0KICAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtQYXVzZVN0YXJ0OgorICAgICAgICBlID0gbmV3IFBhdXNlU3RhcnRFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUpOworICAgICAgICBicmVhazsKICAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtQYXVzZUV4aXQ6CisgICAgICAgIGUgPSBuZXcgUGF1c2VFeGl0RXZlbnQoZXZlbnQudGltZXN0YW1wLCBldmVudC5pc29sYXRlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgICBjYXNlIFNlcnZpY2VFdmVudC5rUGF1c2VCcmVha3BvaW50OgorICAgICAgICBlID0gbmV3IFBhdXNlQnJlYWtwb2ludEV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSwKKyAgICAgICAgICAgIGV2ZW50LnBhdXNlQnJlYWtwb2ludHMsIGV2ZW50LnRvcEZyYW1lLCBldmVudC5hdEFzeW5jU3VzcGVuc2lvbiwKKyAgICAgICAgICAgIGV2ZW50LmJyZWFrcG9pbnQpOworICAgICAgICBicmVhazsKICAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtQYXVzZUludGVycnVwdGVkOgorICAgICAgICBlID0gbmV3IFBhdXNlSW50ZXJydXB0ZWRFdmVudChldmVudC50aW1lc3RhbXAsIGV2ZW50Lmlzb2xhdGUsCisgICAgICAgICAgICBldmVudC50b3BGcmFtZSwgZXZlbnQuYXRBc3luY1N1c3BlbnNpb24pOworICAgICAgICBicmVhazsKICAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtQYXVzZUV4Y2VwdGlvbjoKLSAgICAgICAgbm90aWZpY2F0aW9ucy5kZWxldGVQYXVzZUV2ZW50cyhpc29sYXRlOiBldmVudC5pc29sYXRlKTsKLSAgICAgICAgbm90aWZpY2F0aW9ucy5hZGQobmV3IEV2ZW50Tm90aWZpY2F0aW9uLmZyb21TZXJ2aWNlRXZlbnQoZXZlbnQpKTsKKyAgICAgICAgZSA9IG5ldyBQYXVzZUV4Y2VwdGlvbkV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSwKKyAgICAgICAgICAgIGV2ZW50LnRvcEZyYW1lLCBldmVudC5leGNlcHRpb24pOwogICAgICAgICBicmVhazsKLQogICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0luc3BlY3Q6Ci0gICAgICAgIG5vdGlmaWNhdGlvbnMuYWRkKG5ldyBFdmVudE5vdGlmaWNhdGlvbi5mcm9tU2VydmljZUV2ZW50KGV2ZW50KSk7CisgICAgICAgIGUgPSBuZXcgSW5zcGVjdEV2ZW50KGV2ZW50LnRpbWVzdGFtcCwgZXZlbnQuaXNvbGF0ZSwKKyAgICAgICAgICAgIGV2ZW50Lmluc3BlY3RlZSk7CiAgICAgICAgIGJyZWFrOwotCiAgICAgICBkZWZhdWx0OgogICAgICAgICAvLyBJZ25vcmUgdW5yZWNvZ25pemVkIGV2ZW50cy4KICAgICAgICAgTG9nZ2VyLnJvb3Quc2V2ZXJlKCdVbnJlY29nbml6ZWQgZXZlbnQ6ICRldmVudCcpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBldmVudHMuYWRkKGUpOwogICB9CiAKICAgdm9pZCBfcmVnaXN0ZXJQYWdlcygpIHsKQEAgLTIwMSw2ICsyMzgsMjMgQEAKICAgICB9KTsKICAgICBfc2V0Vk0obmV3IFdlYlNvY2tldFZNKHRhcmdldHMuY3VycmVudCkpOwogICAgIF9pbml0T25jZSgpOworCisgICAgLy8gZGVsZXRlIHBhdXNlIGV2ZW50cy4KKyAgICBldmVudHMub25Jc29sYXRlRXhpdC5saXN0ZW4oX2RlbGV0ZVBhdXNlRXZlbnRzKTsKKyAgICBldmVudHMub25SZXN1bWUubGlzdGVuKF9kZWxldGVQYXVzZUV2ZW50cyk7CisgICAgZXZlbnRzLm9uUGF1c2VTdGFydC5saXN0ZW4oX2RlbGV0ZVBhdXNlRXZlbnRzKTsKKyAgICBldmVudHMub25QYXVzZUV4aXQubGlzdGVuKF9kZWxldGVQYXVzZUV2ZW50cyk7CisgICAgZXZlbnRzLm9uUGF1c2VCcmVha3BvaW50Lmxpc3RlbihfZGVsZXRlUGF1c2VFdmVudHMpOworICAgIGV2ZW50cy5vblBhdXNlSW50ZXJydXB0ZWQubGlzdGVuKF9kZWxldGVQYXVzZUV2ZW50cyk7CisgICAgZXZlbnRzLm9uUGF1c2VFeGNlcHRpb24ubGlzdGVuKF9kZWxldGVQYXVzZUV2ZW50cyk7CisKKyAgICAvLyBzaG93IG5vdGlmaWNhdGlvbiBmb3IgYW4gZXZlbnQuCisgICAgZXZlbnRzLm9uSXNvbGF0ZVJlbG9hZC5saXN0ZW4oX2FkZE5vdGlmaWNhdGlvbik7CisgICAgZXZlbnRzLm9uUGF1c2VFeGl0Lmxpc3RlbihfYWRkTm90aWZpY2F0aW9uKTsKKyAgICBldmVudHMub25QYXVzZUJyZWFrcG9pbnQubGlzdGVuKF9hZGROb3RpZmljYXRpb24pOworICAgIGV2ZW50cy5vblBhdXNlSW50ZXJydXB0ZWQubGlzdGVuKF9hZGROb3RpZmljYXRpb24pOworICAgIGV2ZW50cy5vblBhdXNlRXhjZXB0aW9uLmxpc3RlbihfYWRkTm90aWZpY2F0aW9uKTsKKyAgICBldmVudHMub25JbnNwZWN0Lmxpc3RlbihfYWRkTm90aWZpY2F0aW9uKTsKICAgfQogCiAgIGxvYWRDcmFzaER1bXAoTWFwIGNyYXNoRHVtcCkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2FwcC9ldmVudC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2FwcC9ldmVudC5kYXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNmY5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvYXBwL2V2ZW50LmRhcnQKQEAgLTAsMCArMSwyNTQgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworcGFydCBvZiBhcHA7CisKK2NsYXNzIFZNVXBkYXRlRXZlbnQgaW1wbGVtZW50cyBNLlZNVXBkYXRlRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uVk1SZWYgdm07CisgIFZNVXBkYXRlRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMudm0pIHsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydCh2bSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJc29sYXRlU3RhcnRFdmVudCBpbXBsZW1lbnRzIE0uSXNvbGF0ZVN0YXJ0RXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBJc29sYXRlU3RhcnRFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJc29sYXRlUnVubmFibGVFdmVudCBpbXBsZW1lbnRzIE0uSXNvbGF0ZVJ1bm5hYmxlRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBJc29sYXRlUnVubmFibGVFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJc29sYXRlRXhpdEV2ZW50IGltcGxlbWVudHMgTS5Jc29sYXRlRXhpdEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgSXNvbGF0ZUV4aXRFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJc29sYXRlVXBkYXRlRXZlbnQgaW1wbGVtZW50cyBNLklzb2xhdGVVcGRhdGVFdmVudCB7CisgIGZpbmFsIERhdGVUaW1lIHRpbWVzdGFtcDsKKyAgZmluYWwgTS5Jc29sYXRlUmVmIGlzb2xhdGU7CisgIElzb2xhdGVVcGRhdGVFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJc29sYXRlUmVsb2FkRXZlbnQgaW1wbGVtZW50cyBNLklzb2xhdGVSZWxvYWRFdmVudCB7CisgIGZpbmFsIERhdGVUaW1lIHRpbWVzdGFtcDsKKyAgZmluYWwgTS5Jc29sYXRlUmVmIGlzb2xhdGU7CisgIGZpbmFsIE0uRXJyb3JSZWYgZXJyb3I7CisgIElzb2xhdGVSZWxvYWRFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlLCB0aGlzLmVycm9yKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgICBhc3NlcnQoZXJyb3IgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgU2VydmljZUV4dGVuc2lvbkFkZGVkRXZlbnQgaW1wbGVtZW50cyBNLlNlcnZpY2VFeHRlbnNpb25BZGRlZEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgZmluYWwgU3RyaW5nIGV4dGVuc2lvblJQQzsKKyAgU2VydmljZUV4dGVuc2lvbkFkZGVkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy5leHRlbnNpb25SUEMpIHsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChleHRlbnNpb25SUEMgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgRGVidWdnZXJTZXR0aW5nc1VwZGF0ZUV2ZW50IGltcGxlbWVudHMgTS5EZWJ1Z2dlclNldHRpbmdzVXBkYXRlRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBEZWJ1Z2dlclNldHRpbmdzVXBkYXRlRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSkgeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgUGF1c2VTdGFydEV2ZW50IGltcGxlbWVudHMgTS5QYXVzZVN0YXJ0RXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBQYXVzZVN0YXJ0RXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSkgeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgUGF1c2VFeGl0RXZlbnQgaW1wbGVtZW50cyBNLlBhdXNlRXhpdEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgUGF1c2VFeGl0RXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSkgeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgUGF1c2VCcmVha3BvaW50RXZlbnQgaW1wbGVtZW50cyBNLlBhdXNlQnJlYWtwb2ludEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgZmluYWwgSXRlcmFibGU8TS5CcmVha3BvaW50PiBwYXVzZUJyZWFrcG9pbnRzOworICBmaW5hbCBNLkZyYW1lIHRvcEZyYW1lOworICBmaW5hbCBib29sIGF0QXN5bmNTdXNwZW5zaW9uOworICAvLy8gW29wdGlvbmFsXQorICBmaW5hbCBNLkJyZWFrcG9pbnQgYnJlYWtwb2ludDsKKyAgUGF1c2VCcmVha3BvaW50RXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwKKyAgICAgIEl0ZXJhYmxlPE0uQnJlYWtwb2ludD4gcGF1c2VCcmVha3BvaW50cywgdGhpcy50b3BGcmFtZSwKKyAgICAgIHRoaXMuYXRBc3luY1N1c3BlbnNpb24sIFt0aGlzLmJyZWFrcG9pbnRdKQorICAgIDogcGF1c2VCcmVha3BvaW50cyA9IG5ldyBMaXN0LnVubW9kaWZpYWJsZShwYXVzZUJyZWFrcG9pbnRzKXsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChwYXVzZUJyZWFrcG9pbnRzICE9IG51bGwpOworICAgIGFzc2VydCh0b3BGcmFtZSAhPSBudWxsKTsKKyAgICBhc3NlcnQoYXRBc3luY1N1c3BlbnNpb24gIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgUGF1c2VJbnRlcnJ1cHRlZEV2ZW50IGltcGxlbWVudHMgTS5QYXVzZUludGVycnVwdGVkRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBmaW5hbCBNLkZyYW1lIHRvcEZyYW1lOworICBmaW5hbCBib29sIGF0QXN5bmNTdXNwZW5zaW9uOworICBQYXVzZUludGVycnVwdGVkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy50b3BGcmFtZSwKKyAgICAgIHRoaXMuYXRBc3luY1N1c3BlbnNpb24pIHsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChhdEFzeW5jU3VzcGVuc2lvbiAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBQYXVzZUV4Y2VwdGlvbkV2ZW50IGltcGxlbWVudHMgTS5QYXVzZUV4Y2VwdGlvbkV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgZmluYWwgTS5GcmFtZSB0b3BGcmFtZTsKKyAgZmluYWwgTS5JbnN0YW5jZVJlZiBleGNlcHRpb247CisgIFBhdXNlRXhjZXB0aW9uRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy50b3BGcmFtZSwKKyAgICAgIHRoaXMuZXhjZXB0aW9uKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgICBhc3NlcnQodG9wRnJhbWUgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGV4Y2VwdGlvbiAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBSZXN1bWVFdmVudCBpbXBsZW1lbnRzIE0uUmVzdW1lRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBmaW5hbCBNLkZyYW1lIHRvcEZyYW1lOworICBSZXN1bWVFdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlLCB0aGlzLnRvcEZyYW1lKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBCcmVha3BvaW50QWRkZWRFdmVudCBpbXBsZW1lbnRzIE0uQnJlYWtwb2ludEFkZGVkRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBmaW5hbCBNLkJyZWFrcG9pbnQgYnJlYWtwb2ludDsKKyAgQnJlYWtwb2ludEFkZGVkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy5icmVha3BvaW50KSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgICBhc3NlcnQoYnJlYWtwb2ludCAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBCcmVha3BvaW50UmVzb2x2ZWRFdmVudCBpbXBsZW1lbnRzIE0uQnJlYWtwb2ludFJlc29sdmVkRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBmaW5hbCBNLkJyZWFrcG9pbnQgYnJlYWtwb2ludDsKKyAgQnJlYWtwb2ludFJlc29sdmVkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy5icmVha3BvaW50KSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgICBhc3NlcnQoYnJlYWtwb2ludCAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBCcmVha3BvaW50UmVtb3ZlZEV2ZW50IGltcGxlbWVudHMgTS5CcmVha3BvaW50UmVtb3ZlZEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgZmluYWwgTS5CcmVha3BvaW50IGJyZWFrcG9pbnQ7CisgIEJyZWFrcG9pbnRSZW1vdmVkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy5icmVha3BvaW50KSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQoaXNvbGF0ZSAhPSBudWxsKTsKKyAgICBhc3NlcnQoYnJlYWtwb2ludCAhPSBudWxsKTsKKyAgfQorfQorCitjbGFzcyBJbnNwZWN0RXZlbnQgaW1wbGVtZW50cyBNLkluc3BlY3RFdmVudCB7CisgIGZpbmFsIERhdGVUaW1lIHRpbWVzdGFtcDsKKyAgZmluYWwgTS5Jc29sYXRlUmVmIGlzb2xhdGU7CisgIGZpbmFsIE0uSW5zdGFuY2VSZWYgaW5zcGVjdGVlOworICBJbnNwZWN0RXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSwgdGhpcy5pbnNwZWN0ZWUpIHsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChpbnNwZWN0ZWUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgTm9uZUV2ZW50IGltcGxlbWVudHMgTS5Ob25lRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBOb25lRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSkgeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgR0NFdmVudCBpbXBsZW1lbnRzIE0uR0NFdmVudCB7CisgIGZpbmFsIERhdGVUaW1lIHRpbWVzdGFtcDsKKyAgZmluYWwgTS5Jc29sYXRlUmVmIGlzb2xhdGU7CisgIEdDRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMuaXNvbGF0ZSkgeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgIH0KK30KKworY2xhc3MgRXh0ZW5zaW9uRXZlbnQgaW1wbGVtZW50cyBNLkV4dGVuc2lvbkV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgZmluYWwgU3RyaW5nIGV4dGVuc2lvbktpbmQ7CisgIGZpbmFsIE0uRXh0ZW5zaW9uRGF0YSBleHRlbnNpb25EYXRhOworICBFeHRlbnNpb25FdmVudCh0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlLCB0aGlzLmV4dGVuc2lvbktpbmQsCisgICAgICB0aGlzLmV4dGVuc2lvbkRhdGEpIHsKKyAgICBhc3NlcnQodGltZXN0YW1wICE9IG51bGwpOworICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChleHRlbnNpb25LaW5kICE9IG51bGwpOworICAgIGFzc2VydChleHRlbnNpb25EYXRhICE9IG51bGwpOworICB9Cit9CisKK2NsYXNzIFRpbWVsaW5lRXZlbnRzRXZlbnQgaW1wbGVtZW50cyBNLlRpbWVsaW5lRXZlbnRzRXZlbnQgeworICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CisgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOworICBmaW5hbCBJdGVyYWJsZTxNLlRpbWVsaW5lRXZlbnQ+IHRpbWVsaW5lRXZlbnRzOworICBUaW1lbGluZUV2ZW50c0V2ZW50KHRoaXMudGltZXN0YW1wLCB0aGlzLmlzb2xhdGUsCisgICAgICBJdGVyYWJsZTxNLlRpbWVsaW5lRXZlbnQ+IHRpbWVsaW5lRXZlbnRzKQorICAgIDogdGltZWxpbmVFdmVudHMgPSBuZXcgTGlzdC51bm1vZGlmaWFibGUodGltZWxpbmVFdmVudHMpeworICAgIGFzc2VydCh0aW1lc3RhbXAgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7CisgICAgYXNzZXJ0KHRpbWVsaW5lRXZlbnRzICE9IG51bGwpOworICB9Cit9CisKK2NsYXNzIENvbm5lY3Rpb25DbG9zZWRFdmVudCBpbXBsZW1lbnRzIE0uQ29ubmVjdGlvbkNsb3NlZEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBTdHJpbmcgcmVhc29uOworICBDb25uZWN0aW9uQ2xvc2VkRXZlbnQodGhpcy50aW1lc3RhbXAsIHRoaXMucmVhc29uKSB7CisgICAgYXNzZXJ0KHRpbWVzdGFtcCAhPSBudWxsKTsKKyAgICBhc3NlcnQocmVhc29uICE9IG51bGwpOworICB9Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvYXBwL25vdGlmaWNhdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2FwcC9ub3RpZmljYXRpb24uZGFydAppbmRleCBiOTVjMzRlLi4xNDBlMGRjIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvYXBwL25vdGlmaWNhdGlvbi5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTE0LDEwMiArMTQsNCBAQAogY2xhc3MgRXZlbnROb3RpZmljYXRpb24gaW1wbGVtZW50cyBNLkV2ZW50Tm90aWZpY2F0aW9uIHsKICAgZmluYWwgTS5FdmVudCBldmVudDsKICAgRXZlbnROb3RpZmljYXRpb24odGhpcy5ldmVudCk7Ci0gIGZhY3RvcnkgRXZlbnROb3RpZmljYXRpb24uZnJvbVNlcnZpY2VFdmVudChTZXJ2aWNlRXZlbnQgZXZlbnQpIHsKLSAgICBNLkV2ZW50IGU7Ci0gICAgc3dpdGNoKGV2ZW50LmtpbmQpIHsKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtWTVVwZGF0ZToKLSAgICAgICAgZSA9IG5ldyBWTVVwZGF0ZUV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwgdm06IGV2ZW50LnZtKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rSXNvbGF0ZVN0YXJ0OgotICAgICAgICBlID0gbmV3IElzb2xhdGVTdGFydEV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGlzb2xhdGU6IGV2ZW50Lmlzb2xhdGUpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtJc29sYXRlUnVubmFibGU6Ci0gICAgICAgIGUgPSBuZXcgSXNvbGF0ZVJ1bm5hYmxlRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0lzb2xhdGVFeGl0OgotICAgICAgICBlID0gbmV3IElzb2xhdGVFeGl0RXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0lzb2xhdGVVcGRhdGU6Ci0gICAgICAgIGUgPSBuZXcgSXNvbGF0ZVVwZGF0ZUV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGlzb2xhdGU6IGV2ZW50Lmlzb2xhdGUpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtJc29sYXRlUmVsb2FkOgotICAgICAgICAvLyBUT0RPKGJlcm5hc2NoaW5hKSBhZGQgZXJyb3I6IHJlYWxvYWRFcnJvci4KLSAgICAgICAgZSA9IG5ldyBJc29sYXRlUmVhbG9kRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua1NlcnZpY2VFeHRlbnNpb25BZGRlZDoKLSAgICAgICAgZSA9IG5ldyBTZXJ2aWNlRXh0ZW5zaW9uQWRkZWRFdmVudE1vY2sodGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAsCi0gICAgICAgICAgICBpc29sYXRlOiBldmVudC5pc29sYXRlLCBleHRlbnNpb25SUEM6IGV2ZW50LmV4dGVuc2lvblJQQyk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua1BhdXNlU3RhcnQ6Ci0gICAgICAgIGUgPSBuZXcgUGF1c2VTdGFydEV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGlzb2xhdGU6IGV2ZW50Lmlzb2xhdGUpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtQYXVzZUV4aXQ6Ci0gICAgICAgIGUgPSBuZXcgUGF1c2VFeGl0RXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua1BhdXNlQnJlYWtwb2ludDoKLSAgICAgICAgLy8gVE9ETyhjYmVybmFzY2hpbmEpIGFkZCBwYXVzZUJyZWFrcG9pbnRzLgotICAgICAgICBlID0gbmV3IFBhdXNlQnJlYWtwb2ludEV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGlzb2xhdGU6IGV2ZW50Lmlzb2xhdGUsIGJyZWFrcG9pbnQ6IGV2ZW50LmJyZWFrcG9pbnQsCi0gICAgICAgICAgICBwYXVzZUJyZWFrcG9pbnRzOiBjb25zdCA8TS5CcmVha3BvaW50PltdLAotICAgICAgICAgICAgdG9wRnJhbWU6IGV2ZW50LnRvcEZyYW1lLAotICAgICAgICAgICAgYXRBc3luY1N1c3BlbnNpb246IGV2ZW50LmF0QXN5bmNTdXNwZW5zaW9uKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rUGF1c2VJbnRlcnJ1cHRlZDoKLSAgICAgICAgZSA9IG5ldyBQYXVzZUludGVycnVwdGVkRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSwgdG9wRnJhbWU6IGV2ZW50LnRvcEZyYW1lLAotICAgICAgICAgICAgYXRBc3luY1N1c3BlbnNpb246IGV2ZW50LmF0QXN5bmNTdXNwZW5zaW9uKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rUGF1c2VFeGNlcHRpb246Ci0gICAgICAgIC8vIFRPRE8oY2Jlcm5hc2NoaW5hKSBhZGQgZXhjZXB0aW9uLgotICAgICAgICBlID0gbmV3IFBhdXNlRXhjZXB0aW9uRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSwgdG9wRnJhbWU6IGV2ZW50LnRvcEZyYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rTm9uZToKLSAgICAgICAgZSA9IG5ldyBOb25lRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua1Jlc3VtZToKLSAgICAgICAgZSA9IG5ldyBSZXN1bWVFdmVudE1vY2sodGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAsCi0gICAgICAgICAgICBpc29sYXRlOiBldmVudC5pc29sYXRlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIFNlcnZpY2VFdmVudC5rQnJlYWtwb2ludEFkZGVkOgotICAgICAgICBlID0gbmV3IEJyZWFrcG9pbnRBZGRlZEV2ZW50TW9jayh0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIGlzb2xhdGU6IGV2ZW50Lmlzb2xhdGUsIGJyZWFrcG9pbnQ6IGV2ZW50LmJyZWFrcG9pbnQpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgU2VydmljZUV2ZW50LmtCcmVha3BvaW50UmVzb2x2ZWQ6Ci0gICAgICAgIGUgPSBuZXcgQnJlYWtwb2ludFJlc29sdmVkRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSwgYnJlYWtwb2ludDogZXZlbnQuYnJlYWtwb2ludCk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0JyZWFrcG9pbnRSZW1vdmVkOgotICAgICAgICBlID0gbmV3IEJyZWFrcG9pbnRSZW1vdmVkRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSwgYnJlYWtwb2ludDogZXZlbnQuYnJlYWtwb2ludCk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0dDOgotICAgICAgICBlID0gbmV3IEdDRXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0luc3BlY3Q6Ci0gICAgICAgLy8gVE9ETyhjYmVybmFzY2hpbmEpIGFkZCBpbnNwZWN0ZWU6IGV2ZW50Lmluc3BlY3RlZS4KLSAgICAgICAgZSA9IG5ldyBJbnNwZWN0RXZlbnRNb2NrKHRpbWVzdGFtcDogZXZlbnQudGltZXN0YW1wLAotICAgICAgICAgICAgaXNvbGF0ZTogZXZlbnQuaXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0Nvbm5lY3Rpb25DbG9zZWQ6Ci0gICAgICAgIGUgPSBuZXcgQ29ubmVjdGlvbkNsb2NrZWRFdmVudE1vY2sodGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAsCi0gICAgICAgICAgICByZWFzb246IGV2ZW50LnJlYXNvbik7Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTZXJ2aWNlRXZlbnQua0V4dGVuc2lvbjoKLSAgICAgICAgZSA9IG5ldyBFeHRlbnNpb25FdmVudE1vY2sodGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAsCi0gICAgICAgICAgICBpc29sYXRlOiBldmVudC5pc29sYXRlLCBleHRlbnNpb25LaW5kOiBldmVudC5leHRlbnNpb25LaW5kLAotICAgICAgICAgICAgZXh0ZW5zaW9uRGF0YTogZXZlbnQuZXh0ZW5zaW9uRGF0YSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gbmV3IEV2ZW50Tm90aWZpY2F0aW9uKGUpOwotICB9CiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvYXBwL3BhZ2UuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvcGFnZS5kYXJ0CmluZGV4IDk4MGZjZmEuLjlkNjI0YzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvcGFnZS5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9hcHAvcGFnZS5kYXJ0CkBAIC0xMjQsOSArMTI0LDkgQEAKICAgQG92ZXJyaWRlCiAgIG9uSW5zdGFsbCgpIHsKICAgICBlbGVtZW50ID0gbmV3IEZsYWdMaXN0RWxlbWVudChhcHAudm0sCi0gICAgICAgIGFwcC52bS5jaGFuZ2VzLm1hcCgoXykgPT4gbmV3IFZNVXBkYXRlRXZlbnRNb2NrKHZtOiBhcHAudm0pKSwKLSAgICAgICAgbmV3IEZsYWdzUmVwb3NpdG9yeSgpLAotICAgICAgICBhcHAubm90aWZpY2F0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLmV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxhZ3NSZXBvc2l0b3J5KGFwcC52bSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLm5vdGlmaWNhdGlvbnMpOwogICB9CiAKICAgdm9pZCBfdmlzaXQoVXJpIHVyaSkgewpAQCAtMTYyLDE0ICsxNjIsMjMgQEAKIGNsYXNzIENsYXNzVHJlZVBhZ2UgZXh0ZW5kcyBTaW1wbGVQYWdlIHsKICAgQ2xhc3NUcmVlUGFnZShhcHApIDogc3VwZXIoJ2NsYXNzLXRyZWUnLCAnY2xhc3MtdHJlZScsIGFwcCk7CiAKKyAgZmluYWwgRGl2RWxlbWVudCBjb250YWluZXIgPSBuZXcgRGl2RWxlbWVudCgpOworCisgIEBvdmVycmlkZQorICB2b2lkIG9uSW5zdGFsbCgpIHsKKyAgICBlbGVtZW50ID0gY29udGFpbmVyOworICB9CisKICAgdm9pZCBfdmlzaXQoVXJpIHVyaSkgewogICAgIHN1cGVyLl92aXNpdCh1cmkpOwogICAgIGdldElzb2xhdGUodXJpKS50aGVuKChpc29sYXRlKSB7Ci0gICAgICBpZiAoZWxlbWVudCAhPSBudWxsKSB7Ci0gICAgICAgIC8vLyBVcGRhdGUgdGhlIHBhZ2UuCi0gICAgICAgIENsYXNzVHJlZUVsZW1lbnQgcGFnZSA9IGVsZW1lbnQ7Ci0gICAgICAgIHBhZ2UuaXNvbGF0ZSA9IGlzb2xhdGU7Ci0gICAgICB9CisgICAgICBjb250YWluZXIuY2hpbGRyZW4gPSBbCisgICAgICAgIG5ldyBDbGFzc1RyZWVFbGVtZW50KGFwcC52bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvbGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLmV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLm5vdGlmaWNhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbGFzc1JlcG9zaXRvcnkoaXNvbGF0ZSkpCisgICAgICBdOwogICAgIH0pOwogICB9CiB9CkBAIC0zNjIsOCArMzcxLDcgQEAKICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7CiAgICAgICBlbGVtZW50ID0gbmV3IFZNQ29ubmVjdEVsZW1lbnQoCiAgICAgICAgICAgICBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uLmFwcC50YXJnZXRzLAotICAgICAgICAgICAgbmV3IENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrKAotICAgICAgICAgICAgICAgIGxvYWQ6IE9ic2VydmF0b3J5QXBwbGljYXRpb24uYXBwLmxvYWRDcmFzaER1bXApLAorICAgICAgICAgICAgT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbi5hcHAubG9hZENyYXNoRHVtcCwKICAgICAgICAgICAgIE9ic2VydmF0b3J5QXBwbGljYXRpb24uYXBwLm5vdGlmaWNhdGlvbnMsCiAgICAgICAgICAgICBxdWV1ZTogT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbi5hcHAucXVldWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jbGFzc190cmVlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY2xhc3NfdHJlZS5kYXJ0CmluZGV4IDE2ZjY5MjguLmYxN2YyN2IgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jbGFzc190cmVlLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NsYXNzX3RyZWUuZGFydApAQCAtNCwxNTAgKzQsMTgyIEBACiAKIGxpYnJhcnkgY2xhc3NfdHJlZV9lbGVtZW50OwogCi1pbXBvcnQgJ29ic2VydmF0b3J5X2VsZW1lbnQuZGFydCc7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwogaW1wb3J0ICdkYXJ0Omh0bWwnOwotaW1wb3J0ICdwYWNrYWdlOmxvZ2dpbmcvbG9nZ2luZy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9hcHAuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZS5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpwb2x5bWVyL3BvbHltZXIuZGFydCc7CitpbXBvcnQgJ2RhcnQ6YXN5bmMnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBhcyBNOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jbGFzc19yZWYuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF90cmVlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3JlbmRlcmluZ19zY2hlZHVsZXIuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvdGFnLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3VyaXMuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9iYXIuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9pc29sYXRlX21lbnUuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9tZW51LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9uYXYvdG9wX21lbnUuZGFydCc7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51LmRhcnQnOwogCi1jbGFzcyBDbGFzc1RyZWVSb3cgZXh0ZW5kcyBUYWJsZVRyZWVSb3cgewotICBAcmVmbGVjdGFibGUgZmluYWwgSXNvbGF0ZSBpc29sYXRlOwotICBAcmVmbGVjdGFibGUgZmluYWwgQ2xhc3MgY2xzOwotICBDbGFzc1RyZWVSb3codGhpcy5pc29sYXRlLCB0aGlzLmNscywgVGFibGVUcmVlIHRyZWUsIENsYXNzVHJlZVJvdyBwYXJlbnQpCi0gICAgICA6IHN1cGVyKHRyZWUsIHBhcmVudCkgeworCitjbGFzcyBDbGFzc1RyZWVFbGVtZW50IGV4dGVuZHMgSHRtbEVsZW1lbnQgaW1wbGVtZW50cyBSZW5kZXJhYmxleworICBzdGF0aWMgY29uc3QgdGFnID0gY29uc3QgVGFnPENsYXNzVHJlZUVsZW1lbnQ+KCdjbGFzcy10cmVlJywKKyAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llczogY29uc3QgW0NsYXNzUmVmRWxlbWVudC50YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYXZCYXJFbGVtZW50LnRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hdklzb2xhdGVNZW51RWxlbWVudC50YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYXZNZW51RWxlbWVudC50YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYXZOb3RpZnlFbGVtZW50LnRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hdlRvcE1lbnVFbGVtZW50LnRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hdlZNTWVudUVsZW1lbnQudGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlydHVhbFRyZWVFbGVtZW50LnRhZ10pOworCisgIFJlbmRlcmluZ1NjaGVkdWxlciBfcjsKKworICBTdHJlYW08UmVuZGVyZWRFdmVudDxDbGFzc1RyZWVFbGVtZW50Pj4gZ2V0IG9uUmVuZGVyZWQgPT4gX3Iub25SZW5kZXJlZDsKKworICBNLlZNUmVmIF92bTsKKyAgTS5Jc29sYXRlUmVmIF9pc29sYXRlOworICBNLkV2ZW50UmVwb3NpdG9yeSBfZXZlbnRzOworICBNLk5vdGlmaWNhdGlvblJlcG9zaXRvcnkgX25vdGlmaWNhdGlvbnM7CisgIE0uQ2xhc3NSZXBvc2l0b3J5IF9jbGFzc2VzOworICBNLkNsYXNzIF9vYmplY3Q7CisgIGZpbmFsIF9zdWJjbGFzc2VzID0gPFN0cmluZywgSXRlcmFibGU8TS5DbGFzcz4+e307CisgIGZpbmFsIF9taXhpbnMgPSA8U3RyaW5nLCBMaXN0PE0uSW5zdGFuY2U+Pnt9OworCisgIGZhY3RvcnkgQ2xhc3NUcmVlRWxlbWVudChNLlZNUmVmIHZtLCBNLklzb2xhdGVSZWYgaXNvbGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uRXZlbnRSZXBvc2l0b3J5IGV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uTm90aWZpY2F0aW9uUmVwb3NpdG9yeSBub3RpZmljYXRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTS5DbGFzc1JlcG9zaXRvcnkgY2xhc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHtSZW5kZXJpbmdRdWV1ZSBxdWV1ZX0pIHsKKyAgICBhc3NlcnQodm0gIT0gbnVsbCk7CiAgICAgYXNzZXJ0KGlzb2xhdGUgIT0gbnVsbCk7Ci0gICAgYXNzZXJ0KGNscyAhPSBudWxsKTsKKyAgICBhc3NlcnQoZXZlbnRzICE9IG51bGwpOworICAgIGFzc2VydChub3RpZmljYXRpb25zICE9IG51bGwpOworICAgIGFzc2VydChjbGFzc2VzICE9IG51bGwpOworICAgIENsYXNzVHJlZUVsZW1lbnQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnLm5hbWUpOworICAgIGUuX3IgPSBuZXcgUmVuZGVyaW5nU2NoZWR1bGVyKGUsIHF1ZXVlOiBxdWV1ZSk7CisgICAgZS5fdm0gPSB2bTsKKyAgICBlLl9pc29sYXRlID0gaXNvbGF0ZTsKKyAgICBlLl9ldmVudHMgPSBldmVudHM7CisgICAgZS5fbm90aWZpY2F0aW9ucyA9IG5vdGlmaWNhdGlvbnM7CisgICAgZS5fY2xhc3NlcyA9IGNsYXNzZXM7CisgICAgcmV0dXJuIGU7CiAgIH0KIAotICB2b2lkIF9hZGRDaGlsZHJlbihMaXN0PENsYXNzPiBzdWJjbGFzc2VzKSB7Ci0gICAgZm9yICh2YXIgc3ViY2xhc3MgaW4gc3ViY2xhc3NlcykgewotICAgICAgaWYgKHN1YmNsYXNzLmlzUGF0Y2gpIHsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICBpZiAoc3ViY2xhc3MubWl4aW4gIT0gbnVsbCkgewotICAgICAgICBfYWRkQ2hpbGRyZW4oc3ViY2xhc3Muc3ViY2xhc3Nlcyk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICB2YXIgcm93ID0gbmV3IENsYXNzVHJlZVJvdyhpc29sYXRlLCBzdWJjbGFzcywgdHJlZSwgdGhpcyk7Ci0gICAgICAgIGNoaWxkcmVuLmFkZChyb3cpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0gIEZ1dHVyZSBfYWRkTWl4aW5zKENsYXNzIGNscykgYXN5bmMgewotICAgIHZhciBjbGFzc0NlbGwgPSBmbGV4Q29sdW1uc1swXTsKLSAgICBpZiAoY2xzLnN1cGVyY2xhc3MgPT0gbnVsbCkgewotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBib29sIGZpcnN0ID0gdHJ1ZTsKLSAgICB3aGlsZSAoY2xzLnN1cGVyY2xhc3MgIT0gbnVsbCAmJiBjbHMuc3VwZXJjbGFzcy5taXhpbiAhPSBudWxsKSB7Ci0gICAgICBjbHMgPSBjbHMuc3VwZXJjbGFzczsKLSAgICAgIGF3YWl0IGNscy5taXhpbi5sb2FkKCk7Ci0gICAgICB2YXIgc3BhbiA9IG5ldyBTcGFuRWxlbWVudCgpOwotICAgICAgc3Bhbi5zdHlsZS5hbGlnblNlbGYgPSAnY2VudGVyJzsKLSAgICAgIHNwYW4uc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUnOwotICAgICAgaWYgKGZpcnN0KSB7Ci0gICAgICAgIHNwYW4udGV4dCA9ICcgd2l0aCAnOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgc3Bhbi50ZXh0ID0gJywgJzsKLSAgICAgIH0KLSAgICAgIGNsYXNzQ2VsbC5jaGlsZHJlbi5hZGQoc3Bhbik7Ci0gICAgICB2YXIgbWl4aW5SZWYgPSBuZXcgRWxlbWVudC50YWcoJ2NsYXNzLXJlZicpOwotICAgICAgbWl4aW5SZWYucmVmID0gY2xzLm1peGluLnR5cGVDbGFzczsKLSAgICAgIG1peGluUmVmLnN0eWxlLmFsaWduU2VsZiA9ICdjZW50ZXInOwotICAgICAgY2xhc3NDZWxsLmNoaWxkcmVuLmFkZChtaXhpblJlZik7Ci0gICAgICBmaXJzdCA9IGZhbHNlOwotICAgIH0KLSAgfQotCi0gIEZ1dHVyZSBfYWRkQ2xhc3MoQ2xhc3MgY2xzKSBhc3luYyB7Ci0gICAgdmFyIGNsYXNzQ2VsbCA9IGZsZXhDb2x1bW5zWzBdOwotICAgIGNsYXNzQ2VsbC5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdmbGV4LXN0YXJ0JzsKLSAgICB2YXIgY2xhc3NSZWYgPSBuZXcgRWxlbWVudC50YWcoJ2NsYXNzLXJlZicpOwotICAgIGNsYXNzUmVmLnJlZiA9IGNsczsKLSAgICBjbGFzc1JlZi5zdHlsZS5hbGlnblNlbGYgPSAnY2VudGVyJzsKLSAgICBjbGFzc0NlbGwuY2hpbGRyZW4uYWRkKGNsYXNzUmVmKTsKLSAgICBpZiAoY2xzLnN1cGVyY2xhc3MgIT0gbnVsbCAmJiBjbHMuc3VwZXJjbGFzcy5taXhpbiAhPSBudWxsKSB7Ci0gICAgICBhd2FpdCBfYWRkTWl4aW5zKGNscyk7Ci0gICAgfQotICAgIGlmIChjbHMuc3ViY2xhc3Nlcy5pc05vdEVtcHR5KSB7Ci0gICAgICB2YXIgc3BhbiA9IG5ldyBTcGFuRWxlbWVudCgpOwotICAgICAgc3Bhbi5zdHlsZS5wYWRkaW5nTGVmdCA9ICcuNWVtJzsKLSAgICAgIHNwYW4uc3R5bGUuYWxpZ25TZWxmID0gJ2NlbnRlcic7Ci0gICAgICBpbnQgc3ViY2xhc3NDb3VudCA9IF9pbmRpcmVjdFN1YmNsYXNzQ291bnQoY2xzKSAtIDE7Ci0gICAgICBpZiAoc3ViY2xhc3NDb3VudCA+IDEpIHsKLSAgICAgICAgc3Bhbi50ZXh0ID0gJygkc3ViY2xhc3NDb3VudCBzdWJjbGFzc2VzKSc7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBzcGFuLnRleHQgPSAnKCRzdWJjbGFzc0NvdW50IHN1YmNsYXNzKSc7Ci0gICAgICB9Ci0gICAgICBjbGFzc0NlbGwuY2hpbGRyZW4uYWRkKHNwYW4pOwotICAgIH0KLSAgfQotCi0gIHZvaWQgb25TaG93KCkgewotICAgIHN1cGVyLm9uU2hvdygpOwotICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT0gMCkgewotICAgICAgX2FkZENoaWxkcmVuKGNscy5zdWJjbGFzc2VzKTsKLSAgICB9Ci0gICAgX2FkZENsYXNzKGNscyk7Ci0gIH0KLQotICBzdGF0aWMgaW50IF9pbmRpcmVjdFN1YmNsYXNzQ291bnQodmFyIGNscykgewotICAgIGludCBjb3VudCA9IDA7Ci0gICAgaWYgKGNscy5taXhpbiA9PSBudWxsKSB7Ci0gICAgICAvLyBEb24ndCBjb3VudCBzeW50aGV0aWMgbWl4aW4gY2xhc3NlcyBpbiBzdWJjbGFzcyBjb3VudC4KLSAgICAgIGNvdW50Kys7Ci0gICAgfQotICAgIGZvciAodmFyIHN1YmNsYXNzIGluIGNscy5zdWJjbGFzc2VzKSB7Ci0gICAgICBjb3VudCArPSBfaW5kaXJlY3RTdWJjbGFzc0NvdW50KHN1YmNsYXNzKTsKLSAgICB9Ci0gICAgcmV0dXJuIGNvdW50OwotICB9Ci0KLSAgYm9vbCBoYXNDaGlsZHJlbigpIHsKLSAgICByZXR1cm4gY2xzLnN1YmNsYXNzZXMuaXNOb3RFbXB0eTsKLSAgfQotfQotCi0KLUBDdXN0b21UYWcoJ2NsYXNzLXRyZWUnKQotY2xhc3MgQ2xhc3NUcmVlRWxlbWVudCBleHRlbmRzIE9ic2VydmF0b3J5RWxlbWVudCB7Ci0gIEBvYnNlcnZhYmxlIElzb2xhdGUgaXNvbGF0ZTsKLQotICBUYWJsZVRyZWUgdHJlZTsKLQogICBDbGFzc1RyZWVFbGVtZW50LmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKTsKIAogICBAb3ZlcnJpZGUKICAgdm9pZCBhdHRhY2hlZCgpIHsKICAgICBzdXBlci5hdHRhY2hlZCgpOwotICAgIHZhciB0YWJsZUJvZHkgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyN0YWJsZVRyZWVCb2R5Jyk7Ci0gICAgYXNzZXJ0KHRhYmxlQm9keSAhPSBudWxsKTsKLSAgICB0cmVlID0gbmV3IFRhYmxlVHJlZSh0YWJsZUJvZHksIDEpOwotICAgIGlmIChpc29sYXRlICE9IG51bGwpIHsKLSAgICAgIF91cGRhdGUoaXNvbGF0ZS5vYmplY3RDbGFzcyk7CisgICAgX3JlZnJlc2goKTsKKyAgICBfci5lbmFibGUoKTsKKyAgfQorCisgIEBvdmVycmlkZQorICB2b2lkIGRldGFjaGVkKCkgeworICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgY2hpbGRyZW4gPSBbXTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CisgIH0KKworICBWaXJ0dWFsVHJlZUVsZW1lbnQgX3RyZWU7CisKKyAgdm9pZCByZW5kZXIoKSB7CisgICAgY2hpbGRyZW4gPSBbCisgICAgICBuZXcgTmF2QmFyRWxlbWVudChxdWV1ZTogX3IucXVldWUpCisgICAgICAgIC4uY2hpbGRyZW4gPSBbCisgICAgICAgICAgbmV3IE5hdlRvcE1lbnVFbGVtZW50KHF1ZXVlOiBfci5xdWV1ZSksCisgICAgICAgICAgbmV3IE5hdlZNTWVudUVsZW1lbnQoX3ZtLCBfZXZlbnRzLCBxdWV1ZTogX3IucXVldWUpLAorICAgICAgICAgIG5ldyBOYXZJc29sYXRlTWVudUVsZW1lbnQoX2lzb2xhdGUsIF9ldmVudHMsIHF1ZXVlOiBfci5xdWV1ZSksCisgICAgICAgICAgbmV3IE5hdk1lbnVFbGVtZW50KCdjbGFzcyBoaWVyYXJjaHknLCBsaW5rOiBVcmlzLmNsYXNzVHJlZShfaXNvbGF0ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Q6IHRydWUsIHF1ZXVlOiBfci5xdWV1ZSksCisgICAgICAgICAgbmV3IE5hdk5vdGlmeUVsZW1lbnQoX25vdGlmaWNhdGlvbnMsIHF1ZXVlOiBfci5xdWV1ZSkKKyAgICAgICAgXSwKKyAgICAgIG5ldyBEaXZFbGVtZW50KCkKKyAgICAgICAgLi5jbGFzc2VzID0gWydjb250ZW50LWNlbnRlcmVkJ10KKyAgICAgICAgLi5jaGlsZHJlbiA9IFsKKyAgICAgICAgICBuZXcgSGVhZGluZ0VsZW1lbnQuaDEoKS4udGV4dCA9ICdDbGFzcyBIaWVyYXJjaHknLAorICAgICAgICAgIG5ldyBCUkVsZW1lbnQoKSwgbmV3IEhSRWxlbWVudCgpLAorICAgICAgICAgIF9vYmplY3QgPT0gbnVsbCA/IChuZXcgSGVhZGluZ0VsZW1lbnQuaDIoKS4udGV4dCA9ICdMb2FkaW5nLi4uJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfY3JlYXRlVHJlZSgpCisgICAgICAgIF0KKyAgICBdOworICB9CisKKyAgRWxlbWVudCBfY3JlYXRlVHJlZSgpIHsKKyAgICBfdHJlZSA9IG5ldyBWaXJ0dWFsVHJlZUVsZW1lbnQoX2NyZWF0ZSwgX3VwZGF0ZSwgX2NoaWxkcmVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogW19vYmplY3RdLCBxdWV1ZTogX3IucXVldWUpOworICAgIF90cmVlLmV4cGFuZChfb2JqZWN0LCBhdXRvRXhwYW5kU2luZ2xlQ2hpbGROb2RlczogdHJ1ZSk7CisgICAgcmV0dXJuIF90cmVlOworICB9CisKKyAgRnV0dXJlIF9yZWZyZXNoKCkgYXN5bmMgeworICAgIF9vYmplY3QgPSBudWxsOworICAgIF9zdWJjbGFzc2VzLmNsZWFyKCk7CisgICAgX21peGlucy5jbGVhcigpOworICAgIF9vYmplY3QgPSBhd2FpdCBfcmVnaXN0ZXIoYXdhaXQgX2NsYXNzZXMuZ2V0T2JqZWN0KCkpOworICAgIF9yLmRpcnR5KCk7CisgIH0KKworICBGdXR1cmU8TS5DbGFzcz4gX3JlZ2lzdGVyKE0uQ2xhc3MgY2xzKSBhc3luYyB7CisgICAgX3N1YmNsYXNzZXNbY2xzLmlkXSA9IGF3YWl0IEZ1dHVyZS53YWl0KAorICAgICAgKGF3YWl0IEZ1dHVyZS53YWl0KGNscy5zdWJjbGFzc2VzLm1hcChfZ2V0QWN0dWFsQ2hpbGRyZW5zKSkpCisgICAgICAuZXhwYW5kKChmKSA9PiBmKQorICAgICAgLm1hcChfcmVnaXN0ZXIpCisgICAgKTsKKyAgICByZXR1cm4gY2xzOworICB9CisKKyAgRnV0dXJlPEl0ZXJhYmxlPE0uQ2xhc3M+PiBfZ2V0QWN0dWFsQ2hpbGRyZW5zKE0uQ2xhc3NSZWYgcmVmKSBhc3luYyB7CisgICAgdmFyIGNscyA9IGF3YWl0IF9jbGFzc2VzLmdldChyZWYuaWQpOworICAgIGlmIChjbHMuaXNQYXRjaCkgeworICAgICAgcmV0dXJuIGNvbnN0IFtdOworICAgIH0KKyAgICBpZiAoY2xzLm1peGluID09IG51bGwpIHsKKyAgICAgIHJldHVybiBbY2xzXTsKKyAgICB9CisgICAgcmV0dXJuIChhd2FpdCBGdXR1cmUud2FpdChjbHMuc3ViY2xhc3Nlcy5tYXAoX2dldEFjdHVhbENoaWxkcmVucykpKQorICAgICAgLmV4cGFuZCgoZikgPT4gZikKKyAgICAgIC4uZm9yRWFjaCgoc3ViY2xzKSB7CisgICAgICAgIF9taXhpbnNbc3ViY2xzLmlkXSA9IChfbWl4aW5zW3N1YmNscy5pZF0gPz8gW10pLi5hZGQoY2xzLm1peGluKTsKKyAgICAgIH0pOworICB9CisKKyAgc3RhdGljIEVsZW1lbnQgX2NyZWF0ZSh0b2dnbGUpIHsKKyAgICByZXR1cm4gbmV3IERpdkVsZW1lbnQoKS4uY2xhc3NlcyA9IFsnY2xhc3MtdHJlZS1pdGVtJ10KKyAgICAgICAgLi5jaGlsZHJlbiA9IFsKKyAgICAgICAgICBuZXcgU3BhbkVsZW1lbnQoKS4uY2xhc3NlcyA9IFsnbGluZXMnXSwKKyAgICAgICAgICBuZXcgU3BhbkVsZW1lbnQoKS4uY2xhc3NlcyA9IFsnZXhwYW5kZXInXQorICAgICAgICAgICAgLi5vbkNsaWNrLmxpc3RlbigoXykgPT4gdG9nZ2xlKGF1dG9Ub2dnbGVTaW5nbGVDaGlsZE5vZGVzOiB0cnVlKSksCisgICAgICAgICAgbmV3IFNwYW5FbGVtZW50KCkuLmNsYXNzZXMgPSBbJ25hbWUnXQorICAgICAgICBdOworICB9CisKKyAgdm9pZCBfdXBkYXRlKEh0bWxFbGVtZW50IGVsLCBNLkNsYXNzIGNscywgaW50IGluZGV4KSB7CisgICAgdmlydHVhbFRyZWVVcGRhdGVMaW5lcyhlbC5jaGlsZHJlblswXSwgaW5kZXgpOworICAgIGlmIChjbHMuc3ViY2xhc3Nlcy5pc0VtcHR5KSB7CisgICAgICBlbC5jaGlsZHJlblsxXS50ZXh0ID0gJyc7CisgICAgfSBlbHNlIHsKKyAgICAgIGVsLmNoaWxkcmVuWzFdLnRleHQgPSBfdHJlZS5pc0V4cGFuZGVkKGNscykgPyAn4pa8JyA6ICfilronOworICAgIH0KKyAgICBlbC5jaGlsZHJlblsyXS5jaGlsZHJlbiA9IFsKKyAgICAgIG5ldyBDbGFzc1JlZkVsZW1lbnQoX2lzb2xhdGUsIGNscywgcXVldWU6IF9yLnF1ZXVlKQorICAgIF07CisgICAgaWYgKF9taXhpbnNbY2xzLmlkXSAhPSBudWxsKSB7CisgICAgICBlbC5jaGlsZHJlblsyXS5jaGlsZHJlbi5hZGRBbGwoX2NyZWF0ZU1peGlucyhfbWl4aW5zW2Nscy5pZF0pKTsKICAgICB9CiAgIH0KIAotICBpc29sYXRlQ2hhbmdlZChvbGRWYWx1ZSkgewotICAgIGlzb2xhdGUuZ2V0Q2xhc3NIaWVyYXJjaHkoKS50aGVuKChvYmplY3RDbGFzcykgewotICAgICAgX3VwZGF0ZShvYmplY3RDbGFzcyk7Ci0gICAgfSk7CisgIExpc3Q8RWxlbWVudD4gX2NyZWF0ZU1peGlucyhMaXN0PE0uSW5zdGFuY2U+IHR5cGVzKSB7CisgICAgZmluYWwgIGNoaWxkcmVuID0gdHlwZXMuZXhwYW5kKCh0eXBlKSA9PiBbCisgICAgICBuZXcgU3BhbkVsZW1lbnQoKS4udGV4dCA9ICcsICcsCisgICAgICB0eXBlLnR5cGVDbGFzcyA9PSBudWxsCisgICAgICAgICAgPyAobmV3IFNwYW5FbGVtZW50KCkuLnRleHQgPSB0eXBlLm5hbWUuc3BsaXQoJzwnKS5maXJzdCkKKyAgICAgICAgICA6IG5ldyBDbGFzc1JlZkVsZW1lbnQoX2lzb2xhdGUsIHR5cGUudHlwZUNsYXNzLCBxdWV1ZTogX3IucXVldWUpCisgICAgXSkudG9MaXN0KCk7CisgICAgY2hpbGRyZW4uZmlyc3QudGV4dCA9ICcgd2l0aCAnOworICAgIHJldHVybiBjaGlsZHJlbjsKICAgfQogCi0gIHZvaWQgX3VwZGF0ZShDbGFzcyByb290KSB7Ci0gICAgdHJ5IHsKLSAgICAgIHZhciByb290Um93ID0gbmV3IENsYXNzVHJlZVJvdyhpc29sYXRlLCByb290LCB0cmVlLCBudWxsKTsKLSAgICAgIHJvb3RSb3cuY2hpbGRyZW4uYWRkKG5ldyBDbGFzc1RyZWVSb3coaXNvbGF0ZSwgcm9vdCwgdHJlZSwgcm9vdFJvdykpOwotICAgICAgdHJlZS5pbml0aWFsaXplKHJvb3RSb3cpOwotICAgIH0gY2F0Y2ggKGUsIHN0YWNrVHJhY2UpIHsKLSAgICAgIExvZ2dlci5yb290Lndhcm5pbmcoJ191cGRhdGUnLCBlLCBzdGFja1RyYWNlKTsKLSAgICB9Ci0gICAgLy8gQ2hlY2sgaWYgd2Ugb25seSBoYXZlIG9uZSBub2RlIGF0IHRoZSByb290IGFuZCBleHBhbmQgaXQuCi0gICAgaWYgKHRyZWUucm93cy5sZW5ndGggPT0gMSkgewotICAgICAgdHJlZS50b2dnbGUodHJlZS5yb3dzWzBdKTsKLSAgICB9Ci0gICAgbm90aWZ5UHJvcGVydHlDaGFuZ2UoI3RyZWUsIG51bGwsIHRyZWUpOworICBJdGVyYWJsZTxNLkNsYXNzPiBfY2hpbGRyZW4oTS5DbGFzcyBjbHMpIHsKKyAgICByZXR1cm4gX3N1YmNsYXNzZXNbY2xzLmlkXTsKICAgfQogfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NsYXNzX3RyZWUuaHRtbCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jbGFzc190cmVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyZmJiMzIuLjAwMDAwMDAKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NsYXNzX3RyZWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTxsaW5rIHJlbD0iaW1wb3J0IiBocmVmPSIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wb2x5bWVyL3BvbHltZXIuaHRtbCI+Ci0KLTxwb2x5bWVyLWVsZW1lbnQgbmFtZT0iY2xhc3MtdHJlZSI+Ci0gIDx0ZW1wbGF0ZT4KLSAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9zaGFyZWQuY3NzIj4KLSAgICA8c3R5bGU+Ci0gICAgICAudGFibGUgewotICAgICAgICBib3JkZXItc3BhY2luZzogMHB4OwotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweAotICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwotICAgICAgfQotCi0gICAgICB0ciB7Ci0gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7Ci0gICAgICB9Ci0KLSAgICAgIHRyOmhvdmVyIHsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTsKLSAgICAgIH0KLQotICAgICAgdGggewotICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgICAgfQotICAgIDwvc3R5bGU+Ci0gICAgPG5hdi1iYXI+Ci0gICAgICA8dG9wLW5hdi1tZW51PjwvdG9wLW5hdi1tZW51PgotICAgICAgPHZtLW5hdi1tZW51IHZtPSJ7eyBpc29sYXRlLnZtIH19Ij48L3ZtLW5hdi1tZW51PgotICAgICAgPGlzb2xhdGUtbmF2LW1lbnUgaXNvbGF0ZT0ie3sgaXNvbGF0ZSB9fSI+PC9pc29sYXRlLW5hdi1tZW51PgotICAgICAgPG5hdi1tZW51IGxpbms9Int7IG1ha2VMaW5rKCcvY2xhc3MtdHJlZScsIGlzb2xhdGUpIH19IiBhbmNob3I9ImNsYXNzIGhpZXJhcmNoeSIgbGFzdD0ie3sgdHJ1ZSB9fSI+PC9uYXYtbWVudT4KLSAgICAgIDxuYXYtbm90aWZ5IG5vdGlmaWNhdGlvbnM9Int7IGFwcC5ub3RpZmljYXRpb25zIH19Ij48L25hdi1ub3RpZnk+Ci0gICAgPC9uYXYtYmFyPgotICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQtY2VudGVyZWQiPgotICAgICAgPGgxPkNsYXNzIEhpZXJhcmNoeTwvaDE+Ci0gICAgICA8dGFibGUgaWQ9InRhYmxlVHJlZSIgY2xhc3M9InRhYmxlIj4KLSAgICAgICAgPHRib2R5IGlkPSJ0YWJsZVRyZWVCb2R5Ij48L3Rib2R5PgotICAgICAgPC90YWJsZT4KLSAgICA8L2Rpdj4KLSAgPC90ZW1wbGF0ZT4KLTwvcG9seW1lci1lbGVtZW50PgotCi08c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2RhcnQiIHNyYz0iY2xhc3NfdHJlZS5kYXJ0Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jb2RlX3JlZi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvZGVfcmVmLmRhcnQKaW5kZXggYmVhZDAzNi4uNjE5MTdhOCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvZGVfcmVmLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvZGVfcmVmLmRhcnQKQEAgLTQ3LDggKzQ3LDggQEAKICAgQG92ZXJyaWRlCiAgIHZvaWQgZGV0YWNoZWQoKSB7CiAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CiAgICAgY2hpbGRyZW4gPSBbXTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CiAgIH0KIAogICB2b2lkIHJlbmRlcigpIHsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jb2RlX3JlZl93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY29kZV9yZWZfd3JhcHBlci5kYXJ0CmluZGV4IDUwM2E3ODQuLmY2MzBmMzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jb2RlX3JlZl93cmFwcGVyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvZGVfcmVmX3dyYXBwZXIuZGFydApAQCAtMjAsOCArMjAsMTMgQEAKICAgc3RhdGljIGNvbnN0IHRhZyA9IGNvbnN0IFRhZzxDb2RlUmVmRWxlbWVudFdyYXBwZXI+KCdjb2RlLXJlZicpOwogCiAgIENvZGUgX2NvZGU7CisKICAgQ29kZSBnZXQgcmVmID0+IF9jb2RlOwotICB2b2lkIHNldCByZWYoQ29kZSByZWYpIHsgX2NvZGUgPSByZWY7IHJlbmRlcigpOyB9CisKKyAgdm9pZCBzZXQgcmVmKENvZGUgdmFsdWUpIHsKKyAgICBfY29kZSA9IHZhbHVlOworICAgIHJlbmRlcigpOworICB9CiAKICAgQ29kZVJlZkVsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CiAgICAgYmluZGVyLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcyk7CkBAIC0zNyw3ICs0Miw5IEBACiAKICAgdm9pZCByZW5kZXIoKSB7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwotICAgIGlmIChyZWYgPT0gbnVsbCkgcmV0dXJuOworICAgIGlmIChyZWYgPT0gbnVsbCkgeworICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbCiAgICAgICBuZXcgU3R5bGVFbGVtZW50KCkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jb250YWluZXJzL3ZpcnR1YWxfY29sbGVjdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF9jb2xsZWN0aW9uLmRhcnQKaW5kZXggMzZlNjgyYy4uZTQ1YTE0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF9jb2xsZWN0aW9uLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF9jb2xsZWN0aW9uLmRhcnQKQEAgLTI0LDcgKzI0LDcgQEAKICAgVmlydHVhbENvbGxlY3Rpb25VcGRhdGVDYWxsYmFjayBfdXBkYXRlOwogICBkb3VibGUgX2l0ZW1IZWlnaHQ7CiAgIGludCBfdG9wOwotICBpbnQgX2hlaWdodDsKKyAgZG91YmxlIF9oZWlnaHQ7CiAgIExpc3QgX2l0ZW1zOwogICBTdHJlYW1TdWJzY3JpcHRpb24gX29uU2Nyb2xsU3Vic2NyaXB0aW9uOwogICBTdHJlYW1TdWJzY3JpcHRpb24gX29uUmVzaXplU3Vic2NyaXB0aW9uOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2NvbnRhaW5lcnMvdmlydHVhbF90cmVlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY29udGFpbmVycy92aXJ0dWFsX3RyZWUuZGFydAppbmRleCA3OGVhOTZiLi40ZGYwZGQ3IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY29udGFpbmVycy92aXJ0dWFsX3RyZWUuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY29udGFpbmVycy92aXJ0dWFsX3RyZWUuZGFydApAQCAtNCw2ICs0LDcgQEAKIAogaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIGltcG9ydCAnZGFydDpodG1sJzsKK2ltcG9ydCAnZGFydDptYXRoJyBhcyBNYXRoOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jb250YWluZXJzL3ZpcnR1YWxfY29sbGVjdGlvbi5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvaGVscGVycy9yZW5kZXJpbmdfc2NoZWR1bGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3RhZy5kYXJ0JzsKQEAgLTEzLDYgKzE0LDE2IEBACiB0eXBlZGVmIHZvaWQgVmlydHVhbFRyZWVVcGRhdGVDYWxsYmFjayhIdG1sRWxlbWVudCBlbCwgZHluYW1pYyBpdGVtLCBpbnQgZGVwdGgpOwogdHlwZWRlZiBJdGVyYWJsZTxkeW5hbWljPiBWcml0dWFsVHJlZUdldENoaWxkcmVuQ2FsbGJhY2soZHluYW1pYyB2YWx1ZSk7CiAKK3ZvaWQgdmlydHVhbFRyZWVVcGRhdGVMaW5lcyhTcGFuRWxlbWVudCBlbGVtZW50LCBpbnQgbikgeworICBuID0gTWF0aC5tYXgoMCwgbik7CisgIHdoaWxlIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IG4pIHsKKyAgICBlbGVtZW50LmNoaWxkcmVuLnJlbW92ZUxhc3QoKTsKKyAgfQorICB3aGlsZSAoZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPCBuKSB7CisgICAgZWxlbWVudC5jaGlsZHJlbi5hZGQobmV3IFNwYW5FbGVtZW50KCkpOworICB9Cit9CisKIGNsYXNzIFZpcnR1YWxUcmVlRWxlbWVudCBleHRlbmRzIEh0bWxFbGVtZW50IGltcGxlbWVudHMgUmVuZGVyYWJsZSB7CiAgIHN0YXRpYyBjb25zdCB0YWcgPQogICAgICAgY29uc3QgVGFnPFZpcnR1YWxUcmVlRWxlbWVudD4oJ3ZpcnR1YWwtdHJlZScsIGRlcGVuZGVuY2llczogY29uc3QgWwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2Nzcy9zaGFyZWQuY3NzIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2Nzcy9zaGFyZWQuY3NzCmluZGV4IGJkMTVjOTMuLmU0NjhmYzggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9jc3Mvc2hhcmVkLmNzcworKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvY3NzL3NoYXJlZC5jc3MKQEAgLTM4OCw2ICszODgsMzQgQEAKICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogfQogCisvKiBjbGFzcy10cmVlICovCisKK2NsYXNzLXRyZWUgeworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIGRpc3BsYXk6IGJsb2NrOworICBoZWlnaHQ6IDEwMCU7Cit9CisKK2NsYXNzLXRyZWUgdmlydHVhbC10cmVlIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBoZWlnaHQ6IGF1dG87CisgIHRvcDogNjBweDsKKyAgYm90dG9tOiAwOworICBsZWZ0OiAwOworICByaWdodDogMDsKK30KKworY2xhc3MtdHJlZSB2aXJ0dWFsLXRyZWUgLmNsYXNzLXRyZWUtaXRlbSB7CisgIGxpbmUtaGVpZ2h0OiAyNXB4OworICBoZWlnaHQ6IDI1cHg7CisgIHBhZGRpbmctbGVmdDogMTAlOworICBwYWRkaW5nLXJpZ2h0OiAxMCU7Cit9CisKK2NsYXNzLXRyZWUgdmlydHVhbC10cmVlIC5jbGFzcy10cmVlLWl0ZW0gLm5hbWUgeworICBtYXJnaW4tbGVmdDogMC41ZW07Cit9CisKIC8qIGVycm9yLXJlZiAqLwogLyogVE9ETyhjYmVybmFzY2hpbmEpIGZpeCBlcnJvci1yZWYtd3JhcHBlZCB0byBlcnJvci1yZWYgd2hlbiB3cmFwcGVyCiByZW1vdmVkICovCkBAIC01NDIsNyArNTcwLDggQEAKICAgcGFkZGluZzogOHB4OwogICBib3JkZXItd2lkdGg6IDJweDsKICAgbGluZS1oZWlnaHQ6IDEzcHg7Ci0gIGZvbnQ6IDQwMCAxM3B4ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjsKKyAgZm9udC1zaXplOiAxM3B4OworICBmb250OiA0MDAgJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogfQogbmF2LXJlZnJlc2gtd3JhcHBlZCA+IGxpID4gYnV0dG9uW2Rpc2FibGVkXSB7CiAgIGNvbG9yOiAjYWFhOwpAQCAtNTUzLDYgKzU4MiwxOCBAQAogICBtYXJnaW46IDA7CiB9CiAKKy8qIG9ic2VydmF0b3J5LWFwcGxpY2F0aW9uICovCisKK29ic2VydmF0b3J5LWFwcGxpY2F0aW9uIHsKKyAgZGlzcGxheTogYmxvY2s7CisgIGhlaWdodDogMTAwJTsKK30KKworb2JzZXJ2YXRvcnktYXBwbGljYXRpb24gPiBkaXYgeworICBkaXNwbGF5OiBibG9jazsKKyAgaGVpZ2h0OiAxMDAlOworfQorCiAvKiBzY3JpcHQtcmVmICovCiAvKiBUT0RPKGNiZXJuYXNjaGluYSkgZml4IHNjcmlwdC1yZWYtd3JhcHBlZCB0byBzY3JpcHQtcmVmIHdoZW4gd3JhcHBlcgogcmVtb3ZlZCAqLwpAQCAtNjIyLDggKzY2Myw2NCBAQAogfQogCiB2aXJ0dWFsLWNvbGxlY3Rpb24gLnNoaWZ0ZXIgPiAqIHsKKyAgZGlzcGxheTogYmxvY2s7CiAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgdG9wOiAtMjUlOworICB3aWR0aDogMTAwJTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CisgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworLyogdmlydHVhbC10cmVlICovCisKK3ZpcnR1YWwtdHJlZSAuZXhwYW5kZXIgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGZvbnQtc2l6ZTogMThweDsKKyAgd2lkdGg6IDE5cHg7Cit9CisKK3ZpcnR1YWwtdHJlZSAubGluZXMsCit2aXJ0dWFsLXRyZWUgLmxpbmVzID4gc3BhbiB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgaGVpZ2h0OiAxMDAlOworICBsaW5lLWhlaWdodDogMTAwJTsKK30KKwordmlydHVhbC10cmVlIC5saW5lczpiZWZvcmUsCit2aXJ0dWFsLXRyZWUgLmxpbmVzID4gc3BhbjpiZWZvcmUgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGNvbnRlbnQ6ICcnOworfQorCit2aXJ0dWFsLXRyZWUgLmxpbmVzID4gc3BhbiB7CisgIHdpZHRoOiAzcHg7CisgIG1hcmdpbi1sZWZ0OiA4cHg7CisgIG1hcmdpbi1yaWdodDogOHB4OworfQorCit2aXJ0dWFsLXRyZWUgLmxpbmVzID4gc3BhbjpudGgtY2hpbGQoNW4pIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzY3M0FCNzsKK30KKwordmlydHVhbC10cmVlIC5saW5lcyA+IHNwYW46bnRoLWNoaWxkKDVuKzEpIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI0Y0NDMzNjsKK30KKwordmlydHVhbC10cmVlIC5saW5lcyA+IHNwYW46bnRoLWNoaWxkKDVuKzIpIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKK30KKwordmlydHVhbC10cmVlIC5saW5lcyA+IHNwYW46bnRoLWNoaWxkKDVuKzMpIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogIzNGNTFCNTsKK30KKwordmlydHVhbC10cmVlIC5saW5lcyA+IHNwYW46bnRoLWNoaWxkKDVuKzQpIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOTgwMDsKIH0KIAogLyogdm0tY29ubmVjdC10YXJnZXQgKi8KQEAgLTYzOCwzICs3MzUsOSBAQAogdm0tY29ubmVjdC10YXJnZXQgPiBidXR0b24uZGVsZXRlLWJ1dHRvbjpob3ZlciB7CiAgIGJhY2tncm91bmQ6ICNmZjAwMDA7CiB9CisKKy8qIHZtLWNvbm5lY3QgKi8KKwordm0tY29ubmVjdCB1bCB7CisgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKK30KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9lcnJvcl9yZWYuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9lcnJvcl9yZWYuZGFydAppbmRleCBiMzBkZDkwLi41NTY4NWVkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZXJyb3JfcmVmLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2Vycm9yX3JlZi5kYXJ0CkBAIC0xOSw2ICsxOSw3IEBACiAgIFN0cmVhbTxSZW5kZXJlZEV2ZW50PEVycm9yUmVmRWxlbWVudD4+IGdldCBvblJlbmRlcmVkID0+IF9yLm9uUmVuZGVyZWQ7CiAKICAgRXJyb3JSZWYgX2Vycm9yOworICAKICAgRXJyb3JSZWYgZ2V0IGVycm9yID0+IF9lcnJvcjsKIAogICBmYWN0b3J5IEVycm9yUmVmRWxlbWVudChFcnJvclJlZiBlcnJvciwge1JlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2Vycm9yX3JlZl93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZXJyb3JfcmVmX3dyYXBwZXIuZGFydAppbmRleCA0ZWZlOTM5Li41MGY4YjlhIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZXJyb3JfcmVmX3dyYXBwZXIuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZXJyb3JfcmVmX3dyYXBwZXIuZGFydApAQCAtNSw4ICs1LDcgQEAKIGltcG9ydCAnZGFydDpodG1sJzsKIAogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L2FwcC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JyBzaG93IEVycm9yUmVmTW9jazsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zZXJ2aWNlX2h0bWwuZGFydCcgc2hvdyBTZXJ2aWNlTWFwLCBEYXJ0RXJyb3I7CitpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvZXJyb3JfcmVmLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3RhZy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvc2hpbXMvYmluZGluZy5kYXJ0JzsKQEAgLTE5LDkgKzE4LDE0IEBACiAKICAgc3RhdGljIGNvbnN0IHRhZyA9IGNvbnN0IFRhZzxFcnJvclJlZkVsZW1lbnRXcmFwcGVyPignZXJyb3ItcmVmJyk7CiAKLSAgU2VydmljZU1hcCBfZXJyb3I7Ci0gIFNlcnZpY2VNYXAgZ2V0IHJlZiA9PiBfZXJyb3I7Ci0gIHZvaWQgc2V0IHJlZihTZXJ2aWNlTWFwIHJlZikgeyBfZXJyb3IgPSByZWY7IHJlbmRlcigpOyB9CisgIERhcnRFcnJvciBfZXJyb3I7CisKKyAgRGFydEVycm9yIGdldCByZWYgPT4gX2Vycm9yOworCisgIHZvaWQgc2V0IHJlZihEYXJ0RXJyb3IgdmFsdWUpIHsKKyAgICBfZXJyb3IgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKKyAgfQogCiAgIEVycm9yUmVmRWxlbWVudFdyYXBwZXIuY3JlYXRlZCgpIDogc3VwZXIuY3JlYXRlZCgpIHsKICAgICBiaW5kZXIucmVnaXN0ZXJDYWxsYmFjayh0aGlzKTsKQEAgLTM3LDQyICs0MSwyNCBAQAogCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAoX2Vycm9yID09IG51bGwpIHJldHVybjsKLQotICAgIGlmIChyZWYgaXMgTWFwKSB7Ci0gICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwotICAgICAgICBuZXcgU3R5bGVFbGVtZW50KCkKLSAgICAgICAgICAuLnRleHQgPSAnJycKLSAgICAgICAgICBlcnJvci1yZWYtd3JhcHBlZCA+IHByZSB7Ci0gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwotICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKLSAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7Ci0gICAgICAgICAgICBmb250LWZhbWlseTogY29uc29sYXMsIGNvdXJpZXIsIG1vbm9zcGFjZTsKLSAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtOwotICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOwotICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgJycnLAotICAgICAgICBuZXcgRXJyb3JSZWZFbGVtZW50KG5ldyBFcnJvclJlZk1vY2sobWVzc2FnZTogcmVmWydtZXNzYWdlJ10pKQotICAgICAgXTsKLSAgICB9IGVsc2UgewotICAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFsKLSAgICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCi0gICAgICAgICAgLi50ZXh0ID0gJycnCi0gICAgICAgICAgZXJyb3ItcmVmLXdyYXBwZWQgPiBwcmUgewotICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKLSAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7Ci0gICAgICAgICAgICBwYWRkaW5nOiAxMHB4OwotICAgICAgICAgICAgZm9udC1mYW1pbHk6IGNvbnNvbGFzLCBjb3VyaWVyLCBtb25vc3BhY2U7Ci0gICAgICAgICAgICBmb250LXNpemU6IDFlbTsKLSAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsKLSAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7Ci0gICAgICAgICAgfQotICAgICAgICAgICcnJywKLSAgICAgICAgbmV3IEVycm9yUmVmRWxlbWVudCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvclJlZk1vY2sobWVzc2FnZTogKHJlZiBhcyBEYXJ0RXJyb3IpLm1lc3NhZ2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgcXVldWU6IE9ic2VydmF0b3J5QXBwbGljYXRpb24uYXBwLnF1ZXVlKQotICAgICAgXTsKKyAgICBpZiAoX2Vycm9yID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWworICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCisgICAgICAgIC4udGV4dCA9ICcnJworICAgICAgICBlcnJvci1yZWYtd3JhcHBlZCA+IHByZSB7CisgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsKKyAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOworICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAgICAgICAgZm9udC1mYW1pbHk6IGNvbnNvbGFzLCBjb3VyaWVyLCBtb25vc3BhY2U7CisgICAgICAgICAgZm9udC1zaXplOiAxZW07CisgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOworICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CisgICAgICAgIH0KKyAgICAgICAgJycnLAorICAgICAgbmV3IEVycm9yUmVmRWxlbWVudChfZXJyb3IsIHF1ZXVlOiBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uLmFwcC5xdWV1ZSkKKyAgICBdOwogICB9CiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZmxhZ19saXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZmxhZ19saXN0LmRhcnQKaW5kZXggMTlkNzgxNi4uMWZkYjNkNSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2ZsYWdfbGlzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mbGFnX2xpc3QuZGFydApAQCAtMzMsNyArMzMsNyBAQAogICBTdHJlYW08UmVuZGVyZWRFdmVudDxGbGFnTGlzdEVsZW1lbnQ+PiBnZXQgb25SZW5kZXJlZCA9PiBfci5vblJlbmRlcmVkOwogCiAgIE0uVk1SZWYgX3ZtOwotICBTdHJlYW08TS5WTVVwZGF0ZUV2ZW50PiBfdm1VcGRhdGVzOworICBNLkV2ZW50UmVwb3NpdG9yeSBfZXZlbnRzOwogICBNLkZsYWdzUmVwb3NpdG9yeSBfcmVwb3NpdG9yeTsKICAgTS5Ob3RpZmljYXRpb25SZXBvc2l0b3J5IF9ub3RpZmljYXRpb25zOwogICBJdGVyYWJsZTxNLkZsYWc+IF9mbGFnczsKQEAgLTQxLDE4ICs0MSwxOCBAQAogICBNLlZNUmVmIGdldCB2bSA9PiBfdm07CiAKICAgZmFjdG9yeSBGbGFnTGlzdEVsZW1lbnQoTS5WTVJlZiB2bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtPE0uVk1VcGRhdGVFdmVudD4gdm1VcGRhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBNLkV2ZW50UmVwb3NpdG9yeSBldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uRmxhZ3NSZXBvc2l0b3J5IHJlcG9zaXRvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uTm90aWZpY2F0aW9uUmVwb3NpdG9yeSBub3RpZmljYXRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICB7UmVuZGVyaW5nUXVldWUgcXVldWV9KSB7CiAgICAgYXNzZXJ0KHZtICE9IG51bGwpOwotICAgIGFzc2VydCh2bVVwZGF0ZXMgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGV2ZW50cyAhPSBudWxsKTsKICAgICBhc3NlcnQocmVwb3NpdG9yeSAhPSBudWxsKTsKICAgICBhc3NlcnQobm90aWZpY2F0aW9ucyAhPSBudWxsKTsKICAgICBGbGFnTGlzdEVsZW1lbnQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnLm5hbWUpOwogICAgIGUuX3IgPSBuZXcgUmVuZGVyaW5nU2NoZWR1bGVyKGUsIHF1ZXVlOiBxdWV1ZSk7CiAgICAgZS5fdm0gPSB2bTsKLSAgICBlLl92bVVwZGF0ZXMgPSB2bVVwZGF0ZXM7CisgICAgZS5fZXZlbnRzID0gZXZlbnRzOwogICAgIGUuX3JlcG9zaXRvcnkgPSByZXBvc2l0b3J5OwogICAgIGUuX25vdGlmaWNhdGlvbnMgPSBub3RpZmljYXRpb25zOwogICAgIHJldHVybiBlOwpAQCAtNjMsOCArNjMsOCBAQAogICBAb3ZlcnJpZGUKICAgdm9pZCBhdHRhY2hlZCgpIHsKICAgICBzdXBlci5hdHRhY2hlZCgpOwotICAgIF9yLmVuYWJsZSgpOwogICAgIF9yZWZyZXNoKCk7CisgICAgX3IuZW5hYmxlKCk7CiAgIH0KIAogICBAb3ZlcnJpZGUKQEAgLTEwMyw3ICsxMDMsNyBAQAogICAgICAgbmV3IE5hdkJhckVsZW1lbnQocXVldWU6IF9yLnF1ZXVlKQogICAgICAgICAuLmNoaWxkcmVuID0gWwogICAgICAgICAgIG5ldyBOYXZUb3BNZW51RWxlbWVudChxdWV1ZTogX3IucXVldWUpLAotICAgICAgICAgIG5ldyBOYXZWTU1lbnVFbGVtZW50KF92bSwgX3ZtVXBkYXRlcywgcXVldWU6IF9yLnF1ZXVlKSwKKyAgICAgICAgICBuZXcgTmF2Vk1NZW51RWxlbWVudChfdm0sIF9ldmVudHMsIHF1ZXVlOiBfci5xdWV1ZSksCiAgICAgICAgICAgbmV3IE5hdk1lbnVFbGVtZW50KCdmbGFncycsIGxpbms6IFVyaXMuZmxhZ3MoKSwgbGFzdDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVldWU6IF9yLnF1ZXVlKSwKICAgICAgICAgICBuZXcgTmF2UmVmcmVzaEVsZW1lbnQocXVldWU6IF9yLnF1ZXVlKQpAQCAtMTI0LDkgKzEyNCwxMSBAQAogICAgIF07CiAgIH0KIAotICBGdXR1cmUgX3JlZnJlc2goKSBhc3luYyB7Ci0gICAgX2ZsYWdzID0gYXdhaXQgX3JlcG9zaXRvcnkubGlzdChfdm0pOwotICAgIF9yLmRpcnR5KCk7CisgIEZ1dHVyZSBfcmVmcmVzaCgpIHsKKyAgICByZXR1cm4gX3JlcG9zaXRvcnkubGlzdCgpLnRoZW4oKGZsYWdzKSB7CisgICAgICBfZmxhZ3MgPSBmbGFnczsKKyAgICAgIF9yLmRpcnR5KCk7CisgICAgfSk7CiAgIH0KIAogICBzdGF0aWMgYm9vbCBfaXNNb2RpZmllZChNLkZsYWcgZmxhZykgPT4gZmxhZy5tb2RpZmllZDsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWYuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWYuZGFydAppbmRleCBmNmIyZWMzLi4yMDQxNjlkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZnVuY3Rpb25fcmVmLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2Z1bmN0aW9uX3JlZi5kYXJ0CkBAIC01Miw4ICs1Miw4IEBACiAgIEBvdmVycmlkZQogICB2b2lkIGRldGFjaGVkKCkgewogICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgX3IuZGlzYWJsZShub3RpZnk6IHRydWUpOwogICAgIGNoaWxkcmVuID0gW107CisgICAgX3IuZGlzYWJsZShub3RpZnk6IHRydWUpOwogICB9CiAKICAgdm9pZCByZW5kZXIoKSB7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvZnVuY3Rpb25fcmVmX3dyYXBwZXIuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWZfd3JhcHBlci5kYXJ0CmluZGV4IGU0MWU0M2EuLmRiZGU4MjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWZfd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWZfd3JhcHBlci5kYXJ0CkBAIC0yMSwxMCArMjEsMTggQEAKIAogICBib29sIF9xdWFsaWZpZWQgPSB0cnVlOwogICBTZXJ2aWNlRnVuY3Rpb24gX2Z1bmN0aW9uOworCiAgIGJvb2wgZ2V0IHF1YWxpZmllZCA9PiBfcXVhbGlmaWVkOwogICBTZXJ2aWNlRnVuY3Rpb24gZ2V0IHJlZiA9PiBfZnVuY3Rpb247Ci0gIHZvaWQgc2V0IHF1YWxpZmllZChib29sIHF1YWxpZmllZCkgeyBfcXVhbGlmaWVkID0gcXVhbGlmaWVkOyByZW5kZXIoKTsgfQotICB2b2lkIHNldCByZWYoU2VydmljZUZ1bmN0aW9uIHJlZikgeyBfZnVuY3Rpb24gPSByZWY7IHJlbmRlcigpOyB9CisKKyAgdm9pZCBzZXQgcXVhbGlmaWVkKGJvb2wgdmFsdWUpIHsKKyAgICBfcXVhbGlmaWVkID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CisgIH0KKyAgdm9pZCBzZXQgcmVmKFNlcnZpY2VGdW5jdGlvbiB2YWx1ZSkgeworICAgIF9mdW5jdGlvbiA9IHZhbHVlOworICAgIHJlbmRlcigpOworICB9CiAKICAgRnVuY3Rpb25SZWZFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewogICAgIGJpbmRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMpOwpAQCAtNDAsNyArNDgsOSBAQAogCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAocmVmID09IG51bGwpIHJldHVybjsKKyAgICBpZiAocmVmID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvaXNvbGF0ZV9yZWYuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9pc29sYXRlX3JlZi5kYXJ0CmluZGV4IGYyN2M4ZmIuLjQ0NDAwMDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9pc29sYXRlX3JlZi5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9pc29sYXRlX3JlZi5kYXJ0CkBAIC03LDcgKzcsNyBAQAogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTQotICBzaG93IElzb2xhdGVSZWYsIElzb2xhdGVVcGRhdGVFdmVudDsKKyAgc2hvdyBJc29sYXRlUmVmLCBFdmVudFJlcG9zaXRvcnk7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvcmVuZGVyaW5nX3NjaGVkdWxlci5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvaGVscGVycy90YWcuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvdXJpcy5kYXJ0JzsKQEAgLTE5LDIwICsxOSwyMSBAQAogCiAgIFN0cmVhbTxSZW5kZXJlZEV2ZW50PElzb2xhdGVSZWZFbGVtZW50Pj4gZ2V0IG9uUmVuZGVyZWQgPT4gX3Iub25SZW5kZXJlZDsKIAotICBTdHJlYW08TS5Jc29sYXRlVXBkYXRlRXZlbnQ+IF91cGRhdGVzOwotICBTdHJlYW1TdWJzY3JpcHRpb24gX3VwZGF0ZXNTdWJzY3JpcHRpb247CisKICAgTS5Jc29sYXRlUmVmIF9pc29sYXRlOworICBNLkV2ZW50UmVwb3NpdG9yeSBfZXZlbnRzOworICBTdHJlYW1TdWJzY3JpcHRpb24gX3VwZGF0ZXNTdWJzY3JpcHRpb247CiAKICAgTS5Jc29sYXRlUmVmIGdldCBpc29sYXRlID0+IF9pc29sYXRlOwogCi0gIGZhY3RvcnkgSXNvbGF0ZVJlZkVsZW1lbnQoTS5Jc29sYXRlUmVmIGlzb2xhdGUsCi0gICAgICBTdHJlYW08TS5Jc29sYXRlVXBkYXRlRXZlbnQ+IHVwZGF0ZXMsIHtSZW5kZXJpbmdRdWV1ZSBxdWV1ZX0pIHsKKyAgZmFjdG9yeSBJc29sYXRlUmVmRWxlbWVudChNLklzb2xhdGVSZWYgaXNvbGF0ZSwgTS5FdmVudFJlcG9zaXRvcnkgZXZlbnRzLAorICAgICAge1JlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewogICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOwotICAgIGFzc2VydCh1cGRhdGVzICE9IG51bGwpOworICAgIGFzc2VydChldmVudHMgIT0gbnVsbCk7CiAgICAgSXNvbGF0ZVJlZkVsZW1lbnQgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnLm5hbWUpOwogICAgIGUuX3IgPSBuZXcgUmVuZGVyaW5nU2NoZWR1bGVyKGUsIHF1ZXVlOiBxdWV1ZSk7CiAgICAgZS5faXNvbGF0ZSA9IGlzb2xhdGU7Ci0gICAgZS5fdXBkYXRlcyA9IHVwZGF0ZXM7CisgICAgZS5fZXZlbnRzID0gZXZlbnRzOwogICAgIHJldHVybiBlOwogICB9CiAKQEAgLTQxLDIxICs0MiwxOCBAQAogICBAb3ZlcnJpZGUKICAgdm9pZCBhdHRhY2hlZCgpIHsKICAgICBzdXBlci5hdHRhY2hlZCgpOwotICAgIGFzc2VydChfaXNvbGF0ZSAhPSBudWxsKTsKLSAgICBhc3NlcnQoX3VwZGF0ZXMgIT0gbnVsbCk7CisgICAgX3VwZGF0ZXNTdWJzY3JpcHRpb24gPSBfZXZlbnRzLm9uSXNvbGF0ZVVwZGF0ZQorICAgICAgLndoZXJlKChlKSA9PiBlLmlzb2xhdGUuaWQgPT0gaXNvbGF0ZS5pZCkKKyAgICAgIC5saXN0ZW4oKGUpIHsgX2lzb2xhdGUgPSBlLmlzb2xhdGU7IF9yLmRpcnR5KCk7IH0pOwogICAgIF9yLmVuYWJsZSgpOwotICAgIF91cGRhdGVzU3Vic2NyaXB0aW9uID0gX3VwZGF0ZXMKLSAgICAgIC53aGVyZSgoTS5Jc29sYXRlVXBkYXRlRXZlbnQgZSkgPT4gZS5pc29sYXRlLmlkID09IGlzb2xhdGUuaWQpCi0gICAgICAubGlzdGVuKChNLklzb2xhdGVVcGRhdGVFdmVudCBlKSB7IF9pc29sYXRlID0gZS5pc29sYXRlOyBfci5kaXJ0eSgpOyB9KTsKICAgfQogCiAgIEBvdmVycmlkZQogICB2b2lkIGRldGFjaGVkKCkgewotICAgIHN1cGVyLmRldGFjaGVkKCk7IF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKKyAgICBzdXBlci5kZXRhY2hlZCgpOwogICAgIGNoaWxkcmVuID0gW107Ci0gICAgYXNzZXJ0KF91cGRhdGVzU3Vic2NyaXB0aW9uICE9IG51bGwpOworICAgIF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKICAgICBfdXBkYXRlc1N1YnNjcmlwdGlvbi5jYW5jZWwoKTsKLSAgICBfdXBkYXRlc1N1YnNjcmlwdGlvbiA9IG51bGw7CiAgIH0KIAogICB2b2lkIHJlbmRlcigpIHsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9pc29sYXRlX3JlZl93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvaXNvbGF0ZV9yZWZfd3JhcHBlci5kYXJ0CmluZGV4IDM2OWU2OGEuLjZjOTU0N2IgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9pc29sYXRlX3JlZl93cmFwcGVyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL2lzb2xhdGVfcmVmX3dyYXBwZXIuZGFydApAQCAtMywxMSArMyw4IEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwogCiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvYXBwLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBzaG93IElzb2xhdGVVcGRhdGVFdmVudDsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JyBzaG93IElzb2xhdGVVcGRhdGVFdmVudE1vY2s7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZV9odG1sLmRhcnQnIHNob3cgSXNvbGF0ZTsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvaXNvbGF0ZV9yZWYuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvdGFnLmRhcnQnOwpAQCAtMjIsMTcgKzE5LDE2IEBACiAKICAgc3RhdGljIGNvbnN0IHRhZyA9IGNvbnN0IFRhZzxJc29sYXRlUmVmRWxlbWVudFdyYXBwZXI+KCdpc29sYXRlLXJlZicpOwogCi0gIGZpbmFsIFN0cmVhbUNvbnRyb2xsZXI8SXNvbGF0ZVVwZGF0ZUV2ZW50PiBfdXBkYXRlc0NvbnRyb2xsZXIgPQotICAgIG5ldyBTdHJlYW1Db250cm9sbGVyPElzb2xhdGVVcGRhdGVFdmVudD4oKTsKLSAgU3RyZWFtPElzb2xhdGVVcGRhdGVFdmVudD4gX3VwZGF0ZXM7Ci0gIFN0cmVhbVN1YnNjcmlwdGlvbiBfc3Vic2NyaXB0aW9uOwotCiAgIElzb2xhdGUgX2lzb2xhdGU7CisKICAgSXNvbGF0ZSBnZXQgcmVmID0+IF9pc29sYXRlOwotICB2b2lkIHNldCByZWYoSXNvbGF0ZSByZWYpIHsgX2lzb2xhdGUgPSByZWY7IF9kZXRhY2hlZCgpOyBfYXR0YWNoZWQoKTsgfQorCisgIHZvaWQgc2V0IHJlZihJc29sYXRlIHZhbHVlKSB7CisgICAgX2lzb2xhdGUgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKKyAgfQogCiAgIElzb2xhdGVSZWZFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewotICAgIF91cGRhdGVzID0gX3VwZGF0ZXNDb250cm9sbGVyLnN0cmVhbS5hc0Jyb2FkY2FzdFN0cmVhbSgpOwogICAgIGJpbmRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMpOwogICAgIGNyZWF0ZVNoYWRvd1Jvb3QoKTsKICAgICByZW5kZXIoKTsKQEAgLTQxLDM0ICszNywxNCBAQAogICBAb3ZlcnJpZGUKICAgdm9pZCBhdHRhY2hlZCgpIHsKICAgICBzdXBlci5hdHRhY2hlZCgpOwotICAgIF9hdHRhY2hlZCgpOwotICB9Ci0KLSAgdm9pZCBfYXR0YWNoZWQoKSB7Ci0gICAgaWYgKHJlZiAhPSBudWxsKSB7Ci0gICAgICBfc3Vic2NyaXB0aW9uID0gcmVmLmNoYW5nZXMubGlzdGVuKChfKSB7Ci0gICAgICAgIF91cGRhdGVzQ29udHJvbGxlci5hZGQobmV3IElzb2xhdGVVcGRhdGVFdmVudE1vY2soaXNvbGF0ZTogcmVmKSk7Ci0gICAgICB9KTsKLSAgICB9CiAgICAgcmVuZGVyKCk7CiAgIH0KIAotICBAb3ZlcnJpZGUKLSAgdm9pZCBkZXRhY2hlZCgpIHsKLSAgICBzdXBlci5kZXRhY2hlZCgpOwotICAgIF9kZXRhY2hlZCgpOwotICB9Ci0KLSAgdm9pZCBfZGV0YWNoZWQoKSB7Ci0gICAgaWYgKF9zdWJzY3JpcHRpb24gIT0gbnVsbCkgewotICAgICAgX3N1YnNjcmlwdGlvbi5jYW5jZWwoKTsKLSAgICAgIF9zdWJzY3JpcHRpb24gPSBudWxsOwotICAgIH0KLSAgfQotCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAocmVmID09IG51bGwpIHJldHVybjsKKyAgICBpZiAocmVmID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCkBAIC04MCw4ICs1Niw5IEBACiAgICAgICAgICAgICBjb2xvcjogIzA0ODljMzsKICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgfScnJywKLSAgICAgIG5ldyBJc29sYXRlUmVmRWxlbWVudChfaXNvbGF0ZSwgX3VwZGF0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWV1ZTogT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbi5hcHAucXVldWUpCisgICAgICBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQoX2lzb2xhdGUsIGFwcC5ldmVudHMsIHF1ZXVlOiBhcHAucXVldWUpCiAgICAgXTsKICAgfQorCisgIE9ic2VydmF0b3J5QXBwbGljYXRpb24gZ2V0IGFwcCA9PiBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uLmFwcDsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvYmFyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2Jhci5kYXJ0CmluZGV4IDhiYjExNWUuLmIxNzViYTYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvYmFyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9iYXIuZGFydApAQCAtMTEsOCArMTEsOSBAQAogICBzdGF0aWMgZmluYWwgU3R5bGVFbGVtZW50IF9zdHlsZSA9ICgpIHsKICAgICAgIHZhciBzdHlsZSA9IG5ldyBTdHlsZUVsZW1lbnQoKTsKICAgICAgIHN0eWxlLnRleHQgPSAnbmF2Lm5hdi1iYXIgeycKKyAgICAgICAgICAgICAgICAgICAgICdsaW5lLWhlaWdodDogbm9ybWFsOycKICAgICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbjogZml4ZWQ7JwotICAgICAgICAgICAgICAgICAgICAgJ3RvcDogLTU2cHg7JworICAgICAgICAgICAgICAgICAgICAgJ3RvcDogMDsnCiAgICAgICAgICAgICAgICAgICAgICAnd2lkdGg6IDEwMCU7JwogICAgICAgICAgICAgICAgICAgICAgJ3otaW5kZXg6IDEwMDA7JwogICAgICAgICAgICAgICAgICAgICAgJ30nCkBAIC0yMSwyMCArMjIsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbjogcmVsYXRpdmU7JwogICAgICAgICAgICAgICAgICAgICAgJ2xpc3Qtc3R5bGU6IG5vbmU7JwogICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctbGVmdDogMDsnCi0gICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWxlZnQ6IDA7JworICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbjogMDsnCiAgICAgICAgICAgICAgICAgICAgICAnd2lkdGg6IDEwMCU7JwogICAgICAgICAgICAgICAgICAgICAgJ3otaW5kZXg6IDEwMDA7JwogICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQ6IDQwMCAxNnB4IFwnTW9udHNlcnJhdFwnLCBzYW5zLXNlcmlmOycKICAgICAgICAgICAgICAgICAgICAgICdjb2xvcjogd2hpdGU7JwogICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6ICMwNDg5YzM7JwotICAgICAgICAgICAgICAgICAgICd9JwotICAgICAgICAgICAgICAgICAgICduYXYubmF2LWJhcjphZnRlciB7JwotICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQ6ICIiOyBjbGVhcjogYm90aDsgZGlzcGxheTogYmxvY2s7JwotICAgICAgICAgICAgICAgICAgICd9JwotICAgICAgICAgICAgICAgICAgICduYXYubmF2LWJhcjpiZWZvcmUgeycKLSAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQ6IDQwcHg7JwotICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6ICMwNDg5YzM7JwotICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQ6ICIiOyBkaXNwbGF5OiBibG9jazsnCiAgICAgICAgICAgICAgICAgICAgJ30nOwogICAgICAgcmV0dXJuIHN0eWxlOwogICB9KCk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2NsYXNzX21lbnVfd3JhcHBlci5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9jbGFzc19tZW51X3dyYXBwZXIuZGFydAppbmRleCAzNWZjNDQ4Li40MmE2NWRlIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2NsYXNzX21lbnVfd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvY2xhc3NfbWVudV93cmFwcGVyLmRhcnQKQEAgLTIxLDEzICsyMSwxNyBAQAogCiAgIGJvb2wgX2xhc3QgPSBmYWxzZTsKICAgQ2xhc3MgX2NsczsKKwogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OwogICBDbGFzcyBnZXQgY2xzID0+IF9jbHM7CisgIAogICBzZXQgbGFzdChib29sIHZhbHVlKSB7Ci0gICAgX2xhc3QgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX2xhc3QgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKICAgfQogICBzZXQgY2xzKENsYXNzIHZhbHVlKSB7Ci0gICAgX2NscyA9IHZhbHVlOyByZW5kZXIoKTsKKyAgICBfY2xzID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KIAogICBOYXZDbGFzc01lbnVFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewpAQCAtNDUsNyArNDksOSBAQAogCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAoX2NscyA9PSBudWxsIHx8IF9sYXN0ID09IG51bGwpIHJldHVybjsKKyAgICBpZiAoX2NscyA9PSBudWxsIHx8IF9sYXN0ID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IE5hdkNsYXNzTWVudUVsZW1lbnQoY2xzLmlzb2xhdGUsIGNscywgbGFzdDogbGFzdCwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvaXNvbGF0ZV9tZW51LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2lzb2xhdGVfbWVudS5kYXJ0CmluZGV4IDNmMDA4OWEuLmQ5ZjgyYzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvaXNvbGF0ZV9tZW51LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9pc29sYXRlX21lbnUuZGFydApAQCAtNSw3ICs1LDcgQEAKIGltcG9ydCAnZGFydDpodG1sJzsKIGltcG9ydCAnZGFydDphc3luYyc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9kZWxzLmRhcnQnIGFzIE0KLSAgc2hvdyBJc29sYXRlUmVmLCBJc29sYXRlVXBkYXRlRXZlbnQ7CisgIHNob3cgSXNvbGF0ZVJlZiwgRXZlbnRSZXBvc2l0b3J5OwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3JlbmRlcmluZ19zY2hlZHVsZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvdGFnLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3VyaXMuZGFydCc7CkBAIC0yMSwyNSArMjEsMjcgQEAKIAogICBTdHJlYW08UmVuZGVyZWRFdmVudDxOYXZJc29sYXRlTWVudUVsZW1lbnQ+PiBnZXQgb25SZW5kZXJlZCA9PiBfci5vblJlbmRlcmVkOwogCi0gIFN0cmVhbTxNLklzb2xhdGVVcGRhdGVFdmVudD4gX3VwZGF0ZXM7Ci0gIFN0cmVhbVN1YnNjcmlwdGlvbiBfdXBkYXRlc1N1YnNjcmlwdGlvbjsKLQogICBib29sIF9sYXN0OwogICBNLklzb2xhdGVSZWYgX2lzb2xhdGU7CisgIE0uRXZlbnRSZXBvc2l0b3J5IF9ldmVudHM7CisgIFN0cmVhbVN1YnNjcmlwdGlvbiBfdXBkYXRlc1N1YnNjcmlwdGlvbjsKKwogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OwogICBNLklzb2xhdGVSZWYgZ2V0IGlzb2xhdGUgPT4gX2lzb2xhdGU7CisKICAgc2V0IGxhc3QoYm9vbCB2YWx1ZSkgPT4gX2xhc3QgPSBfci5jaGVja0FuZFJlYWN0KF9sYXN0LCB2YWx1ZSk7CiAKICAgZmFjdG9yeSBOYXZJc29sYXRlTWVudUVsZW1lbnQoTS5Jc29sYXRlUmVmIGlzb2xhdGUsCi0gICAgICBTdHJlYW08TS5Jc29sYXRlVXBkYXRlRXZlbnQ+IHVwZGF0ZXMsIHtib29sIGxhc3Q6IGZhbHNlLAorICAgICAgTS5FdmVudFJlcG9zaXRvcnkgZXZlbnRzLCB7Ym9vbCBsYXN0OiBmYWxzZSwKICAgICAgIFJlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewogICAgIGFzc2VydChpc29sYXRlICE9IG51bGwpOworICAgIGFzc2VydChldmVudHMgIT0gbnVsbCk7CiAgICAgYXNzZXJ0KGxhc3QgIT0gbnVsbCk7CiAgICAgTmF2SXNvbGF0ZU1lbnVFbGVtZW50IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZy5uYW1lKTsKICAgICBlLl9yID0gbmV3IFJlbmRlcmluZ1NjaGVkdWxlcihlLCBxdWV1ZTogcXVldWUpOwogICAgIGUuX2lzb2xhdGUgPSBpc29sYXRlOwogICAgIGUuX2xhc3QgPSBsYXN0OwotICAgIGUuX3VwZGF0ZXMgPSB1cGRhdGVzOworICAgIGUuX2V2ZW50cyA9IGV2ZW50czsKICAgICByZXR1cm4gZTsKICAgfQogCkBAIC01MSwxMiArNTMsMTAgQEAKICAgQG92ZXJyaWRlCiAgIHZvaWQgYXR0YWNoZWQoKSB7CiAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLSAgICBhc3NlcnQoX2lzb2xhdGUgIT0gbnVsbCk7Ci0gICAgYXNzZXJ0KF91cGRhdGVzICE9IG51bGwpOworICAgIF91cGRhdGVzU3Vic2NyaXB0aW9uID0gX2V2ZW50cy5vbklzb2xhdGVVcGRhdGUKKyAgICAgIC53aGVyZSgoZSkgPT4gZS5pc29sYXRlLmlkID09IGlzb2xhdGUuaWQpCisgICAgICAubGlzdGVuKChlKSB7IF9pc29sYXRlID0gZS5pc29sYXRlOyBfci5kaXJ0eSgpOyB9KTsKICAgICBfci5lbmFibGUoKTsKLSAgICBfdXBkYXRlc1N1YnNjcmlwdGlvbiA9IF91cGRhdGVzCi0gICAgICAud2hlcmUoKE0uSXNvbGF0ZVVwZGF0ZUV2ZW50IGUpID0+IGUuaXNvbGF0ZS5pZCA9PSBpc29sYXRlLmlkKQotICAgICAgLmxpc3RlbigoTS5Jc29sYXRlVXBkYXRlRXZlbnQgZSkgeyBfaXNvbGF0ZSA9IGUuaXNvbGF0ZTsgX3IuZGlydHkoKTsgfSk7CiAgIH0KIAogICBAb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvaXNvbGF0ZV9tZW51X3dyYXBwZXIuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvaXNvbGF0ZV9tZW51X3dyYXBwZXIuZGFydAppbmRleCAzYWY4NWQyLi5mZjRlMWVkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2lzb2xhdGVfbWVudV93cmFwcGVyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9pc29sYXRlX21lbnVfd3JhcHBlci5kYXJ0CkBAIC0zLDEyICszLDkgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIGltcG9ydCAnZGFydDpodG1sJzsKLWltcG9ydCAnZGFydDphc3luYyc7CiAKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9hcHAuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc2VydmljZS5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvaGVscGVycy90YWcuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL3NoaW1zL2JpbmRpbmcuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9pc29sYXRlX21lbnUuZGFydCc7CkBAIC0yMiwyNCArMTksMjIgQEAKICAgc3RhdGljIGNvbnN0IHRhZyA9CiAgICAgY29uc3QgVGFnPE5hdklzb2xhdGVNZW51RWxlbWVudFdyYXBwZXI+KCdpc29sYXRlLW5hdi1tZW51Jyk7CiAKLSAgZmluYWwgU3RyZWFtQ29udHJvbGxlcjxNLklzb2xhdGVVcGRhdGVFdmVudD4gX3VwZGF0ZXNDb250cm9sbGVyID0KLSAgICBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLklzb2xhdGVVcGRhdGVFdmVudD4oKTsKLSAgU3RyZWFtPE0uSXNvbGF0ZVVwZGF0ZUV2ZW50PiBfdXBkYXRlczsKLSAgU3RyZWFtU3Vic2NyaXB0aW9uIF9zdWJzY3JpcHRpb247Ci0KICAgYm9vbCBfbGFzdCA9IGZhbHNlOwogICBJc29sYXRlIF9pc29sYXRlOworICAKICAgYm9vbCBnZXQgbGFzdCA9PiBfbGFzdDsKICAgSXNvbGF0ZSBnZXQgaXNvbGF0ZSA9PiBfaXNvbGF0ZTsKKwogICBzZXQgbGFzdChib29sIHZhbHVlKSB7Ci0gICAgX2xhc3QgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX2xhc3QgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKICAgfQogICBzZXQgaXNvbGF0ZShJc29sYXRlIHZhbHVlKSB7Ci0gICAgX2lzb2xhdGUgPSB2YWx1ZTsgIF9kZXRhY2hlZCgpOyBfYXR0YWNoZWQoKTsKKyAgICBfaXNvbGF0ZSA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAKICAgTmF2SXNvbGF0ZU1lbnVFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewotICAgIF91cGRhdGVzID0gX3VwZGF0ZXNDb250cm9sbGVyLnN0cmVhbS5hc0Jyb2FkY2FzdFN0cmVhbSgpOwogICAgIGJpbmRlci5yZWdpc3RlckNhbGxiYWNrKHRoaXMpOwogICAgIF9sYXN0ID0gX2dldEJvb2xBdHRyaWJ1dGUoJ2xhc3QnKTsKICAgICBjcmVhdGVTaGFkb3dSb290KCk7CkBAIC00OSw0MiArNDQsMjQgQEAKICAgQG92ZXJyaWRlCiAgIHZvaWQgYXR0YWNoZWQoKSB7CiAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLSAgICBfYXR0YWNoZWQoKTsKLSAgfQotCi0gIEBvdmVycmlkZQotICB2b2lkIGRldGFjaGVkKCkgewotICAgIHN1cGVyLmRldGFjaGVkKCk7Ci0gICAgX2RldGFjaGVkKCk7Ci0gIH0KLQotICB2b2lkIF9hdHRhY2hlZCgpIHsKLSAgICBpZiAoX2lzb2xhdGUgIT0gbnVsbCkgewotICAgICAgX3N1YnNjcmlwdGlvbiA9IF9pc29sYXRlLmNoYW5nZXMubGlzdGVuKChfKSB7Ci0gICAgICAgIF91cGRhdGVzQ29udHJvbGxlci5hZGQobmV3IElzb2xhdGVVcGRhdGVFdmVudE1vY2soaXNvbGF0ZTogaXNvbGF0ZSkpOwotICAgICAgfSk7Ci0gICAgfQogICAgIHJlbmRlcigpOwogICB9CiAKLSAgdm9pZCBfZGV0YWNoZWQoKSB7Ci0gICAgaWYgKF9zdWJzY3JpcHRpb24gIT0gbnVsbCkgewotICAgICAgX3N1YnNjcmlwdGlvbi5jYW5jZWwoKTsKLSAgICAgIF9zdWJzY3JpcHRpb24gPSBudWxsOwotICAgIH0KLSAgfQotCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAoX2lzb2xhdGUgPT0gbnVsbCB8fCBfbGFzdCA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9pc29sYXRlID09IG51bGwgfHwgX2xhc3QgPT0gbnVsbCkgeworICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbCi0gICAgICBuZXcgTmF2SXNvbGF0ZU1lbnVFbGVtZW50KGlzb2xhdGUsIF91cGRhdGVzLCBsYXN0OiBsYXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVldWU6IE9ic2VydmF0b3J5QXBwbGljYXRpb24uYXBwLnF1ZXVlKQorICAgICAgbmV3IE5hdklzb2xhdGVNZW51RWxlbWVudChfaXNvbGF0ZSwgYXBwLmV2ZW50cywgbGFzdDogX2xhc3QsCisgICAgICAgICAgcXVldWU6IGFwcC5xdWV1ZSkKICAgICAgICAgLi5jaGlsZHJlbiA9IFtuZXcgQ29udGVudEVsZW1lbnQoKV0KICAgICBdOwogICB9CiAKKyAgT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbiBnZXQgYXBwID0+IE9ic2VydmF0b3J5QXBwbGljYXRpb24uYXBwOworCiAgIGJvb2wgX2dldEJvb2xBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKICAgICBmaW5hbCBTdHJpbmcgdmFsdWUgPSBnZXRBdHRyaWJ1dGUobmFtZSk7CiAgICAgcmV0dXJuICEodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSAnZmFsc2UnKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbGlicmFyeV9tZW51LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2xpYnJhcnlfbWVudS5kYXJ0CmluZGV4IDA0MDNhYzMuLjM2MTYwZDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbGlicmFyeV9tZW51LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9saWJyYXJ5X21lbnUuZGFydApAQCAtMjEsOSArMjEsMTEgQEAKICAgYm9vbCBfbGFzdDsKICAgTS5Jc29sYXRlUmVmIF9pc29sYXRlOwogICBNLkxpYnJhcnlSZWYgX2xpYnJhcnk7CisKICAgYm9vbCBnZXQgbGFzdCA9PiBfbGFzdDsKICAgTS5Jc29sYXRlUmVmIGdldCBpc29sYXRlID0+IF9pc29sYXRlOwogICBNLkxpYnJhcnlSZWYgZ2V0IGxpYnJhcnkgPT4gX2xpYnJhcnk7CisgIAogICBzZXQgbGFzdChib29sIHZhbHVlKSA9PiBfbGFzdCA9IF9yLmNoZWNrQW5kUmVhY3QoX2xhc3QsIHZhbHVlKTsKIAogICBmYWN0b3J5IE5hdkxpYnJhcnlNZW51RWxlbWVudChNLklzb2xhdGVSZWYgaXNvbGF0ZSwgTS5MaWJyYXJ5UmVmIGxpYnJhcnksCkBAIC00MiwxMSArNDQsMTUgQEAKICAgTmF2TGlicmFyeU1lbnVFbGVtZW50LmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7IGNyZWF0ZVNoYWRvd1Jvb3QoKTsgfQogCiAgIEBvdmVycmlkZQotICB2b2lkIGF0dGFjaGVkKCkgeyBzdXBlci5hdHRhY2hlZCgpOyBfci5lbmFibGUoKTsgfQorICB2b2lkIGF0dGFjaGVkKCkgeworICAgIHN1cGVyLmF0dGFjaGVkKCk7CisgICAgX3IuZW5hYmxlKCk7CisgIH0KIAogICBAb3ZlcnJpZGUKICAgdm9pZCBkZXRhY2hlZCgpIHsKLSAgICBzdXBlci5kZXRhY2hlZCgpOyBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CisgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwogICB9CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbGlicmFyeV9tZW51X3dyYXBwZXIuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbGlicmFyeV9tZW51X3dyYXBwZXIuZGFydAppbmRleCAxMDk3YmRjLi44ZGIwMzQ3IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L2xpYnJhcnlfbWVudV93cmFwcGVyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9saWJyYXJ5X21lbnVfd3JhcHBlci5kYXJ0CkBAIC0yMSwxMyArMjEsMTcgQEAKIAogICBib29sIF9sYXN0ID0gZmFsc2U7CiAgIExpYnJhcnkgX2xpYnJhcnk7CisKICAgYm9vbCBnZXQgbGFzdCA9PiBfbGFzdDsKICAgTGlicmFyeSBnZXQgbGlicmFyeSA9PiBfbGlicmFyeTsKKyAgCiAgIHNldCBsYXN0KGJvb2wgdmFsdWUpIHsKLSAgICBfbGFzdCA9IHZhbHVlOyByZW5kZXIoKTsKKyAgICBfbGFzdCA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAgIHNldCBsaWJyYXJ5KExpYnJhcnkgdmFsdWUpIHsKLSAgICBfbGlicmFyeSA9IHZhbHVlOyByZW5kZXIoKTsKKyAgICBfbGlicmFyeSA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAKICAgTmF2TGlicmFyeU1lbnVFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewpAQCAtNDUsNyArNDksOSBAQAogCiAgIHZvaWQgcmVuZGVyKCkgewogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKLSAgICBpZiAoX2xpYnJhcnkgPT0gbnVsbCB8fCBfbGFzdCA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9saWJyYXJ5ID09IG51bGwgfHwgX2xhc3QgPT0gbnVsbCkgeworICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbCiAgICAgICBuZXcgTmF2TGlicmFyeU1lbnVFbGVtZW50KGxpYnJhcnkuaXNvbGF0ZSwgbGlicmFyeSwgbGFzdDogbGFzdCwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbWVudS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51LmRhcnQKaW5kZXggYmNkOWM5MC4uMjYyNGFkNyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51LmRhcnQKQEAgLTUzLDkgKzUzLDExIEBACiAgIFN0cmluZyBfbGFiZWw7CiAgIFN0cmluZyBfbGluazsKICAgYm9vbCBfbGFzdDsKKwogICBTdHJpbmcgZ2V0IGxhYmVsID0+IF9sYWJlbDsKICAgU3RyaW5nIGdldCBsaW5rID0+IF9saW5rOwogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OworICAKICAgc2V0IGxhYmVsKFN0cmluZyB2YWx1ZSkgPT4gX2xhYmVsID0gX3IuY2hlY2tBbmRSZWFjdChfbGFiZWwsIHZhbHVlKTsKICAgc2V0IGxpbmsoU3RyaW5nIHZhbHVlKSA9PiBfbGluayA9IF9yLmNoZWNrQW5kUmVhY3QoX2xpbmssIHZhbHVlKTsKICAgc2V0IGxhc3QoYm9vbCB2YWx1ZSkgPT4gX2xhc3QgPSBfci5jaGVja0FuZFJlYWN0KF9saW5rLCB2YWx1ZSk7CkBAIC03NSwxMSArNzcsMTUgQEAKICAgTmF2TWVudUVsZW1lbnQuY3JlYXRlZCgpIDogc3VwZXIuY3JlYXRlZCgpIHsgY3JlYXRlU2hhZG93Um9vdCgpOyB9CiAKICAgQG92ZXJyaWRlCi0gIHZvaWQgYXR0YWNoZWQoKSB7IHN1cGVyLmF0dGFjaGVkKCk7IF9yLmVuYWJsZSgpOyB9CisgIHZvaWQgYXR0YWNoZWQoKSB7CisgICAgc3VwZXIuYXR0YWNoZWQoKTsKKyAgICBfci5lbmFibGUoKTsKKyAgfQogCiAgIEBvdmVycmlkZQogICB2b2lkIGRldGFjaGVkKCkgewotICAgIHN1cGVyLmRldGFjaGVkKCk7IF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKKyAgICBzdXBlci5kZXRhY2hlZCgpOworICAgIF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107CiAgIH0KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51X2l0ZW0uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbWVudV9pdGVtLmRhcnQKaW5kZXggMjQxMWVlNS4uMDNjZWQzZCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51X2l0ZW0uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L21lbnVfaXRlbS5kYXJ0CkBAIC01NSw4ICs1NSwxMCBAQAogCiAgIFN0cmluZyBfbGFiZWw7CiAgIFN0cmluZyBfbGluazsKKwogICBTdHJpbmcgZ2V0IGxhYmVsID0+IF9sYWJlbDsKICAgU3RyaW5nIGdldCBsaW5rID0+IF9saW5rOworICAKICAgc2V0IGxhYmVsKFN0cmluZyB2YWx1ZSkgPT4gX2xhYmVsID0gX3IuY2hlY2tBbmRSZWFjdChfbGFiZWwsIHZhbHVlKTsKICAgc2V0IGxpbmsoU3RyaW5nIHZhbHVlKSA9PiBfbGluayA9IF9yLmNoZWNrQW5kUmVhY3QoX2xpbmssIHZhbHVlKTsKIApAQCAtNzQsMTEgKzc2LDE1IEBACiAgIE5hdk1lbnVJdGVtRWxlbWVudC5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgeyBjcmVhdGVTaGFkb3dSb290KCk7IH0KIAogICBAb3ZlcnJpZGUKLSAgdm9pZCBhdHRhY2hlZCgpIHsgc3VwZXIuYXR0YWNoZWQoKTsgX3IuZW5hYmxlKCk7IH0KKyAgdm9pZCBhdHRhY2hlZCgpIHsKKyAgICBzdXBlci5hdHRhY2hlZCgpOworICAgIF9yLmVuYWJsZSgpOworICB9CiAKICAgQG92ZXJyaWRlCiAgIHZvaWQgZGV0YWNoZWQoKSB7Ci0gICAgc3VwZXIuZGV0YWNoZWQoKTsgX3IuZGlzYWJsZShub3RpZnk6IHRydWUpOworICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgX3IuZGlzYWJsZShub3RpZnk6IHRydWUpOwogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbXTsKICAgfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L21lbnVfaXRlbV93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L21lbnVfaXRlbV93cmFwcGVyLmRhcnQKaW5kZXggNzg4ODc0NS4uZTAwNjk5YyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51X2l0ZW1fd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbWVudV9pdGVtX3dyYXBwZXIuZGFydApAQCAtMjAsMTMgKzIwLDE3IEBACiAKICAgU3RyaW5nIF9hbmNob3I7CiAgIFN0cmluZyBfbGluazsKKwogICBTdHJpbmcgZ2V0IGFuY2hvciA9PiBfYW5jaG9yOwogICBTdHJpbmcgZ2V0IGxpbmsgPT4gX2xpbms7CisgIAogICBzZXQgYW5jaG9yKFN0cmluZyB2YWx1ZSkgewotICAgIF9hbmNob3IgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX2FuY2hvciA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAgIHNldCBsaW5rKFN0cmluZyB2YWx1ZSkgewotICAgIF9saW5rID0gdmFsdWU7IHJlbmRlcigpOworICAgIF9saW5rID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KIAogICBOYXZNZW51SXRlbUVsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CkBAIC00NSw3ICs0OSw5IEBACiAKICAgdm9pZCByZW5kZXIoKSB7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwotICAgIGlmIChfYW5jaG9yID09IG51bGwpIHJldHVybjsKKyAgICBpZiAoX2FuY2hvciA9PSBudWxsKSB7CisgICAgICByZXR1cm47CisgICAgfQogCiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFsKICAgICAgIG5ldyBOYXZNZW51SXRlbUVsZW1lbnQoX2FuY2hvciwgbGluazogJyMkbGluaycsCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L21lbnVfd3JhcHBlci5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9tZW51X3dyYXBwZXIuZGFydAppbmRleCAwNDU3N2M2Li4zYjI4N2ZlIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L21lbnVfd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbWVudV93cmFwcGVyLmRhcnQKQEAgLTIxLDE3ICsyMSwyMiBAQAogICBTdHJpbmcgX2FuY2hvciA9ICctLS0nOwogICBTdHJpbmcgX2xpbms7CiAgIGJvb2wgX2xhc3QgPSBmYWxzZTsKKwogICBTdHJpbmcgZ2V0IGFuY2hvciA9PiBfYW5jaG9yOwogICBTdHJpbmcgZ2V0IGxpbmsgPT4gX2xpbms7CiAgIGJvb2wgZ2V0IGxhc3QgPT4gX2xhc3Q7CisgIAogICBzZXQgYW5jaG9yKFN0cmluZyB2YWx1ZSkgewotICAgIF9hbmNob3IgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX2FuY2hvciA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAgIHNldCBsaW5rKFN0cmluZyB2YWx1ZSkgewotICAgIF9saW5rID0gdmFsdWU7IHJlbmRlcigpOworICAgIF9saW5rID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KICAgc2V0IGxhc3QoYm9vbCB2YWx1ZSkgewotICAgIF9sYXN0ID0gdmFsdWU7IHJlbmRlcigpOworICAgIF9sYXN0ID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KIAogICBOYXZNZW51RWxlbWVudFdyYXBwZXIuY3JlYXRlZCgpIDogc3VwZXIuY3JlYXRlZCgpIHsKQEAgLTUxLDcgKzU2LDkgQEAKIAogICB2b2lkIHJlbmRlcigpIHsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107Ci0gICAgaWYgKF9hbmNob3IgPT0gbnVsbCB8fCBfbGFzdCA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9hbmNob3IgPT0gbnVsbCB8fCBfbGFzdCA9PSBudWxsKSB7CisgICAgICByZXR1cm47CisgICAgfQogCiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFsKICAgICAgIG5ldyBOYXZNZW51RWxlbWVudChfYW5jaG9yLCBsaW5rOiAnIyRfbGluaycsIGxhc3Q6IGxhc3QsCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnkuZGFydAppbmRleCBiYTk5ZjAxLi4xNTY2YTA0IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeS5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5LmRhcnQKQEAgLTIzLDcgKzIzLDkgQEAKICAgU3RyZWFtU3Vic2NyaXB0aW9uIF9zdWJzY3JpcHRpb247CiAKICAgYm9vbCBfbm90aWZ5T25QYXVzZTsKKwogICBib29sIGdldCBub3RpZnlPblBhdXNlID0+IF9ub3RpZnlPblBhdXNlOworICAKICAgc2V0IG5vdGlmeU9uUGF1c2UoYm9vbCB2YWx1ZSkgPT4KICAgICAgIF9ub3RpZnlPblBhdXNlID0gX3IuY2hlY2tBbmRSZWFjdChfbm90aWZ5T25QYXVzZSwgdmFsdWUpOwogCkBAIC00Myw4ICs0NSw4IEBACiAgIEBvdmVycmlkZQogICB2b2lkIGF0dGFjaGVkKCkgewogICAgIHN1cGVyLmF0dGFjaGVkKCk7Ci0gICAgX3IuZW5hYmxlKCk7CiAgICAgX3N1YnNjcmlwdGlvbiA9IF9yZXBvc2l0b3J5Lm9uQ2hhbmdlLmxpc3RlbigoXykgPT4gX3IuZGlydHkoKSk7CisgICAgX3IuZW5hYmxlKCk7CiAgIH0KIAogICBAb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5X2V2ZW50LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9ldmVudC5kYXJ0CmluZGV4IDBmNzUwNjIuLmI0NjIzNmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5X2V2ZW50LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnlfZXZlbnQuZGFydApAQCAtMjYsNiArMjYsNyBAQAogICBTdHJlYW08RXZlbnREZWxldGVFdmVudD4gZ2V0IG9uRGVsZXRlID0+IF9vbkRlbGV0ZS5zdHJlYW07CiAKICAgTS5FdmVudCBfZXZlbnQ7CisgIAogICBNLkV2ZW50IGdldCBldmVudCA9PiBfZXZlbnQ7CiAKICAgZmFjdG9yeSBOYXZOb3RpZnlFdmVudEVsZW1lbnQoTS5FdmVudCBldmVudCwge1JlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnlfZXhjZXB0aW9uLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9leGNlcHRpb24uZGFydAppbmRleCBjZjBhNDYzLi4wZTkyYmRhIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9leGNlcHRpb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9leGNlcHRpb24uZGFydApAQCAtMzEsNiArMzEsNyBAQAogCiAgIEV4Y2VwdGlvbiBfZXhjZXB0aW9uOwogICBTdGFja1RyYWNlIF9zdGFja3RyYWNlOworICAKICAgRXhjZXB0aW9uIGdldCBleGNlcHRpb24gPT4gX2V4Y2VwdGlvbjsKICAgU3RhY2tUcmFjZSBnZXQgc3RhY2t0cmFjZSA9PiBfc3RhY2t0cmFjZTsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnlfd3JhcHBlci5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnlfd3JhcHBlci5kYXJ0CmluZGV4IDc2NzY3MjcuLjU4ZGJmMzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5X3dyYXBwZXIuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV93cmFwcGVyLmRhcnQKQEAgLTIwLDEzICsyMCwxNyBAQAogCiAgIE5vdGlmaWNhdGlvblJlcG9zaXRvcnkgX25vdGlmaWNhdGlvbnM7CiAgIGJvb2wgX25vdGlmeU9uUGF1c2UgPSB0cnVlOworCiAgIE5vdGlmaWNhdGlvblJlcG9zaXRvcnkgZ2V0IG5vdGlmaWNhdGlvbnMgPT4gX25vdGlmaWNhdGlvbnM7CiAgIGJvb2wgZ2V0IG5vdGlmeU9uUGF1c2UgPT4gX25vdGlmeU9uUGF1c2U7CisgIAogICBzZXQgbm90aWZpY2F0aW9ucyhOb3RpZmljYXRpb25SZXBvc2l0b3J5IHZhbHVlKSB7Ci0gICAgX25vdGlmaWNhdGlvbnMgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX25vdGlmaWNhdGlvbnMgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKICAgfQogICBzZXQgbm90aWZ5T25QYXVzZShib29sIHZhbHVlKSB7Ci0gICAgX25vdGlmeU9uUGF1c2UgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX25vdGlmeU9uUGF1c2UgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKICAgfQogCiAgIE5hdk5vdGlmeUVsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CkBAIC00Myw3ICs0Nyw5IEBACiAKICAgdm9pZCByZW5kZXIoKSB7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwotICAgIGlmIChfbm90aWZpY2F0aW9ucyA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9ub3RpZmljYXRpb25zID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3JlZnJlc2guZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvcmVmcmVzaC5kYXJ0CmluZGV4IDc5NWM3YmQuLmRhNDBhYmQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvcmVmcmVzaC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvcmVmcmVzaC5kYXJ0CkBAIC0yNSw4ICsyNSwxMCBAQAogCiAgIGJvb2wgX2Rpc2FibGVkOwogICBTdHJpbmcgX2xhYmVsOworCiAgIGJvb2wgZ2V0IGRpc2FibGVkID0+IF9kaXNhYmxlZDsKICAgU3RyaW5nIGdldCBsYWJlbCA9PiBfbGFiZWw7CisgIAogICBzZXQgZGlzYWJsZWQoYm9vbCB2YWx1ZSkgPT4gX2Rpc2FibGVkID0gX3IuY2hlY2tBbmRSZWFjdChfZGlzYWJsZWQsIHZhbHVlKTsKICAgc2V0IGxhYmVsKFN0cmluZyB2YWx1ZSkgPT4gX2xhYmVsID0gX3IuY2hlY2tBbmRSZWFjdChfbGFiZWwsIHZhbHVlKTsKIApAQCAtNDQsMTAgKzQ2LDE3IEBACiAgIE5hdlJlZnJlc2hFbGVtZW50LmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKTsKIAogICBAb3ZlcnJpZGUKLSAgdm9pZCBhdHRhY2hlZCgpIHsgc3VwZXIuYXR0YWNoZWQoKTsgX3IuZW5hYmxlKCk7IH0KKyAgdm9pZCBhdHRhY2hlZCgpIHsKKyAgICBzdXBlci5hdHRhY2hlZCgpOworICAgIF9yLmVuYWJsZSgpOworICB9CiAKICAgQG92ZXJyaWRlCi0gIHZvaWQgZGV0YWNoZWQoKSB7IHN1cGVyLmRldGFjaGVkKCk7IGNoaWxkcmVuID0gW107IF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsgfQorICB2b2lkIGRldGFjaGVkKCkgeworICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgY2hpbGRyZW4gPSBbXTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CisgIH0KIAogICB2b2lkIHJlbmRlcigpIHsKICAgICBjaGlsZHJlbiA9IFsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvcmVmcmVzaF93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3JlZnJlc2hfd3JhcHBlci5kYXJ0CmluZGV4IDE5ZTdjY2UuLjE5ODlhMTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvcmVmcmVzaF93cmFwcGVyLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi9yZWZyZXNoX3dyYXBwZXIuZGFydApAQCAtMjAsMTMgKzIwLDE3IEBACiAKICAgRnVuY3Rpb24gX2NhbGxiYWNrOwogICBTdHJpbmcgX2xhYmVsOworICAKICAgRnVuY3Rpb24gZ2V0IGNhbGxiYWNrID0+IF9jYWxsYmFjazsKICAgU3RyaW5nIGdldCBsYWJlbCA9PiBfbGFiZWw7CisKICAgc2V0IGNhbGxiYWNrKEZ1bmN0aW9uIHZhbHVlKSB7Ci0gICAgX2NhbGxiYWNrID0gdmFsdWU7IHJlbmRlcigpOworICAgIF9jYWxsYmFjayA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAgIHNldCBsYWJlbChTdHJpbmcgdmFsdWUpIHsKLSAgICBfbGFiZWwgPSB2YWx1ZTsgcmVuZGVyKCk7CisgICAgX2xhYmVsID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KIAogICBOYXZSZWZyZXNoRWxlbWVudFdyYXBwZXIuY3JlYXRlZCgpIDogc3VwZXIuY3JlYXRlZCgpIHsKQEAgLTQ0LDcgKzQ4LDkgQEAKIAogICB2b2lkIHJlbmRlcigpIHsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107Ci0gICAgaWYgKF9jYWxsYmFjayA9PSBudWxsIHx8IF9sYWJlbCA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9jYWxsYmFjayA9PSBudWxsIHx8IF9sYWJlbCA9PSBudWxsKSB7CisgICAgICByZXR1cm47CisgICAgfQogCiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFsKICAgICAgIG5ldyBTdHlsZUVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi90b3BfbWVudS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi90b3BfbWVudS5kYXJ0CmluZGV4IGEyODkyNzcuLmY0YzZmYTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvdG9wX21lbnUuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3RvcF9tZW51LmRhcnQKQEAgLTIwLDcgKzIwLDkgQEAKICAgU3RyZWFtPFJlbmRlcmVkRXZlbnQ8TmF2VG9wTWVudUVsZW1lbnQ+PiBnZXQgb25SZW5kZXJlZCA9PiBfci5vblJlbmRlcmVkOwogCiAgIGJvb2wgX2xhc3Q7CisgIAogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OworCiAgIHNldCBsYXN0KGJvb2wgdmFsdWUpID0+IF9sYXN0ID0gX3IuY2hlY2tBbmRSZWFjdChfbGFzdCwgdmFsdWUpOwogCiAgIGZhY3RvcnkgTmF2VG9wTWVudUVsZW1lbnQoe2Jvb2wgbGFzdDogZmFsc2UsIFJlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi90b3BfbWVudV93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3RvcF9tZW51X3dyYXBwZXIuZGFydAppbmRleCBlZGM1ZTI3Li5kYjk5ZmZmIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3RvcF9tZW51X3dyYXBwZXIuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3RvcF9tZW51X3dyYXBwZXIuZGFydApAQCAtMTgsOSArMTgsMTIgQEAKICAgc3RhdGljIGNvbnN0IHRhZyA9IGNvbnN0IFRhZzxOYXZUb3BNZW51RWxlbWVudFdyYXBwZXI+KCd0b3AtbmF2LW1lbnUnKTsKIAogICBib29sIF9sYXN0ID0gZmFsc2U7CisgIAogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OworCiAgIHNldCBsYXN0KGJvb2wgdmFsdWUpIHsKLSAgICBfbGFzdCA9IHZhbHVlOyByZW5kZXIoKTsKKyAgICBfbGFzdCA9IHZhbHVlOworICAgIHJlbmRlcigpOwogICB9CiAKICAgTmF2VG9wTWVudUVsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CkBAIC0zOCw3ICs0MSw5IEBACiAKICAgdm9pZCByZW5kZXIoKSB7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwotICAgIGlmIChfbGFzdCA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9sYXN0ID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IE5hdlRvcE1lbnVFbGVtZW50KGxhc3Q6IGxhc3QsIHF1ZXVlOiBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uLmFwcC5xdWV1ZSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvdm1fbWVudS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51LmRhcnQKaW5kZXggYTQ2ZDRjYS4uZTQzNTFhZiAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51LmRhcnQKQEAgLTUsNyArNSw3IEBACiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ2RhcnQ6YXN5bmMnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBhcyBNCi0gIHNob3cgVk0sIElzb2xhdGVSZWYsIFRhcmdldCwgVk1VcGRhdGVFdmVudDsKKyAgc2hvdyBWTSwgRXZlbnRSZXBvc2l0b3J5OwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3JlbmRlcmluZ19zY2hlZHVsZXIuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2hlbHBlcnMvdGFnLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3VyaXMuZGFydCc7CkBAIC0yMSwyOCArMjEsMjcgQEAKIAogICBTdHJlYW08UmVuZGVyZWRFdmVudDxOYXZWTU1lbnVFbGVtZW50Pj4gZ2V0IG9uUmVuZGVyZWQgPT4gX3Iub25SZW5kZXJlZDsKIAotICBTdHJlYW08TS5WTVVwZGF0ZUV2ZW50PiBfdXBkYXRlczsKLSAgU3RyZWFtU3Vic2NyaXB0aW9uIF91cGRhdGVzU3Vic2NyaXB0aW9uOwotCiAgIGJvb2wgX2xhc3Q7CiAgIE0uVk0gX3ZtOwotICBNLlRhcmdldCBfdGFyZ2V0OworICBNLkV2ZW50UmVwb3NpdG9yeSBfZXZlbnRzOworICBTdHJlYW1TdWJzY3JpcHRpb24gX3VwZGF0ZXNTdWJzY3JpcHRpb247CisKKwogICBib29sIGdldCBsYXN0ID0+IF9sYXN0OwogICBNLlZNIGdldCB2bSA9PiBfdm07Ci0gIE0uVGFyZ2V0IGdldCB0YXJnZXQgPT4gX3RhcmdldDsKKwogICBzZXQgbGFzdChib29sIHZhbHVlKSA9PiBfbGFzdCA9IF9yLmNoZWNrQW5kUmVhY3QoX2xhc3QsIHZhbHVlKTsKIAotICBmYWN0b3J5IE5hdlZNTWVudUVsZW1lbnQoTS5WTSB2bSwgU3RyZWFtPE0uVk1VcGRhdGVFdmVudD4gdXBkYXRlcywKLSAgICAgIHtib29sIGxhc3Q6IGZhbHNlLCBNLlRhcmdldCB0YXJnZXQsIFJlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgeworICBmYWN0b3J5IE5hdlZNTWVudUVsZW1lbnQoTS5WTSB2bSwgTS5FdmVudFJlcG9zaXRvcnkgZXZlbnRzLCB7Ym9vbCBsYXN0OiBmYWxzZSwKKyAgICBSZW5kZXJpbmdRdWV1ZSBxdWV1ZX0pIHsKICAgICBhc3NlcnQodm0gIT0gbnVsbCk7Ci0gICAgYXNzZXJ0KHVwZGF0ZXMgIT0gbnVsbCk7CisgICAgYXNzZXJ0KGV2ZW50cyAhPSBudWxsKTsKICAgICBhc3NlcnQobGFzdCAhPSBudWxsKTsKICAgICBOYXZWTU1lbnVFbGVtZW50IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZy5uYW1lKTsKICAgICBlLl9yID0gbmV3IFJlbmRlcmluZ1NjaGVkdWxlcihlLCBxdWV1ZTogcXVldWUpOwogICAgIGUuX3ZtID0gdm07Ci0gICAgZS5fdXBkYXRlcyA9IHVwZGF0ZXM7CisgICAgZS5fZXZlbnRzID0gZXZlbnRzOwogICAgIGUuX2xhc3QgPSBsYXN0OwotICAgIGUuX3RhcmdldCA9IHRhcmdldDsKICAgICByZXR1cm4gZTsKICAgfQogCkBAIC01MSwyOSArNTAsMjUgQEAKICAgQG92ZXJyaWRlCiAgIHZvaWQgYXR0YWNoZWQoKSB7CiAgICAgc3VwZXIuYXR0YWNoZWQoKTsKKyAgICBfdXBkYXRlc1N1YnNjcmlwdGlvbiA9IF9ldmVudHMub25WTVVwZGF0ZQorICAgICAgICAubGlzdGVuKChlKSB7IF92bSA9IGUudm07IF9yLmRpcnR5KCk7IH0pOwogICAgIF9yLmVuYWJsZSgpOwotICAgIF91cGRhdGVzU3Vic2NyaXB0aW9uID0gX3VwZGF0ZXMKLSAgICAgIC5saXN0ZW4oKE0uVk1VcGRhdGVFdmVudCBlKSB7IF92bSA9IGUudm07IF9yLmRpcnR5KCk7IH0pOwogICB9CiAKICAgQG92ZXJyaWRlCiAgIHZvaWQgZGV0YWNoZWQoKSB7CiAgICAgc3VwZXIuZGV0YWNoZWQoKTsKLSAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CiAgICAgc2hhZG93Um9vdC5jaGlsZHJlbiA9IFtdOwotICAgIGFzc2VydChfdXBkYXRlc1N1YnNjcmlwdGlvbiAhPSBudWxsKTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CiAgICAgX3VwZGF0ZXNTdWJzY3JpcHRpb24uY2FuY2VsKCk7Ci0gICAgX3VwZGF0ZXNTdWJzY3JpcHRpb24gPSBudWxsOwogICB9CiAKICAgdm9pZCByZW5kZXIoKSB7Ci0gICAgZmluYWwgU3RyaW5nIG5hbWUgPSAodGFyZ2V0ID09IG51bGwpID8gdm0ubmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcke3ZtLm5hbWV9QCR7dGFyZ2V0Lm5hbWV9JzsKLSAgICAvLy8gVE9ETyhjYmVybmFzY2hpbmEpIHVzZSB0aGUgaXNvbGF0ZSByZXBvc2l0b3J5LgogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbCi0gICAgICBuZXcgTmF2TWVudUVsZW1lbnQobmFtZSwgbGluazogVXJpcy52bSgpLCBsYXN0OiBsYXN0LCBxdWV1ZTogX3IucXVldWUpCisgICAgICBuZXcgTmF2TWVudUVsZW1lbnQodm0uZGlzcGxheU5hbWUsIGxpbms6IFVyaXMudm0oKSwgbGFzdDogbGFzdCwKKyAgICAgICAgICBxdWV1ZTogX3IucXVldWUpCiAgICAgICAgIC4uY2hpbGRyZW4gPSAoCi0gICAgICAgICAgX3ZtLmlzb2xhdGVzLm1hcCgoTS5Jc29sYXRlUmVmIGlzb2xhdGUpIHsKKyAgICAgICAgICBfdm0uaXNvbGF0ZXMubWFwKChpc29sYXRlKSB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IE5hdk1lbnVJdGVtRWxlbWVudChpc29sYXRlLm5hbWUsIHF1ZXVlOiBfci5xdWV1ZSwKICAgICAgICAgICAgICAgICBsaW5rOiBVcmlzLmluc3BlY3QoaXNvbGF0ZSkpOwogICAgICAgICAgIH0pLnRvTGlzdCgpCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3ZtX21lbnVfd3JhcHBlci5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51X3dyYXBwZXIuZGFydAppbmRleCA5MzI3ZTE5Li5lZjhiZjNkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvbmF2L3ZtX21lbnVfd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9uYXYvdm1fbWVudV93cmFwcGVyLmRhcnQKQEAgLTMsMTEgKzMsOCBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogaW1wb3J0ICdkYXJ0Omh0bWwnOwotaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIAogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L2FwcC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zZXJ2aWNlLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NlcnZpY2VfY29tbW9uLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9oZWxwZXJzL3RhZy5kYXJ0JzsKQEAgLTIyLDE5ICsxOSwxOCBAQAogCiAgIHN0YXRpYyBjb25zdCB0YWcgPSBjb25zdCBUYWc8TmF2Vk1NZW51RWxlbWVudFdyYXBwZXI+KCd2bS1uYXYtbWVudScpOwogCi0gIFN0cmVhbVN1YnNjcmlwdGlvbiBfc3Vic2NyaXB0aW9uOwotICBTdHJlYW1Db250cm9sbGVyPE0uVk1VcGRhdGVFdmVudD4gX3VwZGF0ZXNDb250cm9sbGVyID0KLSAgICAgIG5ldyBTdHJlYW1Db250cm9sbGVyPE0uVk1VcGRhdGVFdmVudD4uYnJvYWRjYXN0KCk7Ci0KICAgYm9vbCBfbGFzdCA9IGZhbHNlOwogICBWTSBfdm07CisKICAgYm9vbCBnZXQgbGFzdCA9PiBfbGFzdDsKICAgVk0gZ2V0IHZtID0+IF92bTsKKwogICBzZXQgbGFzdChib29sIHZhbHVlKSB7Ci0gICAgX2xhc3QgPSB2YWx1ZTsgcmVuZGVyKCk7Ci0gIH0KKyAgICBfbGFzdCA9IHZhbHVlOworICAgIHJlbmRlcigpOyB9CiAgIHNldCB2bShWTSB2YWx1ZSkgewotICAgIF92bSA9IHZhbHVlOyBfZGV0YWNoZWQoKTsgX2F0dGFjaGVkKCk7CisgICAgX3ZtID0gdmFsdWU7CisgICAgcmVuZGVyKCk7CiAgIH0KIAogICBOYXZWTU1lbnVFbGVtZW50V3JhcHBlci5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewpAQCAtNDcsNDMgKzQzLDI0IEBACiAgIEBvdmVycmlkZQogICB2b2lkIGF0dGFjaGVkKCkgewogICAgIHN1cGVyLmF0dGFjaGVkKCk7Ci0gICAgX2F0dGFjaGVkKCk7Ci0gIH0KLQotICBAb3ZlcnJpZGUKLSAgdm9pZCBkZXRhY2hlZCgpIHsKLSAgICBzdXBlci5kZXRhY2hlZCgpOwotICAgIF9kZXRhY2hlZCgpOwotICB9Ci0KLSAgdm9pZCBfYXR0YWNoZWQoKSB7Ci0gICAgaWYgKF92bSAhPSBudWxsKSB7Ci0gICAgICBfc3Vic2NyaXB0aW9uID0gX3ZtLmNoYW5nZXMubGlzdGVuKChfKSB7Ci0gICAgICAgIF91cGRhdGVzQ29udHJvbGxlci5hZGQobmV3IFZNVXBkYXRlRXZlbnRNb2NrKHZtOiBfdm0pKTsKLSAgICAgIH0pOwotICAgIH0KICAgICByZW5kZXIoKTsKICAgfQogCi0gIHZvaWQgX2RldGFjaGVkKCkgewotICAgIGlmIChfc3Vic2NyaXB0aW9uICE9IG51bGwpIHsKLSAgICAgIF9zdWJzY3JpcHRpb24uY2FuY2VsKCk7Ci0gICAgICBfc3Vic2NyaXB0aW9uID0gbnVsbDsKLSAgICB9Ci0gIH0KLQogICB2b2lkIHJlbmRlcigpIHsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107Ci0gICAgaWYgKF92bSA9PSBudWxsIHx8IF9sYXN0ID09IG51bGwpIHJldHVybjsKKyAgICBpZiAoX3ZtID09IG51bGwgfHwgX2xhc3QgPT0gbnVsbCkgeworICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIHNoYWRvd1Jvb3QuY2hpbGRyZW4gPSBbCi0gICAgICBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bSwgX3VwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSwgbGFzdDogbGFzdCwKLSAgICAgICAgICB0YXJnZXQ6ICh2bSBhcyBDb21tb25XZWJTb2NrZXRWTSk/LnRhcmdldCwKLSAgICAgICAgICBxdWV1ZTogT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbi5hcHAucXVldWUpCisgICAgICBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bSwgYXBwLmV2ZW50cywgbGFzdDogbGFzdCwKKyAgICAgICAgICBxdWV1ZTogYXBwLnF1ZXVlKQogICAgICAgICAuLmNoaWxkcmVuID0gW25ldyBDb250ZW50RWxlbWVudCgpXQogICAgIF07CiAgIH0KIAorICBPYnNlcnZhdG9yeUFwcGxpY2F0aW9uIGdldCBhcHAgPT4gT2JzZXJ2YXRvcnlBcHBsaWNhdGlvbi5hcHA7CisKICAgYm9vbCBfZ2V0Qm9vbEF0dHJpYnV0ZShTdHJpbmcgbmFtZSkgewogICAgIGZpbmFsIFN0cmluZyB2YWx1ZSA9IGdldEF0dHJpYnV0ZShuYW1lKTsKICAgICByZXR1cm4gISh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09ICdmYWxzZScpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3NjcmlwdF9yZWYuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zY3JpcHRfcmVmLmRhcnQKaW5kZXggOGNjMmY2OC4uNjdhZTM4OCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3NjcmlwdF9yZWYuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvc2NyaXB0X3JlZi5kYXJ0CkBAIC00MSw3ICs0MSw2IEBACiAgIEBvdmVycmlkZQogICB2b2lkIGF0dGFjaGVkKCkgewogICAgIHN1cGVyLmF0dGFjaGVkKCk7Ci0gICAgYXNzZXJ0KHNjcmlwdCAhPSBudWxsKTsKICAgICBfci5lbmFibGUoKTsKICAgfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvc2NyaXB0X3JlZl93cmFwcGVyLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvc2NyaXB0X3JlZl93cmFwcGVyLmRhcnQKaW5kZXggMDFmNjk0MC4uOGYwZTM0MyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3NjcmlwdF9yZWZfd3JhcHBlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zY3JpcHRfcmVmX3dyYXBwZXIuZGFydApAQCAtMjAsOCArMjAsMTMgQEAKICAgc3RhdGljIGNvbnN0IHRhZyA9IGNvbnN0IFRhZzxTY3JpcHRSZWZFbGVtZW50V3JhcHBlcj4oJ3NjcmlwdC1yZWYnKTsKIAogICBTY3JpcHQgX3NjcmlwdDsKKwogICBTY3JpcHQgZ2V0IHJlZiA9PiBfc2NyaXB0OwotICBzZXQgcmVmKFNjcmlwdCBzY3JpcHQpIHsgX3NjcmlwdCA9IHNjcmlwdDsgcmVuZGVyKCk7IH0KKworICBzZXQgcmVmKFNjcmlwdCB2YWx1ZSkgeworICAgIF9zY3JpcHQgPSB2YWx1ZTsKKyAgICByZW5kZXIoKTsKKyAgfQogCiAgIFNjcmlwdFJlZkVsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CiAgICAgYmluZGVyLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcyk7CkBAIC0zNyw3ICs0Miw5IEBACiAKICAgRnV0dXJlIHJlbmRlcigpIGFzeW5jIHsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107Ci0gICAgaWYgKF9zY3JpcHQgPT0gbnVsbCkgcmV0dXJuOworICAgIGlmIChfc2NyaXB0ID09IG51bGwpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gWwogICAgICAgbmV3IFN0eWxlRWxlbWVudCgpCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvc291cmNlX2xpbmsuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zb3VyY2VfbGluay5kYXJ0CmluZGV4IDAyZWVjMjYuLjExMGI4ZTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zb3VyY2VfbGluay5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zb3VyY2VfbGluay5kYXJ0CkBAIC00NCwxNiArNDQsMTkgQEAKICAgQG92ZXJyaWRlCiAgIHZvaWQgYXR0YWNoZWQoKSB7CiAgICAgc3VwZXIuYXR0YWNoZWQoKTsKLSAgICBhc3NlcnQobG9jYXRpb24gIT0gbnVsbCk7Ci0gICAgX3IuZW5hYmxlKCk7CiAgICAgX3JlcG9zaXRvcnkuZ2V0KF9sb2NhdGlvbi5zY3JpcHQuaWQpLnRoZW4oKHNjcmlwdCkgewogICAgICAgX3NjcmlwdCA9IHNjcmlwdDsKICAgICAgIF9yLmRpcnR5KCk7CiAgICAgfSk7CisgICAgX3IuZW5hYmxlKCk7CiAgIH0KIAogICBAb3ZlcnJpZGUKLSAgdm9pZCBkZXRhY2hlZCgpIHsgc3VwZXIuZGV0YWNoZWQoKTsgY2hpbGRyZW4gPSBbXTsgX3IuZGlzYWJsZShub3RpZnk6IHRydWUpOyB9CisgIHZvaWQgZGV0YWNoZWQoKSB7CisgICAgc3VwZXIuZGV0YWNoZWQoKTsKKyAgICBjaGlsZHJlbiA9IFtdOworICAgIF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKKyAgfQogCiAgIEZ1dHVyZSByZW5kZXIoKSBhc3luYyB7CiAgICAgaWYgKF9zY3JpcHQgPT0gbnVsbCkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3NvdXJjZV9saW5rX3dyYXBwZXIuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy9zb3VyY2VfbGlua193cmFwcGVyLmRhcnQKaW5kZXggZDM4ZDcwZi4uMjAyMjFlYSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3NvdXJjZV9saW5rX3dyYXBwZXIuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvc291cmNlX2xpbmtfd3JhcHBlci5kYXJ0CkBAIC0yMiw3ICsyMiwxMCBAQAogCiAgIFNvdXJjZUxvY2F0aW9uIF9sb2NhdGlvbjsKICAgU291cmNlTG9jYXRpb24gZ2V0IGxvY2F0aW9uID0+IGxvY2F0aW9uOwotICBzZXQgbG9jYXRpb24oU291cmNlTG9jYXRpb24gbG9jYXRpb24pIHsgX2xvY2F0aW9uID0gbG9jYXRpb247IHJlbmRlcigpOyB9CisgIHNldCBsb2NhdGlvbihTb3VyY2VMb2NhdGlvbiB2YWx1ZSkgeworICAgIF9sb2NhdGlvbiA9IHZhbHVlOworICAgIHJlbmRlcigpOworICB9CiAKICAgU291cmNlTGlua0VsZW1lbnRXcmFwcGVyLmNyZWF0ZWQoKSA6IHN1cGVyLmNyZWF0ZWQoKSB7CiAgICAgYmluZGVyLnJlZ2lzdGVyQ2FsbGJhY2sodGhpcyk7CkBAIC0zOCw3ICs0MSw5IEBACiAKICAgRnV0dXJlIHJlbmRlcigpIGFzeW5jIHsKICAgICBzaGFkb3dSb290LmNoaWxkcmVuID0gW107Ci0gICAgaWYgKF9sb2NhdGlvbiA9PSBudWxsKSByZXR1cm47CisgICAgaWYgKF9sb2NhdGlvbiA9PSBudWxsKSB7CisgICAgICByZXR1cm47CisgICAgfQogCiAgICAgU2NyaXB0UmVwb3NpdG9yeSByZXBvc2l0b3J5ID0gbmV3IFNjcmlwdFJlcG9zaXRvcnkoX2xvY2F0aW9uLmlzb2xhdGUpOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvdmlld19mb290ZXIuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy92aWV3X2Zvb3Rlci5kYXJ0CmluZGV4IDc0OTNhN2EuLjNlN2RjZDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy92aWV3X2Zvb3Rlci5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy92aWV3X2Zvb3Rlci5kYXJ0CkBAIC0yMyw3ICsyMyw3IEBACiAgIH0KIAogICBWaWV3Rm9vdGVyRWxlbWVudC5jcmVhdGVkKCkgOiBzdXBlci5jcmVhdGVkKCkgewotICAgIC8vIFRPRE8oY2Jlcm5hc2NoaW5hKSByZW1vdmUgdGhpcyB3aGVuIG5vIG1vcmUgbmVlZGVkLgorICAgIC8vIFRPRE8oY2Jlcm5hc2NoaW5hKSByZW1vdmUgdGhpcyB3aGVuIHBvbHltZXIgaXMgcmVtb3ZlZC4KICAgICBfciA9IG5ldyBSZW5kZXJpbmdTY2hlZHVsZXIodGhpcyk7CiAgIH0KIApAQCAtMzYsOCArMzYsOCBAQAogICBAb3ZlcnJpZGUKICAgdm9pZCBkZXRhY2hlZCgpIHsKICAgICBzdXBlci5kZXRhY2hlZCgpOwotICAgIF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKICAgICBjaGlsZHJlbiA9IFtdOworICAgIF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKICAgfQogCiAgIHZvaWQgcmVuZGVyKCkgewpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3ZtX2Nvbm5lY3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9lbGVtZW50cy92bV9jb25uZWN0LmRhcnQKaW5kZXggNjU0ODdjZi4uYTMyMmU5MSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL2VsZW1lbnRzL3ZtX2Nvbm5lY3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvZWxlbWVudHMvdm1fY29ubmVjdC5kYXJ0CkBAIC0xNiw2ICsxNiw4IEBACiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL3ZpZXdfZm9vdGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy92bV9jb25uZWN0X3RhcmdldC5kYXJ0JzsKIAordHlwZWRlZiB2b2lkIENyYXNoRHVtcExvYWRDYWxsYmFjayhNYXAgZHVtcCk7CisKIGNsYXNzIFZNQ29ubmVjdEVsZW1lbnQgZXh0ZW5kcyBIdG1sRWxlbWVudCBpbXBsZW1lbnRzIFJlbmRlcmFibGUgewogICBzdGF0aWMgY29uc3QgdGFnID0gY29uc3QgVGFnPFZNQ29ubmVjdEVsZW1lbnQ+KCd2bS1jb25uZWN0JywKICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llczogY29uc3QgW05hdkJhckVsZW1lbnQudGFnLApAQCAtMjgsNyArMzAsNyBAQAogCiAgIFN0cmVhbTxSZW5kZXJlZEV2ZW50PFZNQ29ubmVjdEVsZW1lbnQ+PiBnZXQgb25SZW5kZXJlZCA9PiBfci5vblJlbmRlcmVkOwogCi0gIE0uQ3Jhc2hEdW1wUmVwb3NpdG9yeSBfZHVtcDsKKyAgQ3Jhc2hEdW1wTG9hZENhbGxiYWNrIF9sb2FkRHVtcDsKICAgTS5Ob3RpZmljYXRpb25SZXBvc2l0b3J5IF9ub3RpZmljYXRpb25zOwogICBNLlRhcmdldFJlcG9zaXRvcnkgX3RhcmdldHM7CiAgIFN0cmVhbVN1YnNjcmlwdGlvbiBfdGFyZ2V0c1N1YnNjcmlwdGlvbjsKQEAgLTM2LDE3ICszOCwxNyBAQAogICBTdHJpbmcgX2FkZHJlc3M7CiAKICAgZmFjdG9yeSBWTUNvbm5lY3RFbGVtZW50KE0uVGFyZ2V0UmVwb3NpdG9yeSB0YXJnZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTS5DcmFzaER1bXBSZXBvc2l0b3J5IGR1bXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmFzaER1bXBMb2FkQ2FsbGJhY2sgbG9hZER1bXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNLk5vdGlmaWNhdGlvblJlcG9zaXRvcnkgbm90aWZpY2F0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtTdHJpbmcgYWRkcmVzczogJycsIFJlbmRlcmluZ1F1ZXVlIHF1ZXVlfSkgewogICAgIGFzc2VydChhZGRyZXNzICE9IG51bGwpOwotICAgIGFzc2VydChkdW1wICE9IG51bGwpOworICAgIGFzc2VydChsb2FkRHVtcCAhPSBudWxsKTsKICAgICBhc3NlcnQobm90aWZpY2F0aW9ucyAhPSBudWxsKTsKICAgICBhc3NlcnQodGFyZ2V0cyAhPSBudWxsKTsKICAgICBWTUNvbm5lY3RFbGVtZW50IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZy5uYW1lKTsKICAgICBlLl9yID0gbmV3IFJlbmRlcmluZ1NjaGVkdWxlcihlLCBxdWV1ZTogcXVldWUpOwogICAgIGUuX2FkZHJlc3MgPSBhZGRyZXNzOwotICAgIGUuX2R1bXAgPSBkdW1wOworICAgIGUuX2xvYWREdW1wID0gbG9hZER1bXA7CiAgICAgZS5fbm90aWZpY2F0aW9ucyA9IG5vdGlmaWNhdGlvbnM7CiAgICAgZS5fdGFyZ2V0cyA9IHRhcmdldHM7CiAgICAgcmV0dXJuIGU7CkBAIC01NiwxNCArNTgsMTcgQEAKIAogICBAb3ZlcnJpZGUKICAgdm9pZCBhdHRhY2hlZCgpIHsKLSAgICBzdXBlci5hdHRhY2hlZCgpOyBfci5lbmFibGUoKTsKKyAgICBzdXBlci5hdHRhY2hlZCgpOwogICAgIF90YXJnZXRzU3Vic2NyaXB0aW9uID0gX3RhcmdldHMub25DaGFuZ2UubGlzdGVuKChfKSA9PiBfci5kaXJ0eSgpKTsKKyAgICBfci5lbmFibGUoKTsKICAgfQogCiAgIEBvdmVycmlkZQogICB2b2lkIGRldGFjaGVkKCkgewotICAgIHN1cGVyLmRldGFjaGVkKCk7IGNoaWxkcmVuID0gW107IF9yLmRpc2FibGUobm90aWZ5OiB0cnVlKTsKLSAgICBfdGFyZ2V0c1N1YnNjcmlwdGlvbi5jYW5jZWwoKTsgX3RhcmdldHNTdWJzY3JpcHRpb24gPSBudWxsOworICAgIHN1cGVyLmRldGFjaGVkKCk7CisgICAgY2hpbGRyZW4gPSBbXTsKKyAgICBfci5kaXNhYmxlKG5vdGlmeTogdHJ1ZSk7CisgICAgX3RhcmdldHNTdWJzY3JpcHRpb24uY2FuY2VsKCk7CiAgIH0KIAogICB2b2lkIHJlbmRlcigpIHsKQEAgLTE1OCw3ICsxNjMsNyBAQAogICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZS5maWxlc1swXSk7CiAgICAgICByZWFkZXIub25Mb2FkLmxpc3RlbigoXykgewogICAgICAgICB2YXIgY3Jhc2hEdW1wID0gSlNPTi5kZWNvZGUocmVhZGVyLnJlc3VsdCk7Ci0gICAgICAgIF9kdW1wLmxvYWQoY3Jhc2hEdW1wKTsKKyAgICAgICAgX2xvYWREdW1wKGNyYXNoRHVtcCk7CiAgICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4gZTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9jbGFzcy5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2ViNzY0Li4wMDAwMDAwCi0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKLQotcGFydCBvZiBtb2NrczsKLQotY2xhc3MgQ2xhc3NSZWZNb2NrIGltcGxlbWVudHMgTS5DbGFzc1JlZiB7Ci0gIGZpbmFsIFN0cmluZyBpZDsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0gIGNvbnN0IENsYXNzUmVmTW9jayh7dGhpcy5pZCwgdGhpcy5uYW1lfSk7Ci19Ci0KLWNsYXNzIENsYXNzTW9jayBpbXBsZW1lbnRzIE0uQ2xhc3NSZWYgewotICBmaW5hbCBTdHJpbmcgaWQ7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotICBmaW5hbCBib29sIGlzQWJzdHJhY3Q7Ci0gIGZpbmFsIGJvb2wgaXNDb25zdDsKLSAgZmluYWwgTS5DbGFzc1JlZiBzdXBlcmNsYXNzOwotICBmaW5hbCBJdGVyYWJsZTxNLkNsYXNzUmVmPiBzdWJjbGFzc2VzOwotICBjb25zdCBDbGFzc01vY2soe3RoaXMuaWQsIHRoaXMubmFtZSwgdGhpcy5pc0Fic3RyYWN0LCB0aGlzLmlzQ29uc3QsCi0gICAgICB0aGlzLnN1cGVyY2xhc3MsIHRoaXMuc3ViY2xhc3NlczogY29uc3QgW119KTsKLX0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL3ZtLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy92bS5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTgyNzJlLi4wMDAwMDAwCi0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL3ZtLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKLQotcGFydCBvZiBtb2NrczsKLQotY2xhc3MgVk1SZWZNb2NrIGltcGxlbWVudHMgTS5WTVJlZiB7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotICBjb25zdCBWTVJlZk1vY2soe3RoaXMubmFtZX0pOwotfQotCi1jbGFzcyBWTU1vY2sgaW1wbGVtZW50cyBNLlZNIHsKLSAgZmluYWwgU3RyaW5nIG5hbWU7Ci0gIGZpbmFsIGludCBhcmNoaXRlY3R1cmVCaXRzOwotICBmaW5hbCBTdHJpbmcgdGFyZ2V0Q1BVOwotICBmaW5hbCBTdHJpbmcgaG9zdENQVTsKLSAgZmluYWwgU3RyaW5nIHZlcnNpb247Ci0gIGZpbmFsIGludCBwaWQ7Ci0gIGZpbmFsIERhdGVUaW1lIHN0YXJ0VGltZTsKLSAgZmluYWwgSXRlcmFibGU8TS5Jc29sYXRlUmVmPiBpc29sYXRlczsKLSAgY29uc3QgVk1Nb2NrKHt0aGlzLm5hbWUsIHRoaXMuYXJjaGl0ZWN0dXJlQml0cywgdGhpcy50YXJnZXRDUFUsIHRoaXMuaG9zdENQVSwKLSAgICAgIHRoaXMudmVyc2lvbiwgdGhpcy5waWQsIHRoaXMuc3RhcnRUaW1lLCB0aGlzLmlzb2xhdGVzIDogY29uc3QgW119KTsKLX0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvY3Jhc2hfZHVtcC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NDg4ZTkuLjAwMDAwMDAKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKLQotcGFydCBvZiBtb2NrczsKLQotdHlwZWRlZiB2b2lkIENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrQ2FsbGJhY2soTWFwKTsKLQotY2xhc3MgQ3Jhc2hEdW1wUmVwb3NpdG9yeU1vY2sgaW1wbGVtZW50cyBNLkNyYXNoRHVtcFJlcG9zaXRvcnkgewotICBmaW5hbCBDcmFzaER1bXBSZXBvc2l0b3J5TW9ja0NhbGxiYWNrIF9sb2FkOwotCi0gIGJvb2wgbG9hZEludm9rZWQgPSBmYWxzZTsKLQotICB2b2lkIGxvYWQoTWFwIGR1bXApIHsKLSAgICBsb2FkSW52b2tlZCA9IHRydWU7Ci0gICAgaWYgKF9sb2FkICE9IG51bGwpIHsKLSAgICAgIF9sb2FkKGR1bXApOwotICAgIH0KLSAgfQotCi0gIENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrKHtDcmFzaER1bXBSZXBvc2l0b3J5TW9ja0NhbGxiYWNrIGxvYWR9KQotICAgIDogX2xvYWQgPSBsb2FkOwotfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3MvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM5YzExZC4uMDAwMDAwMAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3MvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQotCi1wYXJ0IG9mIG1vY2tzOwotCi10eXBlZGVmIEZ1dHVyZTxJdGVyYWJsZTxNLkZsYWc+PiBGbGFnc1JlcG9zaXRvcnlNb2NrQ2FsbGJhY2soTS5WTVJlZiB2bSk7Ci0KLWNsYXNzIEZsYWdzUmVwb3NpdG9yeU1vY2sgaW1wbGVtZW50cyBNLkZsYWdzUmVwb3NpdG9yeSB7Ci0gIGZpbmFsIEZsYWdzUmVwb3NpdG9yeU1vY2tDYWxsYmFjayBfbGlzdDsKLQotICBGdXR1cmU8SXRlcmFibGU8TS5GbGFnPj4gbGlzdChNLlZNUmVmIHZtKSB7Ci0gICAgaWYgKF9saXN0ICE9IG51bGwpIHsKLSAgICAgIHJldHVybiBfbGlzdCh2bSk7Ci0gICAgfQotICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKGNvbnN0IFtdKTsKLSAgfQotCi0gIEZsYWdzUmVwb3NpdG9yeU1vY2soe0ZsYWdzUmVwb3NpdG9yeU1vY2tDYWxsYmFjayBsaXN0fSkKLSAgICA6IF9saXN0ID0gbGlzdDsKLX0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvc2NyaXB0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3MvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWI5MTE0Li4wMDAwMDAwCi0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvc2NyaXB0LmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLXBhcnQgb2YgbW9ja3M7Ci0KLWNsYXNzIFNjcmlwdFJlcG9zaXRvcnlNb2NrIGltcGxlbWVudHMgTS5TY3JpcHRSZXBvc2l0b3J5IHsKLSAgZmluYWwgTWFwPFN0cmluZywgTS5TY3JpcHQ+IHNjcmlwdHM7Ci0KLSAgYm9vbCBfaW52b2tlZCA9IGZhbHNlOwotICBib29sIGdldCBpbnZva2VkID0+IF9pbnZva2VkOwotCi0gIFNjcmlwdFJlcG9zaXRvcnlNb2NrKHRoaXMuc2NyaXB0cyk7Ci0KLSAgRnV0dXJlPE0uU2NyaXB0PiBnZXQoU3RyaW5nIGlkKSBhc3luYyB7Ci0gICAgX2ludm9rZWQgPSB0cnVlOwotICAgIHJldHVybiBzY3JpcHRzW2lkXTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9leGNlcHRpb25zLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL2V4Y2VwdGlvbnMuZGFydAppbmRleCA4NzFjMDk1Li44MWE3YmE3IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL2V4Y2VwdGlvbnMuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL2V4Y2VwdGlvbnMuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9icmVha3BvaW50LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvYnJlYWtwb2ludC5kYXJ0CmluZGV4IGU1ZTkzMjQuLmRhZjEyNzcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9icmVha3BvaW50LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2JyZWFrcG9pbnQuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9jbGFzcy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2NsYXNzLmRhcnQKaW5kZXggYjllNWY1MC4uYWU4ZTI0MSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2NsYXNzLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2NsYXNzLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCkBAIC0yMCw2ICsyMCw5IEBACiAgIC8vLyBJcyB0aGlzIGEgY29uc3QgY2xhc3M/CiAgIGJvb2wgZ2V0IGlzQ29uc3Q7CiAKKyAgLy8vIFtpbnRlcm5hbF0KKyAgYm9vbCBnZXQgaXNQYXRjaDsKKwogICAvLy8gVGhlIGxpYnJhcnkgd2hpY2ggY29udGFpbnMgdGhpcyBjbGFzcy4KICAgTGlicmFyeVJlZiBnZXQgbGlicmFyeTsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2NvZGUuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9jb2RlLmRhcnQKaW5kZXggMWE4NzU4ZS4uZGRjNzU5ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2NvZGUuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvY29kZS5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2Vycm9yLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXJyb3IuZGFydAppbmRleCBiNWQxYmJkLi4yM2RlNDU2IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXJyb3IuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXJyb3IuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9ldmVudC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2V2ZW50LmRhcnQKaW5kZXggYWZmMTk0Ni4uMzNkZmM2MyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2V2ZW50LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2V2ZW50LmRhcnQKQEAgLTEsMTAgKzEsMTQgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKIGFic3RyYWN0IGNsYXNzIEV2ZW50IHsKKyAgLy8vIFRoZSB0aW1lc3RhbXAgKGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2gpIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgIC8vLyBldmVudC4gRm9yIHNvbWUgaXNvbGF0ZSBwYXVzZSBldmVudHMsIHRoZSB0aW1lc3RhbXAgaXMgZnJvbSB3aGVuIHRoZQorICAvLy8gaXNvbGF0ZSB3YXMgcGF1c2VkLiBGb3Igb3RoZXIgZXZlbnRzLCB0aGUgdGltZXN0YW1wIGlzIGZyb20gd2hlbiB0aGUKKyAgLy8vIGV2ZW50IHdhcyBjcmVhdGVkLgogICBEYXRlVGltZSBnZXQgdGltZXN0YW1wOwogICBzdGF0aWMgYm9vbCBpc1BhdXNlRXZlbnQoRXZlbnQgZXZlbnQpIHsKICAgICByZXR1cm4gZXZlbnQgaXMgUGF1c2VTdGFydEV2ZW50IHx8IGV2ZW50IGlzIFBhdXNlRXhpdEV2ZW50IHx8CkBAIC0xMiw2NCArMTYsMTMwIEBACiAgICAgICAgIGV2ZW50IGlzIFBhdXNlRXhjZXB0aW9uRXZlbnQgfHwgZXZlbnQgaXMgTm9uZUV2ZW50OwogICB9CiB9CisKIGFic3RyYWN0IGNsYXNzIFZNRXZlbnQgZXh0ZW5kcyBFdmVudCB7CisgIC8vLyBUaGUgdm0gd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCiAgIFZNUmVmIGdldCB2bTsKIH0KKwogYWJzdHJhY3QgY2xhc3MgVk1VcGRhdGVFdmVudCBleHRlbmRzIFZNRXZlbnQge30KKwogYWJzdHJhY3QgY2xhc3MgSXNvbGF0ZUV2ZW50IGV4dGVuZHMgRXZlbnQgeworICAvLy8gVGhlIGlzb2xhdGUgd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCiAgIElzb2xhdGVSZWYgZ2V0IGlzb2xhdGU7CiB9CisKIGFic3RyYWN0IGNsYXNzIElzb2xhdGVTdGFydEV2ZW50IGV4dGVuZHMgSXNvbGF0ZUV2ZW50IHt9CisKIGFic3RyYWN0IGNsYXNzIElzb2xhdGVSdW5uYWJsZUV2ZW50IGV4dGVuZHMgSXNvbGF0ZUV2ZW50IHt9CisKIGFic3RyYWN0IGNsYXNzIElzb2xhdGVFeGl0RXZlbnQgZXh0ZW5kcyBJc29sYXRlRXZlbnQge30KKwogYWJzdHJhY3QgY2xhc3MgSXNvbGF0ZVVwZGF0ZUV2ZW50IGV4dGVuZHMgSXNvbGF0ZUV2ZW50IHt9CisKIGFic3RyYWN0IGNsYXNzIElzb2xhdGVSZWxvYWRFdmVudCBleHRlbmRzIElzb2xhdGVFdmVudCB7CiAgIEVycm9yUmVmIGdldCBlcnJvcjsKIH0KKwogYWJzdHJhY3QgY2xhc3MgU2VydmljZUV4dGVuc2lvbkFkZGVkRXZlbnQgZXh0ZW5kcyBJc29sYXRlRXZlbnQgeworICAvLy8gVGhlIFJQQyBuYW1lIG9mIHRoZSBleHRlbnNpb24gdGhhdCB3YXMgYWRkZWQuCiAgIFN0cmluZyBnZXQgZXh0ZW5zaW9uUlBDOwogfQotYWJzdHJhY3QgY2xhc3MgRGVidWdFdmVudCBleHRlbmRzIElzb2xhdGVFdmVudCB7fQorCithYnN0cmFjdCBjbGFzcyBEZWJ1Z0V2ZW50IGV4dGVuZHMgRXZlbnQgeworICAvLy8gVGhlIGlzb2xhdGUgd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCisgIElzb2xhdGVSZWYgZ2V0IGlzb2xhdGU7Cit9CisKK2Fic3RyYWN0IGNsYXNzIERlYnVnZ2VyU2V0dGluZ3NVcGRhdGVFdmVudCBleHRlbmRzIERlYnVnRXZlbnQge30KKwogYWJzdHJhY3QgY2xhc3MgUGF1c2VTdGFydEV2ZW50IGV4dGVuZHMgRGVidWdFdmVudCB7fQorCiBhYnN0cmFjdCBjbGFzcyBQYXVzZUV4aXRFdmVudCBleHRlbmRzIERlYnVnRXZlbnQge30KKwogYWJzdHJhY3QgY2xhc3MgUGF1c2VCcmVha3BvaW50RXZlbnQgZXh0ZW5kcyBEZWJ1Z0V2ZW50IHsKLSAgLy8vIFtvcHRpb25hbF0KKyAgLy8vIFtvcHRpb25hbF0gVGhlIGJyZWFrcG9pbnQgYXQgd2hpY2ggd2UgYXJlIGN1cnJlbnRseSBwYXVzZWQuCiAgIEJyZWFrcG9pbnQgZ2V0IGJyZWFrcG9pbnQ7CisgIC8vLyBUaGUgbGlzdCBvZiBicmVha3BvaW50cyBhdCB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHBhdXNlZAorICAvLy8gZm9yIGEgUGF1c2VCcmVha3BvaW50IGV2ZW50LgorICAvLy8KKyAgLy8vIFRoaXMgbGlzdCBtYXkgYmUgZW1wdHkuIEZvciBleGFtcGxlLCB3aGlsZSBzaW5nbGUtc3RlcHBpbmcsIHRoZQorICAvLy8gVk0gc2VuZHMgYSBQYXVzZUJyZWFrcG9pbnQgZXZlbnQgd2l0aCBubyBicmVha3BvaW50cy4KKyAgLy8vCisgIC8vLyBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGJyZWFrcG9pbnQgc2V0IGF0IHRoZSBwcm9ncmFtIHBvc2l0aW9uLAorICAvLy8gdGhlbiBhbGwgb2YgdGhlbSB3aWxsIGJlIHByb3ZpZGVkLgogICBJdGVyYWJsZTxCcmVha3BvaW50PiBnZXQgcGF1c2VCcmVha3BvaW50czsKKyAgLy8vIFRoZSB0b3Agc3RhY2sgZnJhbWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZlbnQuCiAgIEZyYW1lIGdldCB0b3BGcmFtZTsKICAgYm9vbCBnZXQgYXRBc3luY1N1c3BlbnNpb247CiB9CisKIGFic3RyYWN0IGNsYXNzIFBhdXNlSW50ZXJydXB0ZWRFdmVudCBleHRlbmRzIERlYnVnRXZlbnQgeworICAvLy8gW29wdGlvbmFsXSBUaGUgdG9wIHN0YWNrIGZyYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV2ZW50LiBUaGVyZSB3aWxsIGJlCisgIC8vLyBubyB0b3AgZnJhbWUgaWYgdGhlIGlzb2xhdGUgaXMgaWRsZSAod2FpdGluZyBpbiB0aGUgbWVzc2FnZSBsb29wKS4KICAgRnJhbWUgZ2V0IHRvcEZyYW1lOworICAvLy8gSXMgdGhlIGlzb2xhdGUgcGF1c2VkIGF0IGFuIGF3YWl0LCB5aWVsZCwgb3IgeWllbGQqIHN0YXRlbWVudD8KICAgYm9vbCBnZXQgYXRBc3luY1N1c3BlbnNpb247CiB9CisKIGFic3RyYWN0IGNsYXNzIFBhdXNlRXhjZXB0aW9uRXZlbnQgZXh0ZW5kcyBEZWJ1Z0V2ZW50IHsKKyAgLy8vIFRoZSB0b3Agc3RhY2sgZnJhbWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZlbnQuCiAgIEZyYW1lIGdldCB0b3BGcmFtZTsKKyAgLy8vIFRoZSBleGNlcHRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZlbnQKICAgSW5zdGFuY2VSZWYgZ2V0IGV4Y2VwdGlvbjsKIH0KLWFic3RyYWN0IGNsYXNzIFJlc3VtZUV2ZW50IGV4dGVuZHMgRGVidWdFdmVudCB7fQorCithYnN0cmFjdCBjbGFzcyBSZXN1bWVFdmVudCBleHRlbmRzIERlYnVnRXZlbnQgeworICAvLy8gW29wdGlvbmFsXSBUaGUgdG9wIHN0YWNrIGZyYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV2ZW50LiBJdCBpcyBwcm92aWRlZAorICAvLy8gYXQgYWxsIHRpbWVzIGV4Y2VwdCBmb3IgdGhlIGluaXRpYWwgcmVzdW1lIGV2ZW50IHRoYXQgaXMgZGVsaXZlcmVkIHdoZW4gYW4KKyAgLy8vIGlzb2xhdGUgYmVnaW5zIGV4ZWN1dGlvbi4KKyAgRnJhbWUgZ2V0IHRvcEZyYW1lOworfQorCiBhYnN0cmFjdCBjbGFzcyBCcmVha3BvaW50QWRkZWRFdmVudCBleHRlbmRzIERlYnVnRXZlbnQgeworICAvLy8gVGhlIGJyZWFrcG9pbnQgd2hpY2ggd2FzIGFkZGVkLgogICBCcmVha3BvaW50IGdldCBicmVha3BvaW50OwogfQorCiBhYnN0cmFjdCBjbGFzcyBCcmVha3BvaW50UmVzb2x2ZWRFdmVudCBleHRlbmRzIERlYnVnRXZlbnQgeworICAvLy8gVGhlIGJyZWFrcG9pbnQgd2hpY2ggd2FzIHJlc29sdmVkLgogICBCcmVha3BvaW50IGdldCBicmVha3BvaW50OwogfQorCiBhYnN0cmFjdCBjbGFzcyBCcmVha3BvaW50UmVtb3ZlZEV2ZW50IGV4dGVuZHMgRGVidWdFdmVudCB7CisgIC8vLyBUaGUgYnJlYWtwb2ludCB3aGljaCB3YXMgcmVtb3ZlZC4KICAgQnJlYWtwb2ludCBnZXQgYnJlYWtwb2ludDsKIH0KKwogYWJzdHJhY3QgY2xhc3MgSW5zcGVjdEV2ZW50IGV4dGVuZHMgRGVidWdFdmVudCB7CisgIC8vLyBUaGUgYXJndW1lbnQgcGFzc2VkIHRvIGRhcnQ6ZGV2ZWxvcGVyLmluc3BlY3QuCiAgIEluc3RhbmNlUmVmIGdldCBpbnNwZWN0ZWU7CiB9CisKIGFic3RyYWN0IGNsYXNzIE5vbmVFdmVudCBleHRlbmRzIERlYnVnRXZlbnQge30KLWFic3RyYWN0IGNsYXNzIEdDRXZlbnQgZXh0ZW5kcyBJc29sYXRlRXZlbnQge30KLWFic3RyYWN0IGNsYXNzIEV4dGVuc2lvbkV2ZW50IGV4dGVuZHMgRXZlbnQgeworCithYnN0cmFjdCBjbGFzcyBHQ0V2ZW50IGV4dGVuZHMgRXZlbnQgeworICAvLy8gVGhlIGlzb2xhdGUgd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCiAgIElzb2xhdGVSZWYgZ2V0IGlzb2xhdGU7Cit9CisKK2Fic3RyYWN0IGNsYXNzIEV4dGVuc2lvbkV2ZW50IGV4dGVuZHMgRXZlbnQgeworICAvLy8gVGhlIGlzb2xhdGUgd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCisgIElzb2xhdGVSZWYgZ2V0IGlzb2xhdGU7CisgIC8vLyBUaGUgZXh0ZW5zaW9uIGV2ZW50IGtpbmQuCiAgIFN0cmluZyBnZXQgZXh0ZW5zaW9uS2luZDsKKyAgLy8vIFRoZSBleHRlbnNpb24gZXZlbnQgZGF0YS4KICAgRXh0ZW5zaW9uRGF0YSBnZXQgZXh0ZW5zaW9uRGF0YTsKIH0KLWFic3RyYWN0IGNsYXNzIFRpbWVsaW5lRXZlbnRzRXZlbnQgZXh0ZW5kcyBJc29sYXRlRXZlbnQgeworCithYnN0cmFjdCBjbGFzcyBUaW1lbGluZUV2ZW50c0V2ZW50IGV4dGVuZHMgRXZlbnQgeworICAvLy8gVGhlIGlzb2xhdGUgd2l0aCB3aGljaCB0aGlzIGV2ZW50IGlzIGFzc29jaWF0ZWQuCisgIElzb2xhdGVSZWYgZ2V0IGlzb2xhdGU7CisgIC8vLyBBbiBhcnJheSBvZiBUaW1lbGluZUV2ZW50cwogICBJdGVyYWJsZTxUaW1lbGluZUV2ZW50PiBnZXQgdGltZWxpbmVFdmVudHM7CiB9CisKIGFic3RyYWN0IGNsYXNzIENvbm5lY3Rpb25DbG9zZWRFdmVudCBleHRlbmRzIEV2ZW50IHsKKyAgLy8vIFRoZSByZWFzb24gb2YgdGhlIGNsb3NlZCBjb25uZWN0aW9uCiAgIFN0cmluZyBnZXQgcmVhc29uOwogfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2V4dGVuc2lvbl9kYXRhLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXh0ZW5zaW9uX2RhdGEuZGFydAppbmRleCA1MDAwYTliLi44MGEwMDEyIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXh0ZW5zaW9uX2RhdGEuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZXh0ZW5zaW9uX2RhdGEuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9mcmFtZS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2ZyYW1lLmRhcnQKaW5kZXggZDhlODdjZC4uYzBlNDBjMyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2ZyYW1lLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2ZyYW1lLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvZnVuY3Rpb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9mdW5jdGlvbi5kYXJ0CmluZGV4IGJiNzYzYWYuLmU1MmM1NjQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9mdW5jdGlvbi5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9mdW5jdGlvbi5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2luc3RhbmNlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvaW5zdGFuY2UuZGFydAppbmRleCBiMzM3Zjc5Li5lYjY1ZWE1IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvaW5zdGFuY2UuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvaW5zdGFuY2UuZGFydApAQCAtMSw3ICsxLDgxIEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCi1hYnN0cmFjdCBjbGFzcyBJbnN0YW5jZVJlZiBleHRlbmRzIE9iamVjdFJlZiB7fQorYWJzdHJhY3QgY2xhc3MgSW5zdGFuY2VSZWYgZXh0ZW5kcyBPYmplY3RSZWYgeworICAvLy8gSW5zdGFuY2UgcmVmZXJlbmNlcyBhbHdheXMgaW5jbHVkZSB0aGVpciBjbGFzcy4KKyAgQ2xhc3NSZWYgZ2V0IGNsYXp6OworCisgIC8vLyBbb3B0aW9uYWxdIFRoZSB2YWx1ZSBvZiB0aGlzIGluc3RhbmNlIGFzIGEgc3RyaW5nLgorICAvLy8KKyAgLy8vIFByb3ZpZGVkIGZvciB0aGUgaW5zdGFuY2Uga2luZHM6CisgIC8vLyAgIE51bGwgKG51bGwpCisgIC8vLyAgIEJvb2wgKHRydWUgb3IgZmFsc2UpCisgIC8vLyAgIERvdWJsZSAoc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gRG91YmxlLnBhcnNlKCkpCisgIC8vLyAgIEludCAoc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gaW50LnBhcnNlKCkpCisgIC8vLyAgIFN0cmluZyAodmFsdWUgbWF5IGJlIHRydW5jYXRlZCkKKyAgLy8vICAgRmxvYXQzMng0CisgIC8vLyAgIEZsb2F0NjR4MgorICAvLy8gICBJbnQzMng0CisgIC8vLyAgIFN0YWNrVHJhY2UKKyAgU3RyaW5nIGdldCB2YWx1ZUFzU3RyaW5nOworCisgIC8vLyBbb3B0aW9uYWxdIFRoZSB2YWx1ZUFzU3RyaW5nIGZvciBTdHJpbmcgcmVmZXJlbmNlcyBtYXkgYmUgdHJ1bmNhdGVkLiBJZiBzbywKKyAgLy8vIHRoaXMgcHJvcGVydHkgaXMgYWRkZWQgd2l0aCB0aGUgdmFsdWUgJ3RydWUnLgorICAvLy8KKyAgLy8vIE5ldyBjb2RlIHNob3VsZCB1c2UgJ2xlbmd0aCcgYW5kICdjb3VudCcgaW5zdGVhZC4KKyAgYm9vbCBnZXQgdmFsdWVBc1N0cmluZ0lzVHJ1bmNhdGVkOworCisgIC8vLyBbb3B0aW9uYWxdIFRoZSBsZW5ndGggb2YgYSBMaXN0IG9yIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIGEgTWFwIG9yCisgIC8vLyB0aGUgbnVtYmVyIG9mIGNvZGV1bml0cyBpbiBhIFN0cmluZy4KKyAgLy8vCisgIC8vLyBQcm92aWRlZCBmb3IgaW5zdGFuY2Uga2luZHM6CisgIC8vLyAgIFN0cmluZworICAvLy8gICBMaXN0CisgIC8vLyAgIE1hcAorICAvLy8gICBVaW50OENsYW1wZWRMaXN0CisgIC8vLyAgIFVpbnQ4TGlzdAorICAvLy8gICBVaW50MTZMaXN0CisgIC8vLyAgIFVpbnQzMkxpc3QKKyAgLy8vICAgVWludDY0TGlzdAorICAvLy8gICBJbnQ4TGlzdAorICAvLy8gICBJbnQxNkxpc3QKKyAgLy8vICAgSW50MzJMaXN0CisgIC8vLyAgIEludDY0TGlzdAorICAvLy8gICBGbG9hdDMyTGlzdAorICAvLy8gICBGbG9hdDY0TGlzdAorICAvLy8gICBJbnQzMng0TGlzdAorICAvLy8gICBGbG9hdDMyeDRMaXN0CisgIC8vLyAgIEZsb2F0NjR4Mkxpc3QKKyAgaW50IGdldCBsZW5ndGg7CisKKyAgLy8vIFtvcHRpb25hbF0gVGhlIG5hbWUgb2YgYSBUeXBlIGluc3RhbmNlLgorICAvLy8KKyAgLy8vIFByb3ZpZGVkIGZvciBpbnN0YW5jZSBraW5kczoKKyAgLy8vICAgVHlwZQorICBTdHJpbmcgZ2V0IG5hbWU7CisKKyAgLy8vIFtvcHRpb25hbF0gVGhlIGNvcnJlc3BvbmRpbmcgQ2xhc3MgaWYgdGhpcyBUeXBlIGlzIGNhbm9uaWNhbC4KKyAgLy8vCisgIC8vLyBQcm92aWRlZCBmb3IgaW5zdGFuY2Uga2luZHM6CisgIC8vLyAgIFR5cGUKKyAgQ2xhc3NSZWYgZ2V0IHR5cGVDbGFzczsKKworICAvLy8gW29wdGlvbmFsXSBUaGUgcGFyYW1ldGVyaXplZCBjbGFzcyBvZiBhIHR5cGUgcGFyYW1ldGVyOgorICAvLy8KKyAgLy8vIFByb3ZpZGVkIGZvciBpbnN0YW5jZSBraW5kczoKKyAgLy8vICAgVHlwZVBhcmFtZXRlcgorICBDbGFzc1JlZiBnZXQgcGFyYW1ldGVyaXplZENsYXNzOworCisgIC8vLyBbb3B0aW9uYWxdIFRoZSBwYXR0ZXJuIG9mIGEgUmVnRXhwIGluc3RhbmNlLgorICAvLy8KKyAgLy8vIFRoZSBwYXR0ZXJuIGlzIGFsd2F5cyBhbiBpbnN0YW5jZSBvZiBraW5kIFN0cmluZy4KKyAgLy8vCisgIC8vLyBQcm92aWRlZCBmb3IgaW5zdGFuY2Uga2luZHM6CisgIC8vLyAgIFJlZ0V4cAorICBJbnN0YW5jZVJlZiBnZXQgcGF0dGVybjsKK30KKworYWJzdHJhY3QgY2xhc3MgSW5zdGFuY2UgZXh0ZW5kcyBPYmplY3QgaW1wbGVtZW50cyBJbnN0YW5jZVJlZiB7fQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2lzb2xhdGUuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9pc29sYXRlLmRhcnQKaW5kZXggMDA3YTZmNC4uODFkNTRjNSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2lzb2xhdGUuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvaXNvbGF0ZS5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2xpYnJhcnkuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9saWJyYXJ5LmRhcnQKaW5kZXggNjU0M2VmOS4uMjgxMjQyYSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL2xpYnJhcnkuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvbGlicmFyeS5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL25vdGlmaWNhdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL25vdGlmaWNhdGlvbi5kYXJ0CmluZGV4IDlhOWY4YWYuLjNhMmFlOWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9ub3RpZmljYXRpb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvb2JqZWN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvb2JqZWN0LmRhcnQKaW5kZXggNzZiMjM5My4uODI5YTYwZDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9vYmplY3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvb2JqZWN0LmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvc2NyaXB0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvc2NyaXB0LmRhcnQKaW5kZXggMjc0ZmIwOC4uMzczNjY1MSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3NjcmlwdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9zY3JpcHQuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydAppbmRleCA1ZDM1ZDU3Li5kZDlmNjYzIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvc291cmNlX2xvY2F0aW9uLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3RhcmdldC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3RhcmdldC5kYXJ0CmluZGV4IGYyYTE2NTguLmE1ODY3M2YgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy90YXJnZXQuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvdGFyZ2V0LmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvdGltZWxpbmVfZXZlbnQuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy90aW1lbGluZV9ldmVudC5kYXJ0CmluZGV4IDZjYWM2ZDEuLjYxYmY0NDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy90aW1lbGluZV9ldmVudC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvb2JqZWN0cy90aW1lbGluZV9ldmVudC5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3ZtLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL29iamVjdHMvdm0uZGFydAppbmRleCAwNTFhOWZhLi4xMWUzYWY1MSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3ZtLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9vYmplY3RzL3ZtLmRhcnQKQEAgLTEsMTEgKzEsMTYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2RlbHM7CiAKIGFic3RyYWN0IGNsYXNzIFZNUmVmIHsKKyAgLy8vIEEgbmFtZSBpZGVudGlmeWluZyB0aGlzIHZtLiBOb3QgZ3VhcmFudGVlZCB0byBiZSB1bmlxdWUuCiAgIFN0cmluZyBnZXQgbmFtZTsKKworICAvLy8gW05vdCBhY3R1YWxseSBmcm9tIHRoZSBhcGlzXQorICAvLy8gQSBuYW1lIHVzZWQgdG8gaWRlbnRpZnkgdGhlIFZNIGluIHRoZSBVSS4KKyAgU3RyaW5nIGdldCBkaXNwbGF5TmFtZTsKIH0KIAogYWJzdHJhY3QgY2xhc3MgVk0gaW1wbGVtZW50cyBWTVJlZiB7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggNzElCmNvcHkgZnJvbSBydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQKY29weSB0byBydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0CmluZGV4IDhlYjY0YzEuLjM4ODI1NmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2NyYXNoX2R1bXAuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0CkBAIC00LDYgKzQsNyBAQAogCiBwYXJ0IG9mIG1vZGVsczsKIAotYWJzdHJhY3QgY2xhc3MgQ3Jhc2hEdW1wUmVwb3NpdG9yeSB7Ci0gIHZvaWQgbG9hZChNYXApOworYWJzdHJhY3QgY2xhc3MgQ2xhc3NSZXBvc2l0b3J5eworICBGdXR1cmU8Q2xhc3M+IGdldE9iamVjdCgpOworICBGdXR1cmU8Q2xhc3M+IGdldChTdHJpbmcgaWQpOwogfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvZXZlbnQuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UwMDM1OQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQKQEAgLTAsMCArMSwzMyBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitwYXJ0IG9mIG1vZGVsczsKKworYWJzdHJhY3QgY2xhc3MgRXZlbnRSZXBvc2l0b3J5IHsKKyAgU3RyZWFtPEV2ZW50PiBnZXQgb25FdmVudDsKKyAgU3RyZWFtPFZNRXZlbnQ+IGdldCBvblZNRXZlbnQ7CisgIFN0cmVhbTxWTVVwZGF0ZUV2ZW50PiBnZXQgb25WTVVwZGF0ZTsKKyAgU3RyZWFtPElzb2xhdGVFdmVudD4gZ2V0IG9uSXNvbGF0ZUV2ZW50OworICBTdHJlYW08SXNvbGF0ZVN0YXJ0RXZlbnQ+IGdldCBvbklzb2xhdGVTdGFydDsKKyAgU3RyZWFtPElzb2xhdGVSdW5uYWJsZUV2ZW50PiBnZXQgb25Jc29sYXRlUnVubmFibGU7CisgIFN0cmVhbTxJc29sYXRlRXhpdEV2ZW50PiBnZXQgb25Jc29sYXRlRXhpdDsKKyAgU3RyZWFtPElzb2xhdGVVcGRhdGVFdmVudD4gZ2V0IG9uSXNvbGF0ZVVwZGF0ZTsKKyAgU3RyZWFtPElzb2xhdGVSZWxvYWRFdmVudD4gZ2V0IG9uSXNvbGF0ZVJlbG9hZDsKKyAgU3RyZWFtPFNlcnZpY2VFeHRlbnNpb25BZGRlZEV2ZW50PiBnZXQgb25TZXJ2aWNlRXh0ZW5zaW9uQWRkZWQ7CisgIFN0cmVhbTxEZWJ1Z0V2ZW50PiBnZXQgb25EZWJ1Z0V2ZW50OworICBTdHJlYW08UGF1c2VTdGFydEV2ZW50PiBnZXQgb25QYXVzZVN0YXJ0OworICBTdHJlYW08UGF1c2VFeGl0RXZlbnQ+IGdldCBvblBhdXNlRXhpdDsKKyAgU3RyZWFtPFBhdXNlQnJlYWtwb2ludEV2ZW50PiBnZXQgb25QYXVzZUJyZWFrcG9pbnQ7CisgIFN0cmVhbTxQYXVzZUludGVycnVwdGVkRXZlbnQ+IGdldCBvblBhdXNlSW50ZXJydXB0ZWQ7CisgIFN0cmVhbTxQYXVzZUV4Y2VwdGlvbkV2ZW50PiBnZXQgb25QYXVzZUV4Y2VwdGlvbjsKKyAgU3RyZWFtPFJlc3VtZUV2ZW50PiBnZXQgb25SZXN1bWU7CisgIFN0cmVhbTxCcmVha3BvaW50QWRkZWRFdmVudD4gZ2V0IG9uQnJlYWtwb2ludEFkZGVkOworICBTdHJlYW08QnJlYWtwb2ludFJlc29sdmVkRXZlbnQ+IGdldCBvbkJyZWFrcG9pbnRSZXNvbHZlZDsKKyAgU3RyZWFtPEJyZWFrcG9pbnRSZW1vdmVkRXZlbnQ+IGdldCBvbkJyZWFrcG9pbnRSZW1vdmVkOworICBTdHJlYW08SW5zcGVjdEV2ZW50PiBnZXQgb25JbnNwZWN0OworICBTdHJlYW08R0NFdmVudD4gZ2V0IG9uR0NFdmVudDsKKyAgU3RyZWFtPEV4dGVuc2lvbkV2ZW50PiBnZXQgb25FeHRlbnNpb25FdmVudDsKKyAgU3RyZWFtPFRpbWVsaW5lRXZlbnRzRXZlbnQ+IGdldCBvblRpbWVsaW5lRXZlbnRzOworICBTdHJlYW08Q29ubmVjdGlvbkNsb3NlZEV2ZW50PiBnZXQgb25Db25uZWN0aW9uQ2xvc2VkOworfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvZmxhZy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvZmxhZy5kYXJ0CmluZGV4IDJiZGMwMTguLjM1OGI5MzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQKQEAgLTUsNSArNSw1IEBACiBwYXJ0IG9mIG1vZGVsczsKIAogYWJzdHJhY3QgY2xhc3MgRmxhZ3NSZXBvc2l0b3J5IHsKLSAgRnV0dXJlPEl0ZXJhYmxlPEZsYWc+PiBsaXN0KFZNUmVmIHZtKTsKKyAgRnV0dXJlPEl0ZXJhYmxlPEZsYWc+PiBsaXN0KCk7CiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9pbnN0YW5jZS5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggNzYlCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2NyYXNoX2R1bXAuZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvaW5zdGFuY2UuZGFydAppbmRleCA4ZWI2NGMxLi4zZjk4MDE4IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvaW5zdGFuY2UuZGFydApAQCAtNCw2ICs0LDYgQEAKIAogcGFydCBvZiBtb2RlbHM7CiAKLWFic3RyYWN0IGNsYXNzIENyYXNoRHVtcFJlcG9zaXRvcnkgewotICB2b2lkIGxvYWQoTWFwKTsKK2Fic3RyYWN0IGNsYXNzIEluc3RhbmNlUmVwb3NpdG9yeXsKKyAgRnV0dXJlPEluc3RhbmNlPiBnZXQoU3RyaW5nIGlkKTsKIH0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKaW5kZXggOWFiMzU0My4uODE2YmYwNCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9kZWxzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9zY3JpcHQuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0CmluZGV4IGUzYjU0YWQuLjMwNzNjMmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0CkBAIC00LDQgKzQsNiBAQAogCiBwYXJ0IG9mIG1vZGVsczsKIAotYWJzdHJhY3QgY2xhc3MgU2NyaXB0UmVwb3NpdG9yeSBleHRlbmRzIFJlcG9zaXRvcnk8U2NyaXB0LCBTdHJpbmc+IHt9CithYnN0cmFjdCBjbGFzcyBTY3JpcHRSZXBvc2l0b3J5IHsKKyAgRnV0dXJlPFNjcmlwdD4gZ2V0KFN0cmluZyBpZCk7Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0CmluZGV4IDhkZjI5Y2EuLjRkMjc2ZjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vZGVsczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vZGVscy9yZXBvc2l0b3J5LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcnkuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFlYzFmZC4uMDAwMDAwMAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcnkuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1wYXJ0IG9mIG1vZGVsczsKLQotYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxPYmplY3RULCBEZXNjcmlwdG9yVD4gewotICBGdXR1cmU8T2JqZWN0VD4gZ2V0KERlc2NyaXB0b3JUIGlkKTsKLX0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTFjMzYzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0CkBAIC0wLDAgKzEsMTggQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorCitwYXJ0IG9mIHJlcG9zaXRvcmllczsKKworY2xhc3MgQ2xhc3NSZXBvc2l0b3J5IGV4dGVuZHMgTS5DbGFzc1JlcG9zaXRvcnkgeworICBmaW5hbCBTLklzb2xhdGUgaXNvbGF0ZTsKKworICBDbGFzc1JlcG9zaXRvcnkodGhpcy5pc29sYXRlKTsKKworICBGdXR1cmU8TS5DbGFzcz4gZ2V0T2JqZWN0KCkgeworICAgIHJldHVybiBpc29sYXRlLmdldENsYXNzSGllcmFyY2h5KCk7CisgIH0KKyAgRnV0dXJlPE0uQ2xhc3M+IGdldChTdHJpbmcgaWQpIGFzeW5jIHsKKyAgICByZXR1cm4gKGF3YWl0IGlzb2xhdGUuZ2V0T2JqZWN0KGlkKSkgYXMgUy5DbGFzczsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9ldmVudC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9ldmVudC5kYXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MzAwZTkKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQKQEAgLTAsMCArMSw4OSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitwYXJ0IG9mIHJlcG9zaXRvcmllczsKKworY2xhc3MgRXZlbnRSZXBvc2l0b3J5IGltcGxlbWVudHMgTS5FdmVudFJlcG9zaXRvcnkgeworICBmaW5hbCBTdHJlYW1Db250cm9sbGVyPE0uRXZlbnQ+IF9vbkV2ZW50OworICBTdHJlYW08TS5FdmVudD4gZ2V0IG9uRXZlbnQgPT4gX29uRXZlbnQuc3RyZWFtOworCisgIGZpbmFsIFN0cmVhbTxNLlZNRXZlbnQ+IG9uVk1FdmVudDsKKyAgZmluYWwgU3RyZWFtPE0uVk1VcGRhdGVFdmVudD4gb25WTVVwZGF0ZTsKKyAgZmluYWwgU3RyZWFtPE0uSXNvbGF0ZUV2ZW50PiBvbklzb2xhdGVFdmVudDsKKyAgZmluYWwgU3RyZWFtPE0uSXNvbGF0ZVN0YXJ0RXZlbnQ+IG9uSXNvbGF0ZVN0YXJ0OworICBmaW5hbCBTdHJlYW08TS5Jc29sYXRlUnVubmFibGVFdmVudD4gb25Jc29sYXRlUnVubmFibGU7CisgIGZpbmFsIFN0cmVhbTxNLklzb2xhdGVFeGl0RXZlbnQ+IG9uSXNvbGF0ZUV4aXQ7CisgIGZpbmFsIFN0cmVhbTxNLklzb2xhdGVVcGRhdGVFdmVudD4gb25Jc29sYXRlVXBkYXRlOworICBmaW5hbCBTdHJlYW08TS5Jc29sYXRlUmVsb2FkRXZlbnQ+IG9uSXNvbGF0ZVJlbG9hZDsKKyAgZmluYWwgU3RyZWFtPE0uU2VydmljZUV4dGVuc2lvbkFkZGVkRXZlbnQ+IG9uU2VydmljZUV4dGVuc2lvbkFkZGVkOworICBmaW5hbCBTdHJlYW08TS5EZWJ1Z0V2ZW50PiBvbkRlYnVnRXZlbnQ7CisgIGZpbmFsIFN0cmVhbTxNLlBhdXNlU3RhcnRFdmVudD4gb25QYXVzZVN0YXJ0OworICBmaW5hbCBTdHJlYW08TS5QYXVzZUV4aXRFdmVudD4gb25QYXVzZUV4aXQ7CisgIGZpbmFsIFN0cmVhbTxNLlBhdXNlQnJlYWtwb2ludEV2ZW50PiBvblBhdXNlQnJlYWtwb2ludDsKKyAgZmluYWwgU3RyZWFtPE0uUGF1c2VJbnRlcnJ1cHRlZEV2ZW50PiBvblBhdXNlSW50ZXJydXB0ZWQ7CisgIGZpbmFsIFN0cmVhbTxNLlBhdXNlRXhjZXB0aW9uRXZlbnQ+IG9uUGF1c2VFeGNlcHRpb247CisgIGZpbmFsIFN0cmVhbTxNLlJlc3VtZUV2ZW50PiBvblJlc3VtZTsKKyAgZmluYWwgU3RyZWFtPE0uQnJlYWtwb2ludEFkZGVkRXZlbnQ+IG9uQnJlYWtwb2ludEFkZGVkOworICBmaW5hbCBTdHJlYW08TS5CcmVha3BvaW50UmVzb2x2ZWRFdmVudD4gb25CcmVha3BvaW50UmVzb2x2ZWQ7CisgIGZpbmFsIFN0cmVhbTxNLkJyZWFrcG9pbnRSZW1vdmVkRXZlbnQ+IG9uQnJlYWtwb2ludFJlbW92ZWQ7CisgIGZpbmFsIFN0cmVhbTxNLkluc3BlY3RFdmVudD4gb25JbnNwZWN0OworICBmaW5hbCBTdHJlYW08TS5HQ0V2ZW50PiBvbkdDRXZlbnQ7CisgIGZpbmFsIFN0cmVhbTxNLkV4dGVuc2lvbkV2ZW50PiBvbkV4dGVuc2lvbkV2ZW50OworICBmaW5hbCBTdHJlYW08TS5UaW1lbGluZUV2ZW50c0V2ZW50PiBvblRpbWVsaW5lRXZlbnRzOworICBmaW5hbCBTdHJlYW08TS5Db25uZWN0aW9uQ2xvc2VkRXZlbnQ+IG9uQ29ubmVjdGlvbkNsb3NlZDsKKworICBFdmVudFJlcG9zaXRvcnkoKSA6IHRoaXMuXyhuZXcgU3RyZWFtQ29udHJvbGxlci5icm9hZGNhc3QoKSk7CisKKyAgRXZlbnRSZXBvc2l0b3J5Ll8oU3RyZWFtQ29udHJvbGxlciBjb250cm9sbGVyKSA6IHRoaXMuX18oY29udHJvbGxlciwKKyAgICAgIGNvbnRyb2xsZXIuc3RyZWFtLndoZXJlKChlKSA9PiBlIGlzIE0uVk1FdmVudCksCisgICAgICBjb250cm9sbGVyLnN0cmVhbS53aGVyZSgoZSkgPT4gZSBpcyBNLklzb2xhdGVFdmVudCksCisgICAgICBjb250cm9sbGVyLnN0cmVhbS53aGVyZSgoZSkgPT4gZSBpcyBNLkRlYnVnRXZlbnQpLAorICAgICAgY29udHJvbGxlci5zdHJlYW0ud2hlcmUoKGUpID0+IGUgaXMgTS5HQ0V2ZW50KSwKKyAgICAgIGNvbnRyb2xsZXIuc3RyZWFtLndoZXJlKChlKSA9PiBlIGlzIE0uRXh0ZW5zaW9uRXZlbnQpLAorICAgICAgY29udHJvbGxlci5zdHJlYW0ud2hlcmUoKGUpID0+IGUgaXMgTS5UaW1lbGluZUV2ZW50c0V2ZW50KSwKKyAgICAgIGNvbnRyb2xsZXIuc3RyZWFtLndoZXJlKChlKSA9PiBlIGlzIE0uQ29ubmVjdGlvbkNsb3NlZEV2ZW50KSk7CisKKyAgRXZlbnRSZXBvc2l0b3J5Ll9fKFN0cmVhbUNvbnRyb2xsZXIgY29udHJvbGxlciwKKyAgICBTdHJlYW08TS5WTUV2ZW50PiBvblZNRXZlbnQsIFN0cmVhbTxNLklzb2xhdGVFdmVudD4gb25Jc29sYXRlRXZlbnQsCisgICAgU3RyZWFtPE0uRGVidWdFdmVudD4gb25EZWJ1Z0V2ZW50LCBTdHJlYW08TS5HQ0V2ZW50PiBvbkdDRXZlbnQsCisgICAgU3RyZWFtPE0uRXh0ZW5zaW9uRXZlbnQ+IG9uRXh0ZW5zaW9uRXZlbnQsCisgICAgU3RyZWFtPE0uVGltZWxpbmVFdmVudHNFdmVudD4gb25UaW1lbGluZUV2ZW50cywKKyAgICBTdHJlYW08TS5Db25uZWN0aW9uQ2xvc2VkRXZlbnQ+IG9uQ29ubmVjdGlvbkNsb3NlZCkKKyAgICA6IF9vbkV2ZW50ID0gY29udHJvbGxlciwKKyAgICAgIG9uVk1FdmVudCA9IG9uVk1FdmVudCwKKyAgICAgIG9uVk1VcGRhdGUgPSBvblZNRXZlbnQud2hlcmUoKGUpID0+IGUgaXMgTS5WTVVwZGF0ZUV2ZW50KSwKKyAgICAgIG9uSXNvbGF0ZUV2ZW50ID0gb25Jc29sYXRlRXZlbnQsCisgICAgICBvbklzb2xhdGVTdGFydCA9IG9uSXNvbGF0ZUV2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uSXNvbGF0ZVN0YXJ0RXZlbnQpLAorICAgICAgb25Jc29sYXRlUnVubmFibGUgPQorICAgICAgICAgIG9uSXNvbGF0ZUV2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uSXNvbGF0ZVJ1bm5hYmxlRXZlbnQpLAorICAgICAgb25Jc29sYXRlRXhpdCA9IG9uSXNvbGF0ZUV2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uSXNvbGF0ZUV4aXRFdmVudCksCisgICAgICBvbklzb2xhdGVVcGRhdGUgPSBvbklzb2xhdGVFdmVudC53aGVyZSgoZSkgPT4gZSBpcyBNLklzb2xhdGVVcGRhdGVFdmVudCksCisgICAgICBvbklzb2xhdGVSZWxvYWQgPSBvbklzb2xhdGVFdmVudC53aGVyZSgoZSkgPT4gZSBpcyBNLklzb2xhdGVSZWxvYWRFdmVudCksCisgICAgICBvblNlcnZpY2VFeHRlbnNpb25BZGRlZCA9CisgICAgICAgICAgb25Jc29sYXRlRXZlbnQud2hlcmUoKGUpID0+IGUgaXMgTS5Jc29sYXRlUmVsb2FkRXZlbnQpLAorICAgICAgb25EZWJ1Z0V2ZW50ID0gb25EZWJ1Z0V2ZW50LAorICAgICAgb25QYXVzZVN0YXJ0ID0gb25EZWJ1Z0V2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uUGF1c2VTdGFydEV2ZW50KSwKKyAgICAgIG9uUGF1c2VFeGl0ID0gb25EZWJ1Z0V2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uUGF1c2VFeGl0RXZlbnQpLAorICAgICAgb25QYXVzZUJyZWFrcG9pbnQgPQorICAgICAgICAgIG9uRGVidWdFdmVudC53aGVyZSgoZSkgPT4gZSBpcyBNLlBhdXNlQnJlYWtwb2ludEV2ZW50KSwKKyAgICAgIG9uUGF1c2VJbnRlcnJ1cHRlZCA9CisgICAgICAgICAgb25EZWJ1Z0V2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uUGF1c2VJbnRlcnJ1cHRlZEV2ZW50KSwKKyAgICAgIG9uUGF1c2VFeGNlcHRpb24gPSBvbkRlYnVnRXZlbnQud2hlcmUoKGUpID0+IGUgaXMgTS5QYXVzZUV4Y2VwdGlvbkV2ZW50KSwKKyAgICAgIG9uUmVzdW1lID0gb25EZWJ1Z0V2ZW50LndoZXJlKChlKSA9PiBlIGlzIE0uUmVzdW1lRXZlbnQpLAorICAgICAgb25CcmVha3BvaW50QWRkZWQgPQorICAgICAgICAgIG9uRGVidWdFdmVudC53aGVyZSgoZSkgPT4gZSBpcyBNLkJyZWFrcG9pbnRBZGRlZEV2ZW50KSwKKyAgICAgIG9uQnJlYWtwb2ludFJlc29sdmVkID0KKyAgICAgICAgICBvbkRlYnVnRXZlbnQud2hlcmUoKGUpID0+IGUgaXMgTS5CcmVha3BvaW50UmVzb2x2ZWRFdmVudCksCisgICAgICBvbkJyZWFrcG9pbnRSZW1vdmVkID0KKyAgICAgICAgICBvbkRlYnVnRXZlbnQud2hlcmUoKGUpID0+IGUgaXMgTS5CcmVha3BvaW50UmVtb3ZlZEV2ZW50KSwKKyAgICAgIG9uSW5zcGVjdCA9IG9uRGVidWdFdmVudC53aGVyZSgoZSkgPT4gZSBpcyBNLkluc3BlY3RFdmVudCksCisgICAgICBvbkdDRXZlbnQgPSBvbkdDRXZlbnQsCisgICAgICBvbkV4dGVuc2lvbkV2ZW50ID0gb25FeHRlbnNpb25FdmVudCwKKyAgICAgIG9uVGltZWxpbmVFdmVudHMgPSBvblRpbWVsaW5lRXZlbnRzLAorICAgICAgb25Db25uZWN0aW9uQ2xvc2VkID0gb25Db25uZWN0aW9uQ2xvc2VkOworCisgIHZvaWQgYWRkKE0uRXZlbnQgZSkgeworICAgIF9vbkV2ZW50LmFkZChlKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydAppbmRleCA5YTY0NGU2Li4wMDcyYzBlIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydApAQCAtMTcsMTIgKzE3LDEzIEBACiB9CiAKIGNsYXNzIEZsYWdzUmVwb3NpdG9yeSBpbXBsZW1lbnRzIE0uRmxhZ3NSZXBvc2l0b3J5IHsKLSAgRnV0dXJlPEl0ZXJhYmxlPEZsYWc+PiBsaXN0KE0uVk0gdm0pIGFzeW5jewotICAgIGlmICh2bSBpcyBTLlZNKSB7Ci0gICAgICBMaXN0PE1hcD4gZmxhZ3MgPSAoKGF3YWl0IHZtLmdldEZsYWdMaXN0KCkpIGFzIFMuU2VydmljZU1hcClbJ2ZsYWdzJ107Ci0gICAgICByZXR1cm4gZmxhZ3MubWFwKF90b0ZsYWcpOwotICAgIH0KLSAgICByZXR1cm4gY29uc3QgW107CisgIGZpbmFsIFMuVk0gdm07CisKKyAgRmxhZ3NSZXBvc2l0b3J5KHRoaXMudm0pOworCisgIEZ1dHVyZTxJdGVyYWJsZTxGbGFnPj4gbGlzdCgpIGFzeW5jeworICAgIExpc3Q8TWFwPiBmbGFncyA9ICgoYXdhaXQgdm0uZ2V0RmxhZ0xpc3QoKSkgYXMgUy5TZXJ2aWNlTWFwKVsnZmxhZ3MnXTsKKyAgICByZXR1cm4gZmxhZ3MubWFwKF90b0ZsYWcpOwogICB9CiAKICAgc3RhdGljIF90b0ZsYWcoTWFwIG1hcCl7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2luc3RhbmNlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL2luc3RhbmNlLmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzZmUyYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvaW5zdGFuY2UuZGFydApAQCAtMCwwICsxLDE1IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQorLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKworcGFydCBvZiByZXBvc2l0b3JpZXM7CisKK2NsYXNzIEluc3RhbmNlUmVwb3NpdG9yeSBleHRlbmRzIE0uSW5zdGFuY2VSZXBvc2l0b3J5IHsKKyAgZmluYWwgUy5Jc29sYXRlIGlzb2xhdGU7CisKKyAgSW5zdGFuY2VSZXBvc2l0b3J5KHRoaXMuaXNvbGF0ZSk7CisKKyAgRnV0dXJlPE0uSW5zdGFuY2U+IGdldChTdHJpbmcgaWQpIGFzeW5jeworICAgIHJldHVybiAoYXdhaXQgaXNvbGF0ZS5nZXRPYmplY3QoaWQpKSBhcyBTLkluc3RhbmNlOworICB9Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9ub3RpZmljYXRpb24uZGFydAppbmRleCAzNDhkYmNhLi44MGMyNWYyIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgcmVwb3NpdG9yaWVzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL3NldHRpbmdzLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL3NldHRpbmdzLmRhcnQKaW5kZXggNzcxYzQ4ZS4uNDEyMWQ5MyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy9zZXR0aW5ncy5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvc2V0dGluZ3MuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiByZXBvc2l0b3JpZXM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0CmluZGV4IDY5YmE4YzguLmI5YjJlNjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiByZXBvc2l0b3JpZXM7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9zZXJ2aWNlL29iamVjdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3NlcnZpY2Uvb2JqZWN0LmRhcnQKaW5kZXggZDJmNDRkOS4uYWZkOTI0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3NlcnZpY2Uvb2JqZWN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL3NlcnZpY2Uvb2JqZWN0LmRhcnQKQEAgLTkyNyw2ICs5MjcsOCBAQAogfQogCiBjbGFzcyBGYWtlVk0gZXh0ZW5kcyBWTSB7CisgIFN0cmluZyBnZXQgZGlzcGxheU5hbWUgPT4gbmFtZTsKKwogICBmaW5hbCBNYXAgX3Jlc3BvbnNlcyA9IHt9OwogICBGYWtlVk0oTWFwIHJlc3BvbnNlcykgewogICAgIGlmIChyZXNwb25zZXMgPT0gbnVsbCkgewpAQCAtMTg1MSwxNiArMTg1MywyOSBAQAogICBTdHJpbmcgdG9TdHJpbmcoKSA9PiAiU2VydmljZU1hcCgkX21hcCkiOwogfQogCitNLkVycm9yS2luZCBzdHJpbmdUb0Vycm9yS2luZChTdHJpbmcgdmFsdWUpIHsKKyAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2FzZSAnVW5oYW5kbGVkRXhjZXB0aW9uJzogcmV0dXJuIE0uRXJyb3JLaW5kLlVuaGFuZGxlZEV4Y2VwdGlvbjsKKyAgICBjYXNlICdMYW5ndWFnZUVycm9yJzogcmV0dXJuIE0uRXJyb3JLaW5kLlVuaGFuZGxlZEV4Y2VwdGlvbjsKKyAgICBjYXNlICdJbnRlcm5hbEVycm9yJzogcmV0dXJuIE0uRXJyb3JLaW5kLkludGVybmFsRXJyb3I7CisgICAgY2FzZSAnVGVybWluYXRpb25FcnJvcic6IHJldHVybiBNLkVycm9yS2luZC5UZXJtaW5hdGlvbkVycm9yOworICB9CisgIExvZ2dlci5yb290LnNldmVyZSgnVW5yZWNvZ25pemVkIGVycm9yIGtpbmQ6ICR2YWx1ZScpOworICB0aHJvdyBuZXcgRmFsbFRocm91Z2hFcnJvcigpOworfQorCiAvLy8gQSBbRGFydEVycm9yXSBpcyBwZWVyZWQgdG8gYSBEYXJ0IEVycm9yIG9iamVjdC4KLWNsYXNzIERhcnRFcnJvciBleHRlbmRzIFNlcnZpY2VPYmplY3QgeworY2xhc3MgRGFydEVycm9yIGV4dGVuZHMgU2VydmljZU9iamVjdCBpbXBsZW1lbnRzIE0uRXJyb3IgewogICBEYXJ0RXJyb3IuX2VtcHR5KFNlcnZpY2VPYmplY3Qgb3duZXIpIDogc3VwZXIuX2VtcHR5KG93bmVyKTsKIAorICBNLkVycm9yS2luZCBraW5kOwogICBAb2JzZXJ2YWJsZSBTdHJpbmcgbWVzc2FnZTsKICAgQG9ic2VydmFibGUgSW5zdGFuY2UgZXhjZXB0aW9uOwogICBAb2JzZXJ2YWJsZSBJbnN0YW5jZSBzdGFja3RyYWNlOwogCiAgIHZvaWQgX3VwZGF0ZShPYnNlcnZhYmxlTWFwIG1hcCwgYm9vbCBtYXBJc1JlZikgewogICAgIG1lc3NhZ2UgPSBtYXBbJ21lc3NhZ2UnXTsKKyAgICBraW5kID0gc3RyaW5nVG9FcnJvcktpbmQobWFwWydraW5kJ10pOwogICAgIGV4Y2VwdGlvbiA9IG5ldyBTZXJ2aWNlT2JqZWN0Ll9mcm9tTWFwKG93bmVyLCBtYXBbJ2V4Y2VwdGlvbiddKTsKICAgICBzdGFja3RyYWNlID0gbmV3IFNlcnZpY2VPYmplY3QuX2Zyb21NYXAob3duZXIsIG1hcFsnc3RhY2t0cmFjZSddKTsKICAgICBuYW1lID0gJ0RhcnRFcnJvcigkbWVzc2FnZSknOwpAQCAtMTkxNiwxMyArMTkzMSwxNSBAQAogCiAgIEBvYnNlcnZhYmxlIFN0cmluZyBraW5kOwogICBAb2JzZXJ2YWJsZSBEYXRlVGltZSB0aW1lc3RhbXA7CisgIExpc3Q8TS5CcmVha3BvaW50PiBwYXVzZUJyZWFrcG9pbnRzOwogICBAb2JzZXJ2YWJsZSBCcmVha3BvaW50IGJyZWFrcG9pbnQ7CiAgIEBvYnNlcnZhYmxlIEZyYW1lIHRvcEZyYW1lOworICBAb2JzZXJ2YWJsZSBEYXJ0RXJyb3IgZXJyb3I7CiAgIEBvYnNlcnZhYmxlIFN0cmluZyBleHRlbnNpb25SUEM7CiAgIEBvYnNlcnZhYmxlIEluc3RhbmNlIGV4Y2VwdGlvbjsKICAgQG9ic2VydmFibGUgSW5zdGFuY2UgcmVsb2FkRXJyb3I7CiAgIEBvYnNlcnZhYmxlIGJvb2wgYXRBc3luY1N1c3BlbnNpb247Ci0gIEBvYnNlcnZhYmxlIFNlcnZpY2VPYmplY3QgaW5zcGVjdGVlOworICBAb2JzZXJ2YWJsZSBJbnN0YW5jZSBpbnNwZWN0ZWU7CiAgIEBvYnNlcnZhYmxlIEJ5dGVEYXRhIGRhdGE7CiAgIEBvYnNlcnZhYmxlIGludCBjb3VudDsKICAgQG9ic2VydmFibGUgU3RyaW5nIHJlYXNvbjsKQEAgLTE5NjAsMTMgKzE5NzcsMTYgQEAKICAgICBpZiAobWFwWydicmVha3BvaW50J10gIT0gbnVsbCkgewogICAgICAgYnJlYWtwb2ludCA9IG1hcFsnYnJlYWtwb2ludCddOwogICAgIH0KLSAgICAvLyBUT0RPKHR1cm5pZGdlKTogRXhwb3NlIHRoZSBmdWxsIGxpc3Qgb2YgYnJlYWtwb2ludHMuICBGb3Igbm93Ci0gICAgLy8gd2UganVzdCBwcmV0ZW5kIGxpa2UgdGhlcmUgaXMgb25seSBvbmUgYWN0aXZlIGJyZWFrcG9pbnQuCiAgICAgaWYgKG1hcFsncGF1c2VCcmVha3BvaW50cyddICE9IG51bGwpIHsKLSAgICAgIHZhciBwYXVzZUJwdHMgPSBtYXBbJ3BhdXNlQnJlYWtwb2ludHMnXTsKLSAgICAgIGlmIChwYXVzZUJwdHMubGVuZ3RoID4gMCkgewotICAgICAgICBicmVha3BvaW50ID0gcGF1c2VCcHRzWzBdOworICAgICAgcGF1c2VCcmVha3BvaW50cyA9IG1hcFsncGF1c2VCcmVha3BvaW50cyddOworICAgICAgaWYgKHBhdXNlQnJlYWtwb2ludHMubGVuZ3RoID4gMCkgeworICAgICAgICBicmVha3BvaW50ID0gcGF1c2VCcmVha3BvaW50c1swXTsKICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgcGF1c2VCcmVha3BvaW50cyA9IGNvbnN0IFtdOworICAgIH0KKyAgICBpZiAobWFwWydlcnJvciddICE9IG51bGwpIHsKKyAgICAgIGVycm9yID0gbWFwWydlcnJvciddOwogICAgIH0KICAgICBpZiAobWFwWydleHRlbnNpb25SUEMnXSAhPSBudWxsKSB7CiAgICAgICBleHRlbnNpb25SUEMgPSBtYXBbJ2V4dGVuc2lvblJQQyddOwpAQCAtMjIzMiw3ICsyMjUyLDcgQEAKICAgYm9vbCBnZXQgZW1wdHkgPT4gYWNjdW11bGF0ZWQuZW1wdHkgJiYgY3VycmVudC5lbXB0eTsKIH0KIAotY2xhc3MgQ2xhc3MgZXh0ZW5kcyBIZWFwT2JqZWN0IGltcGxlbWVudHMgTS5DbGFzc1JlZiB7CitjbGFzcyBDbGFzcyBleHRlbmRzIEhlYXBPYmplY3QgaW1wbGVtZW50cyBNLkNsYXNzIHsKICAgQG9ic2VydmFibGUgTGlicmFyeSBsaWJyYXJ5OwogCiAgIEBvYnNlcnZhYmxlIGJvb2wgaXNBYnN0cmFjdDsKQEAgLTIyNDMsNyArMjI2Myw3IEBACiAKICAgQG9ic2VydmFibGUgU291cmNlTG9jYXRpb24gbG9jYXRpb247CiAKLSAgQG9ic2VydmFibGUgU2VydmljZU1hcCBlcnJvcjsKKyAgQG9ic2VydmFibGUgRGFydEVycm9yIGVycm9yOwogICBAb2JzZXJ2YWJsZSBpbnQgdm1DaWQ7CiAKICAgZmluYWwgQWxsb2NhdGlvbnMgbmV3U3BhY2UgPSBuZXcgQWxsb2NhdGlvbnMoKTsKQEAgLTIzNzAsNyArMjM5MCw3IEBACiAgIFN0cmluZyB0b1N0cmluZygpID0+ICdDbGFzcygkdm1OYW1lKSc7CiB9CiAKLWNsYXNzIEluc3RhbmNlIGV4dGVuZHMgSGVhcE9iamVjdCB7CitjbGFzcyBJbnN0YW5jZSBleHRlbmRzIEhlYXBPYmplY3QgaW1wbGVtZW50cyBNLkluc3RhbmNlIHsKICAgQG9ic2VydmFibGUgU3RyaW5nIGtpbmQ7CiAgIEBvYnNlcnZhYmxlIFN0cmluZyB2YWx1ZUFzU3RyaW5nOyAgLy8gSWYgcHJpbWl0aXZlLgogICBAb2JzZXJ2YWJsZSBib29sIHZhbHVlQXNTdHJpbmdJc1RydW5jYXRlZDsKQEAgLTI0NjksNyArMjQ4OSw3IEBACiAgIEluc3RhbmNlLl9lbXB0eShTZXJ2aWNlT2JqZWN0T3duZXIgb3duZXIpIDogc3VwZXIuX2VtcHR5KG93bmVyKTsKIAogICB2b2lkIF91cGRhdGUoT2JzZXJ2YWJsZU1hcCBtYXAsIGJvb2wgbWFwSXNSZWYpIHsKLSAgICAvLyBFeHRyYWN0IGZ1bGwgcHJvcGVydGllcy4KKyAgICAvLyBFeHRyYWN0IGZ1bGwgcHJvcGVydGllcy4xCiAgICAgX3VwZ3JhZGVDb2xsZWN0aW9uKG1hcCwgaXNvbGF0ZSk7CiAgICAgc3VwZXIuX3VwZGF0ZShtYXAsIG1hcElzUmVmKTsKIApAQCAtMjQ4Miw2ICsyNTAyLDcgQEAKICAgICBuYW1lID0gbWFwWyduYW1lJ107CiAgICAgbGVuZ3RoID0gbWFwWydsZW5ndGgnXTsKICAgICBwYXR0ZXJuID0gbWFwWydwYXR0ZXJuJ107CisgICAgdHlwZUNsYXNzID0gbWFwWyd0eXBlQ2xhc3MnXTsKIAogICAgIGlmIChtYXBJc1JlZikgewogICAgICAgcmV0dXJuOwpAQCAtMjUzNCw3ICsyNTU1LDYgQEAKICAgICAgICAgICB0eXBlZEVsZW1lbnRzID0gYnl0ZXMuYnVmZmVyLmFzRmxvYXQ2NHgyTGlzdCgpOyBicmVhazsKICAgICAgIH0KICAgICB9Ci0gICAgdHlwZUNsYXNzID0gbWFwWyd0eXBlQ2xhc3MnXTsKICAgICBwYXJhbWV0ZXJpemVkQ2xhc3MgPSBtYXBbJ3BhcmFtZXRlcml6ZWRDbGFzcyddOwogICAgIHR5cGVBcmd1bWVudHMgPSBtYXBbJ3R5cGVBcmd1bWVudHMnXTsKICAgICBwYXJhbWV0ZXJJbmRleCA9IG1hcFsncGFyYW1ldGVySW5kZXgnXTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvb2JzZXJ2YXRvcnlfc291cmNlcy5neXBpIGIvcnVudGltZS9vYnNlcnZhdG9yeS9vYnNlcnZhdG9yeV9zb3VyY2VzLmd5cGkKaW5kZXggYWRmMWMyNi4uZmU4OTg1NSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9vYnNlcnZhdG9yeV9zb3VyY2VzLmd5cGkKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS9vYnNlcnZhdG9yeV9zb3VyY2VzLmd5cGkKQEAgLTExLDcgKzExLDYgQEAKICAgICAnbGliL2RlYnVnZ2VyLmRhcnQnLAogICAgICdsaWIvZWxlbWVudHMuZGFydCcsCiAgICAgJ2xpYi9lbGVtZW50cy5odG1sJywKLSAgICAnbGliL21vY2tzLmRhcnQnLAogICAgICdsaWIvbW9kZWxzLmRhcnQnLAogICAgICdsaWIvb2JqZWN0X2dyYXBoLmRhcnQnLAogICAgICdsaWIvcmVwb3NpdG9yaWVzLmRhcnQnLApAQCAtMjEsNiArMjAsNyBAQAogICAgICdsaWIvc2VydmljZV9pby5kYXJ0JywKICAgICAnbGliL3NyYy9hcHAvYW5hbHl0aWNzLmRhcnQnLAogICAgICdsaWIvc3JjL2FwcC9hcHBsaWNhdGlvbi5kYXJ0JywKKyAgICAnbGliL3NyYy9hcHAvZXZlbnQuZGFydCcsCiAgICAgJ2xpYi9zcmMvYXBwL2xvY2F0aW9uX21hbmFnZXIuZGFydCcsCiAgICAgJ2xpYi9zcmMvYXBwL25vdGlmaWNhdGlvbi5kYXJ0JywKICAgICAnbGliL3NyYy9hcHAvcGFnZS5kYXJ0JywKQEAgLTM3LDcgKzM3LDYgQEAKICAgICAnbGliL3NyYy9lbGVtZW50cy9jbGFzc19yZWZfYXNfdmFsdWUuZGFydCcsCiAgICAgJ2xpYi9zcmMvZWxlbWVudHMvY2xhc3NfcmVmX2FzX3ZhbHVlLmh0bWwnLAogICAgICdsaWIvc3JjL2VsZW1lbnRzL2NsYXNzX3RyZWUuZGFydCcsCi0gICAgJ2xpYi9zcmMvZWxlbWVudHMvY2xhc3NfdHJlZS5odG1sJywKICAgICAnbGliL3NyYy9lbGVtZW50cy9jbGFzc192aWV3LmRhcnQnLAogICAgICdsaWIvc3JjL2VsZW1lbnRzL2NsYXNzX3ZpZXcuaHRtbCcsCiAgICAgJ2xpYi9zcmMvZWxlbWVudHMvY29kZV9yZWYuZGFydCcsCkBAIC0xNzgsMjUgKzE3Nyw2IEBACiAgICAgJ2xpYi9zcmMvZWxlbWVudHMvdm1fY29ubmVjdC5kYXJ0JywKICAgICAnbGliL3NyYy9lbGVtZW50cy92bV92aWV3LmRhcnQnLAogICAgICdsaWIvc3JjL2VsZW1lbnRzL3ZtX3ZpZXcuaHRtbCcsCi0gICAgJ2xpYi9zcmMvbW9ja3MvZXhjZXB0aW9ucy9jb25uZWN0aW9uX2V4Y2VwdGlvbi5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL29iamVjdHMvY29kZS5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL2Vycm9yLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL29iamVjdHMvZXZlbnQuZGFydCcsCi0gICAgJ2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9mbGFnLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL29iamVjdHMvZnVuY3Rpb24uZGFydCcsCi0gICAgJ2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9pc29sYXRlLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL29iamVjdHMvbGlicmFyeS5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL25vdGlmaWNhdGlvbi5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL3RhcmdldC5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9vYmplY3RzL3ZtLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9jcmFzaF9kdW1wLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQnLAotICAgICdsaWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9zY3JpcHQuZGFydCcsCi0gICAgJ2xpYi9zcmMvbW9ja3MvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9leGNlcHRpb25zLmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9vYmplY3RzL2JyZWFrcG9pbnQuZGFydCcsCiAgICAgJ2xpYi9zcmMvbW9kZWxzL29iamVjdHMvY2xhc3MuZGFydCcsCkBAIC0yMTcsMTMgKzE5NywxNyBAQAogICAgICdsaWIvc3JjL21vZGVscy9vYmplY3RzL3RhcmdldC5kYXJ0JywKICAgICAnbGliL3NyYy9tb2RlbHMvb2JqZWN0cy90aW1lbGluZV9ldmVudC5kYXJ0JywKICAgICAnbGliL3NyYy9tb2RlbHMvb2JqZWN0cy92bS5kYXJ0JywKLSAgICAnbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2NyYXNoX2R1bXAuZGFydCcsCisgICAgJ2xpYi9zcmMvbW9kZWxzL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0JywKKyAgICAnbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvZmxhZy5kYXJ0JywKKyAgICAnbGliL3NyYy9tb2RlbHMvcmVwb3NpdG9yaWVzL2luc3RhbmNlLmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvc2NyaXB0LmRhcnQnLAogICAgICdsaWIvc3JjL21vZGVscy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQnLAotICAgICdsaWIvc3JjL21vZGVscy9yZXBvc2l0b3J5LmRhcnQnLAorICAgICdsaWIvc3JjL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0JywKKyAgICAnbGliL3NyYy9yZXBvc2l0b3JpZXMvZXZlbnQuZGFydCcsCiAgICAgJ2xpYi9zcmMvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydCcsCisgICAgJ2xpYi9zcmMvcmVwb3NpdG9yaWVzL2luc3RhbmNlLmRhcnQnLAogICAgICdsaWIvc3JjL3JlcG9zaXRvcmllcy9ub3RpZmljYXRpb24uZGFydCcsCiAgICAgJ2xpYi9zcmMvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0JywKICAgICAnbGliL3NyYy9yZXBvc2l0b3JpZXMvc2V0dGluZ3MuZGFydCcsCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2NsYXNzX3JlZi9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY2xhc3NfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGVmODEyZmQuLjBmMGVlZDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY2xhc3NfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY2xhc3NfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDggKzMsOCBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIGltcG9ydCAnZGFydDpodG1sJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvY2xhc3NfcmVmLmRhcnQnOworaW1wb3J0ICcuLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpewogICBDbGFzc1JlZkVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jbGFzc190cmVlL2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jbGFzc190cmVlL2VsZW1lbnRfdGVzdC5kYXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxODYxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2NsYXNzX3RyZWUvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTAsMCArMSw2NCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgoraW1wb3J0ICdkYXJ0Omh0bWwnOworaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jbGFzc190cmVlLmRhcnQnOworaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9uYXYvbm90aWZ5LmRhcnQnOworaW1wb3J0ICcuLi9tb2Nrcy5kYXJ0JzsKKworbWFpbigpIHsKKyAgQ2xhc3NUcmVlRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CisKKyAgZmluYWwgblRhZyA9IE5hdk5vdGlmeUVsZW1lbnQudGFnLm5hbWU7CisgIGNvbnN0IHZtID0gY29uc3QgVk1Nb2NrKCk7CisgIGNvbnN0IGlzb2xhdGUgPSBjb25zdCBJc29sYXRlUmVmTW9jaygpOworICBmaW5hbCBldmVudHMgPSBuZXcgRXZlbnRSZXBvc2l0b3J5TW9jaygpOworICBmaW5hbCBub3RpZmljYXRpb25zID0gbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKCk7CisKKyAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CisgICAgdGVzdCgnZGVmYXVsdCcsICgpIHsKKyAgICAgIGZpbmFsIGUgPSBuZXcgQ2xhc3NUcmVlRWxlbWVudCh2bSwgaXNvbGF0ZSwgZXZlbnRzLCBub3RpZmljYXRpb25zLAorICAgICAgICAgIG5ldyBDbGFzc1JlcG9zaXRvcnlNb2NrKCkpOworICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOworICAgIH0pOworICB9KTsKKyAgZ3JvdXAoJ2VsZW1lbnRzJywgKCkgeworICAgIHRlc3QoJ2NyZWF0ZWQgYWZ0ZXIgYXR0YWNobWVudCcsICgpIGFzeW5jIHsKKyAgICAgIGNvbnN0IGNoaWxkMl9pZCA9ICdjMi1pZCc7CisgICAgICBjb25zdCBjaGlsZDFfMV9pZCA9ICdjMV8xLWlkJzsKKyAgICAgIGNvbnN0IGNoaWxkMV9pZCA9ICdjMS1pZCc7CisgICAgICBjb25zdCBjaGlsZDIgPSBjb25zdCBDbGFzc01vY2soaWQ6IGNoaWxkMl9pZCk7CisgICAgICBjb25zdCBjaGlsZDFfMSA9IGNvbnN0IENsYXNzTW9jayhpZDogY2hpbGQxXzFfaWQpOworICAgICAgY29uc3QgY2hpbGQxID0gY29uc3QgQ2xhc3NNb2NrKGlkOiBjaGlsZDFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViY2xhc3NlczogY29uc3QgW2NoaWxkMV8xXSk7CisgICAgICBjb25zdCBvYmplY3QgPSBjb25zdCBDbGFzc01vY2soaWQ6ICdvLWlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJjbGFzc2VzOiBjb25zdCBbY2hpbGQxLCBjaGlsZDJdKTsKKyAgICAgIGNvbnN0IGlkcyA9IGNvbnN0IFtjaGlsZDFfaWQsIGNoaWxkMV8xX2lkLCBjaGlsZDJfaWRdOworICAgICAgYm9vbCByZW5kZXJlZCA9IGZhbHNlOworICAgICAgZmluYWwgZSA9IG5ldyBDbGFzc1RyZWVFbGVtZW50KHZtLCBpc29sYXRlLCBldmVudHMsIG5vdGlmaWNhdGlvbnMsCisgICAgICAgICAgbmV3IENsYXNzUmVwb3NpdG9yeU1vY2soCisgICAgICAgICAgICAgIG9iamVjdDogZXhwZWN0QXN5bmMoKCkgYXN5bmMgeworICAgICAgICAgICAgICAgIGV4cGVjdChyZW5kZXJlZCwgaXNGYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgICAgICAgfSwgY291bnQ6IDEpLAorICAgICAgICAgICAgICBnZXR0ZXI6IGV4cGVjdEFzeW5jKChpZCkgYXN5bmMgeworICAgICAgICAgICAgICAgIGV4cGVjdChpZHMuY29udGFpbnMoaWQpLCBpc1RydWUpOworICAgICAgICAgICAgICAgIHN3aXRjaCAoaWQpIHsKKyAgICAgICAgICAgICAgICAgIGNhc2UgY2hpbGQxX2lkOiByZXR1cm4gY2hpbGQxOworICAgICAgICAgICAgICAgICAgY2FzZSBjaGlsZDFfMV9pZDogcmV0dXJuIGNoaWxkMV8xOworICAgICAgICAgICAgICAgICAgY2FzZSBjaGlsZDJfaWQ6IHJldHVybiBjaGlsZDI7CisgICAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0sIGNvdW50OiAzKSkpOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CisgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CisgICAgICByZW5kZXJlZCA9IHRydWU7CisgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CisgICAgICBleHBlY3QoZS5xdWVyeVNlbGVjdG9yQWxsKG5UYWcpLmxlbmd0aCwgZXF1YWxzKDEpKTsKKyAgICAgIGUucmVtb3ZlKCk7CisgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CisgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzWmVybywgcmVhc29uOiAnaXMgZW1wdHknKTsKKyAgICB9KTsKKyAgfSk7Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2NsYXNzX3RyZWUvZWxlbWVudF90ZXN0Lmh0bWwgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2NsYXNzX3RyZWUvZWxlbWVudF90ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBkNTliYwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY2xhc3NfdHJlZS9lbGVtZW50X3Rlc3QuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+CisgIDxtZXRhIG5hbWU9ImRhcnQudW5pdHRlc3QiIGNvbnRlbnQ9ImZ1bGwtc3RhY2stdHJhY2VzIj4KKyAgPHN0eWxlPgorICAgICAudW5pdHRlc3QtdGFibGUgeyBmb250LWZhbWlseTptb25vc3BhY2U7IGJvcmRlcjoxcHg7IH0KKyAgICAgLnVuaXR0ZXN0LXBhc3MgeyBiYWNrZ3JvdW5kOiAjNmIzO30KKyAgICAgLnVuaXR0ZXN0LWZhaWwgeyBiYWNrZ3JvdW5kOiAjZDU1O30KKyAgICAgLnVuaXR0ZXN0LWVycm9yIHsgYmFja2dyb3VuZDogI2ExMTt9CisgICAgIGNsYXNzLXRyZWUgdmlydHVhbC10cmVlIC5jbGFzcy10cmVlLWl0ZW0geworICAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4OworICAgICAgIGhlaWdodDogMjVweDsKKyAgICAgICBwYWRkaW5nLWxlZnQ6IDEwJTsKKyAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMCU7CisgICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii9wYWNrYWdlcy93ZWJfY29tcG9uZW50cy93ZWJjb21wb25lbnRzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9wYWNrYWdlcy93ZWJfY29tcG9uZW50cy9kYXJ0X3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IgorICAgICAgc3JjPSIvcm9vdF9kYXJ0L3Rvb2xzL3Rlc3RpbmcvZGFydC90ZXN0X2NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgorICAlVEVTVF9TQ1JJUFRTJQorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jb2RlX3JlZi9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY29kZV9yZWYvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMGUyYzllZS4uNjk0ZDgxYiAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jb2RlX3JlZi9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2NvZGVfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDIyICszLDIyIEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9jb2RlX3JlZi5kYXJ0JzsKK2ltcG9ydCAnLi4vbW9ja3MuZGFydCc7CiAKIG1haW4oKXsKICAgQ29kZVJlZkVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCi0gIGZpbmFsIElzb2xhdGVSZWZNb2NrIGlzb2xhdGUgPSBuZXcgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpLWlkJywgbmFtZTogJ2ktbmFtZScpOwotICBmaW5hbCBDb2RlUmVmTW9jayBjb2RlID0gbmV3IENvZGVSZWZNb2NrKGlkOiAnYy1pZCcsIG5hbWU6ICdjLW5hbWUnKTsKKyAgZmluYWwgaXNvbGF0ZSA9IG5ldyBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnaS1uYW1lJyk7CisgIGZpbmFsIGNvZGUgPSBuZXcgQ29kZVJlZk1vY2soaWQ6ICdjLWlkJywgbmFtZTogJ2MtbmFtZScpOwogICB0ZXN0KCdpbnN0YW50aWF0aW9uJywgKCkgewotICAgIGZpbmFsIENvZGVSZWZFbGVtZW50IGUgPSBuZXcgQ29kZVJlZkVsZW1lbnQoaXNvbGF0ZSwgY29kZSk7CisgICAgZmluYWwgZSA9IG5ldyBDb2RlUmVmRWxlbWVudChpc29sYXRlLCBjb2RlKTsKICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgZXhwZWN0KGUuaXNvbGF0ZSwgZXF1YWxzKGlzb2xhdGUpKTsKICAgICBleHBlY3QoZS5jb2RlLCBlcXVhbHMoY29kZSkpOwogICB9KTsKICAgdGVzdCgnZWxlbWVudHMgY3JlYXRlZCBhZnRlciBhdHRhY2htZW50JywgKCkgYXN5bmMgewotICAgIGZpbmFsIENvZGVSZWZFbGVtZW50IGUgPSBuZXcgQ29kZVJlZkVsZW1lbnQoaXNvbGF0ZSwgY29kZSk7CisgICAgZmluYWwgZSA9IG5ldyBDb2RlUmVmRWxlbWVudChpc29sYXRlLCBjb2RlKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jdXJseV9ibG9jay9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvY3VybHlfYmxvY2svZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggZmUxY2E4Zi4uNjAxMGJjNiAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9jdXJseV9ibG9jay9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2N1cmx5X2Jsb2NrL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0xMCw2NiArMTAsNjQgQEAKIAogICBncm91cCgnaW5zdGFudGlhdGlvbicsICgpIHsKICAgICB0ZXN0KCdkZWZhdWx0JywgKCkgewotICAgICAgZmluYWwgQ3VybHlCbG9ja0VsZW1lbnQgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudCgpOworICAgICAgZmluYWwgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudCgpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuZXhwYW5kZWQsIGlzRmFsc2UpOwogICAgICAgZXhwZWN0KGUuZGlzYWJsZWQsIGlzRmFsc2UpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdCBleHBhbmRlZCcsICgpIHsKLSAgICAgIGZpbmFsIEN1cmx5QmxvY2tFbGVtZW50IGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZXhwYW5kZWQ6IGZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZXhwYW5kZWQ6IGZhbHNlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmV4cGFuZGVkLCBpc0ZhbHNlKTsKICAgICAgIGV4cGVjdChlLmRpc2FibGVkLCBpc0ZhbHNlKTsKICAgICB9KTsKICAgICB0ZXN0KCdub3QgZXhwYW5kZWQgLyBub3QgZGlzYWJsZWQnLCAoKSB7Ci0gICAgICBmaW5hbCBDdXJseUJsb2NrRWxlbWVudCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiBmYWxzZSwKKyAgICAgIGZpbmFsIGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZXhwYW5kZWQ6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuZXhwYW5kZWQsIGlzRmFsc2UpOwogICAgICAgZXhwZWN0KGUuZGlzYWJsZWQsIGlzRmFsc2UpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdCBleHBhbmRlZCAvIGRpc2FibGVkJywgKCkgewotICAgICAgZmluYWwgQ3VybHlCbG9ja0VsZW1lbnQgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudChleHBhbmRlZDogZmFsc2UsCisgICAgICBmaW5hbCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuZXhwYW5kZWQsIGlzRmFsc2UpOwogICAgICAgZXhwZWN0KGUuZGlzYWJsZWQsIGlzVHJ1ZSk7CiAgICAgfSk7CiAgICAgdGVzdCgnZXhwYW5kZWQnLCAoKSB7Ci0gICAgICBmaW5hbCBDdXJseUJsb2NrRWxlbWVudCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiB0cnVlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZXhwYW5kZWQ6IHRydWUpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuZXhwYW5kZWQsIGlzVHJ1ZSk7CiAgICAgICBleHBlY3QoZS5kaXNhYmxlZCwgaXNGYWxzZSk7CiAgICAgfSk7CiAgICAgdGVzdCgnZXhwYW5kZWQgLyBub3QgZGlzYWJsZWQnLCAoKSB7Ci0gICAgICBmaW5hbCBDdXJseUJsb2NrRWxlbWVudCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UpOworICAgICAgZmluYWwgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudChleHBhbmRlZDogdHJ1ZSwgZGlzYWJsZWQ6IGZhbHNlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmV4cGFuZGVkLCBpc1RydWUpOwogICAgICAgZXhwZWN0KGUuZGlzYWJsZWQsIGlzRmFsc2UpOwogICAgIH0pOwogICAgIHRlc3QoJ2V4cGFuZGVkIC8gZGlzYWJsZWQnLCAoKSB7Ci0gICAgICBmaW5hbCBDdXJseUJsb2NrRWxlbWVudCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZSk7CisgICAgICBmaW5hbCBlID0gbmV3IEN1cmx5QmxvY2tFbGVtZW50KGV4cGFuZGVkOiB0cnVlLCBkaXNhYmxlZDogdHJ1ZSk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5leHBhbmRlZCwgaXNUcnVlKTsKICAgICAgIGV4cGVjdChlLmRpc2FibGVkLCBpc1RydWUpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdCBkaXNhYmxlZCcsICgpIHsKLSAgICAgIGZpbmFsIEN1cmx5QmxvY2tFbGVtZW50IGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZGlzYWJsZWQ6IGZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZGlzYWJsZWQ6IGZhbHNlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmV4cGFuZGVkLCBpc0ZhbHNlKTsKICAgICAgIGV4cGVjdChlLmRpc2FibGVkLCBpc0ZhbHNlKTsKICAgICB9KTsKICAgICB0ZXN0KCdkaXNhYmxlZCcsICgpIHsKLSAgICAgIGZpbmFsIEN1cmx5QmxvY2tFbGVtZW50IGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoZGlzYWJsZWQ6IHRydWUpOworICAgICAgZmluYWwgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudChkaXNhYmxlZDogdHJ1ZSk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5leHBhbmRlZCwgaXNGYWxzZSk7CiAgICAgICBleHBlY3QoZS5kaXNhYmxlZCwgaXNUcnVlKTsKICAgICB9KTsKICAgfSk7CiAgIHRlc3QoJ2VsZW1lbnRzIGNyZWF0ZWQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgQ3VybHlCbG9ja0VsZW1lbnQgZSA9IG5ldyBDdXJseUJsb2NrRWxlbWVudCgpOworICAgIGZpbmFsIGUgPSBuZXcgQ3VybHlCbG9ja0VsZW1lbnQoKTsKICAgICBleHBlY3QoZS5zaGFkb3dSb290LCBpc05vdE51bGwsIHJlYXNvbjogJ3NoYWRvd1Jvb3QgaXMgY3JlYXRlZCcpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvZXJyb3JfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9lcnJvcl9yZWYvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMDQ5NTY1Ni4uYjEzMTQ3MiAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9lcnJvcl9yZWYvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9lcnJvcl9yZWYvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTMsMTQgKzMsMTMgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9kZWxzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9lcnJvcl9yZWYuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCkgewogICBFcnJvclJlZkVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCi0gIGZpbmFsIEVycm9yUmVmIHJlZiA9IG5ldyBFcnJvclJlZk1vY2soaWQ6ICdpZCcsIG1lc3NhZ2U6ICdmaXhlZC1lcnJvci1tJyk7CisgIGZpbmFsIHJlZiA9IG5ldyBFcnJvclJlZk1vY2soaWQ6ICdpZCcsIG1lc3NhZ2U6ICdmaXhlZC1lcnJvci1tJyk7CiAgIHRlc3QoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgZmluYWwgRXJyb3JSZWZFbGVtZW50IGUgPSBuZXcgRXJyb3JSZWZFbGVtZW50KHJlZik7CiAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9mbGFnX2xpc3QvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2ZsYWdfbGlzdC9lbGVtZW50X3Rlc3QuZGFydAppbmRleCBlODhkZWE2Li5kMjNmZmZhIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2ZsYWdfbGlzdC9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2ZsYWdfbGlzdC9lbGVtZW50X3Rlc3QuZGFydApAQCAtMiwyNCArMiwyNCBAQAogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9mbGFnX2xpc3QuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnkuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCkgewogICBGbGFnTGlzdEVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCiAgIGZpbmFsIG5UYWcgPSBOYXZOb3RpZnlFbGVtZW50LnRhZy5uYW1lOwotICBjb25zdCB2bSA9IGNvbnN0IFZNTW9jayhuYW1lOiAndm0nKTsKLSAgZmluYWwgc3RyZWFtID0gbmV3IFN0cmVhbUNvbnRyb2xsZXIoKS5zdHJlYW07CisgIGNvbnN0IHZtID0gY29uc3QgVk1Nb2NrKCk7CisgIGZpbmFsIGV2ZW50cyA9IG5ldyBFdmVudFJlcG9zaXRvcnlNb2NrKCk7CisgIGZpbmFsIG5vdGlmaWNhdGlvbnMgPSBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKTsKIAogICBncm91cCgnaW5zdGFudGlhdGlvbicsICgpIHsKICAgICB0ZXN0KCdkZWZhdWx0JywgKCkgewotICAgICAgZmluYWwgRmxhZ0xpc3RFbGVtZW50IGUgPSBuZXcgRmxhZ0xpc3RFbGVtZW50KHZtLCBzdHJlYW0sCi0gICAgICAgICAgbmV3IEZsYWdzUmVwb3NpdG9yeU1vY2soKSwKLSAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSk7CisgICAgICBmaW5hbCBlID0gbmV3IEZsYWdMaXN0RWxlbWVudCh2bSwgZXZlbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZsYWdzUmVwb3NpdG9yeU1vY2soKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbnMpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICB9KTsKQEAgLTMyLDE1ICszMiwxMyBAQAogICAgICAgICBjb25zdCBGbGFnTW9jayhuYW1lOiAnZjInLCBjb21tZW50OiAnYzInLCBtb2RpZmllZDogZmFsc2UpLAogICAgICAgICBjb25zdCBGbGFnTW9jayhuYW1lOiAnZjMnLCBjb21tZW50OiAnYzMnLCBtb2RpZmllZDogZmFsc2UpLAogICAgICAgXTsKLSAgICAgIGZpbmFsIGZsYWdzID0gbmV3IExpc3QudW5tb2RpZmlhYmxlKFtdLi5hZGRBbGwobW9kaWZpZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uYWRkQWxsKHVubW9kaWZlZCkpOwotICAgICAgZmluYWwgRmxhZ0xpc3RFbGVtZW50IGUgPSBuZXcgRmxhZ0xpc3RFbGVtZW50KHZtLCBzdHJlYW0sCi0gICAgICAgICAgbmV3IEZsYWdzUmVwb3NpdG9yeU1vY2sobGlzdDogZXhwZWN0QXN5bmMoKGlucHV0KSBhc3luYyB7Ci0gICAgICAgICAgICBleHBlY3QoaW5wdXQsIGVxdWFscyh2bSkpOwotICAgICAgICAgICAgcmV0dXJuIGZsYWdzOwotICAgICAgICAgIH0sIGNvdW50OiAxKSksIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKKyAgICAgIGZpbmFsIGZsYWdzID0gW10uLmFkZEFsbChtb2RpZmllZCkuLmFkZEFsbCh1bm1vZGlmZWQpOworICAgICAgZmluYWwgcmVwb3NpdG9yeSA9IG5ldyBGbGFnc1JlcG9zaXRvcnlNb2NrKGxpc3Q6IGZsYWdzKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgRmxhZ0xpc3RFbGVtZW50KHZtLCBldmVudHMsIHJlcG9zaXRvcnksIG5vdGlmaWNhdGlvbnMpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CisgICAgICBleHBlY3QocmVwb3NpdG9yeS5pc0xpc3RJbnZva2VkLCBpc0ZhbHNlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKKyAgICAgIGV4cGVjdChyZXBvc2l0b3J5LmlzTGlzdEludm9rZWQsIGlzVHJ1ZSk7CiAgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CiAgICAgICBleHBlY3QoZS5xdWVyeVNlbGVjdG9yQWxsKG5UYWcpLmxlbmd0aCwgZXF1YWxzKDEpKTsKICAgICAgIGV4cGVjdChlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5mbGFnJykubGVuZ3RoLCBlcXVhbHMoZmxhZ3MubGVuZ3RoKSk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2Z1bmN0aW9uX3JlZi9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvZnVuY3Rpb25fcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGE2NDdkM2QuLmNkNmI4YWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvZnVuY3Rpb25fcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvZnVuY3Rpb25fcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDIzICszLDIyIEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9mdW5jdGlvbl9yZWYuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCl7CiAgIEZ1bmN0aW9uUmVmRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAKLSAgZmluYWwgSXNvbGF0ZVJlZk1vY2sgaXNvbGF0ZSA9IG5ldyBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnaS1uYW1lJyk7Ci0gIGZpbmFsIEZ1bmN0aW9uUmVmTW9jayBmdW5jdGlvbiA9IG5ldyBGdW5jdGlvblJlZk1vY2soaWQ6ICdmLWlkJywKLSAgICAgIG5hbWU6ICdmLW5hbWUnKTsKKyAgZmluYWwgaXNvbGF0ZSA9IG5ldyBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnaS1uYW1lJyk7CisgIGZpbmFsIGZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uUmVmTW9jayhpZDogJ2YtaWQnLCBuYW1lOiAnZi1uYW1lJyk7CiAgIHRlc3QoJ2luc3RhbnRpYXRpb24nLCAoKSB7Ci0gICAgZmluYWwgRnVuY3Rpb25SZWZFbGVtZW50IGUgPSBuZXcgRnVuY3Rpb25SZWZFbGVtZW50KGlzb2xhdGUsIGZ1bmN0aW9uKTsKKyAgICBmaW5hbCBlID0gbmV3IEZ1bmN0aW9uUmVmRWxlbWVudChpc29sYXRlLCBmdW5jdGlvbik7CiAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIGV4cGVjdChlLmlzb2xhdGUsIGVxdWFscyhpc29sYXRlKSk7CiAgICAgZXhwZWN0KGUuZnVuY3Rpb24sIGVxdWFscyhmdW5jdGlvbikpOwogICB9KTsKICAgdGVzdCgnZWxlbWVudHMgY3JlYXRlZCBhZnRlciBhdHRhY2htZW50JywgKCkgYXN5bmMgewotICAgIGZpbmFsIEZ1bmN0aW9uUmVmRWxlbWVudCBlID0gbmV3IEZ1bmN0aW9uUmVmRWxlbWVudChpc29sYXRlLCBmdW5jdGlvbik7CisgICAgZmluYWwgZSA9IG5ldyBGdW5jdGlvblJlZkVsZW1lbnQoaXNvbGF0ZSwgZnVuY3Rpb24pOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2dlbmVyYWxfZXJyb3IvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2dlbmVyYWxfZXJyb3IvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMzFhOTAzMS4uZTA1NmJhYyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9nZW5lcmFsX2Vycm9yL2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvZ2VuZXJhbF9lcnJvci9lbGVtZW50X3Rlc3QuZGFydApAQCAtMyw5ICszLDkgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9ja3MuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL2dlbmVyYWxfZXJyb3IuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnkuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCkgewogICBHZW5lcmFsRXJyb3JFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvaXNvbGF0ZV9yZWYvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2lzb2xhdGVfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGM3ZDY0YTQuLjJjZmFhZmMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvaXNvbGF0ZV9yZWYvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9pc29sYXRlX3JlZi9lbGVtZW50X3Rlc3QuZGFydApAQCAtMiwzOCArMiwzMCBAQAogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvaXNvbGF0ZV9yZWYuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCl7CiAgIElzb2xhdGVSZWZFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBTdHJlYW1Db250cm9sbGVyPElzb2xhdGVVcGRhdGVFdmVudD4gdXBkYXRlc0NvbnRyb2xsZXI7Ci0gIGZpbmFsIElzb2xhdGVSZWZNb2NrIHJlZiA9IG5ldyBJc29sYXRlUmVmTW9jayhpZDogJ2lkJywgbmFtZTogJ29sZC1uYW1lJyk7Ci0gIGZpbmFsIElzb2xhdGVNb2NrIG9iaiA9IG5ldyBJc29sYXRlTW9jayhpZDogJ2lkJywgbmFtZTogJ25ldy1uYW1lJyk7Ci0gIHNldFVwKCgpIHsKLSAgICB1cGRhdGVzQ29udHJvbGxlciA9IG5ldyBTdHJlYW1Db250cm9sbGVyPElzb2xhdGVVcGRhdGVFdmVudD4oKTsKLSAgfSk7CisgIGZpbmFsIHJlZiA9IG5ldyBJc29sYXRlUmVmTW9jayhpZDogJ2lkJywgbmFtZTogJ29sZC1uYW1lJyk7CisgIGZpbmFsIGV2ZW50cyA9IG5ldyBFdmVudFJlcG9zaXRvcnlNb2NrKCk7CisgIGZpbmFsIG9iaiA9IG5ldyBJc29sYXRlTW9jayhpZDogJ2lkJywgbmFtZTogJ25ldy1uYW1lJyk7CiAgIGdyb3VwKCdpbnN0YW50aWF0aW9uJywgKCkgewogICAgIHRlc3QoJ0lzb2xhdGVSZWYnLCAoKSB7Ci0gICAgICBmaW5hbCBJc29sYXRlUmVmRWxlbWVudCBlID0gbmV3IElzb2xhdGVSZWZFbGVtZW50KHJlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuc3RyZWFtKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQocmVmLCBldmVudHMpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuaXNvbGF0ZSwgZXF1YWxzKHJlZikpOwogICAgIH0pOwogICAgIHRlc3QoJ0lzb2xhdGUnLCAoKSB7Ci0gICAgICBmaW5hbCBJc29sYXRlUmVmRWxlbWVudCBlID0gbmV3IElzb2xhdGVSZWZFbGVtZW50KG9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuc3RyZWFtKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQob2JqLCBldmVudHMpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuaXNvbGF0ZSwgZXF1YWxzKG9iaikpOwogICAgIH0pOwogICB9KTsKICAgdGVzdCgnZWxlbWVudHMgY3JlYXRlZCBhZnRlciBhdHRhY2htZW50JywgKCkgYXN5bmMgewotICAgIGZpbmFsIElzb2xhdGVSZWZFbGVtZW50IGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuc3RyZWFtKTsKKyAgICBmaW5hbCBlID0gbmV3IElzb2xhdGVSZWZFbGVtZW50KHJlZiwgZXZlbnRzKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtNDMsMjMgKzM1LDIxIEBACiAgIH0pOwogICBncm91cCgndXBkYXRlcycsICgpIHsKICAgICB0ZXN0KCdhcmUgY29ycmVjdGx5IGxpc3RlbicsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIElzb2xhdGVSZWZFbGVtZW50IGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOwotICAgICAgZXhwZWN0KHVwZGF0ZXNDb250cm9sbGVyLmhhc0xpc3RlbmVyLCBpc0ZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQocmVmLCBldmVudHMpOworICAgICAgZXhwZWN0KGV2ZW50cy5vbklzb2xhdGVVcGRhdGVIYXNMaXN0ZW5lciwgaXNGYWxzZSk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKLSAgICAgIGV4cGVjdCh1cGRhdGVzQ29udHJvbGxlci5oYXNMaXN0ZW5lciwgaXNUcnVlKTsKKyAgICAgIGV4cGVjdChldmVudHMub25Jc29sYXRlVXBkYXRlSGFzTGlzdGVuZXIsIGlzVHJ1ZSk7CiAgICAgICBlLnJlbW92ZSgpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwotICAgICAgZXhwZWN0KHVwZGF0ZXNDb250cm9sbGVyLmhhc0xpc3RlbmVyLCBpc0ZhbHNlKTsKKyAgICAgIGV4cGVjdChldmVudHMub25Jc29sYXRlVXBkYXRlSGFzTGlzdGVuZXIsIGlzRmFsc2UpOwogICAgIH0pOwogICAgIHRlc3QoJ2hhdmUgZWZmZWN0cycsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIElzb2xhdGVSZWZFbGVtZW50IGUgPSBuZXcgSXNvbGF0ZVJlZkVsZW1lbnQocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOworICAgICAgZmluYWwgZSA9IG5ldyBJc29sYXRlUmVmRWxlbWVudChyZWYsIGV2ZW50cyk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhyZWYuaWQpLCBpc1RydWUpOwotICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuYWRkKG5ldyBJc29sYXRlVXBkYXRlRXZlbnRNb2NrKGlzb2xhdGU6IG9iaikpOworICAgICAgZXZlbnRzLmFkZChuZXcgSXNvbGF0ZVVwZGF0ZUV2ZW50TW9jayhpc29sYXRlOiBvYmopKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhyZWYubmFtZSksIGlzRmFsc2UpOwogICAgICAgZXhwZWN0KGUuaW5uZXJIdG1sLmNvbnRhaW5zKG9iai5uYW1lKSwgaXNUcnVlKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbGlicmFyeV9yZWYvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL2xpYnJhcnlfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGNiMzNmNmIuLjQ4MjkxYjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbGlicmFyeV9yZWYvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9saWJyYXJ5X3JlZi9lbGVtZW50X3Rlc3QuZGFydApAQCAtMywyMiArMywyMiBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIGltcG9ydCAnZGFydDpodG1sJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbGlicmFyeV9yZWYuZGFydCc7CitpbXBvcnQgJy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCl7CiAgIExpYnJhcnlSZWZFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBJc29sYXRlUmVmTW9jayBpc29sYXRlID0gbmV3IElzb2xhdGVSZWZNb2NrKGlkOiAnaS1pZCcsIG5hbWU6ICdpLW5hbWUnKTsKLSAgZmluYWwgTGlicmFyeVJlZk1vY2sgbGlicmFyeSA9IG5ldyBMaWJyYXJ5UmVmTW9jayhpZDogJ2MtaWQnLCBuYW1lOiAnYy1uYW1lJyk7CisgIGNvbnN0IGlzb2xhdGUgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnaS1uYW1lJyk7CisgIGNvbnN0IGxpYnJhcnkgPSBjb25zdCBMaWJyYXJ5UmVmTW9jayhpZDogJ2MtaWQnLCBuYW1lOiAnYy1uYW1lJyk7CiAgIHRlc3QoJ2luc3RhbnRpYXRpb24nLCAoKSB7Ci0gICAgZmluYWwgTGlicmFyeVJlZkVsZW1lbnQgZSA9IG5ldyBMaWJyYXJ5UmVmRWxlbWVudChpc29sYXRlLCBsaWJyYXJ5KTsKKyAgICBmaW5hbCBlID0gbmV3IExpYnJhcnlSZWZFbGVtZW50KGlzb2xhdGUsIGxpYnJhcnkpOwogICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMoaXNvbGF0ZSkpOwogICAgIGV4cGVjdChlLmxpYnJhcnksIGVxdWFscyhsaWJyYXJ5KSk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTGlicmFyeVJlZkVsZW1lbnQgZSA9IG5ldyBMaWJyYXJ5UmVmRWxlbWVudChpc29sYXRlLCBsaWJyYXJ5KTsKKyAgICBmaW5hbCBlID0gbmV3IExpYnJhcnlSZWZFbGVtZW50KGlzb2xhdGUsIGxpYnJhcnkpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzLmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjUyYjkzYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MuZGFydApAQCAtMCwwICsxLDMzIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQorLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2xpYnJhcnkgbW9ja3M7CisKK2ltcG9ydCAnZGFydDphc3luYyc7CisKK2ltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKKworcGFydCAnbW9ja3MvZXhjZXB0aW9ucy9jb25uZWN0aW9uX2V4Y2VwdGlvbi5kYXJ0JzsKKworcGFydCAnbW9ja3Mvb2JqZWN0cy9lcnJvci5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvY29kZS5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvZXZlbnQuZGFydCc7CitwYXJ0ICdtb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQnOworcGFydCAnbW9ja3Mvb2JqZWN0cy9mbGFnLmRhcnQnOworcGFydCAnbW9ja3Mvb2JqZWN0cy9mdW5jdGlvbi5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvaXNvbGF0ZS5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvbGlicmFyeS5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQnOworcGFydCAnbW9ja3Mvb2JqZWN0cy9zY3JpcHQuZGFydCc7CitwYXJ0ICdtb2Nrcy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0JzsKK3BhcnQgJ21vY2tzL29iamVjdHMvdGFyZ2V0LmRhcnQnOworcGFydCAnbW9ja3Mvb2JqZWN0cy92bS5kYXJ0JzsKKworcGFydCAnbW9ja3MvcmVwb3NpdG9yaWVzL2NsYXNzLmRhcnQnOworcGFydCAnbW9ja3MvcmVwb3NpdG9yaWVzL2V2ZW50LmRhcnQnOworcGFydCAnbW9ja3MvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydCc7CitwYXJ0ICdtb2Nrcy9yZXBvc2l0b3JpZXMvaW5zdGFuY2UuZGFydCc7CitwYXJ0ICdtb2Nrcy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQnOworcGFydCAnbW9ja3MvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0JzsKK3BhcnQgJ21vY2tzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydCc7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3MvZXhjZXB0aW9ucy9jb25uZWN0aW9uX2V4Y2VwdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9leGNlcHRpb25zL2Nvbm5lY3Rpb25fZXhjZXB0aW9uLmRhcnQKc2ltaWxhcml0eSBpbmRleCA4MyUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL2V4Y2VwdGlvbnMvY29ubmVjdGlvbl9leGNlcHRpb24uZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9leGNlcHRpb25zL2Nvbm5lY3Rpb25fZXhjZXB0aW9uLmRhcnQKaW5kZXggMTI3Y2IyMC4uZDAzNjk1MSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL2V4Y2VwdGlvbnMvY29ubmVjdGlvbl9leGNlcHRpb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL2V4Y2VwdGlvbnMvY29ubmVjdGlvbl9leGNlcHRpb24uZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvY2xhc3MuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzI5MGFmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2NsYXNzLmRhcnQKQEAgLTAsMCArMSwzMSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitwYXJ0IG9mIG1vY2tzOworCitjbGFzcyBDbGFzc1JlZk1vY2sgaW1wbGVtZW50cyBNLkNsYXNzUmVmIHsKKyAgZmluYWwgU3RyaW5nIGlkOworICBmaW5hbCBTdHJpbmcgbmFtZTsKKyAgY29uc3QgQ2xhc3NSZWZNb2NrKHt0aGlzLmlkLCB0aGlzLm5hbWV9KTsKK30KKworY2xhc3MgQ2xhc3NNb2NrIGltcGxlbWVudHMgTS5DbGFzcyB7CisgIGZpbmFsIFN0cmluZyBpZDsKKyAgZmluYWwgU3RyaW5nIG5hbWU7CisgIGZpbmFsIE0uRXJyb3JSZWYgZXJyb3I7CisgIGZpbmFsIGJvb2wgaXNBYnN0cmFjdDsKKyAgZmluYWwgYm9vbCBpc0NvbnN0OworICBmaW5hbCBib29sIGlzUGF0Y2g7CisgIGZpbmFsIE0uTGlicmFyeVJlZiBsaWJyYXJ5OworICBmaW5hbCBNLlNvdXJjZUxvY2F0aW9uIGxvY2F0aW9uOworICBmaW5hbCBNLkNsYXNzUmVmIHN1cGVyY2xhc3M7CisgIGZpbmFsIE0uSW5zdGFuY2VSZWYgc3VwZXJUeXBlOworICBmaW5hbCBJdGVyYWJsZTxNLkluc3RhbmNlUmVmPiBpbnRlcmZhY2VzOworICBmaW5hbCBNLkluc3RhbmNlUmVmIG1peGluOworICBmaW5hbCBJdGVyYWJsZTxNLkNsYXNzUmVmPiBzdWJjbGFzc2VzOworICBjb25zdCBDbGFzc01vY2soe3RoaXMuaWQ6ICdjLWlkJywgdGhpcy5uYW1lOiAnYy1uYW1lJywgdGhpcy5lcnJvciwKKyAgICAgIHRoaXMuaXNBYnN0cmFjdDogZmFsc2UsIHRoaXMuaXNDb25zdDogZmFsc2UsIHRoaXMuaXNQYXRjaDogZmFsc2UsCisgICAgICB0aGlzLmxpYnJhcnksIHRoaXMubG9jYXRpb24sIHRoaXMuc3VwZXJjbGFzcywgdGhpcy5zdXBlclR5cGUsCisgICAgICB0aGlzLmludGVyZmFjZXM6IGNvbnN0IFtdLCB0aGlzLm1peGluLCB0aGlzLnN1YmNsYXNzZXM6IGNvbnN0IFtdfSk7Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9jb2RlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvY29kZS5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2NvZGUuZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2NvZGUuZGFydAppbmRleCBkMDUyOWFlLi43ZDJmNzI1IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9jb2RlLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2NvZGUuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvZXJyb3IuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9lcnJvci5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggODklCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2Vycm9yLmRhcnQKcmVuYW1lIHRvIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9lcnJvci5kYXJ0CmluZGV4IDhiNDc4MzAuLjRhMmI3NTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2Vycm9yLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2Vycm9yLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9ja3M7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2V2ZW50LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvZXZlbnQuZGFydApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9ldmVudC5kYXJ0CnJlbmFtZSB0byBydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvZXZlbnQuZGFydAppbmRleCA2YTY0NmYzLi43ZTRhYTE3IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9ldmVudC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9ldmVudC5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vY2tzOwogCkBAIC00Miw2ICs0MiwxMSBAQAogICBjb25zdCBTZXJ2aWNlRXh0ZW5zaW9uQWRkZWRFdmVudE1vY2soe3RoaXMuZXh0ZW5zaW9uUlBDLCB0aGlzLmlzb2xhdGUsCiAgICAgICB0aGlzLnRpbWVzdGFtcH0pOwogfQorY2xhc3MgRGVidWdnZXJTZXR0aW5nc1VwZGF0ZUV2ZW50TW9jayBpbXBsZW1lbnRzIE0uUGF1c2VTdGFydEV2ZW50IHsKKyAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOworICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKKyAgY29uc3QgRGVidWdnZXJTZXR0aW5nc1VwZGF0ZUV2ZW50TW9jayh7dGhpcy5pc29sYXRlLCB0aGlzLnRpbWVzdGFtcH0pOworfQogY2xhc3MgUGF1c2VTdGFydEV2ZW50TW9jayBpbXBsZW1lbnRzIE0uUGF1c2VTdGFydEV2ZW50IHsKICAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOwogICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZTsKQEAgLTgxLDcgKzg2LDggQEAKIGNsYXNzIFJlc3VtZUV2ZW50TW9jayBpbXBsZW1lbnRzIE0uUmVzdW1lRXZlbnQgewogICBmaW5hbCBEYXRlVGltZSB0aW1lc3RhbXA7CiAgIGZpbmFsIE0uSXNvbGF0ZVJlZiBpc29sYXRlOwotICBjb25zdCBSZXN1bWVFdmVudE1vY2soe3RoaXMudGltZXN0YW1wLCB0aGlzLmlzb2xhdGV9KTsKKyAgZmluYWwgTS5GcmFtZSB0b3BGcmFtZTsKKyAgY29uc3QgUmVzdW1lRXZlbnRNb2NrKHt0aGlzLnRpbWVzdGFtcCwgdGhpcy5pc29sYXRlLCB0aGlzLnRvcEZyYW1lfSk7CiB9CiBjbGFzcyBCcmVha3BvaW50QWRkZWRFdmVudE1vY2sgaW1wbGVtZW50cyBNLkJyZWFrcG9pbnRBZGRlZEV2ZW50IHsKICAgZmluYWwgRGF0ZVRpbWUgdGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvZmxhZy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2ZsYWcuZGFydApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvZmxhZy5kYXJ0CnJlbmFtZSB0byBydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvZmxhZy5kYXJ0CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9mdW5jdGlvbi5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2Z1bmN0aW9uLmRhcnQKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvZnVuY3Rpb24uZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2Z1bmN0aW9uLmRhcnQKaW5kZXggOGE2MGFkZi4uMzQ1OGY5NyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvZnVuY3Rpb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvZnVuY3Rpb24uZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvaXNvbGF0ZS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2lzb2xhdGUuZGFydApzaW1pbGFyaXR5IGluZGV4IDY0JQpyZW5hbWUgZnJvbSBydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9pc29sYXRlLmRhcnQKcmVuYW1lIHRvIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9pc29sYXRlLmRhcnQKaW5kZXggOWY1YmE4MC4uZDY1Yjg0MCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvaXNvbGF0ZS5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9pc29sYXRlLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9ja3M7CiAKQEAgLTksNyArOSw3IEBACiAgIGZpbmFsIGludCBudW1iZXI7CiAgIGZpbmFsIFN0cmluZyBuYW1lOwogCi0gIGNvbnN0IElzb2xhdGVSZWZNb2NrKHt0aGlzLmlkLCB0aGlzLm51bWJlciwgdGhpcy5uYW1lfSk7CisgIGNvbnN0IElzb2xhdGVSZWZNb2NrKHt0aGlzLmlkOiAnaS1pZCcsIHRoaXMubnVtYmVyLCB0aGlzLm5hbWU6ICdpLW5hbWUnfSk7CiB9CiAKIGNsYXNzIElzb2xhdGVNb2NrIGltcGxlbWVudHMgTS5Jc29sYXRlIHsKQEAgLTE5LDcgKzE5LDcgQEAKICAgZmluYWwgRGF0ZVRpbWUgc3RhcnRUaW1lOwogICBmaW5hbCBib29sIHJ1bm5hYmxlOwogCi0gIGNvbnN0IElzb2xhdGVNb2NrKHt0aGlzLmlkLCB0aGlzLm51bWJlciwgdGhpcy5uYW1lLCB0aGlzLnN0YXJ0VGltZSwKLSAgICAgIHRoaXMucnVubmFibGV9KTsKKyAgY29uc3QgSXNvbGF0ZU1vY2soe3RoaXMuaWQ6ICdpLWlkJywgdGhpcy5udW1iZXIsIHRoaXMubmFtZTogJ2ktbmFtZScsCisgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSwgdGhpcy5ydW5uYWJsZTogdHJ1ZX0pOwogICAvLyBUT0RPKGNiZXJuYXNjaGluYSkgYWRkIG90aGVyIHByb3BlcnRpZXMuCiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9saWJyYXJ5LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvbGlicmFyeS5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggOTElCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL2xpYnJhcnkuZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2xpYnJhcnkuZGFydAppbmRleCAyOTMyZWZhLi44MDIyOTA0IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9saWJyYXJ5LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL2xpYnJhcnkuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQKc2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQKcmVuYW1lIHRvIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9ub3RpZmljYXRpb24uZGFydAppbmRleCA2OGJmZDc1Li5kNDUyY2VlIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9ub3RpZmljYXRpb24uZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9ja3M7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0CnJlbmFtZSB0byBydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvc2NyaXB0LmRhcnQKaW5kZXggN2NlODAxYS4uODk1YjFjOSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvc2NyaXB0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL3NjcmlwdC5kYXJ0CkBAIC0xLDYgKzEsNiBAQAogLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBwYXJ0IG9mIG1vY2tzOwogCmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydApzaW1pbGFyaXR5IGluZGV4IDg2JQpyZW5hbWUgZnJvbSBydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0CmluZGV4IDFjOWMwZjIuLmE3OTU1ODkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9vYmplY3RzL3NvdXJjZV9sb2NhdGlvbi5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy9zb3VyY2VfbG9jYXRpb24uZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvdGFyZ2V0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvdGFyZ2V0LmRhcnQKc2ltaWxhcml0eSBpbmRleCA4MSUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL29iamVjdHMvdGFyZ2V0LmRhcnQKcmVuYW1lIHRvIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy90YXJnZXQuZGFydAppbmRleCBjNWFlMTg5Li4wZDE1ZTVjIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3Mvb2JqZWN0cy90YXJnZXQuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL29iamVjdHMvdGFyZ2V0LmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9ja3M7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy92bS5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9vYmplY3RzL3ZtLmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc0MGI4MwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3Mvb2JqZWN0cy92bS5kYXJ0CkBAIC0wLDAgKzEsMjcgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworcGFydCBvZiBtb2NrczsKKworY2xhc3MgVk1SZWZNb2NrIGltcGxlbWVudHMgTS5WTVJlZiB7CisgIGZpbmFsIFN0cmluZyBuYW1lOworICBmaW5hbCBTdHJpbmcgZGlzcGxheU5hbWU7CisgIGNvbnN0IFZNUmVmTW9jayh7dGhpcy5uYW1lOiAndm0tbmFtZScsIHRoaXMuZGlzcGxheU5hbWU6ICd2bS1kaXNwbGF5LW5hbWUnfSk7Cit9CisKK2NsYXNzIFZNTW9jayBpbXBsZW1lbnRzIE0uVk0geworICBmaW5hbCBTdHJpbmcgbmFtZTsKKyAgZmluYWwgU3RyaW5nIGRpc3BsYXlOYW1lOworICBmaW5hbCBpbnQgYXJjaGl0ZWN0dXJlQml0czsKKyAgZmluYWwgU3RyaW5nIHRhcmdldENQVTsKKyAgZmluYWwgU3RyaW5nIGhvc3RDUFU7CisgIGZpbmFsIFN0cmluZyB2ZXJzaW9uOworICBmaW5hbCBpbnQgcGlkOworICBmaW5hbCBEYXRlVGltZSBzdGFydFRpbWU7CisgIGZpbmFsIEl0ZXJhYmxlPE0uSXNvbGF0ZVJlZj4gaXNvbGF0ZXM7CisKKyAgY29uc3QgVk1Nb2NrKHt0aGlzLm5hbWU6ICd2bS1uYW1lJywgdGhpcy5kaXNwbGF5TmFtZTogJ3ZtLWRpc3BsYXktbmFtZScsCisgICAgICB0aGlzLmFyY2hpdGVjdHVyZUJpdHMsIHRoaXMudGFyZ2V0Q1BVLCB0aGlzLmhvc3RDUFUsIHRoaXMudmVyc2lvbiwKKyAgICAgIHRoaXMucGlkLCB0aGlzLnN0YXJ0VGltZSwgdGhpcy5pc29sYXRlcyA6IGNvbnN0IFtdfSk7Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9jbGFzcy5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzVmZTdiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvY2xhc3MuZGFydApAQCAtMCwwICsxLDMyIEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQorLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK3BhcnQgb2YgbW9ja3M7CisKK3R5cGVkZWYgRnV0dXJlPE0uQ2xhc3M+IENsYXNzUmVwb3NpdG9yeU1vY2tPYmplY3RDYWxsYmFjaygpOwordHlwZWRlZiBGdXR1cmU8TS5DbGFzcz4gQ2xhc3NSZXBvc2l0b3J5TW9ja0dldHRlckNhbGxiYWNrKFN0cmluZyBpZCk7CisKK2NsYXNzIENsYXNzUmVwb3NpdG9yeU1vY2sgaW1wbGVtZW50cyBNLkNsYXNzUmVwb3NpdG9yeSB7CisgIGZpbmFsIENsYXNzUmVwb3NpdG9yeU1vY2tPYmplY3RDYWxsYmFjayBfb2JqZWN0OworICBmaW5hbCBDbGFzc1JlcG9zaXRvcnlNb2NrR2V0dGVyQ2FsbGJhY2sgX2dldDsKKworICBDbGFzc1JlcG9zaXRvcnlNb2NrKHtDbGFzc1JlcG9zaXRvcnlNb2NrT2JqZWN0Q2FsbGJhY2sgb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1JlcG9zaXRvcnlNb2NrR2V0dGVyQ2FsbGJhY2sgZ2V0dGVyfSkKKyAgICA6IF9vYmplY3QgPSBvYmplY3QsCisgICAgICBfZ2V0ID0gZ2V0dGVyOworCisgIEZ1dHVyZTxNLkNsYXNzPiBnZXRPYmplY3QoKXsKKyAgICBpZiAoX29iamVjdCAhPSBudWxsKSB7CisgICAgICByZXR1cm4gX29iamVjdCgpOworICAgIH0KKyAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShudWxsKTsKKyAgfQorCisgIEZ1dHVyZTxNLkNsYXNzPiBnZXQoU3RyaW5nIGlkKXsKKyAgICBpZiAoX2dldCAhPSBudWxsKSB7CisgICAgICByZXR1cm4gX2dldChpZCk7CisgICAgfQorICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKG51bGwpOworICB9Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9ldmVudC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvZXZlbnQuZGFydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzQ4Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvZXZlbnQuZGFydApAQCAtMCwwICsxLDE3MSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitwYXJ0IG9mIG1vY2tzOworCitjbGFzcyBFdmVudFJlcG9zaXRvcnlNb2NrIGltcGxlbWVudHMgTS5FdmVudFJlcG9zaXRvcnkgeworICBmaW5hbCBfb25FdmVudCA9IG5ldyBTdHJlYW1Db250cm9sbGVyPE0uRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25FdmVudCA9PiBfb25FdmVudC5zdHJlYW07CisgIGdldCBvbkV2ZW50SGFzTGlzdGVuZXIgPT4gX29uRXZlbnQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uVk1FdmVudCA9IG5ldyBTdHJlYW1Db250cm9sbGVyPE0uVk1FdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblZNRXZlbnQgPT4gX29uVk1FdmVudC5zdHJlYW07CisgIGdldCBvblZNRXZlbnRIYXNMaXN0ZW5lciA9PiBfb25WTUV2ZW50Lmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vblZNVXBkYXRlID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5FdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblZNVXBkYXRlID0+IF9vblZNVXBkYXRlLnN0cmVhbTsKKyAgZ2V0IG9uVk1VcGRhdGVIYXNMaXN0ZW5lciA9PiBfb25WTVVwZGF0ZS5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25Jc29sYXRlRXZlbnQgPSBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLklzb2xhdGVFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvbklzb2xhdGVFdmVudCA9PiBfb25Jc29sYXRlRXZlbnQuc3RyZWFtOworICBnZXQgb25Jc29sYXRlRXZlbnRIYXNMaXN0ZW5lciA9PiBfb25Jc29sYXRlRXZlbnQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uSXNvbGF0ZVN0YXJ0ID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5Jc29sYXRlU3RhcnRFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvbklzb2xhdGVTdGFydCA9PiBfb25Jc29sYXRlU3RhcnQuc3RyZWFtOworICBnZXQgb25Jc29sYXRlU3RhcnRIYXNMaXN0ZW5lciA9PiBfb25Jc29sYXRlU3RhcnQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uSXNvbGF0ZVJ1bm5hYmxlID0KKyAgICAgIG5ldyBTdHJlYW1Db250cm9sbGVyPE0uSXNvbGF0ZVJ1bm5hYmxlRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25Jc29sYXRlUnVubmFibGUgPT4gX29uSXNvbGF0ZVJ1bm5hYmxlLnN0cmVhbTsKKyAgZ2V0IG9uSXNvbGF0ZVJ1bm5hYmxlSGFzTGlzdGVuZXIgPT4gX29uSXNvbGF0ZVJ1bm5hYmxlLmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vbklzb2xhdGVFeGl0ID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5Jc29sYXRlRXhpdEV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uSXNvbGF0ZUV4aXQgPT4gX29uSXNvbGF0ZUV4aXQuc3RyZWFtOworICBnZXQgb25Jc29sYXRlRXhpdEhhc0xpc3RlbmVyID0+IF9vbklzb2xhdGVFeGl0Lmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vbklzb2xhdGVVcGRhdGUgPQorICAgICAgbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5Jc29sYXRlVXBkYXRlRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25Jc29sYXRlVXBkYXRlID0+IF9vbklzb2xhdGVVcGRhdGUuc3RyZWFtOworICBnZXQgb25Jc29sYXRlVXBkYXRlSGFzTGlzdGVuZXIgPT4gX29uSXNvbGF0ZVVwZGF0ZS5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25Jc29sYXRlUmVsb2FkID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5Jc29sYXRlUmVsb2FkRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25Jc29sYXRlUmVsb2FkID0+IF9vbklzb2xhdGVSZWxvYWQuc3RyZWFtOworICBnZXQgb25Jc29sYXRlUmVsb2FkSGFzTGlzdGVuZXIgPT4gX29uSXNvbGF0ZVJlbG9hZC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25TZXJ2aWNlRXh0ZW5zaW9uQWRkZWQgPQorICAgICAgbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5TZXJ2aWNlRXh0ZW5zaW9uQWRkZWRFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblNlcnZpY2VFeHRlbnNpb25BZGRlZCA9PiBfb25TZXJ2aWNlRXh0ZW5zaW9uQWRkZWQuc3RyZWFtOworICBnZXQgb25TZXJ2aWNlRXh0ZW5zaW9uQWRkZWRIYXNMaXN0ZW5lciA9PgorICAgICAgX29uU2VydmljZUV4dGVuc2lvbkFkZGVkLmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vbkRlYnVnRXZlbnQgPSBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLkRlYnVnRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25EZWJ1Z0V2ZW50ID0+IF9vbkRlYnVnRXZlbnQuc3RyZWFtOworICBnZXQgb25EZWJ1Z0V2ZW50SGFzTGlzdGVuZXIgPT4gX29uRGVidWdFdmVudC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25QYXVzZVN0YXJ0ID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5QYXVzZVN0YXJ0RXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25QYXVzZVN0YXJ0ID0+IF9vblBhdXNlU3RhcnQuc3RyZWFtOworICBnZXQgb25QYXVzZVN0YXJ0SGFzTGlzdGVuZXIgPT4gX29uUGF1c2VTdGFydC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25QYXVzZUV4aXQgPSBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLlBhdXNlRXhpdEV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uUGF1c2VFeGl0ID0+IF9vblBhdXNlRXhpdC5zdHJlYW07CisgIGdldCBvblBhdXNlRXhpdEhhc0xpc3RlbmVyID0+IF9vblBhdXNlRXhpdC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25QYXVzZUJyZWFrcG9pbnQgPQorICAgICAgbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5QYXVzZUJyZWFrcG9pbnRFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblBhdXNlQnJlYWtwb2ludCA9PiBfb25QYXVzZUJyZWFrcG9pbnQuc3RyZWFtOworICBnZXQgb25QYXVzZUJyZWFrcG9pbnRIYXNMaXN0ZW5lciA9PiBfb25QYXVzZUJyZWFrcG9pbnQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uUGF1c2VJbnRlcnJ1cHRlZCA9CisgICAgICBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLlBhdXNlSW50ZXJydXB0ZWRFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblBhdXNlSW50ZXJydXB0ZWQgPT4gX29uUGF1c2VJbnRlcnJ1cHRlZC5zdHJlYW07CisgIGdldCBvblBhdXNlSW50ZXJydXB0ZWRIYXNMaXN0ZW5lciA9PiBfb25QYXVzZUludGVycnVwdGVkLmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vblBhdXNlRXhjZXB0aW9uID0KKyAgICAgIG5ldyBTdHJlYW1Db250cm9sbGVyPE0uUGF1c2VFeGNlcHRpb25FdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvblBhdXNlRXhjZXB0aW9uID0+IF9vblBhdXNlRXhjZXB0aW9uLnN0cmVhbTsKKyAgZ2V0IG9uUGF1c2VFeGNlcHRpb25IYXNMaXN0ZW5lciA9PiBfb25QYXVzZUV4Y2VwdGlvbi5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25SZXN1bWUgPSBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLlJlc3VtZUV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uUmVzdW1lID0+IF9vblJlc3VtZS5zdHJlYW07CisgIGdldCBvblJlc3VtZUhhc0xpc3RlbmVyID0+IF9vblJlc3VtZS5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25CcmVha3BvaW50QWRkZWQgPQorICAgICAgbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5CcmVha3BvaW50QWRkZWRFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvbkJyZWFrcG9pbnRBZGRlZCA9PiBfb25CcmVha3BvaW50QWRkZWQuc3RyZWFtOworICBnZXQgb25CcmVha3BvaW50QWRkZWRIYXNMaXN0ZW5lciA9PiBfb25CcmVha3BvaW50QWRkZWQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uQnJlYWtwb2ludFJlc29sdmVkID0KKyAgICBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLkJyZWFrcG9pbnRSZXNvbHZlZEV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uQnJlYWtwb2ludFJlc29sdmVkID0+IF9vbkJyZWFrcG9pbnRSZXNvbHZlZC5zdHJlYW07CisgIGdldCBvbkJyZWFrcG9pbnRSZXNvbHZlZEhhc0xpc3RlbmVyID0+IF9vbkJyZWFrcG9pbnRSZXNvbHZlZC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25CcmVha3BvaW50UmVtb3ZlZCA9CisgICAgICBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLkJyZWFrcG9pbnRSZW1vdmVkRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25CcmVha3BvaW50UmVtb3ZlZCA9PiBfb25CcmVha3BvaW50UmVtb3ZlZC5zdHJlYW07CisgIGdldCBvbkJyZWFrcG9pbnRSZW1vdmVkSGFzTGlzdGVuZXIgPT4gX29uQnJlYWtwb2ludFJlbW92ZWQuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uSW5zcGVjdCA9IG5ldyBTdHJlYW1Db250cm9sbGVyPE0uSW5zcGVjdEV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uSW5zcGVjdCA9PiBfb25JbnNwZWN0LnN0cmVhbTsKKyAgZ2V0IG9uSW5zcGVjdEhhc0xpc3RlbmVyID0+IF9vbkluc3BlY3QuaGFzTGlzdGVuZXI7CisKKyAgZmluYWwgX29uR0NFdmVudCA9IG5ldyBTdHJlYW1Db250cm9sbGVyPE0uR0NFdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvbkdDRXZlbnQgPT4gX29uR0NFdmVudC5zdHJlYW07CisgIGdldCBvbkdDRXZlbnRIYXNMaXN0ZW5lciA9PiBfb25HQ0V2ZW50Lmhhc0xpc3RlbmVyOworCisgIGZpbmFsIF9vbkV4dGVuc2lvbkV2ZW50ID0gbmV3IFN0cmVhbUNvbnRyb2xsZXI8TS5FeHRlbnNpb25FdmVudD4uYnJvYWRjYXN0KCk7CisgIGdldCBvbkV4dGVuc2lvbkV2ZW50ID0+IF9vbkV4dGVuc2lvbkV2ZW50LnN0cmVhbTsKKyAgZ2V0IG9uRXh0ZW5zaW9uRXZlbnRIYXNMaXN0ZW5lciA9PiBfb25FeHRlbnNpb25FdmVudC5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25UaW1lbGluZUV2ZW50cyA9CisgICAgICBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLlRpbWVsaW5lRXZlbnRzRXZlbnQ+LmJyb2FkY2FzdCgpOworICBnZXQgb25UaW1lbGluZUV2ZW50cyA9PiBfb25UaW1lbGluZUV2ZW50cy5zdHJlYW07CisgIGdldCBvblRpbWVsaW5lRXZlbnRzRXZlbnRIYXNMaXN0ZW5lciA9PiBfb25UaW1lbGluZUV2ZW50cy5oYXNMaXN0ZW5lcjsKKworICBmaW5hbCBfb25Db25uZWN0aW9uQ2xvc2VkID0KKyAgICAgIG5ldyBTdHJlYW1Db250cm9sbGVyPE0uQ29ubmVjdGlvbkNsb3NlZEV2ZW50Pi5icm9hZGNhc3QoKTsKKyAgZ2V0IG9uQ29ubmVjdGlvbkNsb3NlZCA9PiBfb25Db25uZWN0aW9uQ2xvc2VkLnN0cmVhbTsKKyAgZ2V0IG9uQ29ubmVjdGlvbkNsb3NlZEhhc0xpc3RlbmVyID0+IF9vbkNvbm5lY3Rpb25DbG9zZWQuaGFzTGlzdGVuZXI7CisKKyAgdm9pZCBhZGQoTS5FdmVudCBldmVudCkgeworICAgIF9vbkV2ZW50LmFkZChldmVudCk7CisgICAgaWYgKGV2ZW50IGlzIE0uVk1FdmVudCkgeworICAgICAgX29uVk1FdmVudC5hZGQoZXZlbnQpOworICAgICAgaWYgKGV2ZW50IGlzIE0uVk1VcGRhdGVFdmVudCkgeworICAgICAgICBfb25WTVVwZGF0ZS5hZGQoZXZlbnQpOworICAgICAgfQorICAgIH0gZWxzZSBpZiAoZXZlbnQgaXMgTS5Jc29sYXRlRXZlbnQpIHsKKyAgICAgIF9vbklzb2xhdGVFdmVudC5hZGQoZXZlbnQpOworICAgICAgaWYgKGV2ZW50IGlzIE0uSXNvbGF0ZVN0YXJ0RXZlbnQpIHsKKyAgICAgICAgX29uSXNvbGF0ZVN0YXJ0LmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uSXNvbGF0ZVJ1bm5hYmxlRXZlbnQpIHsKKyAgICAgICAgX29uSXNvbGF0ZVJ1bm5hYmxlLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uSXNvbGF0ZUV4aXRFdmVudCkgeworICAgICAgICBfb25Jc29sYXRlRXhpdC5hZGQoZXZlbnQpOworICAgICAgfSBlbHNlIGlmIChldmVudCBpcyBNLklzb2xhdGVVcGRhdGVFdmVudCkgeworICAgICAgICBfb25Jc29sYXRlVXBkYXRlLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uU2VydmljZUV4dGVuc2lvbkFkZGVkRXZlbnQpIHsKKyAgICAgICAgX29uU2VydmljZUV4dGVuc2lvbkFkZGVkLmFkZChldmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudCBpcyBNLkRlYnVnRXZlbnQpIHsKKyAgICAgIF9vbkRlYnVnRXZlbnQuYWRkKGV2ZW50KTsKKyAgICAgIGlmIChldmVudCBpcyBNLlBhdXNlU3RhcnRFdmVudCkgeworICAgICAgICBfb25QYXVzZVN0YXJ0LmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uUGF1c2VFeGl0RXZlbnQpIHsKKyAgICAgICAgX29uUGF1c2VFeGl0LmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uUGF1c2VCcmVha3BvaW50RXZlbnQpIHsKKyAgICAgICAgX29uUGF1c2VCcmVha3BvaW50LmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uUGF1c2VJbnRlcnJ1cHRlZEV2ZW50KSB7CisgICAgICAgIF9vblBhdXNlSW50ZXJydXB0ZWQuYWRkKGV2ZW50KTsKKyAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaXMgTS5QYXVzZUV4Y2VwdGlvbkV2ZW50KSB7CisgICAgICAgIF9vblBhdXNlRXhjZXB0aW9uLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uUmVzdW1lRXZlbnQpIHsKKyAgICAgICAgX29uUmVzdW1lLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uQnJlYWtwb2ludEFkZGVkRXZlbnQpIHsKKyAgICAgICAgX29uQnJlYWtwb2ludEFkZGVkLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uQnJlYWtwb2ludFJlc29sdmVkRXZlbnQpIHsKKyAgICAgICAgX29uQnJlYWtwb2ludFJlc29sdmVkLmFkZChldmVudCk7CisgICAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uQnJlYWtwb2ludFJlbW92ZWRFdmVudCkgeworICAgICAgICBfb25CcmVha3BvaW50UmVtb3ZlZC5hZGQoZXZlbnQpOworICAgICAgfSBlbHNlIGlmIChldmVudCBpcyBNLkluc3BlY3RFdmVudCkgeworICAgICAgICBfb25JbnNwZWN0LmFkZChldmVudCk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudCBpcyBNLkdDRXZlbnQpIHsKKyAgICAgIF9vbkdDRXZlbnQuYWRkKGV2ZW50KTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50IGlzIE0uRXh0ZW5zaW9uRXZlbnQpIHsKKyAgICAgIF9vbkV4dGVuc2lvbkV2ZW50LmFkZChldmVudCk7CisgICAgfSBlbHNlIGlmIChldmVudCBpcyBNLlRpbWVsaW5lRXZlbnRzRXZlbnQpIHsKKyAgICAgIF9vblRpbWVsaW5lRXZlbnRzLmFkZChldmVudCk7CisgICAgfQorICB9Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9mbGFnLmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc4MmIzMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL2ZsYWcuZGFydApAQCAtMCwwICsxLDE4IEBACisvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQorLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKworcGFydCBvZiBtb2NrczsKKworY2xhc3MgRmxhZ3NSZXBvc2l0b3J5TW9jayBpbXBsZW1lbnRzIE0uRmxhZ3NSZXBvc2l0b3J5IHsKKyAgZmluYWwgSXRlcmFibGU8TS5GbGFnPiBfbGlzdDsKKyAgYm9vbCBpc0xpc3RJbnZva2VkID0gZmFsc2U7CisKKyAgRnV0dXJlPEl0ZXJhYmxlPE0uRmxhZz4+IGxpc3QoKSBhc3luYyB7CisgICAgaXNMaXN0SW52b2tlZCA9IHRydWU7CisgICAgcmV0dXJuIF9saXN0OworICB9CisKKyAgRmxhZ3NSZXBvc2l0b3J5TW9jayh7SXRlcmFibGU8TS5GbGFnPiBsaXN0OiBjb25zdCBbXX0pCisgICAgOiBfbGlzdCA9IG5ldyBMaXN0LnVubW9kaWZpYWJsZShsaXN0KTsKK30KZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL2luc3RhbmNlLmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9pbnN0YW5jZS5kYXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OWRjZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy9pbnN0YW5jZS5kYXJ0CkBAIC0wLDAgKzEsMjEgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworcGFydCBvZiBtb2NrczsKKwordHlwZWRlZiBGdXR1cmU8TS5JbnN0YW5jZT4gSW5zdGFuY2VSZXBvc2l0b3J5TW9ja0NhbGxiYWNrKFN0cmluZyBpZCk7CisKK2NsYXNzIEluc3RhbmNlUmVwb3NpdG9yeU1vY2sgaW1wbGVtZW50cyBNLkluc3RhbmNlUmVwb3NpdG9yeSB7CisgIGZpbmFsIEluc3RhbmNlUmVwb3NpdG9yeU1vY2tDYWxsYmFjayBfZ2V0OworCisgIEluc3RhbmNlUmVwb3NpdG9yeU1vY2soe0luc3RhbmNlUmVwb3NpdG9yeU1vY2tDYWxsYmFjayBnZXR0ZXJ9KQorICAgIDogX2dldCA9IGdldHRlcjsKKworICBGdXR1cmU8TS5JbnN0YW5jZT4gZ2V0KFN0cmluZyBpZCl7CisgICAgaWYgKF9nZXQgIT0gbnVsbCkgeworICAgICAgcmV0dXJuIF9nZXQoaWQpOworICAgIH0KKyAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShudWxsKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy9ub3RpZmljYXRpb24uZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0CnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKcmVuYW1lIHRvIHJ1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL25vdGlmaWNhdGlvbi5kYXJ0CmluZGV4IGNmN2YyYjkuLmYwM2NkMjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvbGliL3NyYy9tb2Nrcy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvbm90aWZpY2F0aW9uLmRhcnQKQEAgLTEsNiArMSw2IEBACiAvLyBDb3B5cmlnaHQgKGMpIDIwMTYsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQogLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKy8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIHBhcnQgb2YgbW9ja3M7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvc2NyaXB0LmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhiOTYxMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbW9ja3MvcmVwb3NpdG9yaWVzL3NjcmlwdC5kYXJ0CkBAIC0wLDAgKzEsMjEgQEAKKy8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCisvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworcGFydCBvZiBtb2NrczsKKwordHlwZWRlZiBGdXR1cmU8TS5TY3JpcHQ+IFNjcmlwdFJlcG9zaXRvcnlNb2NrQ2FsbGJhY2soU3RyaW5nIGlkKTsKKworY2xhc3MgU2NyaXB0UmVwb3NpdG9yeU1vY2sgaW1wbGVtZW50cyBNLlNjcmlwdFJlcG9zaXRvcnkgeworICBmaW5hbCBTY3JpcHRSZXBvc2l0b3J5TW9ja0NhbGxiYWNrIF9nZXQ7CisKKyAgU2NyaXB0UmVwb3NpdG9yeU1vY2soe1NjcmlwdFJlcG9zaXRvcnlNb2NrQ2FsbGJhY2sgZ2V0dGVyfSkKKyAgICA6IF9nZXQgPSBnZXR0ZXI7CisKKyAgRnV0dXJlPE0uU2NyaXB0PiBnZXQoU3RyaW5nIGlkKXsKKyAgICBpZiAoX2dldCAhPSBudWxsKSB7CisgICAgICByZXR1cm4gX2dldChpZCk7CisgICAgfQorICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKG51bGwpOworICB9Cit9CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L2xpYi9zcmMvbW9ja3MvcmVwb3NpdG9yaWVzL3RhcmdldC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZyb20gcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydApyZW5hbWUgdG8gcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9tb2Nrcy9yZXBvc2l0b3JpZXMvdGFyZ2V0LmRhcnQKaW5kZXggODMyMWY4Ni4uMWM3ZjNlZCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS9saWIvc3JjL21vY2tzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL21vY2tzL3JlcG9zaXRvcmllcy90YXJnZXQuZGFydApAQCAtMSw2ICsxLDYgQEAKIC8vIENvcHlyaWdodCAoYykgMjAxNiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogcGFydCBvZiBtb2NrczsKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvYmFyL2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvYmFyL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGZlNTQ3ODUuLjk4Yjk2NTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L2Jhci9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9iYXIvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTksMTEgKzksMTEgQEAKICAgTmF2QmFyRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAKICAgdGVzdCgnaW5zdGFudGlhdGlvbicsICgpIHsKLSAgICBmaW5hbCBOYXZCYXJFbGVtZW50IGUgPSBuZXcgTmF2QmFyRWxlbWVudCgpOworICAgIGZpbmFsIGUgPSBuZXcgTmF2QmFyRWxlbWVudCgpOwogICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgfSk7CiAgIHRlc3QoJ2VsZW1lbnRzIGNyZWF0ZWQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTmF2QmFyRWxlbWVudCBlID0gbmV3IE5hdkJhckVsZW1lbnQoKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdkJhckVsZW1lbnQoKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgZXhwZWN0KGUuc2hhZG93Um9vdC5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9jbGFzcy1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvY2xhc3MtbWVudS9lbGVtZW50X3Rlc3QuZGFydAppbmRleCBkZjgzZWE0Li4xYjM3NjZkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9jbGFzcy1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L2NsYXNzLW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTMsMjIgKzMsMjIgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9ja3MuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9jbGFzc19tZW51LmRhcnQnOworaW1wb3J0ICcuLi8uLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpewogICBOYXZDbGFzc01lbnVFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBJc29sYXRlUmVmTW9jayBpX3JlZiA9IGNvbnN0IElzb2xhdGVSZWZNb2NrKGlkOiAnaS1pZCcsIG5hbWU6ICdpLW5hbWUnKTsKLSAgZmluYWwgQ2xhc3NSZWZNb2NrIGNfcmVmID0gY29uc3QgQ2xhc3NSZWZNb2NrKGlkOiAnYy1pZCcsIG5hbWU6ICdjLW5hbWUnKTsKKyAgZmluYWwgaV9yZWYgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnaS1uYW1lJyk7CisgIGZpbmFsIGNfcmVmID0gY29uc3QgQ2xhc3NSZWZNb2NrKGlkOiAnYy1pZCcsIG5hbWU6ICdjLW5hbWUnKTsKICAgdGVzdCgnaW5zdGFudGlhdGlvbicsICgpIHsKLSAgICBmaW5hbCBOYXZDbGFzc01lbnVFbGVtZW50IGUgPSBuZXcgTmF2Q2xhc3NNZW51RWxlbWVudChpX3JlZiwgY19yZWYpOworICAgIGZpbmFsIGUgPSBuZXcgTmF2Q2xhc3NNZW51RWxlbWVudChpX3JlZiwgY19yZWYpOwogICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMoaV9yZWYpKTsKICAgICBleHBlY3QoZS5jbHMsIGVxdWFscyhjX3JlZikpOwogICB9KTsKICAgdGVzdCgnZWxlbWVudHMgY3JlYXRlZCBhZnRlciBhdHRhY2htZW50JywgKCkgYXN5bmMgewotICAgIGZpbmFsIE5hdkNsYXNzTWVudUVsZW1lbnQgZSA9IG5ldyBOYXZDbGFzc01lbnVFbGVtZW50KGlfcmVmLCBjX3JlZik7CisgICAgZmluYWwgZSA9IG5ldyBOYXZDbGFzc01lbnVFbGVtZW50KGlfcmVmLCBjX3JlZik7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIGV4cGVjdChlLnNoYWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvaXNvbGF0ZS1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvaXNvbGF0ZS1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IDI3YmY3OWMuLjIzNTk3NWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L2lzb2xhdGUtbWVudS9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9pc29sYXRlLW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTIsNDEgKzIsMzYgQEAKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwotaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9ja3MuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9tZW51LmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9uYXYvaXNvbGF0ZV9tZW51LmRhcnQnOworaW1wb3J0ICcuLi8uLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpewogICBOYXZJc29sYXRlTWVudUVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCi0gIGZpbmFsIFN0cmluZyB0YWcgPSBOYXZNZW51RWxlbWVudC50YWcubmFtZTsKKyAgZmluYWwgdGFnID0gTmF2TWVudUVsZW1lbnQudGFnLm5hbWU7CiAKLSAgU3RyZWFtQ29udHJvbGxlcjxJc29sYXRlVXBkYXRlRXZlbnQ+IHVwZGF0ZXNDb250cm9sbGVyOwotICBmaW5hbCBJc29sYXRlUmVmTW9jayByZWYgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnb2xkLW5hbWUnKTsKLSAgZmluYWwgSXNvbGF0ZU1vY2sgb2JqID0gY29uc3QgSXNvbGF0ZU1vY2soaWQ6ICdpLWlkJywgbmFtZTogJ25ldy1uYW1lJyk7CisgIEV2ZW50UmVwb3NpdG9yeU1vY2sgZXZlbnRzOworICBmaW5hbCByZWYgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2ktaWQnLCBuYW1lOiAnb2xkLW5hbWUnKTsKKyAgZmluYWwgb2JqID0gY29uc3QgSXNvbGF0ZU1vY2soaWQ6ICdpLWlkJywgbmFtZTogJ25ldy1uYW1lJyk7CiAgIHNldFVwKCgpIHsKLSAgICB1cGRhdGVzQ29udHJvbGxlciA9IG5ldyBTdHJlYW1Db250cm9sbGVyPElzb2xhdGVVcGRhdGVFdmVudD4oKTsKKyAgICBldmVudHMgPSBuZXcgRXZlbnRSZXBvc2l0b3J5TW9jaygpOwogICB9KTsKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgdGVzdCgnSXNvbGF0ZVJlZicsICgpIHsKLSAgICAgIGZpbmFsIE5hdklzb2xhdGVNZW51RWxlbWVudCBlID0gbmV3IE5hdklzb2xhdGVNZW51RWxlbWVudChyZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdklzb2xhdGVNZW51RWxlbWVudChyZWYsIGV2ZW50cyk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMocmVmKSk7CiAgICAgfSk7CiAgICAgdGVzdCgnSXNvbGF0ZScsICgpIHsKLSAgICAgIGZpbmFsIE5hdklzb2xhdGVNZW51RWxlbWVudCBlID0gbmV3IE5hdklzb2xhdGVNZW51RWxlbWVudChvYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdklzb2xhdGVNZW51RWxlbWVudChvYmosIGV2ZW50cyk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMob2JqKSk7CiAgICAgfSk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTmF2SXNvbGF0ZU1lbnVFbGVtZW50IGUgPSBuZXcgTmF2SXNvbGF0ZU1lbnVFbGVtZW50KHJlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSk7CisgICAgZmluYWwgZSA9IG5ldyBOYXZJc29sYXRlTWVudUVsZW1lbnQocmVmLCBldmVudHMpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5zaGFkb3dSb290LmNoaWxkcmVuLmxlbmd0aCwgaXNOb25aZXJvLCByZWFzb246ICdoYXMgZWxlbWVudHMnKTsKQEAgLTQ2LDI0ICs0MSwyMiBAQAogICB9KTsKICAgZ3JvdXAoJ3VwZGF0ZXMnLCAoKSB7CiAgICAgdGVzdCgnYXJlIGNvcnJlY3RseSBsaXN0ZW4nLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBOYXZJc29sYXRlTWVudUVsZW1lbnQgZSA9IG5ldyBOYXZJc29sYXRlTWVudUVsZW1lbnQocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOwotICAgICAgZXhwZWN0KHVwZGF0ZXNDb250cm9sbGVyLmhhc0xpc3RlbmVyLCBpc0ZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2SXNvbGF0ZU1lbnVFbGVtZW50KHJlZiwgZXZlbnRzKTsKKyAgICAgIGV4cGVjdChldmVudHMub25Jc29sYXRlVXBkYXRlSGFzTGlzdGVuZXIsIGlzRmFsc2UpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7Ci0gICAgICBleHBlY3QodXBkYXRlc0NvbnRyb2xsZXIuaGFzTGlzdGVuZXIsIGlzVHJ1ZSk7CisgICAgICBleHBlY3QoZXZlbnRzLm9uSXNvbGF0ZVVwZGF0ZUhhc0xpc3RlbmVyLCBpc1RydWUpOwogICAgICAgZS5yZW1vdmUoKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKLSAgICAgIGV4cGVjdCh1cGRhdGVzQ29udHJvbGxlci5oYXNMaXN0ZW5lciwgaXNGYWxzZSk7CisgICAgICBleHBlY3QoZXZlbnRzLm9uSXNvbGF0ZVVwZGF0ZUhhc0xpc3RlbmVyLCBpc0ZhbHNlKTsKICAgICB9KTsKICAgICB0ZXN0KCdoYXZlIGVmZmVjdHMnLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBOYXZJc29sYXRlTWVudUVsZW1lbnQgZSA9IG5ldyBOYXZJc29sYXRlTWVudUVsZW1lbnQocmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZJc29sYXRlTWVudUVsZW1lbnQocmVmLCBldmVudHMpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoKGUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKHRhZykgYXMgTmF2TWVudUVsZW1lbnQpCiAgICAgICAgICAgICAgLmxhYmVsLmNvbnRhaW5zKHJlZi5uYW1lKSwgaXNUcnVlKTsKLSAgICAgIHVwZGF0ZXNDb250cm9sbGVyLmFkZChuZXcgSXNvbGF0ZVVwZGF0ZUV2ZW50TW9jayhpc29sYXRlOiBvYmopKTsKKyAgICAgIGV2ZW50cy5hZGQobmV3IElzb2xhdGVVcGRhdGVFdmVudE1vY2soaXNvbGF0ZTogb2JqKSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoKGUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKHRhZykgYXMgTmF2TWVudUVsZW1lbnQpCiAgICAgICAgICAgICAgLmxhYmVsLmNvbnRhaW5zKHJlZi5uYW1lKSwgaXNGYWxzZSk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9saWJyYXJ5LW1lbnUvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9saWJyYXJ5LW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggZjY5NjdjOS4uMjE0NDUyMCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbGlicmFyeS1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L2xpYnJhcnktbWVudS9lbGVtZW50X3Rlc3QuZGFydApAQCAtMywyMiArMywyMiBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIGltcG9ydCAnZGFydDpodG1sJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L2xpYnJhcnlfbWVudS5kYXJ0JzsKK2ltcG9ydCAnLi4vLi4vbW9ja3MuZGFydCc7CiAKIG1haW4oKXsKICAgTmF2TGlicmFyeU1lbnVFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBJc29sYXRlUmVmTW9jayBpX3JlZiA9IGNvbnN0IElzb2xhdGVSZWZNb2NrKGlkOiAnaS1pZCcsIG5hbWU6ICdpLW5hbWUnKTsKLSAgZmluYWwgTGlicmFyeVJlZk1vY2sgbF9yZWYgPSBjb25zdCBMaWJyYXJ5UmVmTW9jayhpZDogJ2wtaWQnLCBuYW1lOiAnbC1uYW1lJyk7CisgIGZpbmFsIGlfcmVmID0gY29uc3QgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpLWlkJywgbmFtZTogJ2ktbmFtZScpOworICBmaW5hbCBsX3JlZiA9IGNvbnN0IExpYnJhcnlSZWZNb2NrKGlkOiAnbC1pZCcsIG5hbWU6ICdsLW5hbWUnKTsKICAgdGVzdCgnaW5zdGFudGlhdGlvbicsICgpIHsKLSAgICBmaW5hbCBOYXZMaWJyYXJ5TWVudUVsZW1lbnQgZSA9IG5ldyBOYXZMaWJyYXJ5TWVudUVsZW1lbnQoaV9yZWYsIGxfcmVmKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdkxpYnJhcnlNZW51RWxlbWVudChpX3JlZiwgbF9yZWYpOwogICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMoaV9yZWYpKTsKICAgICBleHBlY3QoZS5saWJyYXJ5LCBlcXVhbHMobF9yZWYpKTsKICAgfSk7CiAgIHRlc3QoJ2VsZW1lbnRzIGNyZWF0ZWQgYWZ0ZXIgYXR0YWNobWVudCcsICgpIGFzeW5jIHsKLSAgICBmaW5hbCBOYXZMaWJyYXJ5TWVudUVsZW1lbnQgZSA9IG5ldyBOYXZMaWJyYXJ5TWVudUVsZW1lbnQoaV9yZWYsIGxfcmVmKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdkxpYnJhcnlNZW51RWxlbWVudChpX3JlZiwgbF9yZWYpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5zaGFkb3dSb290LmNoaWxkcmVuLmxlbmd0aCwgaXNOb25aZXJvLCByZWFzb246ICdoYXMgZWxlbWVudHMnKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L21lbnUtaXRlbS9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L21lbnUtaXRlbS9lbGVtZW50X3Rlc3QuZGFydAppbmRleCBmNGVlNTUxLi5kNDM5YTYwIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9tZW51LWl0ZW0vZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbWVudS1pdGVtL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0xMiwxMiArMTIsMTIgQEAKICAgICBmaW5hbCBsYWJlbCA9ICdjdXN0b20tbGFiZWwnOwogICAgIGZpbmFsIGxpbmsgPSAnbGluay10by10YXJnZXQnOwogICAgIHRlc3QoJ2xhYmVsJywgKCkgewotICAgICAgZmluYWwgTmF2TWVudUl0ZW1FbGVtZW50IGUgPSBuZXcgTmF2TWVudUl0ZW1FbGVtZW50KGxhYmVsKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2TWVudUl0ZW1FbGVtZW50KGxhYmVsKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmxhYmVsLCBlcXVhbHMobGFiZWwpLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CiAgICAgdGVzdCgnbGFiZWwnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZNZW51SXRlbUVsZW1lbnQgZSA9IG5ldyBOYXZNZW51SXRlbUVsZW1lbnQobGFiZWwsIGxpbms6IGxpbmspOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51SXRlbUVsZW1lbnQobGFiZWwsIGxpbms6IGxpbmspOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUubGluaywgZXF1YWxzKGxpbmspLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CkBAIC0yNSw3ICsyNSw3IEBACiAgIGdyb3VwKCdlbGVtZW50cycsICgpIHsKICAgICB0ZXN0KCdjcmVhdGVkJywgKCkgYXN5bmMgewogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKLSAgICAgIGZpbmFsIE5hdk1lbnVJdGVtRWxlbWVudCBlID0gbmV3IE5hdk1lbnVJdGVtRWxlbWVudChsYWJlbCk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdk1lbnVJdGVtRWxlbWVudChsYWJlbCk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLnNoYWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtMzgsNyArMzgsNyBAQAogICAgIHRlc3QoJ3JlYWN0IHRvIGxhYmVsIGNoYW5nZScsICgpIGFzeW5jIHsKICAgICAgIGZpbmFsIGxhYmVsMSA9ICdjdXN0b20tbGFiZWwtMSc7CiAgICAgICBmaW5hbCBsYWJlbDIgPSAnY3VzdG9tLWxhYmVsLTInOwotICAgICAgZmluYWwgTmF2TWVudUl0ZW1FbGVtZW50IGUgPSBuZXcgTmF2TWVudUl0ZW1FbGVtZW50KGxhYmVsMSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdk1lbnVJdGVtRWxlbWVudChsYWJlbDEpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5zaGFkb3dSb290LmlubmVySHRtbC5jb250YWlucyhsYWJlbDEpLCBpc1RydWUpOwpAQCAtNTQsNyArNTQsNyBAQAogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKICAgICAgIGZpbmFsIGxpbmsxID0gJ2N1c3RvbS1sYWJlbC0xJzsKICAgICAgIGZpbmFsIGxpbmsyID0gJ2N1c3RvbS1sYWJlbC0yJzsKLSAgICAgIGZpbmFsIE5hdk1lbnVJdGVtRWxlbWVudCBlID0gbmV3IE5hdk1lbnVJdGVtRWxlbWVudChsYWJlbCwgbGluazogbGluazEpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51SXRlbUVsZW1lbnQobGFiZWwsIGxpbms6IGxpbmsxKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgZXhwZWN0KGUuc2hhZG93Um9vdC5pbm5lckh0bWwuY29udGFpbnMobGluazEpLCBpc1RydWUpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbWVudS9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L21lbnUvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMGNhYmMzYy4uN2UzMjA4NiAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbWVudS9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9tZW51L2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0xMSwxNyArMTEsMTcgQEAKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKICAgICB0ZXN0KCdsYWJlbCcsICgpIHsKLSAgICAgIGZpbmFsIE5hdk1lbnVFbGVtZW50IGUgPSBuZXcgTmF2TWVudUVsZW1lbnQobGFiZWwpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbCk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5sYWJlbCwgZXF1YWxzKGxhYmVsKSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdCBsYXN0JywgKCkgewotICAgICAgZmluYWwgTmF2TWVudUVsZW1lbnQgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbCwgbGFzdDogZmFsc2UpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbCwgbGFzdDogZmFsc2UpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUubGFzdCwgaXNGYWxzZSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICAgIHRlc3QoJ2xhc3QnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZNZW51RWxlbWVudCBlID0gbmV3IE5hdk1lbnVFbGVtZW50KGxhYmVsLCBsYXN0OiB0cnVlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2TWVudUVsZW1lbnQobGFiZWwsIGxhc3Q6IHRydWUpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUubGFzdCwgaXNUcnVlLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CkBAIC0yOSw3ICsyOSw3IEBACiAgIGdyb3VwKCdlbGVtZW50cycsICgpIHsKICAgICB0ZXN0KCdjcmVhdGVkJywgKCkgYXN5bmMgewogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKLSAgICAgIGZpbmFsIE5hdk1lbnVFbGVtZW50IGUgPSBuZXcgTmF2TWVudUVsZW1lbnQobGFiZWwpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbCk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLnNoYWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtNDIsNyArNDIsNyBAQAogICAgIHRlc3QoJ3JlYWN0IHRvIGxhYmVsIGNoYW5nZScsICgpIGFzeW5jIHsKICAgICAgIGZpbmFsIGxhYmVsMSA9ICdjdXN0b20tbGFiZWwtMSc7CiAgICAgICBmaW5hbCBsYWJlbDIgPSAnY3VzdG9tLWxhYmVsLTInOwotICAgICAgZmluYWwgTmF2TWVudUVsZW1lbnQgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbDEpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZNZW51RWxlbWVudChsYWJlbDEpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5zaGFkb3dSb290LmlubmVySHRtbC5jb250YWlucyhsYWJlbDEpLCBpc1RydWUpOwpAQCAtNTYsNyArNTYsNyBAQAogICAgIH0pOwogICAgIHRlc3QoJ3JlYWN0IHRvIGxhc3QgY2hhbmdlJywgKCkgYXN5bmMgewogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKLSAgICAgIGZpbmFsIE5hdk1lbnVFbGVtZW50IGUgPSBuZXcgTmF2TWVudUVsZW1lbnQobGFiZWwsIGxhc3Q6IGZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2TWVudUVsZW1lbnQobGFiZWwsIGxhc3Q6IGZhbHNlKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgZXhwZWN0KGUuc2hhZG93Um9vdC5pbm5lckh0bWwuY29udGFpbnMoJyZndDsnKSwgaXNUcnVlKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeS9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeS9lbGVtZW50X3Rlc3QuZGFydAppbmRleCA2NGFkY2ZiLi45Y2VlNmNmIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9ub3RpZnkvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbm90aWZ5L2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDExICszLDExIEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnIGhpZGUgTm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25FdmVudDsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L25vdGlmeS5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9ldmVudC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9leGNlcHRpb24uZGFydCc7CitpbXBvcnQgJy4uLy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCkgewogICBOYXZOb3RpZnlFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKQEAgLTE5LDI5ICsxOSwyOSBAQAogICBjb25zdCBpc29sYXRlID0gY29uc3QgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpLWlkJywgbmFtZTogJ2ktbmFtZScpOwogCiAgIGdyb3VwKCdpbnN0YW50aWF0aW9uJywgKCkgeworICAgIE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrIHJlcG9zaXRvcnk7CisgICAgc2V0VXAoKCkgeworICAgICAgcmVwb3NpdG9yeSA9IG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpOworICAgIH0pOwogICAgIHRlc3QoJ2RlZmF1bHQnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZOb3RpZnlFbGVtZW50IGUgPSBuZXcgTmF2Tm90aWZ5RWxlbWVudCgKLSAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUVsZW1lbnQocmVwb3NpdG9yeSk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5ub3RpZnlPblBhdXNlLCBpc1RydWUsIHJlYXNvbjogJ25vdGlmeU9uUGF1c2UgaXMgZGVmYXVsdCcpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdGlmeSBvbiBwYXVzZScsICgpIHsKLSAgICAgIGZpbmFsIE5hdk5vdGlmeUVsZW1lbnQgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KAotICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpLCBub3RpZnlPblBhdXNlOiB0cnVlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2Tm90aWZ5RWxlbWVudChyZXBvc2l0b3J5LCBub3RpZnlPblBhdXNlOiB0cnVlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLm5vdGlmeU9uUGF1c2UsIGlzVHJ1ZSwgcmVhc29uOiAnbm90aWZ5T25QYXVzZSBpcyB0aGUgc2FtZScpOwogICAgIH0pOwogICAgIHRlc3QoJ2RvIG5vdCBub3RpZnkgb24gcGF1c2UnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZOb3RpZnlFbGVtZW50IGUgPSBuZXcgTmF2Tm90aWZ5RWxlbWVudCgKLSAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSwgbm90aWZ5T25QYXVzZTogZmFsc2UpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KHJlcG9zaXRvcnksIG5vdGlmeU9uUGF1c2U6IGZhbHNlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLm5vdGlmeU9uUGF1c2UsIGlzRmFsc2UsIHJlYXNvbjogJ25vdGlmeU9uUGF1c2UgaXMgdGhlIHNhbWUnKTsKICAgICB9KTsKICAgfSk7CiAgIHRlc3QoJ2lzIGNvcnJlY3RseSBsaXN0ZW5pbmcnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2sgcmVwb3NpdG9yeSA9Ci0gICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpOwotICAgIGZpbmFsIE5hdk5vdGlmeUVsZW1lbnQgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KHJlcG9zaXRvcnkpOworICAgIGZpbmFsIHJlcG9zaXRvcnkgPSBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUVsZW1lbnQocmVwb3NpdG9yeSk7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIGV4cGVjdChyZXBvc2l0b3J5Lmhhc0xpc3RlbmVycywgaXNUcnVlLCByZWFzb246ICdpcyBsaXN0ZW5pbmcnKTsKQEAgLTUxLDEzICs1MSwxMyBAQAogICB9KTsKICAgZ3JvdXAoJ2VsZW1lbnRzJywgKCkgewogICAgIHRlc3QoJ2NyZWF0ZWQgYWZ0ZXIgYXR0YWNobWVudCcsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrIHJlcG9zaXRvcnkgPQorICAgICAgZmluYWwgcmVwb3NpdG9yeSA9CiAgICAgICAgICAgbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKGxpc3Q6IFsKICAgICAgICAgICAgIG5ldyBFeGNlcHRpb25Ob3RpZmljYXRpb25Nb2NrKGV4Y2VwdGlvbjogbmV3IEV4Y2VwdGlvbigiZXgiKSksCiAgICAgICAgICAgICBjb25zdCBFdmVudE5vdGlmaWNhdGlvbk1vY2soZXZlbnQ6IGNvbnN0IFZNVXBkYXRlRXZlbnRNb2NrKHZtOiB2bSkpLAogICAgICAgICAgICAgY29uc3QgRXZlbnROb3RpZmljYXRpb25Nb2NrKGV2ZW50OiBjb25zdCBWTVVwZGF0ZUV2ZW50TW9jayh2bTogdm0pKQogICAgICAgICAgIF0pOwotICAgICAgZmluYWwgTmF2Tm90aWZ5RWxlbWVudCBlID0gbmV3IE5hdk5vdGlmeUVsZW1lbnQocmVwb3NpdG9yeSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUVsZW1lbnQocmVwb3NpdG9yeSk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChyZXBvc2l0b3J5Lmxpc3RJbnZva2VkLCBpc1RydWUsIHJlYXNvbjogJ3Nob3VsZCBpbnZva2UgbGlzdCgpJyk7CkBAIC03Niw4ICs3Niw3IEBACiAgICAgICAgICAgICBjb25zdCBFdmVudE5vdGlmaWNhdGlvbk1vY2soCiAgICAgICAgICAgICAgICAgZXZlbnQ6IGNvbnN0IFBhdXNlU3RhcnRFdmVudE1vY2soaXNvbGF0ZTogaXNvbGF0ZSkpCiAgICAgICAgICAgXSk7Ci0gICAgICBmaW5hbCBOYXZOb3RpZnlFbGVtZW50IGUgPSBuZXcgTmF2Tm90aWZ5RWxlbWVudChyZXBvc2l0b3J5LAotICAgICAgICAgIG5vdGlmeU9uUGF1c2U6IHRydWUpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KHJlcG9zaXRvcnksIG5vdGlmeU9uUGF1c2U6IHRydWUpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5xdWVyeVNlbGVjdG9yQWxsKGV2VGFnKS5sZW5ndGgsIGVxdWFscygyKSk7CkBAIC05OSwxMCArOTgsOCBAQAogICAgICAgICBuZXcgRXhjZXB0aW9uTm90aWZpY2F0aW9uTW9jayhleGNlcHRpb246IG5ldyBFeGNlcHRpb24oImV4IikpLAogICAgICAgICBjb25zdCBFdmVudE5vdGlmaWNhdGlvbk1vY2soZXZlbnQ6IGNvbnN0IFZNVXBkYXRlRXZlbnRNb2NrKCkpLAogICAgICAgXTsKLSAgICAgIGZpbmFsIE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrIHJlcG9zaXRvcnkgPQotICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jayhsaXN0OiBsaXN0KTsKLSAgICAgIGZpbmFsIE5hdk5vdGlmeUVsZW1lbnQgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KHJlcG9zaXRvcnksCi0gICAgICAgICAgbm90aWZ5T25QYXVzZTogdHJ1ZSk7CisgICAgICBmaW5hbCByZXBvc2l0b3J5ID0gbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKGxpc3Q6IGxpc3QpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZOb3RpZnlFbGVtZW50KHJlcG9zaXRvcnksIG5vdGlmeU9uUGF1c2U6IHRydWUpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5xdWVyeVNlbGVjdG9yQWxsKGV2VGFnKS5sZW5ndGgsIGVxdWFscygxKSk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9ub3RpZnlfZXZlbnQvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9ub3RpZnlfZXZlbnQvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggNWQ1ZGU1Yy4uOWNlYTNmNSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbm90aWZ5X2V2ZW50L2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeV9ldmVudC9lbGVtZW50X3Rlc3QuZGFydApAQCAtNCwyMiArNCwyMiBAQAogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9ldmVudC5kYXJ0JzsKK2ltcG9ydCAnLi4vLi4vbW9ja3MuZGFydCc7CiAKIG1haW4oKSB7CiAgIE5hdk5vdGlmeUV2ZW50RWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAKLSAgZmluYWwgUGF1c2VTdGFydEV2ZW50TW9jayBldmVudCA9IG5ldyBQYXVzZVN0YXJ0RXZlbnRNb2NrKAorICBmaW5hbCBldmVudCA9IG5ldyBQYXVzZVN0YXJ0RXZlbnRNb2NrKAogICAgICAgICAgICAgICBpc29sYXRlOiBuZXcgSXNvbGF0ZU1vY2soaWQ6ICdpc29sYXRlLWlkJywgbmFtZTogJ2lzb2xhdGUtbmFtZScpKTsKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7Ci0gICAgZmluYWwgTmF2Tm90aWZ5RXZlbnRFbGVtZW50IGUgPSBuZXcgTmF2Tm90aWZ5RXZlbnRFbGVtZW50KGV2ZW50KTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUV2ZW50RWxlbWVudChldmVudCk7CiAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIGV4cGVjdChlLmV2ZW50LCBlcXVhbHMoZXZlbnQpKTsKICAgfSk7CiAgIGdyb3VwKCdlbGVtZW50cycsICgpIHsKICAgICB0ZXN0KCdjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBOYXZOb3RpZnlFdmVudEVsZW1lbnQgZSA9IG5ldyBOYXZOb3RpZnlFdmVudEVsZW1lbnQoZXZlbnQpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZOb3RpZnlFdmVudEVsZW1lbnQoZXZlbnQpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9ub3RpZnlfZXhjZXB0aW9uL2Nvbm5lY3Rpb25fZXhjZXB0aW9uX3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeV9leGNlcHRpb24vY29ubmVjdGlvbl9leGNlcHRpb25fdGVzdC5kYXJ0CmluZGV4IGU2YjNiYzIuLmYwOWVkMzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeV9leGNlcHRpb24vY29ubmVjdGlvbl9leGNlcHRpb25fdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeV9leGNlcHRpb24vY29ubmVjdGlvbl9leGNlcHRpb25fdGVzdC5kYXJ0CkBAIC00LDIzICs0LDE5IEBACiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ2RhcnQ6YXN5bmMnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L25vdGlmeV9leGNlcHRpb24uZGFydCc7CitpbXBvcnQgJy4uLy4uL21vY2tzLmRhcnQnOwogCiBtYWluKCkgewogICBOYXZOb3RpZnlFeGNlcHRpb25FbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBDb25uZWN0aW9uRXhjZXB0aW9uIGV4Y2VwdGlvbiA9Ci0gICAgICBuZXcgQ29ubmVjdGlvbkV4Y2VwdGlvbk1vY2sobWVzc2FnZTogJ21lc3NhZ2UnKTsKKyAgZmluYWwgZXhjZXB0aW9uID0gbmV3IENvbm5lY3Rpb25FeGNlcHRpb25Nb2NrKG1lc3NhZ2U6ICdtZXNzYWdlJyk7CiAgIHRlc3QoJ2luc3RhbnRpYXRpb24nLCAoKSB7Ci0gICAgZmluYWwgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudCBlID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXhjZXB0aW9uKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXhjZXB0aW9uKTsKICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudCBlID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXhjZXB0aW9uKTsKKyAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXhjZXB0aW9uKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbm90aWZ5X2V4Y2VwdGlvbi9leGNlcHRpb25fdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvbm90aWZ5X2V4Y2VwdGlvbi9leGNlcHRpb25fdGVzdC5kYXJ0CmluZGV4IGJlOWZkYzUuLjQ2OTZlZTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L25vdGlmeV9leGNlcHRpb24vZXhjZXB0aW9uX3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9ub3RpZnlfZXhjZXB0aW9uL2V4Y2VwdGlvbl90ZXN0LmRhcnQKQEAgLTksNDYgKzksNDIgQEAKIG1haW4oKSB7CiAgIE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCi0gIGZpbmFsIFN0YWNrVHJhY2Ugc3RhY2t0cmFjZSA9IG5ldyBTdGFja1RyYWNlLmZyb21TdHJpbmcoJ3N0YWNrdHJhY2Ugc3RyaW5nJyk7CisgIGZpbmFsIHN0ID0gbmV3IFN0YWNrVHJhY2UuZnJvbVN0cmluZygnc3RhY2t0cmFjZSBzdHJpbmcnKTsKICAgZ3JvdXAoJ25vcm1hbCBleGNlcHRpb24nLCAoKSB7Ci0gICAgZmluYWwgRXhjZXB0aW9uIGV4Y2VwdGlvbiA9IG5ldyBFeGNlcHRpb24oJ2V4Y2VwdGlvbiBtZXNzYWdlJyk7CisgICAgZmluYWwgZXggPSBuZXcgRXhjZXB0aW9uKCdleGNlcHRpb24gbWVzc2FnZScpOwogICAgIGdyb3VwKCdpbnN0YW50aWF0aW9uJywgKCkgewogICAgICAgdGVzdCgnbm8gc3RhY2t0cmFjZScsICgpIHsKLSAgICAgICAgZmluYWwgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudCBlID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXhjZXB0aW9uKTsKKyAgICAgICAgZmluYWwgZSA9IG5ldyBOYXZOb3RpZnlFeGNlcHRpb25FbGVtZW50KGV4KTsKICAgICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwotICAgICAgICBleHBlY3QoZS5leGNlcHRpb24sIGVxdWFscyhleGNlcHRpb24pKTsKKyAgICAgICAgZXhwZWN0KGUuZXhjZXB0aW9uLCBlcXVhbHMoZXgpKTsKICAgICAgICAgZXhwZWN0KGUuc3RhY2t0cmFjZSwgaXNOdWxsKTsKICAgICAgIH0pOwogICAgICAgdGVzdCgnd2l0aCBzdGFja3RyYWNlJywgKCkgewotICAgICAgICBmaW5hbCBOYXZOb3RpZnlFeGNlcHRpb25FbGVtZW50IGUgPQotICAgICAgICAgICAgICBuZXcgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudChleGNlcHRpb24sIHN0YWNrdHJhY2U6IHN0YWNrdHJhY2UpOworICAgICAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXgsIHN0YWNrdHJhY2U6IHN0KTsKICAgICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwotICAgICAgICBleHBlY3QoZS5leGNlcHRpb24sIGVxdWFscyhleGNlcHRpb24pKTsKLSAgICAgICAgZXhwZWN0KGUuc3RhY2t0cmFjZSwgZXF1YWxzKHN0YWNrdHJhY2UpKTsKKyAgICAgICAgZXhwZWN0KGUuZXhjZXB0aW9uLCBlcXVhbHMoZXgpKTsKKyAgICAgICAgZXhwZWN0KGUuc3RhY2t0cmFjZSwgZXF1YWxzKHN0KSk7CiAgICAgICB9KTsKICAgICB9KTsKICAgICBncm91cCgnZWxlbWVudHMnLCAoKSB7CiAgICAgICB0ZXN0KCdjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQgKG5vIHN0YWNrdHJhY2UpJywgKCkgYXN5bmMgewotICAgICAgICBmaW5hbCBOYXZOb3RpZnlFeGNlcHRpb25FbGVtZW50IGUgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudChleGNlcHRpb24pOworICAgICAgICBmaW5hbCBlID0gbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXgpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7Ci0gICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhleGNlcHRpb24udG9TdHJpbmcoKSksIGlzVHJ1ZSk7Ci0gICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhzdGFja3RyYWNlLnRvU3RyaW5nKCkpLCBpc0ZhbHNlKTsKKyAgICAgICAgZXhwZWN0KGUuaW5uZXJIdG1sLmNvbnRhaW5zKGV4LnRvU3RyaW5nKCkpLCBpc1RydWUpOworICAgICAgICBleHBlY3QoZS5pbm5lckh0bWwuY29udGFpbnMoc3QudG9TdHJpbmcoKSksIGlzRmFsc2UpOwogICAgICAgICBlLnJlbW92ZSgpOwogICAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICAgIGV4cGVjdChlLmNoaWxkcmVuLmxlbmd0aCwgaXNaZXJvLCByZWFzb246ICdpcyBlbXB0eScpOwogICAgICAgfSk7CiAgICAgICB0ZXN0KCdjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQgKHdpdGggc3RhY2t0cmFjZSknLCAoKSBhc3luYyB7Ci0gICAgICAgIGZpbmFsIE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQgZSA9Ci0gICAgICAgICAgICAgIG5ldyBOYXZOb3RpZnlFeGNlcHRpb25FbGVtZW50KGV4Y2VwdGlvbiwgc3RhY2t0cmFjZTogc3RhY2t0cmFjZSk7CisgICAgICAgIGZpbmFsIGUgPSBuZXcgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudChleCwgc3RhY2t0cmFjZTogc3QpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7Ci0gICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhleGNlcHRpb24udG9TdHJpbmcoKSksIGlzVHJ1ZSk7Ci0gICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhzdGFja3RyYWNlLnRvU3RyaW5nKCkpLCBpc1RydWUpOworICAgICAgICBleHBlY3QoZS5pbm5lckh0bWwuY29udGFpbnMoZXgudG9TdHJpbmcoKSksIGlzVHJ1ZSk7CisgICAgICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhzdC50b1N0cmluZygpKSwgaXNUcnVlKTsKICAgICAgICAgZS5yZW1vdmUoKTsKICAgICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzWmVybywgcmVhc29uOiAnaXMgZW1wdHknKTsKQEAgLTU4LDcgKzU0LDcgQEAKICAgICAgIE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQgZTsKICAgICAgIFN0cmVhbVN1YnNjcmlwdGlvbiBzdWI7CiAgICAgICBzZXRVcCgoKSBhc3luYyB7Ci0gICAgICAgIGUgPSBuZXcgTmF2Tm90aWZ5RXhjZXB0aW9uRWxlbWVudChleGNlcHRpb24sIHN0YWNrdHJhY2U6IHN0YWNrdHJhY2UpOworICAgICAgICBlID0gbmV3IE5hdk5vdGlmeUV4Y2VwdGlvbkVsZW1lbnQoZXgsIHN0YWNrdHJhY2U6IHN0KTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIH0pOwpAQCAtNzQsOSArNzAsOCBAQAogICAgICAgdGVzdCgnb25EZWxldGUgZXZlbnRzIChET00pJywgKCkgYXN5bmMgewogICAgICAgICBzdWIgPSBlLm9uRGVsZXRlLmxpc3RlbihleHBlY3RBc3luYygoRXhjZXB0aW9uRGVsZXRlRXZlbnQgZXZlbnQpIHsKICAgICAgICAgICBleHBlY3QoZXZlbnQsIGlzTm90TnVsbCwgcmVhc29uOiAnZXZlbnQgaXMgcGFzc2VkJyk7Ci0gICAgICAgICAgZXhwZWN0KGV2ZW50LmV4Y2VwdGlvbiwgZXF1YWxzKGV4Y2VwdGlvbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAnZXhjZXB0aW9uIGlzIHRoZSBzYW1lJyk7Ci0gICAgICAgICAgZXhwZWN0KGV2ZW50LnN0YWNrdHJhY2UsIGVxdWFscyhzdGFja3RyYWNlKSwKKyAgICAgICAgICBleHBlY3QoZXZlbnQuZXhjZXB0aW9uLCBlcXVhbHMoZXgpLCByZWFzb246ICdleGNlcHRpb24gaXMgdGhlIHNhbWUnKTsKKyAgICAgICAgICBleHBlY3QoZXZlbnQuc3RhY2t0cmFjZSwgZXF1YWxzKHN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiAnc3RhY2t0cmFjZSBpcyB0aGUgc2FtZScpOwogICAgICAgICB9LCBjb3VudDogMSwgcmVhc29uOiAnZXZlbnQgaXMgZmlyZWQnKSk7CiAgICAgICAgIGUucXVlcnlTZWxlY3RvcignYnV0dG9uJykuY2xpY2soKTsKQEAgLTg0LDkgKzc5LDggQEAKICAgICAgIHRlc3QoJ29uRGVsZXRlIGV2ZW50cyAoY29kZSknLCAoKSBhc3luYyB7CiAgICAgICAgIHN1YiA9IGUub25EZWxldGUubGlzdGVuKGV4cGVjdEFzeW5jKChFeGNlcHRpb25EZWxldGVFdmVudCBldmVudCkgewogICAgICAgICAgIGV4cGVjdChldmVudCwgaXNOb3ROdWxsLCByZWFzb246ICdldmVudCBpcyBwYXNzZWQnKTsKLSAgICAgICAgICBleHBlY3QoZXZlbnQuZXhjZXB0aW9uLCBlcXVhbHMoZXhjZXB0aW9uKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb246ICdleGNlcHRpb24gaXMgdGhlIHNhbWUnKTsKLSAgICAgICAgICBleHBlY3QoZXZlbnQuc3RhY2t0cmFjZSwgZXF1YWxzKHN0YWNrdHJhY2UpLAorICAgICAgICAgIGV4cGVjdChldmVudC5leGNlcHRpb24sIGVxdWFscyhleCksIHJlYXNvbjogJ2V4Y2VwdGlvbiBpcyB0aGUgc2FtZScpOworICAgICAgICAgIGV4cGVjdChldmVudC5zdGFja3RyYWNlLCBlcXVhbHMoc3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb246ICdzdGFja3RyYWNlIGlzIHRoZSBzYW1lJyk7CiAgICAgICAgIH0sIGNvdW50OiAxLCByZWFzb246ICdldmVudCBpcyBmaXJlZCcpKTsKICAgICAgICAgZS5kZWxldGUoKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L3JlZnJlc2gvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi9yZWZyZXNoL2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IDI2YzNhZGEuLjA1YjMzNzAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L3JlZnJlc2gvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvcmVmcmVzaC9lbGVtZW50X3Rlc3QuZGFydApAQCAtOCwzNCArOCwzNSBAQAogCiBtYWluKCkgewogICBOYXZSZWZyZXNoRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CisKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgdGVzdCgnbm8gcGFyYW1ldGVycycsICgpIHsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmxhYmVsLCBpc05vdE51bGwsIHJlYXNvbjogJ2xhYmVsIGlzIHNldCB0byBkZWZhdWx0Jyk7CiAgICAgICBleHBlY3QoZS5kaXNhYmxlZCwgaXNGYWxzZSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICAgIHRlc3QoJ2xhYmVsJywgKCkgewogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQobGFiZWw6IGxhYmVsKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQobGFiZWw6IGxhYmVsKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmxhYmVsLCBpc05vdE51bGwsIHJlYXNvbjogJ2xhYmVsIGlzIHNldCcpOwogICAgICAgZXhwZWN0KGUubGFiZWwsIGVxdWFscyhsYWJlbCksIHJlYXNvbjogJ2xhYmVsIGlzIHNldCB0byB2YWx1ZScpOwogICAgIH0pOwogICAgIHRlc3QoJ25vdCBkaXNhYmxlZCcsICgpIHsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoZGlzYWJsZWQ6IGZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoZGlzYWJsZWQ6IGZhbHNlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmRpc2FibGVkLCBpc0ZhbHNlLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CiAgICAgdGVzdCgnZGlzYWJsZWQnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZSZWZyZXNoRWxlbWVudCBlID0gbmV3IE5hdlJlZnJlc2hFbGVtZW50KGRpc2FibGVkOiB0cnVlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoZGlzYWJsZWQ6IHRydWUpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUuZGlzYWJsZWQsIGlzVHJ1ZSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICB9KTsKICAgZ3JvdXAoJ2VsZW1lbnRzJywgKCkgewogICAgIHRlc3QoJ2NyZWF0ZWQgYWZ0ZXIgYXR0YWNobWVudCcsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQoKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtNDUsNyArNDYsNyBAQAogICAgIH0pOwogICAgIHRlc3QoJ2NvbnRhaW4gY3VzdG9tIGxhYmVsJywgKCkgYXN5bmMgewogICAgICAgZmluYWwgbGFiZWwgPSAnY3VzdG9tLWxhYmVsJzsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQobGFiZWw6IGxhYmVsKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQobGFiZWw6IGxhYmVsKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgZXhwZWN0KGUuaW5uZXJIdG1sLmNvbnRhaW5zKGxhYmVsKSwgaXNUcnVlKTsKQEAgLTU1LDcgKzU2LDcgQEAKICAgICB0ZXN0KCdyZWFjdCB0byBsYWJlbCBjaGFuZ2UnLCAoKSBhc3luYyB7CiAgICAgICBmaW5hbCBsYWJlbDEgPSAnY3VzdG9tLWxhYmVsLTEnOwogICAgICAgZmluYWwgbGFiZWwyID0gJ2N1c3RvbS1sYWJlbC0yJzsKLSAgICAgIGZpbmFsIE5hdlJlZnJlc2hFbGVtZW50IGUgPSBuZXcgTmF2UmVmcmVzaEVsZW1lbnQobGFiZWw6IGxhYmVsMSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdlJlZnJlc2hFbGVtZW50KGxhYmVsOiBsYWJlbDEpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5pbm5lckh0bWwuY29udGFpbnMobGFiZWwxKSwgaXNUcnVlKTsKQEAgLTY4LDcgKzY5LDcgQEAKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICB9KTsKICAgICB0ZXN0KCdyZWFjdCB0byBkaXNhYmxlZCBjaGFuZ2UnLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBOYXZSZWZyZXNoRWxlbWVudCBlID0gbmV3IE5hdlJlZnJlc2hFbGVtZW50KGRpc2FibGVkOiBmYWxzZSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdlJlZnJlc2hFbGVtZW50KGRpc2FibGVkOiBmYWxzZSk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLmRpc2FibGVkLCBpc0ZhbHNlKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L3RvcC1tZW51L2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvdG9wLW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggZGY5Zjg4Yy4uNWU2MjA2OSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvdG9wLW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvdG9wLW1lbnUvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTksMjcgKzksMjcgQEAKIG1haW4oKSB7CiAgIE5hdlRvcE1lbnVFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBTdHJpbmcgdGFnID0gTmF2TWVudUVsZW1lbnQudGFnLm5hbWU7CisgIGZpbmFsIHRhZyA9IE5hdk1lbnVFbGVtZW50LnRhZy5uYW1lOwogCiAgIGdyb3VwKCdpbnN0YW50aWF0aW9uJywgKCkgewogICAgIHRlc3QoJ2RlZmF1bHQnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZUb3BNZW51RWxlbWVudCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KCk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KCk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CiAgICAgdGVzdCgnbm90IGxhc3QnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZUb3BNZW51RWxlbWVudCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KGxhc3Q6IGZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2VG9wTWVudUVsZW1lbnQobGFzdDogZmFsc2UpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUubGFzdCwgaXNGYWxzZSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICAgIHRlc3QoJ2xhc3QnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZUb3BNZW51RWxlbWVudCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KGxhc3Q6IHRydWUpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZUb3BNZW51RWxlbWVudChsYXN0OiB0cnVlKTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLmxhc3QsIGlzVHJ1ZSwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgIH0pOwogICB9KTsKICAgZ3JvdXAoJ2VsZW1lbnRzJywgKCkgewogICAgIHRlc3QoJ2NyZWF0ZWQnLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBOYXZUb3BNZW51RWxlbWVudCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KCk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdlRvcE1lbnVFbGVtZW50KCk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdChlLnNoYWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtNDAsNyArNDAsNyBAQAogICAgICAgZXhwZWN0KGUuc2hhZG93Um9vdC5jaGlsZHJlbi5sZW5ndGgsIGlzWmVybywgcmVhc29uOiAnaXMgZW1wdHknKTsKICAgICB9KTsKICAgICB0ZXN0KCdyZWFjdCB0byBsYXN0IGNoYW5nZScsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIE5hdlRvcE1lbnVFbGVtZW50IGUgPSBuZXcgTmF2VG9wTWVudUVsZW1lbnQobGFzdDogZmFsc2UpOworICAgICAgZmluYWwgZSA9IG5ldyBOYXZUb3BNZW51RWxlbWVudChsYXN0OiBmYWxzZSk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIGV4cGVjdCgoZS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IodGFnKSBhcyBOYXZNZW51RWxlbWVudCkubGFzdCwgaXNGYWxzZSk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi92bV9tZW51L2VsZW1lbnRfdGVzdC5kYXJ0IGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9uYXYvdm1fbWVudS9lbGVtZW50X3Rlc3QuZGFydAppbmRleCBiMDUzOWZmLi43YWJhOGVkIDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL25hdi92bV9tZW51L2VsZW1lbnRfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvbmF2L3ZtX21lbnUvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTIsMTMgKzIsMTEgQEAKIC8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwotaW1wb3J0ICdkYXJ0OmFzeW5jJzsKIGltcG9ydCAncGFja2FnZTp1bml0dGVzdC91bml0dGVzdC5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2Nrcy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9tb2RlbHMuZGFydCcgYXMgTTsKIGltcG9ydCAncGFja2FnZTpvYnNlcnZhdG9yeS9zcmMvZWxlbWVudHMvbmF2L21lbnUuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9tZW51X2l0ZW0uZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi92bV9tZW51LmRhcnQnOworaW1wb3J0ICcuLi8uLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpewogICBOYXZWTU1lbnVFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKQEAgLTE2LDM1ICsxNCwyMiBAQAogICBmaW5hbCBtVGFnID0gTmF2TWVudUVsZW1lbnQudGFnLm5hbWU7CiAgIGZpbmFsIG1pVGFnID0gTmF2TWVudUl0ZW1FbGVtZW50LnRhZy5uYW1lOwogCi0gIFN0cmVhbUNvbnRyb2xsZXI8TS5WTVVwZGF0ZUV2ZW50PiB1cGRhdGVzQ29udHJvbGxlcjsKLSAgZmluYWwgVGFyZ2V0TW9jayB0YXJnZXQgPSBuZXcgVGFyZ2V0TW9jayhuYW1lOiAndGFyZ2V0LW5hbWUnKTsKLSAgZmluYWwgVk1Nb2NrIHZtMSA9IGNvbnN0IFZNTW9jayhuYW1lOiAndm0tbmFtZS0xJywKKyAgRXZlbnRSZXBvc2l0b3J5TW9jayBldmVudHM7CisgIGZpbmFsIHZtMSA9IGNvbnN0IFZNTW9jayhuYW1lOiAndm0tbmFtZS0xJywgZGlzcGxheU5hbWU6ICdkaXNwbGF5LW5hbWUtMScsCiAgICAgICBpc29sYXRlczogY29uc3QgW2NvbnN0IElzb2xhdGVSZWZNb2NrKGlkOiAnaS1pZC0xJywgbmFtZTogJ2ktbmFtZS0xJyldKTsKLSAgZmluYWwgVk1Nb2NrIHZtMiA9IGNvbnN0IFZNTW9jayhuYW1lOiAndm0tbmFtZS0yJywKKyAgZmluYWwgdm0yID0gY29uc3QgVk1Nb2NrKG5hbWU6ICd2bS1uYW1lLTInLCBkaXNwbGF5TmFtZTogJ2Rpc3BsYXktbmFtZS0yJywKICAgICAgIGlzb2xhdGVzOiBjb25zdCBbY29uc3QgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpLWlkLTEnLCBuYW1lOiAnaS1uYW1lLTEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpLWlkLTInLCBuYW1lOiAnaS1uYW1lLTInKV0pOwogICBzZXRVcCgoKSB7Ci0gICAgdXBkYXRlc0NvbnRyb2xsZXIgPSBuZXcgU3RyZWFtQ29udHJvbGxlcjxNLlZNVXBkYXRlRXZlbnQ+LmJyb2FkY2FzdCgpOworICAgIGV2ZW50cyA9IG5ldyBFdmVudFJlcG9zaXRvcnlNb2NrKCk7CiAgIH0pOwotICBncm91cCgnaW5zdGFudGlhdGlvbicsICgpIHsKLSAgICB0ZXN0KCdubyB0YXJnZXQnLCAoKSB7Ci0gICAgICBmaW5hbCBOYXZWTU1lbnVFbGVtZW50IGUgPSBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bTEsCi0gICAgICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuc3RyZWFtKTsKLSAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKLSAgICAgIGV4cGVjdChlLnZtLCBlcXVhbHModm0xKSk7Ci0gICAgICBleHBlY3QoZS50YXJnZXQsIGlzTnVsbCk7Ci0gICAgfSk7Ci0gICAgdGVzdCgndGFyZ2V0JywgKCkgewotICAgICAgZmluYWwgTmF2Vk1NZW51RWxlbWVudCBlID0gbmV3IE5hdlZNTWVudUVsZW1lbnQodm0xLAotICAgICAgICAgIHVwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSwgdGFyZ2V0OiB0YXJnZXQpOwotICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwotICAgICAgZXhwZWN0KGUudm0sIGVxdWFscyh2bTEpKTsKLSAgICAgIGV4cGVjdChlLnRhcmdldCwgZXF1YWxzKHRhcmdldCkpOwotICAgIH0pOworICB0ZXN0KCdpbnN0YW50aWF0aW9uJywgKCkgeworICAgIGZpbmFsIGUgPSBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bTEsIGV2ZW50cyk7CisgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOworICAgIGV4cGVjdChlLnZtLCBlcXVhbHModm0xKSk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgTmF2Vk1NZW51RWxlbWVudCBlID0gbmV3IE5hdlZNTWVudUVsZW1lbnQodm0xLAotICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOworICAgIGZpbmFsIGUgPSBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bTEsIGV2ZW50cyk7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIGV4cGVjdChlLnNoYWRvd1Jvb3QuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwpAQCAtNTQsMjkgKzM5LDI3IEBACiAgIH0pOwogICBncm91cCgndXBkYXRlcycsICgpIHsKICAgICB0ZXN0KCdhcmUgY29ycmVjdGx5IGxpc3RlbicsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIE5hdlZNTWVudUVsZW1lbnQgZSA9IG5ldyBOYXZWTU1lbnVFbGVtZW50KHZtMSwKLSAgICAgICAgICB1cGRhdGVzQ29udHJvbGxlci5zdHJlYW0pOwotICAgICAgZXhwZWN0KHVwZGF0ZXNDb250cm9sbGVyLmhhc0xpc3RlbmVyLCBpc0ZhbHNlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgTmF2Vk1NZW51RWxlbWVudCh2bTEsIGV2ZW50cyk7CisgICAgICBleHBlY3QoZXZlbnRzLm9uVk1VcGRhdGVIYXNMaXN0ZW5lciwgaXNGYWxzZSk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKLSAgICAgIGV4cGVjdCh1cGRhdGVzQ29udHJvbGxlci5oYXNMaXN0ZW5lciwgaXNUcnVlKTsKKyAgICAgIGV4cGVjdChldmVudHMub25WTVVwZGF0ZUhhc0xpc3RlbmVyLCBpc1RydWUpOwogICAgICAgZS5yZW1vdmUoKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKLSAgICAgIGV4cGVjdCh1cGRhdGVzQ29udHJvbGxlci5oYXNMaXN0ZW5lciwgaXNGYWxzZSk7CisgICAgICBleHBlY3QoZXZlbnRzLm9uVk1VcGRhdGVIYXNMaXN0ZW5lciwgaXNGYWxzZSk7CiAgICAgfSk7CiAgICAgdGVzdCgnaGF2ZSBlZmZlY3RzJywgKCkgYXN5bmMgewotICAgICAgZmluYWwgTmF2Vk1NZW51RWxlbWVudCBlID0gbmV3IE5hdlZNTWVudUVsZW1lbnQodm0xLAotICAgICAgICAgIHVwZGF0ZXNDb250cm9sbGVyLnN0cmVhbSk7CisgICAgICBmaW5hbCBlID0gbmV3IE5hdlZNTWVudUVsZW1lbnQodm0xLCBldmVudHMpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoKGUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKG1UYWcpIGFzIE5hdk1lbnVFbGVtZW50KS5sYWJlbCwKLSAgICAgICAgICBlcXVhbHModm0xLm5hbWUpKTsKKyAgICAgICAgICBlcXVhbHModm0xLmRpc3BsYXlOYW1lKSk7CiAgICAgICBleHBlY3QoZS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwobWlUYWcpLmxlbmd0aCwKICAgICAgICAgICBlcXVhbHModm0xLmlzb2xhdGVzLmxlbmd0aCkpOwotICAgICAgdXBkYXRlc0NvbnRyb2xsZXIuYWRkKG5ldyBWTVVwZGF0ZUV2ZW50TW9jayh2bTogdm0yKSk7CisgICAgICBldmVudHMuYWRkKG5ldyBWTVVwZGF0ZUV2ZW50TW9jayh2bTogdm0yKSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoKGUuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKG1UYWcpIGFzIE5hdk1lbnVFbGVtZW50KS5sYWJlbCwKLSAgICAgICAgICBlcXVhbHModm0yLm5hbWUpKTsKKyAgICAgICAgICBlcXVhbHModm0yLmRpc3BsYXlOYW1lKSk7CiAgICAgICBleHBlY3QoZS5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwobWlUYWcpLmxlbmd0aCwKICAgICAgICAgICBlcXVhbHModm0yLmlzb2xhdGVzLmxlbmd0aCkpOwogICAgICAgZS5yZW1vdmUoKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvc2NyaXB0X3JlZi9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvc2NyaXB0X3JlZi9lbGVtZW50X3Rlc3QuZGFydAppbmRleCBlZGE3ZDQ5Li42ZGMyYjg0IDEwMDY0NAotLS0gYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3NjcmlwdF9yZWYvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9zY3JpcHRfcmVmL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDMyICszLDMxIEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBhcyBNOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9zY3JpcHRfcmVmLmRhcnQnOworaW1wb3J0ICcuLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpIHsKICAgU2NyaXB0UmVmRWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CiAKLSAgZmluYWwgTS5Jc29sYXRlUmVmIGlzb2xhdGUgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2lzb2xhdGUtaWQnKTsKLSAgZmluYWwgTS5TY3JpcHRSZWYgcmVmID0gY29uc3QgU2NyaXB0UmVmTW9jayhpZDogJ3NjcmlwdC1pZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpOiAncGFja2FnZS9maWxlbmFtZS5kYXJ0Jyk7CisgIGNvbnN0IGlzb2xhdGUgPSBjb25zdCBJc29sYXRlUmVmTW9jayhpZDogJ2lzb2xhdGUtaWQnKTsKKyAgY29uc3QgZmlsZSA9ICdmaWxlbmFtZS5kYXJ0JzsKKyAgY29uc3QgcmVmID0gY29uc3QgU2NyaXB0UmVmTW9jayhpZDogJ3NjcmlwdC1pZCcsIHVyaTogJ3BhY2thZ2UvJGZpbGUnKTsKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgdGVzdCgnbm8gcG9zaXRpb24nLCAoKSB7Ci0gICAgICBmaW5hbCBTY3JpcHRSZWZFbGVtZW50IGUgPSBuZXcgU2NyaXB0UmVmRWxlbWVudChpc29sYXRlLCByZWYpOworICAgICAgZmluYWwgZSA9IG5ldyBTY3JpcHRSZWZFbGVtZW50KGlzb2xhdGUsIHJlZik7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMoaXNvbGF0ZSkpOwogICAgICAgZXhwZWN0KGUuc2NyaXB0LCBlcXVhbHMocmVmKSk7CiAgICAgfSk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgU2NyaXB0UmVmRWxlbWVudCBlID0gbmV3IFNjcmlwdFJlZkVsZW1lbnQoaXNvbGF0ZSwgcmVmKTsKKyAgICBmaW5hbCBlID0gbmV3IFNjcmlwdFJlZkVsZW1lbnQoaXNvbGF0ZSwgcmVmKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwogICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhpc29sYXRlLmlkKSwgaXNUcnVlLAogICAgICAgcmVhc29uOiAnbm8gbWVzc2FnZSBpbiB0aGUgY29tcG9uZW50Jyk7Ci0gICAgZXhwZWN0KGUuaW5uZXJIdG1sLmNvbnRhaW5zKCdmaWxlbmFtZS5kYXJ0JyksIGlzVHJ1ZSwKKyAgICBleHBlY3QoZS5pbm5lckh0bWwuY29udGFpbnMoZmlsZSksIGlzVHJ1ZSwKICAgICAgIHJlYXNvbjogJ25vIG1lc3NhZ2UgaW4gdGhlIGNvbXBvbmVudCcpOwogICAgIGUucmVtb3ZlKCk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9zb3VyY2VfbGluay9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvc291cmNlX2xpbmsvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMmQ0Y2ZiYS4uM2RjYjVkZCAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS9zb3VyY2VfbGluay9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3NvdXJjZV9saW5rL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC0zLDQwICszLDQxIEBACiAvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogaW1wb3J0ICdkYXJ0Omh0bWwnOwogaW1wb3J0ICdwYWNrYWdlOnVuaXR0ZXN0L3VuaXR0ZXN0LmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vY2tzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L21vZGVscy5kYXJ0JyBhcyBNOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy9zb3VyY2VfbGluay5kYXJ0JzsKK2ltcG9ydCAnLi4vbW9ja3MuZGFydCc7CiAKIG1haW4oKSB7CiAgIFNvdXJjZUxpbmtFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAotICBmaW5hbCBNLklzb2xhdGVSZWYgaXNvbGF0ZSA9IGNvbnN0IElzb2xhdGVSZWZNb2NrKGlkOiAnaXNvbGF0ZS1pZCcpOwotICBmaW5hbCBNLlNjcmlwdCBzY3JpcHQgPSBuZXcgIFNjcmlwdE1vY2soaWQ6ICdzY3JpcHQtaWQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyaTogJ3BhY2thZ2UvZmlsZW5hbWUuZGFydCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5Ub0xpbmU6IChpbnQgdG9rZW4pID0+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5Ub0NvbDogKGludCB0b2tlbikgPT4gMik7Ci0gIGZpbmFsIE0uU291cmNlTG9jYXRpb24gbG9jYXRpb24gPSBuZXcgU291cmNlTG9jYXRpb25Nb2NrKHNjcmlwdDogc2NyaXB0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuUG9zOiAwLCBlbmRUb2tlblBvczogMSk7Ci0gIE0uU2NyaXB0UmVwb3NpdG9yeSByZXBvc2l0b3J5OwotICBzZXRVcCgoKSB7Ci0gICAgcmVwb3NpdG9yeSA9IG5ldyBTY3JpcHRSZXBvc2l0b3J5TW9jayh7ICdzY3JpcHQtaWQnOiBzY3JpcHQgfSk7Ci0gIH0pOworICBjb25zdCBpc29sYXRlID0gY29uc3QgSXNvbGF0ZVJlZk1vY2soaWQ6ICdpc29sYXRlLWlkJyk7CisgIGNvbnN0IHNjcmlwdF9pZCA9ICdzY3JpcHQtaWQnOworICBjb25zdCBmaWxlID0gJ2ZpbGVuYW1lLmRhcnQnOworICBmaW5hbCBzY3JpcHQgPSBuZXcgU2NyaXB0TW9jayhpZDogc2NyaXB0X2lkLCB1cmk6ICdwYWNrYWdlLyRmaWxlJywKKyAgICAgIHRva2VuVG9MaW5lOiAoaW50IHRva2VuKSA9PiAxLCB0b2tlblRvQ29sOiAoaW50IHRva2VuKSA9PiAyKTsKKyAgZmluYWwgbG9jYXRpb24gPSBuZXcgU291cmNlTG9jYXRpb25Nb2NrKHNjcmlwdDogc2NyaXB0LCB0b2tlblBvczogMCwKKyAgICAgIGVuZFRva2VuUG9zOiAxKTsKICAgdGVzdCgnaW5zdGFudGlhdGlvbicsICgpIHsKLSAgICBmaW5hbCBTb3VyY2VMaW5rRWxlbWVudCBlID0gbmV3IFNvdXJjZUxpbmtFbGVtZW50KGlzb2xhdGUsIGxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeSk7CisgICAgZmluYWwgZSA9IG5ldyBTb3VyY2VMaW5rRWxlbWVudChpc29sYXRlLCBsb2NhdGlvbiwKKyAgICAgICAgbmV3IFNjcmlwdFJlcG9zaXRvcnlNb2NrKCkpOwogICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICBleHBlY3QoZS5pc29sYXRlLCBlcXVhbHMoaXNvbGF0ZSkpOwogICAgIGV4cGVjdChlLmxvY2F0aW9uLCBlcXVhbHMobG9jYXRpb24pKTsKICAgfSk7CiAgIHRlc3QoJ2VsZW1lbnRzIGNyZWF0ZWQgYWZ0ZXIgYXR0YWNobWVudCcsICgpIGFzeW5jIHsKLSAgICBmaW5hbCBTb3VyY2VMaW5rRWxlbWVudCBlID0gbmV3IFNvdXJjZUxpbmtFbGVtZW50KGlzb2xhdGUsIGxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeSk7CisgICAgYm9vbCByZW5kZXJlZCA9IGZhbHNlOworICAgIGZpbmFsIGUgPSBuZXcgU291cmNlTGlua0VsZW1lbnQoaXNvbGF0ZSwgbG9jYXRpb24sCisgICAgICAgIG5ldyBTY3JpcHRSZXBvc2l0b3J5TW9jayhnZXR0ZXI6IGV4cGVjdEFzeW5jKChTdHJpbmcgaWQpIGFzeW5jIHsKKyAgICAgICAgICBleHBlY3QocmVuZGVyZWQsIGlzRmFsc2UpOworICAgICAgICAgIGV4cGVjdChpZCwgZXF1YWxzKHNjcmlwdF9pZCkpOworICAgICAgICAgIHJldHVybiBzY3JpcHQ7CisgICAgICAgIH0sIGNvdW50OiAxKSkpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKKyAgICByZW5kZXJlZCA9IHRydWU7CiAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc05vblplcm8sIHJlYXNvbjogJ2hhcyBlbGVtZW50cycpOwogICAgIGV4cGVjdChlLmlubmVySHRtbC5jb250YWlucyhpc29sYXRlLmlkKSwgaXNUcnVlLAogICAgICAgcmVhc29uOiAnbm8gbWVzc2FnZSBpbiB0aGUgY29tcG9uZW50Jyk7Ci0gICAgZXhwZWN0KGUuaW5uZXJIdG1sLmNvbnRhaW5zKCdmaWxlbmFtZS5kYXJ0JyksIGlzVHJ1ZSwKKyAgICBleHBlY3QoZS5pbm5lckh0bWwuY29udGFpbnMoZmlsZSksIGlzVHJ1ZSwKICAgICAgIHJlYXNvbjogJ25vIG1lc3NhZ2UgaW4gdGhlIGNvbXBvbmVudCcpOwogICAgIGUucmVtb3ZlKCk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwpkaWZmIC0tZ2l0IGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS92aWV3X2Zvb3Rlci9lbGVtZW50X3Rlc3QuZGFydCBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvdmlld19mb290ZXIvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggZjNhYjcyNy4uMTQzNDY0ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS92aWV3X2Zvb3Rlci9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3ZpZXdfZm9vdGVyL2VsZW1lbnRfdGVzdC5kYXJ0CkBAIC05LDExICs5LDExIEBACiAgIFZpZXdGb290ZXJFbGVtZW50LnRhZy5lbnN1cmVSZWdpc3RyYXRpb24oKTsKIAogICB0ZXN0KCdpbnN0YW50aWF0aW9uJywgKCkgewotICAgIGZpbmFsIFZpZXdGb290ZXJFbGVtZW50IGUgPSBuZXcgVmlld0Zvb3RlckVsZW1lbnQoKTsKKyAgICBmaW5hbCBlID0gbmV3IFZpZXdGb290ZXJFbGVtZW50KCk7CiAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICB9KTsKICAgdGVzdCgnZWxlbWVudHMgY3JlYXRlZCcsICgpIGFzeW5jIHsKLSAgICBmaW5hbCBWaWV3Rm9vdGVyRWxlbWVudCBlID0gbmV3IFZpZXdGb290ZXJFbGVtZW50KCk7CisgICAgZmluYWwgZSA9IG5ldyBWaWV3Rm9vdGVyRWxlbWVudCgpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3ZtX2Nvbm5lY3QvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3ZtX2Nvbm5lY3QvZWxlbWVudF90ZXN0LmRhcnQKaW5kZXggMTVhODUzY2EuLjI3MGUwZDUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvdm1fY29ubmVjdC9lbGVtZW50X3Rlc3QuZGFydAorKysgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3ZtX2Nvbm5lY3QvZWxlbWVudF90ZXN0LmRhcnQKQEAgLTMsMzEgKzMsMzAgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9ja3MuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9kZWxzLmRhcnQnIGFzIE07CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL25hdi9ub3RpZnkuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL3ZtX2Nvbm5lY3RfdGFyZ2V0LmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOm9ic2VydmF0b3J5L3NyYy9lbGVtZW50cy92bV9jb25uZWN0LmRhcnQnOworaW1wb3J0ICcuLi9tb2Nrcy5kYXJ0JzsKKwordm9pZCBsb2FkKF8pIHt9CiAKIG1haW4oKSB7CiAgIFZNQ29ubmVjdEVsZW1lbnQudGFnLmVuc3VyZVJlZ2lzdHJhdGlvbigpOwogCi0gIGZpbmFsIFN0cmluZyBuVGFnID0gTmF2Tm90aWZ5RWxlbWVudC50YWcubmFtZTsKLSAgZmluYWwgU3RyaW5nIHRUYWcgPSBWTUNvbm5lY3RUYXJnZXRFbGVtZW50LnRhZy5uYW1lOworICBmaW5hbCBuVGFnID0gTmF2Tm90aWZ5RWxlbWVudC50YWcubmFtZTsKKyAgZmluYWwgdFRhZyA9IFZNQ29ubmVjdFRhcmdldEVsZW1lbnQudGFnLm5hbWU7CiAKICAgZ3JvdXAoJ2luc3RhbnRpYXRpb24nLCAoKSB7CiAgICAgdGVzdCgnZGVmYXVsdCcsICgpIHsKLSAgICAgIGZpbmFsIFZNQ29ubmVjdEVsZW1lbnQgZSA9IG5ldyBWTUNvbm5lY3RFbGVtZW50KAotICAgICAgICAgIG5ldyBUYXJnZXRSZXBvc2l0b3J5TW9jaygpLAotICAgICAgICAgIG5ldyBDcmFzaER1bXBSZXBvc2l0b3J5TW9jaygpLAotICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudChuZXcgVGFyZ2V0UmVwb3NpdG9yeU1vY2soKSwKKyAgICAgICAgICBsb2FkLCBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgfSk7CiAgIH0pOwogICB0ZXN0KCdpcyBjb3JyZWN0bHkgbGlzdGVuaW5nJywgKCkgYXN5bmMgewogICAgIGZpbmFsIHRhcmdldHMgPSBuZXcgVGFyZ2V0UmVwb3NpdG9yeU1vY2soKTsKLSAgICBmaW5hbCBWTUNvbm5lY3RFbGVtZW50IGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudCh0YXJnZXRzLAotICAgICAgICBuZXcgQ3Jhc2hEdW1wUmVwb3NpdG9yeU1vY2soKSwgbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKCkpOworICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudCh0YXJnZXRzLCBsb2FkLAorICAgICAgICBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSk7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIGV4cGVjdCh0YXJnZXRzLmhhc0xpc3RlbmVycywgaXNUcnVlLCByZWFzb246ICdpcyBsaXN0ZW5pbmcnKTsKQEAgLTQwLDggKzM5LDggQEAKICAgICAgIGZpbmFsIHRhcmdldHMgPSBuZXcgVGFyZ2V0UmVwb3NpdG9yeU1vY2sobGlzdDogY29uc3QgWwogICAgICAgICAgIGNvbnN0IFRhcmdldE1vY2sobmFtZTogJ3QtMScpLCBjb25zdCBUYXJnZXRNb2NrKG5hbWU6ICd0LTInKSwKICAgICAgICAgICBdKTsKLSAgICAgIGZpbmFsIFZNQ29ubmVjdEVsZW1lbnQgZSA9IG5ldyBWTUNvbm5lY3RFbGVtZW50KHRhcmdldHMsCi0gICAgICAgICAgbmV3IENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrKCksIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudCh0YXJnZXRzLCBsb2FkLAorICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgZXhwZWN0KHRhcmdldHMubGlzdEludm9rZWQsIGlzVHJ1ZSwgcmVhc29uOiAnc2hvdWxkIGludm9rZSBsaXN0KCknKTsKQEAgLTU0LDEwICs1MywxMCBAQAogICAgICAgZXhwZWN0KGUuY2hpbGRyZW4ubGVuZ3RoLCBpc1plcm8sIHJlYXNvbjogJ2lzIGVtcHR5Jyk7CiAgICAgfSk7CiAgICAgdGVzdCgncmVhY3QgdG8gdXBkYXRlIGV2ZW50JywgKCkgYXN5bmMgewotICAgICAgZmluYWwgbGlzdCA9IDxNLlRhcmdldD5bY29uc3QgVGFyZ2V0TW9jayhuYW1lOiAndC0xJyldOworICAgICAgZmluYWwgbGlzdCA9IDxUYXJnZXRNb2NrPltjb25zdCBUYXJnZXRNb2NrKG5hbWU6ICd0LTEnKV07CiAgICAgICBmaW5hbCB0YXJnZXRzID0gbmV3IFRhcmdldFJlcG9zaXRvcnlNb2NrKGxpc3Q6IGxpc3QpOwotICAgICAgZmluYWwgVk1Db25uZWN0RWxlbWVudCBlID0gbmV3IFZNQ29ubmVjdEVsZW1lbnQodGFyZ2V0cywKLSAgICAgICAgICBuZXcgQ3Jhc2hEdW1wUmVwb3NpdG9yeU1vY2soKSwgbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKCkpOworICAgICAgZmluYWwgZSA9IG5ldyBWTUNvbm5lY3RFbGVtZW50KHRhcmdldHMsIGxvYWQsCisgICAgICAgICAgbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKCkpOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CiAgICAgICBhd2FpdCBlLm9uUmVuZGVyZWQuZmlyc3Q7CiAgICAgICBleHBlY3QoZS5xdWVyeVNlbGVjdG9yQWxsKHRUYWcpLmxlbmd0aCwgZXF1YWxzKDEpKTsKQEAgLTczLDE0ICs3MiwxMyBAQAogICBncm91cCgnaW52b2tlcycsICgpIHsKICAgICB0ZXN0KCdhZGQgb24gY2xpY2snLCAoKSBhc3luYyB7CiAgICAgICBmaW5hbCBhZGRyZXNzID0gJ3dzOi8vaG9zdDoxMjM0JzsKLSAgICAgIGZpbmFsIGxpc3QgPSA8TS5UYXJnZXQ+W2NvbnN0IFRhcmdldE1vY2sobmFtZTogJ3QtMScpXTsKKyAgICAgIGZpbmFsIGxpc3QgPSA8VGFyZ2V0TW9jaz5bY29uc3QgVGFyZ2V0TW9jayhuYW1lOiAndC0xJyldOwogICAgICAgZmluYWwgdGFyZ2V0cyA9IG5ldyBUYXJnZXRSZXBvc2l0b3J5TW9jayhsaXN0OiBsaXN0LAogICAgICAgICAgIGFkZDogZXhwZWN0QXN5bmMoKFN0cmluZyB2YWwpIHsKICAgICAgICAgICAgIGV4cGVjdCh2YWwsIGVxdWFscyhhZGRyZXNzKSk7CiAgICAgICAgICAgfSwgY291bnQ6IDEsIHJlYXNvbjogJ3Nob3VsZCBiZSBpbnZva2VkJykpOwotICAgICAgZmluYWwgVk1Db25uZWN0RWxlbWVudCBlID0gbmV3IFZNQ29ubmVjdEVsZW1lbnQodGFyZ2V0cywKLSAgICAgICAgICBuZXcgQ3Jhc2hEdW1wUmVwb3NpdG9yeU1vY2soKSwgbmV3IE5vdGlmaWNhdGlvblJlcG9zaXRvcnlNb2NrKCksCi0gICAgICAgICAgYWRkcmVzczogYWRkcmVzcyk7CisgICAgICBmaW5hbCBlID0gbmV3IFZNQ29ubmVjdEVsZW1lbnQodGFyZ2V0cywgbG9hZCwKKyAgICAgICAgICBuZXcgTm90aWZpY2F0aW9uUmVwb3NpdG9yeU1vY2soKSwgYWRkcmVzczogYWRkcmVzcyk7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChlKTsKICAgICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICAgIChlLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi52bV9jb25uZWN0JykgYXMgQnV0dG9uRWxlbWVudCkuY2xpY2soKTsKQEAgLTg4LDEzICs4NiwxMyBAQAogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIH0pOwogICAgIHRlc3QoJ2Nvbm5lY3QnLCAoKSBhc3luYyB7Ci0gICAgICBmaW5hbCBsaXN0ID0gPE0uVGFyZ2V0Pltjb25zdCBUYXJnZXRNb2NrKG5hbWU6ICd0LTEnKV07CisgICAgICBmaW5hbCBsaXN0ID0gPFRhcmdldE1vY2s+W2NvbnN0IFRhcmdldE1vY2sobmFtZTogJ3QtMScpXTsKICAgICAgIGZpbmFsIHRhcmdldHMgPSBuZXcgVGFyZ2V0UmVwb3NpdG9yeU1vY2sobGlzdDogbGlzdCwKLSAgICAgICAgICBzZXRDdXJyZW50OiBleHBlY3RBc3luYygoTS5UYXJnZXQgdCkgeworICAgICAgICAgIHNldEN1cnJlbnQ6IGV4cGVjdEFzeW5jKChUYXJnZXRNb2NrIHQpIHsKICAgICAgICAgICAgIGV4cGVjdCh0LCBlcXVhbHMobGlzdFswXSkpOwogICAgICAgICAgIH0sIGNvdW50OiAxLCByZWFzb246ICdzaG91bGQgYmUgaW52b2tlZCcpKTsKLSAgICAgIGZpbmFsIFZNQ29ubmVjdEVsZW1lbnQgZSA9IG5ldyBWTUNvbm5lY3RFbGVtZW50KHRhcmdldHMsCi0gICAgICAgICAgbmV3IENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrKCksIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudCh0YXJnZXRzLCBsb2FkLAorICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgKGUucXVlcnlTZWxlY3Rvcih0VGFnKSBhcyBWTUNvbm5lY3RUYXJnZXRFbGVtZW50KS5jb25uZWN0KCk7CkBAIC0xMDIsMTMgKzEwMCwxMyBAQAogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgIH0pOwogICAgIHRlc3QoJ2RlbGV0ZScsICgpIGFzeW5jIHsKLSAgICAgIGZpbmFsIGxpc3QgPSA8TS5UYXJnZXQ+W2NvbnN0IFRhcmdldE1vY2sobmFtZTogJ3QtMScpXTsKKyAgICAgIGZpbmFsIGxpc3QgPSA8VGFyZ2V0TW9jaz5bY29uc3QgVGFyZ2V0TW9jayhuYW1lOiAndC0xJyldOwogICAgICAgZmluYWwgdGFyZ2V0cyA9IG5ldyBUYXJnZXRSZXBvc2l0b3J5TW9jayhsaXN0OiBsaXN0LAotICAgICAgICAgIGRlbGV0ZTogZXhwZWN0QXN5bmMoKE0uVGFyZ2V0IHQpIHsKKyAgICAgICAgICBkZWxldGU6IGV4cGVjdEFzeW5jKChUYXJnZXRNb2NrIHQpIHsKICAgICAgICAgICAgIGV4cGVjdCh0LCBlcXVhbHMobGlzdFswXSkpOwogICAgICAgICAgIH0sIGNvdW50OiAxLCByZWFzb246ICdzaG91bGQgYmUgaW52b2tlZCcpKTsKLSAgICAgIGZpbmFsIFZNQ29ubmVjdEVsZW1lbnQgZSA9IG5ldyBWTUNvbm5lY3RFbGVtZW50KHRhcmdldHMsCi0gICAgICAgICAgbmV3IENyYXNoRHVtcFJlcG9zaXRvcnlNb2NrKCksIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0RWxlbWVudCh0YXJnZXRzLCBsb2FkLAorICAgICAgICAgIG5ldyBOb3RpZmljYXRpb25SZXBvc2l0b3J5TW9jaygpKTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgICAgYXdhaXQgZS5vblJlbmRlcmVkLmZpcnN0OwogICAgICAgKGUucXVlcnlTZWxlY3Rvcih0VGFnKSBhcyBWTUNvbm5lY3RUYXJnZXRFbGVtZW50KS5kZWxldGUoKTsKZGlmZiAtLWdpdCBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvdm1fY29ubmVjdF90YXJnZXQvZWxlbWVudF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL29ic2VydmF0b3J5X3VpL3ZtX2Nvbm5lY3RfdGFyZ2V0L2VsZW1lbnRfdGVzdC5kYXJ0CmluZGV4IGE0MzQwZTguLjQ1ZWZhYjYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvb2JzZXJ2YXRvcnlfdWkvdm1fY29ubmVjdF90YXJnZXQvZWxlbWVudF90ZXN0LmRhcnQKKysrIGIvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9vYnNlcnZhdG9yeV91aS92bV9jb25uZWN0X3RhcmdldC9lbGVtZW50X3Rlc3QuZGFydApAQCAtMyw4ICszLDggQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiBpbXBvcnQgJ2RhcnQ6aHRtbCc7CiBpbXBvcnQgJ3BhY2thZ2U6dW5pdHRlc3QvdW5pdHRlc3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvbW9ja3MuZGFydCc7CiBpbXBvcnQgJ3BhY2thZ2U6b2JzZXJ2YXRvcnkvc3JjL2VsZW1lbnRzL3ZtX2Nvbm5lY3RfdGFyZ2V0LmRhcnQnOworaW1wb3J0ICcuLi9tb2Nrcy5kYXJ0JzsKIAogbWFpbigpIHsKICAgVk1Db25uZWN0VGFyZ2V0RWxlbWVudC50YWcuZW5zdXJlUmVnaXN0cmF0aW9uKCk7CkBAIC0xNSwyOCArMTUsMjYgQEAKICAgfSk7CiAgIGdyb3VwKCdpbnN0YW50aWF0aW9uJywgKCkgewogICAgIHRlc3QoJ25vIG90aGVyIHBhcmFtZXRlcnMnLCAoKSB7Ci0gICAgICBmaW5hbCBWTUNvbm5lY3RUYXJnZXRFbGVtZW50IGUgPSBuZXcgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCh0KTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCh0KTsKICAgICAgIGV4cGVjdChlLCBpc05vdE51bGwsIHJlYXNvbjogJ2VsZW1lbnQgY29ycmVjdGx5IGNyZWF0ZWQnKTsKICAgICAgIGV4cGVjdChlLnRhcmdldCwgdCwgcmVhc29uOiAndGFyZ2V0IG5vdCBzZXR0ZWQnKTsKICAgICAgIGV4cGVjdChlLmN1cnJlbnQsIGlzRmFsc2UsIHJlYXNvbjogJ2RlZmF1bHQgdG8gbm90IGN1cnJlbnQnKTsKICAgICB9KTsKICAgICB0ZXN0KCdpc0N1cnJlbnQ6IGZhbHNlJywgKCkgewotICAgICAgZmluYWwgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCBlID0gbmV3IFZNQ29ubmVjdFRhcmdldEVsZW1lbnQodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudDpmYWxzZSk7CisgICAgICBmaW5hbCBlID0gbmV3IFZNQ29ubmVjdFRhcmdldEVsZW1lbnQodCwgY3VycmVudDpmYWxzZSk7CiAgICAgICBleHBlY3QoZSwgaXNOb3ROdWxsLCByZWFzb246ICdlbGVtZW50IGNvcnJlY3RseSBjcmVhdGVkJyk7CiAgICAgICBleHBlY3QoZS50YXJnZXQsIHQsIHJlYXNvbjogJ3RhcmdldCBub3Qgc2V0dGVkJyk7CiAgICAgICBleHBlY3QoZS5jdXJyZW50LCBpc0ZhbHNlLCByZWFzb246ICdkZWZhdWx0IHRvIG5vdCBjdXJyZW50Jyk7CiAgICAgfSk7CiAgICAgdGVzdCgnaXNDdXJyZW50OiB0cnVlJywgKCkgewotICAgICAgZmluYWwgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCBlID0gbmV3IFZNQ29ubmVjdFRhcmdldEVsZW1lbnQodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudDp0cnVlKTsKKyAgICAgIGZpbmFsIGUgPSBuZXcgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCh0LCBjdXJyZW50OnRydWUpOwogICAgICAgZXhwZWN0KGUsIGlzTm90TnVsbCwgcmVhc29uOiAnZWxlbWVudCBjb3JyZWN0bHkgY3JlYXRlZCcpOwogICAgICAgZXhwZWN0KGUudGFyZ2V0LCB0LCByZWFzb246ICd0YXJnZXQgbm90IHNldHRlZCcpOwogICAgICAgZXhwZWN0KGUuY3VycmVudCwgaXNUcnVlLCByZWFzb246ICdkZWZhdWx0IHRvIG5vdCBjdXJyZW50Jyk7CiAgICAgfSk7CiAgIH0pOwogICB0ZXN0KCdlbGVtZW50cyBjcmVhdGVkIGFmdGVyIGF0dGFjaG1lbnQnLCAoKSBhc3luYyB7Ci0gICAgZmluYWwgVk1Db25uZWN0VGFyZ2V0RWxlbWVudCBlID0gbmV3IFZNQ29ubmVjdFRhcmdldEVsZW1lbnQodCk7CisgICAgZmluYWwgZSA9IG5ldyBWTUNvbm5lY3RUYXJnZXRFbGVtZW50KHQpOwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGUpOwogICAgIGF3YWl0IGUub25SZW5kZXJlZC5maXJzdDsKICAgICBleHBlY3QoZS5jaGlsZHJlbi5sZW5ndGgsIGlzTm9uWmVybywgcmVhc29uOiAnaGFzIGVsZW1lbnRzJyk7CmRpZmYgLS1naXQgYS9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL3NlcnZpY2UvZGVidWdnZXJfaW5zcGVjdF90ZXN0LmRhcnQgYi9ydW50aW1lL29ic2VydmF0b3J5L3Rlc3RzL3NlcnZpY2UvZGVidWdnZXJfaW5zcGVjdF90ZXN0LmRhcnQKaW5kZXggMWY3ZmUzMS4uMjY5YTEyMyAxMDA2NDQKLS0tIGEvcnVudGltZS9vYnNlcnZhdG9yeS90ZXN0cy9zZXJ2aWNlL2RlYnVnZ2VyX2luc3BlY3RfdGVzdC5kYXJ0CisrKyBiL3J1bnRpbWUvb2JzZXJ2YXRvcnkvdGVzdHMvc2VydmljZS9kZWJ1Z2dlcl9pbnNwZWN0X3Rlc3QuZGFydApAQCAtMjYsNyArMjYsNyBAQAogICB2YXIgc3Vic2NyaXB0aW9uOwogICBzdWJzY3JpcHRpb24gPSBzdHJlYW0ubGlzdGVuKChTZXJ2aWNlRXZlbnQgZXZlbnQpIHsKICAgICBpZiAoZXZlbnQua2luZCA9PSBTZXJ2aWNlRXZlbnQua0luc3BlY3QpIHsKLSAgICAgIGV4cGVjdCgoZXZlbnQuaW5zcGVjdGVlIGFzIEluc3RhbmNlKS5jbGF6ei5uYW1lLCBlcXVhbHMoJ1BvaW50JykpOworICAgICAgZXhwZWN0KGV2ZW50Lmluc3BlY3RlZS5jbGF6ei5uYW1lLCBlcXVhbHMoJ1BvaW50JykpOwogICAgICAgc3Vic2NyaXB0aW9uLmNhbmNlbCgpOwogICAgICAgY29tcGxldGVyLmNvbXBsZXRlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvcnVudGltZS92bS9pc29sYXRlLmNjIGIvcnVudGltZS92bS9pc29sYXRlLmNjCmluZGV4IDMyZGM5NjcuLjUyYWFhNDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdm0vaXNvbGF0ZS5jYworKysgYi9ydW50aW1lL3ZtL2lzb2xhdGUuY2MKQEAgLTI1OTUsNyArMjU5NSw4IEBACiAgICAgQVNTRVJUKGhlYXAoKSAhPSBOVUxMKTsKICAgICB0aHJlYWQtPmhlYXBfID0gaGVhcCgpOwogICAgIHRocmVhZC0+c2V0X29zX3RocmVhZChvc190aHJlYWQpOwotICAgIEFTU0VSVCh0aHJlYWQtPmV4ZWN1dGlvbl9zdGF0ZSgpID09IFRocmVhZDo6a1RocmVhZEluVk0pOworICAgIEFTU0VSVCh0aHJlYWQtPmV4ZWN1dGlvbl9zdGF0ZSgpID09IFRocmVhZDo6a1RocmVhZEluTmF0aXZlKTsKKyAgICB0aHJlYWQtPnNldF9leGVjdXRpb25fc3RhdGUoVGhyZWFkOjprVGhyZWFkSW5WTSk7CiAgICAgdGhyZWFkLT5zZXRfc2FmZXBvaW50X3N0YXRlKDApOwogICAgIHRocmVhZC0+c2V0X3ZtX3RhZyhWTVRhZzo6a1ZNVGFnSWQpOwogICAgIEFTU0VSVCh0aHJlYWQtPm5vX3NhZmVwb2ludF9zY29wZV9kZXB0aCgpID09IDApOwpAQCAtMjY0Niw4ICsyNjQ3LDggQEAKICAgdGhyZWFkLT5pc29sYXRlXyA9IE5VTEw7CiAgIHRocmVhZC0+aGVhcF8gPSBOVUxMOwogICB0aHJlYWQtPnNldF9vc190aHJlYWQoTlVMTCk7Ci0gIHRocmVhZC0+c2V0X2V4ZWN1dGlvbl9zdGF0ZShUaHJlYWQ6OmtUaHJlYWRJblZNKTsKLSAgdGhyZWFkLT5zZXRfc2FmZXBvaW50X3N0YXRlKDApOworICB0aHJlYWQtPnNldF9leGVjdXRpb25fc3RhdGUoVGhyZWFkOjprVGhyZWFkSW5OYXRpdmUpOworICB0aHJlYWQtPnNldF9zYWZlcG9pbnRfc3RhdGUoVGhyZWFkOjpTZXRBdFNhZmVwb2ludCh0cnVlLCAwKSk7CiAgIHRocmVhZC0+Y2xlYXJfcGVuZGluZ19mdW5jdGlvbnMoKTsKICAgQVNTRVJUKHRocmVhZC0+bm9fc2FmZXBvaW50X3Njb3BlX2RlcHRoKCkgPT0gMCk7CiAgIC8vIFJldHVybiB0aHJlYWQgc3RydWN0dXJlLgpkaWZmIC0tZ2l0IGEvcnVudGltZS92bS9pc29sYXRlX3JlbG9hZC5jYyBiL3J1bnRpbWUvdm0vaXNvbGF0ZV9yZWxvYWQuY2MKaW5kZXggZTYzNWE3Yi4uMDk1N2Y2ZiAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9pc29sYXRlX3JlbG9hZC5jYworKysgYi9ydW50aW1lL3ZtL2lzb2xhdGVfcmVsb2FkLmNjCkBAIC00NDIsNiArNDQyLDcgQEAKICAgaWYgKCFtb2RpZmllZF9saWJzXy0+Q29udGFpbnMocm9vdF9saWIuaW5kZXgoKSkpIHsKICAgICBBU1NFUlQobW9kaWZpZWRfbGlic18tPklzRW1wdHkoKSk7CiAgICAgcmVsb2FkX3NraXBwZWRfID0gdHJ1ZTsKKyAgICBSZXBvcnRPbkpTT04oanNfKTsKICAgICBUSVJfUHJpbnQoIi0tLS0gU0tJUFBJTkcgUkVMT0FEIChObyBsaWJyYXJpZXMgd2VyZSBtb2RpZmllZClcbiIpOwogICAgIHJldHVybjsKICAgfQpAQCAtNTk2LDE0ICs1OTcsMjAgQEAKIAogCiB2b2lkIElzb2xhdGVSZWxvYWRDb250ZXh0OjpSZXBvcnRPbkpTT04oSlNPTlN0cmVhbSogc3RyZWFtKSB7Ci0gIC8vIENsZWFyIHRoZSBidWZmZXIuCi0gIHN0cmVhbS0+YnVmZmVyKCktPkNsZWFyKCk7CiAgIEpTT05PYmplY3QganNvYmooc3RyZWFtKTsKICAganNvYmouQWRkUHJvcGVydHkoInR5cGUiLCAiUmVsb2FkUmVwb3J0Iik7Ci0gIGpzb2JqLkFkZFByb3BlcnR5KCJzdWNjZXNzIiwgIUhhc1JlYXNvbnNGb3JDYW5jZWxsaW5nKCkpOworICBqc29iai5BZGRQcm9wZXJ0eSgic3VjY2VzcyIsIHJlbG9hZF9za2lwcGVkXyB8fCAhSGFzUmVhc29uc0ZvckNhbmNlbGxpbmcoKSk7CiAgIHsKICAgICBKU09OT2JqZWN0IGRldGFpbHMoJmpzb2JqLCAiZGV0YWlscyIpOwotICAgIGlmIChIYXNSZWFzb25zRm9yQ2FuY2VsbGluZygpKSB7CisgICAgaWYgKHJlbG9hZF9za2lwcGVkXykgeworICAgICAgLy8gUmVsb2FkIHdhcyBza2lwcGVkLgorICAgICAgY29uc3QgR3Jvd2FibGVPYmplY3RBcnJheSYgbGlicyA9CisgICAgICAgICAgR3Jvd2FibGVPYmplY3RBcnJheTo6SGFuZGxlKG9iamVjdF9zdG9yZSgpLT5saWJyYXJpZXMoKSk7CisgICAgICBjb25zdCBpbnRwdHJfdCBmaW5hbF9saWJyYXJ5X2NvdW50ID0gbGlicy5MZW5ndGgoKTsKKyAgICAgIGRldGFpbHMuQWRkUHJvcGVydHkoInNhdmVkTGlicmFyeUNvdW50IiwgZmluYWxfbGlicmFyeV9jb3VudCk7CisgICAgICBkZXRhaWxzLkFkZFByb3BlcnR5KCJsb2FkZWRMaWJyYXJ5Q291bnQiLCBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oMCkpOworICAgICAgZGV0YWlscy5BZGRQcm9wZXJ0eSgiZmluYWxMaWJyYXJ5Q291bnQiLCBmaW5hbF9saWJyYXJ5X2NvdW50KTsKKyAgICB9IGVsc2UgaWYgKEhhc1JlYXNvbnNGb3JDYW5jZWxsaW5nKCkpIHsKICAgICAgIC8vIFJlbG9hZCB3YXMgcmVqZWN0ZWQuCiAgICAgICBKU09OQXJyYXkgYXJyYXkoJmpzb2JqLCAibm90aWNlcyIpOwogICAgICAgZm9yIChpbnRwdHJfdCBpID0gMDsgaSA8IHJlYXNvbnNfdG9fY2FuY2VsX3JlbG9hZF8ubGVuZ3RoKCk7IGkrKykgewpAQCAtMTM1OSw4ICsxMzY2LDEyIEBACiAKIAogdm9pZCBJc29sYXRlUmVsb2FkQ29udGV4dDo6UmVzZXRVbm9wdGltaXplZElDc09uU3RhY2soKSB7Ci0gIENvZGUmIGNvZGUgPSBDb2RlOjpIYW5kbGUoKTsKLSAgRnVuY3Rpb24mIGZ1bmN0aW9uID0gRnVuY3Rpb246OkhhbmRsZSgpOworICBUaHJlYWQqIHRocmVhZCA9IFRocmVhZDo6Q3VycmVudCgpOworICBTdGFja1pvbmUgc3RhY2tfem9uZSh0aHJlYWQpOworICBab25lKiB6b25lID0gc3RhY2tfem9uZS5HZXRab25lKCk7CisKKyAgQ29kZSYgY29kZSA9IENvZGU6OkhhbmRsZSh6b25lKTsKKyAgRnVuY3Rpb24mIGZ1bmN0aW9uID0gRnVuY3Rpb246OkhhbmRsZSh6b25lKTsKICAgRGFydEZyYW1lSXRlcmF0b3IgaXRlcmF0b3I7CiAgIFN0YWNrRnJhbWUqIGZyYW1lID0gaXRlcmF0b3IuTmV4dEZyYW1lKCk7CiAgIHdoaWxlIChmcmFtZSAhPSBOVUxMKSB7CkBAIC0xMzcyLDkgKzEzODMsOSBAQAogICAgICAgZnVuY3Rpb24gPSBjb2RlLmZ1bmN0aW9uKCk7CiAgICAgICBjb2RlID0gZnVuY3Rpb24udW5vcHRpbWl6ZWRfY29kZSgpOwogICAgICAgQVNTRVJUKCFjb2RlLklzTnVsbCgpKTsKLSAgICAgIGNvZGUuUmVzZXRJQ0RhdGFzKCk7CisgICAgICBjb2RlLlJlc2V0SUNEYXRhcyh6b25lKTsKICAgICB9IGVsc2UgewotICAgICAgY29kZS5SZXNldElDRGF0YXMoKTsKKyAgICAgIGNvZGUuUmVzZXRJQ0RhdGFzKHpvbmUpOwogICAgIH0KICAgICBmcmFtZSA9IGl0ZXJhdG9yLk5leHRGcmFtZSgpOwogICB9CkBAIC0xMzkzLDEzICsxNDA0LDE1IEBACiBjbGFzcyBNYXJrRnVuY3Rpb25zRm9yUmVjb21waWxhdGlvbiA6IHB1YmxpYyBPYmplY3RWaXNpdG9yIHsKICBwdWJsaWM6CiAgIE1hcmtGdW5jdGlvbnNGb3JSZWNvbXBpbGF0aW9uKElzb2xhdGUqIGlzb2xhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzb2xhdGVSZWxvYWRDb250ZXh0KiByZWxvYWRfY29udGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNvbGF0ZVJlbG9hZENvbnRleHQqIHJlbG9hZF9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBab25lKiB6b25lKQogICAgIDogT2JqZWN0VmlzaXRvcigpLAotICAgICAgaGFuZGxlXyhPYmplY3Q6OkhhbmRsZSgpKSwKLSAgICAgIG93bmluZ19jbGFzc18oQ2xhc3M6OkhhbmRsZSgpKSwKLSAgICAgIG93bmluZ19saWJfKExpYnJhcnk6OkhhbmRsZSgpKSwKLSAgICAgIGNvZGVfKENvZGU6OkhhbmRsZSgpKSwKLSAgICAgIHJlbG9hZF9jb250ZXh0XyhyZWxvYWRfY29udGV4dCkgeworICAgICAgaGFuZGxlXyhPYmplY3Q6OkhhbmRsZSh6b25lKSksCisgICAgICBvd25pbmdfY2xhc3NfKENsYXNzOjpIYW5kbGUoem9uZSkpLAorICAgICAgb3duaW5nX2xpYl8oTGlicmFyeTo6SGFuZGxlKHpvbmUpKSwKKyAgICAgIGNvZGVfKENvZGU6OkhhbmRsZSh6b25lKSksCisgICAgICByZWxvYWRfY29udGV4dF8ocmVsb2FkX2NvbnRleHQpLAorICAgICAgem9uZV8oem9uZSkgewogICB9CiAKICAgdmlydHVhbCB2b2lkIFZpc2l0T2JqZWN0KFJhd09iamVjdCogb2JqKSB7CkBAIC0xNDUzLDcgKzE0NjYsNyBAQAogICAgIEFTU0VSVCghY29kZV8uSXNOdWxsKCkpOwogICAgIC8vIFdlIGFyZSBwcmVzZXJ2aW5nIHRoZSB1bm9wdGltaXplZCBjb2RlLCBmaWxsIGFsbCBJQ0RhdGEgYXJyYXlzIHdpdGgKICAgICAvLyB0aGUgc2VudGluZWwgdmFsdWVzIHNvIHRoYXQgd2UgaGF2ZSBubyBzdGFsZSB0eXBlIGZlZWRiYWNrLgotICAgIGNvZGVfLlJlc2V0SUNEYXRhcygpOworICAgIGNvZGVfLlJlc2V0SUNEYXRhcyh6b25lXyk7CiAgIH0KIAogICBib29sIElzRnJvbURpcnR5TGlicmFyeShjb25zdCBGdW5jdGlvbiYgZnVuYykgewpAQCAtMTQ2NywxNSArMTQ4MCwxOSBAQAogICBMaWJyYXJ5JiBvd25pbmdfbGliXzsKICAgQ29kZSYgY29kZV87CiAgIElzb2xhdGVSZWxvYWRDb250ZXh0KiByZWxvYWRfY29udGV4dF87CisgIFpvbmUqIHpvbmVfOwogfTsKIAogCiB2b2lkIElzb2xhdGVSZWxvYWRDb250ZXh0OjpNYXJrQWxsRnVuY3Rpb25zRm9yUmVjb21waWxhdGlvbigpIHsKICAgVElNRUxJTkVfU0NPUEUoTWFya0FsbEZ1bmN0aW9uc0ZvclJlY29tcGlsYXRpb24pOwogICBUSVJfUHJpbnQoIi0tLS0gTUFSS0lORyBBTEwgRlVOQ1RJT05TIEZPUiBSRUNPTVBJTEFUSU9OXG4iKTsKKyAgVGhyZWFkKiB0aHJlYWQgPSBUaHJlYWQ6OkN1cnJlbnQoKTsKKyAgU3RhY2tab25lIHN0YWNrX3pvbmUodGhyZWFkKTsKKyAgWm9uZSogem9uZSA9IHN0YWNrX3pvbmUuR2V0Wm9uZSgpOwogICBOb1NhZmVwb2ludFNjb3BlIG5vX3NhZmVwb2ludDsKICAgSGVhcEl0ZXJhdGlvblNjb3BlIGhlYXBfaXRlcmF0aW9uX3Njb3BlOwotICBNYXJrRnVuY3Rpb25zRm9yUmVjb21waWxhdGlvbiB2aXNpdG9yKGlzb2xhdGVfLCB0aGlzKTsKKyAgTWFya0Z1bmN0aW9uc0ZvclJlY29tcGlsYXRpb24gdmlzaXRvcihpc29sYXRlXywgdGhpcywgem9uZSk7CiAgIGlzb2xhdGVfLT5oZWFwKCktPlZpc2l0T2JqZWN0cygmdmlzaXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdm0vaXNvbGF0ZV9yZWxvYWRfdGVzdC5jYyBiL3J1bnRpbWUvdm0vaXNvbGF0ZV9yZWxvYWRfdGVzdC5jYwppbmRleCAwNzA4OTdlLi5iNmE2Yzk4IDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL2lzb2xhdGVfcmVsb2FkX3Rlc3QuY2MKKysrIGIvcnVudGltZS92bS9pc29sYXRlX3JlbG9hZF90ZXN0LmNjCkBAIC0xNDg3LDYgKzE0ODcsMzU0IEBACiB9CiAKIAorVEVTVF9DQVNFKElzb2xhdGVSZWxvYWRfRGFuZ2xpbmdHZXR0ZXJfSW5zdGFuY2UpIHsKKyAgY29uc3QgY2hhcioga1NjcmlwdCA9CisgICAgICAiaW1wb3J0ICd0ZXN0Omlzb2xhdGVfcmVsb2FkX2hlbHBlcic7XG4iCisgICAgICAiY2xhc3MgQyB7XG4iCisgICAgICAiICB2YXIgeCA9IDM7XG4iCisgICAgICAiICB2YXIgeSA9IDQ7XG4iCisgICAgICAifVxuIgorICAgICAgImludm9rZShmKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZigpO1xuIgorICAgICAgIiAgfSBjYXRjaCAoZSkge1xuIgorICAgICAgIiAgICByZXR1cm4gZS50b1N0cmluZygpLnNwbGl0KCdcXG4nKS5maXJzdDtcbiIKKyAgICAgICIgIH1cbiIKKyAgICAgICJ9XG4iCisgICAgICAibWFpbigpIHtcbiIKKyAgICAgICIgIHZhciBjID0gbmV3IEMoKTtcbiIKKyAgICAgICIgIHZhciBmID0gYyN5O1xuIgorICAgICAgIiAgdmFyIHIxID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmVsb2FkVGVzdCgpO1xuIgorICAgICAgIiAgdmFyIHIyID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmV0dXJuICckcjEgJHIyJztcbiIKKyAgICAgICJ9XG4iOworCisgIERhcnRfSGFuZGxlIGxpYiA9IFRlc3RDYXNlOjpMb2FkVGVzdFNjcmlwdChrU2NyaXB0LCBOVUxMKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7CisKKyAgY29uc3QgY2hhcioga1JlbG9hZFNjcmlwdCA9CisgICAgICAiaW1wb3J0ICd0ZXN0Omlzb2xhdGVfcmVsb2FkX2hlbHBlcic7XG4iCisgICAgICAiY2xhc3MgQyB7XG4iCisgICAgICAiICB2YXIgeCA9IDM7XG4iCisgICAgICAifVxuIgorICAgICAgImludm9rZShmKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZigpO1xuIgorICAgICAgIiAgfSBjYXRjaCAoZSkge1xuIgorICAgICAgIiAgICByZXR1cm4gZS50b1N0cmluZygpLnNwbGl0KCdcXG4nKS5maXJzdDtcbiIKKyAgICAgICIgIH1cbiIKKyAgICAgICJ9XG4iCisgICAgICAibWFpbigpIHtcbiIKKyAgICAgICIgIHZhciBjID0gbmV3IEMoKTtcbiIKKyAgICAgICIgIHZhciBmID0gYyN5O1xuIgorICAgICAgIiAgdmFyIHIxID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmVsb2FkVGVzdCgpO1xuIgorICAgICAgIiAgdmFyIHIyID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmV0dXJuICckcjEgJHIyJztcbiIKKyAgICAgICJ9XG4iOworCisgIFRlc3RDYXNlOjpTZXRSZWxvYWRUZXN0U2NyaXB0KGtSZWxvYWRTY3JpcHQpOworCisgIEVYUEVDVF9TVFJFUSgiNCBDbGFzcyAnQycgaGFzIG5vIGluc3RhbmNlIGdldHRlciAneScuIiwKKyAgICAgICAgICAgICAgIFNpbXBsZUludm9rZVN0cihsaWIsICJtYWluIikpOworCisgIGxpYiA9IFRlc3RDYXNlOjpHZXRSZWxvYWRFcnJvck9yUm9vdExpYnJhcnkoKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7Cit9CisKKworVEVTVF9DQVNFKElzb2xhdGVSZWxvYWRfRGFuZ2xpbmdHZXR0ZXJfQ2xhc3MpIHsKKyAgY29uc3QgY2hhcioga1NjcmlwdCA9CisgICAgICAiaW1wb3J0ICd0ZXN0Omlzb2xhdGVfcmVsb2FkX2hlbHBlcic7XG4iCisgICAgICAiY2xhc3MgQyB7XG4iCisgICAgICAiICBzdGF0aWMgdmFyIHg7XG4iCisgICAgICAiICBzdGF0aWMgdmFyIHk7XG4iCisgICAgICAifVxuIgorICAgICAgImludm9rZShmKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZigpO1xuIgorICAgICAgIiAgfSBjYXRjaCAoZSkge1xuIgorICAgICAgIiAgICByZXR1cm4gZS50b1N0cmluZygpLnNwbGl0KCdcXG4nKS5maXJzdDtcbiIKKyAgICAgICIgIH1cbiIKKyAgICAgICJ9XG4iCisgICAgICAibWFpbigpIHtcbiIKKyAgICAgICIgIEMueCA9IDM7XG4iCisgICAgICAiICBDLnkgPSA0O1xuIgorICAgICAgIiAgdmFyIGYgPSBDI3k7XG4iCisgICAgICAiICB2YXIgcjEgPSBpbnZva2UoZik7XG4iCisgICAgICAiICByZWxvYWRUZXN0KCk7XG4iCisgICAgICAiICB2YXIgcjIgPSBpbnZva2UoZik7XG4iCisgICAgICAiICByZXR1cm4gJyRyMSAkcjInO1xuIgorICAgICAgIn1cbiI7CisKKyAgRGFydF9IYW5kbGUgbGliID0gVGVzdENhc2U6OkxvYWRUZXN0U2NyaXB0KGtTY3JpcHQsIE5VTEwpOworICBFWFBFQ1RfVkFMSUQobGliKTsKKworICBjb25zdCBjaGFyKiBrUmVsb2FkU2NyaXB0ID0KKyAgICAgICJpbXBvcnQgJ3Rlc3Q6aXNvbGF0ZV9yZWxvYWRfaGVscGVyJztcbiIKKyAgICAgICJjbGFzcyBDIHtcbiIKKyAgICAgICIgIHN0YXRpYyB2YXIgeDtcbiIKKyAgICAgICJ9XG4iCisgICAgICAiaW52b2tlKGYpIHtcbiIKKyAgICAgICIgIHRyeSB7XG4iCisgICAgICAiICAgIHJldHVybiBmKCk7XG4iCisgICAgICAiICB9IGNhdGNoIChlKSB7XG4iCisgICAgICAiICAgIHJldHVybiBlLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpLmZpcnN0O1xuIgorICAgICAgIiAgfVxuIgorICAgICAgIn1cbiIKKyAgICAgICJtYWluKCkge1xuIgorICAgICAgIiAgQy54ID0gMztcbiIKKyAgICAgICIgIEMueSA9IDQ7XG4iCisgICAgICAiICB2YXIgZiA9IEMjeTtcbiIKKyAgICAgICIgIHZhciByMSA9IGludm9rZShmKTtcbiIKKyAgICAgICIgIHJlbG9hZFRlc3QoKTtcbiIKKyAgICAgICIgIHZhciByMiA9IGludm9rZShmKTtcbiIKKyAgICAgICIgIHJldHVybiAnJHIxICRyMic7XG4iCisgICAgICAifVxuIjsKKworICBUZXN0Q2FzZTo6U2V0UmVsb2FkVGVzdFNjcmlwdChrUmVsb2FkU2NyaXB0KTsKKworICBFWFBFQ1RfU1RSRVEoIjQgTm8gc3RhdGljIGdldHRlciAneScgZGVjbGFyZWQgaW4gY2xhc3MgJ0MnLiIsCisgICAgICAgICAgICAgICBTaW1wbGVJbnZva2VTdHIobGliLCAibWFpbiIpKTsKKworICBsaWIgPSBUZXN0Q2FzZTo6R2V0UmVsb2FkRXJyb3JPclJvb3RMaWJyYXJ5KCk7CisgIEVYUEVDVF9WQUxJRChsaWIpOworfQorCisKK3N0YXRpYyB2b2lkIElzb2xhdGVSZWxvYWRfRGFubGluZ0dldHRlcl9MaWJyYXJ5UmVsb2FkKAorICAgIERhcnRfTmF0aXZlQXJndW1lbnRzIG5hdGl2ZV9hcmdzKSB7CisgIGNvbnN0IGNoYXIqIGtJbXBvcnRTY3JpcHQyID0KKyAgICAidmFyIHg7XG4iOworICBUZXN0Q2FzZTo6QWRkVGVzdExpYigidGVzdDpvdGhlciIsIGtJbXBvcnRTY3JpcHQyKTsKKworICBEQVJUX0NIRUNLX1ZBTElEKFRlc3RDYXNlOjpUcmlnZ2VyUmVsb2FkKCkpOworfQorCisKK3N0YXRpYyBEYXJ0X05hdGl2ZUZ1bmN0aW9uIElzb2xhdGVSZWxvYWRfRGFubGluZ0dldHRlcl9MaWJyYXJ5TmF0aXZlUmVzb2x2ZXIoCisgICAgRGFydF9IYW5kbGUgbmFtZSwKKyAgICBpbnQgbnVtX29mX2FyZ3VtZW50cywKKyAgICBib29sKiBhdXRvX3NldHVwX3Njb3BlKSB7CisgIHJldHVybiBJc29sYXRlUmVsb2FkX0RhbmxpbmdHZXR0ZXJfTGlicmFyeVJlbG9hZDsKK30KKworCitURVNUX0NBU0UoSXNvbGF0ZVJlbG9hZF9EYW5nbGluZ0dldHRlcl9MaWJyYXJ5KSB7CisgIGNvbnN0IGNoYXIqIGtJbXBvcnRTY3JpcHQgPQorICAgICAgInZhciB4O1xuIgorICAgICAgInZhciB5O1xuIjsKKyAgVGVzdENhc2U6OkFkZFRlc3RMaWIoInRlc3Q6b3RoZXIiLCBrSW1wb3J0U2NyaXB0KTsKKworICBjb25zdCBjaGFyKiBrU2NyaXB0ID0KKyAgICAgICJpbXBvcnQgJ3Rlc3Q6b3RoZXInIGFzIHByZWZpeDtcbiIKKyAgICAgICJyZWxvYWRUZXN0KCkgbmF0aXZlICdSZWxvYWRUZXN0JztcbiIKKyAgICAgICJpbnZva2UoZikge1xuIgorICAgICAgIiAgdHJ5IHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGYoKTtcbiIKKyAgICAgICIgIH0gY2F0Y2ggKGUpIHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGUudG9TdHJpbmcoKS5zcGxpdCgnXFxuJykuZmlyc3Q7XG4iCisgICAgICAiICB9XG4iCisgICAgICAifVxuIgorICAgICAgIm1haW4oKSB7XG4iCisgICAgICAiICBwcmVmaXgueCA9IDM7XG4iCisgICAgICAiICBwcmVmaXgueSA9IDQ7XG4iCisgICAgICAiICB2YXIgZiA9IHByZWZpeCN5O1xuIgorICAgICAgIiAgdmFyIHIxID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmVsb2FkVGVzdCgpO1xuIgorICAgICAgIiAgdmFyIHIyID0gaW52b2tlKGYpO1xuIgorICAgICAgIiAgcmV0dXJuICckcjEgJHIyJztcbiIKKyAgICAgICJ9XG4iOworCisgIERhcnRfSGFuZGxlIGxpYiA9IFRlc3RDYXNlOjpMb2FkVGVzdFNjcmlwdCgKKyAgICAgIGtTY3JpcHQsIElzb2xhdGVSZWxvYWRfRGFubGluZ0dldHRlcl9MaWJyYXJ5TmF0aXZlUmVzb2x2ZXIpOworICBFWFBFQ1RfVkFMSUQobGliKTsKKworICBUZXN0Q2FzZTo6U2V0UmVsb2FkVGVzdFNjcmlwdChrU2NyaXB0KTsgIC8vIFJvb3QgbGlicmFyeSBkb2VzIG5vdCBjaGFuZ2UuCisKKyAgRVhQRUNUX1NUUkVRKCI0IE5vIHRvcC1sZXZlbCBnZXR0ZXIgJ3knIGRlY2xhcmVkLiIsCisgICAgICAgICAgICAgICBTaW1wbGVJbnZva2VTdHIobGliLCAibWFpbiIpKTsKKworICBsaWIgPSBUZXN0Q2FzZTo6R2V0UmVsb2FkRXJyb3JPclJvb3RMaWJyYXJ5KCk7CisgIEVYUEVDVF9WQUxJRChsaWIpOworfQorCisKK1RFU1RfQ0FTRShJc29sYXRlUmVsb2FkX0RhbmdsaW5nU2V0dGVyX0luc3RhbmNlKSB7CisgIGNvbnN0IGNoYXIqIGtTY3JpcHQgPQorICAgICAgImltcG9ydCAndGVzdDppc29sYXRlX3JlbG9hZF9oZWxwZXInO1xuIgorICAgICAgImNsYXNzIEMge1xuIgorICAgICAgIiAgdmFyIHggPSAzO1xuIgorICAgICAgIiAgdmFyIHkgPSA0O1xuIgorICAgICAgIn1cbiIKKyAgICAgICJpbnZva2UoZiwgYSkge1xuIgorICAgICAgIiAgdHJ5IHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGYoYSk7XG4iCisgICAgICAiICB9IGNhdGNoIChlKSB7XG4iCisgICAgICAiICAgIHJldHVybiBlLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpLmZpcnN0O1xuIgorICAgICAgIiAgfVxuIgorICAgICAgIn1cbiIKKyAgICAgICJtYWluKCkge1xuIgorICAgICAgIiAgdmFyIGMgPSBuZXcgQygpO1xuIgorICAgICAgIiAgdmFyIGYgPSBjI3k9O1xuIgorICAgICAgIiAgdmFyIHIxID0gaW52b2tlKGYsIDUpO1xuIgorICAgICAgIiAgcmVsb2FkVGVzdCgpO1xuIgorICAgICAgIiAgdmFyIHIyID0gaW52b2tlKGYsIDYpO1xuIgorICAgICAgIiAgcmV0dXJuICckcjEgJHIyJztcbiIKKyAgICAgICJ9XG4iOworCisgIERhcnRfSGFuZGxlIGxpYiA9IFRlc3RDYXNlOjpMb2FkVGVzdFNjcmlwdChrU2NyaXB0LCBOVUxMKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7CisKKyAgY29uc3QgY2hhcioga1JlbG9hZFNjcmlwdCA9CisgICAgICAiaW1wb3J0ICd0ZXN0Omlzb2xhdGVfcmVsb2FkX2hlbHBlcic7XG4iCisgICAgICAiY2xhc3MgQyB7XG4iCisgICAgICAiICB2YXIgeCA9IDM7XG4iCisgICAgICAifVxuIgorICAgICAgImludm9rZShmLCBhKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZihhKTtcbiIKKyAgICAgICIgIH0gY2F0Y2ggKGUpIHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGUudG9TdHJpbmcoKS5zcGxpdCgnXFxuJykuZmlyc3Q7XG4iCisgICAgICAiICB9XG4iCisgICAgICAifVxuIgorICAgICAgIm1haW4oKSB7XG4iCisgICAgICAiICB2YXIgYyA9IG5ldyBDKCk7XG4iCisgICAgICAiICB2YXIgZiA9IGMjeT07XG4iCisgICAgICAiICB2YXIgcjEgPSBpbnZva2UoZiwgNSk7XG4iCisgICAgICAiICByZWxvYWRUZXN0KCk7XG4iCisgICAgICAiICB2YXIgcjIgPSBpbnZva2UoZiwgNik7XG4iCisgICAgICAiICByZXR1cm4gJyRyMSAkcjInO1xuIgorICAgICAgIn1cbiI7CisKKyAgVGVzdENhc2U6OlNldFJlbG9hZFRlc3RTY3JpcHQoa1JlbG9hZFNjcmlwdCk7CisKKyAgRVhQRUNUX1NUUkVRKCJudWxsIENsYXNzICdDJyBoYXMgbm8gaW5zdGFuY2Ugc2V0dGVyICd5PScuIiwKKyAgICAgICAgICAgICAgIFNpbXBsZUludm9rZVN0cihsaWIsICJtYWluIikpOworCisgIGxpYiA9IFRlc3RDYXNlOjpHZXRSZWxvYWRFcnJvck9yUm9vdExpYnJhcnkoKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7Cit9CisKKworVEVTVF9DQVNFKElzb2xhdGVSZWxvYWRfRGFuZ2xpbmdTZXR0ZXJfQ2xhc3MpIHsKKyAgY29uc3QgY2hhcioga1NjcmlwdCA9CisgICAgICAiaW1wb3J0ICd0ZXN0Omlzb2xhdGVfcmVsb2FkX2hlbHBlcic7XG4iCisgICAgICAiY2xhc3MgQyB7XG4iCisgICAgICAiICBzdGF0aWMgdmFyIHg7XG4iCisgICAgICAiICBzdGF0aWMgdmFyIHk7XG4iCisgICAgICAifVxuIgorICAgICAgImludm9rZShmLCBhKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZihhKTtcbiIKKyAgICAgICIgIH0gY2F0Y2ggKGUpIHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGUudG9TdHJpbmcoKS5zcGxpdCgnXFxuJykuZmlyc3Q7XG4iCisgICAgICAiICB9XG4iCisgICAgICAifVxuIgorICAgICAgIm1haW4oKSB7XG4iCisgICAgICAiICBDLnggPSAzO1xuIgorICAgICAgIiAgQy55ID0gNDtcbiIKKyAgICAgICIgIHZhciBmID0gQyN5PTtcbiIKKyAgICAgICIgIHZhciByMSA9IGludm9rZShmLCA1KTtcbiIKKyAgICAgICIgIHJlbG9hZFRlc3QoKTtcbiIKKyAgICAgICIgIHZhciByMiA9IGludm9rZShmLCA2KTtcbiIKKyAgICAgICIgIHJldHVybiAnJHIxICRyMic7XG4iCisgICAgICAifVxuIjsKKworICBEYXJ0X0hhbmRsZSBsaWIgPSBUZXN0Q2FzZTo6TG9hZFRlc3RTY3JpcHQoa1NjcmlwdCwgTlVMTCk7CisgIEVYUEVDVF9WQUxJRChsaWIpOworCisgIGNvbnN0IGNoYXIqIGtSZWxvYWRTY3JpcHQgPQorICAgICAgImltcG9ydCAndGVzdDppc29sYXRlX3JlbG9hZF9oZWxwZXInO1xuIgorICAgICAgImNsYXNzIEMge1xuIgorICAgICAgIiAgc3RhdGljIHZhciB4O1xuIgorICAgICAgIn1cbiIKKyAgICAgICJpbnZva2UoZiwgYSkge1xuIgorICAgICAgIiAgdHJ5IHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGYoYSk7XG4iCisgICAgICAiICB9IGNhdGNoIChlKSB7XG4iCisgICAgICAiICAgIHJldHVybiBlLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpLmZpcnN0O1xuIgorICAgICAgIiAgfVxuIgorICAgICAgIn1cbiIKKyAgICAgICJtYWluKCkge1xuIgorICAgICAgIiAgQy54ID0gMztcbiIKKyAgICAgICIgIEMueSA9IDQ7XG4iCisgICAgICAiICB2YXIgZiA9IEMjeT07XG4iCisgICAgICAiICB2YXIgcjEgPSBpbnZva2UoZiwgNSk7XG4iCisgICAgICAiICByZWxvYWRUZXN0KCk7XG4iCisgICAgICAiICB2YXIgcjIgPSBpbnZva2UoZiwgNik7XG4iCisgICAgICAiICByZXR1cm4gJyRyMSAkcjInO1xuIgorICAgICAgIn1cbiI7CisKKyAgVGVzdENhc2U6OlNldFJlbG9hZFRlc3RTY3JpcHQoa1JlbG9hZFNjcmlwdCk7CisKKyAgRVhQRUNUX1NUUkVRKCI1IE5vIHN0YXRpYyBzZXR0ZXIgJ3k9JyBkZWNsYXJlZCBpbiBjbGFzcyAnQycuIiwKKyAgICAgICAgICAgICAgIFNpbXBsZUludm9rZVN0cihsaWIsICJtYWluIikpOworCisgIGxpYiA9IFRlc3RDYXNlOjpHZXRSZWxvYWRFcnJvck9yUm9vdExpYnJhcnkoKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7Cit9CisKKworc3RhdGljIHZvaWQgSXNvbGF0ZVJlbG9hZF9EYW5saW5nU2V0dGVyX0xpYnJhcnlSZWxvYWQoCisgICAgRGFydF9OYXRpdmVBcmd1bWVudHMgbmF0aXZlX2FyZ3MpIHsKKyAgY29uc3QgY2hhcioga0ltcG9ydFNjcmlwdDIgPQorICAgICJ2YXIgeDtcbiI7CisgIFRlc3RDYXNlOjpBZGRUZXN0TGliKCJ0ZXN0Om90aGVyIiwga0ltcG9ydFNjcmlwdDIpOworCisgIERBUlRfQ0hFQ0tfVkFMSUQoVGVzdENhc2U6OlRyaWdnZXJSZWxvYWQoKSk7Cit9CisKKworc3RhdGljIERhcnRfTmF0aXZlRnVuY3Rpb24gSXNvbGF0ZVJlbG9hZF9EYW5saW5nU2V0dGVyX0xpYnJhcnlOYXRpdmVSZXNvbHZlcigKKyAgICBEYXJ0X0hhbmRsZSBuYW1lLAorICAgIGludCBudW1fb2ZfYXJndW1lbnRzLAorICAgIGJvb2wqIGF1dG9fc2V0dXBfc2NvcGUpIHsKKyAgcmV0dXJuIElzb2xhdGVSZWxvYWRfRGFubGluZ1NldHRlcl9MaWJyYXJ5UmVsb2FkOworfQorCisKK1RFU1RfQ0FTRShJc29sYXRlUmVsb2FkX0RhbmdsaW5nU2V0dGVyX0xpYnJhcnkpIHsKKyAgY29uc3QgY2hhcioga0ltcG9ydFNjcmlwdCA9CisgICAgICAidmFyIHg7XG4iCisgICAgICAidmFyIHk7XG4iOworICBUZXN0Q2FzZTo6QWRkVGVzdExpYigidGVzdDpvdGhlciIsIGtJbXBvcnRTY3JpcHQpOworCisgIGNvbnN0IGNoYXIqIGtTY3JpcHQgPQorICAgICAgImltcG9ydCAndGVzdDpvdGhlcicgYXMgcHJlZml4O1xuIgorICAgICAgInJlbG9hZFRlc3QoKSBuYXRpdmUgJ1JlbG9hZFRlc3QnO1xuIgorICAgICAgImludm9rZShmLCBhKSB7XG4iCisgICAgICAiICB0cnkge1xuIgorICAgICAgIiAgICByZXR1cm4gZihhKTtcbiIKKyAgICAgICIgIH0gY2F0Y2ggKGUpIHtcbiIKKyAgICAgICIgICAgcmV0dXJuIGUudG9TdHJpbmcoKS5zcGxpdCgnXFxuJykuZmlyc3Q7XG4iCisgICAgICAiICB9XG4iCisgICAgICAifVxuIgorICAgICAgIm1haW4oKSB7XG4iCisgICAgICAiICBwcmVmaXgueCA9IDM7XG4iCisgICAgICAiICBwcmVmaXgueSA9IDQ7XG4iCisgICAgICAiICB2YXIgZiA9IHByZWZpeCN5PTtcbiIKKyAgICAgICIgIHZhciByMSA9IGludm9rZShmLCA1KTtcbiIKKyAgICAgICIgIHJlbG9hZFRlc3QoKTtcbiIKKyAgICAgICIgIHZhciByMiA9IGludm9rZShmLCA2KTtcbiIKKyAgICAgICIgIHJldHVybiAnJHIxICRyMic7XG4iCisgICAgICAifVxuIjsKKworICBEYXJ0X0hhbmRsZSBsaWIgPSBUZXN0Q2FzZTo6TG9hZFRlc3RTY3JpcHQoCisgICAgICBrU2NyaXB0LCBJc29sYXRlUmVsb2FkX0RhbmxpbmdTZXR0ZXJfTGlicmFyeU5hdGl2ZVJlc29sdmVyKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7CisKKyAgVGVzdENhc2U6OlNldFJlbG9hZFRlc3RTY3JpcHQoa1NjcmlwdCk7ICAvLyBSb290IGxpYnJhcnkgZG9lcyBub3QgY2hhbmdlLgorCisgIEVYUEVDVF9TVFJFUSgiNSBObyB0b3AtbGV2ZWwgc2V0dGVyICd5PScgZGVjbGFyZWQuIiwKKyAgICAgICAgICAgICAgIFNpbXBsZUludm9rZVN0cihsaWIsICJtYWluIikpOworCisgIGxpYiA9IFRlc3RDYXNlOjpHZXRSZWxvYWRFcnJvck9yUm9vdExpYnJhcnkoKTsKKyAgRVhQRUNUX1ZBTElEKGxpYik7Cit9CisKKwogVEVTVF9DQVNFKElzb2xhdGVSZWxvYWRfRW51bUVxdWFsaXR5KSB7CiAgIGNvbnN0IGNoYXIqIGtTY3JpcHQgPQogICAgICAgImVudW0gRnJ1aXQge1xuIgpkaWZmIC0tZ2l0IGEvcnVudGltZS92bS9tZXNzYWdlX2hhbmRsZXIuY2MgYi9ydW50aW1lL3ZtL21lc3NhZ2VfaGFuZGxlci5jYwppbmRleCA1ZTVmNjg1Li44MGNmYmJmIDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL21lc3NhZ2VfaGFuZGxlci5jYworKysgYi9ydW50aW1lL3ZtL21lc3NhZ2VfaGFuZGxlci5jYwpAQCAtNjQsNiArNjQsNyBAQAogICAgICAgc2hvdWxkX3BhdXNlX29uX2V4aXRfKGZhbHNlKSwKICAgICAgIGlzX3BhdXNlZF9vbl9zdGFydF8oZmFsc2UpLAogICAgICAgaXNfcGF1c2VkX29uX2V4aXRfKGZhbHNlKSwKKyAgICAgIGRlbGV0ZV9tZV8oZmFsc2UpLAogICAgICAgcGF1c2VkX3RpbWVzdGFtcF8oLTEpLAogICAgICAgcG9vbF8oTlVMTCksCiAgICAgICB0YXNrXyhOVUxMKSwKQEAgLTc4LDYgKzc5LDEwIEBACiBNZXNzYWdlSGFuZGxlcjo6fk1lc3NhZ2VIYW5kbGVyKCkgewogICBkZWxldGUgcXVldWVfOwogICBkZWxldGUgb29iX3F1ZXVlXzsKKyAgcXVldWVfID0gTlVMTDsKKyAgb29iX3F1ZXVlXyA9IE5VTEw7CisgIHBvb2xfID0gTlVMTDsKKyAgdGFza18gPSBOVUxMOwogfQogCiAKQEAgLTExMCw2ICsxMTUsNyBAQAogICAgICAgICAgICAgICBuYW1lKCkpOwogICB9CiAgIEFTU0VSVChwb29sXyA9PSBOVUxMKTsKKyAgQVNTRVJUKCFkZWxldGVfbWVfKTsKICAgcG9vbF8gPSBwb29sOwogICBzdGFydF9jYWxsYmFja18gPSBzdGFydF9jYWxsYmFjazsKICAgZW5kX2NhbGxiYWNrXyA9IGVuZF9jYWxsYmFjazsKQEAgLTE0OCw2ICsxNTQsNyBAQAogICAgIG1lc3NhZ2UgPSBOVUxMOyAgLy8gRG8gbm90IGFjY2VzcyBtZXNzYWdlLiAgTWF5IGhhdmUgYmVlbiBkZWxldGVkLgogCiAgICAgaWYgKChwb29sXyAhPSBOVUxMKSAmJiAodGFza18gPT0gTlVMTCkpIHsKKyAgICAgIEFTU0VSVCghZGVsZXRlX21lXyk7CiAgICAgICB0YXNrXyA9IG5ldyBNZXNzYWdlSGFuZGxlclRhc2sodGhpcyk7CiAgICAgICB0YXNrX3J1bm5pbmcgPSBwb29sXy0+UnVuKHRhc2tfKTsKICAgICB9CkBAIC0yNTEsNiArMjU4LDcgQEAKICAgLy8gYXNzaWduZWQgdG8gYSB0aHJlYWQgcG9vbC4KICAgTW9uaXRvckxvY2tlciBtbCgmbW9uaXRvcl8pOwogICBBU1NFUlQocG9vbF8gPT0gTlVMTCk7CisgIEFTU0VSVCghZGVsZXRlX21lXyk7CiAjaWYgZGVmaW5lZChERUJVRykKICAgQ2hlY2tBY2Nlc3MoKTsKICNlbmRpZgpAQCAtMjYzLDYgKzI3MSw3IEBACiAgIC8vIGFzc2lnbmVkIHRvIGEgdGhyZWFkIHBvb2wuCiAgIE1vbml0b3JMb2NrZXIgbWwoJm1vbml0b3JfKTsKICAgQVNTRVJUKHBvb2xfID09IE5VTEwpOworICBBU1NFUlQoIWRlbGV0ZV9tZV8pOwogI2lmIGRlZmluZWQoREVCVUcpCiAgIENoZWNrQWNjZXNzKCk7CiAjZW5kaWYKQEAgLTI3NSw2ICsyODQsNyBAQAogICAgIHJldHVybiBrT0s7CiAgIH0KICAgTW9uaXRvckxvY2tlciBtbCgmbW9uaXRvcl8pOworICBBU1NFUlQoIWRlbGV0ZV9tZV8pOwogI2lmIGRlZmluZWQoREVCVUcpCiAgIENoZWNrQWNjZXNzKCk7CiAjZW5kaWYKQEAgLTMxNiw2ICszMjYsNyBAQAogICBBU1NFUlQoSXNvbGF0ZTo6Q3VycmVudCgpID09IE5VTEwpOwogICBNZXNzYWdlU3RhdHVzIHN0YXR1cyA9IGtPSzsKICAgYm9vbCBydW5fZW5kX2NhbGxiYWNrID0gZmFsc2U7CisgIGJvb2wgZGVsZXRlX21lID0gZmFsc2U7CiAgIHsKICAgICAvLyBXZSB3aWxsIG9jY2FzaW9uYWxseSByZWxlYXNlIGFuZCByZWFjcXVpcmUgdGhpcyBtb25pdG9yIGluIHRoaXMKICAgICAvLyBmdW5jdGlvbi4gV2hlbmV2ZXIgd2UgcmVhY3F1aXJlIHRoZSBtb25pdG9yIHdlICptdXN0KiBwcm9jZXNzCkBAIC0zOTUsNiArNDA2LDcgQEAKICAgICAgIH0KICAgICAgIHBvb2xfID0gTlVMTDsKICAgICAgIHJ1bl9lbmRfY2FsbGJhY2sgPSB0cnVlOworICAgICAgZGVsZXRlX21lID0gZGVsZXRlX21lXzsKICAgICB9CiAKICAgICAvLyBDbGVhciB0aGUgdGFza18gbGFzdC4gIFRoaXMgYWxsb3dzIG90aGVyIHRhc2tzIHRvIHBvdGVudGlhbGx5IHN0YXJ0CkBAIC00MDIsMTAgKzQxNCwxNyBAQAogICAgIEFTU0VSVChvb2JfcXVldWVfLT5Jc0VtcHR5KCkpOwogICAgIHRhc2tfID0gTlVMTDsKICAgfQorCisgIC8vIE1lc3NhZ2UgaGFuZGxlcnMgZWl0aGVyIHVzZSBkZWxldGVfbWUgb3IgZW5kX2NhbGxiYWNrIGJ1dCBub3QgYm90aC4KKyAgQVNTRVJUKCFkZWxldGVfbWUgfHwgZW5kX2NhbGxiYWNrXyA9PSBOVUxMKTsKKwogICBpZiAocnVuX2VuZF9jYWxsYmFjayAmJiBlbmRfY2FsbGJhY2tfICE9IE5VTEwpIHsKICAgICBlbmRfY2FsbGJhY2tfKGNhbGxiYWNrX2RhdGFfKTsKICAgICAvLyBUaGUgaGFuZGxlciBtYXkgaGF2ZSBiZWVuIGRlbGV0ZWQgYWZ0ZXIgdGhpcyBwb2ludC4KICAgfQorICBpZiAoZGVsZXRlX21lKSB7CisgICAgZGVsZXRlIHRoaXM7CisgIH0KIH0KIAogCkBAIC00MzMsNiArNDUyLDIyIEBACiB9CiAKIAordm9pZCBNZXNzYWdlSGFuZGxlcjo6UmVxdWVzdERlbGV0aW9uKCkgeworICBBU1NFUlQoT3duZWRCeVBvcnRNYXAoKSk7CisgIHsKKyAgICBNb25pdG9yTG9ja2VyIG1sKCZtb25pdG9yXyk7CisgICAgaWYgKHRhc2tfICE9IE5VTEwpIHsKKyAgICAgIC8vIFRoaXMgbWVzc2FnZSBoYW5kbGVyIGN1cnJlbnRseSBoYXMgYSB0YXNrIHJ1bm5pbmcgb24gdGhlIHRocmVhZCBwb29sLgorICAgICAgZGVsZXRlX21lXyA9IHRydWU7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisKKyAgLy8gVGhpcyBtZXNzYWdlIGhhbmRsZXIgaGFzIG5vIGN1cnJlbnQgdGFzay4gIERlbGV0ZSBpdC4KKyAgZGVsZXRlIHRoaXM7Cit9CisKKwogdm9pZCBNZXNzYWdlSGFuZGxlcjo6aW5jcmVtZW50X2xpdmVfcG9ydHMoKSB7CiAgIE1vbml0b3JMb2NrZXIgbWwoJm1vbml0b3JfKTsKICNpZiBkZWZpbmVkKERFQlVHKQpkaWZmIC0tZ2l0IGEvcnVudGltZS92bS9tZXNzYWdlX2hhbmRsZXIuaCBiL3J1bnRpbWUvdm0vbWVzc2FnZV9oYW5kbGVyLmgKaW5kZXggYzUyNDMxZC4uODI1ZTNkMyAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9tZXNzYWdlX2hhbmRsZXIuaAorKysgYi9ydW50aW1lL3ZtL21lc3NhZ2VfaGFuZGxlci5oCkBAIC0xODcsNiArMTg3LDEwIEBACiAgIC8vIFRoaXMgaXMgdXNlZCB0byBkZWxldGUgaGFuZGxlcnMgd2hlbiB0aGVpciBsYXN0IGxpdmUgcG9ydCBpcyBjbG9zZWQuCiAgIHZpcnR1YWwgYm9vbCBPd25lZEJ5UG9ydE1hcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgLy8gUmVxdWVzdHMgZGVsZXRpb24gb2YgdGhpcyBtZXNzYWdlIGhhbmRsZXIgd2hlbiB0aGUgbmV4dCB0YXNrCisgIC8vIGNvbXBsZXRlcy4KKyAgdm9pZCBSZXF1ZXN0RGVsZXRpb24oKTsKKwogICB2b2lkIGluY3JlbWVudF9saXZlX3BvcnRzKCk7CiAgIHZvaWQgZGVjcmVtZW50X2xpdmVfcG9ydHMoKTsKICAgLy8gLS0tLS0tLS0tLS0tIEVORCBQb3J0TWFwIEFQSSAtLS0tLS0tLS0tLS0KQEAgLTI0MSw2ICsyNDUsNyBAQAogICBib29sIHNob3VsZF9wYXVzZV9vbl9leGl0XzsKICAgYm9vbCBpc19wYXVzZWRfb25fc3RhcnRfOwogICBib29sIGlzX3BhdXNlZF9vbl9leGl0XzsKKyAgYm9vbCBkZWxldGVfbWVfOwogICBpbnQ2NF90IHBhdXNlZF90aW1lc3RhbXBfOwogICBUaHJlYWRQb29sKiBwb29sXzsKICAgVGhyZWFkUG9vbDo6VGFzayogdGFza187CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL25hdGl2ZV9hcGlfaW1wbC5jYyBiL3J1bnRpbWUvdm0vbmF0aXZlX2FwaV9pbXBsLmNjCmluZGV4IDFiYzVkNGMuLjdhYmQ1MmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdm0vbmF0aXZlX2FwaV9pbXBsLmNjCisrKyBiL3J1bnRpbWUvdm0vbmF0aXZlX2FwaV9pbXBsLmNjCkBAIC05MCw2ICs5MCw3IEBACiAKICAgTmF0aXZlTWVzc2FnZUhhbmRsZXIqIG5taCA9IG5ldyBOYXRpdmVNZXNzYWdlSGFuZGxlcihuYW1lLCBoYW5kbGVyKTsKICAgRGFydF9Qb3J0IHBvcnRfaWQgPSBQb3J0TWFwOjpDcmVhdGVQb3J0KG5taCk7CisgIFBvcnRNYXA6OlNldFBvcnRTdGF0ZShwb3J0X2lkLCBQb3J0TWFwOjprTGl2ZVBvcnQpOwogICBubWgtPlJ1bihEYXJ0Ojp0aHJlYWRfcG9vbCgpLCBOVUxMLCBOVUxMLCAwKTsKICAgcmV0dXJuIHBvcnRfaWQ7CiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL25hdGl2ZV9tZXNzYWdlX2hhbmRsZXIuY2MgYi9ydW50aW1lL3ZtL25hdGl2ZV9tZXNzYWdlX2hhbmRsZXIuY2MKaW5kZXggNzc3OWU5NS4uMTc2MzM0MSAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9uYXRpdmVfbWVzc2FnZV9oYW5kbGVyLmNjCisrKyBiL3J1bnRpbWUvdm0vbmF0aXZlX21lc3NhZ2VfaGFuZGxlci5jYwpAQCAtMTUsOCArMTUsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhcnRfTmF0aXZlTWVzc2FnZUhhbmRsZXIgZnVuYykKICAgICA6IG5hbWVfKHN0cmR1cChuYW1lKSksCiAgICAgICBmdW5jXyhmdW5jKSB7Ci0gIC8vIEEgTmF0aXZlTWVzc2FnZUhhbmRsZXIgYWx3YXlzIGhhcyBvbmUgbGl2ZSBwb3J0LgotICBpbmNyZW1lbnRfbGl2ZV9wb3J0cygpOwogfQogCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdm0vb2JqZWN0LmNjIGIvcnVudGltZS92bS9vYmplY3QuY2MKaW5kZXggMDUwNmZhNy4uMDg4NmEzMCAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9vYmplY3QuY2MKKysrIGIvcnVudGltZS92bS9vYmplY3QuY2MKQEAgLTEyOTczLDEwICsxMjk3Myw2IEBACiB9CiAKIAotdm9pZCBJQ0RhdGE6OlZhbGlkYXRlU2VudGluZWxMb2NhdGlvbnMoKSBjb25zdCB7Ci19Ci0KLQogdm9pZCBJQ0RhdGE6OkFkZFJlY2VpdmVyQ2hlY2soaW50cHRyX3QgcmVjZWl2ZXJfY2xhc3NfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGdW5jdGlvbiYgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50cHRyX3QgY291bnQpIGNvbnN0IHsKQEAgLTEzNDE2LDEyICsxMzQxMiwxMCBAQAogfQogCiAKLVJhd0FycmF5KiBJQ0RhdGE6Ok5ld0VtcHR5SUNEYXRhQXJyYXkoaW50cHRyX3QgbnVtX2FyZ3NfdGVzdGVkKSB7CitSYXdBcnJheSogSUNEYXRhOjpDYWNoZWRFbXB0eUlDRGF0YUFycmF5KGludHB0cl90IG51bV9hcmdzX3Rlc3RlZCkgewogICBBU1NFUlQobnVtX2FyZ3NfdGVzdGVkID49IDApOwotICBpZiAobnVtX2FyZ3NfdGVzdGVkIDwga0NhY2hlZElDRGF0YUFycmF5Q291bnQpIHsKLSAgICByZXR1cm4gY2FjaGVkX2ljZGF0YV9hcnJheXNfW251bV9hcmdzX3Rlc3RlZF07Ci0gIH0KLSAgcmV0dXJuIE5ld05vbkNhY2hlZEVtcHR5SUNEYXRhQXJyYXkobnVtX2FyZ3NfdGVzdGVkKTsKKyAgQVNTRVJUKG51bV9hcmdzX3Rlc3RlZCA8IGtDYWNoZWRJQ0RhdGFBcnJheUNvdW50KTsKKyAgcmV0dXJuIGNhY2hlZF9pY2RhdGFfYXJyYXlzX1tudW1fYXJnc190ZXN0ZWRdOwogfQogCiAKQEAgLTEzNDY4LDE2ICsxMzQ2Miw2IEBACiB9CiAKIAotdm9pZCBJQ0RhdGE6OlJlc2V0RGF0YSgpIGNvbnN0IHsKLSAgLy8gTnVtYmVyIG9mIGFycmF5IGVsZW1lbnRzIGluIG9uZSB0ZXN0IGVudHJ5LgotICBpbnRwdHJfdCBsZW4gPSBUZXN0RW50cnlMZW5ndGgoKTsKLSAgLy8gSUMgZGF0YSBhcnJheSBtdXN0IGJlIG51bGwgdGVybWluYXRlZCAoc2VudGluZWwgZW50cnkpLgotICBjb25zdCBBcnJheSYgaWNfZGF0YSA9IEFycmF5OjpIYW5kbGUoQXJyYXk6Ok5ldyhsZW4sIEhlYXA6OmtPbGQpKTsKLSAgc2V0X2ljX2RhdGFfYXJyYXkoaWNfZGF0YSk7Ci0gIFdyaXRlU2VudGluZWwoaWNfZGF0YSwgbGVuKTsKLX0KLQotCiBSYXdJQ0RhdGEqIElDRGF0YTo6TmV3KCkgewogICBJQ0RhdGEmIHJlc3VsdCA9IElDRGF0YTo6SGFuZGxlKCk7CiAgIHsKQEAgLTEzNTEzLDcgKzEzNDk3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9hcmdzX3Rlc3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3N0YXRpY19jYWxsKSk7CiAgIHJlc3VsdC5zZXRfaWNfZGF0YV9hcnJheSgKLSAgICAgIEFycmF5OjpIYW5kbGUoem9uZSwgTmV3RW1wdHlJQ0RhdGFBcnJheShudW1fYXJnc190ZXN0ZWQpKSk7CisgICAgICBBcnJheTo6SGFuZGxlKHpvbmUsIENhY2hlZEVtcHR5SUNEYXRhQXJyYXkobnVtX2FyZ3NfdGVzdGVkKSkpOwogICByZXR1cm4gcmVzdWx0LnJhdygpOwogfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL29iamVjdC5oIGIvcnVudGltZS92bS9vYmplY3QuaAppbmRleCBlOWM5MjgwLi42YmU5MzJkIDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL29iamVjdC5oCisrKyBiL3J1bnRpbWUvdm0vb2JqZWN0LmgKQEAgLTE4NTMsOCArMTg1Myw3IEBACiAKICAgYm9vbCBJc0ltbXV0YWJsZSgpIGNvbnN0OwogCi0gIHZvaWQgUmVzZXQoKSBjb25zdDsKLSAgdm9pZCBSZXNldERhdGEoKSBjb25zdDsKKyAgdm9pZCBSZXNldChab25lKiB6b25lKSBjb25zdDsKIAogICAvLyBOb3RlOiBvbmx5IGRlb3B0cyB3aXRoIHJlYXNvbnMgYmVmb3JlIFVua25vd24gaW4gdGhpcyBsaXN0IGFyZSByZWNvcmRlZCBpbgogICAvLyB0aGUgSUNEYXRhLiBBbGwgb3RoZXIgcmVhc29ucyBhcmUgdXNlZCBwdXJlbHkgZm9yIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKQEAgLTE5NjAsNyArMTk1OSw2IEBACiAgIFJhd0FycmF5KiBGaW5kRnJlZUluZGV4KGludHB0cl90KiBpbmRleCkgY29uc3Q7CiAKICAgdm9pZCBEZWJ1Z0R1bXAoKSBjb25zdDsKLSAgdm9pZCBWYWxpZGF0ZVNlbnRpbmVsTG9jYXRpb25zKCkgY29uc3Q7CiAKICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgYSB0d28gYXJnIHNtaSBvcGVyYXRpb24uCiAgIGJvb2wgQWRkU21pU21pQ2hlY2tGb3JGYXN0U21pU3R1YnMoKSBjb25zdDsKQEAgLTIxMzMsNyArMjEzMSw3IEBACiAKICAgaW50cHRyX3QgVGVzdEVudHJ5TGVuZ3RoKCkgY29uc3Q7CiAgIHN0YXRpYyBSYXdBcnJheSogTmV3Tm9uQ2FjaGVkRW1wdHlJQ0RhdGFBcnJheShpbnRwdHJfdCBudW1fYXJnc190ZXN0ZWQpOwotICBzdGF0aWMgUmF3QXJyYXkqIE5ld0VtcHR5SUNEYXRhQXJyYXkoaW50cHRyX3QgbnVtX2FyZ3NfdGVzdGVkKTsKKyAgc3RhdGljIFJhd0FycmF5KiBDYWNoZWRFbXB0eUlDRGF0YUFycmF5KGludHB0cl90IG51bV9hcmdzX3Rlc3RlZCk7CiAgIHN0YXRpYyBSYXdJQ0RhdGEqIE5ld0Rlc2NyaXB0b3IoWm9uZSogem9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGdW5jdGlvbiYgb3duZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB0YXJnZXRfbmFtZSwKQEAgLTQ1MDQsNyArNDUwMiw3IEBACiAKICAgLy8gVXNlZCBkdXJpbmcgcmVsb2FkaW5nIChzZWUgb2JqZWN0X3JlbG9hZC5jYykuIENhbGxzIFJlc2V0IG9uIGFsbCBJQ0RhdGFzCiAgIC8vIHRoYXQgYXJlIGVtYmVkZGVkIGluc2lkZSB0aGUgQ29kZSBvYmplY3QuCi0gIHZvaWQgUmVzZXRJQ0RhdGFzKCkgY29uc3Q7CisgIHZvaWQgUmVzZXRJQ0RhdGFzKFpvbmUqIHpvbmUpIGNvbnN0OwogCiAgIFRva2VuUG9zaXRpb24gR2V0VG9rZW5Qb3NpdGlvbkF0KGludHB0cl90IG9mZnNldCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdm0vb2JqZWN0X3JlbG9hZC5jYyBiL3J1bnRpbWUvdm0vb2JqZWN0X3JlbG9hZC5jYwppbmRleCBlYzc5YzZiLi4zMWZkZmVkIDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL29iamVjdF9yZWxvYWQuY2MKKysrIGIvcnVudGltZS92bS9vYmplY3RfcmVsb2FkLmNjCkBAIC01Nyw3ICs1Nyw3IEBACiB9CiAKIAotdm9pZCBDb2RlOjpSZXNldElDRGF0YXMoKSBjb25zdCB7Cit2b2lkIENvZGU6OlJlc2V0SUNEYXRhcyhab25lKiB6b25lKSBjb25zdCB7CiAgIC8vIEl0ZXJhdGUgb3ZlciB0aGUgQ29kZSdzIG9iamVjdCBwb29sIGFuZCByZXNldCBhbGwgSUNEYXRhcy4KICNpZmRlZiBUQVJHRVRfQVJDSF9JQTMyCiAgIC8vIElBMzIgZG9lcyBub3QgaGF2ZSBhbiBvYmplY3QgcG9vbCwgYnV0LCB3ZSBjYW4gaXRlcmF0ZSBvdmVyIGFsbApAQCAtNjUsMTAgKzY1LDEwIEBACiAgIGlmICghaXNfYWxpdmUoKSkgewogICAgIHJldHVybjsKICAgfQotICBjb25zdCBJbnN0cnVjdGlvbnMmIGluc3RycyA9IEluc3RydWN0aW9uczo6SGFuZGxlKGluc3RydWN0aW9ucygpKTsKKyAgY29uc3QgSW5zdHJ1Y3Rpb25zJiBpbnN0cnMgPSBJbnN0cnVjdGlvbnM6OkhhbmRsZSh6b25lLCBpbnN0cnVjdGlvbnMoKSk7CiAgIEFTU0VSVCghaW5zdHJzLklzTnVsbCgpKTsKICAgdXdvcmQgYmFzZV9hZGRyZXNzID0gaW5zdHJzLkVudHJ5UG9pbnQoKTsKLSAgT2JqZWN0JiBvYmplY3QgPSBPYmplY3Q6OkhhbmRsZSgpOworICBPYmplY3QmIG9iamVjdCA9IE9iamVjdDo6SGFuZGxlKHpvbmUpOwogICBpbnRwdHJfdCBvZmZzZXRzX2xlbmd0aCA9IHBvaW50ZXJfb2Zmc2V0c19sZW5ndGgoKTsKICAgY29uc3QgaW50MzJfdCogb2Zmc2V0cyA9IHJhd19wdHIoKS0+ZGF0YSgpOwogICBmb3IgKGludHB0cl90IGkgPSAwOyBpIDwgb2Zmc2V0c19sZW5ndGg7IGkrKykgewpAQCAtODEsMTIgKzgxLDEyIEBACiAgICAgfQogICAgIG9iamVjdCA9IHJhd19vYmplY3Q7CiAgICAgaWYgKG9iamVjdC5Jc0lDRGF0YSgpKSB7Ci0gICAgICBJQ0RhdGE6OkNhc3Qob2JqZWN0KS5SZXNldCgpOworICAgICAgSUNEYXRhOjpDYXN0KG9iamVjdCkuUmVzZXQoem9uZSk7CiAgICAgfQogICB9CiAjZWxzZQotICBjb25zdCBPYmplY3RQb29sJiBwb29sID0gT2JqZWN0UG9vbDo6SGFuZGxlKG9iamVjdF9wb29sKCkpOwotICBPYmplY3QmIG9iamVjdCA9IE9iamVjdDo6SGFuZGxlKCk7CisgIGNvbnN0IE9iamVjdFBvb2wmIHBvb2wgPSBPYmplY3RQb29sOjpIYW5kbGUoem9uZSwgb2JqZWN0X3Bvb2woKSk7CisgIE9iamVjdCYgb2JqZWN0ID0gT2JqZWN0OjpIYW5kbGUoem9uZSk7CiAgIEFTU0VSVCghcG9vbC5Jc051bGwoKSk7CiAgIGZvciAoaW50cHRyX3QgaSA9IDA7IGkgPCBwb29sLkxlbmd0aCgpOyBpKyspIHsKICAgICBPYmplY3RQb29sOjpFbnRyeVR5cGUgZW50cnlfdHlwZSA9IHBvb2wuSW5mb0F0KGkpOwpAQCAtOTUsNyArOTUsNyBAQAogICAgIH0KICAgICBvYmplY3QgPSBwb29sLk9iamVjdEF0KGkpOwogICAgIGlmIChvYmplY3QuSXNJQ0RhdGEoKSkgewotICAgICAgSUNEYXRhOjpDYXN0KG9iamVjdCkuUmVzZXQoKTsKKyAgICAgIElDRGF0YTo6Q2FzdChvYmplY3QpLlJlc2V0KHpvbmUpOwogICAgIH0KICAgfQogI2VuZGlmCkBAIC02NzksMjQgKzY3OSwyNCBAQAogc3RhdGljIGNvbnN0IEZ1bmN0aW9uKiBzdGF0aWNfY2FsbF90YXJnZXQgPSBOVUxMOwogCiAKLXZvaWQgSUNEYXRhOjpSZXNldCgpIGNvbnN0IHsKK3ZvaWQgSUNEYXRhOjpSZXNldChab25lKiB6b25lKSBjb25zdCB7CiAgIGlmIChpc19zdGF0aWNfY2FsbCgpKSB7Ci0gICAgY29uc3QgRnVuY3Rpb24mIG9sZF90YXJnZXQgPSBGdW5jdGlvbjo6SGFuZGxlKEdldFRhcmdldEF0KDApKTsKKyAgICBjb25zdCBGdW5jdGlvbiYgb2xkX3RhcmdldCA9IEZ1bmN0aW9uOjpIYW5kbGUoem9uZSwgR2V0VGFyZ2V0QXQoMCkpOwogICAgIGlmIChvbGRfdGFyZ2V0LklzTnVsbCgpKSB7CiAgICAgICBGQVRBTCgib2xkX3RhcmdldCBpcyBOVUxMLlxuIik7CiAgICAgfQogICAgIHN0YXRpY19jYWxsX3RhcmdldCA9ICZvbGRfdGFyZ2V0OwogCi0gICAgY29uc3QgU3RyaW5nJiBzZWxlY3RvciA9IFN0cmluZzo6SGFuZGxlKG9sZF90YXJnZXQubmFtZSgpKTsKLSAgICBGdW5jdGlvbiYgbmV3X3RhcmdldCA9IEZ1bmN0aW9uOjpIYW5kbGUoKTsKKyAgICBjb25zdCBTdHJpbmcmIHNlbGVjdG9yID0gU3RyaW5nOjpIYW5kbGUoem9uZSwgb2xkX3RhcmdldC5uYW1lKCkpOworICAgIEZ1bmN0aW9uJiBuZXdfdGFyZ2V0ID0gRnVuY3Rpb246OkhhbmRsZSh6b25lKTsKICAgICBpZiAoIW9sZF90YXJnZXQuaXNfc3RhdGljKCkpIHsKICAgICAgIGlmIChvbGRfdGFyZ2V0LmtpbmQoKSA9PSBSYXdGdW5jdGlvbjo6a0NvbnN0cnVjdG9yKSB7CiAgICAgICAgIHJldHVybjsgIC8vIFN1cGVyIGNvbnN0cnVjdG9yIGNhbGwuCiAgICAgICB9Ci0gICAgICBGdW5jdGlvbiYgY2FsbGVyID0gRnVuY3Rpb246OkhhbmRsZSgpOworICAgICAgRnVuY3Rpb24mIGNhbGxlciA9IEZ1bmN0aW9uOjpIYW5kbGUoem9uZSk7CiAgICAgICBjYWxsZXIgXj0gT3duZXIoKTsKICAgICAgIEFTU0VSVCghY2FsbGVyLmlzX3N0YXRpYygpKTsKLSAgICAgIENsYXNzJiBjbHMgPSBDbGFzczo6SGFuZGxlKGNhbGxlci5Pd25lcigpKTsKKyAgICAgIENsYXNzJiBjbHMgPSBDbGFzczo6SGFuZGxlKHpvbmUsIGNhbGxlci5Pd25lcigpKTsKICAgICAgIGlmIChjbHMucmF3KCkgPT0gb2xkX3RhcmdldC5Pd25lcigpKSB7CiAgICAgICAgIC8vIERpc3BhdGNoZXIuCiAgICAgICAgIGlmIChjYWxsZXIuSXNJbXBsaWNpdENsb3N1cmVGdW5jdGlvbigpKSB7CkBAIC03MDcsNyArNzA3LDcgQEAKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgY29uc3QgRnVuY3Rpb24mIGNhbGxlcl9wYXJlbnQgPQotICAgICAgICAgICAgRnVuY3Rpb246OkhhbmRsZShjYWxsZXIucGFyZW50X2Z1bmN0aW9uKCkpOworICAgICAgICAgICAgRnVuY3Rpb246OkhhbmRsZSh6b25lLCBjYWxsZXIucGFyZW50X2Z1bmN0aW9uKCkpOwogICAgICAgICBpZiAoIWNhbGxlcl9wYXJlbnQuSXNOdWxsKCkpIHsKICAgICAgICAgICBpZiAoY2FsbGVyX3BhcmVudC5raW5kKCkgPT0gUmF3RnVuY3Rpb246OmtJbnZva2VGaWVsZERpc3BhdGNoZXIpIHsKICAgICAgICAgICAgIHJldHVybjsgIC8vIENhbGwtdGhyb3VnaC1nZXR0ZXIuCkBAIC03MzAsMjMgKzczMCwzMCBAQAogICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAvLyBUaGlzIGNhbiBiZSBpbmNvcnJlY3QgaWYgdGhlIGNhbGwgc2l0ZSB3YXMgYW4gdW5xdWFsaWZpZWQgaW52b2NhdGlvbi4KLSAgICAgIGNvbnN0IENsYXNzJiBjbHMgPSBDbGFzczo6SGFuZGxlKG9sZF90YXJnZXQuT3duZXIoKSk7CisgICAgICBjb25zdCBDbGFzcyYgY2xzID0gQ2xhc3M6OkhhbmRsZSh6b25lLCBvbGRfdGFyZ2V0Lk93bmVyKCkpOwogICAgICAgbmV3X3RhcmdldCA9IGNscy5Mb29rdXBTdGF0aWNGdW5jdGlvbihzZWxlY3Rvcik7CiAgICAgfQogCi0gICAgY29uc3QgQXJyYXkmIGFyZ3NfZGVzY19hcnJheSA9IEFycmF5OjpIYW5kbGUoYXJndW1lbnRzX2Rlc2NyaXB0b3IoKSk7CisgICAgY29uc3QgQXJyYXkmIGFyZ3NfZGVzY19hcnJheSA9IEFycmF5OjpIYW5kbGUoem9uZSwgYXJndW1lbnRzX2Rlc2NyaXB0b3IoKSk7CiAgICAgQXJndW1lbnRzRGVzY3JpcHRvciBhcmdzX2Rlc2MoYXJnc19kZXNjX2FycmF5KTsKICAgICBpZiAobmV3X3RhcmdldC5Jc051bGwoKSB8fAogICAgICAgICAhbmV3X3RhcmdldC5BcmVWYWxpZEFyZ3VtZW50cyhhcmdzX2Rlc2MsIE5VTEwpKSB7CiAgICAgICAvLyBUT0RPKHJtYWNuYWspOiBQYXRjaCB0byBhIE5TTUUgc3R1Yi4KICAgICAgIFZUSVJfUHJpbnQoIkNhbm5vdCByZWJpbmQgc3RhdGljIGNhbGwgdG8gJXMgZnJvbSAlc1xuIiwKICAgICAgICAgICAgICAgICAgb2xkX3RhcmdldC5Ub0NTdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgT2JqZWN0OjpIYW5kbGUoT3duZXIoKSkuVG9DU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICBPYmplY3Q6OkhhbmRsZSh6b25lLCBPd25lcigpKS5Ub0NTdHJpbmcoKSk7CiAgICAgICByZXR1cm47CiAgICAgfQogICAgIENsZWFyQW5kU2V0U3RhdGljVGFyZ2V0KG5ld190YXJnZXQpOwogICB9IGVsc2UgewotICAgIENsZWFyV2l0aFNlbnRpbmVsKCk7CisgICAgaW50cHRyX3QgbnVtX2FyZ3MgPSBOdW1BcmdzVGVzdGVkKCk7CisgICAgaWYgKG51bV9hcmdzID09IDIpIHsKKyAgICAgIENsZWFyV2l0aFNlbnRpbmVsKCk7CisgICAgfSBlbHNlIHsKKyAgICAgIGNvbnN0IEFycmF5JiBkYXRhX2FycmF5ID0KKyAgICAgICAgICBBcnJheTo6SGFuZGxlKHpvbmUsIENhY2hlZEVtcHR5SUNEYXRhQXJyYXkobnVtX2FyZ3MpKTsKKyAgICAgIHNldF9pY19kYXRhX2FycmF5KGRhdGFfYXJyYXkpOworICAgIH0KICAgfQogfQogCmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL29iamVjdF9zZXJ2aWNlLmNjIGIvcnVudGltZS92bS9vYmplY3Rfc2VydmljZS5jYwppbmRleCA3ZWFiODAwLi44NDcwOGQ3IDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL29iamVjdF9zZXJ2aWNlLmNjCisrKyBiL3J1bnRpbWUvdm0vb2JqZWN0X3NlcnZpY2UuY2MKQEAgLTExMzUsMTUgKzExMzUsMTUgQEAKICAgSlNPTk9iamVjdCBqc29iaihzdHJlYW0pOwogICBQcmludFNoYXJlZEluc3RhbmNlSlNPTigmanNvYmosIHJlZik7CiAgIGpzb2JqLkFkZFByb3BlcnR5KCJraW5kIiwgIlR5cGUiKTsKLSAgaWYgKElzQ2Fub25pY2FsKCkpIHsKKyAgaWYgKEhhc1Jlc29sdmVkVHlwZUNsYXNzKCkpIHsKICAgICBjb25zdCBDbGFzcyYgdHlwZV9jbHMgPSBDbGFzczo6SGFuZGxlKHR5cGVfY2xhc3MoKSk7CiAgICAgaWYgKHR5cGVfY2xzLkNhbm9uaWNhbFR5cGUoKSA9PSByYXcoKSkgewogICAgICAgaW50cHRyX3QgY2lkID0gdHlwZV9jbHMuaWQoKTsKICAgICAgIGpzb2JqLkFkZEZpeGVkU2VydmljZUlkKCJjbGFzc2VzLyUiIFBkICIvdHlwZXMvJWQiLCBjaWQsIDApOwotICAgICAganNvYmouQWRkUHJvcGVydHkoInR5cGVDbGFzcyIsIHR5cGVfY2xzKTsKICAgICB9IGVsc2UgewogICAgICAganNvYmouQWRkU2VydmljZUlkKCp0aGlzKTsKICAgICB9CisgICAganNvYmouQWRkUHJvcGVydHkoInR5cGVDbGFzcyIsIHR5cGVfY2xzKTsKICAgfSBlbHNlIHsKICAgICBqc29iai5BZGRTZXJ2aWNlSWQoKnRoaXMpOwogICB9CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL3BhcnNlci5jYyBiL3J1bnRpbWUvdm0vcGFyc2VyLmNjCmluZGV4IGZjM2UwZjkuLjg2MjZhNWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdm0vcGFyc2VyLmNjCisrKyBiL3J1bnRpbWUvdm0vcGFyc2VyLmNjCkBAIC00OCw2ICs0OCw4IEBACiAvLyBjb21taXR0ZWQgdG8gdGhlIGN1cnJlbnQgdmVyc2lvbi4KIERFRklORV9GTEFHKGJvb2wsIGNvbmRpdGlvbmFsX2RpcmVjdGl2ZXMsIHRydWUsCiAgICAgIkVuYWJsZSBjb25kaXRpb25hbCBkaXJlY3RpdmVzIik7CitERUZJTkVfRkxBRyhib29sLCBpbml0aWFsaXppbmdfZm9ybWFsX2FjY2VzcywgZmFsc2UsCisgICAgIk1ha2UgaW5pdGlhbGl6aW5nIGZvcm1hbCBwYXJhbWV0ZXJzIHZpc2libGUgaW4gaW5pdGlhbGl6ZXIgbGlzdC4iKTsKIERFRklORV9GTEFHKGJvb2wsIHdhcm5fc3VwZXIsIGZhbHNlLAogICAgICJXYXJuaW5nIGlmIHN1cGVyIGluaXRpYWxpemVyIG5vdCBsYXN0IGluIGluaXRpYWxpemVyIGxpc3QuIik7CiBERUZJTkVfRkxBRyhib29sLCBhd2FpdF9pc19rZXl3b3JkLCBmYWxzZSwKQEAgLTY5NywxMiArNjk5LDIzIEBACiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspIHsKICAgICAgIFBhcmFtRGVzYyYgcGFyYW0gPSAoKnBhcmFtZXRlcnMpW2ldOwogICAgICAgQVNTRVJUKHBhcmFtLnZhciAhPSBOVUxMKTsKLSAgICAgIGlmICghcGFyYW0uaXNfZmllbGRfaW5pdGlhbGl6ZXIpIHsKKyAgICAgIGlmIChGTEFHX2luaXRpYWxpemluZ19mb3JtYWxfYWNjZXNzIHx8ICFwYXJhbS5pc19maWVsZF9pbml0aWFsaXplcikgewogICAgICAgICBwYXJhbS52YXItPnNldF9pbnZpc2libGUoaW52aXNpYmxlKTsKICAgICAgIH0KICAgICB9CiAgIH0KIAorICB2b2lkIEhpZGVJbml0Rm9ybWFscygpIHsKKyAgICBjb25zdCBpbnRwdHJfdCBudW1fcGFyYW1zID0gcGFyYW1ldGVycy0+bGVuZ3RoKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspIHsKKyAgICAgIFBhcmFtRGVzYyYgcGFyYW0gPSAoKnBhcmFtZXRlcnMpW2ldOworICAgICAgaWYgKHBhcmFtLmlzX2ZpZWxkX2luaXRpYWxpemVyKSB7CisgICAgICAgIEFTU0VSVChwYXJhbS52YXIgIT0gTlVMTCk7CisgICAgICAgIHBhcmFtLnZhci0+c2V0X2ludmlzaWJsZSh0cnVlKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKwogICB2b2lkIFNldEltcGxpY2l0bHlGaW5hbCgpIHsKICAgICBpbXBsaWNpdGx5X2ZpbmFsID0gdHJ1ZTsKICAgfQpAQCAtMTU0OCwzMiArMTU2MSwxNCBAQAogICAgICAgJk9iamVjdDo6ZHluYW1pY190eXBlKCkpOwogCiAgIGNvbnN0IEZ1bmN0aW9uJiBwYXJlbnQgPSBGdW5jdGlvbjo6SGFuZGxlKGZ1bmMucGFyZW50X2Z1bmN0aW9uKCkpOwotICBjb25zdCBTdHJpbmcmIHRhcmdldF9uYW1lID0gU3RyaW5nOjpIYW5kbGUocGFyZW50Lm5hbWUoKSk7Ci0gIGNvbnN0IENsYXNzJiBvd25lciA9IENsYXNzOjpIYW5kbGUocGFyZW50Lk93bmVyKCkpOwotICBGdW5jdGlvbiYgdGFyZ2V0ID0gRnVuY3Rpb246OlpvbmVIYW5kbGUob3duZXIuTG9va3VwRnVuY3Rpb24odGFyZ2V0X25hbWUpKTsKLSAgaWYgKHRhcmdldC5yYXcoKSAhPSBwYXJlbnQucmF3KCkpIHsKLSAgICBBU1NFUlQoSXNvbGF0ZTo6Q3VycmVudCgpLT5IYXNBdHRlbXB0ZWRSZWxvYWQoKSk7Ci0gICAgaWYgKHRhcmdldC5Jc051bGwoKSB8fAotICAgICAgICAodGFyZ2V0LmlzX3N0YXRpYygpICE9IHBhcmVudC5pc19zdGF0aWMoKSkgfHwKLSAgICAgICAgKHRhcmdldC5raW5kKCkgIT0gcGFyZW50LmtpbmQoKSkpIHsKLSAgICAgIC8vIFRPRE8oMjY5NzcpOiBjYWxsIG5vU3VjaE1ldGhvZC90aHJvdyBOU01FIGluc3RlYWQuCi0gICAgICB0YXJnZXQgPSBwYXJlbnQucmF3KCk7Ci0gICAgfQotICB9Ci0KLSAgaWYgKHRhcmdldC5Jc0ltcGxpY2l0U2V0dGVyRnVuY3Rpb24oKSkgeworICBpZiAocGFyZW50LklzSW1wbGljaXRTZXR0ZXJGdW5jdGlvbigpKSB7CiAgICAgY29uc3QgVG9rZW5Qb3NpdGlvbiBpZGVudF9wb3MgPSBmdW5jLnRva2VuX3BvcygpOwogICAgIEFTU0VSVChJc0lkZW50aWZpZXIoKSk7Ci0gICAgY29uc3QgU3RyaW5nJiBmaWVsZF9uYW1lID0gKkN1cnJlbnRMaXRlcmFsKCk7Ci0gICAgY29uc3QgQ2xhc3MmIGZpZWxkX2NsYXNzID0gQ2xhc3M6OlpvbmVIYW5kbGUoWiwgdGFyZ2V0Lk93bmVyKCkpOwotICAgIGNvbnN0IEZpZWxkJiBmaWVsZCA9Ci0gICAgICAgIEZpZWxkOjpab25lSGFuZGxlKFosIGZpZWxkX2NsYXNzLkxvb2t1cEluc3RhbmNlRmllbGQoZmllbGRfbmFtZSkpOwotICAgIGNvbnN0IEFic3RyYWN0VHlwZSYgZmllbGRfdHlwZSA9IEFic3RyYWN0VHlwZTo6Wm9uZUhhbmRsZShaLCBmaWVsZC50eXBlKCkpOwogICAgIHBhcmFtcy5BZGRGaW5hbFBhcmFtZXRlcihpZGVudF9wb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTeW1ib2xzOjpWYWx1ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmllbGRfdHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZPYmplY3Q6OmR5bmFtaWNfdHlwZSgpKTsKICAgICBBU1NFUlQoZnVuYy5udW1fZml4ZWRfcGFyYW1ldGVycygpID09IDIpOyAgLy8gY2xvc3VyZSwgdmFsdWUuCi0gIH0gZWxzZSBpZiAoIXRhcmdldC5Jc0dldHRlckZ1bmN0aW9uKCkgJiYgIXRhcmdldC5Jc0ltcGxpY2l0R2V0dGVyRnVuY3Rpb24oKSkgeworICB9IGVsc2UgaWYgKCFwYXJlbnQuSXNHZXR0ZXJGdW5jdGlvbigpICYmICFwYXJlbnQuSXNJbXBsaWNpdEdldHRlckZ1bmN0aW9uKCkpIHsKICAgICBjb25zdCBib29sIGFsbG93X2V4cGxpY2l0X2RlZmF1bHRfdmFsdWVzID0gdHJ1ZTsKICAgICBTa2lwRnVuY3Rpb25QcmVhbWJsZSgpOwogICAgIFBhcnNlRm9ybWFsUGFyYW1ldGVyTGlzdChhbGxvd19leHBsaWNpdF9kZWZhdWx0X3ZhbHVlcywgZmFsc2UsICZwYXJhbXMpOwpAQCAtMTYwNCw3ICsxNTk5LDcxIEBACiAgICAgfQogICAgIGZ1bmNfYXJncy0+c2V0X25hbWVzKGFyZ19uYW1lcyk7CiAgIH0KLSAgU3RhdGljQ2FsbE5vZGUqIGNhbGwgPSBuZXcgU3RhdGljQ2FsbE5vZGUodG9rZW5fcG9zLCB0YXJnZXQsIGZ1bmNfYXJncyk7CisKKyAgY29uc3QgU3RyaW5nJiBmdW5jX25hbWUgPSBTdHJpbmc6OlpvbmVIYW5kbGUocGFyZW50Lm5hbWUoKSk7CisgIGNvbnN0IENsYXNzJiBvd25lciA9IENsYXNzOjpIYW5kbGUocGFyZW50Lk93bmVyKCkpOworICBGdW5jdGlvbiYgdGFyZ2V0ID0gRnVuY3Rpb246OlpvbmVIYW5kbGUob3duZXIuTG9va3VwRnVuY3Rpb24oZnVuY19uYW1lKSk7CisgIGlmICh0YXJnZXQucmF3KCkgIT0gcGFyZW50LnJhdygpKSB7CisgICAgQVNTRVJUKElzb2xhdGU6OkN1cnJlbnQoKS0+SGFzQXR0ZW1wdGVkUmVsb2FkKCkpOworICAgIGlmICh0YXJnZXQuSXNOdWxsKCkgfHwKKyAgICAgICAgKHRhcmdldC5pc19zdGF0aWMoKSAhPSBwYXJlbnQuaXNfc3RhdGljKCkpIHx8CisgICAgICAgICh0YXJnZXQua2luZCgpICE9IHBhcmVudC5raW5kKCkpKSB7CisgICAgICB0YXJnZXQgPSBGdW5jdGlvbjo6bnVsbCgpOworICAgIH0KKyAgfQorCisgIEFzdE5vZGUqIGNhbGwgPSBOVUxMOworICBpZiAoIXRhcmdldC5Jc051bGwoKSkgeworICAgIGNhbGwgPSBuZXcgU3RhdGljQ2FsbE5vZGUodG9rZW5fcG9zLCB0YXJnZXQsIGZ1bmNfYXJncyk7CisgIH0gZWxzZSBpZiAoIXBhcmVudC5pc19zdGF0aWMoKSkgeworICAgIEFTU0VSVChJc29sYXRlOjpDdXJyZW50KCktPkhhc0F0dGVtcHRlZFJlbG9hZCgpKTsKKyAgICAvLyBJZiBhIHN1YnNlcXVlbnQgcmVsb2FkIHJlaW50cm9kdWNlcyB0aGUgdGFyZ2V0IGluIHRoZSBtaWRkbGUgb2YgdGhlCisgICAgLy8gSW52b2NhdGlvbiBvYmplY3QgYmVpbmcgY29uc3RydWN0ZWQsIHdlIHdvbid0IGJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5CisgICAgLy8gZGVvcHQgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIEFTVCB3aWxsIGNoYW5nZS4KKyAgICBjdXJyZW50X2Z1bmN0aW9uKCkuU2V0SXNPcHRpbWl6YWJsZShmYWxzZSk7CisKKyAgICBBcmd1bWVudExpc3ROb2RlKiBhcmd1bWVudHMgPSBCdWlsZE5vU3VjaE1ldGhvZEFyZ3VtZW50cygKKyAgICAgICAgdG9rZW5fcG9zLCBmdW5jX25hbWUsICpmdW5jX2FyZ3MsIE5VTEwsIGZhbHNlKTsKKyAgICBjb25zdCBpbnRwdHJfdCBrTnVtQXJndW1lbnRzID0gMjsgIC8vIFJlY2VpdmVyLCBJbnZvY2F0aW9uTWlycm9yLgorICAgIEFyZ3VtZW50c0Rlc2NyaXB0b3IgYXJnc19kZXNjKAorICAgICAgICBBcnJheTo6SGFuZGxlKFosIEFyZ3VtZW50c0Rlc2NyaXB0b3I6Ok5ldyhrTnVtQXJndW1lbnRzKSkpOworICAgIEZ1bmN0aW9uJiBub19zdWNoX21ldGhvZCA9IEZ1bmN0aW9uOjpab25lSGFuZGxlKFosCisgICAgUmVzb2x2ZXI6OlJlc29sdmVEeW5hbWljRm9yUmVjZWl2ZXJDbGFzcyhvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bWJvbHM6Ok5vU3VjaE1ldGhvZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnc19kZXNjKSk7CisgICAgaWYgKG5vX3N1Y2hfbWV0aG9kLklzTnVsbCgpKSB7CisgICAgICAvLyBJZiBub1N1Y2hNZXRob2QoaSkgaXMgbm90IGZvdW5kLCBjYWxsIE9iamVjdDpub1N1Y2hNZXRob2QuCisgICAgICBub19zdWNoX21ldGhvZCBePSBSZXNvbHZlcjo6UmVzb2x2ZUR5bmFtaWNGb3JSZWNlaXZlckNsYXNzKAorICAgICAgICAgIENsYXNzOjpIYW5kbGUoWiwgSS0+b2JqZWN0X3N0b3JlKCktPm9iamVjdF9jbGFzcygpKSwKKyAgICAgICAgICBTeW1ib2xzOjpOb1N1Y2hNZXRob2QoKSwKKyAgICAgICAgICBhcmdzX2Rlc2MpOworICAgIH0KKyAgICBjYWxsID0gbmV3IFN0YXRpY0NhbGxOb2RlKHRva2VuX3Bvcywgbm9fc3VjaF9tZXRob2QsIGFyZ3VtZW50cyk7CisgIH0gZWxzZSB7CisgICAgQVNTRVJUKElzb2xhdGU6OkN1cnJlbnQoKS0+SGFzQXR0ZW1wdGVkUmVsb2FkKCkpOworICAgIC8vIElmIGEgc3Vic2VxdWVudCByZWxvYWQgcmVpbnRyb2R1Y2VzIHRoZSB0YXJnZXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUKKyAgICAvLyBhcmd1bWVudHMgYXJyYXkgYmVpbmcgY29uc3RydWN0ZWQsIHdlIHdvbid0IGJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5CisgICAgLy8gZGVvcHQgYmVjYXVzZSB0aGUgZ2VuZXJhdGVkIEFTVCB3aWxsIGNoYW5nZS4KKyAgICBjdXJyZW50X2Z1bmN0aW9uKCkuU2V0SXNPcHRpbWl6YWJsZShmYWxzZSk7CisKKyAgICBJbnZvY2F0aW9uTWlycm9yOjpUeXBlIGltX3R5cGU7CisgICAgaWYgKHBhcmVudC5Jc0ltcGxpY2l0R2V0dGVyRnVuY3Rpb24oKSkgeworICAgICAgaW1fdHlwZSA9IEludm9jYXRpb25NaXJyb3I6OmtHZXR0ZXI7CisgICAgfSBlbHNlIGlmIChwYXJlbnQuSXNJbXBsaWNpdFNldHRlckZ1bmN0aW9uKCkpIHsKKyAgICAgIGltX3R5cGUgPSBJbnZvY2F0aW9uTWlycm9yOjprU2V0dGVyOworICAgIH0gZWxzZSB7CisgICAgICBpbV90eXBlID0gSW52b2NhdGlvbk1pcnJvcjo6a01ldGhvZDsKKyAgICB9CisgICAgY2FsbCA9IFRocm93Tm9TdWNoTWV0aG9kRXJyb3IoVG9rZW5Qb3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY19hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludm9jYXRpb25NaXJyb3I6OmtTdGF0aWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsgIC8vIE5vIGV4aXN0aW5nIGZ1bmN0aW9uLgorICB9CisKKyAgQVNTRVJUKGNhbGwgIT0gTlVMTCk7CiAgIFJldHVybk5vZGUqIHJldHVybl9ub2RlID0gbmV3IFJldHVybk5vZGUodG9rZW5fcG9zLCBjYWxsKTsKICAgY3VycmVudF9ibG9ja18tPnN0YXRlbWVudHMtPkFkZChyZXR1cm5fbm9kZSk7CiAgIHJldHVybiBDbG9zZUJsb2NrKCk7CkBAIC0xOTAyLDYgKzE5NjEsNyBAQAogICBUUkFDRV9QQVJTRVIoIlBhcnNlRm9ybWFsUGFyYW1ldGVyIik7CiAgIFBhcmFtRGVzYyBwYXJhbWV0ZXI7CiAgIGJvb2wgdmFyX3NlZW4gPSBmYWxzZTsKKyAgYm9vbCBmaW5hbF9zZWVuID0gZmFsc2U7CiAgIGJvb2wgdGhpc19zZWVuID0gZmFsc2U7CiAKICAgaWYgKGV2YWx1YXRlX21ldGFkYXRhICYmIChDdXJyZW50VG9rZW4oKSA9PSBUb2tlbjo6a0FUKSkgewpAQCAtMTkxMiw2ICsxOTcyLDcgQEAKIAogICBpZiAoQ3VycmVudFRva2VuKCkgPT0gVG9rZW46OmtGSU5BTCkgewogICAgIENvbnN1bWVUb2tlbigpOworICAgIGZpbmFsX3NlZW4gPSB0cnVlOwogICAgIHBhcmFtZXRlci5pc19maW5hbCA9IHRydWU7CiAgIH0gZWxzZSBpZiAoQ3VycmVudFRva2VuKCkgPT0gVG9rZW46OmtWQVIpIHsKICAgICBDb25zdW1lVG9rZW4oKTsKQEAgLTE5MjYsNiArMTk4Nyw5IEBACiAgICAgRXhwZWN0VG9rZW4oVG9rZW46OmtQRVJJT0QpOwogICAgIHRoaXNfc2VlbiA9IHRydWU7CiAgICAgcGFyYW1ldGVyLmlzX2ZpZWxkX2luaXRpYWxpemVyID0gdHJ1ZTsKKyAgICBpZiAoRkxBR19pbml0aWFsaXppbmdfZm9ybWFsX2FjY2VzcykgeworICAgICAgcGFyYW1ldGVyLmlzX2ZpbmFsID0gdHJ1ZTsKKyAgICB9CiAgIH0KICAgaWYgKChwYXJhbWV0ZXIudHlwZSA9PSBOVUxMKSAmJiAoQ3VycmVudFRva2VuKCkgPT0gVG9rZW46OmtWT0lEKSkgewogICAgIENvbnN1bWVUb2tlbigpOwpAQCAtMTk2Nyw2ICsyMDMxLDkgQEAKICAgICBFeHBlY3RUb2tlbihUb2tlbjo6a1BFUklPRCk7CiAgICAgdGhpc19zZWVuID0gdHJ1ZTsKICAgICBwYXJhbWV0ZXIuaXNfZmllbGRfaW5pdGlhbGl6ZXIgPSB0cnVlOworICAgIGlmIChGTEFHX2luaXRpYWxpemluZ19mb3JtYWxfYWNjZXNzKSB7CisgICAgICBwYXJhbWV0ZXIuaXNfZmluYWwgPSB0cnVlOworICAgIH0KICAgfQogCiAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIG11c3Qgc2VlIGFuIGlkZW50aWZpZXIgZm9yIHRoZSBwYXJhbWV0ZXIgbmFtZS4KQEAgLTE5OTYsNyArMjA2MywxMSBAQAogICAgIC8vIFRoaXMgcGFyYW1ldGVyIGlzIHByb2JhYmx5IGEgY2xvc3VyZS4gSWYgd2Ugc2F3IHRoZSBrZXl3b3JkICd2YXInCiAgICAgLy8gb3IgJ2ZpbmFsJywgYSBjbG9zdXJlIGlzIG5vdCBsZWdhbCBoZXJlIGFuZCB3ZSBpZ25vcmUgdGhlCiAgICAgLy8gb3BlbmluZyBwYXJlbnMuCi0gICAgaWYgKCF2YXJfc2VlbiAmJiAhcGFyYW1ldGVyLmlzX2ZpbmFsKSB7CisgICAgLy8gVE9ETyhoYXVzbmVyKTogVGhlIGxhbmd1YWdlIHNwZWMgYXBwZWFycyB0byBhbGxvdyB2YXIgYW5kIGZpbmFsCisgICAgLy8gaW4gc2lnbmF0dXJlIHR5cGVzIHdoZW4gdXNlZCB3aXRoIGluaXRpYWxpemluZyBmb3JtYWxzOgorICAgIC8vIGZpZWxkRm9ybWFsUGFyYW1ldGVyOgorICAgIC8vIG1ldGFkYXRhIGZpbmFsQ29uc3RWYXJPclR5cGU/IHRoaXMg4oCYLuKAmSBpZGVudGlmaWVyIGZvcm1hbFBhcmFtZXRlckxpc3Q/IDsKKyAgICBpZiAoIXZhcl9zZWVuICYmICFmaW5hbF9zZWVuKSB7CiAgICAgICAvLyBUaGUgcGFyc2VkIHBhcmFtZXRlciB0eXBlIGlzIGFjdHVhbGx5IHRoZSBmdW5jdGlvbiByZXN1bHQgdHlwZS4KICAgICAgIGNvbnN0IEFic3RyYWN0VHlwZSYgcmVzdWx0X3R5cGUgPQogICAgICAgICAgIEFic3RyYWN0VHlwZTo6SGFuZGxlKFosIHBhcmFtZXRlci50eXBlLT5yYXcoKSk7CkBAIC0zMjAyLDcgKzMyNzMsNiBAQAogICAgICAgICAvLyBUaHVzLCB0aGV5IGFyZSBzZXQgdG8gYmUgaW52aXNpYmxlIHdoZW4gYWRkZWQgdG8gdGhlIHNjb3BlLgogICAgICAgICBMb2NhbFZhcmlhYmxlKiBwID0gcGFyYW0udmFyOwogICAgICAgICBBU1NFUlQocCAhPSBOVUxMKTsKLSAgICAgICAgQVNTRVJUKHAtPmlzX2ludmlzaWJsZSgpKTsKICAgICAgICAgQXN0Tm9kZSogdmFsdWUgPSBuZXcgTG9hZExvY2FsTm9kZShwYXJhbS5uYW1lX3BvcywgcCk7CiAgICAgICAgIEVuc3VyZUV4cHJlc3Npb25UZW1wKCk7CiAgICAgICAgIEFzdE5vZGUqIGluaXRpYWxpemVyID0KQEAgLTMyMzIsNiArMzMwMiw5IEBACiAKICAgLy8gUGFyc2luZyBvZiBpbml0aWFsaXplcnMgZG9uZS4gTm93IHdlIHBhcnNlIHRoZSBjb25zdHJ1Y3RvciBib2R5LgogICBPcGVuQmxvY2soKTsgIC8vIEJsb2NrIHRvIGNvbGxlY3QgY29uc3RydWN0b3IgYm9keSBub2Rlcy4KKyAgaWYgKEZMQUdfaW5pdGlhbGl6aW5nX2Zvcm1hbF9hY2Nlc3MpIHsKKyAgICBwYXJhbXMuSGlkZUluaXRGb3JtYWxzKCk7CisgIH0KICAgaWYgKEN1cnJlbnRUb2tlbigpID09IFRva2VuOjprTEJSQUNFKSB7CiAgICAgLy8gV2UgY2hlY2tlZCBpbiB0aGUgdG9wLWxldmVsIHBhcnNlIHBoYXNlIHRoYXQgYSByZWRpcmVjdGluZwogICAgIC8vIGNvbnN0cnVjdG9yIGRvZXMgbm90IGhhdmUgYSBib2R5LgpAQCAtNzQyMiw3ICs3NDk1LDEwIEBACiAgICAgaWYgKHBhcmFtX2Rlc2MuaXNfZmluYWwpIHsKICAgICAgIHBhcmFtZXRlci0+c2V0X2lzX2ZpbmFsKCk7CiAgICAgfQotICAgIGlmIChwYXJhbV9kZXNjLmlzX2ZpZWxkX2luaXRpYWxpemVyKSB7CisgICAgaWYgKEZMQUdfaW5pdGlhbGl6aW5nX2Zvcm1hbF9hY2Nlc3MpIHsKKyAgICAgIC8vIEZpZWxkIGluaXRpYWxpemVyIHBhcmFtZXRlcnMgYXJlIGltcGxpY2l0bHkgZmluYWwuCisgICAgICBBU1NFUlQoIXBhcmFtX2Rlc2MuaXNfZmllbGRfaW5pdGlhbGl6ZXIgfHwgcGFyYW1fZGVzYy5pc19maW5hbCk7CisgICAgfSBlbHNlIGlmIChwYXJhbV9kZXNjLmlzX2ZpZWxkX2luaXRpYWxpemVyKSB7CiAgICAgICBwYXJhbWV0ZXItPnNldF9pbnZpc2libGUodHJ1ZSk7CiAgICAgfQogICB9CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL3BvcnQuY2MgYi9ydW50aW1lL3ZtL3BvcnQuY2MKaW5kZXggMjU0MWIzOC4uZDU1MTNkNSAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9wb3J0LmNjCisrKyBiL3J1bnRpbWUvdm0vcG9ydC5jYwpAQCAtMjE2LDcgKzIxNiw4IEBACiAgIH0KICAgaGFuZGxlci0+Q2xvc2VQb3J0KHBvcnQpOwogICBpZiAoIWhhbmRsZXItPkhhc0xpdmVQb3J0cygpICYmIGhhbmRsZXItPk93bmVkQnlQb3J0TWFwKCkpIHsKLSAgICBkZWxldGUgaGFuZGxlcjsKKyAgICAvLyBEZWxldGUgaGFuZGxlciBhcyBzb29uIGFzIGl0IGlzbid0IGJ1c3kgd2l0aCBhIHRhc2suCisgICAgaGFuZGxlci0+UmVxdWVzdERlbGV0aW9uKCk7CiAgIH0KICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL3Byb2ZpbGVyLmNjIGIvcnVudGltZS92bS9wcm9maWxlci5jYwppbmRleCAyMWI4YmY4Li5iODgyN2M1OCAxMDA2NDQKLS0tIGEvcnVudGltZS92bS9wcm9maWxlci5jYworKysgYi9ydW50aW1lL3ZtL3Byb2ZpbGVyLmNjCkBAIC05NDksNyArOTQ5LDkgQEAKIAogdm9pZCBQcm9maWxlcjo6RHVtcFN0YWNrVHJhY2UoYm9vbCBuYXRpdmVfc3RhY2tfdHJhY2UpIHsKICAgVGhyZWFkKiB0aHJlYWQgPSBUaHJlYWQ6OkN1cnJlbnQoKTsKLSAgQVNTRVJUKHRocmVhZCAhPSBOVUxMKTsKKyAgaWYgKHRocmVhZCA9PSBOVUxMKSB7CisgICAgcmV0dXJuOworICB9CiAgIE9TVGhyZWFkKiBvc190aHJlYWQgPSB0aHJlYWQtPm9zX3RocmVhZCgpOwogICBBU1NFUlQob3NfdGhyZWFkICE9IE5VTEwpOwogICBJc29sYXRlKiBpc29sYXRlID0gdGhyZWFkLT5pc29sYXRlKCk7CmRpZmYgLS1naXQgYS9ydW50aW1lL3ZtL3NlcnZpY2Uvc2VydmljZS5tZCBiL3J1bnRpbWUvdm0vc2VydmljZS9zZXJ2aWNlLm1kCmluZGV4IDZlM2MxODAuLjdhYWIwNjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvdm0vc2VydmljZS9zZXJ2aWNlLm1kCisrKyBiL3J1bnRpbWUvdm0vc2VydmljZS9zZXJ2aWNlLm1kCkBAIC0xNTM1LDcgKzE1MzUsNyBAQAogICAvLyAgIFR5cGUKICAgc3RyaW5nIG5hbWUgW29wdGlvbmFsXTsKIAotICAvLyBUaGUgY29ycmVzcG9uZGluZyBDbGFzcyBpZiB0aGlzIFR5cGUgaXMgY2Fub25pY2FsLgorICAvLyBUaGUgY29ycmVzcG9uZGluZyBDbGFzcyBpZiB0aGlzIFR5cGUgaGFzIGEgcmVzb2x2ZWQgdHlwZUNsYXNzLgogICAvLwogICAvLyBQcm92aWRlZCBmb3IgaW5zdGFuY2Uga2luZHM6CiAgIC8vICAgVHlwZQpkaWZmIC0tZ2l0IGEvcnVudGltZS92bS90aHJlYWQuY2MgYi9ydW50aW1lL3ZtL3RocmVhZC5jYwppbmRleCA2OWU3ODIwLi40MDZmMGJjIDEwMDY0NAotLS0gYS9ydW50aW1lL3ZtL3RocmVhZC5jYworKysgYi9ydW50aW1lL3ZtL3RocmVhZC5jYwpAQCAtOTcsNyArOTcsNyBAQAogICAgICAgUkVVU0FCTEVfSEFORExFX0xJU1QoUkVVU0FCTEVfSEFORExFX0lOSVRJQUxJWkVSUykKICAgICAgIFJFVVNBQkxFX0hBTkRMRV9MSVNUKFJFVVNBQkxFX0hBTkRMRV9TQ09QRV9JTklUKQogICAgICAgc2FmZXBvaW50X3N0YXRlXygwKSwKLSAgICAgIGV4ZWN1dGlvbl9zdGF0ZV8oa1RocmVhZEluVk0pLAorICAgICAgZXhlY3V0aW9uX3N0YXRlXyhrVGhyZWFkSW5OYXRpdmUpLAogICAgICAgbmV4dF8oTlVMTCkgewogTk9UX0lOX1BST0RVQ1QoCiAgIGRhcnRfc3RyZWFtXyA9IFRpbWVsaW5lOjpHZXREYXJ0U3RyZWFtKCk7CmRpZmYgLS1naXQgYS9zYW1wbGVzL3NhbXBsZXMuc3RhdHVzIGIvc2FtcGxlcy9zYW1wbGVzLnN0YXR1cwppbmRleCAxZmExZDI4Li5jMDFjMGQ5IDEwMDY0NAotLS0gYS9zYW1wbGVzL3NhbXBsZXMuc3RhdHVzCisrKyBiL3NhbXBsZXMvc2FtcGxlcy5zdGF0dXMKQEAgLTE4LDEwICsxOCw2IEBACiBbICRjb21waWxlciA9PSBkYXJ0MmFuYWx5emVyIF0KIGJ1aWxkX2RhcnQ6IFNraXAKIAotWyAkY29tcGlsZXIgPT0gZGFydDJkYXJ0IF0KLSMgU2tpcCB1bnRpbCB3ZSBzdGFiaWxpemUgbGFuZ3VhZ2UgdGVzdHMuCi0qOiBTa2lwCi0KIFsgJGFyY2ggPT0gYXJtIF0KIHNhbXBsZV9leHRlbnNpb24vdGVzdC9zYW1wbGVfZXh0ZW5zaW9uX3Rlc3Q6IFNraXAgIyBJc3N1ZSAxNDcwNQogCmRpZmYgLS1naXQgYS9zZGsvbGliL19pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9taXJyb3JfaGVscGVyLmRhcnQgYi9zZGsvbGliL19pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9taXJyb3JfaGVscGVyLmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMzAyNGYuLjAwMDAwMDAKLS0tIGEvc2RrL2xpYi9faW50ZXJuYWwvanNfcnVudGltZS9saWIvbWlycm9yX2hlbHBlci5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEzLCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLyoqCi0gKiBIZWxwcyBkZWFsaW5nIHdpdGggcmVmbGVjdGlvbiBpbiB0aGUgY2FzZSB0aGF0IHRoZSBzb3VyY2UgY29kZSBoYXMgYmVlbgotICogY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBjb21waWxpbmcgd2l0aCBkYXJ0MmRhcnQuCi0gKi8KLWxpYnJhcnkgX21pcnJvcl9oZWxwZXI7Ci0KLWltcG9ydCAnZGFydDptaXJyb3JzJzsKLQotLy8vIFRoZSBjb21waWxlciB3aWxsIHJlcGxhY2UgdGhpcyB2YXJpYWJsZSB3aXRoIGEgbWFwIGNvbnRhaW5pbmcgYWxsIHRoZQotLy8vIHJlbmFtZXMgbWFkZSBpbiBkYXJ0MmRhcnQuCi1jb25zdCBNYXA8U3RyaW5nLCBTdHJpbmc+IF9TWU1CT0xTID0gbnVsbDsKLQotLy8vIFRoaXMgbWV0aG9kIGlzIGEgd3JhcHBlciBmb3IgTWlycm9yU3lzdGVtLmdldE5hbWUoKSBhbmQgd2lsbCBiZSBpbmxpbmVkIGFuZAotLy8vIGNhbGxlZCBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCBEYXJ0IGNvZGUuCi1TdHJpbmcgaGVscGVyR2V0TmFtZShTeW1ib2wgc3ltKSB7Ci0gIHZhciBuYW1lID0gTWlycm9yU3lzdGVtLmdldE5hbWUoc3ltKTsKLSAgaWYgKF9TWU1CT0xTLmNvbnRhaW5zS2V5KG5hbWUpKSB7Ci0gICAgcmV0dXJuIF9TWU1CT0xTW25hbWVdOwotICB9IGVsc2UgewotICAgIHJldHVybiBuYW1lOwotICB9Ci19CmRpZmYgLS1naXQgYS9zZGsvbGliL19pbnRlcm5hbC9zZGtfbGlicmFyeV9tZXRhZGF0YS9saWIvbGlicmFyaWVzLmRhcnQgYi9zZGsvbGliL19pbnRlcm5hbC9zZGtfbGlicmFyeV9tZXRhZGF0YS9saWIvbGlicmFyaWVzLmRhcnQKaW5kZXggMGVjYjU1ODA1Li5iNDM5MzM4IDEwMDY0NAotLS0gYS9zZGsvbGliL19pbnRlcm5hbC9zZGtfbGlicmFyeV9tZXRhZGF0YS9saWIvbGlicmFyaWVzLmRhcnQKKysrIGIvc2RrL2xpYi9faW50ZXJuYWwvc2RrX2xpYnJhcnlfbWV0YWRhdGEvbGliL2xpYnJhcmllcy5kYXJ0CkBAIC0yMjcsMTQgKzIyNyw2IEBACiAgICAgICBkb2N1bWVudGVkOiBmYWxzZSwKICAgICAgIHBsYXRmb3JtczogREFSVDJKU19QTEFURk9STSksCiAKLSAgLy8gVE9ETyhhaGUpOiBUaGlzIGxpYnJhcnkgaXMgb25seSBmb3IgZGFydDJkYXJ0LCBwZXJoYXBzIGl0IHNob3VsZCB1c2UgYQotICAvLyBkaWZmZXJlbnQgcGxhdGZvcm0uCi0gICJfbWlycm9yX2hlbHBlciI6IGNvbnN0IExpYnJhcnlJbmZvKAotICAgICAgIl9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9taXJyb3JfaGVscGVyLmRhcnQiLAotICAgICAgY2F0ZWdvcmllczogIiIsCi0gICAgICBkb2N1bWVudGVkOiBmYWxzZSwKLSAgICAgIHBsYXRmb3JtczogREFSVDJKU19QTEFURk9STSksCi0KICAgIl9qc19lbWJlZGRlZF9uYW1lcyI6IGNvbnN0IExpYnJhcnlJbmZvKAogICAgICAgIl9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9zaGFyZWQvZW1iZWRkZWRfbmFtZXMuZGFydCIsCiAgICAgICBjYXRlZ29yaWVzOiAiIiwKZGlmZiAtLWdpdCBhL3Nkay9saWIvY29yZS9pdGVyYWJsZS5kYXJ0IGIvc2RrL2xpYi9jb3JlL2l0ZXJhYmxlLmRhcnQKaW5kZXggM2U3YzFjYi4uYWE5MjkyZSAxMDA2NDQKLS0tIGEvc2RrL2xpYi9jb3JlL2l0ZXJhYmxlLmRhcnQKKysrIGIvc2RrL2xpYi9jb3JlL2l0ZXJhYmxlLmRhcnQKQEAgLTE4MSw2ICsxODEsMTcgQEAKICAgICoKICAgICogVGhlIHJldHVybmVkIFtJdGVyYWJsZV0gaXMgbGF6eSwgYW5kIGNhbGxzIFtmXSBmb3IgZWFjaCBlbGVtZW50CiAgICAqIG9mIHRoaXMgZXZlcnkgdGltZSBpdCdzIGl0ZXJhdGVkLgorICAgKgorICAgKiBFeGFtcGxlOgorICAgKgorICAgKiAgICAgdmFyIHBhaXJzID0gW1sxLCAyXSwgWzMsIDRdXTsKKyAgICogICAgIHZhciBmbGF0dGVuZWQgPSBwYWlycy5leHBhbmQoKHBhaXIpID0+IHBhaXIpLnRvTGlzdCgpOworICAgKiAgICAgcHJpbnQoZmxhdHRlbmVkKTsgLy8gPT4gWzEsIDIsIDMsIDRdOworICAgKgorICAgKiAgICAgdmFyIGlucHV0ID0gWzEsIDIsIDNdOworICAgKiAgICAgdmFyIGR1cGxpY2F0ZWQgPSBpbnB1dC5leHBhbmQoKGkpID0+IFtpLCBpXSkudG9MaXN0KCk7CisgICAqICAgICBwcmludChkdXBsaWNhdGVkKTsgLy8gPT4gWzEsIDEsIDIsIDIsIDMsIDNdCisgICAqCiAgICAqLwogICBJdGVyYWJsZS8qPFQ+Ki8gZXhwYW5kLyo8VD4qLyhJdGVyYWJsZS8qPFQ+Ki8gZihFIGVsZW1lbnQpKSA9PgogICAgICAgbmV3IEV4cGFuZEl0ZXJhYmxlPEUsIGR5bmFtaWMvKj1UKi8+KHRoaXMsIGYpOwpAQCAtMjA4LDcgKzIxOSw2IEBACiAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAKLQogICAvKioKICAgICogQXBwbGllcyB0aGUgZnVuY3Rpb24gW2ZdIHRvIGVhY2ggZWxlbWVudCBvZiB0aGlzIGNvbGxlY3Rpb24gaW4gaXRlcmF0aW9uCiAgICAqIG9yZGVyLgpAQCAtMzE2LDcgKzMyNiw2IEBACiAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOwogICB9CiAKLQogICAvKioKICAgICogQ2hlY2tzIHdoZXRoZXIgYW55IGVsZW1lbnQgb2YgdGhpcyBpdGVyYWJsZSBzYXRpc2ZpZXMgW3Rlc3RdLgogICAgKgpAQCAtMzgyLDcgKzM5MSw3IEBACiAgICAqLwogICBib29sIGdldCBpc05vdEVtcHR5ID0+ICFpc0VtcHR5OwogCi0gICAvKioKKyAgLyoqCiAgICAqIFJldHVybnMgYSBsYXp5IGl0ZXJhYmxlIG9mIHRoZSBbY291bnRdIGZpcnN0IGVsZW1lbnRzIG9mIHRoaXMgaXRlcmFibGUuCiAgICAqCiAgICAqIFRoZSByZXR1cm5lZCBgSXRlcmFibGVgIG1heSBjb250YWluIGZld2VyIHRoYW4gYGNvdW50YCBlbGVtZW50cywgaWYgYHRoaXNgCkBAIC00ODAsNyArNDg5LDcgQEAKICAgICBFIHJlc3VsdDsKICAgICBkbyB7CiAgICAgICByZXN1bHQgPSBpdC5jdXJyZW50OwotICAgIH0gd2hpbGUoaXQubW92ZU5leHQoKSk7CisgICAgfSB3aGlsZSAoaXQubW92ZU5leHQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKICAgfQogCkBAIC01MDYsNyArNTE1LDcgQEAKICAgICogZnVuY3Rpb24gaXMgcmV0dXJuZWQuCiAgICAqIElmIFtvckVsc2VdIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIHRocm93aW5nIGEgW1N0YXRlRXJyb3JdLgogICAgKi8KLSAgRSBmaXJzdFdoZXJlKGJvb2wgdGVzdChFIGVsZW1lbnQpLCB7IEUgb3JFbHNlKCkgfSkgeworICBFIGZpcnN0V2hlcmUoYm9vbCB0ZXN0KEUgZWxlbWVudCksIHtFIG9yRWxzZSgpfSkgewogICAgIGZvciAoRSBlbGVtZW50IGluIHRoaXMpIHsKICAgICAgIGlmICh0ZXN0KGVsZW1lbnQpKSByZXR1cm4gZWxlbWVudDsKICAgICB9CmRpZmYgLS1naXQgYS9zZGsvbGliL2RhcnQyZGFydC5wbGF0Zm9ybSBiL3Nkay9saWIvZGFydDJkYXJ0LnBsYXRmb3JtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWFhYTE5Li4wMDAwMDAwCi0tLSBhL3Nkay9saWIvZGFydDJkYXJ0LnBsYXRmb3JtCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotIyBDb3B5cmlnaHQgKGMpIDIwMTUsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotIyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotIyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jIFRoZSBwbGF0Zm9ybSB3aGVuIGNvbXBpbGluZyB3aXRoIGRhcnQyanMgZm9yIGRhcnQyZGFydC4KLSMKLSMgSW5jbHVkZXMgdGhlIF9taXJyb3JfaGVscGVycyBwcml2YXRlIGxpYnJhcmllcwotCi1bZGFydC1zcGVjXQotc3BlYzozcmQgZWRpdGlvbi4KLQotW2ZlYXR1cmVzXQotIyBObyBleHRyYSBmZWF0dXJlcy4KLQotW2xpYnJhcmllc10KLWFzeW5jOiBhc3luYy9hc3luYy5kYXJ0Ci1fY2hyb21lOiBfY2hyb21lL2RhcnQyanMvY2hyb21lX2RhcnQyanMuZGFydAotY29sbGVjdGlvbjogY29sbGVjdGlvbi9jb2xsZWN0aW9uLmRhcnQKLWNvbnZlcnQ6IGNvbnZlcnQvY29udmVydC5kYXJ0Ci1jb3JlOiBjb3JlL2NvcmUuZGFydAotZGV2ZWxvcGVyOiBkZXZlbG9wZXIvZGV2ZWxvcGVyLmRhcnQKLWh0bWw6IGh0bWwvZGFydDJqcy9odG1sX2RhcnQyanMuZGFydAotaHRtbF9jb21tb246IGh0bWwvaHRtbF9jb21tb24vaHRtbF9jb21tb25fZGFydDJqcy5kYXJ0Ci1pbmRleGVkX2RiOiBpbmRleGVkX2RiL2RhcnQyanMvaW5kZXhlZF9kYl9kYXJ0MmpzLmRhcnQKLWlvOiBpby9pby5kYXJ0Ci1pc29sYXRlOiBpc29sYXRlL2lzb2xhdGUuZGFydAotanM6IGpzL2RhcnQyanMvanNfZGFydDJqcy5kYXJ0Ci1qc191dGlsOiBqc191dGlsL2RhcnQyanMvanNfdXRpbF9kYXJ0MmpzLmRhcnQKLW1hdGg6IG1hdGgvbWF0aC5kYXJ0Ci1taXJyb3JzOiBtaXJyb3JzL21pcnJvcnMuZGFydAotbmF0aXZld3JhcHBlcnM6IGh0bWwvZGFydDJqcy9uYXRpdmV3cmFwcGVycy5kYXJ0Ci10eXBlZF9kYXRhOiB0eXBlZF9kYXRhL3R5cGVkX2RhdGEuZGFydAotX25hdGl2ZV90eXBlZF9kYXRhOiBfaW50ZXJuYWwvanNfcnVudGltZS9saWIvbmF0aXZlX3R5cGVkX2RhdGEuZGFydAotc3ZnOiBzdmcvZGFydDJqcy9zdmdfZGFydDJqcy5kYXJ0Ci13ZWJfYXVkaW86IHdlYl9hdWRpby9kYXJ0MmpzL3dlYl9hdWRpb19kYXJ0MmpzLmRhcnQKLXdlYl9nbDogd2ViX2dsL2RhcnQyanMvd2ViX2dsX2RhcnQyanMuZGFydAotd2ViX3NxbDogd2ViX3NxbC9kYXJ0MmpzL3dlYl9zcWxfZGFydDJqcy5kYXJ0Ci1faW50ZXJuYWw6IGludGVybmFsL2ludGVybmFsLmRhcnQKLV9qc19oZWxwZXI6IF9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9qc19oZWxwZXIuZGFydAotX2ludGVyY2VwdG9yczogX2ludGVybmFsL2pzX3J1bnRpbWUvbGliL2ludGVyY2VwdG9ycy5kYXJ0Ci1fZm9yZWlnbl9oZWxwZXI6IF9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9mb3JlaWduX2hlbHBlci5kYXJ0Ci1faXNvbGF0ZV9oZWxwZXI6IF9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9pc29sYXRlX2hlbHBlci5kYXJ0Ci1fanNfbWlycm9yczogX2ludGVybmFsL2pzX3J1bnRpbWUvbGliL2pzX21pcnJvcnMuZGFydAotX2pzX25hbWVzOiBfaW50ZXJuYWwvanNfcnVudGltZS9saWIvanNfbmFtZXMuZGFydAotX2pzX3ByaW1pdGl2ZXM6IF9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9qc19wcmltaXRpdmVzLmRhcnQKLV9taXJyb3JfaGVscGVyOiBfaW50ZXJuYWwvanNfcnVudGltZS9saWIvbWlycm9yX2hlbHBlci5kYXJ0Ci1fanNfZW1iZWRkZWRfbmFtZXM6IF9pbnRlcm5hbC9qc19ydW50aW1lL2xpYi9zaGFyZWQvZW1iZWRkZWRfbmFtZXMuZGFydAotX2FzeW5jX2F3YWl0X2Vycm9yX2NvZGVzOiBfaW50ZXJuYWwvanNfcnVudGltZS9saWIvc2hhcmVkL2FzeW5jX2F3YWl0X2Vycm9yX2NvZGVzLmRhcnQKLV9tZXRhZGF0YTogaHRtbC9odG1sX2NvbW1vbi9tZXRhZGF0YS5kYXJ0CmRpZmYgLS1naXQgYS90ZXN0cy9jbzE5L2NvMTktZGFydDJqcy5zdGF0dXMgYi90ZXN0cy9jbzE5L2NvMTktZGFydDJqcy5zdGF0dXMKaW5kZXggZDE2NjJjOS4uYTBkZDY5ZiAxMDA2NDQKLS0tIGEvdGVzdHMvY28xOS9jbzE5LWRhcnQyanMuc3RhdHVzCisrKyBiL3Rlc3RzL2NvMTkvY28xOS1kYXJ0MmpzLnN0YXR1cwpAQCAtMTY3Nyw2ICsxNjc3LDcgQEAKIFsgJGNvbXBpbGVyID09IGRhcnQyanMgJiYgJHJ1bnRpbWUgPT0gY2hyb21lICYmICRzeXN0ZW0gPT0gbWFjb3MgXQogTGFuZ3VhZ2UvRXhwcmVzc2lvbnMvRnVuY3Rpb25fSW52b2NhdGlvbi9hc3luY19pbnZva2F0aW9uX3QwNDogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0X3QwMTogU2tpcCAjIFRpbWVzIG91dC4gUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKK0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtdmlkZW8tcmdiYTU1NTFfdDAxOiBTa2lwICMgVGltZXMgb3V0IGZsYWtpbHkuCiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWRfdDAxOiBTa2lwICMgVGltZXMgb3V0LiBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZS4KIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RyYXctd2ViZ2wtdG8tY2FudmFzLTJkX3QwMTogUGFzcywgUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0X3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKQEAgLTE4NDIsMTAgKzE4NDMsNyBAQAogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWN1cnJlbnRDb2xvcl90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY3VycmVudFRyYW5zZm9ybV90MDE6IFJ1bnRpbWVFcnJvciAjIEZlYXR1cmUgaXMgbm90IGltcGxlbWVudGVkLgogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRyYXdJbWFnZS1pbmNvbXBsZXRlX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKLUxheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1lbGxpcHNlLTM2MC13aW5kaW5nX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKLUxheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1lbGxpcHNlLW5lZ2F0aXZlLXJhZGl1c190MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZWxsaXBzZS16ZXJvLWxpbmV0b190MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCi1MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZWxsaXBzZV90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZW1wdHktaW1hZ2UtcGF0dGVybl90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZmlsbC16ZXJvU2l6ZUdyYWRpZW50X3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1maWxsUmVjdC16ZXJvU2l6ZUdyYWRpZW50X3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKQEAgLTIwNTcsNyArMjA1NSw2IEBACiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLWNzcy1hbGxvd2VkLXN0cmluZy1jaGFyYWN0ZXJzX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctY3NzLWVzY2FwZXNfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jc3Mtbm9uYXNjaWlfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQotTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy1jc3MtbnRoLWNoaWxkX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctcGFnZS1ydWxlX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctc2VsZWN0b3ItZXJyb3ItcmVjb3ZlcnlfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQogTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmV4cGVjdGVkLWVvZl90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCkBAIC0yODE0LDcgKzI4MTEsNiBAQAogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvcG9zaXRpb25Gb3JQb2ludF90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS90YWJsZS1oaXQtdGVzdF90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCiBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS92ZXJ0aWNhbC1pbmxpbmUtYmxvY2staGl0dGVzdF90MDE6IFJ1bnRpbWVFcnJvciAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlCi1MYXlvdXRUZXN0cy9mYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWludmFsaWQtdmFsdWVzX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExheW91dFRlc3RzL2Zhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtcmVzcG9uc2VYTUwtaW52YWxpZC14bWxfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNwb25zZVhNTC14bWwtdGV4dC1yZXNwb25zZXR5cGVfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQogTGF5b3V0VGVzdHMvZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1yZXNwb25zZXR5cGUtYWJvcnRfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQpAQCAtMjk0NCw2ICsyOTQwLDcgQEAKIExpYlRlc3QvaHRtbC9XaW5kb3cvcmVxdWVzdEZpbGVTeXN0ZW1fQTAyX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExpYlRlc3QvaHRtbC9XaW5kb3cvcmVzaXplQnlfQTAxX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExpYlRlc3QvaHRtbC9XaW5kb3cvcmVzaXplVG9fQTAxX3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKK0xpYlRlc3QvbWF0aC9sb2dfQTAxX3QwMTogRmFpbCAjIFBsZWFzZSB0cmlhZ2UgdGhpcyBmYWlsdXJlLgogTGliVGVzdC90eXBlZF9kYXRhL0Zsb2F0MzJMaXN0L0Zsb2F0MzJMaXN0LnZpZXdfQTA2X3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKIExpYlRlc3QvdHlwZWRfZGF0YS9GbG9hdDMyeDRMaXN0L0Zsb2F0MzJ4NExpc3Qudmlld19BMDZfdDAxOiBSdW50aW1lRXJyb3IgIyBQbGVhc2UgdHJpYWdlIHRoaXMgZmFpbHVyZQogTGliVGVzdC90eXBlZF9kYXRhL0Zsb2F0NjRMaXN0L0Zsb2F0NjRMaXN0LnZpZXdfQTA2X3QwMTogUnVudGltZUVycm9yICMgUGxlYXNlIHRyaWFnZSB0aGlzIGZhaWx1cmUKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYW5hbHl6ZV91bnVzZWRfZGFydDJqc190ZXN0LmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2FuYWx5emVfdW51c2VkX2RhcnQyanNfdGVzdC5kYXJ0CmluZGV4IDgxMDZhMDYuLmExNzkxNGUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYW5hbHl6ZV91bnVzZWRfZGFydDJqc190ZXN0LmRhcnQKKysrIGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9hbmFseXplX3VudXNlZF9kYXJ0MmpzX3Rlc3QuZGFydApAQCAtMjMsOSArMjMsNiBAQAogICAgICAgIlRoZSBtZXRob2QgJ2FzQXNzZXJ0JyBpcyBuZXZlciBjYWxsZWQuIiwKICAgICAgICJUaGUgbWV0aG9kICdhc0xpdGVyYWxCb29sJyBpcyBuZXZlciBjYWxsZWQuIl0sCiAKLSAgLy8gU29tZSB0aGluZ3MgaW4gZGFydF9wcmludGVyIGFyZSBub3QgeWV0IHVzZWQKLSAgImxpYi9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmRfYXN0X25vZGVzLmRhcnQiOiBjb25zdCBbIiBpcyBuZXZlciAiXSwKLQogICAvLyBVbmNhbGxlZCBtZXRob2RzIGluIFNlbWFudGljU2VuZFZpc2l0b3IgYW5kIHN1YmNsYXNzZXMuCiAgICJsaWIvc3JjL3Jlc29sdXRpb24vc2VtYW50aWNfdmlzaXRvci5kYXJ0IjogY29uc3QgWwogICAgICAgIlRoZSBtZXRob2QgJ2Vycm9yIl0sCkBAIC01NiwxMCArNTMsNiBAQAogICAgICJhY2NlcHQiLCAiQ3JlYXRlRnVuY3Rpb24iLAogICBdLAogCi0gICJsaWIvc3JjL2RhcnRfYmFja2VuZC9iYWNrZW5kX2FzdF90b19mcm9udGVuZF9hc3QuZGFydCI6IGNvbnN0IFsKLSAgICAiIGlzIG5ldmVyICIKLSAgXSwKLQogICAvLyBVc2VmdWwgdXRpbGl0eSBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IGN1cnJlbnRseSB1c2VkLgogICAibGliL3NyYy9jcHNfaXIvY3BzX2ZyYWdtZW50LmRhcnQiOiBjb25zdCBbCiAgICAgIlRoZSBtZXRob2QgJ2JlZ2luTG9vcCcgaXMgbmV2ZXIgY2FsbGVkLiIsCmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9kYXJ0X2JhY2tlbmRfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvZGFydF9iYWNrZW5kX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRiNDE2MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9kYXJ0X2JhY2tlbmRfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMTExOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTIsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCAicGFja2FnZTpleHBlY3QvZXhwZWN0LmRhcnQiOwotaW1wb3J0ICdkYXJ0OmFzeW5jJzsKLWltcG9ydCAnZGFydDppbycgYXMgaW87Ci1pbXBvcnQgInBhY2thZ2U6YXN5bmNfaGVscGVyL2FzeW5jX2hlbHBlci5kYXJ0IjsKLWltcG9ydCAnLi4vbW9ja19jb21waWxlci5kYXJ0JzsKLWltcG9ydCAnLi4vbW9ja19saWJyYXJpZXMuZGFydCc7Ci1pbXBvcnQgJy4uL291dHB1dF9jb2xsZWN0b3IuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvY29tcGlsZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2NvbW1vbi9uYW1lcy5kYXJ0JyBzaG93IElkZW50aWZpZXJzOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9lbGVtZW50cy9lbGVtZW50cy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvdHJlZS90cmVlLmRhcnQnOwotCi1jb25zdCBpb0xpYiA9IHInJycKLWxpYnJhcnkgaW87Ci1jbGFzcyBQbGF0Zm9ybSB7Ci0gIHN0YXRpYyBpbnQgb3BlcmF0aW5nU3lzdGVtOwotfQotJycnOwotCi1jb25zdCBodG1sTGliID0gcicnJwotbGlicmFyeSBodG1sOwotV2luZG93IF9fd2luZG93OwotV2luZG93IGdldCB3aW5kb3cgPT4gX193aW5kb3c7Ci1hYnN0cmFjdCBjbGFzcyBXaW5kb3cgewotICBOYXZpZ2F0b3IgZ2V0IG5hdmlnYXRvcjsKLX0KLWFic3RyYWN0IGNsYXNzIE5hdmlnYXRvciB7Ci0gIFN0cmluZyBnZXQgdXNlckFnZW50OwotfQotJycnOwotCi0vKioKLSAqIExpYnJhcnkgbmFtZSBpcyBhc3N1bWVkIHRvIGJlICdteWxpYicgaW4gJ215bGliLmRhcnQnIGZpbGUuCi0gKi8KLXRlc3REYXJ0MkRhcnQoU3RyaW5nIG1haW5TcmMsIHtTdHJpbmcgbGlicmFyeVNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBtaW5pZnk6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3RyaXBUeXBlczogZmFsc2V9KSB7Ci0KLSAgLy8gSWYgZXhwZWN0ZWRSZXN1bHQgaXMgbm90IHByb3ZpZGVkLCBjaGVjayB0aGF0IHNvdXJjZSBzdHJpbmcgcmVtYWlucyB0aGUKLSAgLy8gc2FtZS4KLSAgaWYgKGV4cGVjdGVkUmVzdWx0ID09IG51bGwpIHsKLSAgICBFeHBlY3QuZXF1YWxzKG51bGwsIGxpYnJhcnlTcmMpOwotICAgIGV4cGVjdGVkUmVzdWx0ID0gbWFpblNyYzsKLSAgfQotCi0gIGZpbGVVcmkocGF0aCkgPT4gbmV3IFVyaShzY2hlbWU6ICdmaWxlJywgcGF0aDogcGF0aCk7Ci0KLSAgZmluYWwgc2NyaXB0VXJpID0gZmlsZVVyaSgnc2NyaXB0LmRhcnQnKTsKLSAgZmluYWwgbGliVXJpID0gZmlsZVVyaSgnbXlsaWIuZGFydCcpOwotCi0gIHByb3ZpZGVyKHVyaSkgewotICAgIGlmICh1cmkgPT0gc2NyaXB0VXJpKSByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShtYWluU3JjKTsKLSAgICBpZiAodXJpLnRvU3RyaW5nKCkgPT0gbGliVXJpLnRvU3RyaW5nKCkpIHsKLSAgICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKGxpYnJhcnlTcmMpOwotICAgIH0KLSAgICBpZiAodXJpLnBhdGguZW5kc1dpdGgoJy9kYXJ0MmRhcnQucGxhdGZvcm0nKSkgewotICAgICAgcmV0dXJuIG5ldyBpby5GaWxlLmZyb21VcmkodXJpKS5yZWFkQXNCeXRlcygpOwotICAgIH0gZWxzZSBpZiAodXJpLnBhdGguZW5kc1dpdGgoJy9jb3JlLmRhcnQnKSkgewotICAgICAgcmV0dXJuIG5ldyBGdXR1cmUudmFsdWUoYnVpbGRMaWJyYXJ5U291cmNlKERFRkFVTFRfQ09SRV9MSUJSQVJZKSk7Ci0gICAgfSBlbHNlIGlmICh1cmkucGF0aC5lbmRzV2l0aCgnL2NvcmVfcGF0Y2guZGFydCcpKSB7Ci0gICAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShERUZBVUxUX1BBVENIX0NPUkVfU09VUkNFKTsKLSAgICB9IGVsc2UgaWYgKHVyaS5wYXRoLmVuZHNXaXRoKCcvaW8uZGFydCcpKSB7Ci0gICAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShpb0xpYik7Ci0gICAgfSBlbHNlIGlmICh1cmkucGF0aC5lbmRzV2l0aCgnL2pzX2hlbHBlci5kYXJ0JykpIHsKLSAgICAgIHJldHVybiBuZXcgRnV0dXJlLnZhbHVlKGJ1aWxkTGlicmFyeVNvdXJjZShERUZBVUxUX0pTX0hFTFBFUl9MSUJSQVJZKSk7Ci0gICAgfSBlbHNlIGlmICh1cmkucGF0aC5lbmRzV2l0aCgnL2h0bWxfZGFydDJqcy5kYXJ0JykpIHsKLSAgICAgIC8vIFRPRE8oc21vayk6IFRoZSBmaWxlIHNob3VsZCBjaGFuZ2UgdG8gaHRtbF9kYXJ0aXVtIGF0IHNvbWUgcG9pbnQuCi0gICAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZShodG1sTGliKTsKLSAgICB9IGVsc2UgaWYgKHVyaS5wYXRoLmVuZHNXaXRoKCcvZm9yZWlnbl9oZWxwZXIuZGFydCcpKSB7Ci0gICAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZSgKLSAgICAgICAgICBidWlsZExpYnJhcnlTb3VyY2UoREVGQVVMVF9GT1JFSUdOX0hFTFBFUl9MSUJSQVJZKSk7Ci0gICAgfSBlbHNlIGlmICh1cmkucGF0aC5lbmRzV2l0aCgnL2lzb2xhdGVfaGVscGVyLmRhcnQnKSkgewotICAgICAgcmV0dXJuIG5ldyBGdXR1cmUudmFsdWUoCi0gICAgICAgICAgYnVpbGRMaWJyYXJ5U291cmNlKERFRkFVTFRfSVNPTEFURV9IRUxQRVJfTElCUkFSWSkpOwotICAgIH0KLSAgICByZXR1cm4gbmV3IEZ1dHVyZS52YWx1ZSgnJyk7Ci0gIH0KLQotICBoYW5kbGVyKHVyaSwgYmVnaW4sIGVuZCwgbWVzc2FnZSwga2luZCkgewotICAgIGlmIChpZGVudGljYWwoa2luZCwgRGlhZ25vc3RpYy5FUlJPUikgfHwgaWRlbnRpY2FsKGtpbmQsIERpYWdub3N0aWMuQ1JBU0gpKSB7Ci0gICAgICBFeHBlY3QuZmFpbCgnJHVyaTogJGJlZ2luLSRlbmQ6ICRtZXNzYWdlIFska2luZF0nKTsKLSAgICB9Ci0gIH0KLQotICBmaW5hbCBvcHRpb25zID0gPFN0cmluZz5bJy0tb3V0cHV0LXR5cGU9ZGFydCddOwotICAvLyBTb21lIHRlc3RzIGJlbG93IGFyZSB1c2luZyBkYXJ0OmlvLgotICBpZiAobWluaWZ5KSBvcHRpb25zLmFkZCgnLS1taW5pZnknKTsKLSAgaWYgKHN0cmlwVHlwZXMpIG9wdGlvbnMuYWRkKCctLWZvcmNlLXN0cmlwPXR5cGVzJyk7Ci0KLSAgYXN5bmNUZXN0KCgpIHsKLSAgICBPdXRwdXRDb2xsZWN0b3Igb3V0cHV0Q29sbGVjdG9yID0gbmV3IE91dHB1dENvbGxlY3RvcigpOwotICAgIHJldHVybiBjb21waWxlKAotICAgICAgICBzY3JpcHRVcmksCi0gICAgICAgIFVyaS5iYXNlLnJlc29sdmUoJ3Nkay8nKSwKLSAgICAgICAgZmlsZVVyaSgncGFja2FnZVJvb3QvJyksCi0gICAgICAgIHByb3ZpZGVyLAotICAgICAgICBoYW5kbGVyLAotICAgICAgICBvcHRpb25zLAotICAgICAgICBvdXRwdXRDb2xsZWN0b3IpLnRoZW4oKF8pIHsKLSAgICAgIFN0cmluZyBjb2RlID0gb3V0cHV0Q29sbGVjdG9yLmdldE91dHB1dCgnJywgJ2RhcnQnKTsKLSAgICAgIEV4cGVjdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQsIGNvZGUsCi0gICAgICAgICAgJ2V4cGVjdGVkOlxuJGV4cGVjdGVkUmVzdWx0XG5hY3R1YWw6XG4kY29kZScpOwotICAgIH0pOwotICB9KTsKLX0KLQotdGVzdFNpbXBsZUZpbGVVbnBhcnNlKCkgewotICBmaW5hbCBzcmMgPSAnJycKLXNob3VsZF9iZV9kcm9wcGVkKCkgewotfQotCi1zaG91bGRfYmVfa2VwdCgpIHsKLX0KLQotbWFpbigpIHsKLSAgc2hvdWxkX2JlX2tlcHQoKTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChzcmMsIGV4cGVjdGVkUmVzdWx0OiAnJycKLXNob3VsZF9iZV9rZXB0KCkge30KLW1haW4oKSB7Ci0gIHNob3VsZF9iZV9rZXB0KCk7Ci19Ci0nJycpOwotfQotdGVzdFRvcExldmVsRmllbGQoKSB7Ci0gIHRlc3REYXJ0MkRhcnQoJycnCi1maW5hbCBTdHJpbmcgeCA9ICJhc2QiOwotbWFpbigpIHsKLSAgeDsKLX0KLScnJyk7Ci19Ci0KLXRlc3RTaW1wbGVUb3BMZXZlbENsYXNzKCkgewotICB0ZXN0RGFydDJEYXJ0KCcnJwotbWFpbigpIHsKLSAgbmV3IEEoKTsKLX0KLWNsYXNzIEEgewotICBBKCkge30KLX0KLScnJyk7Ci19Ci0KLXRlc3RDbGFzc1dpdGhTeW50aGVzaXplZENvbnN0cnVjdG9yKCkgewotICB0ZXN0RGFydDJEYXJ0KCcnJwotbWFpbigpIHsKLSAgbmV3IEEoKTsKLX0KLWNsYXNzIEEge30KLScnJyk7Ci19Ci0KLXRlc3RDbGFzc1dpdGhNZXRob2QoKSB7Ci0gIHRlc3REYXJ0MkRhcnQocicnJwotbWFpbigpIHsKLSAgdmFyIGEgPSBuZXcgQSgpOwotICBhLmZvbygpOwotfQotY2xhc3MgQSB7Ci0gIHZvaWQgZm9vKCkge30KLX0KLScnJyk7Ci19Ci0KLXRlc3RFeHRlbmRzSW1wbGVtZW50cygpIHsKLSAgdGVzdERhcnQyRGFydCgnJycKLW1haW4oKSB7Ci0gIG5ldyBCPE9iamVjdD4oKTsKLX0KLWNsYXNzIEE8VD4ge30KLWNsYXNzIEI8VD4gZXh0ZW5kcyBBPFQ+IHt9Ci0nJycpOwotfQotCi10ZXN0VmFyaWFibGVEZWZpbml0aW9ucygpIHsKLSAgdGVzdERhcnQyRGFydCgnJycKLW1haW4oKSB7Ci0gIHZhciB4LCB5OwotICBmaW5hbCBTdHJpbmcgcyA9IG51bGw7Ci19Ci0nJycpOwotICB0ZXN0RGFydDJEYXJ0KCcnJwotbWFpbigpIHsKLSAgZmluYWwgaW50IHggPSAwLCB5ID0gMDsKLSAgZmluYWwgU3RyaW5nIHMgPSBudWxsOwotfQotJycnKTsKLSAgdGVzdERhcnQyRGFydCgnJycKLWZvbyhmLCBnKSB7fQotbWFpbigpIHsKLSAgZm9vKDEsIDIpOwotfQotJycnKTsKLSAgdGVzdERhcnQyRGFydCgnJycKLWZvbyhmKGFyZykpIHt9Ci1tYWluKCkgewotICBmb28obWFpbik7Ci19Ci0nJycpOwotICAvLyBBIGNvdXBsZSBvZiBzdGF0aWMvZmluYWxzIGluc2lkZSBhIGNsYXNzLgotICB0ZXN0RGFydDJEYXJ0KCcnJwotbWFpbigpIHsKLSAgQS5hOwotICBBLmI7Ci19Ci1jbGFzcyBBIHsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBhID0gIjUiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIGIgPSAiNCI7Ci19Ci0nJycpOwotICAvLyBDbGFzcyBtZW1iZXIgb2YgdHlwZWRlZi1lZCBmdW5jdGlvbiB0eXBlLgotICAvLyBNYXliZSB0eXBlZGVmIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0IHRvbywgYnV0IGl0Ci0gIC8vIHdvcmtzIGZpbmUgd2l0aG91dCBpdC4KLSAgdGVzdERhcnQyRGFydCgnJycKLXR5cGVkZWYgdm9pZCBmb29mdW5jKF8wKTsKLW1haW4oKSB7Ci0gIG5ldyBBKChhcmcpIHt9KTsKLX0KLWNsYXNzIEEgewotICBBKGZvb2Z1bmMgdGhpcy5oYW5kbGVyKTsKLSAgZmluYWwgZm9vZnVuYyBoYW5kbGVyOwotfQotJycnKTsKLX0KLQotdGVzdEdldFNldCgpIHsKLSAgLy8gVG9wLWxldmVsIGdldC9zZXQuCi0gIHRlc3REYXJ0MkRhcnQoJycnCi1zZXQgZm9vKGFyZykge30KLWdldCBmb28gewotICByZXR1cm4gNTsKLX0KLW1haW4oKSB7Ci0gIGZvbzsKLSAgZm9vID0gNTsKLX0KLScnJyk7Ci0gIC8vIEZpZWxkIGdldC9zZXQuCi0gIHRlc3REYXJ0MkRhcnQoJycnCi1tYWluKCkgewotICB2YXIgYSA9IG5ldyBBKCk7Ci0gIGEuZm9vOwotICBhLmZvbyA9IDU7Ci19Ci1jbGFzcyBBIHsKLSAgc2V0IGZvbyhhKSB7fQotICBnZXQgZm9vIHsKLSAgICByZXR1cm4gNTsKLSAgfQotfQotJycnKTsKLSAgLy8gVHlwZWQgZ2V0L3NldC4KLSAgdGVzdERhcnQyRGFydCgnJycKLVN0cmluZyBnZXQgZm9vIHsKLSAgcmV0dXJuICJhIjsKLX0KLW1haW4oKSB7Ci0gIGZvbzsKLX0KLScnJyk7Ci19Ci0KLXRlc3RBYnN0cmFjdENsYXNzKCkgewotICB0ZXN0RGFydDJEYXJ0KCcnJwotbWFpbigpIHsKLSAgQS5mb287Ci19Ci1hYnN0cmFjdCBjbGFzcyBBIHsKLSAgc3RhdGljIGZpbmFsIG51bSBmb28gPSAwOwotfQotJycnKTsKLX0KLQotdGVzdENvbmZsaWN0U2VuZHNSZW5hbWUoKSB7Ci0gIC8vIFZhcmlvdXMgU2VuZC1zIHRvIGN1cnJlbnQgbGlicmFyeSBhbmQgZXh0ZXJuYWwgbGlicmFyeS4gVmVyaWZ5IHRoYXQKLSAgLy8gZXZlcnl0aGluZyBpcyByZW5hbWVkIGNvcnJlY3RseSBpbiBjb25mbGljdGluZyBjbGFzcyBuYW1lcyBhbmQgZ2xvYmFsCi0gIC8vIGZ1bmN0aW9ucy4KLSAgdmFyIGxpYnJhcnlTcmMgPSAnJycKLWxpYnJhcnkgbXlsaWI7Ci0KLWdsb2JhbGZvbygpIHt9Ci12YXIgZ2xvYmFsVmFyOwotdmFyIGdsb2JhbFZhckluaXRpYWxpemVkID0gNiwgZ2xvYmFsVmFySW5pdGlhbGl6ZWQyID0gNzsKLQotY2xhc3MgQSB7Ci0gIEEoKXt9Ci0gIEEuZnJvbUZvbygpe30KLSAgc3RhdGljIHN0YXRpY2Zvbygpe30KLSAgZm9vKCl7fQotICBzdGF0aWMgY29uc3QgZmllbGQgPSA1OwotfQotJycnOwotICB2YXIgbWFpblNyYyA9ICcnJwotaW1wb3J0ICdteWxpYi5kYXJ0JyBhcyBteWxpYjsKLQotZ2xvYmFsZm9vKCkge30KLXZhciBnbG9iYWxWYXI7Ci12YXIgZ2xvYmFsVmFySW5pdGlhbGl6ZWQgPSA2LCBnbG9iYWxWYXJJbml0aWFsaXplZDIgPSA3OwotCi1jbGFzcyBBIHsKLSAgQSgpe30KLSAgQS5mcm9tRm9vKCl7fQotICBzdGF0aWMgc3RhdGljZm9vKCl7fQotICBmb28oKXt9Ci0gIHN0YXRpYyBjb25zdCBmaWVsZCA9IDU7Ci19Ci0KLW1haW4oKSB7Ci0gIGdsb2JhbFZhcjsKLSAgZ2xvYmFsVmFySW5pdGlhbGl6ZWQ7Ci0gIGdsb2JhbFZhckluaXRpYWxpemVkMjsKLSAgZ2xvYmFsZm9vKCk7Ci0gIEEuZmllbGQ7Ci0gIEEuc3RhdGljZm9vKCk7Ci0gIG5ldyBBKCk7Ci0gIG5ldyBBLmZyb21Gb28oKTsKLSAgbmV3IEEoKS5mb28oKTsKLQotICBteWxpYi5nbG9iYWxWYXI7Ci0gIG15bGliLmdsb2JhbFZhckluaXRpYWxpemVkOwotICBteWxpYi5nbG9iYWxWYXJJbml0aWFsaXplZDI7Ci0gIG15bGliLmdsb2JhbGZvbygpOwotICBteWxpYi5BLmZpZWxkOwotICBteWxpYi5BLnN0YXRpY2ZvbygpOwotICBuZXcgbXlsaWIuQSgpOwotICBuZXcgbXlsaWIuQS5mcm9tRm9vKCk7Ci0gIG5ldyBteWxpYi5BKCkuZm9vKCk7Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9ICcnJwotZ2xvYmFsZm9vKCkge30KLXZhciBnbG9iYWxWYXI7Ci12YXIgZ2xvYmFsVmFySW5pdGlhbGl6ZWQgPSA2OwotdmFyIGdsb2JhbFZhckluaXRpYWxpemVkMiA9IDc7Ci1jbGFzcyBBIHsKLSAgQSgpIHt9Ci0gIEEuZnJvbUZvbygpIHt9Ci0gIHN0YXRpYyBzdGF0aWNmb28oKSB7fQotICBmb28oKSB7fQotICBzdGF0aWMgY29uc3QgZmllbGQgPSA1OwotfQotZ2xvYmFsZm9vX0EoKSB7fQotdmFyIGdsb2JhbFZhcl9BOwotdmFyIGdsb2JhbFZhckluaXRpYWxpemVkX0EgPSA2OwotdmFyIGdsb2JhbFZhckluaXRpYWxpemVkMl9BID0gNzsKLWNsYXNzIEFfQSB7Ci0gIEFfQSgpIHt9Ci0gIEFfQS5mcm9tRm9vX0EoKSB7fQotICBzdGF0aWMgc3RhdGljZm9vX0EoKSB7fQotICBmb28oKSB7fQotICBzdGF0aWMgY29uc3QgZmllbGRfQSA9IDU7Ci19Ci1tYWluKCkgewotICBnbG9iYWxWYXJfQTsKLSAgZ2xvYmFsVmFySW5pdGlhbGl6ZWRfQTsKLSAgZ2xvYmFsVmFySW5pdGlhbGl6ZWQyX0E7Ci0gIGdsb2JhbGZvb19BKCk7Ci0gIEFfQS5maWVsZF9BOwotICBBX0Euc3RhdGljZm9vX0EoKTsKLSAgbmV3IEFfQSgpOwotICBuZXcgQV9BLmZyb21Gb29fQSgpOwotICBuZXcgQV9BKCkuZm9vKCk7Ci0gIGdsb2JhbFZhcjsKLSAgZ2xvYmFsVmFySW5pdGlhbGl6ZWQ7Ci0gIGdsb2JhbFZhckluaXRpYWxpemVkMjsKLSAgZ2xvYmFsZm9vKCk7Ci0gIEEuZmllbGQ7Ci0gIEEuc3RhdGljZm9vKCk7Ci0gIG5ldyBBKCk7Ci0gIG5ldyBBLmZyb21Gb28oKTsKLSAgbmV3IEEoKS5mb28oKTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChtYWluU3JjLCBsaWJyYXJ5U3JjOiBsaWJyYXJ5U3JjLAotICAgICAgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0KTsKLX0KLQotdGVzdE5vQ29uZmxpY3RTZW5kc1JlbmFtZSgpIHsKLSAgLy8gVmFyaW91cyBTZW5kLXMgdG8gY3VycmVudCBsaWJyYXJ5IGFuZCBleHRlcm5hbCBsaWJyYXJ5LiBOb3RoaW5nIHNob3VsZCBiZQotICAvLyByZW5hbWVkIGhlcmUsIG9ubHkgbGlicmFyeSBwcmVmaXhlcyBtdXN0IGJlIGN1dC4KLSAgdmFyIGxpYnJhcnlTcmMgPSAnJycKLWxpYnJhcnkgbXlsaWI7Ci0KLWdsb2JhbGZvbygpIHt9Ci0KLWNsYXNzIEEgewotICBBKCl7fQotICBBLmZyb21Gb28oKXt9Ci0gIHN0YXRpYyBzdGF0aWNmb28oKXt9Ci0gIGZvbygpe30KLSAgc3RhdGljIGNvbnN0IGZpZWxkID0gNTsKLX0KLScnJzsKLSAgdmFyIG1haW5TcmMgPSAnJycKLWltcG9ydCAnbXlsaWIuZGFydCcgYXMgbXlsaWI7Ci0KLW15Z2xvYmFsZm9vKCkge30KLQotY2xhc3MgTXlBIHsKLSAgTXlBKCl7fQotICBNeUEubXlmcm9tRm9vKCl7fQotICBzdGF0aWMgbXlzdGF0aWNmb28oKXt9Ci0gIG15Zm9vKCl7fQotICBzdGF0aWMgY29uc3QgbXlmaWVsZCA9IDU7Ci19Ci0KLW1haW4oKSB7Ci0gIG15Z2xvYmFsZm9vKCk7Ci0gIE15QS5teWZpZWxkOwotICBNeUEubXlzdGF0aWNmb28oKTsKLSAgbmV3IE15QSgpOwotICBuZXcgTXlBLm15ZnJvbUZvbygpOwotICBuZXcgTXlBKCkubXlmb28oKTsKLQotICBteWxpYi5nbG9iYWxmb28oKTsKLSAgbXlsaWIuQS5maWVsZDsKLSAgbXlsaWIuQS5zdGF0aWNmb28oKTsKLSAgbmV3IG15bGliLkEoKTsKLSAgbmV3IG15bGliLkEuZnJvbUZvbygpOwotICBuZXcgbXlsaWIuQSgpLmZvbygpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLWdsb2JhbGZvbygpIHt9Ci1jbGFzcyBBIHsKLSAgQSgpIHt9Ci0gIEEuZnJvbUZvbygpIHt9Ci0gIHN0YXRpYyBzdGF0aWNmb28oKSB7fQotICBmb28oKSB7fQotICBzdGF0aWMgY29uc3QgZmllbGQgPSA1OwotfQotbXlnbG9iYWxmb28oKSB7fQotY2xhc3MgTXlBIHsKLSAgTXlBKCkge30KLSAgTXlBLm15ZnJvbUZvbygpIHt9Ci0gIHN0YXRpYyBteXN0YXRpY2ZvbygpIHt9Ci0gIG15Zm9vKCkge30KLSAgc3RhdGljIGNvbnN0IG15ZmllbGQgPSA1OwotfQotbWFpbigpIHsKLSAgbXlnbG9iYWxmb28oKTsKLSAgTXlBLm15ZmllbGQ7Ci0gIE15QS5teXN0YXRpY2ZvbygpOwotICBuZXcgTXlBKCk7Ci0gIG5ldyBNeUEubXlmcm9tRm9vKCk7Ci0gIG5ldyBNeUEoKS5teWZvbygpOwotICBnbG9iYWxmb28oKTsKLSAgQS5maWVsZDsKLSAgQS5zdGF0aWNmb28oKTsKLSAgbmV3IEEoKTsKLSAgbmV3IEEuZnJvbUZvbygpOwotICBuZXcgQSgpLmZvbygpOwotfQotJycnOwotICB0ZXN0RGFydDJEYXJ0KG1haW5TcmMsIGxpYnJhcnlTcmM6IGxpYnJhcnlTcmMsCi0gICAgICBleHBlY3RlZFJlc3VsdDogZXhwZWN0ZWRSZXN1bHQpOwotfQotCi10ZXN0Q29uZmxpY3RMaWJyYXJ5Q2xhc3NSZW5hbWUoKSB7Ci0gIHZhciBsaWJyYXJ5U3JjID0gJycnCi1saWJyYXJ5IG15bGliOwotCi10b3Bmb28oKSB7fQotCi1jbGFzcyBBIHsKLSAgZm9vKCkge30KLX0KLScnJzsKLSAgdmFyIG1haW5TcmMgPSAnJycKLWltcG9ydCAnbXlsaWIuZGFydCcgYXMgbXlsaWI7Ci10b3Bmb28oKSB7Ci0gIHZhciB4ID0gNTsKLX0KLWNsYXNzIEEgewotICBudW0gZm9vKCkge30KLSAgQS5mcm9tRm9vKCkge30KLSAgbXlsaWIuQSBteWxpYmE7Ci0gIExpc3Q8QT4gbXlsaXN0OwotfQotbXlsaWIuQSBnZXRBKCkgPT4gbnVsbDsKLW1haW4oKSB7Ci0gIHZhciBhID0gbmV3IG15bGliLkEoKTsKLSAgYS5mb28oKTsKLSAgdmFyIGIgPSBuZXcgQS5mcm9tRm9vKCk7Ci0gIGIuZm9vKCk7Ci0gIHZhciBHUkVBVFZBUiA9IGIubXlsaWJhOwotICBiLm15bGlzdDsKLSAgYSA9IGdldEEoKTsKLSAgdG9wZm9vKCk7Ci0gIG15bGliLnRvcGZvbygpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLXRvcGZvbygpIHt9Ci1jbGFzcyBBIHsKLSAgZm9vKCkge30KLX0KLXRvcGZvb19BKCkgewotICB2YXIgeCA9IDU7Ci19Ci1jbGFzcyBBX0EgewotICBudW0gZm9vKCkge30KLSAgQV9BLmZyb21Gb28oKSB7fQotICBBIG15bGliYTsKLSAgTGlzdDxBX0E+IG15bGlzdDsKLX0KLUEgZ2V0QSgpID0+IG51bGw7Ci1tYWluKCkgewotICB2YXIgYSA9IG5ldyBBKCk7Ci0gIGEuZm9vKCk7Ci0gIHZhciBiID0gbmV3IEFfQS5mcm9tRm9vKCk7Ci0gIGIuZm9vKCk7Ci0gIHZhciBHUkVBVFZBUiA9IGIubXlsaWJhOwotICBiLm15bGlzdDsKLSAgYSA9IGdldEEoKTsKLSAgdG9wZm9vX0EoKTsKLSAgdG9wZm9vKCk7Ci19Ci0nJyc7Ci0gIHRlc3REYXJ0MkRhcnQobWFpblNyYywgbGlicmFyeVNyYzogbGlicmFyeVNyYywKLSAgICAgIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCk7Ci19Ci0KLXRlc3RDbGFzc0V4dGVuZHNXaXRoQXJncygpIHsKLSAgdGVzdERhcnQyRGFydCgnJycKLW1haW4oKSB7Ci0gIG5ldyBCPE9iamVjdD4oKTsKLX0KLWNsYXNzIEE8VCBleHRlbmRzIE9iamVjdD4ge30KLWNsYXNzIEI8VCBleHRlbmRzIE9iamVjdD4gZXh0ZW5kcyBBPFQ+IHt9Ci0nJycsIGV4cGVjdGVkUmVzdWx0OiAnJycKLW1haW4oKSB7Ci0gIG5ldyBCPE9iamVjdD4oKTsKLX0KLWNsYXNzIEE8VD4ge30KLWNsYXNzIEI8VD4gZXh0ZW5kcyBBPFQ+IHt9Ci0nJycpOwotfQotCi10ZXN0U3RhdGljSW52b2NhdGlvbigpIHsKLSAgdGVzdERhcnQyRGFydCgnJycKLW1haW4oKSB7Ci0gIHZhciB4ID0gZG91YmxlLnBhcnNlRG91YmxlKCIxIik7Ci19Ci0nJycpOwotfQotCi10ZXN0TGlicmFyeUdldFNldCgpIHsKLSAgdmFyIGxpYnJhcnlTcmMgPSAnJycKLWxpYnJhcnkgbXlsaWI7Ci0KLWdldCB0b3BnZXRzZXQgPT4gNTsKLXNldCB0b3BnZXRzZXQoYXJnKSB7fQotJycnOwotICB2YXIgbWFpblNyYyA9ICcnJwotaW1wb3J0ICdteWxpYi5kYXJ0JyBhcyBteWxpYjsKLQotZ2V0IHRvcGdldHNldCA9PiA2Owotc2V0IHRvcGdldHNldChhcmcpIHt9Ci0KLW1haW4oKSB7Ci0gIHRvcGdldHNldDsKLSAgdG9wZ2V0c2V0ID0gNjsKLQotICBteWxpYi50b3BnZXRzZXQ7Ci0gIG15bGliLnRvcGdldHNldCA9IDU7Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9ICcnJwotZ2V0IHRvcGdldHNldCA9PiA1Owotc2V0IHRvcGdldHNldChhcmcpIHt9Ci1nZXQgdG9wZ2V0c2V0X0EgPT4gNjsKLXNldCB0b3BnZXRzZXRfQShhcmcpIHt9Ci1tYWluKCkgewotICB0b3BnZXRzZXRfQTsKLSAgdG9wZ2V0c2V0X0EgPSA2OwotICB0b3BnZXRzZXQ7Ci0gIHRvcGdldHNldCA9IDU7Ci19Ci0nJyc7Ci0gIHRlc3REYXJ0MkRhcnQobWFpblNyYywgbGlicmFyeVNyYzogbGlicmFyeVNyYywKLSAgICAgIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCk7Ci19Ci0KLXRlc3RGaWVsZFR5cGVPdXRwdXQoKSB7Ci0gIHRlc3REYXJ0MkRhcnQoJycnCi1tYWluKCkgewotICBuZXcgQSgpLmZpZWxkOwotfQotY2xhc3MgQiB7fQotY2xhc3MgQSB7Ci0gIEIgZmllbGQ7Ci19Ci0nJycpOwotfQotCi1jbGFzcyBEeW5vTWFwIGltcGxlbWVudHMgTWFwPEVsZW1lbnQsIEVsZW1lbnRBc3Q+IHsKLSAgZmluYWwgY29tcGlsZXI7Ci0gIER5bm9NYXAodGhpcy5jb21waWxlcik7Ci0KLSAgRWxlbWVudEFzdCBvcGVyYXRvcltdKEFzdEVsZW1lbnQgZWxlbWVudCkgewotICAgIHJldHVybiBuZXcgRWxlbWVudEFzdChlbGVtZW50LnJlc29sdmVkQXN0Lm5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucmVzb2x2ZWRBc3QuZWxlbWVudHMpOwotICB9Ci0KLSAgbm9TdWNoTWV0aG9kKEludm9jYXRpb24gaW52b2NhdGlvbikgPT4gdGhyb3cgJ3VuaW1wbGVtZW50ZWQgbWV0aG9kJzsKLX0KLQotUGxhY2Vob2xkZXJDb2xsZWN0b3IgY29sbGVjdFBsYWNlaG9sZGVycyhjb21waWxlciwgZWxlbWVudCkgewotICBEYXJ0QmFja2VuZCBiYWNrZW5kID0gY29tcGlsZXIuYmFja2VuZDsKLSAgcmV0dXJuIG5ldyBQbGFjZWhvbGRlckNvbGxlY3RvcigKLSAgICAgIGNvbXBpbGVyLnJlcG9ydGVyLAotICAgICAgYmFja2VuZC5taXJyb3JSZW5hbWVyLAotICAgICAgbmV3IFNldDxTdHJpbmc+KCksCi0gICAgICBuZXcgRHlub01hcChjb21waWxlciksCi0gICAgICBjb21waWxlci5tYWluRnVuY3Rpb24pCi0gICAgLi5jb2xsZWN0KGVsZW1lbnQpOwotfQotCi10ZXN0TG9jYWxGdW5jdGlvblBsYWNlaG9sZGVyKCkgewotICB2YXIgc3JjID0gJycnCi1tYWluKCkgewotICBmdW5jdGlvbiBsb2NhbGZvbygpIHt9Ci0gIGxvY2FsZm9vKCk7Ci19Ci0nJyc7Ci0gIE1vY2tDb21waWxlciBjb21waWxlciA9IG5ldyBNb2NrQ29tcGlsZXIuaW50ZXJuYWwoZW1pdEphdmFTY3JpcHQ6IGZhbHNlKTsKLSAgYXN5bmNUZXN0KCgpID0+IGNvbXBpbGVyLmluaXQoKS50aGVuKChfKSB7Ci0gICAgYXNzZXJ0KGNvbXBpbGVyLmJhY2tlbmQgaXMgRGFydEJhY2tlbmQpOwotICAgIGNvbXBpbGVyLnBhcnNlU2NyaXB0KHNyYyk7Ci0gICAgRnVuY3Rpb25FbGVtZW50IG1haW5FbGVtZW50ID0gY29tcGlsZXIubWFpbkFwcC5maW5kKElkZW50aWZpZXJzLm1haW4pOwotICAgIGNvbXBpbGVyLnByb2Nlc3NRdWV1ZShjb21waWxlci5lbnF1ZXVlci5yZXNvbHV0aW9uLCBtYWluRWxlbWVudCk7Ci0gICAgUGxhY2Vob2xkZXJDb2xsZWN0b3IgY29sbGVjdG9yID0gY29sbGVjdFBsYWNlaG9sZGVycyhjb21waWxlciwgbWFpbkVsZW1lbnQpOwotICAgIEZ1bmN0aW9uRXhwcmVzc2lvbiBtYWluTm9kZSA9IG1haW5FbGVtZW50Lm5vZGU7Ci0gICAgQmxvY2sgYm9keSA9IG1haW5Ob2RlLmJvZHk7Ci0gICAgRnVuY3Rpb25EZWNsYXJhdGlvbiBmdW5jdGlvbkRlY2xhcmF0aW9uID0gYm9keS5zdGF0ZW1lbnRzLm5vZGVzLmhlYWQ7Ci0gICAgRnVuY3Rpb25FeHByZXNzaW9uIGZvb05vZGUgPSBmdW5jdGlvbkRlY2xhcmF0aW9uLmZ1bmN0aW9uOwotICAgIExvY2FsUGxhY2Vob2xkZXIgZm9vUGxhY2Vob2xkZXIgPQotICAgICAgICBjb2xsZWN0b3IuZnVuY3Rpb25TY29wZXNbbWFpbkVsZW1lbnRdLmxvY2FsUGxhY2Vob2xkZXJzLmZpcnN0OwotICAgIEV4cGVjdC5pc1RydWUoZm9vUGxhY2Vob2xkZXIubm9kZXMuY29udGFpbnMoZm9vTm9kZS5uYW1lKSk7Ci0gIH0pKTsKLX0KLQotdGVzdFR5cGVWYXJpYWJsZXNBcmVSZW5hbWVkKCkgewotICAvLyBTb21ld2hhdCBhIGhhY2s6IHdlIHJlcXVpcmUgYWxsIHRoZSByZWZlcmVuY2VzIG9mIHRoZSBpZGVudGlmaWVyCi0gIC8vIHRvIGJlIHJlbmFtZWQgaW4gdGhlIHNhbWUgd2F5IGZvciB0aGUgd2hvbGUgbGlicmFyeS4gSGVuY2UKLSAgLy8gaWYgd2UgaGF2ZSBhIGNsYXNzIGFuZCB0eXBlIHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgbmFtZSwgdGhleQotICAvLyBib3RoIHNob3VsZCBiZSByZW5hbWVkLgotICB2YXIgbGlicmFyeVNyYyA9ICcnJwotbGlicmFyeSBteWxpYjsKLXR5cGVkZWYgdm9pZCBNeUZ1bmN0aW9uPFQgZXh0ZW5kcyBudW0+KFQgYXJnKTsKLWNsYXNzIFQge30KLWNsYXNzIEI8VD4ge30KLWNsYXNzIEE8VD4gZXh0ZW5kcyBCPFQ+IHsgVCBmOyB9Ci0nJyc7Ci0gIHZhciBtYWluU3JjID0gJycnCi1pbXBvcnQgJ215bGliLmRhcnQnIGFzIG15bGliOwotdHlwZWRlZiB2b2lkIE15RnVuY3Rpb248VCBleHRlbmRzIG51bT4oVCBhcmcpOwotY2xhc3MgVCB7fQotY2xhc3MgQjxUPiB7fQotY2xhc3MgQTxUPiBleHRlbmRzIEI8VD4geyBUIGY7IH0KLQotbWFpbigpIHsKLSAgTXlGdW5jdGlvbiBteWYxOwotICBteWxpYi5NeUZ1bmN0aW9uIG15ZjI7Ci0gIG5ldyBBPGludD4oKS5mOwotICBuZXcgVCgpOwotCi0gIG5ldyBteWxpYi5BPGludD4oKS5mOwotICBuZXcgbXlsaWIuVCgpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLXR5cGVkZWYgdm9pZCBNeUZ1bmN0aW9uPFRfQiBleHRlbmRzIG51bT4oVF9CIF8wKTsKLWNsYXNzIFQge30KLWNsYXNzIEI8VF9CPiB7fQotY2xhc3MgQTxUX0I+IGV4dGVuZHMgQjxUX0I+IHsKLSAgVF9CIGY7Ci19Ci10eXBlZGVmIHZvaWQgTXlGdW5jdGlvbl9BPFRfQiBleHRlbmRzIG51bT4oVF9CIF8wKTsKLWNsYXNzIFRfQSB7fQotY2xhc3MgQl9BPFRfQj4ge30KLWNsYXNzIEFfQTxUX0I+IGV4dGVuZHMgQl9BPFRfQj4gewotICBUX0IgZjsKLX0KLW1haW4oKSB7Ci0gIE15RnVuY3Rpb25fQSBteWYxOwotICBNeUZ1bmN0aW9uIG15ZjI7Ci0gIG5ldyBBX0E8aW50PigpLmY7Ci0gIG5ldyBUX0EoKTsKLSAgbmV3IEE8aW50PigpLmY7Ci0gIG5ldyBUKCk7Ci19Ci0nJyc7Ci0gIHRlc3REYXJ0MkRhcnQobWFpblNyYywgbGlicmFyeVNyYzogbGlicmFyeVNyYywKLSAgICAgIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCk7Ci19Ci0KLXRlc3RDbGFzc1R5cGVBcmd1bWVudEJvdW5kKCkgewotICB2YXIgbGlicmFyeVNyYyA9ICcnJwotbGlicmFyeSBteWxpYjsKLQotY2xhc3MgSSB7fQotY2xhc3MgQTxUIGV4dGVuZHMgST4ge30KLQotJycnOwotICB2YXIgbWFpblNyYyA9ICcnJwotaW1wb3J0ICdteWxpYi5kYXJ0JyBhcyBteWxpYjsKLQotY2xhc3MgSSB7fQotY2xhc3MgQTxUIGV4dGVuZHMgST4ge30KLQotbWFpbigpIHsKLSAgbmV3IEEoKTsKLSAgbmV3IG15bGliLkEoKTsKLX0KLScnJzsKLSAgdmFyIGV4cGVjdGVkUmVzdWx0ID0gJycnCi1jbGFzcyBJIHt9Ci1jbGFzcyBBPFQgZXh0ZW5kcyBJPiB7fQotY2xhc3MgSV9BIHt9Ci1jbGFzcyBBX0E8VCBleHRlbmRzIElfQT4ge30KLW1haW4oKSB7Ci0gIG5ldyBBX0EoKTsKLSAgbmV3IEEoKTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChtYWluU3JjLCBsaWJyYXJ5U3JjOiBsaWJyYXJ5U3JjLAotICAgICAgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0KTsKLSAgfQotCi10ZXN0RG91YmxlTWFpbnMoKSB7Ci0gIHZhciBsaWJyYXJ5U3JjID0gJycnCi1saWJyYXJ5IG15bGliOwotbWFpbigpIHt9Ci0nJyc7Ci0gIHZhciBtYWluU3JjID0gJycnCi1pbXBvcnQgJ215bGliLmRhcnQnIGFzIG15bGliOwotbWFpbigpIHsKLSAgbXlsaWIubWFpbigpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLW1haW5fQSgpIHt9Ci1tYWluKCkgewotICBtYWluX0EoKTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChtYWluU3JjLCBsaWJyYXJ5U3JjOiBsaWJyYXJ5U3JjLAotICAgICAgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0KTsKLX0KLQotdGVzdFN0YXRpY0FjY2Vzc0lvTGliKCkgewotICB2YXIgc3JjID0gJycnCi1pbXBvcnQgJ2RhcnQ6aW8nOwotCi1tYWluKCkgewotICBQbGF0Zm9ybS5vcGVyYXRpbmdTeXN0ZW07Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9ICcnJwotaW1wb3J0ICJkYXJ0OmlvIjsKLW1haW4oKSB7Ci0gIFBsYXRmb3JtLm9wZXJhdGluZ1N5c3RlbTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChzcmMsIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCk7Ci19Ci0KLXRlc3RNaW5pZmljYXRpb24oKSB7Ci0gIHZhciBzcmMgPSAnJycKLWNsYXNzIENsYXNzV2l0aFZlcnlWZXJ5TG9uZ05hbWUge30KLW1haW4oKSB7Ci0gIG5ldyBDbGFzc1dpdGhWZXJ5VmVyeUxvbmdOYW1lKCk7Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9Ci0gICAgICAnY2xhc3MgQXt9JwotICAgICAgJ21haW4oKXtuZXcgQSgpO30nOwotICB0ZXN0RGFydDJEYXJ0KHNyYywgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0LCBtaW5pZnk6IHRydWUpOwotfQotCi10ZXN0Q2xvc3VyZUxvY2Fsc01pbmlmaWVkKCkgewotICB2YXIgc3JjID0gJycnCi1tYWluKCkgewotICB2YXIgYSA9IDc7Ci0gIHZvaWQgZm9vMShhLGIpIHsKLSAgICB2b2lkIGZvbzIoYyxkKSB7Ci0gICAgICAgdmFyIEUgPSBhOwotICAgIH0KLSAgICBmb28yKGIsIGEpOwotICB9Ci0gIGZvbzEoYSwgOCk7Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9Ci0gICAgICAnbWFpbigpe3ZhciBBPTc7IEIoQSxDKXsgRChFLEYpe3ZhciBHPUE7fUQoQyxBKTt9QihBLDgpO30nOwotICB0ZXN0RGFydDJEYXJ0KHNyYywgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0LCBtaW5pZnk6IHRydWUpOwotfQotCi10ZXN0UGFyYW1ldGVyc01pbmlmaWVkKCkgewotICB2YXIgc3JjID0gJycnCi1jbGFzcyBBIHsKLSAgdmFyIGE7Ci0gIHN0YXRpYyBmb28oYXJnMSkgewotICAgIC8vIFNob3VsZCBub3QgcmVuYW1lIGFyZzEgdG8gYS4KLSAgICBhcmcxID0gNTsKLSAgfQotfQotCi1mb29nbG9iYWwoYXJnLHtvcHRpb25hbGFyZzogN30pIHsKLSAgYXJnID0gNjsKLX0KLQotbWFpbigpIHsKLSAgbmV3IEEoKS5hOwotICBBLmZvbyg4KTsKLSAgZm9vZ2xvYmFsKDgpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPQotICAgICAgJ2NsYXNzIEJ7dmFyIEU7c3RhdGljIEMoQSl7QT01O319RChBLHtvcHRpb25hbGFyZzogN30pe0E9Njt9JwotICAgICAgJ21haW4oKXtuZXcgQigpLkU7Qi5DKDgpO0QoOCk7fSc7Ci0gIHRlc3REYXJ0MkRhcnQoc3JjLCBleHBlY3RlZFJlc3VsdDogZXhwZWN0ZWRSZXN1bHQsIG1pbmlmeTogdHJ1ZSk7Ci19Ci0KLXRlc3REZWNsYXJhdGlvblR5cGVQbGFjZWhvbGRlcnMoKSB7Ci0gIHZhciBzcmMgPSAnJycKLVN0cmluZyBnbG9iYWxmaWVsZDsKLWNvbnN0IFN0cmluZyBnbG9iYWxjb25zdGZpZWxkOwotCi12b2lkIGZvbyhTdHJpbmcgYXJnKSB7fQotCi1tYWluKCkgewotICBTdHJpbmcgbG9jYWx2YXI7Ci0gIGZvbygiNSIpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLWZvbyggYXJnKSB7fQotbWFpbigpIHsKLSAgdmFyIGxvY2FsdmFyOwotICBmb28oIjUiKTsKLX0KLScnJzsKLSAgdGVzdERhcnQyRGFydChzcmMsIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCwgc3RyaXBUeXBlczogdHJ1ZSk7Ci19Ci0KLXRlc3RQbGF0Zm9ybUxpYnJhcnlNZW1iZXJOYW1lc0FyZUZpeGVkKCkgewotICB2YXIgc3JjID0gJycnCi1pbXBvcnQgJ2RhcnQ6aHRtbCc7Ci0KLWNsYXNzIEEgewotICBzdGF0aWMgU3RyaW5nIGdldCB1c2VyQWdlbnQgPT4gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7Ci19Ci0KLW1haW4oKSB7Ci0gIEEudXNlckFnZW50OwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAnJycKLWltcG9ydCAiZGFydDpodG1sIjsKLWNsYXNzIEEgewotICBzdGF0aWMgU3RyaW5nIGdldCB1c2VyQWdlbnRfQSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsKLX0KLW1haW4oKSB7Ci0gIEEudXNlckFnZW50X0E7Ci19Ci0nJyc7Ci0gIHRlc3REYXJ0MkRhcnQoc3JjLCBleHBlY3RlZFJlc3VsdDogZXhwZWN0ZWRSZXN1bHQpOwotfQotCi10ZXN0Q29uZmxpY3RzV2l0aENvcmVMaWIoKSB7Ci0gIHZhciBzcmMgPSAnJycKLWltcG9ydCAnZGFydDpjb3JlJyBhcyBmaXNrOwotCi1wcmludCh4KSB7IHRocm93ICdmaXNrJzsgfQotCi1tYWluKCkgewotICBmaXNrLnByaW50KCdjb3JlbGliJyk7Ci0gIHByaW50KCdsb2NhbCcpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAiIiIKLXByaW50X0EoeCkgewotICB0aHJvdyAnZmlzayc7Ci19Ci1tYWluKCkgewotICBwcmludCgnY29yZWxpYicpOwotICBwcmludF9BKCdsb2NhbCcpOwotfQotIiIiOwotICB0ZXN0RGFydDJEYXJ0KHNyYywgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0KTsKLX0KLQotdGVzdFVucmVzb2x2ZWROYW1lZENvbnN0cnVjdG9yMSgpIHsKLSAgdmFyIHNyYyA9ICcnJwotY2xhc3MgQSB7Ci19Ci0KLW1haW4oKSB7Ci0gIG5ldyBBLm5hbWVkKCk7Ci19Ci0nJyc7Ci0gIHZhciBleHBlY3RlZFJlc3VsdCA9ICIiIgotbWFpbigpIHsKLSAgbmV3IFVucmVzb2x2ZWQoKTsKLX0KLSIiIjsKLSAgdGVzdERhcnQyRGFydChzcmMsIGV4cGVjdGVkUmVzdWx0OiBleHBlY3RlZFJlc3VsdCk7Ci19Ci0KLXRlc3RVbnJlc29sdmVkTmFtZWRDb25zdHJ1Y3RvcjIoKSB7Ci0gIHZhciBzcmMgPSAnJycKLWNsYXNzIEEgewotICBBKCkge30KLX0KLQotbWFpbigpIHsKLSAgbmV3IEEoKTsKLSAgbmV3IEEubmFtZWQoKTsKLX0KLScnJzsKLSAgdmFyIGV4cGVjdGVkUmVzdWx0ID0gIiIiCi1jbGFzcyBBIHsKLSAgQSgpIHt9Ci19Ci1tYWluKCkgewotICBuZXcgQSgpOwotICBuZXcgVW5yZXNvbHZlZCgpOwotfQotIiIiOwotICB0ZXN0RGFydDJEYXJ0KHNyYywgZXhwZWN0ZWRSZXN1bHQ6IGV4cGVjdGVkUmVzdWx0KTsKLX0KLQotdGVzdFVucmVzb2x2ZWROYW1lZENvbnN0cnVjdG9yMygpIHsKLSAgdmFyIHNyYyA9ICcnJwotY2xhc3MgQSB7Ci0gIHN0YXRpYyBtZXRob2QoKSB7fQotfQotCi1tYWluKCkgewotICBBLm1ldGhvZCgpOwotICBuZXcgQS5uYW1lZCgpOwotfQotJycnOwotICB2YXIgZXhwZWN0ZWRSZXN1bHQgPSAiIiIKLWNsYXNzIEEgewotICBzdGF0aWMgbWV0aG9kKCkge30KLX0KLW1haW4oKSB7Ci0gIEEubWV0aG9kKCk7Ci0gIG5ldyBVbnJlc29sdmVkKCk7Ci19Ci0iIiI7Ci0gIHRlc3REYXJ0MkRhcnQoc3JjLCBleHBlY3RlZFJlc3VsdDogZXhwZWN0ZWRSZXN1bHQpOwotfQotCi10ZXN0Q2xhc3NBbmROYW1lZE1peGluRGVjbGFyYXRpb25zKCkgewotICB0ZXN0KFN0cmluZyBkZWNsYXJhdGlvbnMsIHtTdHJpbmcgZXhwZWN0ZWREZWNsYXJhdGlvbnN9KSB7Ci0gICAgY29uc3QgU3RyaW5nIG1haW5Tb3VyY2UgPSAnbWFpbigpID0+IG5ldyBBKCk7JzsKLSAgICBpZiAoZXhwZWN0ZWREZWNsYXJhdGlvbnMgPT0gbnVsbCkgewotICAgICAgZXhwZWN0ZWREZWNsYXJhdGlvbnMgPSBkZWNsYXJhdGlvbnM7Ci0gICAgfQotICAgIHRlc3REYXJ0MkRhcnQoJyRkZWNsYXJhdGlvbnNcbiRtYWluU291cmNlXG4nLAotICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQ6ICckZXhwZWN0ZWREZWNsYXJhdGlvbnNcbiRtYWluU291cmNlXG4nKTsKLSAgfQotCi0gIHRlc3QoJ2NsYXNzIEEge30nKTsKLSAgdGVzdCgnY2xhc3MgQTxUPiB7fScpOwotICB0ZXN0KCdjbGFzcyBBPFQgZXh0ZW5kcyBudW0+IHt9Jyk7Ci0gIHRlc3QoJ2NsYXNzIEE8VCBleHRlbmRzIE9iamVjdD4ge30nLCBleHBlY3RlZERlY2xhcmF0aW9uczogJ2NsYXNzIEE8VD4ge30nKTsKLSAgdGVzdCgnY2xhc3MgQSBleHRlbmRzIE9iamVjdCB7fScsIGV4cGVjdGVkRGVjbGFyYXRpb25zOiAnY2xhc3MgQSB7fScpOwotCi0gIHRlc3QoJycnCi1jbGFzcyBTMSB7fQotY2xhc3MgQSBleHRlbmRzIFMxIHt9JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIEEgaW1wbGVtZW50cyBTMSB7fScnJyk7Ci0KLSAgdGVzdCgnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBTMiB7fQotY2xhc3MgQSBleHRlbmRzIFMxIGltcGxlbWVudHMgUzIge30nJycpOwotCi0gIHRlc3QoJycnCi1jbGFzcyBTMSB7fQotY2xhc3MgUzIge30KLWNsYXNzIFMzIHt9Ci1jbGFzcyBBIGV4dGVuZHMgUzEgaW1wbGVtZW50cyBTMiwgUzMge30nJycpOwotCi0gIHRlc3QoJycnCi1jbGFzcyBTMSB7fQotY2xhc3MgUzIge30KLWNsYXNzIEEgaW1wbGVtZW50cyBTMSwgUzIge30nJycpOwotCi0gIHRlc3QoJycnCi1jbGFzcyBTMSB7fQotY2xhc3MgUzIge30KLWNsYXNzIEEgZXh0ZW5kcyBPYmplY3QgaW1wbGVtZW50cyBTMSwgUzIge30nJycsCi0gICAgICAgZXhwZWN0ZWREZWNsYXJhdGlvbnM6ICcnJwotY2xhc3MgUzEge30KLWNsYXNzIFMyIHt9Ci1jbGFzcyBBIGltcGxlbWVudHMgUzEsIFMyIHt9JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIEEgZXh0ZW5kcyBPYmplY3Qgd2l0aCBTMSB7fScnJyk7Ci0KLSAgdGVzdCgnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBBID0gT2JqZWN0IHdpdGggUzE7JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIFMyIHt9Ci1jbGFzcyBBIGV4dGVuZHMgUzEgd2l0aCBTMiB7fScnJyk7Ci0KLSAgdGVzdCgnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBTMiB7fQotY2xhc3MgQSA9IFMxIHdpdGggUzI7JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIFMyIHt9Ci1jbGFzcyBTMyB7fQotY2xhc3MgQSBleHRlbmRzIFMxIHdpdGggUzIsIFMzIHt9JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIFMyIHt9Ci1jbGFzcyBTMyB7fQotY2xhc3MgQSA9IFMxIHdpdGggUzIsIFMzOycnJyk7Ci0KLSAgdGVzdCgnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBTMiB7fQotY2xhc3MgUzMge30KLWNsYXNzIFM0IHt9Ci1jbGFzcyBTNSB7fQotY2xhc3MgQSBleHRlbmRzIFMxIHdpdGggUzIsIFMzIGltcGxlbWVudHMgUzQsIFM1IHt9JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIFMyIHt9Ci1jbGFzcyBTMyB7fQotY2xhc3MgUzQge30KLWNsYXNzIFM1IHt9Ci1jbGFzcyBBID0gUzEgd2l0aCBTMiwgUzMgaW1wbGVtZW50cyBTNCwgUzU7JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzEge30KLWNsYXNzIEEgZXh0ZW5kcyBPYmplY3Qgd2l0aCBTMSBpbXBsZW1lbnRzIFMxIHt9JycnLAotICAgICAgIGV4cGVjdGVkRGVjbGFyYXRpb25zOiAnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBBIGV4dGVuZHMgT2JqZWN0IHdpdGggUzEge30nJycpOwotCi0gIHRlc3QoJycnCi1jbGFzcyBTMSB7fQotY2xhc3MgQSA9IE9iamVjdCB3aXRoIFMxIGltcGxlbWVudHMgUzE7JycnLAotICAgICAgIGV4cGVjdGVkRGVjbGFyYXRpb25zOiAnJycKLWNsYXNzIFMxIHt9Ci1jbGFzcyBBID0gT2JqZWN0IHdpdGggUzE7JycnKTsKLQotICB0ZXN0KCcnJwotY2xhc3MgUzE8VDE+IHt9Ci1jbGFzcyBTMjxUMj4ge30KLWNsYXNzIFMzPFQzPiB7fQotY2xhc3MgUzQ8VDQ+IHt9Ci1jbGFzcyBTNTxUNSwgVDY+IHt9Ci1jbGFzcyBBPFUxLCBVMiwgVTMsIFU0LCBVNT4gZXh0ZW5kcyBTMTxVMT4gd2l0aCBTMjxVMj4sIFMzPFUzPiAnJycKLSAnJydpbXBsZW1lbnRzIFM0PFU0PiwgUzU8VTUsIFM1PFU1LCBpbnQ+PiB7fScnJyk7Ci19Ci0KLW1haW4oKSB7Ci0gIHRlc3RTaW1wbGVGaWxlVW5wYXJzZSgpOwotICB0ZXN0VG9wTGV2ZWxGaWVsZCgpOwotICB0ZXN0U2ltcGxlVG9wTGV2ZWxDbGFzcygpOwotICB0ZXN0Q2xhc3NXaXRoU3ludGhlc2l6ZWRDb25zdHJ1Y3RvcigpOwotICB0ZXN0Q2xhc3NXaXRoTWV0aG9kKCk7Ci0gIHRlc3RFeHRlbmRzSW1wbGVtZW50cygpOwotICB0ZXN0VmFyaWFibGVEZWZpbml0aW9ucygpOwotICB0ZXN0R2V0U2V0KCk7Ci0gIHRlc3RBYnN0cmFjdENsYXNzKCk7Ci0gIHRlc3RDb25mbGljdFNlbmRzUmVuYW1lKCk7Ci0gIHRlc3ROb0NvbmZsaWN0U2VuZHNSZW5hbWUoKTsKLSAgdGVzdENvbmZsaWN0TGlicmFyeUNsYXNzUmVuYW1lKCk7Ci0gIHRlc3RDbGFzc0V4dGVuZHNXaXRoQXJncygpOwotICB0ZXN0U3RhdGljSW52b2NhdGlvbigpOwotICB0ZXN0TGlicmFyeUdldFNldCgpOwotICB0ZXN0RmllbGRUeXBlT3V0cHV0KCk7Ci0gIHRlc3RUeXBlVmFyaWFibGVzQXJlUmVuYW1lZCgpOwotICB0ZXN0Q2xhc3NUeXBlQXJndW1lbnRCb3VuZCgpOwotICB0ZXN0RG91YmxlTWFpbnMoKTsKLSAgdGVzdFN0YXRpY0FjY2Vzc0lvTGliKCk7Ci0gIHRlc3RMb2NhbEZ1bmN0aW9uUGxhY2Vob2xkZXIoKTsKLSAgdGVzdE1pbmlmaWNhdGlvbigpOwotICB0ZXN0Q2xvc3VyZUxvY2Fsc01pbmlmaWVkKCk7Ci0gIHRlc3RQYXJhbWV0ZXJzTWluaWZpZWQoKTsKLSAgdGVzdERlY2xhcmF0aW9uVHlwZVBsYWNlaG9sZGVycygpOwotICB0ZXN0UGxhdGZvcm1MaWJyYXJ5TWVtYmVyTmFtZXNBcmVGaXhlZCgpOwotICB0ZXN0Q29uZmxpY3RzV2l0aENvcmVMaWIoKTsKLSAgdGVzdFVucmVzb2x2ZWROYW1lZENvbnN0cnVjdG9yMSgpOwotICB0ZXN0VW5yZXNvbHZlZE5hbWVkQ29uc3RydWN0b3IyKCk7Ci0gIHRlc3RVbnJlc29sdmVkTmFtZWRDb25zdHJ1Y3RvcjMoKTsKLSAgdGVzdENsYXNzQW5kTmFtZWRNaXhpbkRlY2xhcmF0aW9ucygpOwotfQotCmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9kYXJ0X3ByaW50ZXJfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvZGFydF9wcmludGVyX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQzMzFiMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9kYXJ0X3ByaW50ZXJfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsOTkwICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxNCwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotbGlicmFyeSBkYXJ0X3ByaW50ZXJfdGVzdDsKLQotaW1wb3J0ICdkYXJ0Om1pcnJvcnMnOwotaW1wb3J0ICdwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2NvbnN0YW50cy92YWx1ZXMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RhcnRfYmFja2VuZC9iYWNrZW5kX2FzdF9ub2Rlcy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvZGFydF9iYWNrZW5kL2JhY2tlbmRfYXN0X3RvX2Zyb250ZW5kX2FzdC5kYXJ0JwotICAgIHNob3cgVHJlZVByaW50ZXI7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RpYWdub3N0aWNzL2RpYWdub3N0aWNfbGlzdGVuZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RpYWdub3N0aWNzL21lc3NhZ2VzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kaWFnbm9zdGljcy9zcGFubmFibGUuZGFydCcgc2hvdyBTcGFubmFibGU7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL3BhcnNlci9saXN0ZW5lci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvcGFyc2VyL3BhcnNlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvc2Nhbm5lci9zY2FubmVyLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy90b2tlbnMvdG9rZW4uZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL3Rva2Vucy90b2tlbl9jb25zdGFudHMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2lvL3NvdXJjZV9maWxlLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9zdHJpbmdfdmFsaWRhdG9yLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy90cmVlL3RyZWUuZGFydCcgc2hvdyBEYXJ0U3RyaW5nOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy90cmVlL3RyZWUuZGFydCcgYXMgdHJlZTsKLWltcG9ydCAnLi4vb3B0aW9uc19oZWxwZXIuZGFydCc7Ci0KLS8vLyBGb3IgZGVidWdnaW5nIHRoZSBbQXN0QnVpbGRlcl0gc3RhY2suIFByaW50cyBpbmZvcm1hdGlvbiBhYm91dCBbeF0uCi12b2lkIHNob3coeCkgewotICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOwotICBVbnBhcnNlciB1bnBhcnNlciA9IG5ldyBVbnBhcnNlcihidWYpOwotICB2b2lkIHVucGFyc2UoeCkgewotICAgIGlmICh4IGlzIEV4cHJlc3Npb24pCi0gICAgICB1bnBhcnNlci53cml0ZUV4cHJlc3Npb24oeCk7Ci0gICAgZWxzZSBpZiAoeCBpcyBUeXBlQW5ub3RhdGlvbikKLSAgICAgIHVucGFyc2VyLndyaXRlVHlwZSh4KTsKLSAgICBlbHNlIGlmICh4IGlzIFN0YXRlbWVudCkKLSAgICAgIHVucGFyc2VyLndyaXRlU3RhdGVtZW50KHgpOwotICAgIGVsc2UgaWYgKHggaXMgTGlzdCkgewotICAgICAgYnVmLndyaXRlKCdbJyk7Ci0gICAgICBib29sIGZpcnN0ID0gdHJ1ZTsKLSAgICAgIGZvciAodmFyIHkgaW4geCkgewotICAgICAgICBpZiAoZmlyc3QpCi0gICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIGJ1Zi53cml0ZSgnLCAnKTsKLSAgICAgICAgdW5wYXJzZSh5KTsKLSAgICAgIH0KLSAgICAgIGJ1Zi53cml0ZSgnXScpOwotICAgIH0KLSAgfQotICB1bnBhcnNlKHgpOwotICBwcmludCgiJHt4LnJ1bnRpbWVUeXBlfTogJHtidWYudG9TdHJpbmcoKX0iKTsKLX0KLQotY2xhc3MgUHJpbnREaWFnbm9zdGljTGlzdGVuZXIgaW1wbGVtZW50cyBEaWFnbm9zdGljUmVwb3J0ZXIgewotICB2b2lkIGxvZyhtZXNzYWdlKSB7Ci0gICAgcHJpbnQobWVzc2FnZSk7Ci0gIH0KLQotICB2b2lkIGludGVybmFsRXJyb3IoU3Bhbm5hYmxlIHNwYW5uYWJsZSwgbWVzc2FnZSkgewotICAgIHByaW50KG1lc3NhZ2UpOwotICB9Ci0KLSAgU291cmNlU3BhbiBzcGFuRnJvbVNwYW5uYWJsZShTcGFubmFibGUgbm9kZSkgewotICAgIHJldHVybiBuZXcgU291cmNlU3BhbihudWxsLCAwLCAwKTsKLSAgfQotCi0gIHZvaWQgcmVwb3J0RmF0YWxFcnJvcihTcGFubmFibGUgbm9kZSwgTWVzc2FnZUtpbmQgZXJyb3JDb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgW01hcCBhcmd1bWVudHMgPSBjb25zdCB7fV0pIHsKLSAgICBwcmludChlcnJvckNvZGUpOwotICAgIHRocm93IG5ldyBFcnJvcigpOwotICB9Ci0KLSAgdm9pZCByZXBvcnRFcnJvcihTcGFubmFibGUgbm9kZSwgTWVzc2FnZUtpbmQgZXJyb3JDb2RlLAotICAgICAgICAgICAgICAgICAgIFtNYXAgYXJndW1lbnRzID0gY29uc3Qge31dKSB7Ci0gICAgcHJpbnQoZXJyb3JDb2RlKTsKLSAgfQotCi0gIHZvaWQgcmVwb3J0V2FybmluZyhTcGFubmFibGUgbm9kZSwgTWVzc2FnZUtpbmQgZXJyb3JDb2RlLAotICAgICAgICAgICAgICAgICAgICAgW01hcCBhcmd1bWVudHMgPSBjb25zdCB7fV0pIHsKLSAgICBwcmludChlcnJvckNvZGUpOwotICB9Ci0KLSAgdm9pZCByZXBvcnRIaW50KFNwYW5uYWJsZSBub2RlLCBNZXNzYWdlS2luZCBlcnJvckNvZGUsCi0gICAgICAgICAgICAgICAgICBbTWFwIGFyZ3VtZW50cyA9IGNvbnN0IHt9XSkgewotICAgIHByaW50KGVycm9yQ29kZSk7Ci0gIH0KLQotICB2b2lkIHJlcG9ydEluZm8oU3Bhbm5hYmxlIG5vZGUsIE1lc3NhZ2VLaW5kIGVycm9yQ29kZSwKLSAgICAgICAgICAgICAgICAgIFtNYXAgYXJndW1lbnRzID0gY29uc3Qge31dKSB7Ci0gICAgcHJpbnQoZXJyb3JDb2RlKTsKLSAgfQotCi0gIHdpdGhDdXJyZW50RWxlbWVudChlbGVtZW50LCBmKCkpIHsKLSAgICBmKCk7Ci0gIH0KLX0KLQotY2xhc3MgQXN0QnVpbGRlciBleHRlbmRzIExpc3RlbmVyIHsKLSAgZmluYWwgTGlzdCBzdGFjayA9IFtdOwotICBmaW5hbCBTdHJpbmdWYWxpZGF0b3Igc3RyaW5nVmFsaWRhdG9yCi0gICAgICAgICA9IG5ldyBTdHJpbmdWYWxpZGF0b3IobmV3IFByaW50RGlhZ25vc3RpY0xpc3RlbmVyKCkpOwotCi0gIFN0cmluZyBhc05hbWUoZSkgewotICAgIGlmIChlIGlzIElkZW50aWZpZXIpCi0gICAgICByZXR1cm4gZS5uYW1lOwotICAgIGVsc2UgaWYgKGUgPT0gbnVsbCkKLSAgICAgIHJldHVybiBudWxsOwotICAgIGVsc2UKLSAgICAgIHRocm93ICdFeHByZXNzaW9uIGlzIG5vdCBhIG5hbWU6ICR7ZS5ydW50aW1lVHlwZX0nOwotICB9Ci0KLSAgVHlwZUFubm90YXRpb24gYXNUeXBlKHgpIHsKLSAgICBpZiAoeCBpcyBUeXBlQW5ub3RhdGlvbikKLSAgICAgIHJldHVybiB4OwotICAgIGlmICh4IGlzIElkZW50aWZpZXIpCi0gICAgICByZXR1cm4gbmV3IFR5cGVBbm5vdGF0aW9uKHgubmFtZSk7Ci0gICAgaWYgKHggPT0gbnVsbCkKLSAgICAgIHJldHVybiBudWxsOwotICAgIGVsc2UKLSAgICAgIHRocm93ICJOb3QgYSB0eXBlOiAke3gucnVudGltZVR5cGV9IjsKLSAgfQotCi0gIFBhcmFtZXRlciBhc1BhcmFtZXRlcih4KSB7Ci0gICAgaWYgKHggaXMgUGFyYW1ldGVyKQotICAgICAgcmV0dXJuIHg7Ci0gICAgaWYgKHggaXMgSWRlbnRpZmllcikKLSAgICAgIHJldHVybiBuZXcgUGFyYW1ldGVyKHgubmFtZSk7Ci0gICAgZWxzZQotICAgICAgdGhyb3cgIk5vdCBhIHBhcmFtZXRlcjogJHt4LnJ1bnRpbWVUeXBlfSI7Ci0gIH0KLQotICB2b2lkIHB1c2gobm9kZSkgewotICAgIHN0YWNrLmFkZChub2RlKTsKLSAgfQotICBkeW5hbWljIHBlZWsoKSB7Ci0gICAgcmV0dXJuIHN0YWNrLmxhc3Q7Ci0gIH0KLSAgZHluYW1pYyBwb3AoW2NvZXJjZSh4KSA9IG51bGxdKSB7Ci0gICAgdmFyIHggPSBzdGFjay5yZW1vdmVMYXN0KCk7Ci0gICAgaWYgKGNvZXJjZSAhPSBudWxsKQotICAgICAgcmV0dXJuIGNvZXJjZSh4KTsKLSAgICBlbHNlCi0gICAgICByZXR1cm4geDsKLSAgfQotICBMaXN0IHBvcExpc3QoaW50IGNvdW50LCBbTGlzdCByZXN1bHQsIGNvZXJjZSh4KSA9IG51bGxdKSB7Ci0gICAgaWYgKHJlc3VsdCA9PSBudWxsKQotICAgICAgcmVzdWx0ID0gPE5vZGU+W107Ci0gICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyBpKyspIHsKLSAgICAgIHZhciB4ID0gc3RhY2tbc3RhY2subGVuZ3RoLWNvdW50K2ldOwotICAgICAgaWYgKGNvZXJjZSAhPSBudWxsKSB7Ci0gICAgICAgIHggPSBjb2VyY2UoeCk7Ci0gICAgICB9Ci0gICAgICByZXN1bHQuYWRkKHgpOwotICAgIH0KLSAgICBzdGFjay5yZW1vdmVSYW5nZShzdGFjay5sZW5ndGgtY291bnQsIHN0YWNrLmxlbmd0aCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLSAgfQotICBwb3BUeXBlQW5ub3RhdGlvbigpIHsKLSAgICBMaXN0PFR5cGVBbm5vdGF0aW9uPiBhcmdzID0gcG9wKCk7Ci0gICAgaWYgKGFyZ3MgPT0gbnVsbCkKLSAgICAgIHJldHVybiBudWxsOwotICAgIFN0cmluZyBuYW1lID0gcG9wKGFzTmFtZSk7Ci0gICAgcmV0dXJuIG5ldyBUeXBlQW5ub3RhdGlvbihuYW1lLCBhcmdzKTsKLSAgfQotCi0gIC8vIEVYUFJFU1NJT05TCi0gIGVuZENhc2NhZGUoKSB7Ci0gICAgdGhyb3cgIkNhc2NhZGUgbm90IHN1cHBvcnRlZCB5ZXQiOwotICB9Ci0gIGVuZElkZW50aWZpZXJMaXN0KGludCBjb3VudCkgewotICAgIHB1c2gocG9wTGlzdChjb3VudCwgPElkZW50aWZpZXI+W10pKTsKLSAgfQotICBlbmRUeXBlTGlzdChpbnQgY291bnQpIHsKLSAgICBwdXNoKHBvcExpc3QoY291bnQsIDxUeXBlQW5ub3RhdGlvbj5bXSwgYXNUeXBlKSk7Ci0gIH0KLSAgYmVnaW5MaXRlcmFsU3RyaW5nKFRva2VuIHRva2VuKSB7Ci0gICAgU3RyaW5nIHNvdXJjZSA9IHRva2VuLnZhbHVlOwotICAgIHRyZWUuU3RyaW5nUXVvdGluZyBxdW90aW5nID0gU3RyaW5nVmFsaWRhdG9yLnF1b3RpbmdGcm9tU3RyaW5nKHNvdXJjZSk7Ci0gICAgcHVzaChxdW90aW5nKTsKLSAgICBwdXNoKHRva2VuKTsgLy8gY29sbGVjdCB0b2tlbiBhdCB0aGUgZW5kCi0gIH0KLSAgaGFuZGxlU3RyaW5nUGFydChUb2tlbiB0b2tlbikgewotICAgIHB1c2godG9rZW4pOyAvLyBjb2xsZWN0IHRva2VuIGF0IHRoZSBlbmQKLSAgfQotICBlbmRMaXRlcmFsU3RyaW5nKGludCBpbnRlcnBDb3VudCkgewotICAgIExpc3QgcGFydHMgPSBwb3BMaXN0KDIgKiBpbnRlcnBDb3VudCArIDEsIFtdKTsKLSAgICB0cmVlLlN0cmluZ1F1b3RpbmcgcXVvdGluZyA9IHBvcCgpOwotICAgIExpc3Q8RXhwcmVzc2lvbj4gbWVtYmVycyA9IDxFeHByZXNzaW9uPltdOwotICAgIGZvciAodmFyIGk9MDsgaTxwYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKLSAgICAgIGlmIChwYXJ0IGlzIEV4cHJlc3Npb24pIHsKLSAgICAgICAgbWVtYmVycy5hZGQocGFydCk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnQocGFydCBpcyBUb2tlbik7Ci0gICAgICAgIERhcnRTdHJpbmcgc3RyID0gc3RyaW5nVmFsaWRhdG9yLnZhbGlkYXRlSW50ZXJwb2xhdGlvblBhcnQoCi0gICAgICAgICAgICBwYXJ0IGFzIFRva2VuLAotICAgICAgICAgICAgcXVvdGluZywKLSAgICAgICAgICAgIGlzRmlyc3Q6IGkgPT0gMCwKLSAgICAgICAgICAgIGlzTGFzdDogaSA9PSBwYXJ0cy5sZW5ndGggLSAxKTsKLSAgICAgICAgbWVtYmVycy5hZGQobmV3IExpdGVyYWwobmV3IFN0cmluZ0NvbnN0YW50VmFsdWUoc3RyKSkpOwotICAgICAgfQotICAgIH0KLSAgICBwdXNoKG5ldyBTdHJpbmdDb25jYXQobWVtYmVycykpOwotICB9Ci0gIGhhbmRsZVN0cmluZ0p1eHRhcG9zaXRpb24oaW50IGxpdENvdW50KSB7Ci0gICAgcHVzaChuZXcgU3RyaW5nQ29uY2F0KHBvcExpc3QobGl0Q291bnQsIDxFeHByZXNzaW9uPltdKSkpOwotICB9Ci0gIGVuZEFyZ3VtZW50cyhpbnQgY291bnQsIGJlZ2luLCBlbmQpIHsKLSAgICBwdXNoKHBvcExpc3QoY291bnQsIDxBcmd1bWVudD5bXSkpOwotICB9Ci0gIGhhbmRsZU5vQXJndW1lbnRzKHRva2VuKSB7Ci0gICAgcHVzaChudWxsKTsKLSAgfQotICBoYW5kbGVOb1R5cGVBcmd1bWVudHModG9rZW4pIHsKLSAgICBwdXNoKDxUeXBlQW5ub3RhdGlvbj5bXSk7Ci0gIH0KLSAgZW5kVHlwZUFyZ3VtZW50cyhpbnQgY291bnQsIHQsIHkpIHsKLSAgICBMaXN0PFR5cGVBbm5vdGF0aW9uPiBhcmdzID0gPFR5cGVBbm5vdGF0aW9uPltdOwotICAgIGZvciAodmFyIGk9MDsgaTxjb3VudDsgaSsrKSB7Ci0gICAgICBhcmdzLmFkZChwb3BUeXBlQW5ub3RhdGlvbigpKTsKLSAgICB9Ci0gICAgcHVzaChhcmdzLnJldmVyc2VkLnRvTGlzdChncm93YWJsZTpmYWxzZSkpOwotICB9Ci0gIGhhbmRsZVZvaWRLZXl3b3JkKHRva2VuKSB7Ci0gICAgcHVzaChuZXcgSWRlbnRpZmllcigidm9pZCIpKTsKLSAgICBwdXNoKDxUeXBlQW5ub3RhdGlvbj5bXSk7IC8vIHByZXBhcmUgZm9yIHBvcFR5cGVBbm5vdGF0aW9uCi0gIH0KLSAgaGFuZGxlUXVhbGlmaWVkKFRva2VuIHBlcmlvZCkgewotICAgIFN0cmluZyBsYXN0ID0gcG9wKGFzTmFtZSk7Ci0gICAgU3RyaW5nIGZpcnN0ID0gcG9wKGFzTmFtZSk7Ci0gICAgcHVzaChuZXcgSWRlbnRpZmllcignJGZpcnN0LiRsYXN0JykpOwotICB9Ci0gIGVuZFNlbmQodCkgewotICAgIExpc3Q8QXJndW1lbnQ+IGFyZ3VtZW50cyA9IHBvcCgpOwotICAgIHBvcCgpOyAvLyB0eXBlQXJndW1lbnRzCi0gICAgaWYgKGFyZ3VtZW50cyA9PSBudWxsKQotICAgICAgcmV0dXJuOyAvLyBub3QgYSBmdW5jdGlvbiBjYWxsCi0gICAgRXhwcmVzc2lvbiBzZWxlY3RvciA9IHBvcCgpOwotICAgIHB1c2gobmV3IENhbGxGdW5jdGlvbihzZWxlY3RvciwgYXJndW1lbnRzKSk7Ci0gIH0KLSAgZW5kVGhyb3dFeHByZXNzaW9uKHQsIHR0KSB7Ci0gICAgcHVzaChuZXcgVGhyb3cocG9wKCkpKTsKLSAgfQotICBoYW5kbGVBc3NpZ25tZW50RXhwcmVzc2lvbihUb2tlbiB0b2tlbikgewotICAgIEV4cHJlc3Npb24gcmlnaHQgPSBwb3AoKTsKLSAgICBFeHByZXNzaW9uIGxlZnQgPSBwb3AoKTsKLSAgICBwdXNoKG5ldyBBc3NpZ25tZW50KGxlZnQsIHRva2VuLnZhbHVlLCByaWdodCkpOwotICB9Ci0gIGhhbmRsZUJpbmFyeUV4cHJlc3Npb24oVG9rZW4gdG9rZW4pIHsKLSAgICBFeHByZXNzaW9uIHJpZ2h0ID0gcG9wKCk7Ci0gICAgUmVjZWl2ZXIgbGVmdCA9IHBvcCgpOwotICAgIFN0cmluZyB0b2tlblN0cmluZyA9IHRva2VuLnN0cmluZ1ZhbHVlOwotICAgIGlmICh0b2tlblN0cmluZyA9PSAnLicpIHsKLSAgICAgIGlmIChyaWdodCBpcyBDYWxsRnVuY3Rpb24pIHsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSAocmlnaHQuY2FsbGVlIGFzIElkZW50aWZpZXIpLm5hbWU7Ci0gICAgICAgIHB1c2gobmV3IENhbGxNZXRob2QobGVmdCwgbmFtZSwgcmlnaHQuYXJndW1lbnRzKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKG5ldyBGaWVsZEV4cHJlc3Npb24obGVmdCwgKHJpZ2h0IGFzIElkZW50aWZpZXIpLm5hbWUpKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgcHVzaChuZXcgQmluYXJ5T3BlcmF0b3IobGVmdCwgdG9rZW5TdHJpbmcsIHJpZ2h0KSk7Ci0gICAgfQotICB9Ci0gIGhhbmRsZUNvbmRpdGlvbmFsRXhwcmVzc2lvbihxdWVzdGlvbiwgY29sb24pIHsKLSAgICBFeHByZXNzaW9uIGVsc2VFeHByZXNzaW9uID0gcG9wKCk7Ci0gICAgRXhwcmVzc2lvbiB0aGVuRXhwcmVzc2lvbiA9IHBvcCgpOwotICAgIEV4cHJlc3Npb24gY29uZGl0aW9uID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgQ29uZGl0aW9uYWwoY29uZGl0aW9uLCB0aGVuRXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Npb24pKTsKLSAgfQotICBoYW5kbGVJZGVudGlmaWVyKFRva2VuIHQpIHsKLSAgICBwdXNoKG5ldyBJZGVudGlmaWVyKHQudmFsdWUpKTsKLSAgfQotICBoYW5kbGVPcGVyYXRvcih0KSB7Ci0gICAgcHVzaChuZXcgSWRlbnRpZmllcih0LnZhbHVlKSk7Ci0gIH0KLSAgaGFuZGxlSW5kZXhlZEV4cHJlc3Npb24ob3BlbiwgY2xvc2UpIHsKLSAgICBFeHByZXNzaW9uIGluZGV4ID0gcG9wKCk7Ci0gICAgUmVjZWl2ZXIgb2JqZWN0ID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgSW5kZXhFeHByZXNzaW9uKG9iamVjdCwgaW5kZXgpKTsKLSAgfQotICBoYW5kbGVJc09wZXJhdG9yKG9wZXJhdGhvciwgbm90LCBlbmRUb2tlbikgewotICAgIFR5cGVBbm5vdGF0aW9uIHR5cGUgPSBwb3BUeXBlQW5ub3RhdGlvbigpOwotICAgIEV4cHJlc3Npb24gZXhwID0gcG9wKCk7Ci0gICAgVHlwZU9wZXJhdG9yIHIgPSBuZXcgVHlwZU9wZXJhdG9yKGV4cCwgJ2lzJywgdHlwZSk7Ci0gICAgaWYgKG5vdCAhPSBudWxsKSB7Ci0gICAgICBwdXNoKG5ldyBVbmFyeU9wZXJhdG9yKCchJywgcikpOwotICAgIH0gZWxzZSB7Ci0gICAgICBwdXNoKHIpOwotICAgIH0KLSAgfQotICBoYW5kbGVBc09wZXJhdG9yKG9wZXJhdGhvciwgZW5kVG9rZW4pIHsKLSAgICBUeXBlQW5ub3RhdGlvbiB0eXBlID0gcG9wVHlwZUFubm90YXRpb24oKTsKLSAgICBFeHByZXNzaW9uIGV4cCA9IHBvcCgpOwotICAgIHB1c2gobmV3IFR5cGVPcGVyYXRvcihleHAsICdhcycsIHR5cGUpKTsKLSAgfQotICBoYW5kbGVMaXRlcmFsQm9vbChUb2tlbiB0KSB7Ci0gICAgYm9vbCB2YWx1ZSA9IHQudmFsdWUgPT0gJ3RydWUnOwotICAgIHB1c2gobmV3IExpdGVyYWwoCi0gICAgICAgIHZhbHVlID8gbmV3IFRydWVDb25zdGFudFZhbHVlKCkgOiBuZXcgRmFsc2VDb25zdGFudFZhbHVlKCkpKTsKLSAgfQotICBoYW5kbGVMaXRlcmFsRG91YmxlKHQpIHsKLSAgICBwdXNoKG5ldyBMaXRlcmFsKG5ldyBEb3VibGVDb25zdGFudFZhbHVlKGRvdWJsZS5wYXJzZSh0LnZhbHVlKSkpKTsKLSAgfQotICBoYW5kbGVMaXRlcmFsSW50KFRva2VuIHQpIHsKLSAgICBwdXNoKG5ldyBMaXRlcmFsKG5ldyBJbnRDb25zdGFudFZhbHVlKGludC5wYXJzZSh0LnZhbHVlKSkpKTsKLSAgfQotICBoYW5kbGVMaXRlcmFsTnVsbCh0KSB7Ci0gICAgcHVzaChuZXcgTGl0ZXJhbChuZXcgTnVsbENvbnN0YW50VmFsdWUoKSkpOwotICB9Ci0gIGVuZExpdGVyYWxTeW1ib2woVG9rZW4gaGFzaCwgaW50IGlkQ291bnQpIHsKLSAgICBMaXN0PElkZW50aWZpZXI+IGlkcyA9IHBvcExpc3QoaWRDb3VudCwgPElkZW50aWZpZXI+W10pOwotICAgIHB1c2gobmV3IExpdGVyYWxTeW1ib2woaWRzLm1hcCgoaWQpID0+IGlkLm5hbWUpLmpvaW4oJy4nKSkpOwotICB9Ci0gIGhhbmRsZUxpdGVyYWxMaXN0KGludCBjb3VudCwgYmVnaW4sIGNvbnN0S2V5d29yZCwgZW5kKSB7Ci0gICAgTGlzdDxFeHByZXNzaW9uPiBleHBzID0gcG9wTGlzdChjb3VudCwgPEV4cHJlc3Npb24+W10pOwotICAgIExpc3Q8VHlwZUFubm90YXRpb24+IHR5cGVzID0gcG9wKCk7Ci0gICAgYXNzZXJ0KHR5cGVzLmxlbmd0aCA8PSAxKTsKLSAgICBwdXNoKG5ldyBMaXRlcmFsTGlzdChleHBzLAotICAgICAgaXNDb25zdDogY29uc3RLZXl3b3JkICE9IG51bGwsCi0gICAgICB0eXBlQXJndW1lbnQ6IHR5cGVzLmxlbmd0aCA9PSAwID8gbnVsbCA6IHR5cGVzWzBdCi0gICAgKSk7Ci0gIH0KLSAgaGFuZGxlTGl0ZXJhbE1hcChpbnQgY291bnQsIGJlZ2luLCBjb25zdEtleXdvcmQsIGVuZCkgewotICAgIExpc3Q8TGl0ZXJhbE1hcEVudHJ5PiBlbnRyaWVzID0gcG9wTGlzdChjb3VudCwgPExpdGVyYWxNYXBFbnRyeT5bXSk7Ci0gICAgTGlzdDxUeXBlQW5ub3RhdGlvbj4gdHlwZXMgPSBwb3AoKTsKLSAgICBhc3NlcnQodHlwZXMubGVuZ3RoID09IDAgfHwgdHlwZXMubGVuZ3RoID09IDIpOwotICAgIHB1c2gobmV3IExpdGVyYWxNYXAoZW50cmllcywKLSAgICAgICAgaXNDb25zdDogY29uc3RLZXl3b3JkICE9IG51bGwsCi0gICAgICAgIHR5cGVBcmd1bWVudHM6IHR5cGVzCi0gICAgKSk7Ci0gIH0KLSAgZW5kTGl0ZXJhbE1hcEVudHJ5KGNvbG9uLCBlbmRUb2tlbikgewotICAgIEV4cHJlc3Npb24gdmFsdWUgPSBwb3AoKTsKLSAgICBFeHByZXNzaW9uIGtleSA9IHBvcCgpOwotICAgIHB1c2gobmV3IExpdGVyYWxNYXBFbnRyeShrZXksdmFsdWUpKTsKLSAgfQotICBoYW5kbGVOYW1lZEFyZ3VtZW50KGNvbG9uKSB7Ci0gICAgRXhwcmVzc2lvbiBleHAgPSBwb3AoKTsKLSAgICBJZGVudGlmaWVyIG5hbWUgPSBwb3AoKTsKLSAgICBwdXNoKG5ldyBOYW1lZEFyZ3VtZW50KG5hbWUubmFtZSwgZXhwKSk7Ci0gIH0KLSAgZW5kQ29uc3RydWN0b3JSZWZlcmVuY2UoVG9rZW4gc3RhcnQsIFRva2VuIHBlcmlvZCwgVG9rZW4gZW5kKSB7Ci0gICAgaWYgKHBlcmlvZCA9PSBudWxsKSB7Ci0gICAgICBwdXNoKG51bGwpOyAvLyBpbmRpY2F0ZSBtaXNzaW5nIGNvbnN0cnVjdG9yIG5hbWUKLSAgICB9Ci0gIH0KLSAgaGFuZGxlTmV3RXhwcmVzc2lvbih0KSB7Ci0gICAgTGlzdDxBcmd1bWVudD4gYXJncyA9IHBvcCgpOwotICAgIFN0cmluZyBjb25zdHJ1Y3Rvck5hbWUgPSBwb3AoYXNOYW1lKTsKLSAgICBUeXBlQW5ub3RhdGlvbiB0eXBlID0gcG9wVHlwZUFubm90YXRpb24oKTsKLSAgICBwdXNoKG5ldyBDYWxsTmV3KHR5cGUsIGFyZ3MsIGNvbnN0cnVjdG9yTmFtZTogY29uc3RydWN0b3JOYW1lKSk7Ci0gIH0KLSAgaGFuZGxlQ29uc3RFeHByZXNzaW9uKHQpIHsKLSAgICBMaXN0PEFyZ3VtZW50PiBhcmdzID0gcG9wKCk7Ci0gICAgU3RyaW5nIGNvbnN0cnVjdG9yTmFtZSA9IHBvcChhc05hbWUpOwotICAgIFR5cGVBbm5vdGF0aW9uIHR5cGUgPSBwb3BUeXBlQW5ub3RhdGlvbigpOwotICAgIHB1c2gobmV3IENhbGxOZXcodHlwZSwgYXJncywgY29uc3RydWN0b3JOYW1lOiBjb25zdHJ1Y3Rvck5hbWUsCi0gICAgICAgICAgICAgICAgICAgICBpc0NvbnN0OnRydWUpKTsKLSAgfQotICBoYW5kbGVQYXJlbnRoZXNpemVkRXhwcmVzc2lvbih0KSB7Ci0gICAgLy8gZG8gbm90aGluZywganVzdCBsZWF2ZSBleHByZXNzaW9uIG9uIHRvcCBvZiBzdGFjawotICB9Ci0gIGhhbmRsZVN1cGVyRXhwcmVzc2lvbih0KSB7Ci0gICAgcHVzaChuZXcgU3VwZXJSZWNlaXZlcigpKTsKLSAgfQotICBoYW5kbGVUaGlzRXhwcmVzc2lvbih0KSB7Ci0gICAgcHVzaChuZXcgVGhpcygpKTsKLSAgfQotICBoYW5kbGVVbmFyeVBvc3RmaXhBc3NpZ25tZW50RXhwcmVzc2lvbihUb2tlbiB0KSB7Ci0gICAgcHVzaChuZXcgSW5jcmVtZW50LnBvc3RmaXgocG9wKCksIHQudmFsdWUpKTsKLSAgfQotICBoYW5kbGVVbmFyeVByZWZpeEFzc2lnbm1lbnRFeHByZXNzaW9uKFRva2VuIHQpIHsKLSAgICBwdXNoKG5ldyBJbmNyZW1lbnQucHJlZml4KHBvcCgpLCB0LnZhbHVlKSk7Ci0gIH0KLSAgaGFuZGxlVW5hcnlQcmVmaXhFeHByZXNzaW9uKFRva2VuIHQpIHsKLSAgICBwdXNoKG5ldyBVbmFyeU9wZXJhdG9yKHQudmFsdWUsIHBvcCgpKSk7Ci0gIH0KLQotICBoYW5kbGVGdW5jdGlvblR5cGVkRm9ybWFsUGFyYW1ldGVyKHRvaykgewotICAgIC8vIGhhbmRsZWQgaW4gZW5kRm9ybWFsUGFyYW1ldGVyCi0gIH0KLSAgZW5kRm9ybWFsUGFyYW1ldGVyKHRoaXNLZXl3b3JkKSB7Ci0gICAgRXhwcmVzc2lvbiBkZWZhdWx0VmFsdWUgPSBudWxsOwotICAgIHZhciB4ID0gcG9wKCk7Ci0gICAgaWYgKHggaXMgRGVmYXVsdFZhbHVlKSB7Ci0gICAgICBkZWZhdWx0VmFsdWUgPSB4LmV4cHJlc3Npb247Ci0gICAgICB4ID0gcG9wKCk7Ci0gICAgfQotICAgIGlmICh4IGlzIFBhcmFtZXRlcnMpIHsKLSAgICAgIFN0cmluZyBuYW1lID0gcG9wKGFzTmFtZSk7Ci0gICAgICBUeXBlQW5ub3RhdGlvbiByZXR1cm5UeXBlID0gcG9wVHlwZUFubm90YXRpb24oKTsKLSAgICAgIHB1c2gobmV3IFBhcmFtZXRlci5mdW5jdGlvbihuYW1lLCByZXR1cm5UeXBlLCB4LCBkZWZhdWx0VmFsdWUpKTsKLSAgICB9IGVsc2UgewotICAgICAgU3RyaW5nIG5hbWUgPSBhc05hbWUoeCk7Ci0gICAgICBUeXBlQW5ub3RhdGlvbiB0eXBlID0gcG9wVHlwZUFubm90YXRpb24oKTsKLSAgICAgIHB1c2gobmV3IFBhcmFtZXRlcihuYW1lLCB0eXBlOnR5cGUsIGRlZmF1bHRWYWx1ZTpkZWZhdWx0VmFsdWUpKTsKLSAgICB9Ci0gIH0KLSAgaGFuZGxlVmFsdWVkRm9ybWFsUGFyYW1ldGVyKGVxLCB0b2spIHsKLSAgICBwdXNoKG5ldyBEZWZhdWx0VmFsdWUocG9wKCkpKTsKLSAgfQotICBlbmRPcHRpb25hbEZvcm1hbFBhcmFtZXRlcnMoaW50IGNvdW50LCBiZWdpbiwgZW5kKSB7Ci0gICAgYm9vbCBpc05hbWVkID0gZW5kLnZhbHVlID09ICd9JzsKLSAgICBwdXNoKHBvcExpc3QoY291bnQsIDxQYXJhbWV0ZXI+W10sIGFzUGFyYW1ldGVyKSk7Ci0gICAgcHVzaChpc05hbWVkKTsgLy8gSW5kaWNhdGUgb3B0aW9uYWwgcGFyYW1ldGVycyB0byBlbmRGb3JtYWxQYXJhbWV0ZXJzLgotICB9Ci0gIGVuZEZvcm1hbFBhcmFtZXRlcnMoY291bnQsIGJlZ2luLCBlbmQpIHsKLSAgICBpZiAoY291bnQgPT0gMCkgewotICAgICAgcHVzaChuZXcgUGFyYW1ldGVycyhbXSkpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICB2YXIgbGFzdCA9IHBvcCgpOyAgIC8vIERldGVjdCBpZiBvcHRpb25hbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50LgotICAgIGlmIChsYXN0IGlzIGJvb2wpIHsgLy8gU2VlIGVuZE9wdGlvbmFsRm9ybWFsUGFyYW1ldGVycy4KLSAgICAgIExpc3Q8UGFyYW1ldGVyPiBvcHRpb25hbCA9IHBvcCgpOwotICAgICAgTGlzdDxQYXJhbWV0ZXI+IHJlcXVpcmVkID0gcG9wTGlzdChjb3VudC0xLCA8UGFyYW1ldGVyPltdLCBhc1BhcmFtZXRlcik7Ci0gICAgICBwdXNoKG5ldyBQYXJhbWV0ZXJzKHJlcXVpcmVkLCBvcHRpb25hbCwgbGFzdCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAvLyBObyBvcHRpb25hbCBwYXJhbWV0ZXJzLgotICAgICAgTGlzdDxQYXJhbWV0ZXI+IHJlcXVpcmVkID0gcG9wTGlzdChjb3VudC0xLCA8UGFyYW1ldGVyPltdLCBhc1BhcmFtZXRlcik7Ci0gICAgICByZXF1aXJlZC5hZGQobGFzdCk7Ci0gICAgICBwdXNoKG5ldyBQYXJhbWV0ZXJzKHJlcXVpcmVkKSk7Ci0gICAgfQotICB9Ci0gIGhhbmRsZU5vRm9ybWFsUGFyYW1ldGVycyh0b2spIHsKLSAgICBwdXNoKG5ldyBQYXJhbWV0ZXJzKFtdKSk7Ci0gIH0KLQotICBlbmRVbm5hbWVkRnVuY3Rpb24odCkgewotICAgIFN0YXRlbWVudCBib2R5ID0gcG9wKCk7Ci0gICAgUGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgRnVuY3Rpb25FeHByZXNzaW9uKHBhcmFtZXRlcnMsIGJvZHkpKTsKLSAgfQotCi0gIGhhbmRsZU5vVHlwZShUb2tlbiB0b2tlbikgewotICAgIHB1c2gobnVsbCk7Ci0gIH0KLQotICBlbmRSZXR1cm5TdGF0ZW1lbnQoYm9vbCBoYXNFeHByZXNzaW9uLCBiZWdpbiwgZW5kKSB7Ci0gICAgLy8gVGhpcyBpcyBhbHNvIGNhbGxlZCBmb3IgZnVuY3Rpb25zIHdob3NlIGJvZHkgaXMgIj0+IGV4cHJlc3Npb24iCi0gICAgaWYgKGhhc0V4cHJlc3Npb24pIHsKLSAgICAgIHB1c2gobmV3IFJldHVybihwb3AoKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICBwdXNoKG5ldyBSZXR1cm4oKSk7Ci0gICAgfQotICB9Ci0KLSAgZW5kRXhwcmVzc2lvblN0YXRlbWVudChUb2tlbiB0b2tlbikgewotICAgIHB1c2gobmV3IEV4cHJlc3Npb25TdGF0ZW1lbnQocG9wKCkpKTsKLSAgfQotCi0gIGVuZERvV2hpbGVTdGF0ZW1lbnQoVG9rZW4gZG9LZXl3b3JkLCBUb2tlbiB3aGlsZUtleXdvcmQsIFRva2VuIGVuZCkgewotICAgIEV4cHJlc3Npb24gY29uZGl0aW9uID0gcG9wKCk7Ci0gICAgU3RhdGVtZW50IGJvZHkgPSBwb3AoKTsKLSAgICBwdXNoKG5ldyBEb1doaWxlKGJvZHksIGNvbmRpdGlvbikpOwotICB9Ci0KLSAgZW5kV2hpbGVTdGF0ZW1lbnQoVG9rZW4gd2hpbGVLZXl3b3JkLCBUb2tlbiBlbmQpIHsKLSAgICBTdGF0ZW1lbnQgYm9keSA9IHBvcCgpOwotICAgIEV4cHJlc3Npb24gY29uZGl0aW9uID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgV2hpbGUoY29uZGl0aW9uLCBib2R5KSk7Ci0gIH0KLQotICBlbmRCbG9jayhpbnQgY291bnQsIFRva2VuIGJlZ2luLCBUb2tlbiBlbmQpIHsKLSAgICBwdXNoKG5ldyBCbG9jayhwb3BMaXN0KGNvdW50LCA8U3RhdGVtZW50PltdKSkpOwotICB9Ci0KLSAgZW5kUmV0aHJvd1N0YXRlbWVudChUb2tlbiB0aHJvd1Rva2VuLCBUb2tlbiBlbmRUb2tlbikgewotICAgIHB1c2gobmV3IFJldGhyb3coKSk7Ci0gIH0KLQotICBlbmRUcnlTdGF0ZW1lbnQoaW50IGNhdGNoQ291bnQsIFRva2VuIHRyeUtleXdvcmQsIFRva2VuIGZpbmFsbHlLZXl3b3JkKSB7Ci0gICAgU3RhdGVtZW50IGZpbmFsbHlCbG9jayA9IG51bGw7Ci0gICAgaWYgKGZpbmFsbHlLZXl3b3JkICE9IG51bGwpIHsKLSAgICAgIGZpbmFsbHlCbG9jayA9IHBvcCgpOwotICAgIH0KLSAgICBMaXN0PENhdGNoQmxvY2s+IGNhdGNoQmxvY2tzID0gcG9wTGlzdChjYXRjaENvdW50LCA8Q2F0Y2hCbG9jaz5bXSk7Ci0gICAgU3RhdGVtZW50IHRyeUJsb2NrID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgVHJ5KHRyeUJsb2NrLCBjYXRjaEJsb2NrcywgZmluYWxseUJsb2NrKSk7Ci0gIH0KLQotICB2b2lkIGhhbmRsZUNhdGNoQmxvY2soVG9rZW4gb25LZXl3b3JkLCBUb2tlbiBjYXRjaEtleXdvcmQpIHsKLSAgICBTdGF0ZW1lbnQgYmxvY2sgPSBwb3AoKTsKLSAgICBTdHJpbmcgZXhjZXB0aW9uVmFyID0gbnVsbDsKLSAgICBTdHJpbmcgc3RhY2tWYXIgPSBudWxsOwotICAgIGlmIChjYXRjaEtleXdvcmQgIT0gbnVsbCkgewotICAgICAgUGFyYW1ldGVycyBwYXJhbXMgPSBwb3AoKTsKLSAgICAgIGV4Y2VwdGlvblZhciA9IHBhcmFtcy5yZXF1aXJlZFBhcmFtZXRlcnNbMF0ubmFtZTsKLSAgICAgIGlmIChwYXJhbXMucmVxdWlyZWRQYXJhbWV0ZXJzLmxlbmd0aCA+IDEpIHsKLSAgICAgICAgc3RhY2tWYXIgPSBwYXJhbXMucmVxdWlyZWRQYXJhbWV0ZXJzWzFdLm5hbWU7Ci0gICAgICB9Ci0gICAgfQotICAgIFR5cGVBbm5vdGF0aW9uIHR5cGUgPSBvbktleXdvcmQgPT0gbnVsbCA/IG51bGwgOiBwb3AoKTsKLSAgICBwdXNoKG5ldyBDYXRjaEJsb2NrKGJsb2NrLAotICAgICAgb25UeXBlOiB0eXBlLAotICAgICAgZXhjZXB0aW9uVmFyOiBleGNlcHRpb25WYXIsCi0gICAgICBzdGFja1Zhcjogc3RhY2tWYXIKLSAgICApKTsKLSAgfQotCi0gIGVuZFN3aXRjaFN0YXRlbWVudChUb2tlbiBzd2l0Y2hLZXl3b3JkLCBUb2tlbiBlbmQpIHsKLSAgICBMaXN0PFN3aXRjaENhc2U+IGNhc2VzID0gcG9wKCk7Ci0gICAgRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgU3dpdGNoKGV4cHJlc3Npb24sIGNhc2VzKSk7Ci0gIH0KLQotICBlbmRTd2l0Y2hCbG9jayhpbnQgY2FzZUNvdW50LCBUb2tlbiBiZWdpbiwgVG9rZW4gZW5kKSB7Ci0gICAgcHVzaChwb3BMaXN0KGNhc2VDb3VudCwgPFN3aXRjaENhc2U+W10pKTsKLSAgfQotCi0gIGhhbmRsZVN3aXRjaENhc2UoaW50IGxhYmVsQ291bnQsIGludCBjYXNlQ291bnQsIFRva2VuIGRlZmF1bHRLZXl3b3JkLAotICAgICAgICAgICAgICAgICAgIGludCBzdGF0ZW1lbnRDb3VudCwgVG9rZW4gZmlyc3QsIFRva2VuIGVuZCkgewotICAgIExpc3Q8U3RhdGVtZW50PiBzdGF0ZW1lbnRzID0gcG9wTGlzdChzdGF0ZW1lbnRDb3VudCwgPFN0YXRlbWVudD5bXSk7Ci0gICAgTGlzdDxFeHByZXNzaW9uPiBjYXNlcyA9IHBvcExpc3QoY2FzZUNvdW50LCA8RXhwcmVzc2lvbj5bXSk7Ci0gICAgaWYgKGRlZmF1bHRLZXl3b3JkICE9IG51bGwpIHsKLSAgICAgIGNhc2VzID0gbnVsbDsKLSAgICB9Ci0gICAgcHVzaChuZXcgU3dpdGNoQ2FzZShjYXNlcywgc3RhdGVtZW50cykpOwotICB9Ci0KLSAgaGFuZGxlQ2FzZU1hdGNoKFRva2VuIGNhc2VLZXl3b3JkLCBUb2tlbiBjb2xvbikgewotICAgIC8vIGRvIG5vdGhpbmcsIGxlYXZlIGNhc2UgZXhwcmVzc2lvbiBvbiBzdGFjawotICB9Ci0KLSAgaGFuZGxlQnJlYWtTdGF0ZW1lbnQoYm9vbCBoYXNUYXJnZXQsIFRva2VuIGJyZWFrS2V5d29yZCwgVG9rZW4gZW5kKSB7Ci0gICAgU3RyaW5nIHRhcmdldCA9IGhhc1RhcmdldCA/IHBvcChhc05hbWUpIDogbnVsbDsKLSAgICBwdXNoKG5ldyBCcmVhayh0YXJnZXQpKTsKLSAgfQotCi0gIGhhbmRsZUNvbnRpbnVlU3RhdGVtZW50KGJvb2wgaGFzVGFyZ2V0LCBUb2tlbiBjb250aW51ZUtleXdvcmQsIFRva2VuIGVuZCkgewotICAgIFN0cmluZyB0YXJnZXQgPSBoYXNUYXJnZXQgPyBwb3AoYXNOYW1lKSA6IG51bGw7Ci0gICAgcHVzaChuZXcgQ29udGludWUodGFyZ2V0KSk7Ci0gIH0KLQotICBoYW5kbGVFbXB0eVN0YXRlbWVudChUb2tlbiB0b2tlbikgewotICAgIHB1c2gobmV3IEVtcHR5U3RhdGVtZW50KCkpOwotICB9Ci0KLQotICBWYXJpYWJsZURlY2xhcmF0aW9uIGFzVmFyaWFibGVEZWNsYXJhdGlvbih4KSB7Ci0gICAgaWYgKHggaXMgVmFyaWFibGVEZWNsYXJhdGlvbikKLSAgICAgIHJldHVybiB4OwotICAgIGlmICh4IGlzIElkZW50aWZpZXIpCi0gICAgICByZXR1cm4gbmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oeC5uYW1lKTsKLSAgICB0aHJvdyAiTm90IGEgdmFyaWFibGUgZGVmaW5pdGlvbjogJHt4LnJ1bnRpbWVUeXBlfSI7Ci0gIH0KLQotICBlbmRWYXJpYWJsZXNEZWNsYXJhdGlvbihpbnQgY291bnQsIFRva2VuIGVuZCkgewotICAgIExpc3Q8VmFyaWFibGVEZWNsYXJhdGlvbj4gdmFyaWFibGVzID0KLSAgICAgICAgcG9wTGlzdChjb3VudCwgPFZhcmlhYmxlRGVjbGFyYXRpb24+W10sIGFzVmFyaWFibGVEZWNsYXJhdGlvbik7Ci0gICAgVHlwZUFubm90YXRpb24gdHlwZSA9IHBvcFR5cGVBbm5vdGF0aW9uKCk7Ci0gICAgcHVzaChuZXcgVmFyaWFibGVEZWNsYXJhdGlvbnModmFyaWFibGVzLAotICAgICAgdHlwZTogdHlwZSwKLSAgICAgIGlzRmluYWw6IGZhbHNlLCAvLyBUT0RPKGFzZ2VyZik6IFBhcnNlIG1vZGlmaWVycy4KLSAgICAgIGlzQ29uc3Q6IGZhbHNlCi0gICAgKSk7Ci0gIH0KLQotICBlbmRJbml0aWFsaXplcihUb2tlbiBhc3NpZ24pIHsKLSAgICBFeHByZXNzaW9uIGluaXQgPSBwb3AoKTsKLSAgICBTdHJpbmcgbmFtZSA9IHBvcChhc05hbWUpOwotICAgIHB1c2gobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24obmFtZSwgaW5pdCkpOwotICB9Ci0KLSAgZW5kSWZTdGF0ZW1lbnQoVG9rZW4gaWZUb2tlbiwgVG9rZW4gZWxzZVRva2VuKSB7Ci0gICAgU3RhdGVtZW50IGVsc2VQYXJ0ID0gKGVsc2VUb2tlbiA9PSBudWxsKSA/IG51bGwgOiBwb3AoKTsKLSAgICBTdGF0ZW1lbnQgdGhlblBhcnQgPSBwb3AoKTsKLSAgICBFeHByZXNzaW9uIGNvbmRpdGlvbiA9IHBvcCgpOwotICAgIHB1c2gobmV3IElmKGNvbmRpdGlvbiwgdGhlblBhcnQsIGVsc2VQYXJ0KSk7Ci0gIH0KLQotICBlbmRGb3JTdGF0ZW1lbnQoaW50IHVwZGF0ZUNvdW50LCBUb2tlbiBiZWdpbiwgVG9rZW4gZW5kKSB7Ci0gICAgU3RhdGVtZW50IGJvZHkgPSBwb3AoKTsKLSAgICBMaXN0PEV4cHJlc3Npb24+IHVwZGF0ZXMgPSBwb3BMaXN0KHVwZGF0ZUNvdW50LCA8RXhwcmVzc2lvbj5bXSk7Ci0gICAgRXhwcmVzc2lvblN0YXRlbWVudCBjb25kaXRpb24gPSBwb3AoKTsgLy8gcGFyc2VkIGFzIGV4cHJlc3Npb24gc3RhdGVtZW50Ci0gICAgRXhwcmVzc2lvbiBleHAgPSBjb25kaXRpb24gPT0gbnVsbCA/IG51bGwgOiBjb25kaXRpb24uZXhwcmVzc2lvbjsKLSAgICBOb2RlIGluaXRpYWxpemVyID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgRm9yKGluaXRpYWxpemVyLCBleHAsIHVwZGF0ZXMsIGJvZHkpKTsKLSAgfQotCi0gIGhhbmRsZU5vRXhwcmVzc2lvbihUb2tlbiB0b2tlbikgewotICAgIHB1c2gobnVsbCk7Ci0gIH0KLQotICBlbmRGb3JJbihUb2tlbiBhd2FpdCwgVG9rZW4gYmVnaW4sIFRva2VuIGluS2V5d29yZCwgVG9rZW4gZW5kKSB7Ci0gICAgU3RhdGVtZW50IGJvZHkgPSBwb3AoKTsKLSAgICBFeHByZXNzaW9uIGV4cCA9IHBvcCgpOwotICAgIE5vZGUgZGVjbGFyZWRJZGVudGlmaWVyID0gcG9wKCk7Ci0gICAgcHVzaChuZXcgRm9ySW4oZGVjbGFyZWRJZGVudGlmaWVyLCBleHAsIGJvZHkpKTsKLSAgfQotCi0gIGhhbmRsZUFzc2VydFN0YXRlbWVudChUb2tlbiBhc3NlcnRLZXl3b3JkLAotICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW4gY29tbWFUb2tlbiwgVG9rZW4gc2VtaWNvbG9uVG9rZW4pIHsKLSAgICBFeHByZXNzaW9uIG1lc3NhZ2U7Ci0gICAgaWYgKGNvbW1hVG9rZW4gIT0gbnVsbCkgbWVzc2FnZSA9IHBvcCgpOwotICAgIEV4cHJlc3Npb24gZXhwID0gcG9wKCk7Ci0gICAgdmFyIGFyZ3VtZW50cyA9IFtleHBdOwotICAgIGlmIChtZXNzYWdlICE9IG51bGwpIGFyZ3VtZW50cy5hZGQobWVzc2FnZSk7Ci0gICAgRXhwcmVzc2lvbiBjYWxsID0gbmV3IENhbGxGdW5jdGlvbihuZXcgSWRlbnRpZmllcigiYXNzZXJ0IiksIGFyZ3VtZW50cyk7Ci0gICAgcHVzaChuZXcgRXhwcmVzc2lvblN0YXRlbWVudChjYWxsKSk7Ci0gIH0KLQotICBlbmRMYWJlbGVkU3RhdGVtZW50KGludCBsYWJlbENvdW50KSB7Ci0gICAgU3RhdGVtZW50IHN0YXRlbWVudCA9IHBvcCgpOwotICAgIGZvciAoaW50IGk9MDsgaTxsYWJlbENvdW50OyBpKyspIHsKLSAgICAgIFN0cmluZyBsYWJlbCA9IHBvcChhc05hbWUpOwotICAgICAgc3RhdGVtZW50ID0gbmV3IExhYmVsZWRTdGF0ZW1lbnQobGFiZWwsIHN0YXRlbWVudCk7Ci0gICAgfQotICAgIHB1c2goc3RhdGVtZW50KTsKLSAgfQotCi0gIGVuZEZ1bmN0aW9uRGVjbGFyYXRpb24oVG9rZW4gZW5kKSB7Ci0gICAgU3RhdGVtZW50IGJvZHkgPSBwb3AoKTsKLSAgICBQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBwb3AoKTsKLSAgICBTdHJpbmcgbmFtZSA9IHBvcChhc05hbWUpOwotICAgIFR5cGVBbm5vdGF0aW9uIHJldHVyblR5cGUgPSBwb3BUeXBlQW5ub3RhdGlvbigpOwotICAgIHB1c2gobmV3IEZ1bmN0aW9uRGVjbGFyYXRpb24obmV3IEZ1bmN0aW9uRXhwcmVzc2lvbihwYXJhbWV0ZXJzLCBib2R5LAotICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICByZXR1cm5UeXBlOiByZXR1cm5UeXBlKSkpOwotICB9Ci0KLSAgZW5kRnVuY3Rpb25Cb2R5KGludCBjb3VudCwgVG9rZW4gYmVnaW4sIFRva2VuIGVuZCkgewotICAgIHB1c2gobmV3IEJsb2NrKHBvcExpc3QoY291bnQsIDxTdGF0ZW1lbnQ+W10pKSk7Ci0gIH0KLX0KLQotY2xhc3MgRGVmYXVsdFZhbHVlIHsKLSAgZmluYWwgRXhwcmVzc2lvbiBleHByZXNzaW9uOwotICBEZWZhdWx0VmFsdWUodGhpcy5leHByZXNzaW9uKTsKLX0KLQotLy8vIENvbXBhcmVzIEFTVHMgZm9yIHN0cnVjdHVyYWwgZXF1YWxpdHkuCi12b2lkIGNoZWNrRGVlcEVxdWFsKHgsIHkpIHsKLSAgaWYgKHggaXMgTGlzdCAmJiB5IGlzIExpc3QpIHsKLSAgICBpZiAoeC5sZW5ndGggIT0geS5sZW5ndGgpCi0gICAgICByZXR1cm47Ci0gICAgZm9yICh2YXIgaT0wOyBpPHgubGVuZ3RoOyBpKyspIHsKLSAgICAgIGNoZWNrRGVlcEVxdWFsKHhbaV0sIHlbaV0pOwotICAgIH0KLSAgfQotICBlbHNlIGlmICh4IGlzIE5vZGUgJiYgeSBpcyBOb2RlKSB7Ci0gICAgaWYgKHgucnVudGltZVR5cGUgIT0geS5ydW50aW1lVHlwZSkKLSAgICAgIHRocm93IG5ldyBFcnJvcigpOwotICAgIEluc3RhbmNlTWlycm9yIHhtID0gcmVmbGVjdCh4KTsKLSAgICBJbnN0YW5jZU1pcnJvciB5bSA9IHJlZmxlY3QoeSk7Ci0gICAgZm9yIChTeW1ib2wgbmFtZSBpbiB4bS50eXBlLmluc3RhbmNlTWVtYmVycy5rZXlzKSB7Ci0gICAgICBpZiAocmVmbGVjdENsYXNzKE9iamVjdCkuZGVjbGFyYXRpb25zLmNvbnRhaW5zS2V5KG5hbWUpKSB7Ci0gICAgICAgIGNvbnRpbnVlOyAvLyBkbyBub3QgY2hlY2sgdGhpbmdzIGZyb20gT2JqZWN0LCBzdWNoIGFzIGhhc2hDb2RlCi0gICAgICB9Ci0gICAgICBNZXRob2RNaXJyb3IgbW0gPSB4bS50eXBlLmluc3RhbmNlTWVtYmVyc1tuYW1lXTsKLSAgICAgIGlmIChtbS5pc0dldHRlcikgewotICAgICAgICB2YXIgeHYgPSB4bS5nZXRGaWVsZChuYW1lKS5yZWZsZWN0ZWU7Ci0gICAgICAgIHZhciB5diA9IHltLmdldEZpZWxkKG5hbWUpLnJlZmxlY3RlZTsKLSAgICAgICAgY2hlY2tEZWVwRXF1YWwoeHYseXYpOwotICAgICAgfQotICAgIH0KLSAgfQotICBlbHNlIGlmICh4IGlzIFByaW1pdGl2ZUNvbnN0YW50VmFsdWUgJiYgeSBpcyBQcmltaXRpdmVDb25zdGFudFZhbHVlKSB7Ci0gICAgY2hlY2tEZWVwRXF1YWwoeC5wcmltaXRpdmVWYWx1ZSwgeS5wcmltaXRpdmVWYWx1ZSk7Ci0gIH0KLSAgZWxzZSBpZiAoeCBpcyBEYXJ0U3RyaW5nICYmIHkgaXMgRGFydFN0cmluZykgewotICAgIGlmICh4LnNsb3dUb1N0cmluZygpICE9IHkuc2xvd1RvU3RyaW5nKCkpIHsKLSAgICAgIHRocm93IG5ldyBFcnJvcigpOwotICAgIH0KLSAgfQotICBlbHNlIHsKLSAgICBpZiAoeCAhPSB5KSB7Ci0gICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKLSAgICB9Ci0gIH0KLX0KLQotRXhwcmVzc2lvbiBwYXJzZUV4cHJlc3Npb24oU3RyaW5nIGNvZGUpIHsKLSAgU291cmNlRmlsZSBmaWxlID0gbmV3IFN0cmluZ1NvdXJjZUZpbGUuZnJvbU5hbWUoJycsIGNvZGUpOwotICBTY2FubmVyIHNjYW4gPSBuZXcgU2Nhbm5lcihmaWxlKTsKLSAgVG9rZW4gdG9rID0gc2Nhbi50b2tlbml6ZSgpOwotICBBc3RCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgQXN0QnVpbGRlcigpOwotICBQYXJzZXIgcGFyc2VyID0gbmV3IFBhcnNlcihidWlsZGVyLCBuZXcgTW9ja1BhcnNlck9wdGlvbnMoKSk7Ci0gIHRvayA9IHBhcnNlci5wYXJzZUV4cHJlc3Npb24odG9rKTsKLSAgaWYgKGJ1aWxkZXIuc3RhY2subGVuZ3RoICE9IDEgfHwgdG9rLmtpbmQgIT0gRU9GX1RPS0VOKSB7Ci0gICAgdGhyb3cgIlBhcnNlIGVycm9yIGluICRjb2RlIjsKLSAgfQotICByZXR1cm4gYnVpbGRlci5wb3AoKTsKLX0KLVN0YXRlbWVudCBwYXJzZVN0YXRlbWVudChTdHJpbmcgY29kZSkgewotICBTb3VyY2VGaWxlIGZpbGUgPSBuZXcgU3RyaW5nU291cmNlRmlsZS5mcm9tTmFtZSgnJywgY29kZSk7Ci0gIFNjYW5uZXIgc2NhbiA9IG5ldyBTY2FubmVyKGZpbGUpOwotICBUb2tlbiB0b2sgPSBzY2FuLnRva2VuaXplKCk7Ci0gIEFzdEJ1aWxkZXIgYnVpbGRlciA9IG5ldyBBc3RCdWlsZGVyKCk7Ci0gIFBhcnNlciBwYXJzZXIgPSBuZXcgUGFyc2VyKGJ1aWxkZXIsIG5ldyBNb2NrUGFyc2VyT3B0aW9ucygpKTsKLSAgdG9rID0gcGFyc2VyLnBhcnNlU3RhdGVtZW50KHRvayk7Ci0gIGlmIChidWlsZGVyLnN0YWNrLmxlbmd0aCAhPSAxIHx8IHRvay5raW5kICE9IEVPRl9UT0tFTikgewotICAgIHRocm93ICJQYXJzZSBlcnJvciBpbiAkY29kZSI7Ci0gIH0KLSAgcmV0dXJuIGJ1aWxkZXIucG9wKCk7Ci19Ci0KLVN0cmluZyB1bnBhcnNlRXhwcmVzc2lvbihFeHByZXNzaW9uIGV4cCkgewotICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOwotICBuZXcgVW5wYXJzZXIoYnVmKS53cml0ZUV4cHJlc3Npb24oZXhwKTsKLSAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOwotfQotU3RyaW5nIHVucGFyc2VTdGF0ZW1lbnQoU3RhdGVtZW50IHN0bXQpIHsKLSAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKLSAgbmV3IFVucGFyc2VyKGJ1Zikud3JpdGVTdGF0ZW1lbnQoc3RtdCk7Ci0gIHJldHVybiBidWYudG9TdHJpbmcoKTsKLX0KLQotLy8vIENvbnZlcnRzIFtleHBdIHRvIGFuIGluc3RhbmNlIG9mIHRoZSBmcm9udGVuZCBBU1QgYW5kIHVucGFyc2VzIHRoYXQuCi1TdHJpbmcgZnJvbnRVbnBhcnNlRXhwcmVzc2lvbihFeHByZXNzaW9uIGV4cCkgewotICB0cmVlLk5vZGUgbm9kZSA9IG5ldyBUcmVlUHJpbnRlcigpLm1ha2VFeHByZXNzaW9uKGV4cCk7Ci0gIHJldHVybiB0cmVlLnVucGFyc2Uobm9kZSk7Ci19Ci0vLy8gQ29udmVydHMgW3N0bXRdIHRvIGFuIGluc3RhbmNlIG9mIHRoZSBmcm9udGVuZCBBU1QgYW5kIHVucGFyc2VzIHRoYXQuCi1TdHJpbmcgZnJvbnRVbnBhcnNlU3RhdGVtZW50KFN0YXRlbWVudCBzdG10KSB7Ci0gIHRyZWUuTm9kZSBub2RlID0gbmV3IFRyZWVQcmludGVyKCkubWFrZVN0YXRlbWVudChzdG10KTsKLSAgcmV0dXJuIHRyZWUudW5wYXJzZShub2RlKTsKLX0KLQotLy8vIFBhcnNlcyBbY29kZV0sIHVucGFyc2VzIHRoZSByZXN1bHRpbmcgQVNULCB0aGVuIHBhcnNlcyB0aGUgdW5wYXJzZWQgdGV4dC4KLS8vLyBUaGUgQVNUcyBmcm9tIHRoZSBmaXJzdCBhbmQgc2Vjb25kIHBhcnNlIGFyZSB0aGVuIGNvbXBhcmVkIGZvciBzdHJ1Y3R1cmFsCi0vLy8gZXF1YWxpdHkuIEFsdGVybmF0aXZlbHksIGlmIFtleHBlY3RlZF0gaXMgbm90IGFuIGVtcHR5IHN0cmluZywgdGhlIHNlY29uZAotLy8vIHBhcnNlIG11c3QgbWF0Y2ggdGhlIEFTVCBvZiBwYXJzaW5nIFtleHBlY3RlZF0uCi12b2lkIGNoZWNrRm4oU3RyaW5nIGNvZGUsIFN0cmluZyBleHBlY3RlZCwgRnVuY3Rpb24gcGFyc2UsIEZ1bmN0aW9uIHVucGFyc2UpIHsKLSAgdmFyIGZpcnN0UGFyc2UgPSBwYXJzZShjb2RlKTsKLSAgU3RyaW5nIHVucGFyc2VkID0gdW5wYXJzZShmaXJzdFBhcnNlKTsKLSAgdHJ5IHsKLSAgICB2YXIgc2Vjb25kUGFyc2UgPSBwYXJzZSh1bnBhcnNlZCk7Ci0gICAgdmFyIGJhc2VsaW5lID0gZXhwZWN0ZWQgPT0gIiIgPyBmaXJzdFBhcnNlIDogcGFyc2UoZXhwZWN0ZWQpOwotICAgIGNoZWNrRGVlcEVxdWFsKGJhc2VsaW5lLCBzZWNvbmRQYXJzZSk7Ci0gIH0gY2F0Y2ggKGUsIHN0YWNrKSB7Ci0gICAgRXhwZWN0LmZhaWwoJyIkY29kZSIgd2FzIHVucGFyc2VkIGFzICIkdW5wYXJzZWQiJyk7Ci0gIH0KLX0KLQotdm9pZCBjaGVja0V4cHJlc3Npb24oU3RyaW5nIGNvZGUsIFtTdHJpbmcgZXhwZWN0ZWQ9IiIsIFN0cmluZyBleHBlY3RlZDI9IiJdKSB7Ci0gIGNoZWNrRm4oY29kZSwgZXhwZWN0ZWQsIHBhcnNlRXhwcmVzc2lvbiwgdW5wYXJzZUV4cHJlc3Npb24pOwotICBjaGVja0ZuKGNvZGUsIGV4cGVjdGVkMiwgcGFyc2VFeHByZXNzaW9uLCBmcm9udFVucGFyc2VFeHByZXNzaW9uKTsKLX0KLXZvaWQgY2hlY2tTdGF0ZW1lbnQoU3RyaW5nIGNvZGUsIFtTdHJpbmcgZXhwZWN0ZWQ9IiIsIFN0cmluZyBleHBlY3RlZDI9IiJdKSB7Ci0gIGNoZWNrRm4oY29kZSwgZXhwZWN0ZWQsIHBhcnNlU3RhdGVtZW50LCB1bnBhcnNlU3RhdGVtZW50KTsKLSAgY2hlY2tGbihjb2RlLCBleHBlY3RlZDIsIHBhcnNlU3RhdGVtZW50LCBmcm9udFVucGFyc2VTdGF0ZW1lbnQpOwotfQotCi12b2lkIGRlYnVnVG9rZW5zKFN0cmluZyBjb2RlKSB7Ci0gIFNvdXJjZUZpbGUgZmlsZSA9IG5ldyBTdHJpbmdTb3VyY2VGaWxlLmZyb21OYW1lKCcnLCBjb2RlKTsKLSAgU2Nhbm5lciBzY2FuID0gbmV3IFNjYW5uZXIoZmlsZSk7Ci0gIFRva2VuIHRvayA9IHNjYW4udG9rZW5pemUoKTsKLSAgd2hpbGUgKHRvay5uZXh0ICE9IHRvaykgewotICAgIHByaW50KHRvay50b1N0cmluZygpKTsKLSAgICB0b2sgPSB0b2submV4dDsKLSAgfQotfQotCi12b2lkIG1haW4oKSB7Ci0gIC8vIFRvIGNoZWNrIGlmIHRoZXNlIHRlc3RzIGFyZSBlZmZlY3RpdmUsIG9uZSBzaG91bGQgbWFudWFsbHkgYWx0ZXIKLSAgLy8gc29tZXRoaW5nIGluIFtVbnBhcnNlcl0gYW5kIHNlZSBpZiBhIHRlc3QgZmFpbHMuCi0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArICBiICArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSArICBiKSArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArIChiICArIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArICBiICAtIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSArICBiKSAtIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArIChiICAtIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAtICBiICArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSAtICBiKSArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAtIChiICArIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAqICBiICArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSAqICBiKSArIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAqIChiICArIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArICBiICAqIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSArICBiKSAqIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSArIChiICAqIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAqICBiICAqIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSAqICBiKSAqIGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIgYSAqIChiICAqIGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCJhIGlzIFQiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJhIGlzISBUIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIShhIGlzIFQpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCJhIGlzIFQueCIpOwotICBjaGVja0V4cHJlc3Npb24oImEgaXMhIFQueCIpOwotICBjaGVja0V4cHJlc3Npb24oIiEoYSBpcyBULngpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIShhIGlzIFQpLngiKTsKLQotICBjaGVja0V4cHJlc3Npb24oImEgYXMgVC54Iik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiKGEgYXMgVCkueCIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigiYSA9PSBiIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiYSAhPSBiIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIShhID09IGIpIiwgImEgIT0gYiIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigiYSAmJiBiID8gYyA6IGQiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSAmJiBiKSA/IGMgOiBkIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiYSAmJiAoYiA/IGMgOiBkKSIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigiYSB8fCBiID8gYyA6IGQiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSB8fCBiKSA/IGMgOiBkIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiYSB8fCAoYiA/IGMgOiBkKSIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigiIGEgPyBiIDogIGMgJiYgZCIpOwotICBjaGVja0V4cHJlc3Npb24oIiBhID8gYiA6IChjICYmIGQpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiKGEgPyBiIDogIGMpICYmIGQiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIiBhID8gYiA6IGMgPSBkIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIGEgPyBiIDogKGMgPSBkKSIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigiKGEgPT0gYikgPT0gYyIpOwotICBjaGVja0V4cHJlc3Npb24oImEgPT0gKGIgPT0gYykiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIiBhIDwgIGIgID09IGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSA8ICBiKSA9PSBjIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIGEgPCAoYiAgPT0gYykiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIiBhID09ICBiICA8IGMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSA9PSAgYikgPCBjIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiIGEgPT0gKGIgIDwgYykiKTsKLQotICBjaGVja0V4cHJlc3Npb24oInguZigpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiKHguZikoKSIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigieC5mKCkoKSIpOwotICBjaGVja0V4cHJlc3Npb24oIih4LmYpKCkoKSIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigieC5mKCkuZygpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiKHguZikoKS5nKCkiKTsKLQotICBjaGVja0V4cHJlc3Npb24oInguZigpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigieC5mKDEgKyAyKSIpOwotICBjaGVja0V4cHJlc3Npb24oInguZigxICsgMiwgMyArIDQpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigieC5mKDEgKyAyLCBmb286MyArIDQpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigieC5mKDEgKyAyLCBmb286MyArIDQsIGJhcjogNSkiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJ4LmYoZm9vOjMgKyA0KSIpOwotICBjaGVja0V4cHJlc3Npb24oInguZihmb286MyArIDQsIGJhcjogNSkiKTsKLQotICBjaGVja0V4cHJlc3Npb24oInguZi5nLmgiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoeC5mKS5nLmgiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoeC5mLmcpLmgiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIiBhID0gIGIgICsgYyIpOwotICBjaGVja0V4cHJlc3Npb24oIiBhID0gKGIgICsgYykiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIoYSA9ICBiKSArIGMiKTsKLQotICBjaGVja0V4cHJlc3Npb24oImEgKyAoYiA9IGMpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCJkeCAqIGR4ICsgZHkgKiBkeSA8IHIgKiByIiwKLSAgICAgICAgICAgICAgICAgICIoKGR4ICogZHgpICsgKGR5ICogZHkpKSA8IChyICogcikiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJtaWQgPSBsZWZ0ICsgcmlnaHQgPDwgMSIsCi0gICAgICAgICAgICAgICAgICAibWlkID0gKChsZWZ0ICsgcmlnaHQpIDw8IDEpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiYSArIGIgJSBjICogLWQgXiAgZSAtIGYgIH4vIHggJiArK3kgLyB6KysgfCB3ID4gYSA/IGIgOiBjIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiYSArIGIgJSBjICogLWQgXiAoZSAtIGYpIH4vIHggJiArK3kgLyB6KysgfCB3ID4gYSA/IGIgOiBjIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCInZm9vJyIpOwotICBjaGVja0V4cHJlc3Npb24oIidmb28nICdiYXInIiwgIidmb29iYXInIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCJ7fS5sZW5ndGgiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJ7eDogMSsyfS5sZW5ndGgiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCI8U3RyaW5nLGludD57fS5sZW5ndGgiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCI8U3RyaW5nLGludD57eDogMSsyfS5sZW5ndGgiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIltdLmxlbmd0aCIpOwotICBjaGVja0V4cHJlc3Npb24oIlsxKzJdLmxlbmd0aCIpOwotICBjaGVja0V4cHJlc3Npb24oIjxudW0+W10ubGVuZ3RoIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiPG51bT5bMSsyXS5sZW5ndGgiKTsKLQotICBjaGVja0V4cHJlc3Npb24oInggKyAteSIpOwotICBjaGVja0V4cHJlc3Npb24oInggKyAtLXkiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJ4KysgKyB5Iik7Ci0gIGNoZWNrRXhwcmVzc2lvbigieCArICsreSIpOwotICBjaGVja0V4cHJlc3Npb24oIngtLSAtIHkiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJ4LS0gLSAteSIpOwotICBjaGVja0V4cHJlc3Npb24oInggLSAtLXkiKTsKLQotICBjaGVja0V4cHJlc3Npb24oInggJiYgIXkiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCIheCAmJiB5Iik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiISh4ICYmIHkpIik7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCIgc3VwZXIgKyAgMSAgKiAyIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiKHN1cGVyICsgIDEpICogMiIpOwotICBjaGVja0V4cHJlc3Npb24oIiBzdXBlciArICgxICAqIDIpIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigieCArIC1zdXBlciIpOwotICBjaGVja0V4cHJlc3Npb24oIngtLSAtIC1zdXBlciIpOwotICBjaGVja0V4cHJlc3Npb24oInggLSAtc3VwZXIiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJ4ICYmICFzdXBlciIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbigic3VwZXIuZigxLCAyKSArIDMiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJzdXBlci5mICsgMyIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbihyIidmb29cbmJhciciKTsKLSAgY2hlY2tFeHByZXNzaW9uKHIiJ2Zvb1xyXG5iYXInIik7Ci0gIGNoZWNrRXhwcmVzc2lvbihyIidmb29ccmJhciciKTsKLSAgY2hlY2tFeHByZXNzaW9uKHIiJ2Zvb1wnYmFyJyIpOwotICBjaGVja0V4cHJlc3Npb24ociIiIidmb28iYmFyJyIiIik7Ci0gIGNoZWNrRXhwcmVzc2lvbihyInInZm9vXG5iYXInIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiJyciKTsKLSAgY2hlY2tFeHByZXNzaW9uKCJyJyciKTsKLQotICB2YXIgc3EgPSAiJyI7Ci0gIHZhciBkcSA9ICciJzsKLSAgY2hlY2tFeHByZXNzaW9uKCInJGRxJGRxJyBcIiRzcSRzcVwiIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiJyRkcSRkcSRkcSRkcScgXCIkc3Ekc3Ekc3Ekc3FcIiIpOwotICBjaGVja0V4cHJlc3Npb24ociInXCRcJFwkXCRcJFwkXCRcJFwkJyIpOwotICBjaGVja0V4cHJlc3Npb24oIickZHEkZHEkZHEnICdcXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG5cXG4nIFwiJHNxJHNxJHNxXCIiKTsKLSAgY2hlY2tFeHByZXNzaW9uKCInJGRxJGRxJGRxJyAnXFxyXFxyXFxyXFxyXFxyXFxyXFxyXFxyXFxyXFxyJyBcIiRzcSRzcSRzcVwiIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigiJyRkcSRkcSRkcScgJ1xcclxcblxcclxcblxcclxcblxcclxcblxcclxcbicgXCIkc3Ekc3Ekc3FcIiIpOwotCi0gIGNoZWNrRXhwcmVzc2lvbihyIickZm9vJyIpOwotICBjaGVja0V4cHJlc3Npb24ociInJHtmb299eCciKTsKLSAgY2hlY2tFeHByZXNzaW9uKHIiJyR7Zm9vfXhcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnIik7Ci0gIGNoZWNrRXhwcmVzc2lvbihyIidhYmMnICcke2Zvb30nIHInXFxcXFxcXCciKTsKLQotICBjaGVja0V4cHJlc3Npb24ociInJHskeH0nIik7Ci0gIGNoZWNrRXhwcmVzc2lvbihyIickeyR4fXknIik7Ci0gIGNoZWNrRXhwcmVzc2lvbigibnVsbCArIG51bGwiKTsKLQotICBjaGVja0V4cHJlc3Npb24oIih4KSA9PiB4IiwKLSAgICAgICAgICAgICAgICAgICcnLAotICAgICAgICAgICAgICAgICAgJyh4KXtyZXR1cm4geDt9Jyk7Ci0gIGNoZWNrU3RhdGVtZW50KCJmbih4KSA9PiB4OyIsCi0gICAgICAgICAgICAgICAgICAnJywKLSAgICAgICAgICAgICAgICAgICdmbih4KXtyZXR1cm4geDt9Jyk7Ci0KLSAgY2hlY2tFeHByZXNzaW9uKCJ0aHJvdyB4Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCJ0aHJvdyB4OyIpOwotCi0gIGNoZWNrU3RhdGVtZW50KCJ2YXIgeCwgeSwgejsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoImZpbmFsIHgsIHksIHo7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCJkeW5hbWljIHgsIHksIHo7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCJTdHJpbmcgeCwgeSwgejsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIkxpc3Q8aW50PiB4LCB5LCB6OyIpOwotICBjaGVja1N0YXRlbWVudCgiZmluYWwgZHluYW1pYyB4LCB5LCB6OyIpOwotICBjaGVja1N0YXRlbWVudCgiZmluYWwgU3RyaW5nIHgsIHksIHo7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCJmaW5hbCBMaXN0PGludD4geCwgeSwgejsiKTsKLQotICBjaGVja1N0YXRlbWVudCgidmFyIHggPSB5LCB6OyIpOwotICBjaGVja1N0YXRlbWVudCgidmFyIHgsIHkgPSB6OyIpOwotICBjaGVja1N0YXRlbWVudCgidmFyIHggPSB5ID0gejsiKTsKLQotICAvLyBOb3RlOiBXZSBzb21ldGltZXMgaGF2ZSB0byBwYXNzIGFuIGV4cGVjdGVkIHN0cmluZyB0byBhY2NvdW50IGZvcgotICAvLyAgICAgICBibG9jayBmbGF0dGVuaW5nIHdoaWNoIGRvZXMgbm90IHByZXNlcnZlIHN0cnVjdHVyYWwgQVNUIGVxdWFsaXR5Ci0gIGNoZWNrU3RhdGVtZW50KCJpZiAoeCkgICBpZiAoeSkgZm9vKCk7ICAgZWxzZSBiYXIoKTsgICIpOwotICBjaGVja1N0YXRlbWVudCgiaWYgKHgpIHsgaWYgKHkpIGZvbygpOyB9IGVsc2UgYmFyKCk7ICAiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoImlmICh4KSB7IGlmICh5KSBmb28oKTsgICBlbHNlIGJhcigpOyB9IiwKLSAgICAgICAgICAgICAgICAgImlmICh4KSAgIGlmICh5KSBmb28oKTsgICBlbHNlIGJhcigpOyAgIik7Ci0KLSAgY2hlY2tTdGF0ZW1lbnQoImlmICh4KSB3aGlsZSAoeSkgICBpZiAoeikgZm9vKCk7ICAgZWxzZSBiYXIoKTsgICIpOwotICBjaGVja1N0YXRlbWVudCgiaWYgKHgpIHdoaWxlICh5KSB7IGlmICh6KSBmb28oKTsgfSBlbHNlIGJhcigpOyAgIik7Ci0gIGNoZWNrU3RhdGVtZW50KCJpZiAoeCkgd2hpbGUgKHkpIHsgaWYgKHopIGZvbygpOyAgIGVsc2UgYmFyKCk7IH0iLAotICAgICAgICAgICAgICAgICAiaWYgKHgpIHdoaWxlICh5KSAgIGlmICh6KSBmb28oKTsgICBlbHNlIGJhcigpOyAgIik7Ci0KLSAgY2hlY2tTdGF0ZW1lbnQoInt2YXIgeCA9IDE7IHt2YXIgeCA9IDI7fSByZXR1cm4geDt9Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCJ7dmFyIHggPSAxOyB7eCA9IDI7fSByZXR1cm4geDt9IiwKLSAgICAgICAgICAgICAgICAgInt2YXIgeCA9IDE7ICB4ID0gMjsgIHJldHVybiB4O30iLAotICAgICAgICAgICAgICAgICAie3ZhciB4ID0gMTsgIHggPSAyOyAgcmV0dXJuIHg7fSIpOwotCi0gIGNoZWNrU3RhdGVtZW50KCJpZiAoeCkge3ZhciB4ID0gMTt9Iik7Ci0KLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KS5iYXIoKTsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KS5sZW5ndGg7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCIoeydmb28nOiAxfSkubGVuZ3RoICsgMTsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KVsnZm9vJ10udG9TdHJpbmcoKTsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KVsnZm9vJ10gPSAzOyIpOwotICBjaGVja1N0YXRlbWVudCgiKHsnZm9vJzogMX1bJ2ZvbyddKCkpOyIpOwotICBjaGVja1N0YXRlbWVudCgiKHsnZm9vJzogMX1bJ2ZvbyddKSgpOyIpOwotICBjaGVja1N0YXRlbWVudCgiKHsnZm9vJzogMX0pWydmb28nXS54Kys7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCIoeydmb28nOiAxfSkgaXMgTWFwOyIpOwotICBjaGVja1N0YXRlbWVudCgiKHsnZm9vJzogMX0pIGFzIE1hcDsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KSBpcyB1dGlsLk1hcDsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIih7J2Zvbyc6IDF9KSArIDE7Iik7Ci0KLSAgY2hlY2tTdGF0ZW1lbnQoIlsxXS5iYXIoKTsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIjEuYmFyKCk7Iik7Ci0gIGNoZWNrU3RhdGVtZW50KCInZm9vJy5iYXIoKTsiKTsKLQotICBjaGVja1N0YXRlbWVudCgiZG8gd2hpbGUoeCk7IHdoaWxlICh5KTsiKTsKLSAgY2hlY2tTdGF0ZW1lbnQoIntkbzsgd2hpbGUoeCk7IHdoaWxlICh5KTt9Iik7Ci0KLSAgY2hlY2tTdGF0ZW1lbnQoJ3N3aXRjaCh4KSB7IGNhc2UgMTogY2FzZSAyOiByZXR1cm4geTsgfScpOwotICBjaGVja1N0YXRlbWVudCgnc3dpdGNoKHgpIHsgZGVmYXVsdDogcmV0dXJuIHk7IH0nKTsKLSAgY2hlY2tTdGF0ZW1lbnQoJ3N3aXRjaCh4KSB7IGNhc2UgMTogeD15OyBkZWZhdWx0OiByZXR1cm4geTsgfScpOwotICBjaGVja1N0YXRlbWVudCgnc3dpdGNoKHgpIHsgY2FzZSAxOiB4PXk7IHk9ejsgYnJlYWs7IGRlZmF1bHQ6IHJldHVybiB5OyB9Jyk7Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvZW5kMmVuZF90ZXN0LmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9lbmQyZW5kX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAxNTZjNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9lbmQyZW5kX3Rlc3QuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxNCwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotLy8vIEVuZC10by1lbmQgdGVzdCBvZiB0aGUgZGFydDJkYXJ0IGNvbXBpbGVyLgotbGlicmFyeSBkYXJ0X2JhY2tlbmQuZW5kMmVuZF90ZXN0OwotCi1pbXBvcnQgJ3BhY2thZ2U6YXN5bmNfaGVscGVyL2FzeW5jX2hlbHBlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY29tcGlsZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RhcnRfYmFja2VuZC9kYXJ0X2JhY2tlbmQuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0JzsKLQotaW1wb3J0ICcuLi8uLi8uLi8uLi9wa2cvYW5hbHl6ZXIyZGFydC90ZXN0L3Rlc3RfaGVscGVyLmRhcnQnIGhpZGUgVGVzdFNwZWM7Ci1pbXBvcnQgJy4uLy4uLy4uLy4uL3BrZy9hbmFseXplcjJkYXJ0L3Rlc3QvZW5kMmVuZF9kYXRhLmRhcnQnOwotCi1pbXBvcnQgJ3Rlc3RfaGVscGVyLmRhcnQnOwotaW1wb3J0ICcuLi9vdXRwdXRfY29sbGVjdG9yLmRhcnQnOwotCi1tYWluKExpc3Q8U3RyaW5nPiBhcmdzKSB7Ci0gIHBlcmZvcm1UZXN0cyhURVNUX0RBVEEsIGFzeW5jVGVzdGVyLCBydW5UZXN0LCBhcmdzKTsKLX0KLQotcnVuVGVzdChUZXN0U3BlYyByZXN1bHQpIHsKLSAgT3V0cHV0Q29sbGVjdG9yIG91dHB1dENvbGxlY3RvciA9IG5ldyBPdXRwdXRDb2xsZWN0b3IoKTsKLSAgYXN5bmNUZXN0KCgpID0+IGNvbXBpbGVyRm9yKHJlc3VsdC5pbnB1dCwgb3V0cHV0UHJvdmlkZXI6IG91dHB1dENvbGxlY3RvcikKLSAgICAgIC50aGVuKChDb21waWxlciBjb21waWxlcikgewotICAgIFN0cmluZyBleHBlY3RlZE91dHB1dCA9IHJlc3VsdC5vdXRwdXQudHJpbSgpOwotICAgIGNvbXBpbGVyLnBoYXNlID0gQ29tcGlsZXIuUEhBU0VfQ09NUElMSU5HOwotICAgIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICAgIGJhY2tlbmQuYXNzZW1ibGVQcm9ncmFtKCk7Ci0gICAgU3RyaW5nIG91dHB1dCA9IG91dHB1dENvbGxlY3Rvci5nZXRPdXRwdXQoJycsICdkYXJ0JykudHJpbSgpOwotICAgIEV4cGVjdC5lcXVhbHMoZXhwZWN0ZWRPdXRwdXQsIG91dHB1dCwKLSAgICAgICAgJ1xuSW5wdXQ6XG4ke3Jlc3VsdC5pbnB1dH1cbicKLSAgICAgICAgJ0V4cGVjdGVkOlxuJGV4cGVjdGVkT3V0cHV0XG4nCi0gICAgICAgICdBY3R1YWw6XG4kb3V0cHV0XG4nKTsKLSAgfSkpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L29wdF9jb25zdHByb3BfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvb3B0X2NvbnN0cHJvcF90ZXN0LmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZTM4OTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvb3B0X2NvbnN0cHJvcF90ZXN0LmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSw1MjggKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwotaW1wb3J0ICcuLi9tb2NrX2NvbXBpbGVyLmRhcnQnOwotaW1wb3J0ICdzZXhwcl91bnN0cmluZ2lmaWVyLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmFzeW5jX2hlbHBlci9hc3luY19oZWxwZXIuZGFydCc7Ci1pbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL2Nwc19pcl9ub2Rlc19zZXhwci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL29wdGltaXplcnMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2NvbnN0YW50X3N5c3RlbV9kYXJ0LmRhcnQnOwotCi0vLyBUaGUgdGVzdHMgaW4gdGhpcyBmaWxlIHRoYXQgZW5zdXJlIHRoYXQgc3BhcnNlIGNvbnN0YW50IHByb3BhZ2F0aW9uIG9uIHRoZQotLy8gQ1BTIElSIHdvcmtzIGFzIGV4cGVjdGVkLgotCi0vLyBDUDEgcmVwcmVzZW50cyB0aGUgZm9sbG93aW5nIGluY29taW5nIGRhcnQgY29kZToKLS8vCi0vLyAgaW50IG1haW4oKSB7Ci0vLyAgICBpbnQgaSA9IDE7Ci0vLyAgICBpbnQgajsKLS8vICAgIGlmIChpID09IDEpIHsKLS8vICAgICAgaiA9IDI7Ci0vLyAgICB9IGVsc2UgewotLy8gICAgICBqID0gMzsKLS8vICAgIH0KLS8vICAgIHJldHVybiBqOwotLy8gIH0KLQotU3RyaW5nIENQMV9JTiA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMSkpKQotICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAoTGV0Q29udAotICAgICAgICAoKGswICh2MikKLSAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAoKGsxICgpCi0gICAgICAgICAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MykpKSkKLSAgICAgICAgICAgICAgKGsyICgpCi0gICAgICAgICAgICAgICAgKExldFByaW0gKHY0IChDb25zdGFudCAoSW50IDMpKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2NCkpKSkpCi0gICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHYyKSBrMSBrMikpKSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2MCA9PSAodjEpIGswKSkpKSkKLSIiIjsKLVN0cmluZyBDUDFfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICgoazAgKHYyKQotICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICgoazEgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMikpKQotICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKQotICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjQgKENvbnN0YW50IChJbnQgMykpKQotICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHY0KSkpKSkKLSAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGsxICgpKSkpKQotICAgICAgICAoTGV0UHJpbSAodjUgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2NSkpKSkpKSkKLSIiIjsKLQotLy8gQ1AyIHJlcHJlc2VudHMgdGhlIGZvbGxvd2luZyBpbmNvbWluZyBkYXJ0IGNvZGU6Ci0vLwotLy8gIGludCBtYWluKCkgewotLy8gICAgaW50IGkgPSAxOwotLy8gICAgd2hpbGUgKHRydWUpIHsKLS8vICAgICAgaWYgKGZhbHNlIHx8IGZhbHNlKSB7Ci0vLyAgICAgICAgcmV0dXJuIGk7Ci0vLyAgICAgIH0KLS8vICAgICAgaWYgKHRydWUgJiYgaSA9PSAxKSB7Ci0vLyAgICAgICAgcmV0dXJuIGk7Ci0vLyAgICAgIH0KLS8vICAgIH0KLS8vICAgIHJldHVybiA0MjsKLS8vICB9Ci0KLVN0cmluZyBDUDJfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0Q29udAotICAgICAgICAoKHJlYyBrMCAoKQotICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDQyKSkpCi0gICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MSkpKSkKLSAgICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MiAoQ29uc3RhbnQgKEJvb2wgZmFsc2UpKSkKLSAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICgoazMgKHYzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs0ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrNSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs2ICh2NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs3ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGs4ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmVjIGswICgpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjUpIGs3IGs4KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrOSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY2IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazEwICh2NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTEgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjggKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazYgKHY4KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazEyICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY5IChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNiAodjkpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjcpIGsxMSBrMTIpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MCA9PSAodjYpIGsxMCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazEzICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjEwIChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGs2ICh2MTApKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2NCkgazkgazEzKSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MykgazQgazUpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTQgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxMSAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazMgKHYxMSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChrMTUgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxMiAoQ29uc3RhbnQgKEJvb2wgZmFsc2UpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGsxNiAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjEzIChDb25zdGFudCAoQm9vbCB0cnVlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMyAodjEzKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGsxNyAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjE0IChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazMgKHYxNCkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjEyKSBrMTYgazE3KSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MikgazE0IGsxNSkpKSkpKQotICAgICAgICAgICAgIChMZXRQcmltICh2MTUgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MTUpIGsyIGsxKSkpKSkKLSAgICAgIChJbnZva2VDb250aW51YXRpb24gazAgKCkpKSkpCi0iIiI7Ci1TdHJpbmcgQ1AyX09VVCA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMSkpKQotICAgIChMZXRDb250Ci0gICAgICAgICgocmVjIGswICgpCi0gICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAoKGsxICgpCi0gICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYxKSkpKQotICAgICAgICAgICAgICAgIChrMiAoKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYyIChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgKChrMyAodjMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazQgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjApKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGs1ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY0IChDb25zdGFudCAoQm9vbCB0cnVlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazYgKHY1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazcgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazggKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazcgKCkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs5ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjYgKENvbnN0YW50IChJbnQgMSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTAgKHY3KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGsxMSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2OCAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNiAodjgpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrMTIgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjkgKENvbnN0YW50IChCb29sIGZhbHNlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGs2ICh2OSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazExICgpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MTAgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazEwICh2MTApKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazEzICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjExIChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGs2ICh2MTEpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazkgKCkpKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNSAoKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKGsxNCAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjEyIChDb25zdGFudCAoQm9vbCB0cnVlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMyAodjEyKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGsxNSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjEzIChDb25zdGFudCAoQm9vbCBmYWxzZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazE2ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MTQgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGszICh2MTQpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazE3ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MTUgKENvbnN0YW50IChCb29sIGZhbHNlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMyAodjE1KSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazE3ICgpKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazE1ICgpKSkpKSkpCi0gICAgICAgICAgICAgKExldFByaW0gKHYxNiAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMiAoKSkpKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICgpKSkpKQotIiIiOwotCi0vLyBDUDMgcmVwcmVzZW50cyB0aGUgZm9sbG93aW5nIGluY29taW5nIGRhcnQgY29kZToKLS8vCi0vLyAgaW50IG1haW4oKSB7Ci0vLyAgICBpbnQgaSA9IDE7Ci0vLyAgICBpID0gZigpOwotLy8gICAgaWYgKGkgPT0gMSkgewotLy8gICAgICByZXR1cm4gNDI7Ci0vLyAgICB9Ci0vLyAgICByZXR1cm4gaTsKLS8vICB9Ci0KLVN0cmluZyBDUDNfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0Q29udAotICAgICAgICAoKGswICh2MSkKLSAgICAgICAgICAgKExldFByaW0gKHYyIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAoKGsxICh2MykKLSAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICgoazIgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKEludCA0MikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjQpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGszICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjEpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHYzKSBrMiBrMykpKSkKLSAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgPT0gKHYyKSBrMSkpKSkpCi0gICAgICAoSW52b2tlU3RhdGljIGYgKCkgazApKSkpCi0iIiI7Ci1TdHJpbmcgQ1AzX09VVCA9IENQM19JTjsKLQotLy8gQWRkaXRpb24uCi0KLVN0cmluZyBDUDRfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgMikpKQotICAgICAgKExldENvbnQKLSAgICAgICAgICAoKGswICh2MikKLSAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjIpKSkpCi0gICAgICAgIChJbnZva2VNZXRob2QgdjAgKyAodjEpIGswKSkpKSkKLSIiIjsKLVN0cmluZyBDUDRfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICAgKChrMCAodjIpCi0gICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYyKSkpKQotICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMykpKQotICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazAgKHYzKSkpKSkpKQotIiIiOwotCi0vLyBBcnJheSBhY2Nlc3Mgb3BlcmF0b3IgKG5vIG9wdGltaXphdGlvbikuCi0KLVN0cmluZyBDUDVfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgMikpKQotICAgICAgKExldENvbnQKLSAgICAgICAgICAoKGswICh2MikKLSAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjIpKSkpCi0gICAgICAgIChJbnZva2VNZXRob2QgdjAgW10gKHYxKSBrMCkpKSkpCi0iIiI7Ci1TdHJpbmcgQ1A1X09VVCA9IENQNV9JTjsKLQotLy8gRGl2aXNpb24gYnkgMC4KLQotU3RyaW5nIENQNl9JTiA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMSkpKQotICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAoTGV0Q29udAotICAgICAgICAgICgoazAgKHYyKQotICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MikpKSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2MCAvICh2MSkgazApKSkpKQotIiIiOwotU3RyaW5nIENQNl9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgKExldENvbnQKLSAgICAgICAgICAoKGswICh2MikKLSAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjIpKSkpCi0gICAgICAgIChMZXRQcmltICh2MyAoQ29uc3RhbnQgKERvdWJsZSBJbmZpbml0eSkpKQotICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazAgKHYzKSkpKSkpKQotIiIiOwotCi0vLyBDb25jYXRlbmF0ZSBzdHJpbmdzLgotCi1TdHJpbmcgQ1A3X0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKFN0cmluZyAiYiIpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChTdHJpbmcgImQiKSkpCi0gICAgICAoTGV0UHJpbSAodjIgKENvbnN0YW50IChTdHJpbmcgImEiKSkpCi0gICAgICAgIChMZXRQcmltICh2MyAoQ29uc3RhbnQgKFN0cmluZyAiYyIpKSkKLSAgICAgICAgICAoTGV0UHJpbSAodjQgKENvbnN0YW50IChTdHJpbmcgIiIpKSkKLSAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgKChrMCAodjUpCi0gICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgKChrMSAodjYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2NikpKSkKLSAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjUgbGVuZ3RoICgpIGsxKSkpKQotICAgICAgICAgICAgICAoQ29uY2F0ZW5hdGVTdHJpbmdzICh2MiB2MCB2MyB2MSB2NCkgazApKSkpKSkpKQotIiIiOwotU3RyaW5nIENQN19PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoU3RyaW5nICJiIikpKQotICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKFN0cmluZyAiZCIpKSkKLSAgICAgIChMZXRQcmltICh2MiAoQ29uc3RhbnQgKFN0cmluZyAiYSIpKSkKLSAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoU3RyaW5nICJjIikpKQotICAgICAgICAgIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKFN0cmluZyAiIikpKQotICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAoKGswICh2NSkKLSAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAoKGsxICh2NikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHY2KSkpKQotICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2NSBsZW5ndGggKCkgazEpKSkpCi0gICAgICAgICAgICAgIChMZXRQcmltICh2NyAoQ29uc3RhbnQgKFN0cmluZyAiYWJjZCIpKSkKLSAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2NykpKSkpKSkpKSkKLSIiIjsKLQotLy8gVE9ETyhqZ3J1YmVyKTogV2UgY2FuJ3QgdGVzdCBpcy1jaGVjayBvcHRpbWl6YXRpb24gYmVjYXVzZSB0aGUgdW5zdHJpbmdpZmllcgotLy8gZG9lcyBub3QgcmVjcmVhdGUgYWNjdXJhdGUgdHlwZXMgZm9yIHRoZSBUeXBlT3BlcmF0b3Igbm9kZS4KLQotLy8gU2ltcGxlIGJyYW5jaCByZW1vdmFsLgotCi1TdHJpbmcgQ1A4X0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICAgKChrMCAodjIpCi0gICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjMpKSkpCi0gICAgICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpKQotICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHYyKSBrMSBrMikpKSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2MCA9PSAodjEpIGswKSkpKSkKLSIiIjsKLVN0cmluZyBDUDhfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICAgKChrMCAodjIpCi0gICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjMpKSkpCi0gICAgICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpKQotICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMSAoKSkpKSkKLSAgICAgICAgKExldFByaW0gKHY0IChDb25zdGFudCAoQm9vbCB0cnVlKSkpCi0gICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjQpKSkpKSkpCi0iIiI7Ci0KLS8vIFdoaWxlIGxvb3AuCi0KLVN0cmluZyBDUDlfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0Q29udAotICAgICAgICAoKHJlYyBrMCAodjEpCi0gICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAoKGsxICgpCi0gICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjEpKSkKLSAgICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MiAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGszICh2MykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNCAodjQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjUgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjUpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazYgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY2IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs3ICh2NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKHY3KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MSArICh2NikgazcpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHY0KSBrNSBrNikpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazggKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2OCAoQ29uc3RhbnQgKEJvb2wgZmFsc2UpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNCAodjgpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGs5ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjkgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNCAodjkpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MykgazggazkpKSkpKQotICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgPT0gKHYyKSBrMykpKSkpCi0gICAgICAgICAgICAgKExldFByaW0gKHYxMCAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHYxMCkgazIgazEpKSkpKQotICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjApKSkpKQotIiIiOwotU3RyaW5nIENQOV9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAoTGV0Q29udAotICAgICAgICAoKHJlYyBrMCAodjEpCi0gICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAoKGsxICgpCi0gICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjEpKSkKLSAgICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MiAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGszICh2MykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs0ICh2NCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NSAoQ29uc3RhbnQgKEludCA0MikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHY1KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazYgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjYgKENvbnN0YW50IChJbnQgMSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs3ICh2NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJlYyBrMCAodjcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgKyAodjYpIGs3KSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHY0KSBrNSBrNikpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazggKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2OCAoQ29uc3RhbnQgKEJvb2wgZmFsc2UpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNCAodjgpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGs5ICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjkgKENvbnN0YW50IChCb29sIHRydWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNCAodjkpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MykgazggazkpKSkpKQotICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgPT0gKHYyKSBrMykpKSkpCi0gICAgICAgICAgICAgKExldFByaW0gKHYxMCAoQ29uc3RhbnQgKEJvb2wgdHJ1ZSkpKQotICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMiAoKSkpKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCkpKSkpCi0iIiI7Ci0KLS8vIFdoaWxlIGxvb3AsIGZyb206Ci0vLwotLy8gIGludCBtYWluKCkgewotLy8gICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKLS8vICAgICAgcHJpbnQoNDIgKyBpKTsKLS8vICAgIH0KLS8vICB9Ci0KLVN0cmluZyBDUDEwX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQKLSAgICAgICAgKChyZWMgazAgKHYxKQotICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYyIChDb25zdGFudCAoTnVsbCkpKQotICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjIpKSkpCi0gICAgICAgICAgICAgICAgKGsyICgpCi0gICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICgoazMgKHY0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs0ICh2NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjYgKENvbnN0YW50IChJbnQgMSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs1ICh2NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJlYyBrMCAodjcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgKyAodjYpIGs1KSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjQpIGs0KSkpKQotICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjMgKyAodjEpIGszKSkpKSkKLSAgICAgICAgICAgICAoTGV0UHJpbSAodjggKENvbnN0YW50IChJbnQgMikpKQotICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAoKGs2ICh2OSkKLSAgICAgICAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjkpIGsyIGsxKSkpCi0gICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgPCAodjgpIGs2KSkpKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCkpKSkpCi0iIiI7Ci1TdHJpbmcgQ1AxMF9PVVQgPSBDUDEwX0lOOwotCi0vLy8gTm9ybWFsaXplcyB3aGl0ZXNwYWNlIGJ5IHJlcGxhY2luZyBhbGwgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgYnkgYSBzaW5nbGUKLS8vLyBzcGFjZSBhbmQgdHJpbW1pbmcgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLVN0cmluZyBub3JtYWxpemVTRXhwcihTdHJpbmcgaW5wdXQpIHsKLSAgcmV0dXJuIGlucHV0LnJlcGxhY2VBbGwobmV3IFJlZ0V4cChyJ1sgXG5cdF0rJyksICcgJykudHJpbSgpOwotfQotCi0vLy8gUGFyc2VzIHRoZSBnaXZlbiBpbnB1dCBJUiwgcnVucyBhbiBvcHRpbWl6YXRpb24gcGFzcyBvdmVyIGl0LCBhbmQgY29tcGFyZXMKLS8vLyB0aGUgc3RyaW5naWZpY2F0aW9uIG9mIHRoZSByZXN1bHQgYWdhaW5zdCB0aGUgZXhwZWN0ZWQgb3V0cHV0LgotRnV0dXJlIHRlc3RDb25zdGFudFByb3BhZ2F0b3IoU3RyaW5nIGlucHV0LCBTdHJpbmcgZXhwZWN0ZWRPdXRwdXQpIHsKLSAgZmluYWwgY29tcGlsZXIgPSBuZXcgTW9ja0NvbXBpbGVyLmludGVybmFsKAotICAgICAgZW1pdEphdmFTY3JpcHQ6IGZhbHNlLAotICAgICAgZW5hYmxlTWluaWZpY2F0aW9uOiBmYWxzZSk7Ci0gIHJldHVybiBjb21waWxlci5pbml0KCkudGhlbigoXykgewotICAgIGZpbmFsIHVuc3RyaW5naWZpZXIgPSBuZXcgU0V4cHJlc3Npb25VbnN0cmluZ2lmaWVyKCk7Ci0gICAgZmluYWwgc3RyaW5naWZpZXIgICA9IG5ldyBTRXhwcmVzc2lvblN0cmluZ2lmaWVyKCk7Ci0gICAgZmluYWwgb3B0aW1pemVyICAgICA9IG5ldyBUeXBlUHJvcGFnYXRvcigKLSAgICAgICAgY29tcGlsZXIudHlwZXMsCi0gICAgICAgIERBUlRfQ09OU1RBTlRfU1lTVEVNLAotICAgICAgICBuZXcgVW5pdFR5cGVTeXN0ZW0oKSwKLSAgICAgICAgY29tcGlsZXIuaW50ZXJuYWxFcnJvcik7Ci0KLSAgICBmaW5hbCBmID0gdW5zdHJpbmdpZmllci51bnN0cmluZ2lmeShpbnB1dCk7Ci0gICAgb3B0aW1pemVyLnJld3JpdGUoZik7Ci0KLSAgICBTdHJpbmcgZXhwZWN0ZWQgPSBub3JtYWxpemVTRXhwcihleHBlY3RlZE91dHB1dCk7Ci0gICAgU3RyaW5nIGFjdHVhbCAgID0gbm9ybWFsaXplU0V4cHIoc3RyaW5naWZpZXIudmlzaXQoZikpOwotCi0gICAgRXhwZWN0LmVxdWFscyhleHBlY3RlZCwgYWN0dWFsKTsKLSAgfSk7Ci19Ci0KLXZvaWQgbWFpbigpIHsKLSAgYXN5bmNUZXN0KCgpID0+IHRlc3RDb25zdGFudFByb3BhZ2F0b3IoQ1AxX0lOLCBDUDFfT1VUKSk7Ci0gIGFzeW5jVGVzdCgoKSA9PiB0ZXN0Q29uc3RhbnRQcm9wYWdhdG9yKENQMl9JTiwgQ1AyX09VVCkpOwotICBhc3luY1Rlc3QoKCkgPT4gdGVzdENvbnN0YW50UHJvcGFnYXRvcihDUDNfSU4sIENQM19PVVQpKTsKLSAgYXN5bmNUZXN0KCgpID0+IHRlc3RDb25zdGFudFByb3BhZ2F0b3IoQ1A0X0lOLCBDUDRfT1VUKSk7Ci0gIGFzeW5jVGVzdCgoKSA9PiB0ZXN0Q29uc3RhbnRQcm9wYWdhdG9yKENQNV9JTiwgQ1A1X09VVCkpOwotICBhc3luY1Rlc3QoKCkgPT4gdGVzdENvbnN0YW50UHJvcGFnYXRvcihDUDZfSU4sIENQNl9PVVQpKTsKLSAgYXN5bmNUZXN0KCgpID0+IHRlc3RDb25zdGFudFByb3BhZ2F0b3IoQ1A3X0lOLCBDUDdfT1VUKSk7Ci0gIGFzeW5jVGVzdCgoKSA9PiB0ZXN0Q29uc3RhbnRQcm9wYWdhdG9yKENQOF9JTiwgQ1A4X09VVCkpOwotICBhc3luY1Rlc3QoKCkgPT4gdGVzdENvbnN0YW50UHJvcGFnYXRvcihDUDlfSU4sIENQOV9PVVQpKTsKLSAgYXN5bmNUZXN0KCgpID0+IHRlc3RDb25zdGFudFByb3BhZ2F0b3IoQ1AxMF9JTiwgQ1AxMF9PVVQpKTsKLX0KZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L29wdF9jeWNsaWNfcmVkdW5kYW50X3BoaV90ZXN0LmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9vcHRfY3ljbGljX3JlZHVuZGFudF9waGlfdGVzdC5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTMyODI0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L29wdF9jeWNsaWNfcmVkdW5kYW50X3BoaV90ZXN0LmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTQsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCAnb3B0X3JlZHVuZGFudF9waGlfdGVzdC5kYXJ0JzsKLQotLy8gVGhlICdjeWNsaWMgZGVwcycgSVIgdGVzdHMgcmVtb3ZhbCBvZiByZWR1bmRhbnQgcGhpcyB3aXRoIGN5Y2xpYwotLy8gZGVwZW5kZW5jaWVzLgotLy8KLS8vICB2b2lkIG1haW4oKSB7Ci0vLyAgICB2YXIgeCA9IDA7Ci0vLyAgICB2YXIgeSA9IHg7Ci0vLyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsKLS8vICAgICAgaWYgKGkgPT0gLTEpIHggPSB5OwotLy8gICAgICBpZiAoaSA9PSAtMSkgeSA9IHg7Ci0vLyAgICB9Ci0vLyAgICBwcmludCh4KTsKLS8vICAgIHByaW50KHkpOwotLy8gIH0KLQotU3RyaW5nIENZQ0xJQ19ERVBTX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKHJldHVybikgKExldFByaW0gdjAgKENvbnN0YW50IDApKQotICAoTGV0UHJpbSB2MSAoQ29uc3RhbnQgMCkpCi0gIChMZXRDb250KiAoazAgdjIgdjMgdjQpCi0gICAgKExldENvbnQgKGsxKQotICAgICAgKExldENvbnQgKGsyIHY1KQotICAgICAgICAoTGV0Q29udCAoazMgdjYpIChMZXRQcmltIHY3IChDb25zdGFudCBudWxsKSkKLSAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiB2NykpCi0gICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgdjMgazMpKQotICAgICAgKEludm9rZVN0YXRpYyBwcmludCB2MiBrMikpCi0gICAgKExldENvbnQgKGs0KSAoTGV0UHJpbSB2OCAoQ29uc3RhbnQgMSkpCi0gICAgICAoTGV0Q29udCAoazUgdjkpCi0gICAgICAgIChMZXRDb250IChrNiB2MTApCi0gICAgICAgICAgKExldENvbnQgKGs3IHYxMSkgKExldFByaW0gdjEyIChDb25zdGFudCAxKSkKLSAgICAgICAgICAgIChMZXRDb250IChrOCB2MTMpCi0gICAgICAgICAgICAgIChMZXRDb250IChrOSB2MTQpCi0gICAgICAgICAgICAgICAgKExldENvbnQgKGsxMCB2MTUpCi0gICAgICAgICAgICAgICAgICAoTGV0UHJpbSB2MTYgKENvbnN0YW50IDEpKQotICAgICAgICAgICAgICAgICAgKExldENvbnQgKGsxMSB2MTcpCi0gICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24qIGswIHYxMSB2MTUgdjE3KSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjQgKyB2MTYgazExKSkKLSAgICAgICAgICAgICAgICAoTGV0Q29udCAoazEyKSAoSW52b2tlQ29udGludWF0aW9uIGsxMCB2MTEpKQotICAgICAgICAgICAgICAgIChMZXRDb250IChrMTMpIChJbnZva2VDb250aW51YXRpb24gazEwIHYzKSkKLSAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjE0KSBrMTIgazEzKSkKLSAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2NCA9PSB2MTMgazkpKQotICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MTIgdW5hcnktIGs4KSkKLSAgICAgICAgICAoTGV0Q29udCAoazE0KSAoSW52b2tlQ29udGludWF0aW9uIGs3IHYzKSkKLSAgICAgICAgICAoTGV0Q29udCAoazE1KSAoSW52b2tlQ29udGludWF0aW9uIGs3IHYyKSkKLSAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjEwKSBrMTQgazE1KSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2NCA9PSB2OSBrNikpCi0gICAgICAoSW52b2tlTWV0aG9kIHY4IHVuYXJ5LSBrNSkpCi0gICAgKExldFByaW0gdjE4IChDb25zdGFudCAxMCkpCi0gICAgKExldENvbnQgKGsxNiB2MTkpIChCcmFuY2ggKElzVHJ1ZSB2MTkpIGs0IGsxKSkKLSAgICAoSW52b2tlTWV0aG9kIHY0IDwgdjE4IGsxNikpCi0gIChJbnZva2VDb250aW51YXRpb24gazAgdjAgdjAgdjEpKQotIiIiOwotCi1TdHJpbmcgQ1lDTElDX0RFUFNfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKHJldHVybikgKExldFByaW0gdjAgKENvbnN0YW50IDApKQotICAoTGV0UHJpbSB2MSAoQ29uc3RhbnQgMCkpCi0gIChMZXRDb250KiAoazAgdjIpCi0gICAgKExldENvbnQgKGsxKQotICAgICAgKExldENvbnQgKGsyIHYzKQotICAgICAgICAoTGV0Q29udCAoazMgdjQpIChMZXRQcmltIHY1IChDb25zdGFudCBudWxsKSkKLSAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiB2NSkpCi0gICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgdjAgazMpKQotICAgICAgKEludm9rZVN0YXRpYyBwcmludCB2MCBrMikpCi0gICAgKExldENvbnQgKGs0KSAoTGV0UHJpbSB2NiAoQ29uc3RhbnQgMSkpCi0gICAgICAoTGV0Q29udCAoazUgdjcpCi0gICAgICAgIChMZXRDb250IChrNiB2OCkKLSAgICAgICAgICAoTGV0Q29udCAoazcpIChMZXRQcmltIHY5IChDb25zdGFudCAxKSkKLSAgICAgICAgICAgIChMZXRDb250IChrOCB2MTApCi0gICAgICAgICAgICAgIChMZXRDb250IChrOSB2MTEpCi0gICAgICAgICAgICAgICAgKExldENvbnQgKGsxMCkKLSAgICAgICAgICAgICAgICAgIChMZXRQcmltIHYxMiAoQ29uc3RhbnQgMSkpCi0gICAgICAgICAgICAgICAgICAoTGV0Q29udCAoazExIHYxMykKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiogazAgdjEzKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjIgKyB2MTIgazExKSkKLSAgICAgICAgICAgICAgICAoTGV0Q29udCAoazEyKSAoSW52b2tlQ29udGludWF0aW9uIGsxMCkpCi0gICAgICAgICAgICAgICAgKExldENvbnQgKGsxMykgKEludm9rZUNvbnRpbnVhdGlvbiBrMTApKQotICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MTEpIGsxMiBrMTMpKQotICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYyID09IHYxMCBrOSkpCi0gICAgICAgICAgICAoSW52b2tlTWV0aG9kIHY5IHVuYXJ5LSBrOCkpCi0gICAgICAgICAgKExldENvbnQgKGsxNCkgKEludm9rZUNvbnRpbnVhdGlvbiBrNykpCi0gICAgICAgICAgKExldENvbnQgKGsxNSkgKEludm9rZUNvbnRpbnVhdGlvbiBrNykpCi0gICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHY4KSBrMTQgazE1KSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2MiA9PSB2NyBrNikpCi0gICAgICAoSW52b2tlTWV0aG9kIHY2IHVuYXJ5LSBrNSkpCi0gICAgKExldFByaW0gdjE0IChDb25zdGFudCAxMCkpCi0gICAgKExldENvbnQgKGsxNiB2MTUpIChCcmFuY2ggKElzVHJ1ZSB2MTUpIGs0IGsxKSkKLSAgICAoSW52b2tlTWV0aG9kIHYyIDwgdjE0IGsxNikpCi0gIChJbnZva2VDb250aW51YXRpb24gazAgdjEpKQotIiIiOwotCi12b2lkIG1haW4oKSB7Ci0gIHRlc3RSZWR1bmRhbnRQaGkoQ1lDTElDX0RFUFNfSU4sIENZQ0xJQ19ERVBTX09VVCk7Ci19CmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9vcHRfcmVkdW5kYW50X3BoaV90ZXN0LmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9vcHRfcmVkdW5kYW50X3BoaV90ZXN0LmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNDIyZTIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvb3B0X3JlZHVuZGFudF9waGlfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMzA5ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxNCwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0ICdzZXhwcl91bnN0cmluZ2lmaWVyLmRhcnQnOwotaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXNfc2V4cHIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9vcHRpbWl6ZXJzLmRhcnQnOwotCi0vLyBUaGUgJ3JlYWQgaW4gbG9vcCcgSVIgdGVzdHMgdGhlIG1vc3QgYmFzaWMgY2FzZSBvZiByZWR1bmRhbnQgcGhpIHJlbW92YWwKLS8vIGFuZCByZXByZXNlbnRzIHRoZSBmb2xsb3dpbmcgc291cmNlIGNvZGU6Ci0vLwotLy8gdm9pZCBtYWluKCkgewotLy8gICBpbnQgaiA9IDQyOwotLy8gICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgewotLy8gICAgIHByaW50KGoudG9TdHJpbmcoKSk7Ci0vLyAgIH0KLS8vIH0KLQotU3RyaW5nIFJFQURfSU5fTE9PUF9JTiA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgKExldENvbnQKLSAgICAgICAgICAoKHJlYyBrMCAodjIgdjMpCi0gICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjQgKENvbnN0YW50IChOdWxsKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHY0KSkpKQotICAgICAgICAgICAgICAgICAgKGsyICgpCi0gICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGszICh2NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNCAodjYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY3IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNSAodjgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKHYyIHY4KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYzICsgKHY3KSBrNSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHY1KSBrNCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYyIHRvU3RyaW5nICgpIGszKSkpKQotICAgICAgICAgICAgICAgKExldFByaW0gKHY5IChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICgoazYgKHYxMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MTApIGsyIGsxKSkpCi0gICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MyA8ICh2OSkgazYpKSkpKSkKLSAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjAgdjEpKSkpKSkKLSIiIjsKLQotU3RyaW5nIFJFQURfSU5fTE9PUF9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDQyKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDApKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICAgKChyZWMgazAgKHYyKQotICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICgoazEgKCkKLSAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoTnVsbCkpKQotICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MykpKSkKLSAgICAgICAgICAgICAgICAgIChrMiAoKQotICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgKChrMyAodjQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazQgKHY1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NiAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazUgKHY3KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmVjIGswICh2NykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MiArICh2NikgazUpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2NCkgazQpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MCB0b1N0cmluZyAoKSBrMykpKSkKLSAgICAgICAgICAgICAgIChMZXRQcmltICh2OCAoQ29uc3RhbnQgKEludCAyKSkpCi0gICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAoKGs2ICh2OSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2OSkgazIgazEpKSkKLSAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYyIDwgKHY4KSBrNikpKSkpKQotICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MSkpKSkpKQotIiIiOwotCi0vLyBUaGUgJ2lubmVyIGxvb3AnIElSIHJlcHJlc2VudHMgdGhlIGZvbGxvd2luZyBzb3VyY2UgY29kZToKLS8vCi0vLyB2b2lkIG1haW4oKSB7Ci0vLyAgIGludCBqID0gNDI7Ci0vLyAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7Ci0vLyAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAyOyBrKyspIHsKLS8vICAgICAgIHByaW50KGkudG9TdHJpbmcoKSk7Ci0vLyAgICAgfQotLy8gICB9Ci0vLyAgIHByaW50KGoudG9TdHJpbmcoKSk7Ci0vLyB9Ci0vLwotLy8gVGhpcyB0ZXN0IGNhc2UgZW5zdXJlcyB0aGF0IGl0ZXJhdGl2ZSBvcHRpbWl6YXRpb24gd29ya3M6IGZpcnN0LCB2OCBhbmQgdjkKLS8vIGFyZSByZW1vdmVkIGZyb20gazUsIGFuZCBvbmx5IHRoZW4gY2FuIGswIGJlIG9wdGltaXplZCBhcyB3ZWxsLgotCi1jb25zdCBTdHJpbmcgSU5ORVJfTE9PUF9JTiA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgNDIpKSkKLSAgICAoTGV0UHJpbSAodjEgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgKExldENvbnQKLSAgICAgICAgICAoKHJlYyBrMCAodjIgdjMpCi0gICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgKChrMiAodjQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazMgKHY1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NiAoQ29uc3RhbnQgKE51bGwpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2NikpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHY0KSBrMykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYyIHRvU3RyaW5nICgpIGsyKSkpCi0gICAgICAgICAgICAgICAgICAoazQgKCkKLSAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY3IChDb25zdGFudCAoSW50IDApKSkKLSAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKHJlYyBrNSAodjggdjkgdjEwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNiAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxMSAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs3ICh2MTIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJlYyBrMCAodjggdjEyKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjkgKyAodjExKSBrNykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoazggKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrOSAodjEzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazEwICh2MTQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MTUgKENvbnN0YW50IChJbnQgMSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazExICh2MTYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmVjIGs1ICh2OCB2OSB2MTYpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYxMCArICh2MTUpIGsxMSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MTMpIGsxMCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2OSB0b1N0cmluZyAoKSBrOSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjE3IChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTIgKHYxOCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnJhbmNoIChJc1RydWUgdjE4KSBrOCBrNikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYxMCA8ICh2MTcpIGsxMikpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNSAodjIgdjMgdjcpKSkpKSkKLSAgICAgICAgICAgICAgIChMZXRQcmltICh2MTkgKENvbnN0YW50IChJbnQgMikpKQotICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgKChrMTMgKHYyMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MjApIGs0IGsxKSkpCi0gICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MyA8ICh2MTkpIGsxMykpKSkpKQotICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCB2MSkpKSkpKQotIiIiOwotCi1jb25zdCBTdHJpbmcgSU5ORVJfTE9PUF9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDQyKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDApKSkKLSAgICAgIChMZXRDb250Ci0gICAgICAgICAgKChyZWMgazAgKHYyKQotICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICgoazEgKCkKLSAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICgoazIgKHYzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGszICh2NCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjUgKENvbnN0YW50IChOdWxsKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjUpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MykgazMpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MCB0b1N0cmluZyAoKSBrMikpKQotICAgICAgICAgICAgICAgICAgKGs0ICgpCi0gICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NiAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKChyZWMgazUgKHY3KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNiAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY4IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazcgKHY5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKHY5KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjIgKyAodjgpIGs3KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrOCAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGs5ICh2MTApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTAgKHYxMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxMiAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrMTEgKHYxMykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazUgKHYxMykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjcgKyAodjEyKSBrMTEpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjEwKSBrMTApKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjIgdG9TdHJpbmcgKCkgazkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYxNCAoQ29uc3RhbnQgKEludCAyKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoazEyICh2MTUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHYxNSkgazggazYpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2NyA8ICh2MTQpIGsxMikpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrNSAodjYpKSkpKSkKLSAgICAgICAgICAgICAgIChMZXRQcmltICh2MTYgKENvbnN0YW50IChJbnQgMikpKQotICAgICAgICAgICAgICAgICAoTGV0Q29udAotICAgICAgICAgICAgICAgICAgICAgKChrMTMgKHYxNykKLSAgICAgICAgICAgICAgICAgICAgICAgIChCcmFuY2ggKElzVHJ1ZSB2MTcpIGs0IGsxKSkpCi0gICAgICAgICAgICAgICAgICAgKEludm9rZU1ldGhvZCB2MiA8ICh2MTYpIGsxMykpKSkpKQotICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MSkpKSkpKQotIiIiOwotCi0vLyBUaGVyZSBhcmUgbm8gcmVkdW5kYW50IHBoaXMgaW4gdGhlICdiYXNpYyBsb29wJyBJUiwgYW5kIHRoaXMgdGVzdCBlbnN1cmVzCi0vLyBzaW1wbHkgdGhhdCB0aGUgb3B0aW1pemF0aW9uIGRvZXMgbm90IGFsdGVyIHRoZSBJUi4gSXQgcmVwcmVzZW50cyB0aGUKLS8vIGZvbGxvd2luZyBwcm9ncmFtOgotLy8KLS8vIHZvaWQgbWFpbigpIHsKLS8vICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKLS8vICAgICBwcmludChpLnRvU3RyaW5nKCkpOwotLy8gICB9Ci0vLyB9Ci0KLVN0cmluZyBCQVNJQ19MT09QX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQKLSAgICAgICAoKHJlYyBrMCAodjEpCi0gICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgKChrMSAoKQotICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjIgKENvbnN0YW50IChOdWxsKSkpCi0gICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYyKSkpKQotICAgICAgICAgICAgICAgKGsyICgpCi0gICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAoKGszICh2MykKLSAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNCAodjQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY1IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRDb250Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChrNSAodjYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKHY2KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYxICsgKHY1KSBrNSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYzKSBrNCkpKSkKLSAgICAgICAgICAgICAgICAgICAoSW52b2tlTWV0aG9kIHYxIHRvU3RyaW5nICgpIGszKSkpKQotICAgICAgICAgICAgKExldFByaW0gKHY3IChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgKExldENvbnQKLSAgICAgICAgICAgICAgICAgICgoazYgKHY4KQotICAgICAgICAgICAgICAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHY4KSBrMiBrMSkpKQotICAgICAgICAgICAgICAgIChJbnZva2VNZXRob2QgdjEgPCAodjcpIGs2KSkpKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCkpKSkpCi0iIiI7Ci0KLVN0cmluZyBCQVNJQ19MT09QX09VVCA9IEJBU0lDX0xPT1BfSU47Ci0KLS8vIEVuc3VyZXMgdGhhdCBwcm9wZXIgc2NvcGluZyBpcyBwcmVzZXJ2ZWQsIGkuZS4gdGhhdCB0aGUgb3B0aW1pemVkCi0vLyBjb250aW51YXRpb24gYm9keSBkb2VzIHJlZmVyZW5jZSBvdXQgb2Ygc2NvcGUgcHJpbWl0aXZlcy4KLS8vIElSIHdyaXR0ZW4gYnkgaGFuZCBzaW5jZSB0aGlzIGNhc2UgaXMgY3VycmVudGx5IG5vdCBiZWluZyBnZW5lcmF0ZWQuCi0KLVN0cmluZyBTQ09QSU5HX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRDb250Ci0gICAgICAoKGswICh2MSkKLSAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYxKSByZXR1cm4pKSkKLSAgICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgKExldFByaW0gKHYyIChDb25zdGFudCAoTnVsbCkpKQotICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCkpKSkpKQotIiIiOwotCi1TdHJpbmcgU0NPUElOR19PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDApKSkKLSAgICAoTGV0Q29udAotICAgICAgICAoKGswICgpCi0gICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYwKSByZXR1cm4pKSkKLSAgICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKE51bGwpKSkKLSAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAoKSkpKSkpCi0iIiI7Ci0KLS8vIEVuc3VyZXMgdGhhdCBjb250aW51YXRpb25zIHdoaWNoIGFyZSBuZXZlciBpbnZva2VkIGFyZSBub3Qgb3B0aW1pemVkLgotLy8gSVIgd3JpdHRlbiBieSBoYW5kLgotCi1TdHJpbmcgTkVWRVJfSU5WT0tFRF9JTiA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMCkpKQotICAgIChMZXRDb250Ci0gICAgICAgICgoazAgKHYxKQotICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MSkgcmV0dXJuKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjApKSkpKQotIiIiOwotCi1TdHJpbmcgTkVWRVJfSU5WT0tFRF9PVVQgPSBORVZFUl9JTlZPS0VEX0lOOwotCi0vLy8gTm9ybWFsaXplcyB3aGl0ZXNwYWNlIGJ5IHJlcGxhY2luZyBhbGwgd2hpdGVzcGFjZSBzZXF1ZW5jZXMgYnkgYSBzaW5nbGUKLS8vLyBzcGFjZSBhbmQgdHJpbW1pbmcgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLVN0cmluZyBub3JtYWxpemVTRXhwcihTdHJpbmcgaW5wdXQpIHsKLSAgcmV0dXJuIGlucHV0LnJlcGxhY2VBbGwobmV3IFJlZ0V4cChyJ1sgXG5cdF0rJyksICcgJykudHJpbSgpOwotfQotCi0vLy8gUGFyc2VzIHRoZSBnaXZlbiBpbnB1dCBJUiwgcnVucyBhIHJlZHVuZGFudCBwaGkgcGFzcyBvdmVyIGl0LCBhbmQgY29tcGFyZXMKLS8vLyB0aGUgc3RyaW5naWZpY2F0aW9uIG9mIHRoZSByZXN1bHQgYWdhaW5zdCB0aGUgZXhwZWN0ZWQgb3V0cHV0Lgotdm9pZCB0ZXN0UmVkdW5kYW50UGhpKFN0cmluZyBpbnB1dCwgU3RyaW5nIGV4cGVjdGVkT3V0cHV0KSB7Ci0gIGZpbmFsIHVuc3RyaW5naWZpZXIgPSBuZXcgU0V4cHJlc3Npb25VbnN0cmluZ2lmaWVyKCk7Ci0gIGZpbmFsIHN0cmluZ2lmaWVyICAgPSBuZXcgU0V4cHJlc3Npb25TdHJpbmdpZmllcigpOwotICBmaW5hbCBvcHRpbWl6ZXIgICAgID0gbmV3IFJlZHVuZGFudFBoaUVsaW1pbmF0b3IoKTsKLQotICBGdW5jdGlvbkRlZmluaXRpb24gZiA9IHVuc3RyaW5naWZpZXIudW5zdHJpbmdpZnkoaW5wdXQpOwotICBvcHRpbWl6ZXIucmV3cml0ZShmKTsKLQotICBTdHJpbmcgZXhwZWN0ZWQgPSBub3JtYWxpemVTRXhwcihleHBlY3RlZE91dHB1dCk7Ci0gIFN0cmluZyBhY3R1YWwgICA9IG5vcm1hbGl6ZVNFeHByKHN0cmluZ2lmaWVyLnZpc2l0KGYpKTsKLQotICBFeHBlY3QuZXF1YWxzKGV4cGVjdGVkLCBhY3R1YWwsICJBY3R1YWw6XG4kYWN0dWFsIik7Ci19Ci0KLXZvaWQgbWFpbigpIHsKLSAgdGVzdFJlZHVuZGFudFBoaShSRUFEX0lOX0xPT1BfSU4sIFJFQURfSU5fTE9PUF9PVVQpOwotICB0ZXN0UmVkdW5kYW50UGhpKElOTkVSX0xPT1BfSU4sIElOTkVSX0xPT1BfT1VUKTsKLSAgdGVzdFJlZHVuZGFudFBoaShCQVNJQ19MT09QX0lOLCBCQVNJQ19MT09QX09VVCk7Ci0gIHRlc3RSZWR1bmRhbnRQaGkoU0NPUElOR19JTiwgU0NPUElOR19PVVQpOwotICB0ZXN0UmVkdW5kYW50UGhpKE5FVkVSX0lOVk9LRURfSU4sIE5FVkVSX0lOVk9LRURfT1VUKTsKLX0KZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L29wdF9zaHJpbmtpbmdfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvb3B0X3Nocmlua2luZ190ZXN0LmRhcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNmE2Y2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvb3B0X3Nocmlua2luZ190ZXN0LmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzMzEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgJ3NleHByX3Vuc3RyaW5naWZpZXIuZGFydCc7Ci1pbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL2Nwc19pcl9ub2Rlcy5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL2Nwc19pcl9ub2Rlc19zZXhwci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL29wdGltaXplcnMuZGFydCc7Ci0KLS8vIFRoZSB0ZXN0cyBpbiB0aGlzIGZpbGUgdGhhdCBlbnN1cmUgc2hyaW5raW5nIHJlZHVjdGlvbnMgd29yayBhcyBleHBlY3RlZC4KLS8vIFJlZHVjdGlvbnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgbmFtZXMgYXJlIHRha2VuIGZyb20KLS8vICdDb21waWxpbmcgd2l0aCBDb250aW51YXRpb25zLCBDb250aW51ZWQnIGJ5IEFuZHJldyBLZW5uZWR5LgotCi0vLyBCYXNpYyBkZWFkLXZhbDogbGV0cHJpbSB4ID0gViBpbiBLIC0+IEsgKHggbm90IGZyZWUgaW4gSykuCi0vLwotLy8gIGludCBtYWluKCkgewotLy8gICAgaW50IGkgPSA0MjsKLS8vICAgIHJldHVybiAwOwotLy8gIH0KLQotU3RyaW5nIERFQURfVkFMX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCA0MikpKQotICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjEpKSkpKQotIiIiOwotU3RyaW5nIERFQURfVkFMX09VVCA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMCkpKQotICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MCkpKSkKLSIiIjsKLQotLy8gSXRlcmF0aXZlIGRlYWQtdmFsLiBObyBvcHRpbWl6YXRpb25zIHBvc3NpYmxlIHNpbmNlIHRoZSBjb250aW51YXRpb24gdG8KLS8vIEludm9rZU1ldGhvZCBtdXN0IGhhdmUgb25lIGFyZ3VtZW50LCBldmVuIGlmIGl0IGlzIHVudXNlZC4KLS8vCi0vLyAgaW50IG1haW4oKSB7Ci0vLyAgICBpbnQgaSA9IDQyOwotLy8gICAgaW50IGogPSBpICsgMTsKLS8vICAgIHJldHVybiAwOwotLy8gIH0KLQotU3RyaW5nIElURVJBVElWRV9ERUFEX1ZBTDFfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDQyKSkpCi0gICAgKExldFByaW0gKHYxIChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgIChMZXRDb250ICgoazAgKHYyKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoSW50IDApKSkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKSkKLSAgICAgICAgKEludm9rZU1ldGhvZCB2MCArICh2MSkgazApKSkpKQotIiIiOwotU3RyaW5nIElURVJBVElWRV9ERUFEX1ZBTDFfT1VUID0gSVRFUkFUSVZFX0RFQURfVkFMMV9JTjsKLQotLy8gSXRlcmF0aXZlIGRlYWQtdmFsLiBJUiB3cml0dGVuIGJ5IGhhbmQuCi0KLVN0cmluZyBJVEVSQVRJVkVfREVBRF9WQUwyX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCA0MikpKQotICAgIChMZXRQcmltICh2MQotICAgICAgICAoQ3JlYXRlRnVuY3Rpb24KLSAgICAgICAgICAoRnVuY3Rpb25EZWZpbml0aW9uIGYgKCkgKGkpIHJldHVybgotICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpKSkKLSAgICAgIChMZXRQcmltICh2MiAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MikpKSkpKQotIiIiOwotU3RyaW5nIElURVJBVElWRV9ERUFEX1ZBTDJfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpKQotIiIiOwotCi0vLyBCYXNpYyBkZWFkLWNvbnQ6IGxldGNvbnQgayB4ID0gTCBpbiBLIC0+IEsgKGsgbm90IGZyZWUgaW4gSykuCi0vLyBJUiB3cml0dGVuIGJ5IGhhbmQuCi0KLVN0cmluZyBERUFEX0NPTlRfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHY0IChDb25zdGFudCAoSW50IDApKSkKLSAgICAoTGV0Q29udCAoKGswICh2MCkKLSAgICAgICAgICAgICAgICAoSW52b2tlQ29uc3RydWN0b3IgTGlzdCAoKSByZXR1cm4pKSkKLSAgICAgIChMZXRDb250ICgoazEgKHYxKQotICAgICAgICAgICAgICAgICAgKExldENvbnQgKChrMiAodjIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjMpKSkpKQotICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2NCkgazIpKSkpCi0gICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHY0KSBrMSkpKSkpCi0iIiI7Ci1TdHJpbmcgREVBRF9DT05UX09VVCA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICgpIHJldHVybgotICAoTGV0UHJpbSAodjAgKENvbnN0YW50IChJbnQgMCkpKQotICAgIChMZXRDb250ICgoazAgKHYxKQotICAgICAgICAgICAgICAgIChMZXRDb250ICgoazEgKHYyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MyAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJldHVybiAodjMpKSkpKQotICAgICAgICAgICAgICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjApIGsxKSkpKQotICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjApIGswKSkpKQotIiIiOwotCi0vLyBJdGVyYXRpdmUgZGVhZC1jb250LiBJUiB3cml0dGVuIGJ5IGhhbmQuCi0KLVN0cmluZyBJVEVSQVRJVkVfREVBRF9DT05UX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQgKChrMCAodjApCi0gICAgICAgICAgICAgICAgKEludm9rZUNvbnN0cnVjdG9yIExpc3QgKCkgcmV0dXJuKSkpCi0gICAgICAoTGV0Q29udCAoKGszICh2NSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazAgKHY1KSkpKQotICAgICAgICAoTGV0Q29udCAoKGsxICh2MSkKLSAgICAgICAgICAgICAgICAgICAgKExldENvbnQgKChrMiAodjIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MyAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2NCkgazIpKSkpCi0gICAgICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjQpIGsxKSkpKSkpCi0iIiI7Ci1TdHJpbmcgSVRFUkFUSVZFX0RFQURfQ09OVF9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDApKSkKLSAgICAoTGV0Q29udCAoKGswICh2MSkKLSAgICAgICAgICAgICAgICAoTGV0Q29udCAoKGsxICh2MikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYwKSBrMSkpKSkKLSAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYwKSBrMCkpKSkKLSIiIjsKLQotLy8gQmV0YS1jb250LWxpbjogbGV0Y29udCBrIHggPSBLIGluIENbayB5XSAtPiBDW0tbeS94XV0gKGsgbm90IGZyZWUgaW4gQykuCi0vLyBJUiB3cml0dGVuIGJ5IGhhbmQuCi0KLVN0cmluZyBCRVRBX0NPTlRfTElOX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRDb250ICgoazAgKHYwKQotICAgICAgICAgICAgICAoTGV0Q29udCAoKGsxICh2MSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQgKChrMiAodjIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2MyAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MCkgazIpKSkpCi0gICAgICAgICAgICAgICAgKEludm9rZVN0YXRpYyBwcmludCAodjApIGsxKSkpKQotICAgIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2NCkpKSkpCi0iIiI7Ci1TdHJpbmcgQkVUQV9DT05UX0xJTl9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoKSByZXR1cm4KLSAgKExldFByaW0gKHYwIChDb25zdGFudCAoSW50IDApKSkKLSAgICAoTGV0Q29udCAoKGswICh2MSkKLSAgICAgICAgICAgICAgICAoTGV0Q29udCAoKGsxICh2MikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYzKSkpKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYwKSBrMSkpKSkKLSAgICAgIChJbnZva2VTdGF0aWMgcHJpbnQgKHYwKSBrMCkpKSkKLSIiIjsKLQotLy8gQmV0YS1jb250LWxpbiB3aXRoIHJlY3Vyc2l2ZSBjb250aW51YXRpb24uIElSIHdyaXR0ZW4gYnkgaGFuZC4KLQotU3RyaW5nIFJFQ1VSU0lWRV9CRVRBX0NPTlRfTElOX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRDb250ICgocmVjIGswICh2MCkKLSAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZWMgazAgKHYwKSkpKQotICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MSkpKSkpCi0iIiI7Ci1TdHJpbmcgUkVDVVJTSVZFX0JFVEFfQ09OVF9MSU5fT1VUID0gUkVDVVJTSVZFX0JFVEFfQ09OVF9MSU5fSU47Ci0KLS8vIEJldGEtY29udC1saW4gdXNlZCBpbnNpZGUgYm9keS4gSVIgd3JpdHRlbiBieSBoYW5kLgotCi1TdHJpbmcgVVNFRF9CRVRBX0NPTlRfTElOX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQgKChrMCAodjEpCi0gICAgICAgICAgICAgICAgKExldENvbnQgKChrMSAodjIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldENvbnQgKChrMiAodjMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY0IChDb25zdGFudCAoSW50IDApKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2NCkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MSkgazIpKSkpCi0gICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MSkgazEpKSkpCi0gICAgICAoTGV0UHJpbSAodjUKLSAgICAgICAgICAgICAgICAgKENyZWF0ZUZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgKEZ1bmN0aW9uRGVmaW5pdGlvbiBmICgpICgpIHJldHVybgotICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYxKSkpKSkKLSAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjApKSkpKSkKLSIiIjsKLVN0cmluZyBVU0VEX0JFVEFfQ09OVF9MSU5fT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQgKChrMCAodjEpCi0gICAgICAgICAgICAgICAgKExldENvbnQgKChrMSAodjIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoSW50IDApKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MykpKSkpCi0gICAgICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MCkgazEpKSkpCi0gICAgICAoSW52b2tlU3RhdGljIHByaW50ICh2MCkgazApKSkpCi0iIiI7Ci0KLS8vIEV0YS1jb250OiBsZXRjb250IGsgeCA9IGogeCBpbiBLIC0+IEtbai9rXS4KLS8vIElSIHdyaXR0ZW4gYnkgaGFuZC4KLS8vCi0vLyBUaGlzIHRlc3QgaXMgaW5jb3JyZWN0bHkgbmFtZWQ6IHdpdGggdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIHRoZXJlIGlzIG5vCi0vLyBldGEgcmVkdWN0aW9uLiAgSW5zdGVhZCwgZGVhZC1wYXJhbWV0ZXIsIGJldGEtY29udC1saW4sIGFuZCBkZWFkLXZhbAotLy8gcmVkdWN0aW9ucyBhcmUgcGVyZm9ybWVkLCB3aGljaCBpbiB0dXJuIGNyZWF0ZXMgYSBzZWNvbmQgYmV0YS1jb250LWxpbgotLy8gcmVkdWN0aW9uLgotLy8KLS8vIFRPRE8oa21pbGxpa2luKTogVG8gdGVzdCBjb250aW51YXRpb24gZXRhIHJlZHVjdGlvbiwgdXNlIGV0YSByZWRleGVzIHRoYXQgYXJlCi0vLyBub3Qgb3ZlcmxhcHBpbmcgYmV0YSByZWRleGVzLgotU3RyaW5nIEVUQV9DT05UX0lOID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKExldENvbnQgKChyZWMgazAgKHYxKQotICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gcmV0dXJuICh2MCkpKSkKLSAgICAgIChMZXRDb250ICgoazEgKHYyKQotICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjIpKSkpCi0gICAgICAgIChMZXRQcmltICh2MwotICAgICAgICAgICAgICAgICAgIChDcmVhdGVGdW5jdGlvbgotICAgICAgICAgICAgICAgICAgICAgKEZ1bmN0aW9uRGVmaW5pdGlvbiBmICgpICgpIHJldHVybgotICAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MCkpKSkpCi0gICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMSAodjApKSkpKSkpCi0iIiI7Ci1TdHJpbmcgRVRBX0NPTlRfT1VUID0gIiIiCi0oRnVuY3Rpb25EZWZpbml0aW9uIG1haW4gKCkgKCkgcmV0dXJuCi0gIChMZXRQcmltICh2MCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgKEludm9rZUNvbnRpbnVhdGlvbiByZXR1cm4gKHYwKSkpKQotIiIiOwotCi0vLyBEZWFkLXBhcmFtZXRlcjoKLS8vIGxldGNvbnQgayB4ID0gRTAgaW4gRTEgLT4gbGV0Y29udCBrICgpID0gRTAgaW4gRTEsCi0vLyAgICBpZiB4IGRvZXMgbm90IG9jY3VyIGZyZWUgaW4gRTAuCi0KLS8vIFBhcmFtZXRlciB2MSBpcyB1bnVzZWQgaW4gazAuCi1TdHJpbmcgREVBRF9QQVJBTUVURVJfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoeCkgcmV0dXJuCi0gIChMZXRDb250ICgoazAgKHYwIHYxIHYyKQotICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIGZvbyAodjAgdjIpIHJldHVybikpKQotICAgIChMZXRDb250ICgoazEgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjMgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY0IChDb25zdGFudCAoSW50IDEpKSkKLSAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY1IChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MyB2NCB2NSkpKSkpKQotICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjYgKENvbnN0YW50IChJbnQgMykpKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY3IChDb25zdGFudCAoSW50IDQpKSkKLSAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY4IChDb25zdGFudCAoSW50IDUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2NiB2NyB2OCkpKSkpKSkKLSAgICAgIChCcmFuY2ggKElzVHJ1ZSB4KSBrMSBrMikpKSkKLSIiIjsKLVN0cmluZyBERUFEX1BBUkFNRVRFUl9PVVQgPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoeCkgcmV0dXJuCi0gIChMZXRDb250ICgoazAgKHYwIHYxKQotICAgICAgICAgICAgICAoSW52b2tlU3RhdGljIGZvbyAodjAgdjEpIHJldHVybikpKQotICAgIChMZXRDb250ICgoazEgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjIgKENvbnN0YW50IChJbnQgMCkpKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHYzIChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjIgdjMpKSkpKQotICAgICAgICAgICAgICAoazIgKCkKLSAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjQgKENvbnN0YW50IChJbnQgMykpKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY1IChDb25zdGFudCAoSW50IDUpKSkKLSAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBrMCAodjQgdjUpKSkpKSkKLSAgICAgIChCcmFuY2ggKElzVHJ1ZSB4KSBrMSBrMikpKSkKLSIiIjsKLQotLy8gQ3JlYXRlIGFuIGV0YS1jb250IHJlZGV4OgotLy8gRGVhZCBwYXJhbWV0ZXIgcmVkdWN0aW9ucyBjYW4gY3JlYXRlIGFuIGV0YS1jb250IHJlZGV4IGJ5IHJlbW92aW5nIHVudXNlZAotLy8gY29udGludWF0aW9uIHBhcmFtZXRlcnMgYW5kIHRodXMgY3JlYXRpbmcgdGhlIGV0YSByZWRleC4KLVN0cmluZyBDUkVBVEVfRVRBX0NPTlRfSU4gPSAiIiIKLShGdW5jdGlvbkRlZmluaXRpb24gbWFpbiAoKSAoeCkgcmV0dXJuCi0gIChMZXRDb250ICgocmVjIGxvb3AgKHYwKQotICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJlYyBsb29wICh2MCkpKSkKLSAgICAoTGV0Q29udCAoKGNyZWF0ZWQgKHYxIHYyIHYzKQotICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gbG9vcCAodjIpKSkpCi0gICAgICAoTGV0Q29udCAoKHRoZW4gKCkKLSAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NCAoQ29uc3RhbnQgKEludCAwKSkpCi0gICAgICAgICAgICAgICAgICAgIChMZXRQcmltICh2NSAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY2IChDb25zdGFudCAoSW50IDIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gY3JlYXRlZCAodjQgdjUgdjYpKSkpKSkKLSAgICAgICAgICAgICAgICAoZWxzZSAoKQotICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY2IChDb25zdGFudCAoSW50IDMpKSkKLSAgICAgICAgICAgICAgICAgICAgKExldFByaW0gKHY3IChDb25zdGFudCAoSW50IDQpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoTGV0UHJpbSAodjggKENvbnN0YW50IChJbnQgNSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgKEludm9rZUNvbnRpbnVhdGlvbiBjcmVhdGVkICh2NiB2NyB2OCkpKSkpKSkKLSAgICAgICAgKEJyYW5jaCAoSXNUcnVlIHgpIHRoZW4gZWxzZSkpKSkpCi0iIiI7Ci1TdHJpbmcgQ1JFQVRFX0VUQV9DT05UX09VVCA9ICIiIgotKEZ1bmN0aW9uRGVmaW5pdGlvbiBtYWluICgpICh4KSByZXR1cm4KLSAgKExldENvbnQgKChyZWMgazAgKHYwKQotICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIHJlYyBrMCAodjApKSkpCi0gICAgKExldENvbnQgKChrMSAoKQotICAgICAgICAgICAgICAgIChMZXRQcmltICh2MSAoQ29uc3RhbnQgKEludCAxKSkpCi0gICAgICAgICAgICAgICAgICAoSW52b2tlQ29udGludWF0aW9uIGswICh2MSkpKSkKLSAgICAgICAgICAgICAgKGsyICgpCi0gICAgICAgICAgICAgICAgKExldFByaW0gKHYyIChDb25zdGFudCAoSW50IDQpKSkKLSAgICAgICAgICAgICAgICAgIChJbnZva2VDb250aW51YXRpb24gazAgKHYyKSkpKSkKLSAgICAgIChCcmFuY2ggKElzVHJ1ZSB4KSBrMSBrMikpKSkKLSIiIjsKLQotCi0KLS8vIEJldGEtZnVuLWxpbiBhbmQgZXRhLWZ1biBtaWdodCBub3QgYXBwbHkgdG8gdXMsIHNpbmNlCi0vLyBhLiBpbiAoSW52b2tlTWV0aG9kIHYwIGNhbGwgazApLCB2MCBtaWdodCBjYXJyeSBzdGF0ZSwgYW5kCi0vLyBiLiB0aGVyZSBpcyBubyB3YXkgdG8gZ2VuZXJhdGUgc3RhdGljIG5lc3RlZCBmdW5jdGlvbnMgdGhhdCB3ZSBjb3VsZAotLy8gICAgdXNlIEludm9rZVN0YXRpYyBvbi4KLQotLy8vIE5vcm1hbGl6ZXMgd2hpdGVzcGFjZSBieSByZXBsYWNpbmcgYWxsIHdoaXRlc3BhY2Ugc2VxdWVuY2VzIGJ5IGEgc2luZ2xlCi0vLy8gc3BhY2UgYW5kIHRyaW1taW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi1TdHJpbmcgbm9ybWFsaXplU0V4cHIoU3RyaW5nIGlucHV0KSB7Ci0gIHJldHVybiBpbnB1dC5yZXBsYWNlQWxsKG5ldyBSZWdFeHAocidbIFxuXHRdKycpLCAnICcpLnRyaW0oKTsKLX0KLQotLy8vIFBhcnNlcyB0aGUgZ2l2ZW4gaW5wdXQgSVIsIHJ1bnMgYW4gb3B0aW1pemF0aW9uIHBhc3Mgb3ZlciBpdCwgYW5kIGNvbXBhcmVzCi0vLy8gdGhlIHN0cmluZ2lmaWNhdGlvbiBvZiB0aGUgcmVzdWx0IGFnYWluc3QgdGhlIGV4cGVjdGVkIG91dHB1dC4KLXZvaWQgdGVzdFNocmlua2luZ1JlZHVjZXIoU3RyaW5nIGlucHV0LCBTdHJpbmcgZXhwZWN0ZWRPdXRwdXQpIHsKLSAgZmluYWwgdW5zdHJpbmdpZmllciA9IG5ldyBTRXhwcmVzc2lvblVuc3RyaW5naWZpZXIoKTsKLSAgZmluYWwgc3RyaW5naWZpZXIgICA9IG5ldyBTRXhwcmVzc2lvblN0cmluZ2lmaWVyKCk7Ci0gIGZpbmFsIG9wdGltaXplciAgICAgPSBuZXcgU2hyaW5raW5nUmVkdWNlcigpOwotCi0gIEZ1bmN0aW9uRGVmaW5pdGlvbiBmID0gdW5zdHJpbmdpZmllci51bnN0cmluZ2lmeShpbnB1dCk7Ci0gIG9wdGltaXplci5yZXdyaXRlKGYpOwotCi0gIFN0cmluZyBleHBlY3RlZCA9IG5vcm1hbGl6ZVNFeHByKGV4cGVjdGVkT3V0cHV0KTsKLSAgU3RyaW5nIGFjdHVhbCA9IG5vcm1hbGl6ZVNFeHByKHN0cmluZ2lmaWVyLnZpc2l0KGYpKTsKLQotICBFeHBlY3QuZXF1YWxzKGV4cGVjdGVkLCBhY3R1YWwpOwotfQotCi12b2lkIG1haW4oKSB7Ci0gIHRlc3RTaHJpbmtpbmdSZWR1Y2VyKERFQURfVkFMX0lOLCBERUFEX1ZBTF9PVVQpOwotICB0ZXN0U2hyaW5raW5nUmVkdWNlcihJVEVSQVRJVkVfREVBRF9WQUwxX0lOLCBJVEVSQVRJVkVfREVBRF9WQUwxX09VVCk7Ci0gIHRlc3RTaHJpbmtpbmdSZWR1Y2VyKElURVJBVElWRV9ERUFEX1ZBTDJfSU4sIElURVJBVElWRV9ERUFEX1ZBTDJfT1VUKTsKLSAgdGVzdFNocmlua2luZ1JlZHVjZXIoREVBRF9DT05UX0lOLCBERUFEX0NPTlRfT1VUKTsKLSAgdGVzdFNocmlua2luZ1JlZHVjZXIoSVRFUkFUSVZFX0RFQURfQ09OVF9JTiwgSVRFUkFUSVZFX0RFQURfQ09OVF9PVVQpOwotICB0ZXN0U2hyaW5raW5nUmVkdWNlcihCRVRBX0NPTlRfTElOX0lOLCBCRVRBX0NPTlRfTElOX09VVCk7Ci0gIHRlc3RTaHJpbmtpbmdSZWR1Y2VyKFJFQ1VSU0lWRV9CRVRBX0NPTlRfTElOX0lOLCBSRUNVUlNJVkVfQkVUQV9DT05UX0xJTl9PVVQpOwotICB0ZXN0U2hyaW5raW5nUmVkdWNlcihVU0VEX0JFVEFfQ09OVF9MSU5fSU4sIFVTRURfQkVUQV9DT05UX0xJTl9PVVQpOwotICB0ZXN0U2hyaW5raW5nUmVkdWNlcihFVEFfQ09OVF9JTiwgRVRBX0NPTlRfT1VUKTsKLSAgdGVzdFNocmlua2luZ1JlZHVjZXIoREVBRF9QQVJBTUVURVJfSU4sIERFQURfUEFSQU1FVEVSX09VVCk7Ci0gIHRlc3RTaHJpbmtpbmdSZWR1Y2VyKENSRUFURV9FVEFfQ09OVF9JTiwgQ1JFQVRFX0VUQV9DT05UX09VVCk7Ci19CmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9zZXhwcjJfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvc2V4cHIyX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM4MDNiZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9zZXhwcjJfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0vLy8gVW5pdHRlc3QgdGVzdCBvZiB0aGUgQ1BTIGlyIGdlbmVyYXRlZCBieSB0aGUgZGFydDJkYXJ0IGNvbXBpbGVyLgotbGlicmFyeSBkYXJ0X2JhY2tlbmQuc2V4cHIyX3Rlc3Q7Ci0KLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY29tcGlsZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXNfc2V4cHIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCc7Ci0KLWltcG9ydCAnLi4vLi4vLi4vLi4vcGtnL2FuYWx5emVyMmRhcnQvdGVzdC90ZXN0X2hlbHBlci5kYXJ0JzsKLWltcG9ydCAnLi4vLi4vLi4vLi4vcGtnL2FuYWx5emVyMmRhcnQvdGVzdC9zZXhwcl9kYXRhLmRhcnQnOwotCi1pbXBvcnQgJ3Rlc3RfaGVscGVyLmRhcnQnOwotCi1tYWluKExpc3Q8U3RyaW5nPiBhcmdzKSB7Ci0gIHBlcmZvcm1UZXN0cyhURVNUX0RBVEEsIGFzeW5jVGVzdGVyLCBydW5UZXN0LCBhcmdzKTsKLX0KLQotcnVuVGVzdChUZXN0U3BlYyByZXN1bHQpIHsKLSAgcmV0dXJuIGNvbXBpbGVyRm9yKHJlc3VsdC5pbnB1dCkudGhlbigoQ29tcGlsZXIgY29tcGlsZXIpIHsKLSAgICB2b2lkIGNoZWNrT3V0cHV0KFN0cmluZyBlbGVtZW50TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQgZWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZE91dHB1dCkgewotICAgICAgRnVuY3Rpb25EZWZpbml0aW9uIGlyID0gY29tcGlsZXIuaXJCdWlsZGVyLmdldElyKGVsZW1lbnQpOwotICAgICAgaWYgKGV4cGVjdGVkT3V0cHV0ID09IG51bGwpIHsKLSAgICAgICAgRXhwZWN0LmlzTnVsbChpciwgIlxuSW5wdXQ6XG4ke3Jlc3VsdC5pbnB1dH1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIENQUyBJUiBleHBlY3RlZCBmb3IgJGVsZW1lbnQiKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIEV4cGVjdC5pc05vdE51bGwoaXIsICJcbklucHV0OlxuJHtyZXN1bHQuaW5wdXR9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBDUFMgSVIgZm9yICRlbGVtZW50Iik7Ci0gICAgICAgIGV4cGVjdGVkT3V0cHV0ID0gZXhwZWN0ZWRPdXRwdXQudHJpbSgpOwotICAgICAgICBTdHJpbmcgb3V0cHV0ID0gaXIuYWNjZXB0KG5ldyBTRXhwcmVzc2lvblN0cmluZ2lmaWVyKCkpLnRyaW0oKTsKLSAgICAgICAgRXhwZWN0LmVxdWFscyhleHBlY3RlZE91dHB1dCwgb3V0cHV0LAotICAgICAgICAgICAgIlxuSW5wdXQ6XG4ke3Jlc3VsdC5pbnB1dH1cbiIKLSAgICAgICAgICAgICJFeHBlY3RlZCBmb3IgJyRlbGVtZW50TmFtZSc6XG4kZXhwZWN0ZWRPdXRwdXRcbiIKLSAgICAgICAgICAgICJBY3R1YWwgZm9yICckZWxlbWVudE5hbWUnOlxuJG91dHB1dFxuIik7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlc3VsdC5vdXRwdXQgaXMgU3RyaW5nKSB7Ci0gICAgICBjaGVja091dHB1dCgnbWFpbicsIGNvbXBpbGVyLm1haW5GdW5jdGlvbiwgcmVzdWx0Lm91dHB1dCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGFzc2VydChyZXN1bHQub3V0cHV0IGlzIE1hcDxTdHJpbmcsIFN0cmluZz4pOwotICAgICAgcmVzdWx0Lm91dHB1dC5mb3JFYWNoKChTdHJpbmcgZWxlbWVudE5hbWUsIFN0cmluZyBvdXRwdXQpIHsKLSAgICAgICAgRWxlbWVudCBlbGVtZW50OwotICAgICAgICBpZiAoZWxlbWVudE5hbWUuY29udGFpbnMoJy4nKSkgewotICAgICAgICAgIENsYXNzRWxlbWVudCBjbHMgPSBjb21waWxlci5tYWluQXBwLmxvY2FsTG9va3VwKAotICAgICAgICAgICAgICBlbGVtZW50TmFtZS5zdWJzdHJpbmcoMCwgZWxlbWVudE5hbWUuaW5kZXhPZignLicpKSk7Ci0gICAgICAgICAgZWxlbWVudCA9IGNscy5sb2NhbExvb2t1cCgKLSAgICAgICAgICAgICAgZWxlbWVudE5hbWUuc3Vic3RyaW5nKGVsZW1lbnROYW1lLmluZGV4T2YoJy4nKSArIDEpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBlbGVtZW50ID0gY29tcGlsZXIubWFpbkFwcC5sb2NhbExvb2t1cChlbGVtZW50TmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgY2hlY2tPdXRwdXQoZWxlbWVudE5hbWUsIGVsZW1lbnQsIG91dHB1dCk7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L3NleHByX3Rlc3QuZGFydCBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L3NleHByX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI5M2NkYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC9zZXhwcl90ZXN0LmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDE0LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1saWJyYXJ5IGRhcnRfYmFja2VuZC5zZXhwcl90ZXN0OwotCi1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwotCi1pbXBvcnQgJ3BhY2thZ2U6YXN5bmNfaGVscGVyL2FzeW5jX2hlbHBlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY29tcGlsZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXMuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2Nwc19pci9jcHNfaXJfbm9kZXNfc2V4cHIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0JzsKLQotaW1wb3J0ICcuLi9jb21waWxlcl9oZWxwZXIuZGFydCcgaGlkZSBjb21waWxlckZvcjsKLWltcG9ydCAnc2V4cHJfdW5zdHJpbmdpZmllci5kYXJ0JzsKLWltcG9ydCAndGVzdF9oZWxwZXIuZGFydCc7Ci0KLWNvbnN0IFN0cmluZyBDT0RFID0gIiIiCi1jbGFzcyBGb28gewotICBzdGF0aWMgaW50IHggPSAxOwotICBmb28oKSA9PiA0MjsKLX0KLQotY2xhc3MgQmFyIGV4dGVuZHMgRm9vIHsKLSAgaW50IHkgPSAyOwotICBCYXIoKSB7Ci0gICAgRm9vLnggPSAyOwotICB9Ci0gIGZvbygpID0+ICB0aGlzLnkgKyBzdXBlci5mb28oKTsKLX0KLQotY2xhc3MgRm9vQmFyPFQ+IHsKLSAgYm9vbCBmb29iYXIoKSA9PiBUIGlzIGludDsKLX0KLQotbWFpbigpIHsKLSAgRm9vIGZvbzsKLSAgaWYgKGZvbyBpcyBGb28pIHsKLSAgICBwcmludCgiU3VycHJpc2UiKTsKLSAgfQotCi0gIFN0cmluZyBpbm5lcigpID0+ICJJbm5lciBmdW5jdGlvbiI7Ci0gIHByaW50KGlubmVyKCkpOwotCi0gIGludCBqID0gNDI7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7Ci0gICAgcHJpbnQoaS50b1N0cmluZygpKTsKLSAgfQotCi0gIHByaW50KEZvby54KTsKLQotICBTdHJpbmcgcmVjdXJzaXZlKGludCBoKSB7Ci0gICAgaWYgKGggPCAxKSB7Ci0gICAgICByZXR1cm4gai50b1N0cmluZygpOwotICAgIH0KLSAgICBqKys7Ci0gICAgcmV0dXJuICJoXCRce3JlY3Vyc2l2ZShoIC0gMSlcfSI7Ci0gIH0KLSAgcHJpbnQocmVjdXJzaXZlKDUpKTsKLQotICBCYXIgYmFyID0gbmV3IEJhcigpOwotICBwcmludChiYXIuZm9vKCkudG9TdHJpbmcoKSk7Ci0KLSAgYmFyID0gZm9vIGFzIEJhcjsKLSAgaWYgKGJhciA9PSBudWxsKSB7Ci0gICAgdmFyIGxpc3QgPSBbMSwgMiwgMywgNF07Ci0gICAgdmFyIG1hcCAgPSB7IDE6ICJvbmUiCi0gICAgICAgICAgICAgICAsIDI6ICJ0d28iCi0gICAgICAgICAgICAgICAsIDM6ICJ0aHJlZSIKLSAgICAgICAgICAgICAgIH07Ci0gICAgdmFyIGRvdWJsZSA9IDMuMTQ7Ci0gICAgbGlzdC5mb3JFYWNoKChpKSA9PiBwcmludChpLnRvU3RyaW5nKCkpKTsKLSAgICBwcmludCgiXCRsaXN0IFwkbWFwIFwkZG91YmxlIik7Ci0gIH0KLQotICBwcmludChuZXcgRm9vQmFyPGludD4oKS5mb29iYXIoKSk7Ci19Ci0KLSIiIjsKLQotYm9vbCBzaG91bGRPdXRwdXQoRWxlbWVudCBlbGVtZW50KSB7Ci0gIHJldHVybiAoIWVsZW1lbnQubGlicmFyeS5pc1BsYXRmb3JtTGlicmFyeSAmJgotICAgICAgICAgICFlbGVtZW50LmlzU3ludGhlc2l6ZWQgJiYKLSAgICAgICAgICBlbGVtZW50LmtpbmQgPT0gRWxlbWVudEtpbmQuRlVOQ1RJT04pOwotfQotCi0vLy8gQ29tcGlsZXMgdGhlIGdpdmVuIGRhcnQgY29kZSAod2hpY2ggbXVzdCBpbmNsdWRlIGEgJ21haW4nIGZ1bmN0aW9uKSBhbmQKLS8vLyByZXR1cm5zIGEgbGlzdCBvZiBhbGwgZ2VuZXJhdGVkIENQUyBJUiBkZWZpbml0aW9ucy4KLUZ1dHVyZTxMaXN0PEZ1bmN0aW9uRGVmaW5pdGlvbj4+IGNvbXBpbGUoU3RyaW5nIGNvZGUpIHsKLSAgcmV0dXJuIGNvbXBpbGVyRm9yKGNvZGUpLnRoZW4oKENvbXBpbGVyIGNvbXBpbGVyKSB7Ci0gICAgcmV0dXJuIGNvbXBpbGVyLmVucXVldWVyLnJlc29sdXRpb24ucmVzb2x2ZWRFbGVtZW50cwotICAgICAgICAgICAgICAud2hlcmUoc2hvdWxkT3V0cHV0KQotICAgICAgICAgICAgICAubWFwKGNvbXBpbGVyLmlyQnVpbGRlci5nZXRJcikKLSAgICAgICAgICAgICAgLnRvTGlzdCgpOwotICB9KTsKLX0KLQotLy8vIFJldHVybnMgYW4gUy1leHByZXNzaW9uIHN0cmluZyBmb3IgZWFjaCBjb21waWxlZCBmdW5jdGlvbi4KLUxpc3Q8U3RyaW5nPiBzdHJpbmdpZnlBbGwoSXRlcmFibGU8RnVuY3Rpb25EZWZpbml0aW9uPiBmdW5jdGlvbnMpIHsKLSAgZmluYWwgc3RyaW5naWZpZXIgPSBuZXcgU0V4cHJlc3Npb25TdHJpbmdpZmllcigpOwotICByZXR1cm4gZnVuY3Rpb25zLm1hcCgoZikgPT4gc3RyaW5naWZpZXIudmlzaXRGdW5jdGlvbkRlZmluaXRpb24oZikpLnRvTGlzdCgpOwotfQotCi1GdXR1cmU8TGlzdDxTdHJpbmc+PiB0ZXN0U3RyaW5naWZpZXIoU3RyaW5nIGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlcmFibGU8U3RyaW5nPiBleHBlY3RlZFRva2VucykgewotICByZXR1cm4gY29tcGlsZShjb2RlKQotICAgICAgLnRoZW4oKExpc3Q8RnVuY3Rpb25EZWZpbml0aW9uPiBmdW5jdGlvbnMpIHsKLSAgICAgICAgTGlzdDxTdHJpbmc+IHNleHBycyA9IHN0cmluZ2lmeUFsbChmdW5jdGlvbnMpOwotICAgICAgICBTdHJpbmcgY29tYmluZWQgPSBzZXhwcnMuam9pbigpOwotICAgICAgICBTdHJpbmcgd2l0aG91dE51bGxDb25zdGFudHMgPSBjb21iaW5lZC5yZXBsYWNlQWxsKCJDb25zdGFudCBudWxsIiwgIiIpOwotICAgICAgICBFeHBlY3QuaXNGYWxzZSh3aXRob3V0TnVsbENvbnN0YW50cy5jb250YWlucygibnVsbCIpKTsKLSAgICAgICAgZm9yIChTdHJpbmcgdG9rZW4gaW4gZXhwZWN0ZWRUb2tlbnMpIHsKLSAgICAgICAgICBFeHBlY3QuaXNUcnVlKGNvbWJpbmVkLmNvbnRhaW5zKHRva2VuKSwKLSAgICAgICAgICAgICAgIickY29tYmluZWQnIGRvZXNuJ3QgY29udGFpbiAnJHRva2VuJyBpbiB0ZXN0OlxuJGNvZGUiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzZXhwcnM7Ci0gICAgICB9KTsKLX0KLQotLy8vIENoZWNrcyBpZiB0aGUgZ2VuZXJhdGVkIFMtZXhwcmVzc2lvbnMgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUgdW5zdHJpbmdpZmllciwKLS8vLyByZXR1cm5zIHRoZSByZXN1bHRpbmcgZGVmaW5pdGlvbnMuCi1MaXN0PEZ1bmN0aW9uRGVmaW5pdGlvbj4gdGVzdFVuc3RyaW5naWZpZXIoTGlzdDxTdHJpbmc+IHNleHBycykgewotICByZXR1cm4gc2V4cHJzLm1hcCgoU3RyaW5nIHNleHByKSB7Ci0gICAgdHJ5IHsKLSAgICAgIGZpbmFsIGZ1bmN0aW9uID0gbmV3IFNFeHByZXNzaW9uVW5zdHJpbmdpZmllcigpLnVuc3RyaW5naWZ5KHNleHByKTsKLSAgICAgIEV4cGVjdC5pc05vdE51bGwoZnVuY3Rpb24sICJVbnN0cmluZ2lmaWNhdGlvbiBmYWlsZWQ6XG5cbiRzZXhwciIpOwotICAgICAgcmV0dXJuIGZ1bmN0aW9uOwotICAgIH0gY2F0Y2ggKGUsIHMpIHsKLSAgICAgIHByaW50KCckZVxuJHMnKTsKLSAgICAgIEV4cGVjdC5mYWlsKCdFcnJvciB1bnN0cmluZ2lmeWluZyAiJHNleHByIjogJGUnKTsKLSAgICB9Ci0gIH0pLnRvTGlzdCgpOwotfQotCi12b2lkIG1haW4oKSB7Ci0gIGZpbmFsIHRva2VucyA9Ci0gICAgICAgICAgWyAiRnVuY3Rpb25EZWZpbml0aW9uIgotICAgICAgICAgICwgIklzVHJ1ZSIKLQotICAgICAgICAgIC8vIEV4cHJlc3Npb25zCi0gICAgICAgICAgLCAiQnJhbmNoIgotICAgICAgICAgICwgIkNvbmNhdGVuYXRlU3RyaW5ncyIKLSAgICAgICAgICAsICJEZWNsYXJlRnVuY3Rpb24iCi0gICAgICAgICAgLCAiSW52b2tlQ29uc3RydWN0b3IiCi0gICAgICAgICAgLCAiSW52b2tlQ29udGludWF0aW9uIgotICAgICAgICAgICwgIkludm9rZU1ldGhvZCIKLSAgICAgICAgICAsICJJbnZva2VTdGF0aWMiCi0gICAgICAgICAgLCAiSW52b2tlTWV0aG9kRGlyZWN0bHkiCi0gICAgICAgICAgLCAiTGV0Q29udCIKLSAgICAgICAgICAsICJMZXRQcmltIgotICAgICAgICAgICwgIlNldE11dGFibGVWYXJpYWJsZSIKLSAgICAgICAgICAsICJUeXBlT3BlcmF0b3IiCi0KLSAgICAgICAgICAvLyBQcmltaXRpdmVzCi0gICAgICAgICAgLCAiQ29uc3RhbnQiCi0gICAgICAgICAgLCAiQ3JlYXRlRnVuY3Rpb24iCi0gICAgICAgICAgLCAiR2V0TXV0YWJsZVZhcmlhYmxlIgotICAgICAgICAgICwgIkxpdGVyYWxMaXN0IgotICAgICAgICAgICwgIkxpdGVyYWxNYXAiCi0gICAgICAgICAgLy8gUGFyYW1ldGVycyBhcmUgZW5jb2RlZCBieSBuYW1lIG9ubHkgYW5kIGhlbmNlIGFyZSBub3QgaW4gdGhpcyBsaXN0LgotICAgICAgICAgICwgIlJlaWZ5VHlwZVZhciIKLQotICAgICAgICAgICwgIih0aGlzKSIgICAvLyAndGhpcycgUGFyYW1ldGVyIGRlY2xhcmF0aW9ucwotICAgICAgICAgICwgInRoaXMiICAgICAvLyAndGhpcycgUGFyYW1ldGVyIHVzZXMKLQotICAgICAgICAgIF07Ci0KLSAgYXN5bmNUZXN0KCgpID0+IHRlc3RTdHJpbmdpZmllcihDT0RFLCB0b2tlbnMpLnRoZW4oKExpc3Q8U3RyaW5nPiBzZXhwcnMpIHsKLSAgICBmaW5hbCBmdW5jdGlvbnMgPSB0ZXN0VW5zdHJpbmdpZmllcihzZXhwcnMpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQKLSAgICAvLyBzdHJpbmdpZmllZChDT0RFKSA9PSBzdHJpbmdpZmllZCh1bnN0cmluZ2lmaWVkKHN0cmluZ2lmaWVkKENPREUpKSkKLSAgICBFeHBlY3QubGlzdEVxdWFscyhzZXhwcnMsIHN0cmluZ2lmeUFsbChmdW5jdGlvbnMpKTsKLSAgfSkpOwotfQpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvc2V4cHJfdW5zdHJpbmdpZmllci5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9iYWNrZW5kX2RhcnQvc2V4cHJfdW5zdHJpbmdpZmllci5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDI1MmU3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L3NleHByX3Vuc3RyaW5naWZpZXIuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDg4NSArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTQsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLS8vIFNFeHByZXNzaW9uVW5zdHJpbmdpZmllciBpbXBsZW1lbnRzIHRoZSBpbnZlcnNlIG9wZXJhdGlvbiB0bwotLy8gW1NFeHByZXNzaW9uU3RyaW5naWZpZXJdLgotCi1saWJyYXJ5IHNleHByX3Vuc3RyaW5naWZpZXI7Ci0KLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY29uc3RhbnRzL2V4cHJlc3Npb25zLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9jb25zdGFudHMvdmFsdWVzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kYXJ0X3R5cGVzLmRhcnQnIGFzIGRhcnRfdHlwZXMKLSAgICBzaG93IERhcnRUeXBlOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kaWFnbm9zdGljcy9tZXNzYWdlcy5kYXJ0JwotICAgIHNob3cgTWVzc2FnZUtpbmQ7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2VsZW1lbnRzL2VsZW1lbnRzLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9lbGVtZW50cy9tb2RlbHguZGFydCcKLSAgICBzaG93IEVycm9uZW91c0VsZW1lbnRYLCBUeXBlVmFyaWFibGVFbGVtZW50WDsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvdHJlZS90cmVlLmRhcnQnIHNob3cgTGl0ZXJhbERhcnRTdHJpbmc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL3VuaXZlcnNlL2NhbGxfc3RydWN0dXJlLmRhcnQnCi0gICAgc2hvdyBDYWxsU3RydWN0dXJlOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy91bml2ZXJzZS9zZWxlY3Rvci5kYXJ0JwotICAgIHNob3cgU2VsZWN0b3IsIFNlbGVjdG9yS2luZDsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvY3BzX2lyL2Nwc19pcl9ub2Rlcy5kYXJ0JzsKLQotLy8vIFVzZWQgd2hlbmV2ZXIgYSBub2RlIGNvbnN0cnVjdGVkIGJ5IFtTRXhwcmVzc2lvblVuc3RyaW5naWZpZXJdIG5lZWRzIGEKLS8vLyBuYW1lZCBlbnRpdHkuCi1jbGFzcyBEdW1teUVudGl0eSBleHRlbmRzIEVudGl0eSB7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotICBEdW1teUVudGl0eSh0aGlzLm5hbWUpOwotfQotCi0vLy8gVXNlZCB3aGVuZXZlciBhIG5vZGUgY29uc3RydWN0ZWQgYnkgW1NFeHByZXNzaW9uVW5zdHJpbmdpZmllcl0gbmVlZHMgYQotLy8vIGxvY2FsLgotY2xhc3MgRHVtbXlMb2NhbCBleHRlbmRzIER1bW15RW50aXR5IGltcGxlbWVudHMgTG9jYWwgewotICBEdW1teUxvY2FsKFN0cmluZyBuYW1lKSA6IHN1cGVyKG5hbWUpOwotCi0gIEV4ZWN1dGFibGVFbGVtZW50IGdldCBleGVjdXRhYmxlQ29udGV4dCA9PiBudWxsOwotfQotCi0vLyBUT0RPKGthcmxrbG9zZSk6IHdlIHNob3VsZCByZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gW0Vycm9uZW91c0VsZW1lbnRdIGZyb20KLS8vIHRoZSBDUFMgSVIuICBJbnN0ZWFkLCB0aGUgYnVpbGRlciBtdXN0IGNvbnN0cnVjdCBhcHByb3ByaWF0ZSB0ZXJtcyBmb3IgQVNUcwotLy8gdGhhdCBjb3VsZCBub3QgYmUgcmVzb2x2ZWQgY29ycmVjdGx5LiAgUGVyaGFwcyB0aGUgSVIgc2hvdWxkIG5vdCByZWx5IG9uCi0vLyBlbGVtZW50cyBhdCBhbGwgZm9yIG5hbWluZy4KLS8vLyBVc2VkIHdoZW5ldmVyIGEgbm9kZSBjb25zdHJ1Y3RlZCBieSBbU0V4cHJlc3Npb25VbnN0cmluZ2lmaWVyXSByZXF1aXJlcwotLy8vIGFuIFtFbGVtZW50XSBvciBbRnVuY3Rpb25FbGVtZW50XS4gRXh0ZW5kcyBbRXJyb25lb3VzRWxlbWVudFhdIHNpbmNlIHRoZXJlCi0vLy8gaXMgY3VycmVudGx5IGEgbGFyZ2UgYW1vdW50IG9mIG92ZXJoZWFkIHdoZW4gZXh0ZW5kaW5nIHRoZSBiYXNlIGFic3RyYWN0Ci0vLy8gY2xhc3NlcywgYW5kIGVycm9uZW91cyBlbGVtZW50cyBjb252ZW5pZW50bHkgYWxzbyBza2lwIHNldmVyYWwgYXNzZXJ0aW9uCi0vLy8gY2hlY2tzIGluIENQUyBJUiBub2RlcyB0aGF0IGFyZSBpcnJlbGV2YW50IHRvIHVzLgotY2xhc3MgRHVtbXlFbGVtZW50IGV4dGVuZHMgRXJyb25lb3VzRWxlbWVudFgKLSAgICBpbXBsZW1lbnRzIFR5cGVWYXJpYWJsZUVsZW1lbnQsIEZpZWxkRWxlbWVudCB7Ci0gIER1bW15RWxlbWVudChTdHJpbmcgbmFtZSkKLSAgICAgIDogc3VwZXIoTWVzc2FnZUtpbmQuR0VORVJJQywge30sIG5hbWUsIG51bGwpOwotCi0gIGZpbmFsIGRhcnRfdHlwZXMuRGFydFR5cGUgYm91bmQgPSBudWxsOwotICBmaW5hbCBUeXBlRGVjbGFyYXRpb25FbGVtZW50IHR5cGVEZWNsYXJhdGlvbiA9IG51bGw7Ci0KLSAgbm9TdWNoTWV0aG9kKGludikgPT4gc3VwZXIubm9TdWNoTWV0aG9kKGludik7Ci19Ci0KLS8vLyBVc2VkIHdoZW5ldmVyIGEgbm9kZSBjb25zdHJ1Y3RlZCBieSBbU0V4cHJlc3Npb25VbnN0cmluZ2lmaWVyXSByZXF1aXJlcwotLy8vIGEgbmFtZWQgdHlwZS4KLWNsYXNzIER1bW15TmFtZWRUeXBlIGV4dGVuZHMgZGFydF90eXBlcy5EYXJ0VHlwZSB7Ci0gIGZpbmFsIFN0cmluZyBuYW1lOwotCi0gIGZpbmFsIGtpbmQgPSBudWxsOwotICBmaW5hbCBlbGVtZW50ID0gbnVsbDsKLQotICBEdW1teU5hbWVkVHlwZSh0aGlzLm5hbWUpOwotCi0gIHN1YnN0KGFyZ3VtZW50cywgcGFyYW1ldGVycykgPT4gbnVsbDsKLSAgdW5hbGlhcyhjb21waWxlcikgPT4gbnVsbDsKLSAgYWNjZXB0KHZpc2l0b3IsIGFyZ3VtZW50KSA9PiBudWxsOwotCi0gIFN0cmluZyB0b1N0cmluZygpID0+IG5hbWU7Ci19Ci0KLS8vLyBSZXByZXNlbnRzIGEgbGlzdCBvZiB0b2tlbnMsIGJ1dCBpcyBiYXNpY2FsbHkgYSBwYXJ0aWFsIHZpZXcgaW50byBhIGxpc3QKLS8vLyB3aXRoIGFwcHJvcHJpYXRlIGNvbnZlbmllbmNlIG1ldGhvZHMuCi1jbGFzcyBUb2tlbnMgewotICBmaW5hbCBMaXN0PFN0cmluZz4gX2xpc3Q7Ci0gIGludCBfaW5kZXg7IC8vIEN1cnJlbnQgaW5kZXggaW50byB0aGUgbGlzdC4KLQotICBUb2tlbnMoTGlzdDxTdHJpbmc+IHRoaXMuX2xpc3QpIDogX2luZGV4ID0gMDsKLQotICBTdHJpbmcgZ2V0IGN1cnJlbnQgPT4gX2xpc3RbX2luZGV4XTsKLSAgU3RyaW5nIGdldCBuZXh0ICAgID0+IF9saXN0W19pbmRleCArIDFdOwotCi0gIFN0cmluZyByZWFkKFtTdHJpbmcgZXhwZWN0ZWRdKSB7Ci0gICAgaWYgKGV4cGVjdGVkICE9IG51bGwpIHsKLSAgICAgIGlmIChjdXJyZW50ICE9IGV4cGVjdGVkKSB7Ci0gICAgICAgIHByaW50KCdleHBlY3RlZCAiJGV4cGVjdGVkIiwgZm91bmQgIiRjdXJyZW50IicpOwotICAgICAgICBpbnQgc3RhcnQgPSBfaW5kZXggLSAxNTsKLSAgICAgICAgU3RyaW5nIGRvdGRvdGRvdCA9ICcuLi4gJzsKLSAgICAgICAgaWYgKHN0YXJ0IDwgMCkgewotICAgICAgICAgIHN0YXJ0ID0gMDsKLSAgICAgICAgICBkb3Rkb3Rkb3QgPSAnJzsKLSAgICAgICAgfQotICAgICAgICBwcmludCgnJHtkb3Rkb3Rkb3R9JHtfbGlzdC5zdWJsaXN0KHN0YXJ0LCBfaW5kZXggKyAxKS5qb2luKCcgJyl9Jyk7Ci0gICAgICAgIGFzc2VydChjdXJyZW50ID09IGV4cGVjdGVkKTsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIF9saXN0W19pbmRleCsrXTsKLSAgfQotCi0gIC8vLyBDb25zdW1lcyB0aGUgcHJlYW1ibGUgdG8gYSBuZXcgbm9kZSwgY29uc2lzdGluZyBvZiBhbiBvcGVuaW5nIHBhcmVudGhlc2lzCi0gIC8vLyBhbmQgYSB0YWcuCi0gIHZvaWQgY29uc3VtZVN0YXJ0KFtTdHJpbmcgdGFnXSkgewotICAgIHJlYWQoIigiKTsKLSAgICBpZiAodGFnICE9IG51bGwpIHsKLSAgICAgIHJlYWQodGFnKTsKLSAgICB9Ci0gIH0KLQotICB2b2lkIGNvbnN1bWVFbmQoKSB7Ci0gICAgcmVhZCgiKSIpOwotICB9Ci0KLSAgYm9vbCBnZXQgaGFzTmV4dCAgPT4gX2luZGV4IDwgX2xpc3QubGVuZ3RoOwotICBTdHJpbmcgdG9TdHJpbmcoKSA9PiBfbGlzdC5zdWJsaXN0KF9pbmRleCkudG9TdHJpbmcoKTsKLX0KLQotLy8vIENvbnN0cnVjdHMgYSBtaW5pbWFsIGluLW1lbW9yeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgSVIgcmVwcmVzZW50ZWQKLS8vLyBieSB0aGUgZ2l2ZW4gc3RyaW5nLiBNYW55IGZpZWxkcyBhcmUgY3VycmVudGx5IHNpbXBseSBzZXQgdG8gbnVsbC4KLWNsYXNzIFNFeHByZXNzaW9uVW5zdHJpbmdpZmllciB7Ci0KLSAgLy8gRXhwcmVzc2lvbnMKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBCUkFOQ0ggPSAiQnJhbmNoIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBDT05DQVRFTkFURV9TVFJJTkdTID0gIkNvbmNhdGVuYXRlU3RyaW5ncyI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgREVDTEFSRV9GVU5DVElPTiA9ICJEZWNsYXJlRnVuY3Rpb24iOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIElOVk9LRV9DT05TVFJVQ1RPUiA9ICJJbnZva2VDb25zdHJ1Y3RvciI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgSU5WT0tFX0NPTlRJTlVBVElPTiA9ICJJbnZva2VDb250aW51YXRpb24iOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIElOVk9LRV9TVEFUSUMgPSAiSW52b2tlU3RhdGljIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBJTlZPS0VfTUVUSE9EX0RJUkVDVExZID0gIkludm9rZU1ldGhvZERpcmVjdGx5IjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBJTlZPS0VfTUVUSE9EID0gIkludm9rZU1ldGhvZCI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgTEVUX1BSSU0gPSAiTGV0UHJpbSI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgTEVUX0NPTlQgPSAiTGV0Q29udCI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgTEVUX01VVEFCTEUgPSAiTGV0TXV0YWJsZSI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgVFlQRV9DQVNUID0gIlR5cGVDYXN0IjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBHRVRfTEFaWV9TVEFUSUMgPSAiR2V0TGF6eVN0YXRpYyI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgVU5SRUFDSEFCTEUgPSAiVW5yZWFjaGFibGUiOwotCi0gIC8vIFByaW1pdGl2ZXMKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBDT05TVEFOVCA9ICJDb25zdGFudCI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgQ1JFQVRFX0ZVTkNUSU9OID0gIkNyZWF0ZUZ1bmN0aW9uIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBHRVRfTVVUQUJMRSA9ICJHZXRNdXRhYmxlIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBTRVRfTVVUQUJMRSA9ICJTZXRNdXRhYmxlIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBMSVRFUkFMX0xJU1QgPSAiTGl0ZXJhbExpc3QiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIExJVEVSQUxfTUFQID0gIkxpdGVyYWxNYXAiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIFJFSUZZX1RZUEVfVkFSID0gIlJlaWZ5VHlwZVZhciI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgR0VUX1NUQVRJQyA9ICJHZXRTdGF0aWMiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIFNFVF9TVEFUSUMgPSAiU2V0U3RhdGljIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBUWVBFX1RFU1QgPSAiVHlwZVRlc3QiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIEFQUExZX0JVSUxUSU5fT1BFUkFUT1IgPSAiQXBwbHlCdWlsdGluT3BlcmF0b3IiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIEdFVF9MRU5HVEggPSAiR2V0TGVuZ3RoIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBHRVRfSU5ERVggPSAiR2V0SW5kZXgiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIFNFVF9JTkRFWCA9ICJTZXRJbmRleCI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgR0VUX0ZJRUxEID0gIkdldEZpZWxkIjsKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBTRVRfRklFTEQgPSAiU2V0RmllbGQiOwotCi0gIC8vIE90aGVyCi0gIHN0YXRpYyBjb25zdCBTdHJpbmcgRlVOQ1RJT05fREVGSU5JVElPTiA9ICJGdW5jdGlvbkRlZmluaXRpb24iOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIElTX1RSVUUgPSAiSXNUcnVlIjsKLQotICAvLyBDb25zdGFudHMKLSAgc3RhdGljIGNvbnN0IFN0cmluZyBCT09MID0gIkJvb2wiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIERPVUJMRSA9ICJEb3VibGUiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIElOVCA9ICJJbnQiOwotICBzdGF0aWMgY29uc3QgU3RyaW5nIE5VTEwgPSAiTnVsbCI7Ci0gIHN0YXRpYyBjb25zdCBTdHJpbmcgU1RSSU5HID0gIlN0cmluZyI7Ci0KLSAgZmluYWwgTWFwPFN0cmluZywgRGVmaW5pdGlvbj4gbmFtZTJ2YXJpYWJsZSA9Ci0gICAgICA8U3RyaW5nLCBEZWZpbml0aW9uPnsgInJldHVybiI6IG5ldyBDb250aW51YXRpb24ucmV0cm4oKSB9OwotCi0gIC8vIE9wZXJhdG9yIG5hbWVzIHVzZWQgZm9yIGNhbm9uaWNhbGl6YXRpb24uIEluIHRoZW9yeSwgd2UgY291bGQgc2ltcGx5IHVzZQotICAvLyBFbGVtZW50cy5pc09wZXJhdG9yTmFtZSgpIG9uIHRoZSBwYXJzZWQgdG9rZW5zOyBob3dldmVyLCBjb21wYXJpc29ucyBhcmUKLSAgLy8gZG9uZSB1c2luZyBpZGVudGljYWwoKSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2hpY2ggYXJlIHJlbGlhYmxlIG9ubHkgZm9yCi0gIC8vIGNvbXBpbGUtdGltZSBsaXRlcmFsIHN0cmluZ3MuCi0gIHN0YXRpYyBTZXQ8U3RyaW5nPiBPUEVSQVRPUlMgPSBuZXcgU2V0PFN0cmluZz4uZnJvbSgKLSAgICAgIFsgJ34nLCAnPT0nLCAnW10nLCAnKicsICcvJywgJyUnLCAnfi8nLCAnKycsICc8PCcsICd1bmFyeS0nCi0gICAgICAsICc+PicsICc+PScsICc+JywgJzw9JywgJzwnLCAnJicsICdeJywgJ3wnLCAnW109JywgJy0nCi0gICAgICBdKTsKLQotICAvLyBUaGUgdG9rZW5zIGN1cnJlbnRseSBiZWluZyBwYXJzZWQuCi0gIFRva2VucyB0b2tlbnM7Ci0KLSAgRnVuY3Rpb25EZWZpbml0aW9uIHVuc3RyaW5naWZ5KFN0cmluZyBzKSB7Ci0gICAgdG9rZW5zID0gdG9rZW5pemUocyk7Ci0gICAgRnVuY3Rpb25EZWZpbml0aW9uIGRlZiA9IHBhcnNlRnVuY3Rpb25EZWZpbml0aW9uKCk7Ci0gICAgYXNzZXJ0KCF0b2tlbnMuaGFzTmV4dCk7Ci0gICAgcmV0dXJuIGRlZjsKLSAgfQotCi0gIC8vLyBSZXR1cm5zIGEgbmV3IG5hbWVkIGR1bW15IHNlbGVjdG9yIHdpdGggYSByb3VnaGx5IGFwcHJvcHJpYXRlIGtpbmQuCi0gIFNlbGVjdG9yIGR1bW15U2VsZWN0b3IoU3RyaW5nIG5hbWUsIGludCBhcmd1bWVudENvdW50KSB7Ci0gICAgU2VsZWN0b3JLaW5kIGtpbmQ7Ci0gICAgaWYgKG5hbWUgPT0gIltdIikgewotICAgICAga2luZCA9IFNlbGVjdG9yS2luZC5JTkRFWDsKLSAgICB9IGVsc2UgaWYgKEVsZW1lbnRzLmlzT3BlcmF0b3JOYW1lKG5hbWUpKSB7Ci0gICAgICBraW5kID0gU2VsZWN0b3JLaW5kLk9QRVJBVE9SOwotICAgIH0gZWxzZSB7Ci0gICAgICBraW5kID0gU2VsZWN0b3JLaW5kLkNBTEw7Ci0gICAgfQotICAgIHJldHVybiBuZXcgU2VsZWN0b3Ioa2luZCwgbmV3IFB1YmxpY05hbWUobmFtZSksCi0gICAgICAgIG5ldyBDYWxsU3RydWN0dXJlLnVubmFtZWQoYXJndW1lbnRDb3VudCkpOwotICB9Ci0KLSAgLy8vIFJldHVybnMgdGhlIHRva2VucyBpbiBzLiBOb3RlIHRoYXQgc3RyaW5nIGxpdGVyYWxzIGFyZSBub3QgbmVjZXNzYXJpbHkKLSAgLy8vIHByZXNlcnZlZDsgZm9yIGluc3RhbmNlLCAiKGxpdGVyYWxTdHJpbmcpIiBpcyB0cmFuc2Zvcm1lZCB0bwotICAvLy8gIiAoIGxpdGVyYWxTdHJpbmcgKSAiLgotICBUb2tlbnMgdG9rZW5pemUoU3RyaW5nIHMpID0+Ci0gICAgICBuZXcgVG9rZW5zKAotICAgICAgICAgIHMucmVwbGFjZUFsbCgiKCIsICIgKCAiKQotICAgICAgICAgICAucmVwbGFjZUFsbCgiKSIsICIgKSAiKQotICAgICAgICAgICAucmVwbGFjZUFsbCgieyIsICIgeyAiKQotICAgICAgICAgICAucmVwbGFjZUFsbCgifSIsICIgfSAiKQotICAgICAgICAgICAucmVwbGFjZUFsbChuZXcgUmVnRXhwKHIiWyBcdFxuXSsiKSwgIiAiKQotICAgICAgICAgICAudHJpbSgpCi0gICAgICAgICAgIC5zcGxpdCgiICIpCi0gICAgICAgICAgIC5tYXAoY2Fub25pY2FsaXplT3BlcmF0b3JzKQotICAgICAgICAgICAudG9MaXN0KCkpOwotCi0gIC8vLyBDYW5vbmljYWxpemVzIHN0cmluZ3MgY29udGFpbmluZyBvcGVyYXRvciBuYW1lcy4KLSAgU3RyaW5nIGNhbm9uaWNhbGl6ZU9wZXJhdG9ycyhTdHJpbmcgdG9rZW4pIHsKLSAgICBTdHJpbmcgb3BuYW1lID0gT1BFUkFUT1JTLmxvb2t1cCh0b2tlbik7Ci0gICAgaWYgKG9wbmFtZSAhPSBudWxsKSB7Ci0gICAgICByZXR1cm4gb3BuYW1lOwotICAgIH0KLSAgICByZXR1cm4gdG9rZW47Ci0gIH0KLQotICBFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbigpIHsKLSAgICBhc3NlcnQodG9rZW5zLmN1cnJlbnQgPT0gIigiKTsKLQotICAgIHN3aXRjaCAodG9rZW5zLm5leHQpIHsKLSAgICAgIGNhc2UgQlJBTkNIOgotICAgICAgICByZXR1cm4gcGFyc2VCcmFuY2goKTsKLSAgICAgIGNhc2UgQ09OQ0FURU5BVEVfU1RSSU5HUzoKLSAgICAgICAgcmV0dXJuIHBhcnNlQ29uY2F0ZW5hdGVTdHJpbmdzKCk7Ci0gICAgICBjYXNlIERFQ0xBUkVfRlVOQ1RJT046Ci0gICAgICAgIHJldHVybiBwYXJzZURlY2xhcmVGdW5jdGlvbigpOwotICAgICAgY2FzZSBJTlZPS0VfQ09OU1RSVUNUT1I6Ci0gICAgICAgIHJldHVybiBwYXJzZUludm9rZUNvbnN0cnVjdG9yKCk7Ci0gICAgICBjYXNlIElOVk9LRV9DT05USU5VQVRJT046Ci0gICAgICAgIHJldHVybiBwYXJzZUludm9rZUNvbnRpbnVhdGlvbigpOwotICAgICAgY2FzZSBJTlZPS0VfTUVUSE9EOgotICAgICAgICByZXR1cm4gcGFyc2VJbnZva2VNZXRob2QoKTsKLSAgICAgIGNhc2UgSU5WT0tFX1NUQVRJQzoKLSAgICAgICAgcmV0dXJuIHBhcnNlSW52b2tlU3RhdGljKCk7Ci0gICAgICBjYXNlIElOVk9LRV9NRVRIT0RfRElSRUNUTFk6Ci0gICAgICAgIHJldHVybiBwYXJzZUludm9rZU1ldGhvZERpcmVjdGx5KCk7Ci0gICAgICBjYXNlIExFVF9QUklNOgotICAgICAgICByZXR1cm4gcGFyc2VMZXRQcmltKCk7Ci0gICAgICBjYXNlIExFVF9DT05UOgotICAgICAgICByZXR1cm4gcGFyc2VMZXRDb250KCk7Ci0gICAgICBjYXNlIExFVF9NVVRBQkxFOgotICAgICAgICByZXR1cm4gcGFyc2VMZXRNdXRhYmxlKCk7Ci0gICAgICBjYXNlIFRZUEVfQ0FTVDoKLSAgICAgICAgcmV0dXJuIHBhcnNlVHlwZUNhc3QoKTsKLSAgICAgIGNhc2UgR0VUX0xBWllfU1RBVElDOgotICAgICAgICByZXR1cm4gcGFyc2VHZXRMYXp5U3RhdGljKCk7Ci0gICAgICBjYXNlIFVOUkVBQ0hBQkxFOgotICAgICAgICByZXR1cm4gcGFyc2VVbnJlYWNoYWJsZSgpOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgYXNzZXJ0KGZhbHNlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbDsKLSAgfQotCi0gIC8vLyAocHJpbTEgcHJpbTIgLi4uIHByaW1uKQotICBMaXN0PFByaW1pdGl2ZT4gcGFyc2VQcmltaXRpdmVMaXN0KCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoKTsKLSAgICBMaXN0PFByaW1pdGl2ZT4gcHJpbXMgPSA8UHJpbWl0aXZlPltdOwotICAgIHdoaWxlICh0b2tlbnMuY3VycmVudCAhPSAiKSIpIHsKLSAgICAgIFByaW1pdGl2ZSBwcmltID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICAgIGFzc2VydChwcmltICE9IG51bGwpOwotICAgICAgcHJpbXMuYWRkKHByaW0pOwotICAgIH0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBwcmltczsKLSAgfQotCi0gIC8vLyAoRnVuY3Rpb25EZWZpbml0aW9uIG5hbWUgKHBhcmFtZXRlcnMpIGNvbnRpbnVhdGlvbiBib2R5KQotICBGdW5jdGlvbkRlZmluaXRpb24gcGFyc2VGdW5jdGlvbkRlZmluaXRpb24oKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChGVU5DVElPTl9ERUZJTklUSU9OKTsKLQotICAgIC8vIG5hbWUKLSAgICBFbGVtZW50IGVsZW1lbnQgPSBuZXcgRHVtbXlFbGVtZW50KCIiKTsKLSAgICBpZiAodG9rZW5zLmN1cnJlbnQgIT0gJygnKSB7Ci0gICAgICAvLyBUaGlzIGlzIGEgbmFtZWQgZnVuY3Rpb24uCi0gICAgICBlbGVtZW50ID0gbmV3IER1bW15RWxlbWVudCh0b2tlbnMucmVhZCgpKTsKLSAgICB9Ci0KLSAgICAvLyAodGhpcykgb3IgKCkKLSAgICBEZWZpbml0aW9uIHRoaXNQYXJhbWV0ZXIgPSBudWxsOwotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoKTsKLSAgICBpZiAodG9rZW5zLmN1cnJlbnQgIT0gJyknKSB7Ci0gICAgICBTdHJpbmcgdGhpc05hbWUgPSB0b2tlbnMucmVhZCgpOwotICAgICAgaWYgKG5hbWUydmFyaWFibGUuY29udGFpbnNLZXkodGhpc05hbWUpKSB7Ci0gICAgICAgIHRoaXNQYXJhbWV0ZXIgPSBuYW1lMnZhcmlhYmxlW3RoaXNOYW1lXTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRoaXNQYXJhbWV0ZXIgPSBuZXcgUGFyYW1ldGVyKG5ldyBEdW1teUVsZW1lbnQodGhpc05hbWUpKTsKLSAgICAgICAgbmFtZTJ2YXJpYWJsZVt0aGlzTmFtZV0gPSB0aGlzUGFyYW1ldGVyOwotICAgICAgfQotICAgIH0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotCi0gICAgLy8gKHBhcmFtZXRlcnMpCi0gICAgTGlzdDxEZWZpbml0aW9uPiBwYXJhbWV0ZXJzID0gPERlZmluaXRpb24+W107Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydCgpOwotICAgIHdoaWxlICh0b2tlbnMuY3VycmVudCAhPSAiKSIpIHsKLSAgICAgIFN0cmluZyBwYXJhbU5hbWUgPSB0b2tlbnMucmVhZCgpOwotICAgICAgaWYgKG5hbWUydmFyaWFibGUuY29udGFpbnNLZXkocGFyYW1OYW1lKSkgewotICAgICAgICBwYXJhbWV0ZXJzLmFkZChuYW1lMnZhcmlhYmxlW3BhcmFtTmFtZV0pOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgUGFyYW1ldGVyIHBhcmFtID0gbmV3IFBhcmFtZXRlcihuZXcgRHVtbXlFbGVtZW50KHBhcmFtTmFtZSkpOwotICAgICAgICBuYW1lMnZhcmlhYmxlW3BhcmFtTmFtZV0gPSBwYXJhbTsKLSAgICAgICAgcGFyYW1ldGVycy5hZGQocGFyYW0pOwotICAgICAgfQotICAgIH0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotCi0gICAgLy8gY29udGludWF0aW9uCi0gICAgU3RyaW5nIGNvbnROYW1lID0gdG9rZW5zLnJlYWQoInJldHVybiIpOwotICAgIENvbnRpbnVhdGlvbiBjb250ID0gbmFtZTJ2YXJpYWJsZVtjb250TmFtZV07Ci0gICAgYXNzZXJ0KGNvbnQgIT0gbnVsbCk7Ci0KLSAgICAvLyBib2R5Ci0gICAgRXhwcmVzc2lvbiBib2R5ID0gcGFyc2VFeHByZXNzaW9uKCk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgRnVuY3Rpb25EZWZpbml0aW9uKGVsZW1lbnQsIHRoaXNQYXJhbWV0ZXIsIHBhcmFtZXRlcnMsCi0gICAgICAgIG5ldyBCb2R5KGJvZHksIGNvbnQpLCBudWxsLCBudWxsKTsKLSAgfQotCi0gIC8vLyAoSXNUcnVlIGFyZykKLSAgQ29uZGl0aW9uIHBhcnNlQ29uZGl0aW9uKCkgewotICAgIC8vIEhhbmRsZXMgSXNUcnVlIG9ubHkgZm9yIG5vdy4KLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KElTX1RSVUUpOwotCi0gICAgRGVmaW5pdGlvbiB2YWx1ZSA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KHZhbHVlICE9IG51bGwpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IElzVHJ1ZSh2YWx1ZSk7Ci0gIH0KLQotICAvLy8gKEJyYW5jaCBjb25kaXRpb24gY29udCBjb250KQotICBCcmFuY2ggcGFyc2VCcmFuY2goKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChCUkFOQ0gpOwotCi0gICAgQ29uZGl0aW9uIGNvbmQgPSBwYXJzZUNvbmRpdGlvbigpOwotICAgIENvbnRpbnVhdGlvbiB0cnVlQ29udCA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgQ29udGludWF0aW9uIGZhbHNlQ29udCA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KHRydWVDb250ICE9IG51bGwgJiYgZmFsc2VDb250ICE9IG51bGwpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IEJyYW5jaChjb25kLCB0cnVlQ29udCwgZmFsc2VDb250KTsKLSAgfQotCi0gIC8vLyAoQ29uY2F0ZW5hdGVTdHJpbmdzIChhcmdzKSBjb250KQotICBDb25jYXRlbmF0ZVN0cmluZ3MgcGFyc2VDb25jYXRlbmF0ZVN0cmluZ3MoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChDT05DQVRFTkFURV9TVFJJTkdTKTsKLQotICAgIExpc3Q8UHJpbWl0aXZlPiBhcmdzID0gcGFyc2VQcmltaXRpdmVMaXN0KCk7Ci0KLSAgICBDb250aW51YXRpb24gY29udCA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KGNvbnQgIT0gbnVsbCk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgQ29uY2F0ZW5hdGVTdHJpbmdzKGFyZ3MsIGNvbnQpOwotICB9Ci0KLSAgLy8vIChEZWNsYXJlRnVuY3Rpb24gbmFtZSA9IGZ1bmN0aW9uIGluIGJvZHkpCi0gIERlY2xhcmVGdW5jdGlvbiBwYXJzZURlY2xhcmVGdW5jdGlvbigpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KERFQ0xBUkVfRlVOQ1RJT04pOwotCi0gICAgLy8gbmFtZSA9Ci0gICAgTXV0YWJsZVZhcmlhYmxlIGxvY2FsID0gYWRkTXV0YWJsZVZhcmlhYmxlKHRva2Vucy5yZWFkKCkpOwotICAgIHRva2Vucy5yZWFkKCI9Iik7Ci0KLSAgICAvLyBmdW5jdGlvbiBpbgotICAgIEZ1bmN0aW9uRGVmaW5pdGlvbiBkZWYgPSBwYXJzZUZ1bmN0aW9uRGVmaW5pdGlvbigpOwotICAgIHRva2Vucy5yZWFkKCJpbiIpOwotCi0gICAgLy8gYm9keQotICAgIEV4cHJlc3Npb24gYm9keSA9IHBhcnNlRXhwcmVzc2lvbigpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IERlY2xhcmVGdW5jdGlvbihsb2NhbCwgZGVmKS4ucGx1Zyhib2R5KTsKLSAgfQotCi0gIC8vLyAoSW52b2tlQ29uc3RydWN0b3IgbmFtZSAoYXJncykgY29udCkKLSAgSW52b2tlQ29uc3RydWN0b3IgcGFyc2VJbnZva2VDb25zdHJ1Y3RvcigpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KElOVk9LRV9DT05TVFJVQ1RPUik7Ci0KLSAgICBTdHJpbmcgY29uc3RydWN0b3JOYW1lID0gdG9rZW5zLnJlYWQoKTsKLSAgICBMaXN0PFN0cmluZz4gc3BsaXQgPSBjb25zdHJ1Y3Rvck5hbWUuc3BsaXQoIi4iKTsKLSAgICBhc3NlcnQoc3BsaXQubGVuZ3RoIDwgMyk7Ci0KLSAgICBkYXJ0X3R5cGVzLkRhcnRUeXBlIHR5cGUgPSBuZXcgRHVtbXlOYW1lZFR5cGUoc3BsaXRbMF0pOwotICAgIEVsZW1lbnQgZWxlbWVudCA9IG5ldyBEdW1teUVsZW1lbnQoKHNwbGl0Lmxlbmd0aCA9PSAxKSA/ICIiIDogc3BsaXRbMV0pOwotCi0gICAgTGlzdDxQcmltaXRpdmU+IGFyZ3MgPSBwYXJzZVByaW1pdGl2ZUxpc3QoKTsKLQotICAgIENvbnRpbnVhdGlvbiBjb250ID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBhc3NlcnQoY29udCAhPSBudWxsKTsKLQotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgU2VsZWN0b3Igc2VsZWN0b3IgPSBkdW1teVNlbGVjdG9yKGNvbnN0cnVjdG9yTmFtZSwgYXJncy5sZW5ndGgpOwotICAgIHJldHVybiBuZXcgSW52b2tlQ29uc3RydWN0b3IodHlwZSwgZWxlbWVudCwgc2VsZWN0b3IsIGFyZ3MsIGNvbnQpOwotICB9Ci0KLSAgLy8vIChJbnZva2VDb250aW51YXRpb24gcmVjPyBuYW1lIChhcmdzKSkKLSAgSW52b2tlQ29udGludWF0aW9uIHBhcnNlSW52b2tlQ29udGludWF0aW9uKCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoSU5WT0tFX0NPTlRJTlVBVElPTik7Ci0gICAgU3RyaW5nIG5hbWUgPSB0b2tlbnMucmVhZCgpOwotICAgIGJvb2wgaXNSZWN1cnNpdmUgPSBuYW1lID09ICJyZWMiOwotICAgIGlmIChpc1JlY3Vyc2l2ZSkgbmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0KLSAgICBDb250aW51YXRpb24gY29udCA9IG5hbWUydmFyaWFibGVbbmFtZV07Ci0gICAgYXNzZXJ0KGNvbnQgIT0gbnVsbCk7Ci0KLSAgICBMaXN0PFByaW1pdGl2ZT4gYXJncyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IEludm9rZUNvbnRpbnVhdGlvbihjb250LCBhcmdzLCBpc1JlY3Vyc2l2ZTogaXNSZWN1cnNpdmUpOwotICB9Ci0KLSAgLy8vIChJbnZva2VNZXRob2QgcmVjZWl2ZXIgbWV0aG9kIChhcmdzKSBjb250KQotICBJbnZva2VNZXRob2QgcGFyc2VJbnZva2VNZXRob2QoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChJTlZPS0VfTUVUSE9EKTsKLQotICAgIERlZmluaXRpb24gcmVjZWl2ZXIgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIGFzc2VydChyZWNlaXZlciAhPSBudWxsKTsKLQotICAgIFN0cmluZyBtZXRob2ROYW1lID0gdG9rZW5zLnJlYWQoKTsKLQotICAgIExpc3Q8UHJpbWl0aXZlPiBhcmdzID0gcGFyc2VQcmltaXRpdmVMaXN0KCk7Ci0KLSAgICBDb250aW51YXRpb24gY29udCA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KGNvbnQgIT0gbnVsbCk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIFNlbGVjdG9yIHNlbGVjdG9yID0gZHVtbXlTZWxlY3RvcihtZXRob2ROYW1lLCBhcmdzLmxlbmd0aCk7Ci0gICAgcmV0dXJuIG5ldyBJbnZva2VNZXRob2QocmVjZWl2ZXIsIHNlbGVjdG9yLCBhcmdzLCBjb250KTsKLSAgfQotCi0gIC8vLyAoSW52b2tlU3RhdGljIG1ldGhvZCAoYXJncykgY29udCkKLSAgSW52b2tlU3RhdGljIHBhcnNlSW52b2tlU3RhdGljKCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoSU5WT0tFX1NUQVRJQyk7Ci0KLSAgICBTdHJpbmcgbWV0aG9kTmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0KLSAgICBMaXN0PFByaW1pdGl2ZT4gYXJncyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotCi0gICAgQ29udGludWF0aW9uIGNvbnQgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIGFzc2VydChjb250ICE9IG51bGwpOwotCi0gICAgRW50aXR5IGVudGl0eSA9IG5ldyBEdW1teUVudGl0eShtZXRob2ROYW1lKTsKLSAgICBTZWxlY3RvciBzZWxlY3RvciA9IGR1bW15U2VsZWN0b3IobWV0aG9kTmFtZSwgYXJncy5sZW5ndGgpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IEludm9rZVN0YXRpYyhlbnRpdHksIHNlbGVjdG9yLCBhcmdzLCBjb250LCBudWxsKTsKLSAgfQotCi0gIC8vLyAoSW52b2tlTWV0aG9kRGlyZWN0bHkgcmVjZWl2ZXIgbWV0aG9kIChhcmdzKSBjb250KQotICBJbnZva2VNZXRob2REaXJlY3RseSBwYXJzZUludm9rZU1ldGhvZERpcmVjdGx5KCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoSU5WT0tFX01FVEhPRF9ESVJFQ1RMWSk7Ci0KLSAgICBEZWZpbml0aW9uIHJlY2VpdmVyID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBhc3NlcnQocmVjZWl2ZXIgIT0gbnVsbCk7Ci0KLSAgICBTdHJpbmcgbWV0aG9kTmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0KLSAgICBMaXN0PFByaW1pdGl2ZT4gYXJncyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotCi0gICAgQ29udGludWF0aW9uIGNvbnQgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIGFzc2VydChjb250ICE9IG51bGwpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICBFbGVtZW50IGVsZW1lbnQgPSBuZXcgRHVtbXlFbGVtZW50KG1ldGhvZE5hbWUpOwotICAgIFNlbGVjdG9yIHNlbGVjdG9yID0gZHVtbXlTZWxlY3RvcihtZXRob2ROYW1lLCBhcmdzLmxlbmd0aCk7Ci0gICAgcmV0dXJuIG5ldyBJbnZva2VNZXRob2REaXJlY3RseShyZWNlaXZlciwgZWxlbWVudCwgc2VsZWN0b3IsIGFyZ3MsIGNvbnQpOwotICB9Ci0KLSAgLy8gKHJlYz8gbmFtZSAoYXJncykgYm9keSkKLSAgQ29udGludWF0aW9uIHBhcnNlQ29udGludWF0aW9uKCkgewotICAgIC8vIChyZWM/IG5hbWUKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KCk7Ci0gICAgU3RyaW5nIG5hbWUgPSB0b2tlbnMucmVhZCgpOwotICAgIGJvb2wgaXNSZWN1cnNpdmUgPSBuYW1lID09ICJyZWMiOwotICAgIGlmIChpc1JlY3Vyc2l2ZSkgbmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0KLSAgICAvLyAoYXJncykKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KCk7Ci0gICAgTGlzdDxQYXJhbWV0ZXI+IHBhcmFtcyA9IDxQYXJhbWV0ZXI+W107Ci0gICAgd2hpbGUgKHRva2Vucy5jdXJyZW50ICE9ICIpIikgewotICAgICAgU3RyaW5nIHBhcmFtTmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0gICAgICBQYXJhbWV0ZXIgcGFyYW0gPSBuZXcgUGFyYW1ldGVyKG5ldyBEdW1teUVsZW1lbnQocGFyYW1OYW1lKSk7Ci0gICAgICBuYW1lMnZhcmlhYmxlW3BhcmFtTmFtZV0gPSBwYXJhbTsKLSAgICAgIHBhcmFtcy5hZGQocGFyYW0pOwotICAgIH0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotCi0gICAgQ29udGludWF0aW9uIGNvbnQgPSBuZXcgQ29udGludWF0aW9uKHBhcmFtcyk7Ci0gICAgbmFtZTJ2YXJpYWJsZVtuYW1lXSA9IGNvbnQ7Ci0KLSAgICBjb250LmlzUmVjdXJzaXZlID0gaXNSZWN1cnNpdmU7Ci0gICAgLy8gY29udF9ib2R5Ci0gICAgY29udC5ib2R5ID0gcGFyc2VFeHByZXNzaW9uKCk7Ci0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gY29udDsKLSAgfQotCi0gIC8vLyAoTGV0Q29udCAoY29udGludWF0aW9ucykgYm9keSkKLSAgTGV0Q29udCBwYXJzZUxldENvbnQoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChMRVRfQ09OVCk7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydCgpOwotICAgIExpc3Q8Q29udGludWF0aW9uPiBjb250aW51YXRpb25zID0gPENvbnRpbnVhdGlvbj5bXTsKLSAgICB3aGlsZSAodG9rZW5zLmN1cnJlbnQgIT0gIikiKSB7Ci0gICAgICBjb250aW51YXRpb25zLmFkZChwYXJzZUNvbnRpbnVhdGlvbigpKTsKLSAgICB9Ci0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLQotICAgIC8vIGJvZHkpCi0gICAgRXhwcmVzc2lvbiBib2R5ID0gcGFyc2VFeHByZXNzaW9uKCk7Ci0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLQotICAgIHJldHVybiBuZXcgTGV0Q29udC5tYW55KGNvbnRpbnVhdGlvbnMsIGJvZHkpOwotICB9Ci0KLSAgLy8vIChMZXRNdXRhYmxlIChuYW1lIHZhbHVlKSBib2R5KQotICBMZXRNdXRhYmxlIHBhcnNlTGV0TXV0YWJsZSgpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KExFVF9NVVRBQkxFKTsKLQotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoKTsKLSAgICBTdHJpbmcgbmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0gICAgTXV0YWJsZVZhcmlhYmxlIGxvY2FsID0gYWRkTXV0YWJsZVZhcmlhYmxlKG5hbWUpOwotICAgIFByaW1pdGl2ZSB2YWx1ZSA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLQotICAgIEV4cHJlc3Npb24gYm9keSA9IHBhcnNlRXhwcmVzc2lvbigpOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBMZXRNdXRhYmxlKGxvY2FsLCB2YWx1ZSkuLnBsdWcoYm9keSk7Ci0gIH0KLQotICAvLy8gKFNldE11dGFibGUgbmFtZSB2YWx1ZSkKLSAgU2V0TXV0YWJsZSBwYXJzZVNldE11dGFibGUoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChTRVRfTVVUQUJMRSk7Ci0KLSAgICBNdXRhYmxlVmFyaWFibGUgbG9jYWwgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIFByaW1pdGl2ZSB2YWx1ZSA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KHZhbHVlICE9IG51bGwpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IFNldE11dGFibGUobG9jYWwsIHZhbHVlKTsKLSAgfQotCi0gIC8vLyAoVHlwZUNhc3QgdmFsdWUgdHlwZSBhcmdzIGNvbnQpCi0gIFR5cGVDYXN0IHBhcnNlVHlwZUNhc3QoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChUWVBFX0NBU1QpOwotCi0gICAgUHJpbWl0aXZlIHZhbHVlID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBhc3NlcnQodmFsdWUgIT0gbnVsbCk7Ci0KLSAgICBkYXJ0X3R5cGVzLkRhcnRUeXBlIHR5cGUgPSBuZXcgRHVtbXlOYW1lZFR5cGUodG9rZW5zLnJlYWQoKSk7Ci0KLSAgICBMaXN0PGlyLlByaW1pdGl2ZT4gdHlwZUFyZ3VtZW50cyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotCi0gICAgQ29udGludWF0aW9uIGNvbnQgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIGFzc2VydChjb250ICE9IG51bGwpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IFR5cGVDYXN0KHZhbHVlLCB0eXBlLCB0eXBlQXJndW1lbnRzLCBjb250KTsKLSAgfQotCi0gIC8vLyAoVHlwZVRlc3QgdmFsdWUgdHlwZSBhcmdzKQotICBUeXBlVGVzdCBwYXJzZVR5cGVUZXN0KCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoVFlQRV9URVNUKTsKLQotICAgIFByaW1pdGl2ZSB2YWx1ZSA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgYXNzZXJ0KHZhbHVlICE9IG51bGwpOwotCi0gICAgZGFydF90eXBlcy5EYXJ0VHlwZSB0eXBlID0gbmV3IER1bW15TmFtZWRUeXBlKHRva2Vucy5yZWFkKCkpOwotCi0gICAgTGlzdDxpci5QcmltaXRpdmU+IHR5cGVBcmd1bWVudHMgPSBwYXJzZVByaW1pdGl2ZUxpc3QoKTsKLQotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBUeXBlVGVzdCh2YWx1ZSwgdHlwZSwgdHlwZUFyZ3VtZW50cyk7Ci0gIH0KLQotICAvLy8gKEFwcGx5QnVpbHRpbk9wZXJhdG9yIG9wZXJhdG9yIGFyZ3MpCi0gIEFwcGx5QnVpbHRpbk9wZXJhdG9yIHBhcnNlQXBwbHlCdWlsdGluT3BlcmF0b3IoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChBUFBMWV9CVUlMVElOX09QRVJBVE9SKTsKLQotICAgIFN0cmluZyBvcGVyYXRvck5hbWUgPSB0b2tlbnMucmVhZCgpOwotICAgIEJ1aWx0aW5PcGVyYXRvciBvcGVyYXRvcjsKLSAgICBmb3IgKEJ1aWx0aW5PcGVyYXRvciBvcCBpbiBCdWlsdGluT3BlcmF0b3IudmFsdWVzKSB7Ci0gICAgICBpZiAob3AudG9TdHJpbmcoKSA9PSBvcGVyYXRvck5hbWUpIHsKLSAgICAgICAgb3BlcmF0b3IgPSBvcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgICB9Ci0gICAgfQotICAgIGFzc2VydChvcGVyYXRvciAhPSBudWxsKTsKLSAgICBMaXN0PGlyLlByaW1pdGl2ZT4gYXJndW1lbnRzID0gcGFyc2VQcmltaXRpdmVMaXN0KCk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgQXBwbHlCdWlsdGluT3BlcmF0b3Iob3BlcmF0b3IsIGFyZ3VtZW50cyk7Ci0gIH0KLQotICAvLy8gKEdldExlbmd0aCBvYmplY3QpCi0gIEdldExlbmd0aCBwYXJzZUdldExlbmd0aCgpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KEdFVF9MRU5HVEgpOwotICAgIFByaW1pdGl2ZSBvYmplY3QgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBHZXRMZW5ndGgob2JqZWN0KTsKLSAgfQotCi0gIC8vLyAoR2V0SW5kZXggb2JqZWN0IGluZGV4KQotICBHZXRJbmRleCBwYXJzZUdldEluZGV4KCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoR0VUX0lOREVYKTsKLSAgICBQcmltaXRpdmUgb2JqZWN0ID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBQcmltaXRpdmUgaW5kZXggPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBHZXRJbmRleChvYmplY3QsIGluZGV4KTsKLSAgfQotCi0gIC8vLyAoU2V0SW5kZXggb2JqZWN0IGluZGV4IHZhbHVlKQotICBTZXRJbmRleCBwYXJzZVNldEluZGV4KCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoU0VUX0lOREVYKTsKLSAgICBQcmltaXRpdmUgb2JqZWN0ID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBQcmltaXRpdmUgaW5kZXggPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIFByaW1pdGl2ZSB2YWx1ZSA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IFNldEluZGV4KG9iamVjdCwgaW5kZXgsIHZhbHVlKTsKLSAgfQotCi0gIC8vLyAoU2V0U3RhdGljIGZpZWxkIHZhbHVlKQotICBTZXRTdGF0aWMgcGFyc2VTZXRTdGF0aWMoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChTRVRfU1RBVElDKTsKLQotICAgIEVsZW1lbnQgZmllbGRFbGVtZW50ID0gbmV3IER1bW15RWxlbWVudCh0b2tlbnMucmVhZCgpKTsKLSAgICBQcmltaXRpdmUgdmFsdWUgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIGFzc2VydCh2YWx1ZSAhPSBudWxsKTsKLQotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBTZXRTdGF0aWMoZmllbGRFbGVtZW50LCB2YWx1ZSwgbnVsbCk7Ci0gIH0KLQotICAvLy8gKEdldExhenlTdGF0aWMgZmllbGQgY29udCkKLSAgR2V0TGF6eVN0YXRpYyBwYXJzZUdldExhenlTdGF0aWMoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChHRVRfTEFaWV9TVEFUSUMpOwotCi0gICAgRWxlbWVudCBmaWVsZEVsZW1lbnQgPSBuZXcgRHVtbXlFbGVtZW50KHRva2Vucy5yZWFkKCkpOwotICAgIENvbnRpbnVhdGlvbiBjb250ID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLSAgICBhc3NlcnQoY29udCAhPSBudWxsKTsKLQotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBHZXRMYXp5U3RhdGljKGZpZWxkRWxlbWVudCwgY29udCwgbnVsbCk7Ci0gIH0KLQotICAvLy8gKFVucmVhY2hhYmxlKQotICBVbnJlYWNoYWJsZSBwYXJzZVVucmVhY2hhYmxlKCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoVU5SRUFDSEFCTEUpOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBVbnJlYWNoYWJsZSgpOwotICB9Ci0KLSAgLy8vIChMZXRQcmltIChuYW1lIHByaW1pdGl2ZSkgYm9keSkKLSAgTGV0UHJpbSBwYXJzZUxldFByaW0oKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChMRVRfUFJJTSk7Ci0KLSAgICAvLyAobmFtZQotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoKTsKLSAgICBTdHJpbmcgbmFtZSA9IHRva2Vucy5yZWFkKCk7Ci0KLSAgICAvLyBwcmltaXRpdmUpCi0gICAgUHJpbWl0aXZlIHByaW1pdGl2ZSA9IHBhcnNlUHJpbWl0aXZlKCk7Ci0gICAgbmFtZTJ2YXJpYWJsZVtuYW1lXSA9IHByaW1pdGl2ZTsKLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotCi0gICAgLy8gYm9keSkKLSAgICBFeHByZXNzaW9uIGJvZHkgPSBwYXJzZUV4cHJlc3Npb24oKTsKLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotCi0gICAgcmV0dXJuIG5ldyBMZXRQcmltKHByaW1pdGl2ZSkuLnBsdWcoYm9keSk7Ci0gIH0KLQotICBQcmltaXRpdmUgcGFyc2VQcmltaXRpdmUoKSB7Ci0gICAgYXNzZXJ0KHRva2Vucy5jdXJyZW50ID09ICIoIik7Ci0KLSAgICBzd2l0Y2ggKHRva2Vucy5uZXh0KSB7Ci0gICAgICBjYXNlIENPTlNUQU5UOgotICAgICAgICByZXR1cm4gcGFyc2VDb25zdGFudCgpOwotICAgICAgY2FzZSBDUkVBVEVfRlVOQ1RJT046Ci0gICAgICAgIHJldHVybiBwYXJzZUNyZWF0ZUZ1bmN0aW9uKCk7Ci0gICAgICBjYXNlIEdFVF9NVVRBQkxFOgotICAgICAgICByZXR1cm4gcGFyc2VHZXRNdXRhYmxlKCk7Ci0gICAgICBjYXNlIFNFVF9NVVRBQkxFOgotICAgICAgICByZXR1cm4gcGFyc2VTZXRNdXRhYmxlKCk7Ci0gICAgICBjYXNlIExJVEVSQUxfTElTVDoKLSAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbExpc3QoKTsKLSAgICAgIGNhc2UgTElURVJBTF9NQVA6Ci0gICAgICAgIHJldHVybiBwYXJzZUxpdGVyYWxNYXAoKTsKLSAgICAgIGNhc2UgUkVJRllfVFlQRV9WQVI6Ci0gICAgICAgIHJldHVybiBwYXJzZVJlaWZ5VHlwZVZhcigpOwotICAgICAgY2FzZSBHRVRfU1RBVElDOgotICAgICAgICByZXR1cm4gcGFyc2VHZXRTdGF0aWMoKTsKLSAgICAgIGNhc2UgU0VUX1NUQVRJQzoKLSAgICAgICAgcmV0dXJuIHBhcnNlU2V0U3RhdGljKCk7Ci0gICAgICBjYXNlIFRZUEVfVEVTVDoKLSAgICAgICAgcmV0dXJuIHBhcnNlVHlwZVRlc3QoKTsKLSAgICAgIGNhc2UgQVBQTFlfQlVJTFRJTl9PUEVSQVRPUjoKLSAgICAgICAgcmV0dXJuIHBhcnNlQXBwbHlCdWlsdGluT3BlcmF0b3IoKTsKLSAgICAgIGNhc2UgR0VUX0xFTkdUSDoKLSAgICAgICAgcmV0dXJuIHBhcnNlR2V0TGVuZ3RoKCk7Ci0gICAgICBjYXNlIEdFVF9JTkRFWDoKLSAgICAgICAgcmV0dXJuIHBhcnNlR2V0SW5kZXgoKTsKLSAgICAgIGNhc2UgU0VUX0lOREVYOgotICAgICAgICByZXR1cm4gcGFyc2VTZXRJbmRleCgpOwotICAgICAgY2FzZSBHRVRfRklFTEQ6Ci0gICAgICAgIHJldHVybiBwYXJzZUdldEZpZWxkKCk7Ci0gICAgICBjYXNlIFNFVF9GSUVMRDoKLSAgICAgICAgcmV0dXJuIHBhcnNlU2V0RmllbGQoKTsKLSAgICAgIGRlZmF1bHQ6Ci0gICAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG51bGw7Ci0gIH0KLQotICAvLy8gKENvbnN0YW50IChjb25zdGFudCkpCi0gIENvbnN0YW50IHBhcnNlQ29uc3RhbnQoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChDT05TVEFOVCk7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydCgpOwotICAgIENvbnN0YW50IHJlc3VsdDsKLSAgICBTdHJpbmcgdGFnID0gdG9rZW5zLnJlYWQoKTsKLSAgICBzd2l0Y2ggKHRhZykgewotICAgICAgY2FzZSBOVUxMOgotICAgICAgICByZXN1bHQgPSBuZXcgQ29uc3RhbnQoCi0gICAgICAgICAgICBuZXcgTnVsbENvbnN0YW50RXhwcmVzc2lvbihuZXcgTnVsbENvbnN0YW50VmFsdWUoKSkpOwotICAgICAgICBicmVhazsKLSAgICAgIGNhc2UgQk9PTDoKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gdG9rZW5zLnJlYWQoKTsKLSAgICAgICAgaWYgKHZhbHVlID09ICJ0cnVlIikgewotICAgICAgICAgIHJlc3VsdCA9IG5ldyBDb25zdGFudCgKLSAgICAgICAgICAgICAgbmV3IEJvb2xDb25zdGFudEV4cHJlc3Npb24odHJ1ZSwgbmV3IFRydWVDb25zdGFudFZhbHVlKCkpKTsKLSAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAiZmFsc2UiKSB7Ci0gICAgICAgICAgcmVzdWx0ID0gbmV3IENvbnN0YW50KAotICAgICAgICAgICAgICBuZXcgQm9vbENvbnN0YW50RXhwcmVzc2lvbihmYWxzZSwgbmV3IEZhbHNlQ29uc3RhbnRWYWx1ZSgpKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgIkludmFsaWQgQm9vbGVhbiB2YWx1ZSAnJHZhbHVlJy4iOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgICAgY2FzZSBTVFJJTkc6Ci0gICAgICAgIExpc3Q8U3RyaW5nPiBzdHJpbmdzID0gPFN0cmluZz5bXTsKLSAgICAgICAgZG8gewotICAgICAgICAgIHN0cmluZ3MuYWRkKHRva2Vucy5yZWFkKCkpOwotICAgICAgICB9IHdoaWxlICh0b2tlbnMuY3VycmVudCAhPSAiKSIpOwotICAgICAgICBTdHJpbmcgc3RyaW5nID0gc3RyaW5ncy5qb2luKCIgIik7Ci0gICAgICAgIGFzc2VydChzdHJpbmcuc3RhcnRzV2l0aCgnIicpICYmIHN0cmluZy5lbmRzV2l0aCgnIicpKTsKLSAgICAgICAgU3RyaW5nIHRleHQgPSBzdHJpbmcuc3Vic3RyaW5nKDEsIHN0cmluZy5sZW5ndGggLSAxKTsKLSAgICAgICAgU3RyaW5nQ29uc3RhbnRWYWx1ZSB2YWx1ZSA9IG5ldyBTdHJpbmdDb25zdGFudFZhbHVlKAotICAgICAgICAgICAgbmV3IExpdGVyYWxEYXJ0U3RyaW5nKHRleHQpKTsKLSAgICAgICAgcmVzdWx0ID0gbmV3IENvbnN0YW50KG5ldyBTdHJpbmdDb25zdGFudEV4cHJlc3Npb24odGV4dCwgdmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIElOVDoKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gdG9rZW5zLnJlYWQoKTsKLSAgICAgICAgaW50IGludFZhbHVlID0gaW50LnBhcnNlKHZhbHVlLCBvbkVycm9yOiAoXykgPT4gbnVsbCk7Ci0gICAgICAgIGlmIChpbnRWYWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgdGhyb3cgIkludmFsaWQgaW50IHZhbHVlICd2YWx1ZScuIjsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSBuZXcgQ29uc3RhbnQobmV3IEludENvbnN0YW50RXhwcmVzc2lvbigKLSAgICAgICAgICAgIGludFZhbHVlLCBuZXcgSW50Q29uc3RhbnRWYWx1ZShpbnRWYWx1ZSkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICBjYXNlIERPVUJMRToKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gdG9rZW5zLnJlYWQoKTsKLSAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gZG91YmxlLnBhcnNlKHZhbHVlLCAoXykgPT4gbnVsbCk7Ci0gICAgICAgIGlmIChkb3VibGVWYWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgdGhyb3cgIkludmFsaWQgZG91YmxlIHZhbHVlICckdmFsdWUnLiI7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gbmV3IENvbnN0YW50KG5ldyBEb3VibGVDb25zdGFudEV4cHJlc3Npb24oCi0gICAgICAgICAgICBkb3VibGVWYWx1ZSwgbmV3IERvdWJsZUNvbnN0YW50VmFsdWUoZG91YmxlVmFsdWUpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgIlVuZXhwZWN0ZWQgY29uc3RhbnQgdGFnICckdGFnJy4iOwotICAgIH0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLSAgfQotCi0gIC8vLyAoQ3JlYXRlRnVuY3Rpb24gKGRlZmluaXRpb24pKQotICBDcmVhdGVGdW5jdGlvbiBwYXJzZUNyZWF0ZUZ1bmN0aW9uKCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoQ1JFQVRFX0ZVTkNUSU9OKTsKLSAgICBGdW5jdGlvbkRlZmluaXRpb24gZGVmID0gcGFyc2VGdW5jdGlvbkRlZmluaXRpb24oKTsKLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgQ3JlYXRlRnVuY3Rpb24oZGVmKTsKLSAgfQotCi0gIE11dGFibGVWYXJpYWJsZSBhZGRNdXRhYmxlVmFyaWFibGUoU3RyaW5nIG5hbWUpIHsKLSAgICBhc3NlcnQoIW5hbWUydmFyaWFibGUuY29udGFpbnNLZXkobmFtZSkpOwotICAgIE11dGFibGVWYXJpYWJsZSB2YXJpYWJsZSA9IG5ldyBNdXRhYmxlVmFyaWFibGUobmV3IER1bW15RWxlbWVudChuYW1lKSk7Ci0gICAgbmFtZTJ2YXJpYWJsZVtuYW1lXSA9IHZhcmlhYmxlOwotICAgIHJldHVybiB2YXJpYWJsZTsKLSAgfQotCi0gIC8vLyAoR2V0TXV0YWJsZSBuYW1lKQotICBHZXRNdXRhYmxlIHBhcnNlR2V0TXV0YWJsZSgpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KEdFVF9NVVRBQkxFKTsKLSAgICBNdXRhYmxlVmFyaWFibGUgbG9jYWwgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0KLSAgICByZXR1cm4gbmV3IEdldE11dGFibGUobG9jYWwpOwotICB9Ci0KLSAgLy8vIChMaXRlcmFsTGlzdCAodmFsdWVzKSkKLSAgTGl0ZXJhbExpc3QgcGFyc2VMaXRlcmFsTGlzdCgpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KExJVEVSQUxfTElTVCk7Ci0gICAgTGlzdDxQcmltaXRpdmU+IHZhbHVlcyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBMaXRlcmFsTGlzdChudWxsLCB2YWx1ZXMpOwotICB9Ci0KLSAgLy8vIChMaXRlcmFsTWFwIChrZXlzKSAodmFsdWVzKSkKLSAgTGl0ZXJhbE1hcCBwYXJzZUxpdGVyYWxNYXAoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChMSVRFUkFMX01BUCk7Ci0KLSAgICBMaXN0PFByaW1pdGl2ZT4ga2V5cyAgID0gcGFyc2VQcmltaXRpdmVMaXN0KCk7Ci0gICAgTGlzdDxQcmltaXRpdmU+IHZhbHVlcyA9IHBhcnNlUHJpbWl0aXZlTGlzdCgpOwotCi0gICAgTGlzdDxMaXRlcmFsTWFwRW50cnk+IGVudHJpZXMgPSA8TGl0ZXJhbE1hcEVudHJ5PltdOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewotICAgICAgZW50cmllcy5hZGQobmV3IExpdGVyYWxNYXBFbnRyeShrZXlzW2ldLCB2YWx1ZXNbaV0pKTsKLSAgICB9Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgTGl0ZXJhbE1hcChudWxsLCBlbnRyaWVzKTsKLSAgfQotCi0gIC8vLyAoUmVpZnlUeXBlVmFyIHR5cGUpCi0gIFJlaWZ5VHlwZVZhciBwYXJzZVJlaWZ5VHlwZVZhcigpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KFJFSUZZX1RZUEVfVkFSKTsKLQotICAgIFR5cGVWYXJpYWJsZUVsZW1lbnQgdHlwZSA9IG5ldyBEdW1teUVsZW1lbnQodG9rZW5zLnJlYWQoKSk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgUmVpZnlUeXBlVmFyKHR5cGUpOwotICB9Ci0KLSAgLy8vIChHZXRTdGF0aWMgZmllbGQpCi0gIEdldFN0YXRpYyBwYXJzZUdldFN0YXRpYygpIHsKLSAgICB0b2tlbnMuY29uc3VtZVN0YXJ0KEdFVF9TVEFUSUMpOwotCi0gICAgRWxlbWVudCBmaWVsZCA9IG5ldyBEdW1teUVsZW1lbnQodG9rZW5zLnJlYWQoKSk7Ci0KLSAgICB0b2tlbnMuY29uc3VtZUVuZCgpOwotICAgIHJldHVybiBuZXcgR2V0U3RhdGljKGZpZWxkLCBudWxsKTsKLSAgfQotCi0gIC8vLyAoR2V0RmllbGQgb2JqZWN0IGZpZWxkKQotICBHZXRGaWVsZCBwYXJzZUdldEZpZWxkKCkgewotICAgIHRva2Vucy5jb25zdW1lU3RhcnQoR0VUX0ZJRUxEKTsKLQotICAgIFByaW1pdGl2ZSBvYmplY3QgPSBuYW1lMnZhcmlhYmxlW3Rva2Vucy5yZWFkKCldOwotICAgIEVsZW1lbnQgZmllbGQgPSBuZXcgRHVtbXlFbGVtZW50KHRva2Vucy5yZWFkKCkpOwotCi0gICAgdG9rZW5zLmNvbnN1bWVFbmQoKTsKLSAgICByZXR1cm4gbmV3IEdldEZpZWxkKG9iamVjdCwgZmllbGQpOwotICB9Ci0KLSAgLy8vIChTZXRGaWVsZCBvYmplY3QgZmllbGQgdmFsdWUpCi0gIFNldEZpZWxkIHBhcnNlU2V0RmllbGQoKSB7Ci0gICAgdG9rZW5zLmNvbnN1bWVTdGFydChTRVRfRklFTEQpOwotCi0gICAgUHJpbWl0aXZlIG9iamVjdCA9IG5hbWUydmFyaWFibGVbdG9rZW5zLnJlYWQoKV07Ci0gICAgRWxlbWVudCBmaWVsZCA9IG5ldyBEdW1teUVsZW1lbnQodG9rZW5zLnJlYWQoKSk7Ci0gICAgUHJpbWl0aXZlIHZhbHVlID0gbmFtZTJ2YXJpYWJsZVt0b2tlbnMucmVhZCgpXTsKLQotICAgIHRva2Vucy5jb25zdW1lRW5kKCk7Ci0gICAgcmV0dXJuIG5ldyBTZXRGaWVsZChvYmplY3QsIGZpZWxkLCB2YWx1ZSk7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L3Rlc3RfaGVscGVyLmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2JhY2tlbmRfZGFydC90ZXN0X2hlbHBlci5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWViNjU2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvYmFja2VuZF9kYXJ0L3Rlc3RfaGVscGVyLmRhcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTQsIHRoZSBEYXJ0IHByb2plY3QgYXV0aG9ycy4gIFBsZWFzZSBzZWUgdGhlIEFVVEhPUlMgZmlsZQotLy8gZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEKLS8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWxpYnJhcnkgZGFydF9iYWNrZW5kLnRlc3RfaGVscGVyOwotCi1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwotaW1wb3J0ICdwYWNrYWdlOmFzeW5jX2hlbHBlci9hc3luY19oZWxwZXIuZGFydCc7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvY29tcGlsZXIuZGFydCcgYXMgYXBpOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9jb21waWxlci5kYXJ0JzsKLWltcG9ydCAnLi4vLi4vLi4vLi4vcGtnL2FuYWx5emVyMmRhcnQvdGVzdC90ZXN0X2hlbHBlci5kYXJ0JzsKLWltcG9ydCAnLi4vY29tcGlsZXJfaGVscGVyLmRhcnQnOwotCi0vLy8gQ29tcGlsZXMgdGhlIGdpdmVuIGRhcnQgY29kZSAod2hpY2ggbXVzdCBpbmNsdWRlIGEgJ21haW4nIGZ1bmN0aW9uKSBhbmQKLS8vLyByZXR1cm5zIHRoZSBjb21waWxlci4KLUZ1dHVyZTxDb21waWxlcj4gY29tcGlsZXJGb3IoU3RyaW5nIGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcGkuQ29tcGlsZXJPdXRwdXRQcm92aWRlciBvdXRwdXRQcm92aWRlcn0pIHsKLSAgTW9ja0NvbXBpbGVyIGNvbXBpbGVyID0gbmV3IE1vY2tDb21waWxlci5pbnRlcm5hbCgKLSAgICAgIGVtaXRKYXZhU2NyaXB0OiBmYWxzZSwKLSAgICAgIGVuYWJsZU1pbmlmaWNhdGlvbjogZmFsc2UsCi0gICAgICBvdXRwdXRQcm92aWRlcjogb3V0cHV0UHJvdmlkZXIpOwotICBjb21waWxlci5kaWFnbm9zdGljSGFuZGxlciA9IGNyZWF0ZUhhbmRsZXIoY29tcGlsZXIsIGNvZGUpOwotICByZXR1cm4gY29tcGlsZXIuaW5pdCgpLnRoZW4oKF8pIHsKLSAgICBjb21waWxlci5wYXJzZVNjcmlwdChjb2RlKTsKLQotICAgIEVsZW1lbnQgZWxlbWVudCA9IGNvbXBpbGVyLm1haW5BcHAuZmluZCgnbWFpbicpOwotICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVybiBudWxsOwotCi0gICAgY29tcGlsZXIubWFpbkZ1bmN0aW9uID0gZWxlbWVudDsKLSAgICBjb21waWxlci5waGFzZSA9IENvbXBpbGVyLlBIQVNFX1JFU09MVklORzsKLSAgICBjb21waWxlci5iYWNrZW5kLmVucXVldWVIZWxwZXJzKGNvbXBpbGVyLmVucXVldWVyLnJlc29sdXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlci5nbG9iYWxEZXBlbmRlbmNpZXMpOwotICAgIGNvbXBpbGVyLnByb2Nlc3NRdWV1ZShjb21waWxlci5lbnF1ZXVlci5yZXNvbHV0aW9uLCBlbGVtZW50KTsKLSAgICBjb21waWxlci53b3JsZC5wb3B1bGF0ZSgpOwotICAgIGNvbXBpbGVyLmJhY2tlbmQub25SZXNvbHV0aW9uQ29tcGxldGUoKTsKLQotICAgIGNvbXBpbGVyLmlyQnVpbGRlci5idWlsZE5vZGVzKCk7Ci0KLSAgICByZXR1cm4gY29tcGlsZXI7Ci0gIH0pOwotfQotCi0vLy8gVGVzdCBncm91cCB1c2luZyBhc3luY19oZWxwZXIuCi1hc3luY1Rlc3RlcihHcm91cCBncm91cCwgUnVuVGVzdCBydW5UZXN0KSB7Ci0gIGFzeW5jVGVzdCgoKSA9PiBGdXR1cmUuZm9yRWFjaChncm91cC5yZXN1bHRzLCBydW5UZXN0KSk7Ci19CmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL2dlbmVyYXRlX2NvZGVfd2l0aF9jb21waWxlX3RpbWVfZXJyb3JzX3Rlc3QuZGFydCBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvZ2VuZXJhdGVfY29kZV93aXRoX2NvbXBpbGVfdGltZV9lcnJvcnNfdGVzdC5kYXJ0CmluZGV4IGQyYjI5YjAuLjkyOTEwZGMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvZ2VuZXJhdGVfY29kZV93aXRoX2NvbXBpbGVfdGltZV9lcnJvcnNfdGVzdC5kYXJ0CisrKyBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvZ2VuZXJhdGVfY29kZV93aXRoX2NvbXBpbGVfdGltZV9lcnJvcnNfdGVzdC5kYXJ0CkBAIC0xMCw3ICsxMCw2IEBACiBpbXBvcnQgJ3BhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTphc3luY19oZWxwZXIvYXN5bmNfaGVscGVyLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9jb21waWxlci5kYXJ0JzsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvZGFydF9iYWNrZW5kL2RhcnRfYmFja2VuZC5kYXJ0JzsKIGltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvanNfYmFja2VuZC9qc19iYWNrZW5kLmRhcnQnOwogaW1wb3J0ICdtZW1vcnlfY29tcGlsZXIuZGFydCc7CiBpbXBvcnQgJ291dHB1dF9jb2xsZWN0b3IuZGFydCc7CkBAIC01MywxNCArNTIsOCBAQAogICAgICAgY29sbGVjdG9yLmhpbnRzLmlzTm90RW1wdHksCiAgICAgICAiVW5leHBlY3RlZCBoaW50czogJHtjb2xsZWN0b3Iud2FybmluZ3N9Iik7CiAKLSAgYm9vbCBpc0NvZGVHZW5lcmF0ZWQ7Ci0gIGlmIChvcHRpb25zLmNvbnRhaW5zKCctLW91dHB1dC10eXBlPWRhcnQnKSkgewotICAgIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICAgIGlzQ29kZUdlbmVyYXRlZCA9IGJhY2tlbmQub3V0cHV0dGVyLmxpYnJhcnlJbmZvICE9IG51bGw7Ci0gIH0gZWxzZSB7Ci0gICAgSmF2YVNjcmlwdEJhY2tlbmQgYmFja2VuZCA9IGNvbXBpbGVyLmJhY2tlbmQ7Ci0gICAgaXNDb2RlR2VuZXJhdGVkID0gYmFja2VuZC5nZW5lcmF0ZWRDb2RlLmlzTm90RW1wdHk7Ci0gIH0KKyAgSmF2YVNjcmlwdEJhY2tlbmQgYmFja2VuZCA9IGNvbXBpbGVyLmJhY2tlbmQ7CisgIGJvb2wgaXNDb2RlR2VuZXJhdGVkID0gYmFja2VuZC5nZW5lcmF0ZWRDb2RlLmlzTm90RW1wdHk7CiAgIEV4cGVjdC5lcXVhbHMoCiAgICAgICBleHBlY3RlZENvZGVHZW5lcmF0ZWQsCiAgICAgICBpc0NvZGVHZW5lcmF0ZWQsCkBAIC0xMTQsMjYgKzEwNyw1IEBACiAgICAgICAgZXhwZWN0ZWRDb2RlR2VuZXJhdGVkOiBmYWxzZSwKICAgICAgICBleHBlY3RlZE91dHB1dDogZmFsc2UsCiAgICAgICAgZXhwZWN0SGludDogdHJ1ZSk7Ci0KLSAgICBhd2FpdCB0ZXN0KAotICAgICAgIFsnLS1vdXRwdXQtdHlwZT1kYXJ0J10sCi0gICAgICAgZXhwZWN0ZWRDb2RlR2VuZXJhdGVkOiBmYWxzZSwKLSAgICAgICBleHBlY3RlZE91dHB1dDogZmFsc2UpOwotICAgIGF3YWl0IHRlc3QoCi0gICAgICAgWyctLW91dHB1dC10eXBlPWRhcnQnLCAnLS10ZXN0LW1vZGUnXSwKLSAgICAgICBleHBlY3RlZENvZGVHZW5lcmF0ZWQ6IGZhbHNlLAotICAgICAgIGV4cGVjdGVkT3V0cHV0OiBmYWxzZSk7Ci0gICAgYXdhaXQgdGVzdCgKLSAgICAgICBbJy0tb3V0cHV0LXR5cGU9ZGFydCcsICctLWdlbmVyYXRlLWNvZGUtd2l0aC1jb21waWxlLXRpbWUtZXJyb3JzJ10sCi0gICAgICAgZXhwZWN0ZWRDb2RlR2VuZXJhdGVkOiBmYWxzZSwKLSAgICAgICBleHBlY3RlZE91dHB1dDogZmFsc2UsCi0gICAgICAgZXhwZWN0SGludDogdHJ1ZSk7Ci0gICAgYXdhaXQgdGVzdCgKLSAgICAgICBbJy0tb3V0cHV0LXR5cGU9ZGFydCcsCi0gICAgICAgICctLWdlbmVyYXRlLWNvZGUtd2l0aC1jb21waWxlLXRpbWUtZXJyb3JzJywKLSAgICAgICAgJy0tdGVzdC1tb2RlJ10sCi0gICAgICAgZXhwZWN0ZWRDb2RlR2VuZXJhdGVkOiBmYWxzZSwKLSAgICAgICBleHBlY3RlZE91dHB1dDogZmFsc2UsCi0gICAgICAgZXhwZWN0SGludDogdHJ1ZSk7CiAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9tZXNzYWdlX2tpbmRfaGVscGVyLmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21lc3NhZ2Vfa2luZF9oZWxwZXIuZGFydAppbmRleCAzNGU3ZWZlLi4zMTA5NGU0IDEwMDY0NAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21lc3NhZ2Vfa2luZF9oZWxwZXIuZGFydAorKysgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21lc3NhZ2Vfa2luZF9oZWxwZXIuZGFydApAQCAtMTAsOCArMTAsNiBAQAogaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9jb21tYW5kbGluZV9vcHRpb25zLmRhcnQnOwogaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9jb21waWxlci5kYXJ0JyBzaG93CiAgICAgQ29tcGlsZXI7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RhcnRfYmFja2VuZC9kYXJ0X2JhY2tlbmQuZGFydCcgc2hvdwotICAgIERhcnRCYWNrZW5kOwogaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kaWFnbm9zdGljcy9tZXNzYWdlcy5kYXJ0JyBzaG93CiAgICAgTWVzc2FnZUtpbmQsCiAgICAgTWVzc2FnZVRlbXBsYXRlOwpAQCAtNzEsMjEgKzY5LDEyIEBACiAgICAgfQogICAgIERpYWdub3N0aWNDb2xsZWN0b3IgY29sbGVjdG9yID0gbmV3IERpYWdub3N0aWNDb2xsZWN0b3IoKTsKIAotICAgIGJvb2wgb2xkQmFja2VuZElzRGFydDsKLSAgICBpZiAoY2FjaGVkQ29tcGlsZXIgIT0gbnVsbCkgewotICAgICAgb2xkQmFja2VuZElzRGFydCA9IGNhY2hlZENvbXBpbGVyLmJhY2tlbmQgaXMgRGFydEJhY2tlbmQ7Ci0gICAgfQotICAgIGJvb2wgbmV3QmFja2VuZElzRGFydCA9IHRlbXBsYXRlLm9wdGlvbnMuY29udGFpbnMoJy0tb3V0cHV0LXR5cGU9ZGFydCcpOwotCiAgICAgQ29tcGlsZXIgY29tcGlsZXIgPSBjb21waWxlckZvcigKICAgICAgICAgbWVtb3J5U291cmNlRmlsZXM6IGV4YW1wbGUsCiAgICAgICAgIGRpYWdub3N0aWNIYW5kbGVyOiBjb2xsZWN0b3IsCiAgICAgICAgIG9wdGlvbnM6IFtGbGFncy5hbmFseXplT25seSwKICAgICAgICAgICAgICAgICAgIEZsYWdzLmVuYWJsZUV4cGVyaW1lbnRhbE1pcnJvcnNdLi5hZGRBbGwodGVtcGxhdGUub3B0aW9ucyksCi0gICAgICAgIGNhY2hlZENvbXBpbGVyOgotICAgICAgICAgICAgIC8vIFRPRE8oam9obm5pd2ludGhlcik6IFJlbW92ZSB0aGlzIHJlc3RyaWN0aW9uIHdoZW4gY29uc3RhbnQKLSAgICAgICAgICAgICAvLyB2YWx1ZXMgY2FuIGJlIGNvbXB1dGVkIGRpcmVjdGx5IGZyb20gdGhlIGV4cHJlc3Npb25zLgotICAgICAgICAgICAgIG9sZEJhY2tlbmRJc0RhcnQgPT0gbmV3QmFja2VuZElzRGFydCA/IGNhY2hlZENvbXBpbGVyIDogbnVsbCk7CisgICAgICAgIGNhY2hlZENvbXBpbGVyOiBjYWNoZWRDb21waWxlcik7CiAKICAgICByZXR1cm4gY29tcGlsZXIucnVuKFVyaS5wYXJzZSgnbWVtb3J5Om1haW4uZGFydCcpKS50aGVuKChfKSB7CiAgICAgICBJdGVyYWJsZTxDb2xsZWN0ZWRNZXNzYWdlPiBtZXNzYWdlcyA9IGNvbGxlY3Rvci5maWx0ZXJNZXNzYWdlc0J5S2luZHMoCmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21pcnJvcl9oZWxwZXJfcmVuYW1lX3Rlc3QuZGFydCBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvbWlycm9yX2hlbHBlcl9yZW5hbWVfdGVzdC5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGVkYzE1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvbWlycm9yX2hlbHBlcl9yZW5hbWVfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMywgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwotaW1wb3J0ICJwYWNrYWdlOmFzeW5jX2hlbHBlci9hc3luY19oZWxwZXIuZGFydCI7Ci1pbXBvcnQgJ21lbW9yeV9jb21waWxlci5kYXJ0JyBzaG93IHJ1bkNvbXBpbGVyLCBPdXRwdXRDb2xsZWN0b3I7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2FwaWltcGwuZGFydCcgc2hvdwotICAgIENvbXBpbGVySW1wbDsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvdHJlZS90cmVlLmRhcnQnIHNob3cKLSAgICBOb2RlOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9kYXJ0X2JhY2tlbmQvZGFydF9iYWNrZW5kLmRhcnQnOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9taXJyb3JfcmVuYW1lci9taXJyb3JfcmVuYW1lci5kYXJ0JzsKLQotbWFpbigpIHsKLSAgYXN5bmNUZXN0KCgpIGFzeW5jIHsKLSAgICBhd2FpdCB0ZXN0V2l0aE1pcnJvckhlbHBlckxpYnJhcnkobWluaWZ5OiB0cnVlKTsKLSAgICBhd2FpdCB0ZXN0V2l0aE1pcnJvckhlbHBlckxpYnJhcnkobWluaWZ5OiBmYWxzZSk7Ci0gICAgYXdhaXQgdGVzdFdpdGhvdXRNaXJyb3JIZWxwZXJMaWJyYXJ5KG1pbmlmeTogdHJ1ZSk7Ci0gICAgYXdhaXQgdGVzdFdpdGhvdXRNaXJyb3JIZWxwZXJMaWJyYXJ5KG1pbmlmeTogZmFsc2UpOwotICB9KTsKLX0KLQotRnV0dXJlPENvbXBpbGVySW1wbD4gcnVuKHtPdXRwdXRDb2xsZWN0b3Igb3V0cHV0Q29sbGVjdG9yLAotICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlTWlycm9ySGVscGVyTGlicmFyeTogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgYm9vbCBtaW5pZnk6IGZhbHNlfSkgYXN5bmMgewotICBMaXN0PFN0cmluZz4gb3B0aW9ucyA9IFsnLS1vdXRwdXQtdHlwZT1kYXJ0J107Ci0gIGlmIChtaW5pZnkpIHsKLSAgICBvcHRpb25zLmFkZCgnLS1taW5pZnknKTsKLSAgfQotICB2YXIgcmVzdWx0ID0gYXdhaXQgcnVuQ29tcGlsZXIoCi0gICAgICBtZW1vcnlTb3VyY2VGaWxlczogTUVNT1JZX1NPVVJDRV9GSUxFUywKLSAgICAgIG91dHB1dFByb3ZpZGVyOiBvdXRwdXRDb2xsZWN0b3IsCi0gICAgICBvcHRpb25zOiBvcHRpb25zLAotICAgICAgYmVmb3JlUnVuOiAoQ29tcGlsZXJJbXBsIGNvbXBpbGVyKSB7Ci0gICAgICAgIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICAgICAgICBiYWNrZW5kLnVzZU1pcnJvckhlbHBlckxpYnJhcnkgPSB1c2VNaXJyb3JIZWxwZXJMaWJyYXJ5OwotICAgICAgfSk7Ci0gIHJldHVybiByZXN1bHQuY29tcGlsZXI7Ci19Ci0KLUZ1dHVyZSB0ZXN0V2l0aE1pcnJvckhlbHBlckxpYnJhcnkoe2Jvb2wgbWluaWZ5fSkgYXN5bmMgewotICBPdXRwdXRDb2xsZWN0b3Igb3V0cHV0Q29sbGVjdG9yID0gbmV3IE91dHB1dENvbGxlY3RvcigpOwotICBDb21waWxlckltcGwgY29tcGlsZXIgPSBhd2FpdCBydW4oCi0gICAgICBvdXRwdXRDb2xsZWN0b3I6IG91dHB1dENvbGxlY3RvciwKLSAgICAgIHVzZU1pcnJvckhlbHBlckxpYnJhcnk6IHRydWUsCi0gICAgICBtaW5pZnk6IG1pbmlmeSk7Ci0gIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICBNaXJyb3JSZW5hbWVySW1wbCBtaXJyb3JSZW5hbWVyID0gYmFja2VuZC5taXJyb3JSZW5hbWVyOwotICBNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzID0gYmFja2VuZC5wbGFjZWhvbGRlclJlbmFtZXIucmVuYW1lczsKLSAgTWFwPFN0cmluZywgU3RyaW5nPiBzeW1ib2xzID0gbWlycm9yUmVuYW1lci5zeW1ib2xzOwotCi0gIEV4cGVjdC5pc0ZhbHNlKG51bGwgPT0gbWlycm9yUmVuYW1lci5oZWxwZXJMaWJyYXJ5KTsKLSAgRXhwZWN0LmlzRmFsc2UobnVsbCA9PSBtaXJyb3JSZW5hbWVyLmdldE5hbWVGdW5jdGlvbik7Ci0KLSAgZm9yIChOb2RlIG4gaW4gcmVuYW1lcy5rZXlzKSB7Ci0gICAgaWYgKHN5bWJvbHMuY29udGFpbnNLZXkocmVuYW1lc1tuXSkpIHsKLSAgICAgIGlmKG4udG9TdHJpbmcoKSA9PSAnZ2V0TmFtZScpIHsKLSAgICAgICAgRXhwZWN0LmVxdWFscygKLSAgICAgICAgICAgIE1pcnJvclJlbmFtZXJJbXBsLk1JUlJPUl9IRUxQRVJfR0VUX05BTUVfRlVOQ1RJT04sCi0gICAgICAgICAgICBzeW1ib2xzW3JlbmFtZXNbbl1dKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIEV4cGVjdC5lcXVhbHMobi50b1N0cmluZygpLCBzeW1ib2xzW3JlbmFtZXNbbl1dKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBTdHJpbmcgb3V0cHV0ID0gb3V0cHV0Q29sbGVjdG9yLmdldE91dHB1dCgnJywgJ2RhcnQnKTsKLSAgU3RyaW5nIGdldE5hbWVNYXRjaCA9IE1pcnJvclJlbmFtZXJJbXBsLk1JUlJPUl9IRUxQRVJfR0VUX05BTUVfRlVOQ1RJT047Ci0gIEl0ZXJhYmxlIGkgPSBnZXROYW1lTWF0Y2guYWxsTWF0Y2hlcyhvdXRwdXQpOwotICBwcmludChvdXRwdXQpOwotICBpZiAobWluaWZ5KSB7Ci0gICAgRXhwZWN0LmVxdWFscygwLCBpLmxlbmd0aCk7Ci0gIH0gZWxzZSB7Ci0gICAgLy8gQXBwZWFycyB0d2ljZSBpbiBjb2RlIChkZWZpbmVkICYgY2FsbGVkKS4KLSAgICBFeHBlY3QuZXF1YWxzKDIsIGkubGVuZ3RoKTsKLSAgfQotCi0gIFJlZ0V4cCBtYXBNYXRjaCA9IG5ldyBSZWdFeHAoJ2NvbnN0PFN0cmluZywoICk/U3RyaW5nPicpOwotICBpID0gbWFwTWF0Y2guYWxsTWF0Y2hlcyhvdXRwdXQpOwotICBFeHBlY3QuZXF1YWxzKDEsIGkubGVuZ3RoKTsKLX0KLQotRnV0dXJlIHRlc3RXaXRob3V0TWlycm9ySGVscGVyTGlicmFyeSh7Ym9vbCBtaW5pZnl9KSBhc3luYyB7Ci0gIENvbXBpbGVySW1wbCBjb21waWxlciA9Ci0gICAgICBhd2FpdCBydW4odXNlTWlycm9ySGVscGVyTGlicmFyeTogZmFsc2UsIG1pbmlmeTogbWluaWZ5KTsKLSAgRGFydEJhY2tlbmQgYmFja2VuZCA9IGNvbXBpbGVyLmJhY2tlbmQ7Ci0gIE1pcnJvclJlbmFtZXIgbWlycm9yUmVuYW1lciA9IGJhY2tlbmQubWlycm9yUmVuYW1lcjsKLQotICBFeHBlY3QuZXF1YWxzKG51bGwsIG1pcnJvclJlbmFtZXIuaGVscGVyTGlicmFyeSk7Ci0gIEV4cGVjdC5lcXVhbHMobnVsbCwgbWlycm9yUmVuYW1lci5nZXROYW1lRnVuY3Rpb24pOwotfQotCi1jb25zdCBNRU1PUllfU09VUkNFX0ZJTEVTID0gY29uc3QgPFN0cmluZywgU3RyaW5nPiB7Ci0gICdtYWluLmRhcnQnOiAiIiIKLWltcG9ydCAnZGFydDptaXJyb3JzJzsKLQotY2xhc3MgRm9vIHsKLSAgbm9TdWNoTWV0aG9kKEludm9jYXRpb24gaW52b2NhdGlvbikgewotICAgIE1pcnJvclN5c3RlbS5nZXROYW1lKGludm9jYXRpb24ubWVtYmVyTmFtZSk7Ci0gIH0KLX0KLQotdm9pZCBtYWluKCkgewotICBuZXcgRm9vKCkuZmlzaygpOwotfQotIiIifTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21pcnJvcl9oZWxwZXJfdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9taXJyb3JfaGVscGVyX3Rlc3QuZGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2UyNTdjNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21pcnJvcl9oZWxwZXJfdGVzdC5kYXJ0CisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEzLCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKLS8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCi0vLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi1pbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKLWltcG9ydCAnZGFydDphc3luYyc7Ci1pbXBvcnQgInBhY2thZ2U6YXN5bmNfaGVscGVyL2FzeW5jX2hlbHBlci5kYXJ0IjsKLWltcG9ydCAnbWVtb3J5X2NvbXBpbGVyLmRhcnQnIHNob3cgcnVuQ29tcGlsZXI7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2FwaWltcGwuZGFydCcgc2hvdwotICAgIENvbXBpbGVySW1wbDsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvZWxlbWVudHMvZWxlbWVudHMuZGFydCcgc2hvdwotICAgIEVsZW1lbnQsIExpYnJhcnlFbGVtZW50LCBDbGFzc0VsZW1lbnQ7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL3RyZWUvdHJlZS5kYXJ0JyBzaG93Ci0gICAgQmxvY2ssIEV4cHJlc3Npb25TdGF0ZW1lbnQsIEZ1bmN0aW9uRXhwcmVzc2lvbiwgTm9kZSwgU2VuZDsKLWltcG9ydCAncGFja2FnZTpjb21waWxlci9zcmMvZGFydF9iYWNrZW5kL2RhcnRfYmFja2VuZC5kYXJ0JyBzaG93Ci0gICAgRGFydEJhY2tlbmQsIEVsZW1lbnRBc3Q7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL21pcnJvcl9yZW5hbWVyL21pcnJvcl9yZW5hbWVyLmRhcnQnIHNob3cKLSAgICBNaXJyb3JSZW5hbWVySW1wbDsKLQotbWFpbigpIHsKLSAgYXN5bmNUZXN0KCgpIGFzeW5jIHsKLSAgICBhd2FpdCB0ZXN0V2l0aE1pcnJvclJlbmFtaW5nKG1pbmlmeTogdHJ1ZSk7Ci0gICAgYXdhaXQgdGVzdFdpdGhNaXJyb3JSZW5hbWluZyhtaW5pZnk6IGZhbHNlKTsKLSAgICBhd2FpdCB0ZXN0V2l0aG91dE1pcnJvclJlbmFtaW5nKG1pbmlmeTogdHJ1ZSk7Ci0gICAgYXdhaXQgdGVzdFdpdGhvdXRNaXJyb3JSZW5hbWluZyhtaW5pZnk6IGZhbHNlKTsKLSAgfSk7Ci19Ci0KLUZ1dHVyZTxDb21waWxlckltcGw+IHJ1bih7dXNlTWlycm9ySGVscGVyTGlicmFyeTogZmFsc2UsIG1pbmlmeTogZmFsc2V9KSBhc3luYyB7Ci0gIExpc3Q8U3RyaW5nPiBvcHRpb25zID0gWyctLW91dHB1dC10eXBlPWRhcnQnXTsKLSAgaWYgKG1pbmlmeSkgewotICAgIG9wdGlvbnMuYWRkKCctLW1pbmlmeScpOwotICB9Ci0gIHZhciByZXN1bHQgPSBhd2FpdCBydW5Db21waWxlcigKLSAgICAgIG1lbW9yeVNvdXJjZUZpbGVzOiBNRU1PUllfU09VUkNFX0ZJTEVTLAotICAgICAgb3B0aW9uczogb3B0aW9ucywKLSAgICAgIGJlZm9yZVJ1bjogKENvbXBpbGVySW1wbCBjb21waWxlcikgewotICAgICAgICBEYXJ0QmFja2VuZCBiYWNrZW5kID0gY29tcGlsZXIuYmFja2VuZDsKLSAgICAgICAgYmFja2VuZC51c2VNaXJyb3JIZWxwZXJMaWJyYXJ5ID0gdXNlTWlycm9ySGVscGVyTGlicmFyeTsKLSAgICAgIH0pOwotICByZXR1cm4gcmVzdWx0LmNvbXBpbGVyOwotfQotCi1GdXR1cmUgdGVzdFdpdGhNaXJyb3JSZW5hbWluZyh7Ym9vbCBtaW5pZnl9KSBhc3luYyB7Ci0gIENvbXBpbGVySW1wbCBjb21waWxlciA9Ci0gICAgICBhd2FpdCBydW4odXNlTWlycm9ySGVscGVyTGlicmFyeTogdHJ1ZSwgbWluaWZ5OiBtaW5pZnkpOwotICBEYXJ0QmFja2VuZCBiYWNrZW5kID0gY29tcGlsZXIuYmFja2VuZDsKLSAgTWlycm9yUmVuYW1lckltcGwgbWlycm9yUmVuYW1lciA9IGJhY2tlbmQubWlycm9yUmVuYW1lcjsKLSAgTWFwPE5vZGUsIFN0cmluZz4gcmVuYW1lcyA9IGJhY2tlbmQucGxhY2Vob2xkZXJSZW5hbWVyLnJlbmFtZXM7Ci0gIEl0ZXJhYmxlPExpYnJhcnlFbGVtZW50PiBpbXBvcnRzID0KLSAgICAgIGJhY2tlbmQucGxhY2Vob2xkZXJSZW5hbWVyLnBsYXRmb3JtSW1wb3J0cy5rZXlzOwotCi0gIEZ1bmN0aW9uRXhwcmVzc2lvbiBub2RlID0gYmFja2VuZC5tZW1iZXJOb2Rlcy52YWx1ZXMuZmlyc3QuZmlyc3Q7Ci0gIEJsb2NrIGJsb2NrID0gbm9kZS5ib2R5OwotICBFeHByZXNzaW9uU3RhdGVtZW50IGdldE5hbWVGdW5jdGlvbk5vZGUgPSBibG9jay5zdGF0ZW1lbnRzLm5vZGVzLmhlYWQ7Ci0gIFNlbmQgc2VuZCA9IGdldE5hbWVGdW5jdGlvbk5vZGUuZXhwcmVzc2lvbjsKLQotICBFeHBlY3QuZXF1YWxzKHJlbmFtZXNbbWlycm9yUmVuYW1lci5nZXROYW1lRnVuY3Rpb25Ob2RlLm5hbWVdLAotICAgICAgICAgICAgICAgIHJlbmFtZXNbc2VuZC5zZWxlY3Rvcl0pOwotICBFeHBlY3QuZXF1YWxzKCIiLAotICAgICAgICAgICAgICAgIHJlbmFtZXNbc2VuZC5yZWNlaXZlcl0pOwotICBFeHBlY3QuZXF1YWxzKDEsIGltcG9ydHMubGVuZ3RoKTsKLX0KLQotRnV0dXJlIHRlc3RXaXRob3V0TWlycm9yUmVuYW1pbmcoe2Jvb2wgbWluaWZ5fSkgYXN5bmMgewotICBDb21waWxlckltcGwgY29tcGlsZXIgPQotICAgICAgYXdhaXQgcnVuKHVzZU1pcnJvckhlbHBlckxpYnJhcnk6IGZhbHNlLCBtaW5pZnk6IG1pbmlmeSk7Ci0gIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICBNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzID0gYmFja2VuZC5wbGFjZWhvbGRlclJlbmFtZXIucmVuYW1lczsKLSAgSXRlcmFibGU8TGlicmFyeUVsZW1lbnQ+IGltcG9ydHMgPQotICAgICAgYmFja2VuZC5wbGFjZWhvbGRlclJlbmFtZXIucGxhdGZvcm1JbXBvcnRzLmtleXM7Ci0gIEZ1bmN0aW9uRXhwcmVzc2lvbiBub2RlID0gYmFja2VuZC5tZW1iZXJOb2Rlcy52YWx1ZXMuZmlyc3QuZmlyc3Q7Ci0gIEJsb2NrIGJsb2NrID0gbm9kZS5ib2R5OwotICBFeHByZXNzaW9uU3RhdGVtZW50IGdldE5hbWVGdW5jdGlvbk5vZGUgPSBibG9jay5zdGF0ZW1lbnRzLm5vZGVzLmhlYWQ7Ci0gIFNlbmQgc2VuZCA9IGdldE5hbWVGdW5jdGlvbk5vZGUuZXhwcmVzc2lvbjsKLQotICBFeHBlY3QuaXNGYWxzZShyZW5hbWVzLmNvbnRhaW5zS2V5KHNlbmQuc2VsZWN0b3IpKTsKLSAgRXhwZWN0LmVxdWFscygxLCBpbXBvcnRzLmxlbmd0aCk7Ci19Ci0KLWNvbnN0IE1FTU9SWV9TT1VSQ0VfRklMRVMgPSBjb25zdCA8U3RyaW5nLCBTdHJpbmc+IHsKLSAgJ21haW4uZGFydCc6ICIiIgotaW1wb3J0ICdkYXJ0Om1pcnJvcnMnOwotCi1jbGFzcyBGb28gewotICBub1N1Y2hNZXRob2QoSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB7Ci0gICAgTWlycm9yU3lzdGVtLmdldE5hbWUoaW52b2NhdGlvbi5tZW1iZXJOYW1lKTsKLSAgfQotfQotCi12b2lkIG1haW4oKSB7Ci0gIG5ldyBGb28oKS5maXNrKCk7Ci19Ci0iIiJ9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9taXJyb3JfaGVscGVyX3VuaXF1ZV9taW5pZmljYXRpb25fdGVzdC5kYXJ0IGIvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9taXJyb3JfaGVscGVyX3VuaXF1ZV9taW5pZmljYXRpb25fdGVzdC5kYXJ0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZWM4ZjlmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvbWlycm9yX2hlbHBlcl91bmlxdWVfbWluaWZpY2F0aW9uX3Rlc3QuZGFydAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8vIENvcHlyaWdodCAoYykgMjAxMywgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCi0vLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQotLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7Ci1pbXBvcnQgJ2RhcnQ6YXN5bmMnOwotaW1wb3J0ICJwYWNrYWdlOmFzeW5jX2hlbHBlci9hc3luY19oZWxwZXIuZGFydCI7Ci1pbXBvcnQgJ21lbW9yeV9jb21waWxlci5kYXJ0JyBzaG93IHJ1bkNvbXBpbGVyOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy9hcGlpbXBsLmRhcnQnIHNob3cKLSAgICBDb21waWxlckltcGw7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL2RhcnRfYmFja2VuZC9kYXJ0X2JhY2tlbmQuZGFydCcgc2hvdwotICAgIERhcnRCYWNrZW5kOwotaW1wb3J0ICdwYWNrYWdlOmNvbXBpbGVyL3NyYy90cmVlL3RyZWUuZGFydCcgc2hvdwotICAgIElkZW50aWZpZXIsIE5vZGUsIFNlbmQ7Ci1pbXBvcnQgJ3BhY2thZ2U6Y29tcGlsZXIvc3JjL21pcnJvcl9yZW5hbWVyL21pcnJvcl9yZW5hbWVyLmRhcnQnIHNob3cKLSAgICBNaXJyb3JSZW5hbWVySW1wbDsKLQotbWFpbigpIHsKLSAgYXN5bmNUZXN0KCgpIGFzeW5jIHsKLSAgICBhd2FpdCB0ZXN0VW5pcXVlTWluaWZpY2F0aW9uKCk7Ci0gICAgYXdhaXQgdGVzdE5vVW5pcXVlTWluaWZpY2F0aW9uKCk7Ci0gIH0pOwotfQotCi1GdXR1cmU8Q29tcGlsZXJJbXBsPiBydW4oe3VzZU1pcnJvckhlbHBlckxpYnJhcnk6IGZhbHNlLCBtaW5pZnk6IGZhbHNlfSkgYXN5bmMgewotICBMaXN0PFN0cmluZz4gb3B0aW9ucyA9IFsnLS1vdXRwdXQtdHlwZT1kYXJ0J107Ci0gIGlmIChtaW5pZnkpIHsKLSAgICBvcHRpb25zLmFkZCgnLS1taW5pZnknKTsKLSAgfQotICB2YXIgcmVzdWx0ID0gYXdhaXQgcnVuQ29tcGlsZXIoCi0gICAgICBtZW1vcnlTb3VyY2VGaWxlczogTUVNT1JZX1NPVVJDRV9GSUxFUywKLSAgICAgIG9wdGlvbnM6IG9wdGlvbnMsCi0gICAgICBiZWZvcmVSdW46IChDb21waWxlckltcGwgY29tcGlsZXIpIHsKLSAgICAgICAgRGFydEJhY2tlbmQgYmFja2VuZCA9IGNvbXBpbGVyLmJhY2tlbmQ7Ci0gICAgICAgIGJhY2tlbmQudXNlTWlycm9ySGVscGVyTGlicmFyeSA9IHVzZU1pcnJvckhlbHBlckxpYnJhcnk7Ci0gICAgICB9KTsKLSAgcmV0dXJuIHJlc3VsdC5jb21waWxlcjsKLX0KLQotRnV0dXJlIHRlc3RVbmlxdWVNaW5pZmljYXRpb24oKSBhc3luYyB7Ci0gIENvbXBpbGVySW1wbCBjb21waWxlciA9IGF3YWl0IHJ1bih1c2VNaXJyb3JIZWxwZXJMaWJyYXJ5OiB0cnVlLCBtaW5pZnk6IHRydWUpOwotICBEYXJ0QmFja2VuZCBiYWNrZW5kID0gY29tcGlsZXIuYmFja2VuZDsKLSAgTWlycm9yUmVuYW1lckltcGwgbWlycm9yUmVuYW1lciA9IGJhY2tlbmQubWlycm9yUmVuYW1lcjsKLSAgTWFwPE5vZGUsIFN0cmluZz4gcmVuYW1lcyA9IGJhY2tlbmQucGxhY2Vob2xkZXJSZW5hbWVyLnJlbmFtZXM7Ci0gIE1hcDxTdHJpbmcsIFN0cmluZz4gc3ltYm9scyA9IG1pcnJvclJlbmFtZXIuc3ltYm9sczsKLQotICAvLyBDaGVjayB0aGF0IG5vIHR3byBkaWZmZXJlbnQgc291cmNlIGNvZGUgbmFtZXMgZ2V0IHRoZSBzYW1lIG1hbmdsZWQgbmFtZSwKLSAgLy8gd2l0aCB0aGUgZXhjZXB0aW9uIG9mIE1pcnJvclN5c3RlbS5nZXROYW1lIHRoYXQgZ2V0cyByZW5hbWVkIHRvIHRoZSBzYW1lCi0gIC8vIG1hbmdsZWQgbmFtZSBhcyB0aGUgZ2V0TmFtZUhlbHBlciBmcm9tIF9taXJyb3JfaGVscGVyLmRhcnQuCi0gIGZvciAoTm9kZSBub2RlIGluIHJlbmFtZXMua2V5cykgewotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IG5vZGUuYXNJZGVudGlmaWVyKCk7Ci0gICAgaWYgKGlkZW50aWZpZXIgIT0gbnVsbCkgewotICAgICAgU3RyaW5nIHNvdXJjZSA9IGlkZW50aWZpZXIuc291cmNlOwotICAgICAgU2VuZCBzZW5kID0gbWlycm9yUmVuYW1lci5taXJyb3JTeXN0ZW1HZXROYW1lTm9kZXMuZmlyc3Q7Ci0gICAgICBpZiAoc2VuZC5zZWxlY3RvciA9PSBub2RlKQotICAgICAgICBjb250aW51ZTsKLSAgICAgIGlmIChzeW1ib2xzLmNvbnRhaW5zS2V5KHJlbmFtZXNbbm9kZV0pKSB7Ci0gICAgICAgIHByaW50KG5vZGUpOwotICAgICAgICBFeHBlY3QuZXF1YWxzKHNvdXJjZSwgc3ltYm9sc1tyZW5hbWVzW25vZGVdXSk7Ci0gICAgICB9Ci0gICAgfQotICB9Ci19Ci0KLUZ1dHVyZSB0ZXN0Tm9VbmlxdWVNaW5pZmljYXRpb24oKSBhc3luYyB7Ci0gIENvbXBpbGVySW1wbCBjb21waWxlciA9Ci0gICAgICBhd2FpdCBydW4odXNlTWlycm9ySGVscGVyTGlicmFyeTogZmFsc2UsIG1pbmlmeTogdHJ1ZSk7Ci0gIERhcnRCYWNrZW5kIGJhY2tlbmQgPSBjb21waWxlci5iYWNrZW5kOwotICBNYXA8Tm9kZSwgU3RyaW5nPiByZW5hbWVzID0gYmFja2VuZC5wbGFjZWhvbGRlclJlbmFtZXIucmVuYW1lczsKLQotICAvLyAnRm9vJyBhcHBlYXJzIHR3aWNlIGFuZCAnaW52b2NhdGlvbicgYW5kICdoZXN0JyBnZXQgdGhlIHNhbWUgbWFuZ2xlZAotICAvLyBuYW1lLgotICBFeHBlY3QuZXF1YWxzKHJlbmFtZXMudmFsdWVzLnRvU2V0KCkubGVuZ3RoLCByZW5hbWVzLnZhbHVlcy5sZW5ndGggLSAyKTsKLX0KLQotY29uc3QgTUVNT1JZX1NPVVJDRV9GSUxFUyA9IGNvbnN0IDxTdHJpbmcsIFN0cmluZz4gewotICAnbWFpbi5kYXJ0JzogIiIiCi1pbXBvcnQgJ2RhcnQ6bWlycm9ycyc7Ci0KLWNsYXNzIEZvbyB7Ci0gIG5vU3VjaE1ldGhvZChpbnZvY2F0aW9uKSB7Ci0gICAgTWlycm9yU3lzdGVtLmdldE5hbWUobnVsbCk7Ci0gIH0KLX0KLQotbWFpbihoZXN0KSB7Ci0gIG5ldyBGb28oKS5maXNrKCk7Ci19Ci0iIiJ9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGlsZXIvZGFydDJqcy9tb2NrX2NvbXBpbGVyLmRhcnQgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21vY2tfY29tcGlsZXIuZGFydAppbmRleCBjZjYxMmJmLi41ZDgzYzVkIDEwMDY0NAotLS0gYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21vY2tfY29tcGlsZXIuZGFydAorKysgYi90ZXN0cy9jb21waWxlci9kYXJ0MmpzL21vY2tfY29tcGlsZXIuZGFydApAQCAtODAsNyArODAsNiBAQAogICAgICAgIGJvb2wgZGlzYWJsZVR5cGVJbmZlcmVuY2U6IGZhbHNlLAogICAgICAgIGJvb2wgYW5hbHl6ZUFsbDogZmFsc2UsCiAgICAgICAgYm9vbCBhbmFseXplT25seTogZmFsc2UsCi0gICAgICAgYm9vbCBlbWl0SmF2YVNjcmlwdDogdHJ1ZSwKICAgICAgICBib29sIHByZXNlcnZlQ29tbWVudHM6IGZhbHNlLAogICAgICAgIC8vIE91ciB1bml0IHRlc3RzIGNoZWNrIGNvZGUgZ2VuZXJhdGlvbiBvdXRwdXQgdGhhdCBpcwogICAgICAgIC8vIGFmZmVjdGVkIGJ5IGlubGluaW5nIHN1cHBvcnQuCkBAIC0xMDYsNyArMTA1LDYgQEAKICAgICAgICAgICAgICAgZGlzYWJsZVR5cGVJbmZlcmVuY2U6IGRpc2FibGVUeXBlSW5mZXJlbmNlLAogICAgICAgICAgICAgICBhbmFseXplQWxsOiBhbmFseXplQWxsLAogICAgICAgICAgICAgICBhbmFseXplT25seTogYW5hbHl6ZU9ubHksCi0gICAgICAgICAgICAgIGVtaXRKYXZhU2NyaXB0OiBlbWl0SmF2YVNjcmlwdCwKICAgICAgICAgICAgICAgcHJlc2VydmVDb21tZW50czogcHJlc2VydmVDb21tZW50cywKICAgICAgICAgICAgICAgdHJ1c3RUeXBlQW5ub3RhdGlvbnM6IHRydXN0VHlwZUFubm90YXRpb25zLAogICAgICAgICAgICAgICB0cnVzdEpTSW50ZXJvcFR5cGVBbm5vdGF0aW9uczogdHJ1c3RKU0ludGVyb3BUeXBlQW5ub3RhdGlvbnMsCmRpZmYgLS1naXQgYS90ZXN0cy9jb21waWxlci9kYXJ0MmpzL3BsYXRmb3JtX2NvbnNpc3RlbmN5X3Rlc3QuZGFydCBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvcGxhdGZvcm1fY29uc2lzdGVuY3lfdGVzdC5kYXJ0CmluZGV4IGU5NDZjMTYuLmZhNTBiMjkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvcGxhdGZvcm1fY29uc2lzdGVuY3lfdGVzdC5kYXJ0CisrKyBiL3Rlc3RzL2NvbXBpbGVyL2RhcnQyanMvcGxhdGZvcm1fY29uc2lzdGVuY3lfdGVzdC5kYXJ0CkBAIC0yMCwxMiArMjAsOCBAQAogICBNYXA8U3RyaW5nLCBVcmk+IHNoYXJlZCA9IGF3YWl0IGxvYWQoCiAgICAgICBVcmkuYmFzZS5yZXNvbHZlKCJzZGsvbGliL2RhcnRfc2hhcmVkLnBsYXRmb3JtIiksCiAgICAgICBpbnB1dCk7Ci0gIE1hcDxTdHJpbmcsIFVyaT4gZGFydDJkYXJ0ID0gYXdhaXQgbG9hZCgKLSAgICAgIFVyaS5iYXNlLnJlc29sdmUoInNkay9saWIvZGFydDJkYXJ0LnBsYXRmb3JtIiksCi0gICAgICBpbnB1dCk7CiAgIEV4cGVjdC5zZXRFcXVhbHMobmV3IFNldC5mcm9tKHNoYXJlZC5rZXlzKSwgbmV3IFNldC5mcm9tKGNsaWVudC5rZXlzKSk7CiAgIEV4cGVjdC5zZXRFcXVhbHMobmV3IFNldC5mcm9tKHNoYXJlZC5rZXlzKSwgbmV3IFNldC5mcm9tKHNlcnZlci5rZXlzKSk7Ci0gIEV4cGVjdC5zZXRFcXVhbHMobmV3IFNldC5mcm9tKHNoYXJlZC5rZXlzKSwgbmV3IFNldC5mcm9tKGRhcnQyZGFydC5rZXlzKSk7CiAKICAgZm9yIChTdHJpbmcgbGlicmFyeU5hbWUgaW4gc2hhcmVkLmtleXMpIHsKICAgICB0ZXN0KE1hcDxTdHJpbmcsIFVyaT4gbSkgewpAQCAtMzYsNiArMzIsNSBAQAogICAgIH0KICAgICB0ZXN0KGNsaWVudCk7CiAgICAgdGVzdChzZXJ2ZXIpOwotICAgIHRlc3QoZGFydDJkYXJ0KTsKICAgfQogIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL2h0bWwvaHRtbC5zdGF0dXMgYi90ZXN0cy9odG1sL2h0bWwuc3RhdHVzCmluZGV4IGVkMTU3ODguLjI2MTJkZDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2h0bWwvaHRtbC5zdGF0dXMKKysrIGIvdGVzdHMvaHRtbC9odG1sLnN0YXR1cwpAQCAtNTAsNyArNTAsNiBAQAogY3VzdG9tL2VudGVyZWRfbGVmdF92aWV3X3Rlc3Qvdmlld2xlc3NfZG9jdW1lbnQ6IEZhaWwgIyBQb2x5ZmlsbCBkb2VzIG5vdCBoYW5kbGUgdGhpcwogZm9udGZhY2VfdGVzdDogRmFpbCAjIEZvbnRmYWNlIG5vdCBzdXBwb3J0ZWQgb24gdGhlc2UuCiBjdXN0b20vYXR0cmlidXRlX2NoYW5nZWRfY2FsbGJhY2tfdGVzdC91bnN1cHBvcnRlZF9vbl9wb2x5ZmlsbDogRmFpbCAjIFBvbHlmaWxsIGRvZXMgbm90IHN1cHBvcnQKLWVsZW1lbnRfYW5pbWF0ZV90ZXN0OiBGYWlsICMgRWxlbWVudC5hbmltYXRlIG5vdCBzdXBwb3J0ZWQgb24gdGhlc2UgYnJvd3NlcnMuCiAKIFsgJGNvbXBpbGVyID09IG5vbmUgJiYgJHJ1bnRpbWUgPT0gZGFydGl1bSAmJiAkc3lzdGVtID09IG1hY29zXQogY2FudmFzcmVuZGVyaW5nY29udGV4dDJkX3Rlc3QvZHJhd0ltYWdlX3ZpZGVvX2VsZW1lbnRfZGF0YVVybDogUGFzcyxGYWlsICMgSXNzdWUgMTE4MzQKQEAgLTExNSw2ICsxMTQsOSBAQAogdHJhbnNpdGlvbl9ldmVudF90ZXN0L2Z1bmN0aW9uYWw6IFNraXAgIyBUaW1lcyBvdXQuIElzc3VlIDIyMTY3CiByZXF1ZXN0X2FuaW1hdGlvbl9mcmFtZV90ZXN0OiBTa2lwICMgVGltZXMgb3V0LiBJc3N1ZSAyMjE2NwogY3VzdG9tLyo6IFBhc3MsIFRpbWVvdXQgIyBJc3N1ZSAyNjc4OQorY3VzdG9tX2VsZW1lbnRzX3Rlc3Q6IFBhc3MsIFRpbWVvdXQgIyBJc3N1ZSAyNjc4OQorY3VzdG9tX2VsZW1lbnRfbWV0aG9kX2NsYXNoX3Rlc3Q6IFBhc3MsIFRpbWVvdXQgIyBJc3N1ZSAyNjc4OQorY3VzdG9tX2VsZW1lbnRfbmFtZV9jbGFzaF90ZXN0OiBQYXNzLCBUaW1lb3V0ICMgSXNzdWUgMjY3ODkKIAogWyRydW50aW1lID09IGRydCB8fCAkcnVudGltZSA9PSBkYXJ0aXVtIHx8ICRydW50aW1lID09IGNocm9tZSB8fCAkcnVudGltZSA9PSBjaHJvbWVPbkFuZHJvaWQgXQogd2ViZ2xfMV90ZXN0OiBQYXNzLCBGYWlsICMgSXNzdWUgODIxOQpAQCAtMTQ4LDYgKzE1MCw3IEBACiB0cmFuc2l0aW9uX2V2ZW50X3Rlc3QvZnVuY3Rpb25hbDogU2tpcCAjIFRpbWVzIG91dC4gSXNzdWUgMjIxNjcKIHJlcXVlc3RfYW5pbWF0aW9uX2ZyYW1lX3Rlc3Q6IFNraXAgIyBUaW1lcyBvdXQuIElzc3VlIDIyMTY3CiBqc191dGlsX3Rlc3QvY2FsbENvbnN0cnVjdG9yOiBSdW50aW1lRXJyb3IgIyBJc3N1ZSAyNjk3OAorZWxlbWVudF9hbmltYXRlX3Rlc3Q6IEZhaWwgIyBFbGVtZW50LmFuaW1hdGUgbm90IHN1cHBvcnRlZCBvbiB0aGVzZSBicm93c2Vycy4KIAogWyRydW50aW1lID09IGllMTAgXQogIyBJRTEwIEZlYXR1cmUgc3VwcG9ydCBzdGF0dXNlcy0KQEAgLTI2Niw2ICsyNjksNyBAQAogY2FudmFzcmVuZGVyaW5nY29udGV4dDJkX3Rlc3QvZHJhd0ltYWdlX3ZpZGVvX2VsZW1lbnRfZGF0YVVybDogRmFpbCAjIFNhZmFyaSBkb2VzIG5vdCBzdXBwb3J0IGRyYXdJbWFnZSB3LyB2aWRlbyBlbGVtZW50CiBlbGVtZW50X3Rlc3Q6IFBhc3MsIEZhaWwgIyBJc3N1ZSAyMTQzNAogbWVkaWFzb3VyY2VfdGVzdDogUGFzcywgRmFpbCAjIE1lZGlhU291cmNlIG9ubHkgYXZhaWxhYmxlIG9uIFNhZmFyaSA4IGRlc2t0b3AsIHdlIGNhbid0IGV4cHJlc3MgdGhhdC4KK2VsZW1lbnRfYW5pbWF0ZV90ZXN0OiBGYWlsICMgRWxlbWVudC5hbmltYXRlIG5vdCBzdXBwb3J0ZWQgb24gdGhlc2UgYnJvd3NlcnMuCiAKICMgU2FmYXJpIEZlYXR1cmUgc3VwcG9ydCBzdGF0dXNlcy0KICMgQWxsIGNoYW5nZXMgc2hvdWxkIGJlIGFjY29tcGFuaWVkIGJ5IHBsYXRmb3JtIHN1cHBvcnQgYW5ub3RhdGlvbiBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvdGVzdHMvbGFuZ3VhZ2UvZGFuZ2xpbmdfZWxzZV90ZXN0LmRhcnQgYi90ZXN0cy9sYW5ndWFnZS9kYW5nbGluZ19lbHNlX3Rlc3QuZGFydAppbmRleCA4NGJkZWM4Li5jYWQyZmM3IDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9kYW5nbGluZ19lbHNlX3Rlc3QuZGFydAorKysgYi90ZXN0cy9sYW5ndWFnZS9kYW5nbGluZ19lbHNlX3Rlc3QuZGFydApAQCAtMSw4ICsxLDggQEAKIC8vIENvcHlyaWdodCAoYykgMjAxMiwgdGhlIERhcnQgcHJvamVjdCBhdXRob3JzLiAgUGxlYXNlIHNlZSB0aGUgQVVUSE9SUyBmaWxlCiAvLyBmb3IgZGV0YWlscy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYQogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS8vIFRlc3RzIGRhbmdsaW5nIGVsc2UuIFRoZSBWTSBzaG91bGQgbm90IGhhdmUgYW55IHByb2JsZW1zLCBidXQgZGFydDJqcyBvcgotLy8gZGFydDJkYXJ0IGNvdWxkIGdldCB0aGlzIHdyb25nLgorLy8gVGVzdHMgZGFuZ2xpbmcgZWxzZS4gVGhlIFZNIHNob3VsZCBub3QgaGF2ZSBhbnkgcHJvYmxlbXMsIGJ1dCBkYXJ0MmpzIGNvdWxkCisvLyBnZXQgdGhpcyB3cm9uZy4KIAogaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfYWNjZXNzX3Rlc3QuZGFydCBiL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfYWNjZXNzX3Rlc3QuZGFydAppbmRleCAzZDNjZWVkLi43MWY0NDVlIDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX2FjY2Vzc190ZXN0LmRhcnQKKysrIGIvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9hY2Nlc3NfdGVzdC5kYXJ0CkBAIC0zLDYgKzMsNyBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8vCiAvLyBEYXJ0T3B0aW9ucz0tLWluaXRpYWxpemluZy1mb3JtYWwtYWNjZXNzCisvLyBWTU9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcwogCiBpbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9jYXB0dXJlX3Rlc3QuZGFydCBiL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfY2FwdHVyZV90ZXN0LmRhcnQKaW5kZXggN2FkM2YwOC4uODI1N2Q0ZiAxMDA2NDQKLS0tIGEvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9jYXB0dXJlX3Rlc3QuZGFydAorKysgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX2NhcHR1cmVfdGVzdC5kYXJ0CkBAIC0zLDYgKzMsNyBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8vCiAvLyBEYXJ0T3B0aW9ucz0tLWluaXRpYWxpemluZy1mb3JtYWwtYWNjZXNzCisvLyBWTU9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcwogCiBpbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9maW5hbF90ZXN0LmRhcnQgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX2ZpbmFsX3Rlc3QuZGFydAppbmRleCAwODMyY2UwLi4zZGY0YmE1IDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX2ZpbmFsX3Rlc3QuZGFydAorKysgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX2ZpbmFsX3Rlc3QuZGFydApAQCAtMyw2ICszLDcgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAvLwogLy8gRGFydE9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcworLy8gVk1PcHRpb25zPS0taW5pdGlhbGl6aW5nLWZvcm1hbC1hY2Nlc3MKIAogaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfcHJvbW90aW9uX3Rlc3QuZGFydCBiL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfcHJvbW90aW9uX3Rlc3QuZGFydAppbmRleCBiMDMxNGU4Li41ZjBhM2I2IDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX3Byb21vdGlvbl90ZXN0LmRhcnQKKysrIGIvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9wcm9tb3Rpb25fdGVzdC5kYXJ0CkBAIC0zLDYgKzMsNyBAQAogLy8gQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIC8vCiAvLyBEYXJ0T3B0aW9ucz0tLWluaXRpYWxpemluZy1mb3JtYWwtYWNjZXNzCisvLyBWTU9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcwogCiBpbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF9zY29wZV90ZXN0LmRhcnQgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX3Njb3BlX3Rlc3QuZGFydAppbmRleCBkZDg1ZmFkLi41NTQ0YThlIDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX3Njb3BlX3Rlc3QuZGFydAorKysgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX3Njb3BlX3Rlc3QuZGFydApAQCAtMyw2ICszLDcgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAvLwogLy8gRGFydE9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcworLy8gVk1PcHRpb25zPS0taW5pdGlhbGl6aW5nLWZvcm1hbC1hY2Nlc3MKIAogaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfdHlwZV90ZXN0LmRhcnQgYi90ZXN0cy9sYW5ndWFnZS9pbml0aWFsaXppbmdfZm9ybWFsX3R5cGVfdGVzdC5kYXJ0CmluZGV4IDM1MmVlY2YuLjc1NDRmOWQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2xhbmd1YWdlL2luaXRpYWxpemluZ19mb3JtYWxfdHlwZV90ZXN0LmRhcnQKKysrIGIvdGVzdHMvbGFuZ3VhZ2UvaW5pdGlhbGl6aW5nX2Zvcm1hbF90eXBlX3Rlc3QuZGFydApAQCAtMyw2ICszLDcgQEAKIC8vIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAvLwogLy8gRGFydE9wdGlvbnM9LS1pbml0aWFsaXppbmctZm9ybWFsLWFjY2VzcworLy8gVk1PcHRpb25zPS0taW5pdGlhbGl6aW5nLWZvcm1hbC1hY2Nlc3MKIAogaW1wb3J0ICJwYWNrYWdlOmV4cGVjdC9leHBlY3QuZGFydCI7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2xhbmd1YWdlL2xhbmd1YWdlLnN0YXR1cyBiL3Rlc3RzL2xhbmd1YWdlL2xhbmd1YWdlLnN0YXR1cwppbmRleCA2NGMxYzRhLi5iZDk1YjU4IDEwMDY0NAotLS0gYS90ZXN0cy9sYW5ndWFnZS9sYW5ndWFnZS5zdGF0dXMKKysrIGIvdGVzdHMvbGFuZ3VhZ2UvbGFuZ3VhZ2Uuc3RhdHVzCkBAIC01MywxMiArNTMsNiBAQAogZ2VuZXJpY19tZXRob2RzX2Z1bmN0aW9uX3R5cGVfdGVzdDogQ29tcGlsZXRpbWVFcnJvciAjIElzc3VlIDI1ODY5CiBnZW5lcmljX21ldGhvZHNfdHlwZV9leHByZXNzaW9uX3Rlc3Q6IENvbXBpbGV0aW1lRXJyb3IgIyBJc3N1ZSAyNTg2OQogCi0jIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBVc2UgaW5pdGlhbGl6aW5nIGZvcm1hbHMgaW4gaW5pdGlhbGl6ZXJzIGFuZCBjb25zdHJ1Y3RvciBib2R5LgotaW5pdGlhbGl6aW5nX2Zvcm1hbF9hY2Nlc3NfdGVzdDogQ29tcGlsZXRpbWVFcnJvciAjIElzc3VlIDI2NjU2Ci1pbml0aWFsaXppbmdfZm9ybWFsX2NhcHR1cmVfdGVzdDogQ29tcGlsZXRpbWVFcnJvciAjIElzc3VlIDI2NjU2Ci1pbml0aWFsaXppbmdfZm9ybWFsX2ZpbmFsX3Rlc3Q6IENvbXBpbGV0aW1lRXJyb3IgIyBJc3N1ZSAyNjY1NgotaW5pdGlhbGl6aW5nX2Zvcm1hbF90eXBlX3Rlc3Q6IENvbXBpbGV0aW1lRXJyb3IgIyBJc3N1ZSAyNjY1NgotCiBbICgkY29tcGlsZXIgPT0gbm9uZSB8fCAkY29tcGlsZXIgPT0gcHJlY29tcGlsZXIgfHwgJGNvbXBpbGVyID09IGRhcnQyYXBwIHx8ICRjb21waWxlciA9PSBkYXJ0MmFwcGppdCkgJiYgKCRydW50aW1lID09IHZtIHx8ICRydW50aW1lID09IGRhcnRfcHJlY29tcGlsZWQgfHwgJHJ1bnRpbWUgPT0gZGFydF9hcHApIF0KIAogY2xhc3Nfa2V5d29yZF90ZXN0LzAyOiBNaXNzaW5nQ29tcGlsZVRpbWVFcnJvciAjIElzc3VlIDEzNjI3CkBAIC05OSw2ICs5MywxMiBAQAogbWlycm9yX2luX3N0YXRpY19pbml0X3Rlc3Q6IEZhaWwgIyBJc3N1ZSAyMjA3MQogdm0vZGVidWdfYnJlYWtfZW5hYmxlZF92bV90ZXN0Lyo6IFNraXAgIyBJc3N1ZSAxNDY1MS4KIAorIyBUaGVzZSB0ZXN0cyBuZWVkIHRoZSBmbGFnIC0taW5pdGlhbGl6aW5nLWZvcm1hbC1hY2Nlc3MgdG8gcGFzczoKK2luaXRpYWxpemluZ19mb3JtYWxfYWNjZXNzX3Rlc3Q6IFNraXAKK2luaXRpYWxpemluZ19mb3JtYWxfY2FwdHVyZV90ZXN0OiBTa2lwCitpbml0aWFsaXppbmdfZm9ybWFsX2ZpbmFsX3Rlc3Q6IFNraXAKK2luaXRpYWxpemluZ19mb3JtYWxfdHlwZV90ZXN0OiBTa2lwCisKICMgRXhwZXJpbWVudGFsIGZlYXR1cmU6IFN5bnRhY3RpYyBzdXBwb3J0IGZvciBnZW5lcmljIG1ldGhvZHMuCiBnZW5lcmljX21ldGhvZHNfdGVzdDogUnVudGltZUVycm9yICMgSXNzdWUgMjU4NjkKIGdlbmVyaWNfZnVuY3Rpb25zX3Rlc3Q6IFJ1bnRpbWVFcnJvciAjIElzc3VlIDI1ODY5CkBAIC0xMDgsMTIgKzEwOCw2IEBACiBnZW5lcmljX21ldGhvZHNfZnVuY3Rpb25fdHlwZV90ZXN0OiBSdW50aW1lRXJyb3IgIyBJc3N1ZSAyNTg2OQogZ2VuZXJpY19tZXRob2RzX3R5cGVfZXhwcmVzc2lvbl90ZXN0OiBSdW50aW1lRXJyb3IgIyBJc3N1ZSAyNTg2OQogCi0jIEV4cGVyaW1lbnRhbCBmZWF0dXJlOiBVc2UgaW5pdGlhbGl6aW5nIGZvcm1hbHMgaW4gaW5pdGlhbGl6ZXJzIGFuZCBjb25zdHJ1Y3RvciBib2R5LgotaW5pdGlhbGl6aW5nX2Zvcm1hbF9hY2Nlc3NfdGVzdDogUnVudGltZUVycm9yICMgSXNzdWUgMjY2NTYKLWluaXRpYWxpemluZ19mb3JtYWxfY2FwdHVyZV90ZXN0OiBSdW50aW1lRXJyb3IgIyBJc3N1ZSAyNjY1NgotaW5pdGlhbGl6aW5nX2Zvcm1hbF9maW5hbF90ZXN0OiBSdW50aW1lRXJyb3IgIyBJc3N1ZSAyNjY1NgotaW5pdGlhbGl6aW5nX2Zvcm1hbF90eXBlX3Rlc3Q6IFJ1bnRpbWVFcnJvciAjIElzc3VlIDI2NjU2Ci0KIGNvbmZpZ19pbXBvcnRfdGVzdDogU2tpcCAgIyBJc3N1ZSAyNjI1MAogCiBbICRjb21waWxlciA9PSBub25lICYmICRydW50aW1lID09IGRhcnRpdW0gJiYgJHN5c3RlbSA9PSBsaW51eCAmJiAkYXJjaCAhPSB4NjQgXQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3RhbmRhbG9uZS9maXhlZF9wcmVjaXNpb25fZG91YmxlX3Rlc3QuZGFydCBiL3Rlc3RzL3N0YW5kYWxvbmUvZml4ZWRfcHJlY2lzaW9uX2RvdWJsZV90ZXN0LmRhcnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUwYmJjMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3N0YW5kYWxvbmUvZml4ZWRfcHJlY2lzaW9uX2RvdWJsZV90ZXN0LmRhcnQKQEAgLTAsMCArMSw4MiBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDE2LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuICBQbGVhc2Ugc2VlIHRoZSBBVVRIT1JTIGZpbGUKKy8vIGZvciBkZXRhaWxzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhCisvLyBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgInBhY2thZ2U6ZXhwZWN0L2V4cGVjdC5kYXJ0IjsKKworYm9vbCB0ZXN0QXNzb2NpYXRpdml0eShGdW5jdGlvbiBmKSB7CisgIC8vIEV4YW1wbGUgZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GbG9hdGluZ19wb2ludAorICAvLyBUZXN0IHRoYXQgKGEgKyBiKSArIGMgPT0gYSArIChiICsgYykuCisgIGRvdWJsZSBhID0gZigxMjM0LjU2Nyk7ICAvLyBDaG9wIGxpdGVyYWxzLgorICBkb3VibGUgYiA9IGYoNDUuNjc4MzQpOworICBkb3VibGUgYyA9IGYoMC4wMDA0KTsKKyAgZG91YmxlIHggPSAoYSArIGIpICsgYzsgIC8vIENob3AgcmVzdWx0IG9mIG11bHRpcGxpY2F0aW9uIG9yIGRpdmlzaW9uIG9ubHkuCisgIGRvdWJsZSB5ID0gYSArIChiICsgYyk7CisgIHByaW50KCJ4OiAkeCIpOworICBwcmludCgieTogJHkiKTsKKyAgcmV0dXJuIHggPT0geTsKK30KKworYm9vbCB0ZXN0RGlzdHJpYnV0aXZpdHkoRnVuY3Rpb24gZikgeworICAvLyBFeGFtcGxlIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRmxvYXRpbmdfcG9pbnQKKyAgLy8gVGVzdCB0aGF0IChhICsgYikqYyA9PSBhKmMgKyBiKmMuCisgIGRvdWJsZSBhID0gZigxMjM0LjU2Nyk7ICAvLyBDaG9wIGxpdGVyYWxzLgorICBkb3VibGUgYiA9IGYoMS4yMzQ1NjcpOworICBkb3VibGUgYyA9IGYoMy4zMzMzMzMpOworICBkb3VibGUgeCA9IGYoKGEgKyBiKSpjKTsgIC8vIENob3AgcmVzdWx0IG9mIG11bHRpcGxpY2F0aW9uLgorICBkb3VibGUgeSA9IGYoYSpjKSArIGYoYipjKTsKKyAgcHJpbnQoIng6ICR4Iik7CisgIHByaW50KCJ5OiAkeSIpOworICByZXR1cm4geCA9PSB5OworfQorCisvLyBTaW11bGF0ZSBwcmVjaXNpb24gY2hlY2tpbmcgd2l0aCBhc3NlcnQuCithc3NlcnRQKGRvdWJsZSBkKSB7CisgIGFzc2VydChkID09IGQucCk7Cit9CisKK2Jvb2wgYXNzZXJ0aW9uc0VuYWJsZWQoKSB7CisgIHRyeSB7CisgICAgYXNzZXJ0KGZhbHNlKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0gb24gQXNzZXJ0aW9uRXJyb3IgY2F0Y2ggKGUpIHsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKK21haW4oKSB7CisgIC8vIFRoZSBnZXR0ZXIgcCBrZWVwcyBvbmx5IDIwIChieSBkZWZhdWx0KSBiaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LgorICBFeHBlY3QuZXF1YWxzKDAuMCwgMC4wLnApOyAgLy8gMC4wIGhhcyBubyAxLWJpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4KKyAgRXhwZWN0LmVxdWFscygxLjUsIDEuNS5wKTsgIC8vIDEuNSBoYXMgYSBzaW5nbGUgMS1iaXQgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQuCisgIEV4cGVjdC5ub3RFcXVhbHMoMS4xLCAxLjEucCk7ICAvLyAxLjEgaGFzIG1hbnkgMS1iaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LgorICBFeHBlY3Qubm90RXF1YWxzKDEvMywgKDEvMykucCk7ICAvLyAwLjMzMzMzMzMzLi4uIGRpdHRvLgorCisgIEV4cGVjdC5lcXVhbHMoMS4xICsgMS8zLCAxLzMgKyAxLjEpOyAgLy8gVGVzdCBhZGRpdGlvbiBjb21tdXRhdGl2aXR5LgorICBFeHBlY3QuZXF1YWxzKDEuMS5wICsgKDEvMykucCwgKDEvMykucCArIDEuMS5wKTsKKyAgRXhwZWN0LmVxdWFscygxLjEgKiAxLzMsIDEvMyAqIDEuMSk7ICAvLyBUZXN0IG11bHRpcGxpY2F0aW9uIGNvbW11dGF0aXZpdHkuCisgIEV4cGVjdC5lcXVhbHMoMS4xLnAgKiAoMS8zKS5wLCAoMS8zKS5wICogMS4xLnApOworCisgIHByaW50KCJXaXRob3V0IGNob3BwaW5nIGZyYWN0aW9uYWwgYml0czoiKTsKKyAgRXhwZWN0LmlzRmFsc2UodGVzdEFzc29jaWF0aXZpdHkoKHgpID0+IHgpKTsKKyAgRXhwZWN0LmlzRmFsc2UodGVzdERpc3RyaWJ1dGl2aXR5KCh4KSA9PiB4KSk7CisgIHByaW50KCJXaXRoIGNob3BwaW5nIGZyYWN0aW9uYWwgYml0czoiKTsKKyAgRXhwZWN0LmlzVHJ1ZSh0ZXN0QXNzb2NpYXRpdml0eSgoeCkgPT4geC5wKSk7CisgIEV4cGVjdC5pc1RydWUodGVzdERpc3RyaWJ1dGl2aXR5KCh4KSA9PiB4LnApKTsKKworICAvLyBDaGVjayB0aGF0IHAgd29ya3Mgd2l0aCBOYU4gYW5kIEluZmluaXR5LgorICBFeHBlY3QuaXNUcnVlKGRvdWJsZS5OQU4ucC5pc05hTik7CisgIEV4cGVjdC5pc1RydWUoZG91YmxlLklORklOSVRZLnAuaXNJbmZpbml0ZSk7CisgIEV4cGVjdC5pc0ZhbHNlKGRvdWJsZS5JTkZJTklUWS5wLmlzTmVnYXRpdmUpOworICBFeHBlY3QuaXNUcnVlKGRvdWJsZS5ORUdBVElWRV9JTkZJTklUWS5wLmlzSW5maW5pdGUpOworICBFeHBlY3QuaXNUcnVlKGRvdWJsZS5ORUdBVElWRV9JTkZJTklUWS5wLmlzTmVnYXRpdmUpOworCisgIC8vIENoZWNrIHVzZSBvZiBhc3NlcnQgdG8gdmVyaWZ5IHByZWNpc2lvbi4KKyAgaWYgKGFzc2VydGlvbnNFbmFibGVkKCkpIHsKKyAgICBhc3NlcnRQKDEuNSk7CisgICAgYXNzZXJ0UCgxLjEucCk7CisgICAgRXhwZWN0LnRocm93cygoKSA9PiBhc3NlcnRQKDEuMSksIChlKSA9PiBlIGlzIEFzc2VydGlvbkVycm9yKTsKKyAgICBhc3NlcnRQKDEuMjM0NTY3ODkucCk7CisgICAgRXhwZWN0LnRocm93cygoKSA9PiBhc3NlcnRQKDEuMjM0NTY3ODkpLCAoZSkgPT4gZSBpcyBBc3NlcnRpb25FcnJvcik7CisgIH0KK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3N0YW5kYWxvbmUvaW8vc29ja2V0X3NvdXJjZV9hZGRyZXNzX3Rlc3QuZGFydCBiL3Rlc3RzL3N0YW5kYWxvbmUvaW8vc29ja2V0X3NvdXJjZV9hZGRyZXNzX3Rlc3QuZGFydAppbmRleCA0Yjk1NDMzLi42NGRjNDkwIDEwMDY0NAotLS0gYS90ZXN0cy9zdGFuZGFsb25lL2lvL3NvY2tldF9zb3VyY2VfYWRkcmVzc190ZXN0LmRhcnQKKysrIGIvdGVzdHMvc3RhbmRhbG9uZS9pby9zb2NrZXRfc291cmNlX2FkZHJlc3NfdGVzdC5kYXJ0CkBAIC00Myw3ICs0Myw4IEBACiAgICAgYXdhaXQgdGhyb3dzKCgpID0+IGNvbm5lY3RGdW5jdGlvbignMTI3LjAuMC4xJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlQWRkcmVzczogc291cmNlQWRkcmVzcyksCi0gICAgICAgICAgICAgICAgIChlKSA9PiBlIGlzIFNvY2tldEV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIChlKSA9PiBlIGlzIFNvY2tldEV4Y2VwdGlvbiAmJgorICAgICAgICAgICAgICAgICAgICAgZS5hZGRyZXNzID09IG5ldyBJbnRlcm5ldEFkZHJlc3MoJzguOC44LjgnKSk7CiAgIH0KICAgLy8gQWRkcmVzcyBmYW1pbHkgbWlzbWF0Y2guCiAgIGZvciAoc291cmNlQWRkcmVzcyBpbiBbJzo6MScsIEludGVybmV0QWRkcmVzcy5MT09QQkFDS19JUF9WNl0pIHsKZGlmZiAtLWdpdCBhL3Rlc3RzL3N0YW5kYWxvbmUvc3RhbmRhbG9uZS5zdGF0dXMgYi90ZXN0cy9zdGFuZGFsb25lL3N0YW5kYWxvbmUuc3RhdHVzCmluZGV4IDM0NzY1NjAuLjgxNjNmODkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N0YW5kYWxvbmUvc3RhbmRhbG9uZS5zdGF0dXMKKysrIGIvdGVzdHMvc3RhbmRhbG9uZS9zdGFuZGFsb25lLnN0YXR1cwpAQCAtNzgsNiArNzgsNyBAQAogCiBbICRjb21waWxlciA9PSBkYXJ0YW5hbHl6ZXIgfHwgJGNvbXBpbGVyID09IGRhcnQyYW5hbHl6ZXIgXQogaXNzdWUxNDIzNl90ZXN0OiBTa2lwICMgQW5hbHl6ZXIgY2FuJ3QgaGFuZGxlIFNjcmlwdCBzbmFwc2hvdHMuCitmaXhlZF9wcmVjaXNpb25fZG91YmxlX3Rlc3Q6IFNraXAgIyBkb3VibGUgcCBnZXR0ZXIgb25seSBpbXBsZW1lbnRlZCBpbiBWTS4KIAogIyB0ZXN0IGlzc3VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvZGFydC9pc3N1ZXMvZGV0YWlsP2lkPTExNTE4CiBpby9maWxlX2NvbnN0cnVjdG9yX3Rlc3Q6IGZhaWwKQEAgLTExNCw2ICsxMTUsNyBAQAogcGFpcl9sb2NhdGlvbl9yZW1hcHBpbmdfdGVzdDogU2tpcAogcmVncmVzc18yNTMzNV90ZXN0OiBTa2lwICMgSW50NjRMaXN0IG5vdCBzdXBwb3J0ZWQuCiBkZWZlcnJlZF90cmFuc2l0aXZlX2ltcG9ydF9lcnJvcl90ZXN0OiBTa2lwICMgQ29udGFpbnMgaW50ZW50aW9uYWwgZXJyb3JzLgorZml4ZWRfcHJlY2lzaW9uX2RvdWJsZV90ZXN0OiBTa2lwICMgZG91YmxlIHAgZ2V0dGVyIG9ubHkgaW1wbGVtZW50ZWQgaW4gVk0uCiAKIFsgJGNvbXBpbGVyID09IGRhcnQyanMgJiYgJGNwc19pciAmJiAkY2hlY2tlZCBdCiAqOiBTa2lwICMgYGFzc2VydGAgbm90IGltcGxlbWVudGVkCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ2VuZXJhdGVkLmduaSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nZW5lcmF0ZWQuZ25pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYWM5YmUKLS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ2VuZXJhdGVkLmduaQpAQCAtMCwwICsxLDQ1OCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworIyBUaGlzIGZpbGUgaXMgY3JlYXRlZCBieSBnZW5lcmF0ZV9idWlsZF9maWxlcy5weS4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2NyeXB0b19zb3VyY2VzID0gWworICAiZXJyX2RhdGEuYyIsCisgICJzcmMvY3J5cHRvL2Flcy9hZXMuYyIsCisgICJzcmMvY3J5cHRvL2Flcy9tb2RlX3dyYXBwZXJzLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfYml0c3RyLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfYm9vbC5jIiwKKyAgInNyYy9jcnlwdG8vYXNuMS9hX2J5dGVzLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfZDJpX2ZwLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfZHVwLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfZW51bS5jIiwKKyAgInNyYy9jcnlwdG8vYXNuMS9hX2dlbnRtLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfaTJkX2ZwLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfaW50LmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfbWJzdHIuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYV9vYmplY3QuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYV9vY3RldC5jIiwKKyAgInNyYy9jcnlwdG8vYXNuMS9hX3ByaW50LmMiLAorICAic3JjL2NyeXB0by9hc24xL2Ffc3RybmlkLmMiLAorICAic3JjL2NyeXB0by9hc24xL2FfdGltZS5jIiwKKyAgInNyYy9jcnlwdG8vYXNuMS9hX3R5cGUuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYV91dGN0bS5jIiwKKyAgInNyYy9jcnlwdG8vYXNuMS9hX3V0ZjguYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYXNuMV9saWIuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYXNuMV9wYXIuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvYXNuX3BhY2suYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvZl9lbnVtLmMiLAorICAic3JjL2NyeXB0by9hc24xL2ZfaW50LmMiLAorICAic3JjL2NyeXB0by9hc24xL2Zfc3RyaW5nLmMiLAorICAic3JjL2NyeXB0by9hc24xL3RfYml0c3QuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl9kZWMuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl9lbmMuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl9mcmUuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl9uZXcuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl90eXAuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEvdGFzbl91dGwuYyIsCisgICJzcmMvY3J5cHRvL2FzbjEveF9iaWdudW0uYyIsCisgICJzcmMvY3J5cHRvL2FzbjEveF9sb25nLmMiLAorICAic3JjL2NyeXB0by9iYXNlNjQvYmFzZTY0LmMiLAorICAic3JjL2NyeXB0by9iaW8vYmlvLmMiLAorICAic3JjL2NyeXB0by9iaW8vYmlvX21lbS5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL2J1ZmZlci5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL2Nvbm5lY3QuYyIsCisgICJzcmMvY3J5cHRvL2Jpby9mZC5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL2ZpbGUuYyIsCisgICJzcmMvY3J5cHRvL2Jpby9oZXhkdW1wLmMiLAorICAic3JjL2NyeXB0by9iaW8vcGFpci5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL3ByaW50Zi5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL3NvY2tldC5jIiwKKyAgInNyYy9jcnlwdG8vYmlvL3NvY2tldF9oZWxwZXIuYyIsCisgICJzcmMvY3J5cHRvL2JuL2FkZC5jIiwKKyAgInNyYy9jcnlwdG8vYm4vYXNtL3g4Nl82NC1nY2MuYyIsCisgICJzcmMvY3J5cHRvL2JuL2JuLmMiLAorICAic3JjL2NyeXB0by9ibi9ibl9hc24xLmMiLAorICAic3JjL2NyeXB0by9ibi9jbXAuYyIsCisgICJzcmMvY3J5cHRvL2JuL2NvbnZlcnQuYyIsCisgICJzcmMvY3J5cHRvL2JuL2N0eC5jIiwKKyAgInNyYy9jcnlwdG8vYm4vZGl2LmMiLAorICAic3JjL2NyeXB0by9ibi9leHBvbmVudGlhdGlvbi5jIiwKKyAgInNyYy9jcnlwdG8vYm4vZ2NkLmMiLAorICAic3JjL2NyeXB0by9ibi9nZW5lcmljLmMiLAorICAic3JjL2NyeXB0by9ibi9rcm9uZWNrZXIuYyIsCisgICJzcmMvY3J5cHRvL2JuL21vbnRnb21lcnkuYyIsCisgICJzcmMvY3J5cHRvL2JuL211bC5jIiwKKyAgInNyYy9jcnlwdG8vYm4vcHJpbWUuYyIsCisgICJzcmMvY3J5cHRvL2JuL3JhbmRvbS5jIiwKKyAgInNyYy9jcnlwdG8vYm4vcnNhel9leHAuYyIsCisgICJzcmMvY3J5cHRvL2JuL3NoaWZ0LmMiLAorICAic3JjL2NyeXB0by9ibi9zcXJ0LmMiLAorICAic3JjL2NyeXB0by9idWYvYnVmLmMiLAorICAic3JjL2NyeXB0by9ieXRlc3RyaW5nL2FzbjFfY29tcGF0LmMiLAorICAic3JjL2NyeXB0by9ieXRlc3RyaW5nL2Jlci5jIiwKKyAgInNyYy9jcnlwdG8vYnl0ZXN0cmluZy9jYmIuYyIsCisgICJzcmMvY3J5cHRvL2J5dGVzdHJpbmcvY2JzLmMiLAorICAic3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhLmMiLAorICAic3JjL2NyeXB0by9jaXBoZXIvYWVhZC5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2NpcGhlci5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2Rlcml2ZV9rZXkuYyIsCisgICJzcmMvY3J5cHRvL2NpcGhlci9lX2Flcy5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2VfY2hhY2hhMjBwb2x5MTMwNS5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2VfZGVzLmMiLAorICAic3JjL2NyeXB0by9jaXBoZXIvZV9udWxsLmMiLAorICAic3JjL2NyeXB0by9jaXBoZXIvZV9yYzIuYyIsCisgICJzcmMvY3J5cHRvL2NpcGhlci9lX3JjNC5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2Vfc3NsMy5jIiwKKyAgInNyYy9jcnlwdG8vY2lwaGVyL2VfdGxzLmMiLAorICAic3JjL2NyeXB0by9jaXBoZXIvdGxzX2NiYy5jIiwKKyAgInNyYy9jcnlwdG8vY21hYy9jbWFjLmMiLAorICAic3JjL2NyeXB0by9jb25mL2NvbmYuYyIsCisgICJzcmMvY3J5cHRvL2NwdS1hYXJjaDY0LWxpbnV4LmMiLAorICAic3JjL2NyeXB0by9jcHUtYXJtLWxpbnV4LmMiLAorICAic3JjL2NyeXB0by9jcHUtYXJtLmMiLAorICAic3JjL2NyeXB0by9jcHUtaW50ZWwuYyIsCisgICJzcmMvY3J5cHRvL2NyeXB0by5jIiwKKyAgInNyYy9jcnlwdG8vY3VydmUyNTUxOS9jdXJ2ZTI1NTE5LmMiLAorICAic3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3NwYWtlMjU1MTkuYyIsCisgICJzcmMvY3J5cHRvL2N1cnZlMjU1MTkveDI1NTE5LXg4Nl82NC5jIiwKKyAgInNyYy9jcnlwdG8vZGVzL2Rlcy5jIiwKKyAgInNyYy9jcnlwdG8vZGgvY2hlY2suYyIsCisgICJzcmMvY3J5cHRvL2RoL2RoLmMiLAorICAic3JjL2NyeXB0by9kaC9kaF9hc24xLmMiLAorICAic3JjL2NyeXB0by9kaC9wYXJhbXMuYyIsCisgICJzcmMvY3J5cHRvL2RpZ2VzdC9kaWdlc3QuYyIsCisgICJzcmMvY3J5cHRvL2RpZ2VzdC9kaWdlc3RzLmMiLAorICAic3JjL2NyeXB0by9kc2EvZHNhLmMiLAorICAic3JjL2NyeXB0by9kc2EvZHNhX2FzbjEuYyIsCisgICJzcmMvY3J5cHRvL2VjL2VjLmMiLAorICAic3JjL2NyeXB0by9lYy9lY19hc24xLmMiLAorICAic3JjL2NyeXB0by9lYy9lY19rZXkuYyIsCisgICJzcmMvY3J5cHRvL2VjL2VjX21vbnRnb21lcnkuYyIsCisgICJzcmMvY3J5cHRvL2VjL29jdC5jIiwKKyAgInNyYy9jcnlwdG8vZWMvcDIyNC02NC5jIiwKKyAgInNyYy9jcnlwdG8vZWMvcDI1Ni02NC5jIiwKKyAgInNyYy9jcnlwdG8vZWMvcDI1Ni14ODZfNjQuYyIsCisgICJzcmMvY3J5cHRvL2VjL3NpbXBsZS5jIiwKKyAgInNyYy9jcnlwdG8vZWMvdXRpbC02NC5jIiwKKyAgInNyYy9jcnlwdG8vZWMvd25hZi5jIiwKKyAgInNyYy9jcnlwdG8vZWNkaC9lY2RoLmMiLAorICAic3JjL2NyeXB0by9lY2RzYS9lY2RzYS5jIiwKKyAgInNyYy9jcnlwdG8vZWNkc2EvZWNkc2FfYXNuMS5jIiwKKyAgInNyYy9jcnlwdG8vZW5naW5lL2VuZ2luZS5jIiwKKyAgInNyYy9jcnlwdG8vZXJyL2Vyci5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL2RpZ2VzdHNpZ24uYyIsCisgICJzcmMvY3J5cHRvL2V2cC9ldnAuYyIsCisgICJzcmMvY3J5cHRvL2V2cC9ldnBfYXNuMS5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL2V2cF9jdHguYyIsCisgICJzcmMvY3J5cHRvL2V2cC9wX2RzYV9hc24xLmMiLAorICAic3JjL2NyeXB0by9ldnAvcF9lYy5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL3BfZWNfYXNuMS5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL3BfcnNhLmMiLAorICAic3JjL2NyeXB0by9ldnAvcF9yc2FfYXNuMS5jIiwKKyAgInNyYy9jcnlwdG8vZXZwL3Bia2RmLmMiLAorICAic3JjL2NyeXB0by9ldnAvcHJpbnQuYyIsCisgICJzcmMvY3J5cHRvL2V2cC9zaWduLmMiLAorICAic3JjL2NyeXB0by9leF9kYXRhLmMiLAorICAic3JjL2NyeXB0by9oa2RmL2hrZGYuYyIsCisgICJzcmMvY3J5cHRvL2htYWMvaG1hYy5jIiwKKyAgInNyYy9jcnlwdG8vbGhhc2gvbGhhc2guYyIsCisgICJzcmMvY3J5cHRvL21kNC9tZDQuYyIsCisgICJzcmMvY3J5cHRvL21kNS9tZDUuYyIsCisgICJzcmMvY3J5cHRvL21lbS5jIiwKKyAgInNyYy9jcnlwdG8vbW9kZXMvY2JjLmMiLAorICAic3JjL2NyeXB0by9tb2Rlcy9jZmIuYyIsCisgICJzcmMvY3J5cHRvL21vZGVzL2N0ci5jIiwKKyAgInNyYy9jcnlwdG8vbW9kZXMvZ2NtLmMiLAorICAic3JjL2NyeXB0by9tb2Rlcy9vZmIuYyIsCisgICJzcmMvY3J5cHRvL25ld2hvcGUvZXJyb3JfY29ycmVjdGlvbi5jIiwKKyAgInNyYy9jcnlwdG8vbmV3aG9wZS9uZXdob3BlLmMiLAorICAic3JjL2NyeXB0by9uZXdob3BlL250dC5jIiwKKyAgInNyYy9jcnlwdG8vbmV3aG9wZS9wb2x5LmMiLAorICAic3JjL2NyeXB0by9uZXdob3BlL3ByZWNvbXAuYyIsCisgICJzcmMvY3J5cHRvL25ld2hvcGUvcmVkdWNlLmMiLAorICAic3JjL2NyeXB0by9vYmovb2JqLmMiLAorICAic3JjL2NyeXB0by9vYmovb2JqX3hyZWYuYyIsCisgICJzcmMvY3J5cHRvL3BlbS9wZW1fYWxsLmMiLAorICAic3JjL2NyeXB0by9wZW0vcGVtX2luZm8uYyIsCisgICJzcmMvY3J5cHRvL3BlbS9wZW1fbGliLmMiLAorICAic3JjL2NyeXB0by9wZW0vcGVtX290aC5jIiwKKyAgInNyYy9jcnlwdG8vcGVtL3BlbV9wazguYyIsCisgICJzcmMvY3J5cHRvL3BlbS9wZW1fcGtleS5jIiwKKyAgInNyYy9jcnlwdG8vcGVtL3BlbV94NTA5LmMiLAorICAic3JjL2NyeXB0by9wZW0vcGVtX3hhdXguYyIsCisgICJzcmMvY3J5cHRvL3BrY3M4L3A1X3BiZS5jIiwKKyAgInNyYy9jcnlwdG8vcGtjczgvcDVfcGJldjIuYyIsCisgICJzcmMvY3J5cHRvL3BrY3M4L3A4X3BrZXkuYyIsCisgICJzcmMvY3J5cHRvL3BrY3M4L3BrY3M4LmMiLAorICAic3JjL2NyeXB0by9wb2x5MTMwNS9wb2x5MTMwNS5jIiwKKyAgInNyYy9jcnlwdG8vcG9seTEzMDUvcG9seTEzMDVfYXJtLmMiLAorICAic3JjL2NyeXB0by9wb2x5MTMwNS9wb2x5MTMwNV92ZWMuYyIsCisgICJzcmMvY3J5cHRvL3JhbmQvZGV0ZXJtaW5pc3RpYy5jIiwKKyAgInNyYy9jcnlwdG8vcmFuZC9yYW5kLmMiLAorICAic3JjL2NyeXB0by9yYW5kL3VyYW5kb20uYyIsCisgICJzcmMvY3J5cHRvL3JhbmQvd2luZG93cy5jIiwKKyAgInNyYy9jcnlwdG8vcmM0L3JjNC5jIiwKKyAgInNyYy9jcnlwdG8vcmVmY291bnRfYzExLmMiLAorICAic3JjL2NyeXB0by9yZWZjb3VudF9sb2NrLmMiLAorICAic3JjL2NyeXB0by9yc2EvYmxpbmRpbmcuYyIsCisgICJzcmMvY3J5cHRvL3JzYS9wYWRkaW5nLmMiLAorICAic3JjL2NyeXB0by9yc2EvcnNhLmMiLAorICAic3JjL2NyeXB0by9yc2EvcnNhX2FzbjEuYyIsCisgICJzcmMvY3J5cHRvL3JzYS9yc2FfaW1wbC5jIiwKKyAgInNyYy9jcnlwdG8vc2hhL3NoYTEuYyIsCisgICJzcmMvY3J5cHRvL3NoYS9zaGEyNTYuYyIsCisgICJzcmMvY3J5cHRvL3NoYS9zaGE1MTIuYyIsCisgICJzcmMvY3J5cHRvL3N0YWNrL3N0YWNrLmMiLAorICAic3JjL2NyeXB0by90aHJlYWQuYyIsCisgICJzcmMvY3J5cHRvL3RocmVhZF9ub25lLmMiLAorICAic3JjL2NyeXB0by90aHJlYWRfcHRocmVhZC5jIiwKKyAgInNyYy9jcnlwdG8vdGhyZWFkX3dpbi5jIiwKKyAgInNyYy9jcnlwdG8vdGltZV9zdXBwb3J0LmMiLAorICAic3JjL2NyeXB0by94NTA5L2FfZGlnZXN0LmMiLAorICAic3JjL2NyeXB0by94NTA5L2Ffc2lnbi5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS9hX3N0cmV4LmMiLAorICAic3JjL2NyeXB0by94NTA5L2FfdmVyaWZ5LmMiLAorICAic3JjL2NyeXB0by94NTA5L2FsZ29yaXRobS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS9hc24xX2dlbi5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS9ieV9kaXIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkvYnlfZmlsZS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS9pMmRfcHIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkvcGtjczcuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkvcnNhX3Bzcy5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS90X2NybC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS90X3JlcS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS90X3g1MDkuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkvdF94NTA5YS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5LmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlfYXR0LmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlfY21wLmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlfZDIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveDUwOV9kZWYuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveDUwOV9leHQuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveDUwOV9sdS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X29iai5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3IyeC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3JlcS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3NldC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3Rycy5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3R4dC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94NTA5X3YzLmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlfdmZ5LmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlfdnBtLmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDljc2V0LmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDluYW1lLmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlyc2V0LmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDlzcGtpLmMiLAorICAic3JjL2NyeXB0by94NTA5L3g1MDl0eXBlLmMiLAorICAic3JjL2NyeXB0by94NTA5L3hfYWxnb3IuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF9hbGwuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF9hdHRyaWIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF9jcmwuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF9leHRlbi5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94X2luZm8uYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF9uYW1lLmMiLAorICAic3JjL2NyeXB0by94NTA5L3hfcGtleS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94X3B1YmtleS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94X3JlcS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94X3NpZy5jIiwKKyAgInNyYy9jcnlwdG8veDUwOS94X3Nwa2kuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF92YWwuYyIsCisgICJzcmMvY3J5cHRvL3g1MDkveF94NTA5LmMiLAorICAic3JjL2NyeXB0by94NTA5L3hfeDUwOWEuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My9wY3lfY2FjaGUuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My9wY3lfZGF0YS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3BjeV9saWIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My9wY3lfbWFwLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvcGN5X25vZGUuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My9wY3lfdHJlZS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2FrZXkuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19ha2V5YS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2FsdC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2Jjb25zLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfYml0c3QuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19jb25mLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfY3BvbHMuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19jcmxkLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfZW51bS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2V4dGt1LmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfZ2Vubi5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2lhNS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX2luZm8uYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19pbnQuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19saWIuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19uY29ucy5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3BjaS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3BjaWEuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19wY29ucy5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3BrdS5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3BtYXBzLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfcHJuLmMiLAorICAic3JjL2NyeXB0by94NTA5djMvdjNfcHVycC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3NrZXkuYyIsCisgICJzcmMvY3J5cHRvL3g1MDl2My92M19zeG5ldC5jIiwKKyAgInNyYy9jcnlwdG8veDUwOXYzL3YzX3V0bC5jIiwKK10KKworc3NsX3NvdXJjZXMgPSBbCisgICJzcmMvc3NsL2N1c3RvbV9leHRlbnNpb25zLmMiLAorICAic3JjL3NzbC9kMV9ib3RoLmMiLAorICAic3JjL3NzbC9kMV9saWIuYyIsCisgICJzcmMvc3NsL2QxX3BrdC5jIiwKKyAgInNyYy9zc2wvZDFfc3J0cC5jIiwKKyAgInNyYy9zc2wvZHRsc19tZXRob2QuYyIsCisgICJzcmMvc3NsL2R0bHNfcmVjb3JkLmMiLAorICAic3JjL3NzbC9oYW5kc2hha2VfY2xpZW50LmMiLAorICAic3JjL3NzbC9oYW5kc2hha2Vfc2VydmVyLmMiLAorICAic3JjL3NzbC9zM19ib3RoLmMiLAorICAic3JjL3NzbC9zM19lbmMuYyIsCisgICJzcmMvc3NsL3MzX2xpYi5jIiwKKyAgInNyYy9zc2wvczNfcGt0LmMiLAorICAic3JjL3NzbC9zc2xfYWVhZF9jdHguYyIsCisgICJzcmMvc3NsL3NzbF9hc24xLmMiLAorICAic3JjL3NzbC9zc2xfYnVmZmVyLmMiLAorICAic3JjL3NzbC9zc2xfY2VydC5jIiwKKyAgInNyYy9zc2wvc3NsX2NpcGhlci5jIiwKKyAgInNyYy9zc2wvc3NsX2VjZGguYyIsCisgICJzcmMvc3NsL3NzbF9maWxlLmMiLAorICAic3JjL3NzbC9zc2xfbGliLmMiLAorICAic3JjL3NzbC9zc2xfcnNhLmMiLAorICAic3JjL3NzbC9zc2xfc2Vzc2lvbi5jIiwKKyAgInNyYy9zc2wvc3NsX3N0YXQuYyIsCisgICJzcmMvc3NsL3QxX2VuYy5jIiwKKyAgInNyYy9zc2wvdDFfbGliLmMiLAorICAic3JjL3NzbC90bHNfbWV0aG9kLmMiLAorICAic3JjL3NzbC90bHNfcmVjb3JkLmMiLAorXQorCitjcnlwdG9fc291cmNlc19saW51eF9hYXJjaDY0ID0gWworICAibGludXgtYWFyY2g2NC9jcnlwdG8vYWVzL2Flc3Y4LWFybXg2NC5TIiwKKyAgImxpbnV4LWFhcmNoNjQvY3J5cHRvL2JuL2FybXY4LW1vbnQuUyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY4LlMiLAorICAibGludXgtYWFyY2g2NC9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14NjQuUyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhMS1hcm12OC5TIiwKKyAgImxpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjguUyIsCisgICJsaW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhNTEyLWFybXY4LlMiLAorXQorCitjcnlwdG9fc291cmNlc19saW51eF9hcm0gPSBbCisgICJsaW51eC1hcm0vY3J5cHRvL2Flcy9hZXMtYXJtdjQuUyIsCisgICJsaW51eC1hcm0vY3J5cHRvL2Flcy9hZXN2OC1hcm14MzIuUyIsCisgICJsaW51eC1hcm0vY3J5cHRvL2Flcy9ic2Flcy1hcm12Ny5TIiwKKyAgImxpbnV4LWFybS9jcnlwdG8vYm4vYXJtdjQtbW9udC5TIiwKKyAgImxpbnV4LWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TIiwKKyAgImxpbnV4LWFybS9jcnlwdG8vbW9kZXMvZ2hhc2gtYXJtdjQuUyIsCisgICJsaW51eC1hcm0vY3J5cHRvL21vZGVzL2doYXNodjgtYXJteDMyLlMiLAorICAibGludXgtYXJtL2NyeXB0by9zaGEvc2hhMS1hcm12NC1sYXJnZS5TIiwKKyAgImxpbnV4LWFybS9jcnlwdG8vc2hhL3NoYTI1Ni1hcm12NC5TIiwKKyAgImxpbnV4LWFybS9jcnlwdG8vc2hhL3NoYTUxMi1hcm12NC5TIiwKKyAgInNyYy9jcnlwdG8vY3VydmUyNTUxOS9hc20veDI1NTE5LWFzbS1hcm0uUyIsCisgICJzcmMvY3J5cHRvL3BvbHkxMzA1L3BvbHkxMzA1X2FybV9hc20uUyIsCitdCisKK2NyeXB0b19zb3VyY2VzX2xpbnV4X3g4NiA9IFsKKyAgImxpbnV4LXg4Ni9jcnlwdG8vYWVzL2Flcy01ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL2Flcy9hZXNuaS14ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL2Flcy92cGFlcy14ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL2JuL2JuLTU4Ni5TIiwKKyAgImxpbnV4LXg4Ni9jcnlwdG8vYm4vY28tNTg2LlMiLAorICAibGludXgteDg2L2NyeXB0by9ibi94ODYtbW9udC5TIiwKKyAgImxpbnV4LXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL21kNS9tZDUtNTg2LlMiLAorICAibGludXgteDg2L2NyeXB0by9tb2Rlcy9naGFzaC14ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMiLAorICAibGludXgteDg2L2NyeXB0by9zaGEvc2hhMS01ODYuUyIsCisgICJsaW51eC14ODYvY3J5cHRvL3NoYS9zaGEyNTYtNTg2LlMiLAorICAibGludXgteDg2L2NyeXB0by9zaGEvc2hhNTEyLTU4Ni5TIiwKK10KKworY3J5cHRvX3NvdXJjZXNfbGludXhfeDg2XzY0ID0gWworICAibGludXgteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2Flc25pLXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2JzYWVzLXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL3ZwYWVzLXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vYm4vcnNhei1hdngyLlMiLAorICAibGludXgteDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuUyIsCisgICJsaW51eC14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250NS5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUyIsCisgICJsaW51eC14ODZfNjQvY3J5cHRvL2VjL3AyNTYteDg2XzY0LWFzbS5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUyIsCisgICJsaW51eC14ODZfNjQvY3J5cHRvL21vZGVzL2Flc25pLWdjbS14ODZfNjQuUyIsCisgICJsaW51eC14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vcmFuZC9yZHJhbmQteDg2XzY0LlMiLAorICAibGludXgteDg2XzY0L2NyeXB0by9yYzQvcmM0LXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LlMiLAorICAibGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TIiwKKyAgImxpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTUxMi14ODZfNjQuUyIsCisgICJzcmMvY3J5cHRvL2N1cnZlMjU1MTkvYXNtL3gyNTUxOS1hc20teDg2XzY0LlMiLAorXQorCitjcnlwdG9fc291cmNlc19tYWNfeDg2ID0gWworICAibWFjLXg4Ni9jcnlwdG8vYWVzL2Flcy01ODYuUyIsCisgICJtYWMteDg2L2NyeXB0by9hZXMvYWVzbmkteDg2LlMiLAorICAibWFjLXg4Ni9jcnlwdG8vYWVzL3ZwYWVzLXg4Ni5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL2JuL2JuLTU4Ni5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL2JuL2NvLTU4Ni5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL2JuL3g4Ni1tb250LlMiLAorICAibWFjLXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUyIsCisgICJtYWMteDg2L2NyeXB0by9tZDUvbWQ1LTU4Ni5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL21vZGVzL2doYXNoLXg4Ni5TIiwKKyAgIm1hYy14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMiLAorICAibWFjLXg4Ni9jcnlwdG8vc2hhL3NoYTEtNTg2LlMiLAorICAibWFjLXg4Ni9jcnlwdG8vc2hhL3NoYTI1Ni01ODYuUyIsCisgICJtYWMteDg2L2NyeXB0by9zaGEvc2hhNTEyLTU4Ni5TIiwKK10KKworY3J5cHRvX3NvdXJjZXNfbWFjX3g4Nl82NCA9IFsKKyAgIm1hYy14ODZfNjQvY3J5cHRvL2Flcy9hZXMteDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vYWVzL2Flc25pLXg4Nl82NC5TIiwKKyAgIm1hYy14ODZfNjQvY3J5cHRvL2Flcy9ic2Flcy14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9hZXMvdnBhZXMteDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vYm4vcnNhei1hdngyLlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vYm4vcnNhei14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TIiwKKyAgIm1hYy14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250NS5TIiwKKyAgIm1hYy14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9tb2Rlcy9hZXNuaS1nY20teDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vcmFuZC9yZHJhbmQteDg2XzY0LlMiLAorICAibWFjLXg4Nl82NC9jcnlwdG8vcmM0L3JjNC14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUyIsCisgICJtYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TIiwKKyAgIm1hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMiLAorICAic3JjL2NyeXB0by9jdXJ2ZTI1NTE5L2FzbS94MjU1MTktYXNtLXg4Nl82NC5TIiwKK10KKworY3J5cHRvX3NvdXJjZXNfd2luX3g4NiA9IFsKKyAgIndpbi14ODYvY3J5cHRvL2Flcy9hZXMtNTg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9hZXMvYWVzbmkteDg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9hZXMvdnBhZXMteDg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9ibi9ibi01ODYuYXNtIiwKKyAgIndpbi14ODYvY3J5cHRvL2JuL2NvLTU4Ni5hc20iLAorICAid2luLXg4Ni9jcnlwdG8vYm4veDg2LW1vbnQuYXNtIiwKKyAgIndpbi14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9tZDUvbWQ1LTU4Ni5hc20iLAorICAid2luLXg4Ni9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9yYzQvcmM0LTU4Ni5hc20iLAorICAid2luLXg4Ni9jcnlwdG8vc2hhL3NoYTEtNTg2LmFzbSIsCisgICJ3aW4teDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5hc20iLAorICAid2luLXg4Ni9jcnlwdG8vc2hhL3NoYTUxMi01ODYuYXNtIiwKK10KKworY3J5cHRvX3NvdXJjZXNfd2luX3g4Nl82NCA9IFsKKyAgIndpbi14ODZfNjQvY3J5cHRvL2Flcy9hZXMteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9hZXMvYWVzbmkteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9hZXMvYnNhZXMteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9hZXMvdnBhZXMteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9ibi9yc2F6LWF2eDIuYXNtIiwKKyAgIndpbi14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5hc20iLAorICAid2luLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQ1LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5hc20iLAorICAid2luLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9tZDUvbWQ1LXg4Nl82NC5hc20iLAorICAid2luLXg4Nl82NC9jcnlwdG8vbW9kZXMvYWVzbmktZ2NtLXg4Nl82NC5hc20iLAorICAid2luLXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9yYW5kL3JkcmFuZC14ODZfNjQuYXNtIiwKKyAgIndpbi14ODZfNjQvY3J5cHRvL3JjNC9yYzQteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuYXNtIiwKKyAgIndpbi14ODZfNjQvY3J5cHRvL3NoYS9zaGEyNTYteDg2XzY0LmFzbSIsCisgICJ3aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhNTEyLXg4Nl82NC5hc20iLAorXQorCitmdXp6ZXJzID0gWworICAiY2VydCIsCisgICJjbGllbnQiLAorICAicGtjczgiLAorICAicHJpdmtleSIsCisgICJyZWFkX3BlbSIsCisgICJzZXJ2ZXIiLAorICAic3BraSIsCitdCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ2VuZXJhdGVkX3Rlc3RzLmduaSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nZW5lcmF0ZWRfdGVzdHMuZ25pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YmRkZmYKLS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ2VuZXJhdGVkX3Rlc3RzLmduaQpAQCAtMCwwICsxLDU4NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworIyBUaGlzIGZpbGUgaXMgY3JlYXRlZCBieSBnZW5lcmF0ZV9idWlsZF9maWxlcy5weS4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK190ZXN0X3N1cHBvcnRfc291cmNlcyA9IFsKKyAgInNyYy9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuY2MiLAorICAic3JjL2NyeXB0by90ZXN0L2ZpbGVfdGVzdC5oIiwKKyAgInNyYy9jcnlwdG8vdGVzdC9tYWxsb2MuY2MiLAorICAic3JjL2NyeXB0by90ZXN0L3Njb3BlZF90eXBlcy5oIiwKKyAgInNyYy9jcnlwdG8vdGVzdC90ZXN0X3V0aWwuY2MiLAorICAic3JjL2NyeXB0by90ZXN0L3Rlc3RfdXRpbC5oIiwKKyAgInNyYy9zc2wvdGVzdC9hc3luY19iaW8uaCIsCisgICJzcmMvc3NsL3Rlc3QvcGFja2V0ZWRfYmlvLmgiLAorICAic3JjL3NzbC90ZXN0L3Njb3BlZF90eXBlcy5oIiwKKyAgInNyYy9zc2wvdGVzdC90ZXN0X2NvbmZpZy5oIiwKK10KKwordGVtcGxhdGUoImNyZWF0ZV90ZXN0cyIpIHsKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2Flc190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9hZXMvYWVzX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9hc24xX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2FzbjEvYXNuMV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfYmFzZTY0X3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2Jhc2U2NC9iYXNlNjRfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2Jpb190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9iaW8vYmlvX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9ibl90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9ibi9ibl90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfYnl0ZXN0cmluZ190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9ieXRlc3RyaW5nL2J5dGVzdHJpbmdfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2NoYWNoYV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9hZWFkX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2NpcGhlci9hZWFkX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9jaXBoZXJfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vY2lwaGVyL2NpcGhlcl90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfY21hY190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9jbWFjL2NtYWNfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2NvbnN0YW50X3RpbWVfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vY29uc3RhbnRfdGltZV90ZXN0LmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9lZDI1NTE5X3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2N1cnZlMjU1MTkvZWQyNTUxOV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfc3Bha2UyNTUxOV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3NwYWtlMjU1MTlfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX3gyNTUxOV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3gyNTUxOV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfZGhfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vZGgvZGhfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2RpZ2VzdF90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9kaWdlc3QvZGlnZXN0X3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9kc2FfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vZHNhL2RzYV90ZXN0LmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9lY190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9lYy9lY190ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfZXhhbXBsZV9tdWwiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2VjL2V4YW1wbGVfbXVsLmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9lY2RzYV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9lY2RzYS9lY2RzYV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfZXJyX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2Vyci9lcnJfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX2V2cF9leHRyYV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9ldnAvZXZwX2V4dHJhX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9ldnBfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vZXZwL2V2cF90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfcGJrZGZfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vZXZwL3Bia2RmX3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9oa2RmX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2hrZGYvaGtkZl90ZXN0LmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9obWFjX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL2htYWMvaG1hY190ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfbGhhc2hfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vbGhhc2gvbGhhc2hfdGVzdC5jIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfZ2NtX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL21vZGVzL2djbV90ZXN0LmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9uZXdob3BlX3N0YXRpc3RpY2FsX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL25ld2hvcGUvbmV3aG9wZV9zdGF0aXN0aWNhbF90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfbmV3aG9wZV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9uZXdob3BlL25ld2hvcGVfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX25ld2hvcGVfdmVjdG9yc190ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9uZXdob3BlL25ld2hvcGVfdmVjdG9yc190ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfb2JqX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL29iai9vYmpfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX3BrY3MxMl90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9wa2NzOC9wa2NzMTJfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX3BrY3M4X3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL3BrY3M4L3BrY3M4X3Rlc3QuY2MiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF9wb2x5MTMwNV90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by9wb2x5MTMwNS9wb2x5MTMwNV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfcmVmY291bnRfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8vcmVmY291bnRfdGVzdC5jIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfcnNhX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL3JzYS9yc2FfdGVzdC5jYyIsCisgICAgXQorICAgIHNvdXJjZXMgKz0gX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzCisgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzX2V4Y2x1ZGUpKSB7CisgICAgICBjb25maWdzIC09IGludm9rZXIuY29uZmlnc19leGNsdWRlCisgICAgfQorICAgIGNvbmZpZ3MgKz0gaW52b2tlci5jb25maWdzCisgICAgZGVwcyA9IGludm9rZXIuZGVwcworICB9CisKKyAgZXhlY3V0YWJsZSgiYm9yaW5nc3NsX3RocmVhZF90ZXN0IikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAic3JjL2NyeXB0by90aHJlYWRfdGVzdC5jIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfcGtjczdfdGVzdCIpIHsKKyAgICBzb3VyY2VzID0gWworICAgICAgInNyYy9jcnlwdG8veDUwOS9wa2NzN190ZXN0LmMiLAorICAgIF0KKyAgICBzb3VyY2VzICs9IF90ZXN0X3N1cHBvcnRfc291cmNlcworICAgIGlmIChkZWZpbmVkKGludm9rZXIuY29uZmlnc19leGNsdWRlKSkgeworICAgICAgY29uZmlncyAtPSBpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZQorICAgIH0KKyAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncworICAgIGRlcHMgPSBpbnZva2VyLmRlcHMKKyAgfQorCisgIGV4ZWN1dGFibGUoImJvcmluZ3NzbF94NTA5X3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL3g1MDkveDUwOV90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfdGFiX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL3g1MDl2My90YWJfdGVzdC5jIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfdjNuYW1lX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvY3J5cHRvL3g1MDl2My92M25hbWVfdGVzdC5jIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBleGVjdXRhYmxlKCJib3Jpbmdzc2xfc3NsX3Rlc3QiKSB7CisgICAgc291cmNlcyA9IFsKKyAgICAgICJzcmMvc3NsL3NzbF90ZXN0LmNjIiwKKyAgICBdCisgICAgc291cmNlcyArPSBfdGVzdF9zdXBwb3J0X3NvdXJjZXMKKyAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3NfZXhjbHVkZSkpIHsKKyAgICAgIGNvbmZpZ3MgLT0gaW52b2tlci5jb25maWdzX2V4Y2x1ZGUKKyAgICB9CisgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKKyAgICBkZXBzID0gaW52b2tlci5kZXBzCisgIH0KKworICBncm91cCh0YXJnZXRfbmFtZSkgeworICAgIGRlcHMgPSBbCisgICAgICAiOmJvcmluZ3NzbF9hZWFkX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfYWVzX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfYXNuMV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2Jhc2U2NF90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2Jpb190ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2JuX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfYnl0ZXN0cmluZ190ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2NoYWNoYV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2NpcGhlcl90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2NtYWNfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9jb25zdGFudF90aW1lX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfZGhfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9kaWdlc3RfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9kc2FfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9lY190ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2VjZHNhX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfZWQyNTUxOV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2Vycl90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2V2cF9leHRyYV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2V2cF90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2V4YW1wbGVfbXVsIiwKKyAgICAgICI6Ym9yaW5nc3NsX2djbV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX2hrZGZfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9obWFjX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfbGhhc2hfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9uZXdob3BlX3N0YXRpc3RpY2FsX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfbmV3aG9wZV90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX25ld2hvcGVfdmVjdG9yc190ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX29ial90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX3Bia2RmX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfcGtjczEyX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfcGtjczdfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9wa2NzOF90ZXN0IiwKKyAgICAgICI6Ym9yaW5nc3NsX3BvbHkxMzA1X3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfcmVmY291bnRfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9yc2FfdGVzdCIsCisgICAgICAiOmJvcmluZ3NzbF9zcGFrZTI1NTE5X3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfc3NsX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfdGFiX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfdGhyZWFkX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfdjNuYW1lX3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfeDI1NTE5X3Rlc3QiLAorICAgICAgIjpib3Jpbmdzc2xfeDUwOV90ZXN0IiwKKyAgICBdCisgIH0KK30KZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgppbmRleCBkYzI2MzMwLi5hNzFhNzM1IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCkBAIC00LDYgKzQsNyBAQAogCiBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQvY29uZmlnLmduaSIpCiBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvc2FuaXRpemVycy5nbmkiKQoraW1wb3J0KCJCVUlMRC5nZW5lcmF0ZWQuZ25pIikKIAogIyBDb25maWcgZm9yIHVzIGFuZCBldmVyeWJvZHkgZWxzZSBkZXBlbmRpbmcgb24gQm9yaW5nU1NMLgogY29uZmlnKCJleHRlcm5hbF9jb25maWciKSB7CkBAIC0xMyw4MyArMTQsMTA3IEBACiAgIH0KIH0KIAotCiAjIENvbmZpZyBpbnRlcm5hbCB0byB0aGlzIGJ1aWxkIGZpbGUsIHNoYXJlZCBieSBib3Jpbmdzc2wgYW5kIGJvcmluZ3NzbF9mdXp6ZXIuCiBjb25maWcoImludGVybmFsX2NvbmZpZyIpIHsKICAgdmlzaWJpbGl0eSA9IFsgIjoqIiBdICAjIE9ubHkgdGFyZ2V0cyBpbiB0aGlzIGZpbGUgY2FuIGRlcGVuZCBvbiB0aGlzLgogICBkZWZpbmVzID0gWwogICAgICJCT1JJTkdTU0xfSU1QTEVNRU5UQVRJT04iLAogICAgICJCT1JJTkdTU0xfTk9fU1RBVElDX0lOSVRJQUxJWkVSIiwKLSAgICAiT1BFTlNTTF9TTUFMTF9GT09UUFJJTlQiLAorICAgICJPUEVOU1NMX1NNQUxMIiwKICAgXQorICAjIGNvbmZpZ3MgPSBbCisgICMgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KKyAgIyAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CisgICMgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fc2l6ZV90X3RvX2ludF93YXJuaW5nIiwKKyAgIyBdCisgIGlmIChpc19wb3NpeCkgeworICAgIGNmbGFnc19jID0gWyAiLXN0ZD1jOTkiIF0KKyAgICBkZWZpbmVzICs9IFsgIl9YT1BFTl9TT1VSQ0U9NzAwIiBdCisgIH0KIH0KIAotCiBjb25maWcoIm5vX2FzbV9jb25maWciKSB7CiAgIHZpc2liaWxpdHkgPSBbICI6KiIgXSAgIyBPbmx5IHRhcmdldHMgaW4gdGhpcyBmaWxlIGNhbiBkZXBlbmQgb24gdGhpcy4KICAgZGVmaW5lcyA9IFsgIk9QRU5TU0xfTk9fQVNNIiBdCiB9CiAKK2FsbF9zb3VyY2VzID0gY3J5cHRvX3NvdXJjZXMgKyBzc2xfc291cmNlcwogCi0jIFRoZSBsaXN0IG9mIEJvcmluZ1NTTCBmaWxlcyBpcyBrZXB0IGluIGJvcmluZ3NzbC5neXBpLgotZ3lwaV92YWx1ZXMgPQotICAgIGV4ZWNfc2NyaXB0KCIuLi8uLi90b29scy9neXBpX3RvX2duLnB5IiwKLSAgICAgICAgICAgICAgICBbIHJlYmFzZV9wYXRoKCJib3Jpbmdzc2wuZ3lwaSIpIF0sCi0gICAgICAgICAgICAgICAgInNjb3BlIiwKLSAgICAgICAgICAgICAgICBbICJib3Jpbmdzc2wuZ3lwaSIgXSkKLWJvcmluZ3NzbF9zb3VyY2VzID0KLSAgICBneXBpX3ZhbHVlcy5ib3Jpbmdzc2xfY3J5cHRvX3NvdXJjZXMgKyBneXBpX3ZhbHVlcy5ib3Jpbmdzc2xfc3NsX3NvdXJjZXMKKyMgV2luZG93cycgYXNzZW1ibHkgaXMgYnVpbHQgd2l0aCBZYXNtLiBUaGUgb3RoZXIgcGxhdGZvcm1zIHVzZSB0aGUgcGxhdGZvcm0KKyMgYXNzZW1ibGVyLgoraWYgKGlzX3dpbiAmJiAhaXNfbXNhbikgeworICBpbXBvcnQoIi8vdGhpcmRfcGFydHkveWFzbS95YXNtX2Fzc2VtYmxlLmduaSIpCisgIHlhc21fYXNzZW1ibGUoImJvcmluZ3NzbF9hc20iKSB7CisgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJ4NjQiKSB7CisgICAgICBzb3VyY2VzID0gY3J5cHRvX3NvdXJjZXNfd2luX3g4Nl82NAorICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIpIHsKKyAgICAgIHNvdXJjZXMgPSBjcnlwdG9fc291cmNlc193aW5feDg2CisgICAgfQorICB9Cit9IGVsc2UgeworICAjIFRoaXMgaGFzIG5vIHNvdXJjZXMgb24gc29tZSBwbGF0Zm9ybXMgc28gbXVzdCBiZSBhIHNvdXJjZV9zZXQuCisgIHNvdXJjZV9zZXQoImJvcmluZ3NzbF9hc20iKSB7CisgICAgdmlzaWJpbGl0eSA9IFsgIjoqIiBdICAjIE9ubHkgdGFyZ2V0cyBpbiB0aGlzIGZpbGUgY2FuIGRlcGVuZCBvbiB0aGlzLgogCisgICAgZGVmaW5lcyA9IFtdCisgICAgc291cmNlcyA9IFtdCisgICAgaW5jbHVkZV9kaXJzID0gWyAic3JjL2luY2x1ZGUiIF0KIAotc291cmNlX3NldCgiYm9yaW5nc3NsX2FzbSIpIHsKLSAgdmlzaWJpbGl0eSA9IFsgIjoqIiBdICAjIE9ubHkgdGFyZ2V0cyBpbiB0aGlzIGZpbGUgY2FuIGRlcGVuZCBvbiB0aGlzLgotICBzb3VyY2VzID0gW10KLSAgI2FzbWZsYWdzID0gW10KLSAgaW5jbHVkZV9kaXJzID0gWwotICAgICJzcmMvaW5jbHVkZSIsCi0gICAgIyBUaGlzIGlzIGZvciBhcm1fYXJjaC5oLCB3aGljaCBpcyBuZWVkZWQgYnkgc29tZSBhc20gZmlsZXMuIFNpbmNlIHRoZQotICAgICMgYXNtIGZpbGVzIGFyZSBnZW5lcmF0ZWQgYW5kIGtlcHQgaW4gYSBkaWZmZXJlbnQgZGlyZWN0b3J5LCB0aGV5Ci0gICAgIyBjYW5ub3QgdXNlIHJlbGF0aXZlIHBhdGhzIHRvIGZpbmQgdGhpcyBmaWxlLgotICAgICJzcmMvY3J5cHRvIiwKLSAgXQorICAgIGlmICgoY3VycmVudF9jcHUgPT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0IikgJiYgaXNfY2xhbmcpIHsKKyAgICAgIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtIikgeworICAgICAgICAjIFRPRE8oaGFucykgRW5hYmxlIGludGVncmF0ZWQtYXMgKGNyYnVnLmNvbS8xMjQ2MTApLgorICAgICAgICBhc21mbGFncyArPSBbICItZm5vLWludGVncmF0ZWQtYXMiIF0KKyAgICAgIH0KKyAgICAgIGlmIChpc19hbmRyb2lkKSB7CisgICAgICAgIHJlYmFzZWRfYW5kcm9pZF90b29sY2hhaW5fcm9vdCA9CisgICAgICAgICAgICByZWJhc2VfcGF0aChhbmRyb2lkX3Rvb2xjaGFpbl9yb290LCByb290X2J1aWxkX2RpcikKIAotICBpZiAoY3VycmVudF9jcHUgPT0gIng2NCIpIHsKLSAgICBpZiAoaXNfaW9zKSB7Ci0gICAgICBkZWZpbmVzICs9IFsgIk9QRU5TU0xfTk9fQVNNIiBdCi0gICAgfSBlbHNlIGlmIChpc19tYWMpIHsKLSAgICAgIHNvdXJjZXMgKz0gZ3lwaV92YWx1ZXMuYm9yaW5nc3NsX21hY194ODZfNjRfc291cmNlcwotICAgIH0gZWxzZSBpZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgc291cmNlcyArPSBneXBpX3ZhbHVlcy5ib3Jpbmdzc2xfbGludXhfeDg2XzY0X3NvdXJjZXMKKyAgICAgICAgIyBFbHNlIC91c3IvYmluL2FzIGdldHMgcGlja2VkIHVwLgorICAgICAgICBhc21mbGFncyArPSBbICItQiR7cmViYXNlZF9hbmRyb2lkX3Rvb2xjaGFpbl9yb290fS9iaW4iIF0KKyAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXNfbXNhbikgeworICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQorICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gIng2NCIpIHsKKyAgICAgIGlmIChpc19tYWMpIHsKKyAgICAgICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19tYWNfeDg2XzY0CisgICAgICB9IGVsc2UgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKKyAgICAgICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF94ODZfNjQKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJ4ODYiKSB7CisgICAgICBpZiAoaXNfbWFjKSB7CisgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbWFjX3g4NgorICAgICAgfSBlbHNlIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7CisgICAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhfeDg2CisgICAgICB9IGVsc2UgeworICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAgICB9CisgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtIiAmJiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkpIHsKKyAgICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhfYXJtCisgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiICYmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSkgeworICAgICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9hYXJjaDY0CisKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IFJlbW92ZSBleHBsaWNpdCBhcmNoIGZsYWcgb25jZSBodHRwczovL2NyYnVnLmNvbS81NzY4NTgKKyAgICAgICMgaXMgZml4ZWQuCisgICAgICBhc21mbGFncyArPSBbICItbWFyY2g9YXJtdjgtYStjcnlwdG8iIF0KICAgICB9IGVsc2UgewogICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQogICAgIH0KLSAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAieDg2IikgewotICAgIGlmIChpc19pb3MpIHsKLSAgICAgIGRlZmluZXMgKz0gWyAiT1BFTlNTTF9OT19BU00iIF0KLSAgICB9IGVsc2UgaWYgKGlzX21hYykgewotICAgICAgc291cmNlcyArPSBneXBpX3ZhbHVlcy5ib3Jpbmdzc2xfbWFjX3g4Nl9zb3VyY2VzCi0gICAgfSBlbHNlIGlmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSB7Ci0gICAgICBzb3VyY2VzICs9IGd5cGlfdmFsdWVzLmJvcmluZ3NzbF9saW51eF94ODZfc291cmNlcwotICAgIH0gZWxzZSB7Ci0gICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCi0gICAgfQotICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm0iICYmIChpc19saW51eCB8fCBpc19hbmRyb2lkKSkgewotICAgIHNvdXJjZXMgKz0gZ3lwaV92YWx1ZXMuYm9yaW5nc3NsX2xpbnV4X2FybV9zb3VyY2VzCi0gIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IiAmJiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkpIHsKLSAgICBzb3VyY2VzICs9IGd5cGlfdmFsdWVzLmJvcmluZ3NzbF9saW51eF9hYXJjaDY0X3NvdXJjZXMKLSAgfSBlbHNlIHsKLSAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCiAgIH0KIH0KIAotCiBjb21wb25lbnQoImJvcmluZ3NzbCIpIHsKLSAgc291cmNlcyA9IGJvcmluZ3NzbF9zb3VyY2VzCisgIHNvdXJjZXMgPSBhbGxfc291cmNlcwogICBkZXBzID0gWwogICAgICI6Ym9yaW5nc3NsX2FzbSIsCiAgIF0KKwogICBwdWJsaWNfY29uZmlncyA9IFsgIjpleHRlcm5hbF9jb25maWciIF0KICAgY29uZmlncyArPSBbICI6aW50ZXJuYWxfY29uZmlnIiBdCisKICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCiAgIGNvbmZpZ3MgKz0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fY2hyb21pdW1fY29kZSIgXQogfQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2JvcmluZ3NzbC5neXBpIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2JvcmluZ3NzbC5neXBpCmluZGV4IGZiOGU2NDMuLjJjN2U3YzcgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ib3Jpbmdzc2wuZ3lwaQorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsLmd5cGkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoYykgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTcsMzQgKzcsMzQgQEAKIHsKICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAnYm9yaW5nc3NsX3NzbF9zb3VyY2VzJzogWworICAgICAgJ3NyYy9zc2wvY3VzdG9tX2V4dGVuc2lvbnMuYycsCiAgICAgICAnc3JjL3NzbC9kMV9ib3RoLmMnLAotICAgICAgJ3NyYy9zc2wvZDFfY2xudC5jJywKICAgICAgICdzcmMvc3NsL2QxX2xpYi5jJywKLSAgICAgICdzcmMvc3NsL2QxX21ldGguYycsCiAgICAgICAnc3JjL3NzbC9kMV9wa3QuYycsCiAgICAgICAnc3JjL3NzbC9kMV9zcnRwLmMnLAotICAgICAgJ3NyYy9zc2wvZDFfc3J2ci5jJywKLSAgICAgICdzcmMvc3NsL3BxdWV1ZS9wcXVldWUuYycsCisgICAgICAnc3JjL3NzbC9kdGxzX21ldGhvZC5jJywKKyAgICAgICdzcmMvc3NsL2R0bHNfcmVjb3JkLmMnLAorICAgICAgJ3NyYy9zc2wvaGFuZHNoYWtlX2NsaWVudC5jJywKKyAgICAgICdzcmMvc3NsL2hhbmRzaGFrZV9zZXJ2ZXIuYycsCiAgICAgICAnc3JjL3NzbC9zM19ib3RoLmMnLAotICAgICAgJ3NyYy9zc2wvczNfY2xudC5jJywKICAgICAgICdzcmMvc3NsL3MzX2VuYy5jJywKICAgICAgICdzcmMvc3NsL3MzX2xpYi5jJywKLSAgICAgICdzcmMvc3NsL3MzX21ldGguYycsCiAgICAgICAnc3JjL3NzbC9zM19wa3QuYycsCi0gICAgICAnc3JjL3NzbC9zM19zcnZyLmMnLAogICAgICAgJ3NyYy9zc2wvc3NsX2FlYWRfY3R4LmMnLAotICAgICAgJ3NyYy9zc2wvc3NsX2FsZ3MuYycsCiAgICAgICAnc3JjL3NzbC9zc2xfYXNuMS5jJywKKyAgICAgICdzcmMvc3NsL3NzbF9idWZmZXIuYycsCiAgICAgICAnc3JjL3NzbC9zc2xfY2VydC5jJywKICAgICAgICdzcmMvc3NsL3NzbF9jaXBoZXIuYycsCisgICAgICAnc3JjL3NzbC9zc2xfZWNkaC5jJywKKyAgICAgICdzcmMvc3NsL3NzbF9maWxlLmMnLAogICAgICAgJ3NyYy9zc2wvc3NsX2xpYi5jJywKICAgICAgICdzcmMvc3NsL3NzbF9yc2EuYycsCi0gICAgICAnc3JjL3NzbC9zc2xfc2Vzcy5jJywKKyAgICAgICdzcmMvc3NsL3NzbF9zZXNzaW9uLmMnLAogICAgICAgJ3NyYy9zc2wvc3NsX3N0YXQuYycsCi0gICAgICAnc3JjL3NzbC9zc2xfdHh0LmMnLAogICAgICAgJ3NyYy9zc2wvdDFfZW5jLmMnLAogICAgICAgJ3NyYy9zc2wvdDFfbGliLmMnLAotICAgICAgJ3NyYy9zc2wvdDFfcmVuZWcuYycsCisgICAgICAnc3JjL3NzbC90bHNfbWV0aG9kLmMnLAorICAgICAgJ3NyYy9zc2wvdGxzX3JlY29yZC5jJywKICAgICBdLAogICAgICdib3Jpbmdzc2xfY3J5cHRvX3NvdXJjZXMnOiBbCiAgICAgICAnZXJyX2RhdGEuYycsCkBAIC02MSwxOCArNjEsMTQgQEAKICAgICAgICdzcmMvY3J5cHRvL2FzbjEvYXNuMV9saWIuYycsCiAgICAgICAnc3JjL2NyeXB0by9hc24xL2FzbjFfcGFyLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS9hc25fcGFjay5jJywKLSAgICAgICdzcmMvY3J5cHRvL2FzbjEvYmlvX2FzbjEuYycsCi0gICAgICAnc3JjL2NyeXB0by9hc24xL2Jpb19uZGVmLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS9mX2VudW0uYycsCiAgICAgICAnc3JjL2NyeXB0by9hc24xL2ZfaW50LmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS9mX3N0cmluZy5jJywKICAgICAgICdzcmMvY3J5cHRvL2FzbjEvdF9iaXRzdC5jJywKLSAgICAgICdzcmMvY3J5cHRvL2FzbjEvdF9wa2V5LmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS90YXNuX2RlYy5jJywKICAgICAgICdzcmMvY3J5cHRvL2FzbjEvdGFzbl9lbmMuYycsCiAgICAgICAnc3JjL2NyeXB0by9hc24xL3Rhc25fZnJlLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS90YXNuX25ldy5jJywKLSAgICAgICdzcmMvY3J5cHRvL2FzbjEvdGFzbl9wcm4uYycsCiAgICAgICAnc3JjL2NyeXB0by9hc24xL3Rhc25fdHlwLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYXNuMS90YXNuX3V0bC5jJywKICAgICAgICdzcmMvY3J5cHRvL2FzbjEveF9iaWdudW0uYycsCkBAIC05Miw2ICs4OCw3IEBACiAgICAgICAnc3JjL2NyeXB0by9ibi9hZGQuYycsCiAgICAgICAnc3JjL2NyeXB0by9ibi9hc20veDg2XzY0LWdjYy5jJywKICAgICAgICdzcmMvY3J5cHRvL2JuL2JuLmMnLAorICAgICAgJ3NyYy9jcnlwdG8vYm4vYm5fYXNuMS5jJywKICAgICAgICdzcmMvY3J5cHRvL2JuL2NtcC5jJywKICAgICAgICdzcmMvY3J5cHRvL2JuL2NvbnZlcnQuYycsCiAgICAgICAnc3JjL2NyeXB0by9ibi9jdHguYycsCkBAIC0xMDgsMTEgKzEwNSwxMSBAQAogICAgICAgJ3NyYy9jcnlwdG8vYm4vc2hpZnQuYycsCiAgICAgICAnc3JjL2NyeXB0by9ibi9zcXJ0LmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYnVmL2J1Zi5jJywKKyAgICAgICdzcmMvY3J5cHRvL2J5dGVzdHJpbmcvYXNuMV9jb21wYXQuYycsCiAgICAgICAnc3JjL2NyeXB0by9ieXRlc3RyaW5nL2Jlci5jJywKICAgICAgICdzcmMvY3J5cHRvL2J5dGVzdHJpbmcvY2JiLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vYnl0ZXN0cmluZy9jYnMuYycsCi0gICAgICAnc3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhX2dlbmVyaWMuYycsCi0gICAgICAnc3JjL2NyeXB0by9jaGFjaGEvY2hhY2hhX3ZlYy5jJywKKyAgICAgICdzcmMvY3J5cHRvL2NoYWNoYS9jaGFjaGEuYycsCiAgICAgICAnc3JjL2NyeXB0by9jaXBoZXIvYWVhZC5jJywKICAgICAgICdzcmMvY3J5cHRvL2NpcGhlci9jaXBoZXIuYycsCiAgICAgICAnc3JjL2NyeXB0by9jaXBoZXIvZGVyaXZlX2tleS5jJywKQEAgLTEyNywyOCArMTI0LDMxIEBACiAgICAgICAnc3JjL2NyeXB0by9jaXBoZXIvdGxzX2NiYy5jJywKICAgICAgICdzcmMvY3J5cHRvL2NtYWMvY21hYy5jJywKICAgICAgICdzcmMvY3J5cHRvL2NvbmYvY29uZi5jJywKKyAgICAgICdzcmMvY3J5cHRvL2NwdS1hYXJjaDY0LWxpbnV4LmMnLAorICAgICAgJ3NyYy9jcnlwdG8vY3B1LWFybS1saW51eC5jJywKICAgICAgICdzcmMvY3J5cHRvL2NwdS1hcm0uYycsCiAgICAgICAnc3JjL2NyeXB0by9jcHUtaW50ZWwuYycsCiAgICAgICAnc3JjL2NyeXB0by9jcnlwdG8uYycsCisgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L2N1cnZlMjU1MTkuYycsCisgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3NwYWtlMjU1MTkuYycsCisgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3gyNTUxOS14ODZfNjQuYycsCiAgICAgICAnc3JjL2NyeXB0by9kZXMvZGVzLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZGgvY2hlY2suYycsCiAgICAgICAnc3JjL2NyeXB0by9kaC9kaC5jJywKICAgICAgICdzcmMvY3J5cHRvL2RoL2RoX2FzbjEuYycsCi0gICAgICAnc3JjL2NyeXB0by9kaC9kaF9pbXBsLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZGgvcGFyYW1zLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZGlnZXN0L2RpZ2VzdC5jJywKICAgICAgICdzcmMvY3J5cHRvL2RpZ2VzdC9kaWdlc3RzLmMnLAotICAgICAgJ3NyYy9jcnlwdG8vZGlyZWN0b3J5X3Bvc2l4LmMnLAotICAgICAgJ3NyYy9jcnlwdG8vZGlyZWN0b3J5X3dpbi5jJywKICAgICAgICdzcmMvY3J5cHRvL2RzYS9kc2EuYycsCiAgICAgICAnc3JjL2NyeXB0by9kc2EvZHNhX2FzbjEuYycsCi0gICAgICAnc3JjL2NyeXB0by9kc2EvZHNhX2ltcGwuYycsCiAgICAgICAnc3JjL2NyeXB0by9lYy9lYy5jJywKICAgICAgICdzcmMvY3J5cHRvL2VjL2VjX2FzbjEuYycsCiAgICAgICAnc3JjL2NyeXB0by9lYy9lY19rZXkuYycsCiAgICAgICAnc3JjL2NyeXB0by9lYy9lY19tb250Z29tZXJ5LmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZWMvb2N0LmMnLAorICAgICAgJ3NyYy9jcnlwdG8vZWMvcDIyNC02NC5jJywKICAgICAgICdzcmMvY3J5cHRvL2VjL3AyNTYtNjQuYycsCisgICAgICAnc3JjL2NyeXB0by9lYy9wMjU2LXg4Nl82NC5jJywKICAgICAgICdzcmMvY3J5cHRvL2VjL3NpbXBsZS5jJywKICAgICAgICdzcmMvY3J5cHRvL2VjL3V0aWwtNjQuYycsCiAgICAgICAnc3JjL2NyeXB0by9lYy93bmFmLmMnLApAQCAtMTU3LDEwICsxNTcsOSBAQAogICAgICAgJ3NyYy9jcnlwdG8vZWNkc2EvZWNkc2FfYXNuMS5jJywKICAgICAgICdzcmMvY3J5cHRvL2VuZ2luZS9lbmdpbmUuYycsCiAgICAgICAnc3JjL2NyeXB0by9lcnIvZXJyLmMnLAotICAgICAgJ3NyYy9jcnlwdG8vZXZwL2FsZ29yaXRobS5jJywKLSAgICAgICdzcmMvY3J5cHRvL2V2cC9hc24xLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZXZwL2RpZ2VzdHNpZ24uYycsCiAgICAgICAnc3JjL2NyeXB0by9ldnAvZXZwLmMnLAorICAgICAgJ3NyYy9jcnlwdG8vZXZwL2V2cF9hc24xLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZXZwL2V2cF9jdHguYycsCiAgICAgICAnc3JjL2NyeXB0by9ldnAvcF9kc2FfYXNuMS5jJywKICAgICAgICdzcmMvY3J5cHRvL2V2cC9wX2VjLmMnLApAQCAtMTY4LDYgKzE2Nyw3IEBACiAgICAgICAnc3JjL2NyeXB0by9ldnAvcF9yc2EuYycsCiAgICAgICAnc3JjL2NyeXB0by9ldnAvcF9yc2FfYXNuMS5jJywKICAgICAgICdzcmMvY3J5cHRvL2V2cC9wYmtkZi5jJywKKyAgICAgICdzcmMvY3J5cHRvL2V2cC9wcmludC5jJywKICAgICAgICdzcmMvY3J5cHRvL2V2cC9zaWduLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vZXhfZGF0YS5jJywKICAgICAgICdzcmMvY3J5cHRvL2hrZGYvaGtkZi5jJywKQEAgLTE4MSw2ICsxODEsMTIgQEAKICAgICAgICdzcmMvY3J5cHRvL21vZGVzL2N0ci5jJywKICAgICAgICdzcmMvY3J5cHRvL21vZGVzL2djbS5jJywKICAgICAgICdzcmMvY3J5cHRvL21vZGVzL29mYi5jJywKKyAgICAgICdzcmMvY3J5cHRvL25ld2hvcGUvZXJyb3JfY29ycmVjdGlvbi5jJywKKyAgICAgICdzcmMvY3J5cHRvL25ld2hvcGUvbmV3aG9wZS5jJywKKyAgICAgICdzcmMvY3J5cHRvL25ld2hvcGUvbnR0LmMnLAorICAgICAgJ3NyYy9jcnlwdG8vbmV3aG9wZS9wb2x5LmMnLAorICAgICAgJ3NyYy9jcnlwdG8vbmV3aG9wZS9wcmVjb21wLmMnLAorICAgICAgJ3NyYy9jcnlwdG8vbmV3aG9wZS9yZWR1Y2UuYycsCiAgICAgICAnc3JjL2NyeXB0by9vYmovb2JqLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vb2JqL29ial94cmVmLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vcGVtL3BlbV9hbGwuYycsCkBAIC0xOTgsNyArMjA0LDcgQEAKICAgICAgICdzcmMvY3J5cHRvL3BvbHkxMzA1L3BvbHkxMzA1LmMnLAogICAgICAgJ3NyYy9jcnlwdG8vcG9seTEzMDUvcG9seTEzMDVfYXJtLmMnLAogICAgICAgJ3NyYy9jcnlwdG8vcG9seTEzMDUvcG9seTEzMDVfdmVjLmMnLAotICAgICAgJ3NyYy9jcnlwdG8vcmFuZC9od3JhbmQuYycsCisgICAgICAnc3JjL2NyeXB0by9yYW5kL2RldGVybWluaXN0aWMuYycsCiAgICAgICAnc3JjL2NyeXB0by9yYW5kL3JhbmQuYycsCiAgICAgICAnc3JjL2NyeXB0by9yYW5kL3VyYW5kb20uYycsCiAgICAgICAnc3JjL2NyeXB0by9yYW5kL3dpbmRvd3MuYycsCkBAIC0yMjMsMTEgKzIyOSwxMyBAQAogICAgICAgJ3NyYy9jcnlwdG8veDUwOS9hX3NpZ24uYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L2Ffc3RyZXguYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L2FfdmVyaWZ5LmMnLAorICAgICAgJ3NyYy9jcnlwdG8veDUwOS9hbGdvcml0aG0uYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L2FzbjFfZ2VuLmMnLAogICAgICAgJ3NyYy9jcnlwdG8veDUwOS9ieV9kaXIuYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L2J5X2ZpbGUuYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L2kyZF9wci5jJywKICAgICAgICdzcmMvY3J5cHRvL3g1MDkvcGtjczcuYycsCisgICAgICAnc3JjL2NyeXB0by94NTA5L3JzYV9wc3MuYycsCiAgICAgICAnc3JjL2NyeXB0by94NTA5L3RfY3JsLmMnLAogICAgICAgJ3NyYy9jcnlwdG8veDUwOS90X3JlcS5jJywKICAgICAgICdzcmMvY3J5cHRvL3g1MDkvdF94NTA5LmMnLApAQCAtMzAzLDYgKzMxMSw4IEBACiAgICAgXSwKICAgICAnYm9yaW5nc3NsX2xpbnV4X2FhcmNoNjRfc291cmNlcyc6IFsKICAgICAgICdsaW51eC1hYXJjaDY0L2NyeXB0by9hZXMvYWVzdjgtYXJteDY0LlMnLAorICAgICAgJ2xpbnV4LWFhcmNoNjQvY3J5cHRvL2JuL2FybXY4LW1vbnQuUycsCisgICAgICAnbGludXgtYWFyY2g2NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12OC5TJywKICAgICAgICdsaW51eC1hYXJjaDY0L2NyeXB0by9tb2Rlcy9naGFzaHY4LWFybXg2NC5TJywKICAgICAgICdsaW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhMS1hcm12OC5TJywKICAgICAgICdsaW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhMjU2LWFybXY4LlMnLApAQCAtMzEzLDEzICszMjMsMTMgQEAKICAgICAgICdsaW51eC1hcm0vY3J5cHRvL2Flcy9hZXN2OC1hcm14MzIuUycsCiAgICAgICAnbGludXgtYXJtL2NyeXB0by9hZXMvYnNhZXMtYXJtdjcuUycsCiAgICAgICAnbGludXgtYXJtL2NyeXB0by9ibi9hcm12NC1tb250LlMnLAorICAgICAgJ2xpbnV4LWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TJywKICAgICAgICdsaW51eC1hcm0vY3J5cHRvL21vZGVzL2doYXNoLWFybXY0LlMnLAogICAgICAgJ2xpbnV4LWFybS9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14MzIuUycsCiAgICAgICAnbGludXgtYXJtL2NyeXB0by9zaGEvc2hhMS1hcm12NC1sYXJnZS5TJywKICAgICAgICdsaW51eC1hcm0vY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjQuUycsCiAgICAgICAnbGludXgtYXJtL2NyeXB0by9zaGEvc2hhNTEyLWFybXY0LlMnLAotICAgICAgJ3NyYy9jcnlwdG8vY2hhY2hhL2NoYWNoYV92ZWNfYXJtLlMnLAotICAgICAgJ3NyYy9jcnlwdG8vY3B1LWFybS1hc20uUycsCisgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L2FzbS94MjU1MTktYXNtLWFybS5TJywKICAgICAgICdzcmMvY3J5cHRvL3BvbHkxMzA1L3BvbHkxMzA1X2FybV9hc20uUycsCiAgICAgXSwKICAgICAnYm9yaW5nc3NsX2xpbnV4X3g4Nl9zb3VyY2VzJzogWwpAQCAtMzI5LDcgKzMzOSw3IEBACiAgICAgICAnbGludXgteDg2L2NyeXB0by9ibi9ibi01ODYuUycsCiAgICAgICAnbGludXgteDg2L2NyeXB0by9ibi9jby01ODYuUycsCiAgICAgICAnbGludXgteDg2L2NyeXB0by9ibi94ODYtbW9udC5TJywKLSAgICAgICdsaW51eC14ODYvY3J5cHRvL2NwdS14ODYtYXNtLlMnLAorICAgICAgJ2xpbnV4LXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUycsCiAgICAgICAnbGludXgteDg2L2NyeXB0by9tZDUvbWQ1LTU4Ni5TJywKICAgICAgICdsaW51eC14ODYvY3J5cHRvL21vZGVzL2doYXNoLXg4Ni5TJywKICAgICAgICdsaW51eC14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMnLApAQCAtMzQ2LDE2ICszNTYsMTcgQEAKICAgICAgICdsaW51eC14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMnLAogICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuUycsCiAgICAgICAnbGludXgteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUycsCi0gICAgICAnbGludXgteDg2XzY0L2NyeXB0by9jcHUteDg2XzY0LWFzbS5TJywKKyAgICAgICdsaW51eC14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LlMnLAorICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMnLAogICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUycsCiAgICAgICAnbGludXgteDg2XzY0L2NyeXB0by9tb2Rlcy9hZXNuaS1nY20teDg2XzY0LlMnLAogICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LlMnLAogICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vcmFuZC9yZHJhbmQteDg2XzY0LlMnLAotICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vcmM0L3JjNC1tZDUteDg2XzY0LlMnLAogICAgICAgJ2xpbnV4LXg4Nl82NC9jcnlwdG8vcmM0L3JjNC14ODZfNjQuUycsCiAgICAgICAnbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUycsCiAgICAgICAnbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TJywKICAgICAgICdsaW51eC14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMnLAorICAgICAgJ3NyYy9jcnlwdG8vY3VydmUyNTUxOS9hc20veDI1NTE5LWFzbS14ODZfNjQuUycsCiAgICAgXSwKICAgICAnYm9yaW5nc3NsX21hY194ODZfc291cmNlcyc6IFsKICAgICAgICdtYWMteDg2L2NyeXB0by9hZXMvYWVzLTU4Ni5TJywKQEAgLTM2NCw3ICszNzUsNyBAQAogICAgICAgJ21hYy14ODYvY3J5cHRvL2JuL2JuLTU4Ni5TJywKICAgICAgICdtYWMteDg2L2NyeXB0by9ibi9jby01ODYuUycsCiAgICAgICAnbWFjLXg4Ni9jcnlwdG8vYm4veDg2LW1vbnQuUycsCi0gICAgICAnbWFjLXg4Ni9jcnlwdG8vY3B1LXg4Ni1hc20uUycsCisgICAgICAnbWFjLXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUycsCiAgICAgICAnbWFjLXg4Ni9jcnlwdG8vbWQ1L21kNS01ODYuUycsCiAgICAgICAnbWFjLXg4Ni9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2LlMnLAogICAgICAgJ21hYy14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMnLApAQCAtMzgxLDE2ICszOTIsMTcgQEAKICAgICAgICdtYWMteDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5TJywKICAgICAgICdtYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TJywKICAgICAgICdtYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUycsCi0gICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vY3B1LXg4Nl82NC1hc20uUycsCisgICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUycsCisgICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMnLAogICAgICAgJ21hYy14ODZfNjQvY3J5cHRvL21kNS9tZDUteDg2XzY0LlMnLAogICAgICAgJ21hYy14ODZfNjQvY3J5cHRvL21vZGVzL2Flc25pLWdjbS14ODZfNjQuUycsCiAgICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LlMnLAogICAgICAgJ21hYy14ODZfNjQvY3J5cHRvL3JhbmQvcmRyYW5kLXg4Nl82NC5TJywKLSAgICAgICdtYWMteDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuUycsCiAgICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vcmM0L3JjNC14ODZfNjQuUycsCiAgICAgICAnbWFjLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LlMnLAogICAgICAgJ21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGEyNTYteDg2XzY0LlMnLAogICAgICAgJ21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMnLAorICAgICAgJ3NyYy9jcnlwdG8vY3VydmUyNTUxOS9hc20veDI1NTE5LWFzbS14ODZfNjQuUycsCiAgICAgXSwKICAgICAnYm9yaW5nc3NsX3dpbl94ODZfc291cmNlcyc6IFsKICAgICAgICd3aW4teDg2L2NyeXB0by9hZXMvYWVzLTU4Ni5hc20nLApAQCAtMzk5LDcgKzQxMSw3IEBACiAgICAgICAnd2luLXg4Ni9jcnlwdG8vYm4vYm4tNTg2LmFzbScsCiAgICAgICAnd2luLXg4Ni9jcnlwdG8vYm4vY28tNTg2LmFzbScsCiAgICAgICAnd2luLXg4Ni9jcnlwdG8vYm4veDg2LW1vbnQuYXNtJywKLSAgICAgICd3aW4teDg2L2NyeXB0by9jcHUteDg2LWFzbS5hc20nLAorICAgICAgJ3dpbi14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LmFzbScsCiAgICAgICAnd2luLXg4Ni9jcnlwdG8vbWQ1L21kNS01ODYuYXNtJywKICAgICAgICd3aW4teDg2L2NyeXB0by9tb2Rlcy9naGFzaC14ODYuYXNtJywKICAgICAgICd3aW4teDg2L2NyeXB0by9yYzQvcmM0LTU4Ni5hc20nLApAQCAtNDE2LDEyICs0MjgsMTIgQEAKICAgICAgICd3aW4teDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5hc20nLAogICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250LmFzbScsCiAgICAgICAnd2luLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQ1LmFzbScsCi0gICAgICAnd2luLXg4Nl82NC9jcnlwdG8vY3B1LXg4Nl82NC1hc20uYXNtJywKKyAgICAgICd3aW4teDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5hc20nLAorICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL2VjL3AyNTYteDg2XzY0LWFzbS5hc20nLAogICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL21kNS9tZDUteDg2XzY0LmFzbScsCiAgICAgICAnd2luLXg4Nl82NC9jcnlwdG8vbW9kZXMvYWVzbmktZ2NtLXg4Nl82NC5hc20nLAogICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5hc20nLAogICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL3JhbmQvcmRyYW5kLXg4Nl82NC5hc20nLAotICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL3JjNC9yYzQtbWQ1LXg4Nl82NC5hc20nLAogICAgICAgJ3dpbi14ODZfNjQvY3J5cHRvL3JjNC9yYzQteDg2XzY0LmFzbScsCiAgICAgICAnd2luLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LmFzbScsCiAgICAgICAnd2luLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTI1Ni14ODZfNjQuYXNtJywKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ib3Jpbmdzc2xfY29uZmlndXJhdGlvbnMuZ3lwaSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ib3Jpbmdzc2xfY29uZmlndXJhdGlvbnMuZ3lwaQppbmRleCBiOTYzNTA1Li4zMTYyZDc5IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsX2NvbmZpZ3VyYXRpb25zLmd5cGkKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2JvcmluZ3NzbF9jb25maWd1cmF0aW9ucy5neXBpCkBAIC00LDI5ICs0LDIwIEBACiAKICMgVGhpcyBmaWxlIGlzIGluY2x1ZGVkIHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbnMgdG8gYnVpbGQgdGhpcmQtcGFydHkKICMgY29kZSBmcm9tIEJvcmluZ1NTTC4KLSMgVGhpcyBjb2RlIGlzIEMgY29kZSwgbm90IEMrKywgYW5kIGlzIG5vdCB3YXJuaW5nLWZyZWUsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlCi0jIEMrKy1zcGVjaWZpYyBmbGFncywgYW5kIGFkZCBmbGFncyB0byBzdXByZXNzIHRoZSB3YXJuaW5ncyBpbiB0aGUgY29kZS4KIHsKLSAgJ3ZhcmlhYmxlcyc6IHsKLSAgICAjIFVzZWQgYnkgdGhpcmRfcGFydHkvbnNzLCB3aGljaCBpcyBmcm9tIENocm9taXVtLgotICAgICMgSW5jbHVkZSB0aGUgYnVpbHQtaW4gc2V0IG9mIHJvb3QgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMuCi0gICAgJ2V4Y2x1ZGVfbnNzX3Jvb3RfY2VydHMnOiAwLAotICAgICdvc19wb3NpeCUnOiAxLAotICAgICdvc19ic2QlJzogMCwKLSAgICAnY2hyb21lb3MlJzogMCwKLSAgICAnY2xhbmclJzogMCwKLSAgfSwKICAgJ3RhcmdldF9kZWZhdWx0cyc6IHsKLSAgICAnY2ZsYWdzJzogWwotICAgICAgJy13JywKLSAgICAgICctVUhBVkVfQ1ZBUl9CVUlMVF9PTl9TRU0nLAorICAgICdjb25kaXRpb25zJzogWworICAgICAgWydPUyA9PSAibGludXgiIG9yIE9TID09ICJhbmRyb2lkIicsIHsKKyAgICAgICAgJ2NmbGFnc19jJzogWworICAgICAgICAgICctc3RkPWM5OScsCisgICAgICAgIF0sCisgICAgICAgICdkZWZpbmVzJzogWworICAgICAgICAgICdfWE9QRU5fU09VUkNFPTcwMCcsCisgICAgICAgIF0sCisgICAgICB9XSwKICAgICBdLAogICAgICMgUmVtb3ZlcyB0aGVzZSBmbGFncyBmcm9tIHRoZSBsaXN0IGNmbGFncy4KICAgICAnY2ZsYWdzISc6IFsKLSAgICAgICMgTlNTIGNvZGUgZnJvbSB1cHN0cmVhbSBtb3ppbGxhIGJ1aWxkcyB3aXRoIHdhcm5pbmdzLAotICAgICAgIyBzbyB3ZSBtdXN0IGFsbG93IHdhcm5pbmdzIHdpdGhvdXQgZmFpbGluZy4KLSAgICAgICctV2Vycm9yJywKLSAgICAgICctV2FsbCcsCiAgICAgICAnLWFuc2knLAogICAgICAgIyBOb3Qgc3VwcG9ydGVkIGZvciBDLCBvbmx5IGZvciBDKysuCiAgICAgICAnLVdub24tdmlydHVhbC1kdG9yJywKQEAgLTM1LDkzICsyNiw1IEBACiAgICAgICAnLWZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuJywKICAgICAgICctV292ZXJsb2FkZWQtdmlydHVhbCcsCiAgICAgXSwKLSAgICAnY29uZmlndXJhdGlvbnMnOiB7Ci0gICAgICAnRGFydF9CYXNlJzogewotICAgICAgICAneGNvZGVfc2V0dGluZ3MnOiB7Ci0gICAgICAgICAgJ1dBUk5JTkdfQ0ZMQUdTJzogWwotICAgICAgICAgICAgJy13JywKLSAgICAgICAgICBdLAotICAgICAgICAgICdXQVJOSU5HX0NGTEFHUyEnOiBbCi0gICAgICAgICAgICAnLVdhbGwnLAotICAgICAgICAgICAgJy1XZXh0cmEnLAotICAgICAgICAgIF0sCi0gICAgICAgIH0sCi0gICAgICB9LAotICAgICAgIyBEYXJ0X01hY29zX0RlYnVnIGFuZCBEYXJ0X01hY29zX1JlbGVhc2UgYXJlIG1lcmdlZCBhZnRlcgotICAgICAgIyBEYXJ0X01hY29zX0Jhc2UsIHNvIHdlIGNhbiBvdmVycmlkZSB0aGUgJ2Fuc2knIGFuZCAnLVdlcnJvcicgZmxhZ3Mgc2V0Ci0gICAgICAjIGF0IHRoZSBnbG9iYWwgbGV2ZWwgaW4gdG9vbHMvZ3lwL2NvbmZpZ3VyYXRpb25zX3hjb2RlLmd5cGkuCi0gICAgICAnRGFydF9NYWNvc19EZWJ1Zyc6IHsKLSAgICAgICAgJ2Fic3RyYWN0JzogMSwKLSAgICAgICAgJ3hjb2RlX3NldHRpbmdzJzogewotICAgICAgICAgICMgUmVtb3ZlICdhbnNpJyBzZXR0aW5nLgotICAgICAgICAgICdHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCc6ICdjOTknLAotICAgICAgICAgICdHQ0NfVFJFQVRfV0FSTklOR1NfQVNfRVJST1JTJzogJ05PJywgIyAtV2Vycm9yIG9mZgotICAgICAgICB9LAotICAgICAgfSwKLSAgICAgICdEYXJ0X01hY29zX1JlbGVhc2UnOiB7Ci0gICAgICAgICdhYnN0cmFjdCc6IDEsCi0gICAgICAgICd4Y29kZV9zZXR0aW5ncyc6IHsKLSAgICAgICAgICAjIFJlbW92ZSAnYW5zaScgc2V0dGluZy4KLSAgICAgICAgICAnR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQnOiAnYzk5JywKLSAgICAgICAgICAnR0NDX1RSRUFUX1dBUk5JTkdTX0FTX0VSUk9SUyc6ICdOTycsICMgLVdlcnJvciBvZmYKLSAgICAgICAgfSwKLSAgICAgIH0sCi0gICAgICAjIERpc2FibGUgaGFuZC1jb2RlZCBhc3NlbWJseSByb3V0aW5lcyBvbiBBUk12NiBhbmQgQVJNdjVURS4KLSAgICAgICdEYXJ0X2FybXY2X0Jhc2UnOiB7Ci0gICAgICAgICdhYnN0cmFjdCc6IDEsCi0gICAgICAgICdkZWZpbmVzJzogWwotICAgICAgICAgICdPUEVOU1NMX05PX0FTTScsCi0gICAgICAgIF0sCi0gICAgICB9LAotICAgICAgJ0RhcnRfYXJtdjV0ZV9CYXNlJzogewotICAgICAgICAnYWJzdHJhY3QnOiAxLAotICAgICAgICAnZGVmaW5lcyc6IFsKLSAgICAgICAgICAnT1BFTlNTTF9OT19BU00nLAotICAgICAgICBdLAotICAgICAgfSwKLSAgICAgICMgVE9ETygyNDMyMSk6IEFsc28gZGlzYWJsZSB0ZW1wb3JhcmlseSBvbiBhcm02NC4gUmVlbmFibGUgYWZ0ZXIgdGhlIG5leHQKLSAgICAgICMgcm9sbC4KLSAgICAgICdEYXJ0X2FybTY0X0Jhc2UnOiB7Ci0gICAgICAgICdhYnN0cmFjdCc6IDEsCi0gICAgICAgICdkZWZpbmVzJzogWwotICAgICAgICAgICdPUEVOU1NMX05PX0FTTScsCi0gICAgICAgIF0sCi0gICAgICB9LAotICAgICAgIyBBbmRyb2lkIDY0LWJpdCBkYmMgYnVpbGQgaXMgZm9yIGFybTY0LCBkaXNhYmxlIHRlbXBvcmFyaWx5IGFzIHdlbGwuCi0gICAgICAnRGFydF9BbmRyb2lkX2FybTY0X0Jhc2UnOiB7Ci0gICAgICAgICdhYnN0cmFjdCc6IDEsCi0gICAgICAgICdkZWZpbmVzJzogWwotICAgICAgICAgICdPUEVOU1NMX05PX0FTTScsCi0gICAgICAgIF0sCi0gICAgICB9LAotICAgICAgIyBXaGVuIGJlaW5nIGJ1aWx0IGZvciBBbmRyb2lkIG5zcyBleHBlY3RzIF9fbGludXhfXyB0byBiZSBkZWZpbmVkLgotICAgICAgJ0RhcnRfQW5kcm9pZF9CYXNlJzogewotICAgICAgICAndGFyZ2V0X2NvbmRpdGlvbnMnOiBbCi0gICAgICAgICAgWydfdG9vbHNldD09Imhvc3QiJywgewotICAgICAgICAgICAgJ2RlZmluZXMhJzogWwotICAgICAgICAgICAgICAnQU5EUk9JRCcsCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgIyBEZWZpbmUgX19saW51eF9fIG9uIEFuZHJvaWQgYnVpbGQgZm9yIE5TUy4KLSAgICAgICAgICAgICdkZWZpbmVzJzogWwotICAgICAgICAgICAgICAnX19saW51eF9fJywKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAnY2ZsYWdzISc6IFsKLSAgICAgICAgICAgICAgJy1VX19saW51eF9fJywKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgfV0sCi0gICAgICAgICAgWydfdG9vbHNldD09InRhcmdldCInLCB7Ci0gICAgICAgICAgICAnZGVmaW5lcyc6IFsKLSAgICAgICAgICAgICAgJ19fbGludXhfXycsCi0gICAgICAgICAgICAgICdDSEVDS19GT1JLX0dFVFBJRCcsICAjIEFuZHJvaWQgZG9lcyBub3QgcHJvdmlkZSBwdGhyZWFkX2F0Zm9yay4KLSAgICAgICAgICAgICAgJ19fVVNFX0xBUkdFRklMRTY0JywKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAjIERlZmluZSBfX2xpbnV4X18gb24gQW5kcm9pZCBidWlsZCBmb3IgTlNTLgotICAgICAgICAgICAgJ2NmbGFncyEnOiBbCi0gICAgICAgICAgICAgICctVV9fbGludXhfXycsCi0gICAgICAgICAgICBdLAotICAgICAgICAgIH1dCi0gICAgICAgIF0sCi0gICAgICB9LAotICAgIH0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsX2RhcnQuZ3lwIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2JvcmluZ3NzbF9kYXJ0Lmd5cAppbmRleCAzMDI3MGZhLi4xZGM0NjBmIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsX2RhcnQuZ3lwCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ib3Jpbmdzc2xfZGFydC5neXAKQEAgLTIyLDYgKzIyLDcgQEAKICAgICAgICdkZWZpbmVzJzogWwogICAgICAgICAnQk9SSU5HU1NMX0lNUExFTUVOVEFUSU9OJywKICAgICAgICAgJ0JPUklOR1NTTF9OT19TVEFUSUNfSU5JVElBTElaRVInLAorICAgICAgICAnT1BFTlNTTF9TTUFMTCcKICAgICAgIF0sCiAgICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KICAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CkBAIC00NywxMCArNDgsNiBAQAogICAgICAgXSwKICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCiAgICAgICAgICdzcmMvaW5jbHVkZScsCi0gICAgICAgICMgVGhpcyBpcyBmb3IgYXJtX2FyY2guaCwgd2hpY2ggaXMgbmVlZGVkIGJ5IHNvbWUgYXNtIGZpbGVzLiBTaW5jZSB0aGUKLSAgICAgICAgIyBhc20gZmlsZXMgYXJlIGdlbmVyYXRlZCBhbmQga2VwdCBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnksIHRoZXkKLSAgICAgICAgIyBjYW5ub3QgdXNlIHJlbGF0aXZlIHBhdGhzIHRvIGZpbmQgdGhpcyBmaWxlLgotICAgICAgICAnc3JjL2NyeXB0bycsCiAgICAgICBdLAogICAgICAgJ2RpcmVjdF9kZXBlbmRlbnRfc2V0dGluZ3MnOiB7CiAgICAgICAgICdpbmNsdWRlX2RpcnMnOiBbCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsX3Rlc3RzLmd5cGkgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvYm9yaW5nc3NsX3Rlc3RzLmd5cGkKaW5kZXggOTQxM2Q4Yy4uMTA3NjIxNCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2JvcmluZ3NzbF90ZXN0cy5neXBpCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9ib3Jpbmdzc2xfdGVzdHMuZ3lwaQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTYgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNyw2ICs3LDM0IEBACiB7CiAgICd0YXJnZXRzJzogWwogICAgIHsKKyAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfYWVzX3Rlc3QnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAorICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAnc3JjL2NyeXB0by9hZXMvYWVzX3Rlc3QuY2MnLAorICAgICAgICAnPEAoYm9yaW5nc3NsX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzKScsCisgICAgICBdLAorICAgICAgIyBUT0RPKGRhdmlkYmVuKTogRml4IHNpemVfdCB0cnVuY2F0aW9ucyBpbiBCb3JpbmdTU0wuCisgICAgICAjIGh0dHBzOi8vY3JidWcuY29tLzQyOTAzOQorICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCisgICAgfSwKKyAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX2FzbjFfdGVzdCcsCisgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKKyAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICdib3Jpbmdzc2wuZ3lwOmJvcmluZ3NzbCcsCisgICAgICBdLAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdzcmMvY3J5cHRvL2FzbjEvYXNuMV90ZXN0LmNjJywKKyAgICAgICAgJzxAKGJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyknLAorICAgICAgXSwKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IEZpeCBzaXplX3QgdHJ1bmNhdGlvbnMgaW4gQm9yaW5nU1NMLgorICAgICAgIyBodHRwczovL2NyYnVnLmNvbS80MjkwMzkKKyAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAorICAgIH0sCisgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9iYXNlNjRfdGVzdCcsCiAgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKICAgICAgICdkZXBlbmRlbmNpZXMnOiBbCkBAIC02Myw2ICs5MSwyMCBAQAogICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCiAgICAgfSwKICAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX2NoYWNoYV90ZXN0JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgJ2JvcmluZ3NzbC5neXA6Ym9yaW5nc3NsJywKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3NyYy9jcnlwdG8vY2hhY2hhL2NoYWNoYV90ZXN0LmNjJywKKyAgICAgICAgJzxAKGJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyknLAorICAgICAgXSwKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IEZpeCBzaXplX3QgdHJ1bmNhdGlvbnMgaW4gQm9yaW5nU1NMLgorICAgICAgIyBodHRwczovL2NyYnVnLmNvbS80MjkwMzkKKyAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAorICAgIH0sCisgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9hZWFkX3Rlc3QnLAogICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCiAgICAgICAnZGVwZW5kZW5jaWVzJzogWwpAQCAtMTE5LDYgKzE2MSw0OCBAQAogICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCiAgICAgfSwKICAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX2VkMjU1MTlfdGVzdCcsCisgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKKyAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICdib3Jpbmdzc2wuZ3lwOmJvcmluZ3NzbCcsCisgICAgICBdLAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdzcmMvY3J5cHRvL2N1cnZlMjU1MTkvZWQyNTUxOV90ZXN0LmNjJywKKyAgICAgICAgJzxAKGJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyknLAorICAgICAgXSwKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IEZpeCBzaXplX3QgdHJ1bmNhdGlvbnMgaW4gQm9yaW5nU1NMLgorICAgICAgIyBodHRwczovL2NyYnVnLmNvbS80MjkwMzkKKyAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAorICAgIH0sCisgICAgeworICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9zcGFrZTI1NTE5X3Rlc3QnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAorICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3NwYWtlMjU1MTlfdGVzdC5jYycsCisgICAgICAgICc8QChib3Jpbmdzc2xfdGVzdF9zdXBwb3J0X3NvdXJjZXMpJywKKyAgICAgIF0sCisgICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KKyAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CisgICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfeDI1NTE5X3Rlc3QnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAorICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAnc3JjL2NyeXB0by9jdXJ2ZTI1NTE5L3gyNTUxOV90ZXN0LmNjJywKKyAgICAgICAgJzxAKGJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyknLAorICAgICAgXSwKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IEZpeCBzaXplX3QgdHJ1bmNhdGlvbnMgaW4gQm9yaW5nU1NMLgorICAgICAgIyBodHRwczovL2NyYnVnLmNvbS80MjkwMzkKKyAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAorICAgIH0sCisgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9kaF90ZXN0JywKICAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAogICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKQEAgLTMxNSw2ICszOTksNjIgQEAKICAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAogICAgIH0sCiAgICAgeworICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9uZXdob3BlX3N0YXRpc3RpY2FsX3Rlc3QnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAorICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAnc3JjL2NyeXB0by9uZXdob3BlL25ld2hvcGVfc3RhdGlzdGljYWxfdGVzdC5jYycsCisgICAgICAgICc8QChib3Jpbmdzc2xfdGVzdF9zdXBwb3J0X3NvdXJjZXMpJywKKyAgICAgIF0sCisgICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KKyAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CisgICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfbmV3aG9wZV90ZXN0JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgJ2JvcmluZ3NzbC5neXA6Ym9yaW5nc3NsJywKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3NyYy9jcnlwdG8vbmV3aG9wZS9uZXdob3BlX3Rlc3QuY2MnLAorICAgICAgICAnPEAoYm9yaW5nc3NsX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzKScsCisgICAgICBdLAorICAgICAgIyBUT0RPKGRhdmlkYmVuKTogRml4IHNpemVfdCB0cnVuY2F0aW9ucyBpbiBCb3JpbmdTU0wuCisgICAgICAjIGh0dHBzOi8vY3JidWcuY29tLzQyOTAzOQorICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCisgICAgfSwKKyAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX25ld2hvcGVfdmVjdG9yc190ZXN0JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgJ2JvcmluZ3NzbC5neXA6Ym9yaW5nc3NsJywKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3NyYy9jcnlwdG8vbmV3aG9wZS9uZXdob3BlX3ZlY3RvcnNfdGVzdC5jYycsCisgICAgICAgICc8QChib3Jpbmdzc2xfdGVzdF9zdXBwb3J0X3NvdXJjZXMpJywKKyAgICAgIF0sCisgICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KKyAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CisgICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfb2JqX3Rlc3QnLAorICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAnZGVwZW5kZW5jaWVzJzogWworICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAorICAgICAgXSwKKyAgICAgICdzb3VyY2VzJzogWworICAgICAgICAnc3JjL2NyeXB0by9vYmovb2JqX3Rlc3QuY2MnLAorICAgICAgICAnPEAoYm9yaW5nc3NsX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzKScsCisgICAgICBdLAorICAgICAgIyBUT0RPKGRhdmlkYmVuKTogRml4IHNpemVfdCB0cnVuY2F0aW9ucyBpbiBCb3JpbmdTU0wuCisgICAgICAjIGh0dHBzOi8vY3JidWcuY29tLzQyOTAzOQorICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCisgICAgfSwKKyAgICB7CiAgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX3BrY3MxMl90ZXN0JywKICAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAogICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKQEAgLTMyOSw2ICs0NjksMzQgQEAKICAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAogICAgIH0sCiAgICAgeworICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF9wa2NzOF90ZXN0JywKKyAgICAgICd0eXBlJzogJ2V4ZWN1dGFibGUnLAorICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKKyAgICAgICAgJ2JvcmluZ3NzbC5neXA6Ym9yaW5nc3NsJywKKyAgICAgIF0sCisgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgJ3NyYy9jcnlwdG8vcGtjczgvcGtjczhfdGVzdC5jYycsCisgICAgICAgICc8QChib3Jpbmdzc2xfdGVzdF9zdXBwb3J0X3NvdXJjZXMpJywKKyAgICAgIF0sCisgICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KKyAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5CisgICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfcG9seTEzMDVfdGVzdCcsCisgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKKyAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICdib3Jpbmdzc2wuZ3lwOmJvcmluZ3NzbCcsCisgICAgICBdLAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdzcmMvY3J5cHRvL3BvbHkxMzA1L3BvbHkxMzA1X3Rlc3QuY2MnLAorICAgICAgICAnPEAoYm9yaW5nc3NsX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzKScsCisgICAgICBdLAorICAgICAgIyBUT0RPKGRhdmlkYmVuKTogRml4IHNpemVfdCB0cnVuY2F0aW9ucyBpbiBCb3JpbmdTU0wuCisgICAgICAjIGh0dHBzOi8vY3JidWcuY29tLzQyOTAzOQorICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCisgICAgfSwKKyAgICB7CiAgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX3JlZmNvdW50X3Rlc3QnLAogICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCiAgICAgICAnZGVwZW5kZW5jaWVzJzogWwpAQCAtMzg1LDYgKzU1MywyMCBAQAogICAgICAgJ21zdnNfZGlzYWJsZWRfd2FybmluZ3MnOiBbIDQyNjcsIF0sCiAgICAgfSwKICAgICB7CisgICAgICAndGFyZ2V0X25hbWUnOiAnYm9yaW5nc3NsX3g1MDlfdGVzdCcsCisgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKKyAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICdib3Jpbmdzc2wuZ3lwOmJvcmluZ3NzbCcsCisgICAgICBdLAorICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdzcmMvY3J5cHRvL3g1MDkveDUwOV90ZXN0LmNjJywKKyAgICAgICAgJzxAKGJvcmluZ3NzbF90ZXN0X3N1cHBvcnRfc291cmNlcyknLAorICAgICAgXSwKKyAgICAgICMgVE9ETyhkYXZpZGJlbik6IEZpeCBzaXplX3QgdHJ1bmNhdGlvbnMgaW4gQm9yaW5nU1NMLgorICAgICAgIyBodHRwczovL2NyYnVnLmNvbS80MjkwMzkKKyAgICAgICdtc3ZzX2Rpc2FibGVkX3dhcm5pbmdzJzogWyA0MjY3LCBdLAorICAgIH0sCisgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ2JvcmluZ3NzbF90YWJfdGVzdCcsCiAgICAgICAndHlwZSc6ICdleGVjdXRhYmxlJywKICAgICAgICdkZXBlbmRlbmNpZXMnOiBbCkBAIC00MTMsMjAgKzU5NSw2IEBACiAgICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKICAgICB9LAogICAgIHsKLSAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfcHF1ZXVlX3Rlc3QnLAotICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCi0gICAgICAnZGVwZW5kZW5jaWVzJzogWwotICAgICAgICAnYm9yaW5nc3NsLmd5cDpib3Jpbmdzc2wnLAotICAgICAgXSwKLSAgICAgICdzb3VyY2VzJzogWwotICAgICAgICAnc3JjL3NzbC9wcXVldWUvcHF1ZXVlX3Rlc3QuYycsCi0gICAgICAgICc8QChib3Jpbmdzc2xfdGVzdF9zdXBwb3J0X3NvdXJjZXMpJywKLSAgICAgIF0sCi0gICAgICAjIFRPRE8oZGF2aWRiZW4pOiBGaXggc2l6ZV90IHRydW5jYXRpb25zIGluIEJvcmluZ1NTTC4KLSAgICAgICMgaHR0cHM6Ly9jcmJ1Zy5jb20vNDI5MDM5Ci0gICAgICAnbXN2c19kaXNhYmxlZF93YXJuaW5ncyc6IFsgNDI2NywgXSwKLSAgICB9LAotICAgIHsKICAgICAgICd0YXJnZXRfbmFtZSc6ICdib3Jpbmdzc2xfc3NsX3Rlc3QnLAogICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCiAgICAgICAnZGVwZW5kZW5jaWVzJzogWwpAQCAtNDQ0LDE0ICs2MTIsMjUgQEAKICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAnYm9yaW5nc3NsX3Rlc3Rfc3VwcG9ydF9zb3VyY2VzJzogWwogICAgICAgJ3NyYy9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuY2MnLAorICAgICAgJ3NyYy9jcnlwdG8vdGVzdC9maWxlX3Rlc3QuaCcsCiAgICAgICAnc3JjL2NyeXB0by90ZXN0L21hbGxvYy5jYycsCisgICAgICAnc3JjL2NyeXB0by90ZXN0L3Njb3BlZF90eXBlcy5oJywKKyAgICAgICdzcmMvY3J5cHRvL3Rlc3QvdGVzdF91dGlsLmNjJywKKyAgICAgICdzcmMvY3J5cHRvL3Rlc3QvdGVzdF91dGlsLmgnLAorICAgICAgJ3NyYy9zc2wvdGVzdC9hc3luY19iaW8uaCcsCisgICAgICAnc3JjL3NzbC90ZXN0L3BhY2tldGVkX2Jpby5oJywKKyAgICAgICdzcmMvc3NsL3Rlc3Qvc2NvcGVkX3R5cGVzLmgnLAorICAgICAgJ3NyYy9zc2wvdGVzdC90ZXN0X2NvbmZpZy5oJywKICAgICBdLAogICAgICdib3Jpbmdzc2xfdGVzdF90YXJnZXRzJzogWwogICAgICAgJ2JvcmluZ3NzbF9hZWFkX3Rlc3QnLAorICAgICAgJ2JvcmluZ3NzbF9hZXNfdGVzdCcsCisgICAgICAnYm9yaW5nc3NsX2FzbjFfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX2Jhc2U2NF90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfYmlvX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9ibl90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfYnl0ZXN0cmluZ190ZXN0JywKKyAgICAgICdib3Jpbmdzc2xfY2hhY2hhX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9jaXBoZXJfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX2NtYWNfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX2NvbnN0YW50X3RpbWVfdGVzdCcsCkBAIC00NjAsNiArNjM5LDcgQEAKICAgICAgICdib3Jpbmdzc2xfZHNhX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9lY190ZXN0JywKICAgICAgICdib3Jpbmdzc2xfZWNkc2FfdGVzdCcsCisgICAgICAnYm9yaW5nc3NsX2VkMjU1MTlfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX2Vycl90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfZXZwX2V4dHJhX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9ldnBfdGVzdCcsCkBAIC00NjgsMTYgKzY0OCwyNCBAQAogICAgICAgJ2JvcmluZ3NzbF9oa2RmX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9obWFjX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9saGFzaF90ZXN0JywKKyAgICAgICdib3Jpbmdzc2xfbmV3aG9wZV9zdGF0aXN0aWNhbF90ZXN0JywKKyAgICAgICdib3Jpbmdzc2xfbmV3aG9wZV90ZXN0JywKKyAgICAgICdib3Jpbmdzc2xfbmV3aG9wZV92ZWN0b3JzX3Rlc3QnLAorICAgICAgJ2JvcmluZ3NzbF9vYmpfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX3Bia2RmX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF9wa2NzMTJfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX3BrY3M3X3Rlc3QnLAotICAgICAgJ2JvcmluZ3NzbF9wcXVldWVfdGVzdCcsCisgICAgICAnYm9yaW5nc3NsX3BrY3M4X3Rlc3QnLAorICAgICAgJ2JvcmluZ3NzbF9wb2x5MTMwNV90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfcmVmY291bnRfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX3JzYV90ZXN0JywKKyAgICAgICdib3Jpbmdzc2xfc3Bha2UyNTUxOV90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfc3NsX3Rlc3QnLAogICAgICAgJ2JvcmluZ3NzbF90YWJfdGVzdCcsCiAgICAgICAnYm9yaW5nc3NsX3RocmVhZF90ZXN0JywKICAgICAgICdib3Jpbmdzc2xfdjNuYW1lX3Rlc3QnLAorICAgICAgJ2JvcmluZ3NzbF94MjU1MTlfdGVzdCcsCisgICAgICAnYm9yaW5nc3NsX3g1MDlfdGVzdCcsCiAgICAgXSwKICAgfQogfQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2Vycl9kYXRhLmMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvZXJyX2RhdGEuYwppbmRleCAyN2FjYzg5Li5kNjg1Njc5IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvZXJyX2RhdGEuYworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvZXJyX2RhdGEuYwpAQCAtNDksMTU1NCArNDksMTcxIEBACiBPUEVOU1NMX0NPTVBJTEVfQVNTRVJUKEVSUl9MSUJfSE1BQyA9PSAyOCwgbGlicmFyeV92YWx1ZXNfY2hhbmdlZF8yOCk7CiBPUEVOU1NMX0NPTVBJTEVfQVNTRVJUKEVSUl9MSUJfRElHRVNUID09IDI5LCBsaWJyYXJ5X3ZhbHVlc19jaGFuZ2VkXzI5KTsKIE9QRU5TU0xfQ09NUElMRV9BU1NFUlQoRVJSX0xJQl9DSVBIRVIgPT0gMzAsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfMzApOwotT1BFTlNTTF9DT01QSUxFX0FTU0VSVChFUlJfTElCX1VTRVIgPT0gMzEsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfMzEpOwotT1BFTlNTTF9DT01QSUxFX0FTU0VSVChFUlJfTElCX0hLREYgPT0gMzIsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfMzIpOworT1BFTlNTTF9DT01QSUxFX0FTU0VSVChFUlJfTElCX0hLREYgPT0gMzEsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfMzEpOworT1BFTlNTTF9DT01QSUxFX0FTU0VSVChFUlJfTElCX1VTRVIgPT0gMzIsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfMzIpOwogT1BFTlNTTF9DT01QSUxFX0FTU0VSVChFUlJfTlVNX0xJQlMgPT0gMzMsIGxpYnJhcnlfdmFsdWVzX2NoYW5nZWRfbnVtKTsKIAotY29uc3QgdWludDMyX3Qga09wZW5TU0xGdW5jdGlvblZhbHVlc1tdID0gewotICAgIDB4YzMyMDU0YiwKLSAgICAweGMzMjg1NTYsCi0gICAgMHhjMzMwNTYxLAotICAgIDB4YzMzODU2ZSwKLSAgICAweGMzNDA1NzgsCi0gICAgMHhjMzQ4NTgyLAotICAgIDB4YzM1MDU4OSwKLSAgICAweGMzNTg1OTUsCi0gICAgMHhjMzYwNTljLAotICAgIDB4YzM2ODViMiwKLSAgICAweGMzNzA1ZDEsCi0gICAgMHhjMzc4NWUyLAotICAgIDB4YzM4MDVmMiwKLSAgICAweGMzODg2MGMsCi0gICAgMHhjMzkwNjIxLAotICAgIDB4YzM5ODYzMCwKLSAgICAweGMzYTA2NDksCi0gICAgMHhjM2E4NjVkLAotICAgIDB4YzNiMDY2OSwKLSAgICAweGMzYjg2NzAsCi0gICAgMHhjM2MwNjc4LAotICAgIDB4YzNjODY5MCwKLSAgICAweGMzZDA2OTgsCi0gICAgMHhjM2Q4NmEwLAotICAgIDB4YzNlMDZhYiwKLSAgICAweGMzZTg1YzcsCi0gICAgMHhjM2YwNjg2LAotICAgIDB4MTAzMjE5M2QsCi0gICAgMHgxMDMyOTk1NCwKLSAgICAweDEwMzMxOTZkLAotICAgIDB4MTAzMzk5ODMsCi0gICAgMHgxMDM0MTk5MywKLSAgICAweDEwMzQ5OWJiLAotICAgIDB4MTAzNTE5YzksCi0gICAgMHgxMDM1OTlkOCwKLSAgICAweDEwMzYxOWY4LAotICAgIDB4MTAzNjlhMTcsCi0gICAgMHgxMDM3MWEzNCwKLSAgICAweDEwMzc5YTUxLAotICAgIDB4MTAzODFhNjYsCi0gICAgMHgxMDM4OWE4OCwKLSAgICAweDEwMzkxYWE3LAotICAgIDB4MTAzOTlhYzYsCi0gICAgMHgxMDNhMWFkZCwKLSAgICAweDEwM2E5YWY0LAotICAgIDB4MTAzYjFhZmQsCi0gICAgMHgxMDNiOWIwOCwKLSAgICAweDEwM2MxYjIyLAotICAgIDB4MTAzYzliMmEsCi0gICAgMHgxMDNkMWIzMiwKLSAgICAweDEwM2Q5OWE2LAotICAgIDB4MTAzZTFiNGIsCi0gICAgMHgxMDNlOWI1ZCwKLSAgICAweDEwM2YxYjcwLAotICAgIDB4MTAzZjliNzksCi0gICAgMHgxMDQwMWIzOSwKLSAgICAweDE0MzIwYTRlLAotICAgIDB4MTQzMjhhNWMsCi0gICAgMHgxNDMzMGE2OCwKLSAgICAweDE0MzM4YTc1LAotICAgIDB4MTgzNjEyMjQsCi0gICAgMHgxODM3MTI1MiwKLSAgICAweDE4Mzc5MjYzLAotICAgIDB4MTgzODEyNzksCi0gICAgMHgxODM5MTI5YywKLSAgICAweDE4Mzk5MmIxLAotICAgIDB4MTgzYTEyYzMsCi0gICAgMHgxODNjMTMwNywKLSAgICAweDE4M2M5MzE1LAotICAgIDB4MTgzZDEzMjgsCi0gICAgMHgxODNkOTMzOCwKLSAgICAweDE4M2U5MzVlLAotICAgIDB4MTgzZjEzNzEsCi0gICAgMHgxODNmOTM4MCwKLSAgICAweDE4NDA5M2FhLAotICAgIDB4MTg0MTE0MTYsCi0gICAgMHgxODQxOTQyNywKLSAgICAweDE4NDIxNDNhLAotICAgIDB4MTg0Mjk0NGMsCi0gICAgMHgxODQzMTQ1ZSwKLSAgICAweDE4NDM5NDZmLAotICAgIDB4MTg0NDE0ODAsCi0gICAgMHgxODQ0OTQ5MSwKLSAgICAweDE4NDUxNGEyLAotICAgIDB4MTg0NTk0YWYsCi0gICAgMHgxODQ2MTRkMSwKLSAgICAweDE4NDY5NGU0LAotICAgIDB4MTg0NzE0ZjgsCi0gICAgMHgxODQ3OTUwNSwKLSAgICAweDE4NDgxNTE0LAotICAgIDB4MTg0ODk1MjMsCi0gICAgMHgxODQ5MTUzNCwKLSAgICAweDE4NDk5NTUwLAotICAgIDB4MTg0YTE1NWUsCi0gICAgMHgxODRhOTU2ZiwKLSAgICAweDE4NGIxNTgwLAotICAgIDB4MTg0Yjk1OGUsCi0gICAgMHgxODRjMTU5ZSwKLSAgICAweDE4NGM5NWM0LAotICAgIDB4MTg0ZDE1ZDMsCi0gICAgMHgxODRkOTVlMywKLSAgICAweDE4NGUxNWYzLAotICAgIDB4MTg0ZTk2MDIsCi0gICAgMHgxODRmMTU0MSwKLSAgICAweDE4NGY5MWIzLAotICAgIDB4MTg1MDExNTYsCi0gICAgMHgxODUwOTE2ZSwKLSAgICAweDE4NTExMTkwLAotICAgIDB4MTg1MTkxYTIsCi0gICAgMHgxODUyMTFkNCwKLSAgICAweDE4NTI5MWVkLAotICAgIDB4MTg1MzExZmUsCi0gICAgMHgxODUzOTIxNCwKLSAgICAweDE4NTQxMjM5LAotICAgIDB4MTg1NDkyOGEsCi0gICAgMHgxODU1MTJkMywKLSAgICAweDE4NTU5MmU4LAotICAgIDB4MTg1NjEyZjUsCi0gICAgMHgxODU2OTM0ZCwKLSAgICAweDE4NTcxMzkwLAotICAgIDB4MTg1NzkzOWQsCi0gICAgMHgxODU4MTNiOSwKLSAgICAweDE4NTg5M2NhLAotICAgIDB4MTg1OTEzZGEsCi0gICAgMHgxODU5OTNlYSwKLSAgICAweDE4NWExM2Y5LAotICAgIDB4MTg1YTk0MDgsCi0gICAgMHgxODViMTRiZCwKLSAgICAweDFjMzIwNmI4LAotICAgIDB4MWMzMjg2YzQsCi0gICAgMHgxYzMzMDZjZiwKLSAgICAweDFjMzM4NmRiLAotICAgIDB4MjAzMjE2MTYsCi0gICAgMHgyMDMyOTYyMSwKLSAgICAweDIwMzMxNjI5LAotICAgIDB4MjAzMzk2MzUsCi0gICAgMHgyNDMyMTY0MSwKLSAgICAweDI0MzI5NjRmLAotICAgIDB4MjQzMzE2NjEsCi0gICAgMHgyNDMzOTY3MCwKLSAgICAweDI0MzQxNjgzLAotICAgIDB4MjQzNDk2OTYsCi0gICAgMHgyNDM1MTZhZCwKLSAgICAweDI0MzU5NmM1LAotICAgIDB4MjQzNjE2ZDMsCi0gICAgMHgyNDM2OTZlYiwKLSAgICAweDI0MzcxNmY0LAotICAgIDB4MjQzNzk3MDYsCi0gICAgMHgyNDM4MTcxYSwKLSAgICAweDI0Mzg5NzI3LAotICAgIDB4MjQzOTE3M2QsCi0gICAgMHgyNDM5OTc1NSwKLSAgICAweDI0M2ExNzZkLAotICAgIDB4MjQzYTk3NzcsCi0gICAgMHgyNDNiMTc4YywKLSAgICAweDI0M2I5NzlhLAotICAgIDB4MjQzYzE3YjIsCi0gICAgMHgyNDNjOTdjOSwKLSAgICAweDI0M2QxN2Q0LAotICAgIDB4MjQzZDk3ZTIsCi0gICAgMHgyODMyMGFhZSwKLSAgICAweDI4MzI4YWJkLAotICAgIDB4MjgzMzBhYzgsCi0gICAgMHgyODMzOGFjZCwKLSAgICAweDI4MzQwYWQ4LAotICAgIDB4MmMzMjJiOTksCi0gICAgMHgyYzMyYWJhNSwKLSAgICAweDJjMzMyYmI4LAotICAgIDB4MmMzM2FiYzksCi0gICAgMHgyYzM0MmJlMiwKLSAgICAweDJjMzRhYzBhLAotICAgIDB4MmMzNTJjMjEsCi0gICAgMHgyYzM1YWMzZSwKLSAgICAweDJjMzYyYzViLAotICAgIDB4MmMzNmFjNzgsCi0gICAgMHgyYzM3MmM5MSwKLSAgICAweDJjMzdhY2FhLAotICAgIDB4MmMzODJjYzAsCi0gICAgMHgyYzM4YWNjZSwKLSAgICAweDJjMzkyY2UwLAotICAgIDB4MmMzOWFjZmQsCi0gICAgMHgyYzNhMmQxYSwKLSAgICAweDJjM2FhZDI4LAotICAgIDB4MmMzYjJkNDYsCi0gICAgMHgyYzNiYWQ2NCwKLSAgICAweDJjM2MyZDdmLAotICAgIDB4MmMzY2FkOTMsCi0gICAgMHgyYzNkMmRhNSwKLSAgICAweDJjM2RhZGI1LAotICAgIDB4MmMzZTJkYzMsCi0gICAgMHgyYzNlYWRkMywKLSAgICAweDJjM2YyZGUzLAotICAgIDB4MmMzZmFlMjIsCi0gICAgMHgyYzQwMmUzMywKLSAgICAweDJjNDBhZTRlLAotICAgIDB4MmM0MTJlNjIsCi0gICAgMHgyYzQxYWU3NSwKLSAgICAweDJjNDIyZTk0LAotICAgIDB4MmM0MmFlYTgsCi0gICAgMHgyYzQzMmViYiwKLSAgICAweDJjNDNhZWNhLAotICAgIDB4MmM0NDJlZDksCi0gICAgMHgyYzQ0YWVmMCwKLSAgICAweDJjNDUyZjBiLAotICAgIDB4MmM0NWFmMjMsCi0gICAgMHgyYzQ2MmYzNywKLSAgICAweDJjNDZhZjRhLAotICAgIDB4MmM0NzJmNWIsCi0gICAgMHgyYzQ3YWY2YywKLSAgICAweDJjNDgyZjdkLAotICAgIDB4MmM0OGFmOGUsCi0gICAgMHgyYzQ5MmY5ZCwKLSAgICAweDJjNDlhZmFhLAotICAgIDB4MmM0YTJmYjcsCi0gICAgMHgyYzRhYWZjNCwKLSAgICAweDJjNGIyZmNkLAotICAgIDB4MmM0YmFmZTEsCi0gICAgMHgyYzRjMmZmMCwKLSAgICAweDJjNGNhZmZlLAotICAgIDB4MmM0ZDMwMjAsCi0gICAgMHgyYzRkYjAzMSwKLSAgICAweDJjNGUzMDQyLAotICAgIDB4MmM0ZWIwMGQsCi0gICAgMHgyYzRmMmJmYiwKLSAgICAweDJjNGZhZGZlLAotICAgIDB4MmM1MDJlMTAsCi0gICAgMHgzMDMyMDAwMCwKLSAgICAweDMwMzI4MDE4LAotICAgIDB4MzAzMzAwMmMsCi0gICAgMHgzMDMzODA0MiwKLSAgICAweDMwMzQwMDViLAotICAgIDB4MzAzNDgwNmMsCi0gICAgMHgzMDM1MDA3ZiwKLSAgICAweDMwMzU4MDhmLAotICAgIDB4MzAzNjAwOWQsCi0gICAgMHgzMDM2ODBiMywKLSAgICAweDMwMzcwMGMzLAotICAgIDB4MzAzNzgwZDgsCi0gICAgMHgzMDM4MDBlNiwKLSAgICAweDMwMzg4MGY3LAotICAgIDB4MzAzOTAxMDMsCi0gICAgMHgzMDM5ODEwYywKLSAgICAweDMwM2EwMTFkLAotICAgIDB4MzAzYTgxMmQsCi0gICAgMHgzMDNiMDEzYSwKLSAgICAweDMwM2I4MTQ2LAotICAgIDB4MzAzYzAxNTcsCi0gICAgMHgzMDNjODE2NSwKLSAgICAweDMwM2QwMTc2LAotICAgIDB4MzAzZDgxODgsCi0gICAgMHgzMDNlMDE5OSwKLSAgICAweDMwM2U4MWE4LAotICAgIDB4MzAzZjAxYjksCi0gICAgMHgzMDNmODFjZCwKLSAgICAweDMwNDAwMWRmLAotICAgIDB4MzA0MDgxZWMsCi0gICAgMHgzMDQxMDIwMiwKLSAgICAweDMwNDE4MjE1LAotICAgIDB4MzA0MjAyMjUsCi0gICAgMHgzMDQyODIzOSwKLSAgICAweDMwNDMwMjRhLAotICAgIDB4MzA0MzgyNWEsCi0gICAgMHgzMDQ0MDI2NSwKLSAgICAweDMwNDQ4MjZkLAotICAgIDB4MzA0NTAyN2QsCi0gICAgMHgzMDQ1ODI5NCwKLSAgICAweDMwNDYwMmExLAotICAgIDB4MzA0NjgyYjcsCi0gICAgMHgzMDQ3MDJjOSwKLSAgICAweDMwNDc4MmQ1LAotICAgIDB4MzA0ODAyZTEsCi0gICAgMHgzMDQ4ODJlZiwKLSAgICAweDMwNDkwMzA4LAotICAgIDB4MzA0OTgzMTYsCi0gICAgMHgzMDRhMDMyYiwKLSAgICAweDMwNGE4MzQzLAotICAgIDB4MzA0YjAzNGQsCi0gICAgMHgzMDRiODM2MSwKLSAgICAweDMwNGMwMzcyLAotICAgIDB4MzA0YzgzODIsCi0gICAgMHgzMDRkMDM4ZiwKLSAgICAweDMwNGQ4M2EwLAotICAgIDB4MzA0ZTAzYjAsCi0gICAgMHgzMDRlODNjMiwKLSAgICAweDMwNGYwM2QzLAotICAgIDB4MzA0ZjgzZTIsCi0gICAgMHgzMDUwMDNmNiwKLSAgICAweDMwNTA4NDA0LAotICAgIDB4MzA1MTA0MTMsCi0gICAgMHgzMDUxODQxYywKLSAgICAweDM0MzIwOWQ2LAotICAgIDB4MzQzMjg5ZTYsCi0gICAgMHgzNDMzMDlmMSwKLSAgICAweDM0MzM4OWZlLAotICAgIDB4MzgzMjBhMDcsCi0gICAgMHgzODMyOGExZiwKLSAgICAweDM4MzMwYTMyLAotICAgIDB4MzgzMzhhM2MsCi0gICAgMHgzYzMyMGFlYiwKLSAgICAweDNjMzI4YWY5LAotICAgIDB4M2MzMzBiMTAsCi0gICAgMHgzYzMzOGIyNCwKLSAgICAweDNjMzQwYjU2LAotICAgIDB4M2MzNDhiNjcsCi0gICAgMHgzYzM1MGI3MywKLSAgICAweDNjMzU4YmEwLAotICAgIDB4M2MzNjBiYjIsCi0gICAgMHgzYzM2OGJkYiwKLSAgICAweDNjMzcwYmU4LAotICAgIDB4M2MzNzhiZjUsCi0gICAgMHgzYzM4MGMwMywKLSAgICAweDNjMzg4YzEwLAotICAgIDB4M2MzOTBjMWQsCi0gICAgMHgzYzM5OGM0MSwKLSAgICAweDNjM2EwYzUxLAotICAgIDB4M2MzYThjNjksCi0gICAgMHgzYzNiMGM3ZSwKLSAgICAweDNjM2I4YzkzLAotICAgIDB4M2MzYzBjYTAsCi0gICAgMHgzYzNjOGNiMywKLSAgICAweDNjM2QwY2M2LAotICAgIDB4M2MzZDhjZWEsCi0gICAgMHgzYzNlMGQxMiwKLSAgICAweDNjM2U4ZDJiLAotICAgIDB4M2MzZjBkNDEsCi0gICAgMHgzYzNmOGQ0ZSwKLSAgICAweDNjNDAwZDYxLAotICAgIDB4M2M0MDhkNzIsCi0gICAgMHgzYzQxMGQ4MywKLSAgICAweDNjNDE4ZDljLAotICAgIDB4M2M0MjBkYjUsCi0gICAgMHgzYzQyOGRjYiwKLSAgICAweDNjNDMwZGU4LAotICAgIDB4M2M0MzhkZmUsCi0gICAgMHgzYzQ0MGU4MiwKLSAgICAweDNjNDQ4ZWE5LAotICAgIDB4M2M0NTBlYzcsCi0gICAgMHgzYzQ1OGVlMSwKLSAgICAweDNjNDYwZWY5LAotICAgIDB4M2M0NjhmMTEsCi0gICAgMHgzYzQ3MGYzYywKLSAgICAweDNjNDc4ZjY3LAotICAgIDB4M2M0ODBmODgsCi0gICAgMHgzYzQ4OGZiMSwKLSAgICAweDNjNDkwZmNjLAotICAgIDB4M2M0OThmZjUsCi0gICAgMHgzYzRhMTAwMiwKLSAgICAweDNjNGE5MDE5LAotICAgIDB4M2M0YjEwMzAsCi0gICAgMHgzYzRiOTA1OSwKLSAgICAweDNjNGMxMDY5LAotICAgIDB4M2M0YzkwNzUsCi0gICAgMHgzYzRkMTA4ZCwKLSAgICAweDNjNGQ5MGEwLAotICAgIDB4M2M0ZTEwYjEsCi0gICAgMHgzYzRlOTBjMiwKLSAgICAweDNjNGYxMGU4LAotICAgIDB4M2M0ZjhhZGYsCi0gICAgMHgzYzUwMGUxYSwKLSAgICAweDNjNTA4ZTNhLAotICAgIDB4M2M1MTBlNjcsCi0gICAgMHgzYzUxOGZlNywKLSAgICAweDNjNTIxMGQyLAotICAgIDB4M2M1MjhiODcsCi0gICAgMHgzYzUzMGIzZiwKLSAgICAweDQwMzIxYmI5LAotICAgIDB4NDAzMjliZjIsCi0gICAgMHg0MDMzMWMxYSwKLSAgICAweDQwMzM5YzMyLAotICAgIDB4NDAzNDFjNTAsCi0gICAgMHg0MDM0OWNiNiwKLSAgICAweDQwMzUxY2NkLAotICAgIDB4NDAzNTljZTksCi0gICAgMHg0MDM2MWQwNSwKLSAgICAweDQwMzY5ZDFmLAotICAgIDB4NDAzNzFkM2UsCi0gICAgMHg0MDM3OWQ1ZCwKLSAgICAweDQwMzgxZDc1LAotICAgIDB4NDAzODlkOTIsCi0gICAgMHg0MDM5MWRiNSwKLSAgICAweDQwMzk5ZGQyLAotICAgIDB4NDAzYTFlMDcsCi0gICAgMHg0MDNhOWU2MSwKLSAgICAweDQwM2IxZTc2LAotICAgIDB4NDAzYjllOTIsCi0gICAgMHg0MDNjMWVhYywKLSAgICAweDQwM2M5ZWI3LAotICAgIDB4NDAzZDFlZGEsCi0gICAgMHg0MDNkOWVmZSwKLSAgICAweDQwM2UxZjE0LAotICAgIDB4NDAzZTlmMWUsCi0gICAgMHg0MDNmMWYyYSwKLSAgICAweDQwM2Y5ZjNiLAotICAgIDB4NDA0MDFmNTMsCi0gICAgMHg0MDQwOWY1YiwKLSAgICAweDQwNDExZjY0LAotICAgIDB4NDA0MTlmNmQsCi0gICAgMHg0MDQyMWY5NSwKLSAgICAweDQwNDI5ZmE5LAotICAgIDB4NDA0MzFmYjQsCi0gICAgMHg0MDQzOWZjMCwKLSAgICAweDQwNDQyMDE0LAotICAgIDB4NDA0NGEwMjAsCi0gICAgMHg0MDQ1MjAyZCwKLSAgICAweDQwNDVhMDQwLAotICAgIDB4NDA0NjIwNTgsCi0gICAgMHg0MDQ2YTA3MCwKLSAgICAweDQwNDcyMDg2LAotICAgIDB4NDA0N2EwYTEsCi0gICAgMHg0MDQ4MjBiYywKLSAgICAweDQwNDhhMGQwLAotICAgIDB4NDA0OTIwZTksCi0gICAgMHg0MDQ5YTEwMiwKLSAgICAweDQwNGEyMTFjLAotICAgIDB4NDA0YWExMjYsCi0gICAgMHg0MDRiMWUyOSwKLSAgICAweDQwNGI5ZTQ4LAotICAgIDB4NDA0YzIxMzYsCi0gICAgMHg0MDRjYTE0NCwKLSAgICAweDQwNGQyMTUxLAotICAgIDB4NDA0ZGExNjUsCi0gICAgMHg0MDRlMjE3ZCwKLSAgICAweDQwNGVhMThiLAotICAgIDB4NDA0ZjIxYjUsCi0gICAgMHg0MDRmYTFjYywKLSAgICAweDQwNTAyMWRlLAotICAgIDB4NDA1MGEyMGYsCi0gICAgMHg0MDUxMjI0MCwKLSAgICAweDQwNTFhMjU1LAotICAgIDB4NDA1MjIyNzgsCi0gICAgMHg0MDUyYTI5OCwKLSAgICAweDQwNTMyMmFkLAotICAgIDB4NDA1M2EyYmQsCi0gICAgMHg0MDU0YTJjOSwKLSAgICAweDQwNTUyMmRmLAotICAgIDB4NDA1NWEzMWYsCi0gICAgMHg0MDU2MjMyYywKLSAgICAweDQwNTZhMzM2LAotICAgIDB4NDA1NzIzNDQsCi0gICAgMHg0MDU3YTM1ZiwKLSAgICAweDQwNTgyMzdhLAotICAgIDB4NDA1OGEzOTksCi0gICAgMHg0MDU5MjNhZSwKLSAgICAweDQwNTlhM2MzLAotICAgIDB4NDA1YTIzZTAsCi0gICAgMHg0MDVhYTNmNCwKLSAgICAweDQwNWIyNDEwLAotICAgIDB4NDA1YmE0MjYsCi0gICAgMHg0MDVjMjQ0MywKLSAgICAweDQwNWNhNDU1LAotICAgIDB4NDA1ZDI0NmMsCi0gICAgMHg0MDVkYTQ3ZCwKLSAgICAweDQwNWUyNDk5LAotICAgIDB4NDA1ZWE0YWQsCi0gICAgMHg0MDVmMjRiZCwKLSAgICAweDQwNWZhNGQ5LAotICAgIDB4NDA2MDI0ZWUsCi0gICAgMHg0MDYwYTUwNCwKLSAgICAweDQwNjEyNTIxLAotICAgIDB4NDA2MWE1M2EsCi0gICAgMHg0MDYyMjU2NCwKLSAgICAweDQwNjJhNTZkLAotICAgIDB4NDA2MzI1N2QsCi0gICAgMHg0MDYzYTViNiwKLSAgICAweDQwNjQyNWNjLAotICAgIDB4NDA2NGE1ZWEsCi0gICAgMHg0MDY1MjVmZiwKLSAgICAweDQwNjVhNjFjLAotICAgIDB4NDA2NjI2MzMsCi0gICAgMHg0MDY2YTY1MSwKLSAgICAweDQwNjcyNjZlLAotICAgIDB4NDA2N2E2ODUsCi0gICAgMHg0MDY4MjZhMywKLSAgICAweDQwNjhhNmJhLAotICAgIDB4NDA2OTI2ZDIsCi0gICAgMHg0MDY5YTZlMywKLSAgICAweDQwNmEyNmY2LAotICAgIDB4NDA2YWE3MDksCi0gICAgMHg0MDZiMjcxZCwKLSAgICAweDQwNmJhNzQxLAotICAgIDB4NDA2YzI3NWMsCi0gICAgMHg0MDZjYTc3ZCwKLSAgICAweDQwNmQyN2ExLAotICAgIDB4NDA2ZGE3YmMsCi0gICAgMHg0MDZlMjdkZCwKLSAgICAweDQwNmVhN2YyLAotICAgIDB4NDA2ZjI4MGIsCi0gICAgMHg0MDZmYTgxOCwKLSAgICAweDQwNzAyODI2LAotICAgIDB4NDA3MGE4MzMsCi0gICAgMHg0MDcxMjg1MCwKLSAgICAweDQwNzFhODcwLAotICAgIDB4NDA3MjI4OGIsCi0gICAgMHg0MDcyYThhNCwKLSAgICAweDQwNzMyOGJiLAotICAgIDB4NDA3M2E4ZDUsCi0gICAgMHg0MDc0MjhmOSwKLSAgICAweDQwNzRhOTBmLAotICAgIDB4NDA3NTI5MjMsCi0gICAgMHg0MDc1YTkzOCwKLSAgICAweDQwNzYyOTUyLAotICAgIDB4NDA3NmE5NjQsCi0gICAgMHg0MDc3Mjk3OSwKLSAgICAweDQwNzdhOTlmLAotICAgIDB4NDA3ODI5YmMsCi0gICAgMHg0MDc4YTlkZiwKLSAgICAweDQwNzkyYTA1LAotICAgIDB4NDA3OWFhMjIsCi0gICAgMHg0MDdhMmE0NSwKLSAgICAweDQwN2FhYTYxLAotICAgIDB4NDA3YjJhN2QsCi0gICAgMHg0MDdiYWE4ZiwKLSAgICAweDQwN2MyYTljLAotICAgIDB4NDA3ZTJhYTksCi0gICAgMHg0MDdlYWFiZiwKLSAgICAweDQwN2YyYWQ3LAotICAgIDB4NDA3ZmFhZWEsCi0gICAgMHg0MDgwMmFmZiwKLSAgICAweDQwODBhYjE4LAotICAgIDB4NDA4MTJiMzYsCi0gICAgMHg0MDgxYWI1NiwKLSAgICAweDQwODIyYjVmLAotICAgIDB4NDA4MmFiN2IsCi0gICAgMHg0MDgzMmI4NCwKLSAgICAweDQwODNhMTlhLAotICAgIDB4NDA4NDIyMjksCi0gICAgMHg0MDg0YTFmOSwKLSAgICAweDQwODUyNWE1LAotICAgIDB4NDA4NWE1ODksCi0gICAgMHg0MDg2MWM4ZSwKLSAgICAweDQwODY5Y2ExLAotICAgIDB4NDA4NzFmZjQsCi0gICAgMHg0MDg3YTAwMywKLSAgICAweDQwODgxYmZlLAotICAgIDB4NDA4ODlmN2QsCi0gICAgMHg0MDg5MWZkYiwKLSAgICAweDQwODlhNTRkLAotICAgIDB4NDA4YTFiODQsCi0gICAgMHg0MDhhOWI5NSwKLSAgICAweDQwOGIxYmE3LAotICAgIDB4NDA4YmEyNjYsCi0gICAgMHg0MDhjMWRmMCwKLSAgICAweDQwOGM5ZTE3LAotICAgIDB4NDA4ZDIyZmQsCi0gICAgMHg0MDhkOWJkMywKLSAgICAweDQwOGUxYzZmLAotICAgIDB4NDQzMjA0MmEsCi0gICAgMHg0NDMyODQzYywKLSAgICAweDQ0MzMwNDQ1LAotICAgIDB4NDQzMzg0NGQsCi0gICAgMHg0NDM0MDQ1YSwKLSAgICAweDQ0MzQ4NDc1LAotICAgIDB4NDQzNTA0OTAsCi0gICAgMHg0NDM1ODRiMCwKLSAgICAweDQ0MzYwNGNjLAotICAgIDB4NDQzNjg0ZWQsCi0gICAgMHg0NDM3MDRmNCwKLSAgICAweDQ0Mzc4NTAyLAotICAgIDB4NDQzODA1MGMsCi0gICAgMHg0NDM4ODUxOCwKLSAgICAweDQ0MzkwNTIyLAotICAgIDB4NDQzOTg1MmQsCi0gICAgMHg0NDNhMDUzNywKLSAgICAweDQ0M2E4NTQxLAotICAgIDB4NDQzYjA0NmEsCi0gICAgMHg0YzMyMTdlYSwKLSAgICAweDRjMzI5N2Y5LAotICAgIDB4NGMzMzE4MDgsCi0gICAgMHg0YzMzOTgyMSwKLSAgICAweDRjMzQxODNjLAotICAgIDB4NGMzNDk4NTgsCi0gICAgMHg0YzM1MTg2YSwKLSAgICAweDRjMzU5ODc4LAotICAgIDB4NGMzNjE4OGQsCi0gICAgMHg0YzM2OTg5ZSwKLSAgICAweDRjMzcxOGFjLAotICAgIDB4NGMzNzk4YmEsCi0gICAgMHg0YzM4MThjYywKLSAgICAweDRjMzg5OGRjLAotICAgIDB4NGMzOTE4ZTYsCi0gICAgMHg0YzM5OThmZSwKLSAgICAweDRjM2ExOTE2LAotICAgIDB4NGMzYTk5MjksCi0gICAgMHg1MDMyMzA1MywKLSAgICAweDUwMzJiMDY4LAotICAgIDB4NTAzMzMwNzksCi0gICAgMHg1MDMzYjA4YywKLSAgICAweDUwMzQzMDlkLAotICAgIDB4NTAzNGIwYjAsCi0gICAgMHg1MDM1MzBiZiwKLSAgICAweDUwMzViMGQ0LAotICAgIDB4NTAzNjMwZTQsCi0gICAgMHg1MDM2YjBmMywKLSAgICAweDUwMzczMTA0LAotICAgIDB4NTAzN2IxMTQsCi0gICAgMHg1MDM4MzEyNSwKLSAgICAweDUwMzhiMTM4LAotICAgIDB4NTAzOTMxNGEsCi0gICAgMHg1MDM5YjE2MCwKLSAgICAweDUwM2EzMTcyLAotICAgIDB4NTAzYWIxODMsCi0gICAgMHg1MDNiMzE5NCwKLSAgICAweDUwM2JiMWE1LAotICAgIDB4NTAzYzMxYjAsCi0gICAgMHg1MDNjYjFiYywKLSAgICAweDUwM2QzMWM3LAotICAgIDB4NTAzZGIxZDIsCi0gICAgMHg1MDNlMzFkZiwKLSAgICAweDUwM2ViMWY0LAotICAgIDB4NTAzZjMyMDIsCi0gICAgMHg1MDNmYjIxNiwKLSAgICAweDUwNDAzMjI5LAotICAgIDB4NTA0MGIyM2EsCi0gICAgMHg1MDQxMzI1NCwKLSAgICAweDUwNDFiMjYzLAotICAgIDB4NTA0MjMyNmMsCi0gICAgMHg1MDQyYjI3YiwKLSAgICAweDUwNDMzMjhkLAotICAgIDB4NTA0M2IyOTksCi0gICAgMHg1MDQ0MzJhMSwKLSAgICAweDUwNDRiMmI0LAotICAgIDB4NTA0NTMyYzUsCi0gICAgMHg1MDQ1YjJkYiwKLSAgICAweDUwNDYzMmU3LAotICAgIDB4NTA0NmIyZmIsCi0gICAgMHg1MDQ3MzMwOSwKLSAgICAweDUwNDdiMzFkLAotICAgIDB4NTA0ODMzMzcsCi0gICAgMHg1MDQ4YjM0YiwKLSAgICAweDUwNDkzMzYxLAotICAgIDB4NTA0OWIzNzgsCi0gICAgMHg1MDRhMzM4YSwKLSAgICAweDUwNGFiMzllLAotICAgIDB4NTA0YjMzYjMsCi0gICAgMHg1MDRiYjNjYSwKLSAgICAweDUwNGMzM2RlLAotICAgIDB4NTA0Y2IzZTcsCi0gICAgMHg1MDRkMzNlZiwKLSAgICAweDUwNGRiM2ZlLAotICAgIDB4NTA0ZTM0MGUsCi0gICAgMHg2ODMyMTEwOSwKLSAgICAweDY4MzI5MTFhLAotICAgIDB4NjgzMzExMmEsCi0gICAgMHg2ODMzOTEzOCwKLSAgICAweDY4MzQxMTQ1LAotICAgIDB4NmMzMjEwZjgsCi0gICAgMHg3NDMyMGE4OSwKLSAgICAweDc0MzI4YTliLAotICAgIDB4NzgzMjA2ZTgsCi0gICAgMHg3ODMyODcxYiwKLSAgICAweDc4MzMwNzJkLAotICAgIDB4NzgzMzg3M2YsCi0gICAgMHg3ODM0MDc1MywKLSAgICAweDc4MzQ4NzY3LAotICAgIDB4NzgzNTA3ODUsCi0gICAgMHg3ODM1ODc5NywKLSAgICAweDc4MzYwN2FiLAotICAgIDB4NzgzNjg4MTksCi0gICAgMHg3ODM3MDgyYiwKLSAgICAweDc4Mzc4ODNkLAotICAgIDB4NzgzODA4NGYsCi0gICAgMHg3ODM4ODg2NiwKLSAgICAweDc4MzkwODdkLAotICAgIDB4NzgzOTg4OTQsCi0gICAgMHg3ODNhMDhiMCwKLSAgICAweDc4M2E4OGNjLAotICAgIDB4NzgzYjA4ZTgsCi0gICAgMHg3ODNiODhmZSwKLSAgICAweDc4M2MwOTE0LAotICAgIDB4NzgzYzg5MmEsCi0gICAgMHg3ODNkMDk0NywKLSAgICAweDc4M2Q4OTU2LAotICAgIDB4NzgzZTA5NjUsCi0gICAgMHg3ODNlODk3NCwKLSAgICAweDc4M2YwOTkwLAotICAgIDB4NzgzZjg5OWUsCi0gICAgMHg3ODQwMDlhYywKLSAgICAweDc4NDA4OWJhLAotICAgIDB4Nzg0MTA5YzcsCi0gICAgMHg3ODQxODZmYSwKLSAgICAweDc4NDIwN2JmLAotICAgIDB4Nzg0Mjg3ZGQsCi0gICAgMHg3ODQzMDdmYiwKLSAgICAweDgwMzIxNjExLAotfTsKLQotY29uc3Qgc2l6ZV90IGtPcGVuU1NMRnVuY3Rpb25WYWx1ZXNMZW4gPSBzaXplb2Yoa09wZW5TU0xGdW5jdGlvblZhbHVlcykgLyBzaXplb2Yoa09wZW5TU0xGdW5jdGlvblZhbHVlc1swXSk7Ci0KLWNvbnN0IGNoYXIga09wZW5TU0xGdW5jdGlvblN0cmluZ0RhdGFbXSA9Ci0gICAgIkFTTjFfQklUX1NUUklOR19zZXRfYml0XDAiCi0gICAgIkFTTjFfRU5VTUVSQVRFRF9zZXRcMCIKLSAgICAiQVNOMV9FTlVNRVJBVEVEX3RvX0JOXDAiCi0gICAgIkFTTjFfR0VORVJBTElaRURUSU1FX2FkalwwIgotICAgICJBU04xX0lOVEVHRVJfc2V0XDAiCi0gICAgIkFTTjFfSU5URUdFUl90b19CTlwwIgotICAgICJBU04xX09CSkVDVF9uZXdcMCIKLSAgICAiQVNOMV9QQ1RYX25ld1wwIgotICAgICJBU04xX1NUUklOR19UQUJMRV9hZGRcMCIKLSAgICAiQVNOMV9TVFJJTkdfc2V0XDAiCi0gICAgIkFTTjFfU1RSSU5HX3R5cGVfbmV3XDAiCi0gICAgIkFTTjFfVElNRV9hZGpcMCIKLSAgICAiQVNOMV9VVENUSU1FX2FkalwwIgotICAgICJBU04xX2QyaV9mcFwwIgotICAgICJBU04xX2R1cFwwIgotICAgICJBU04xX2dlbmVyYXRlX3YzXDAiCi0gICAgIkFTTjFfZ2V0X29iamVjdFwwIgotICAgICJBU04xX2kyZF9iaW9cMCIKLSAgICAiQVNOMV9pMmRfZnBcMCIKLSAgICAiQVNOMV9pdGVtX2QyaV9mcFwwIgotICAgICJBU04xX2l0ZW1fZHVwXDAiCi0gICAgIkFTTjFfaXRlbV9leF9kMmlcMCIKLSAgICAiQVNOMV9pdGVtX2kyZF9iaW9cMCIKLSAgICAiQVNOMV9pdGVtX2kyZF9mcFwwIgotICAgICJBU04xX2l0ZW1fcGFja1wwIgotICAgICJBU04xX2l0ZW1fdW5wYWNrXDAiCi0gICAgIkFTTjFfbWJzdHJpbmdfbmNvcHlcMCIKLSAgICAiQVNOMV90ZW1wbGF0ZV9uZXdcMCIKLSAgICAiQklPX25ld19OREVGXDAiCi0gICAgIkJOX3RvX0FTTjFfRU5VTUVSQVRFRFwwIgotICAgICJCTl90b19BU04xX0lOVEVHRVJcMCIKLSAgICAiYTJkX0FTTjFfT0JKRUNUXDAiCi0gICAgImEyaV9BU04xX0VOVU1FUkFURURcMCIKLSAgICAiYTJpX0FTTjFfSU5URUdFUlwwIgotICAgICJhMmlfQVNOMV9TVFJJTkdcMCIKLSAgICAiYXBwZW5kX2V4cFwwIgotICAgICJhc24xX2NiXDAiCi0gICAgImFzbjFfY2hlY2tfdGxlblwwIgotICAgICJhc24xX2NvbGxhdGVfcHJpbWl0aXZlXDAiCi0gICAgImFzbjFfY29sbGVjdFwwIgotICAgICJhc24xX2QyaV9leF9wcmltaXRpdmVcMCIKLSAgICAiYXNuMV9kMmlfcmVhZF9iaW9cMCIKLSAgICAiYXNuMV9kb19hZGJcMCIKLSAgICAiYXNuMV9leF9jMmlcMCIKLSAgICAiYXNuMV9maW5kX2VuZFwwIgotICAgICJhc24xX2l0ZW1fZXhfY29tYmluZV9uZXdcMCIKLSAgICAiYXNuMV9zdHIydHlwZVwwIgotICAgICJhc24xX3RlbXBsYXRlX2V4X2QyaVwwIgotICAgICJhc24xX3RlbXBsYXRlX25vZXhwX2QyaVwwIgotICAgICJiaXRzdHJfY2JcMCIKLSAgICAiYzJpX0FTTjFfQklUX1NUUklOR1wwIgotICAgICJjMmlfQVNOMV9JTlRFR0VSXDAiCi0gICAgImMyaV9BU04xX09CSkVDVFwwIgotICAgICJjb2xsZWN0X2RhdGFcMCIKLSAgICAiZDJpX0FTTjFfQk9PTEVBTlwwIgotICAgICJkMmlfQVNOMV9PQkpFQ1RcMCIKLSAgICAiZDJpX0FTTjFfVUlOVEVHRVJcMCIKLSAgICAiZDJpX0FTTjFfVVRDVElNRVwwIgotICAgICJkMmlfQVNOMV9ieXRlc1wwIgotICAgICJkMmlfQVNOMV90eXBlX2J5dGVzXDAiCi0gICAgImkyZF9BU04xX1RJTUVcMCIKLSAgICAiaTJkX1ByaXZhdGVLZXlcMCIKLSAgICAibG9uZ19jMmlcMCIKLSAgICAicGFyc2VfdGFnZ2luZ1wwIgotICAgICJCSU9fY2FsbGJhY2tfY3RybFwwIgotICAgICJCSU9fY3RybFwwIgotICAgICJCSU9fbmV3XDAiCi0gICAgIkJJT19uZXdfZmlsZVwwIgotICAgICJCSU9fbmV3X21lbV9idWZcMCIKLSAgICAiQklPX3ByaW50ZlwwIgotICAgICJCSU9femVyb19jb3B5X2dldF9yZWFkX2J1ZlwwIgotICAgICJCSU9femVyb19jb3B5X2dldF9yZWFkX2J1Zl9kb25lXDAiCi0gICAgIkJJT196ZXJvX2NvcHlfZ2V0X3dyaXRlX2J1ZlwwIgotICAgICJCSU9femVyb19jb3B5X2dldF93cml0ZV9idWZfZG9uZVwwIgotICAgICJiaW9faW9cMCIKLSAgICAiYmlvX21ha2VfcGFpclwwIgotICAgICJiaW9fd3JpdGVcMCIKLSAgICAiYnVmZmVyX2N0cmxcMCIKLSAgICAiY29ubl9jdHJsXDAiCi0gICAgImNvbm5fc3RhdGVcMCIKLSAgICAiZmlsZV9jdHJsXDAiCi0gICAgImZpbGVfcmVhZFwwIgotICAgICJtZW1fd3JpdGVcMCIKLSAgICAiQk5fQ1RYX2dldFwwIgotICAgICJCTl9DVFhfbmV3XDAiCi0gICAgIkJOX0NUWF9zdGFydFwwIgotICAgICJCTl9ibjJkZWNcMCIKLSAgICAiQk5fYm4yaGV4XDAiCi0gICAgIkJOX2RpdlwwIgotICAgICJCTl9kaXZfcmVjcFwwIgotICAgICJCTl9leHBcMCIKLSAgICAiQk5fZ2VuZXJhdGVfZHNhX25vbmNlXDAiCi0gICAgIkJOX2dlbmVyYXRlX3ByaW1lX2V4XDAiCi0gICAgIkJOX2xzaGlmdFwwIgotICAgICJCTl9tb2RfZXhwMl9tb250XDAiCi0gICAgIkJOX21vZF9leHBfbW9udFwwIgotICAgICJCTl9tb2RfZXhwX21vbnRfY29uc3R0aW1lXDAiCi0gICAgIkJOX21vZF9leHBfbW9udF93b3JkXDAiCi0gICAgIkJOX21vZF9pbnZlcnNlXDAiCi0gICAgIkJOX21vZF9pbnZlcnNlX25vX2JyYW5jaFwwIgotICAgICJCTl9tb2RfbHNoaWZ0X3F1aWNrXDAiCi0gICAgIkJOX21vZF9zcXJ0XDAiCi0gICAgIkJOX25ld1wwIgotICAgICJCTl9yYW5kXDAiCi0gICAgIkJOX3JhbmRfcmFuZ2VcMCIKLSAgICAiQk5fcnNoaWZ0XDAiCi0gICAgIkJOX3NxcnRcMCIKLSAgICAiQk5fdXN1YlwwIgotICAgICJibl93ZXhwYW5kXDAiCi0gICAgIm1vZF9leHBfcmVjcFwwIgotICAgICJCVUZfTUVNX25ld1wwIgotICAgICJCVUZfbWVtZHVwXDAiCi0gICAgIkJVRl9zdHJuZHVwXDAiCi0gICAgImJ1Zl9tZW1fZ3Jvd1wwIgotICAgICJFVlBfQUVBRF9DVFhfaW5pdFwwIgotICAgICJFVlBfQUVBRF9DVFhfaW5pdF93aXRoX2RpcmVjdGlvblwwIgotICAgICJFVlBfQUVBRF9DVFhfb3BlblwwIgotICAgICJFVlBfQUVBRF9DVFhfc2VhbFwwIgotICAgICJFVlBfQ0lQSEVSX0NUWF9jb3B5XDAiCi0gICAgIkVWUF9DSVBIRVJfQ1RYX2N0cmxcMCIKLSAgICAiRVZQX0NJUEhFUl9DVFhfc2V0X2tleV9sZW5ndGhcMCIKLSAgICAiRVZQX0NpcGhlckluaXRfZXhcMCIKLSAgICAiRVZQX0RlY3J5cHRGaW5hbF9leFwwIgotICAgICJFVlBfRW5jcnlwdEZpbmFsX2V4XDAiCi0gICAgImFlYWRfYWVzX2N0cl9obWFjX3NoYTI1Nl9pbml0XDAiCi0gICAgImFlYWRfYWVzX2N0cl9obWFjX3NoYTI1Nl9vcGVuXDAiCi0gICAgImFlYWRfYWVzX2N0cl9obWFjX3NoYTI1Nl9zZWFsXDAiCi0gICAgImFlYWRfYWVzX2djbV9pbml0XDAiCi0gICAgImFlYWRfYWVzX2djbV9vcGVuXDAiCi0gICAgImFlYWRfYWVzX2djbV9zZWFsXDAiCi0gICAgImFlYWRfYWVzX2tleV93cmFwX2luaXRcMCIKLSAgICAiYWVhZF9hZXNfa2V5X3dyYXBfb3BlblwwIgotICAgICJhZWFkX2Flc19rZXlfd3JhcF9zZWFsXDAiCi0gICAgImFlYWRfY2hhY2hhMjBfcG9seTEzMDVfaW5pdFwwIgotICAgICJhZWFkX2NoYWNoYTIwX3BvbHkxMzA1X29wZW5cMCIKLSAgICAiYWVhZF9jaGFjaGEyMF9wb2x5MTMwNV9zZWFsXDAiCi0gICAgImFlYWRfcmM0X21kNV90bHNfaW5pdFwwIgotICAgICJhZWFkX3JjNF9tZDVfdGxzX29wZW5cMCIKLSAgICAiYWVhZF9yYzRfbWQ1X3Rsc19zZWFsXDAiCi0gICAgImFlYWRfc3NsM19lbnN1cmVfY2lwaGVyX2luaXRcMCIKLSAgICAiYWVhZF9zc2wzX2luaXRcMCIKLSAgICAiYWVhZF9zc2wzX29wZW5cMCIKLSAgICAiYWVhZF9zc2wzX3NlYWxcMCIKLSAgICAiYWVhZF90bHNfZW5zdXJlX2NpcGhlcl9pbml0XDAiCi0gICAgImFlYWRfdGxzX2luaXRcMCIKLSAgICAiYWVhZF90bHNfb3BlblwwIgotICAgICJhZWFkX3Rsc19zZWFsXDAiCi0gICAgImFlc19pbml0X2tleVwwIgotICAgICJhZXNuaV9pbml0X2tleVwwIgotICAgICJDT05GX3BhcnNlX2xpc3RcMCIKLSAgICAiTkNPTkZfbG9hZFwwIgotICAgICJkZWZfbG9hZF9iaW9cMCIKLSAgICAic3RyX2NvcHlcMCIKLSAgICAiQ1JZUFRPX2dldF9leF9uZXdfaW5kZXhcMCIKLSAgICAiQ1JZUFRPX3NldF9leF9kYXRhXDAiCi0gICAgImdldF9jbGFzc1wwIgotICAgICJnZXRfZnVuY19wb2ludGVyc1wwIgotICAgICJESF9uZXdfbWV0aG9kXDAiCi0gICAgImNvbXB1dGVfa2V5XDAiCi0gICAgImdlbmVyYXRlX2tleVwwIgotICAgICJnZW5lcmF0ZV9wYXJhbWV0ZXJzXDAiCi0gICAgIkVWUF9EaWdlc3RJbml0X2V4XDAiCi0gICAgIkVWUF9NRF9DVFhfY29weV9leFwwIgotICAgICJEU0FfbmV3X21ldGhvZFwwIgotICAgICJkc2Ffc2lnX2NiXDAiCi0gICAgInNpZ25cMCIKLSAgICAic2lnbl9zZXR1cFwwIgotICAgICJ2ZXJpZnlcMCIKLSAgICAiQk5fdG9fZmVsZW1cMCIKLSAgICAiRUNfR1JPVVBfY29weVwwIgotICAgICJFQ19HUk9VUF9nZXRfY3VydmVfR0ZwXDAiCi0gICAgIkVDX0dST1VQX2dldF9kZWdyZWVcMCIKLSAgICAiRUNfR1JPVVBfbmV3X2J5X2N1cnZlX25hbWVcMCIKLSAgICAiRUNfR1JPVVBfbmV3X2N1cnZlX0dGcFwwIgotICAgICJFQ19LRVlfY2hlY2tfa2V5XDAiCi0gICAgIkVDX0tFWV9jb3B5XDAiCi0gICAgIkVDX0tFWV9nZW5lcmF0ZV9rZXlcMCIKLSAgICAiRUNfS0VZX25ld19ieV9jdXJ2ZV9uYW1lXDAiCi0gICAgIkVDX0tFWV9uZXdfbWV0aG9kXDAiCi0gICAgIkVDX0tFWV9zZXRfcHVibGljX2tleV9hZmZpbmVfY29vcmRpbmF0ZXNcMCIKLSAgICAiRUNfUE9JTlRfYWRkXDAiCi0gICAgIkVDX1BPSU5UX2NtcFwwIgotICAgICJFQ19QT0lOVF9jb3B5XDAiCi0gICAgIkVDX1BPSU5UX2RibFwwIgotICAgICJFQ19QT0lOVF9kdXBcMCIKLSAgICAiRUNfUE9JTlRfZ2V0X2FmZmluZV9jb29yZGluYXRlc19HRnBcMCIKLSAgICAiRUNfUE9JTlRfaW52ZXJ0XDAiCi0gICAgIkVDX1BPSU5UX2lzX2F0X2luZmluaXR5XDAiCi0gICAgIkVDX1BPSU5UX2lzX29uX2N1cnZlXDAiCi0gICAgIkVDX1BPSU5UX21ha2VfYWZmaW5lXDAiCi0gICAgIkVDX1BPSU5UX25ld1wwIgotICAgICJFQ19QT0lOVF9vY3QycG9pbnRcMCIKLSAgICAiRUNfUE9JTlRfcG9pbnQyb2N0XDAiCi0gICAgIkVDX1BPSU5UX3NldF9hZmZpbmVfY29vcmRpbmF0ZXNfR0ZwXDAiCi0gICAgIkVDX1BPSU5UX3NldF9jb21wcmVzc2VkX2Nvb3JkaW5hdGVzX0dGcFwwIgotICAgICJFQ19QT0lOVF9zZXRfdG9faW5maW5pdHlcMCIKLSAgICAiRUNfUE9JTlRzX21ha2VfYWZmaW5lXDAiCi0gICAgImNvbXB1dGVfd05BRlwwIgotICAgICJkMmlfRUNQS1BhcmFtZXRlcnNcMCIKLSAgICAiZDJpX0VDUGFyYW1ldGVyc1wwIgotICAgICJkMmlfRUNQcml2YXRlS2V5XDAiCi0gICAgImVjX0dGcF9tb250X2ZpZWxkX2RlY29kZVwwIgotICAgICJlY19HRnBfbW9udF9maWVsZF9lbmNvZGVcMCIKLSAgICAiZWNfR0ZwX21vbnRfZmllbGRfbXVsXDAiCi0gICAgImVjX0dGcF9tb250X2ZpZWxkX3NldF90b19vbmVcMCIKLSAgICAiZWNfR0ZwX21vbnRfZmllbGRfc3FyXDAiCi0gICAgImVjX0dGcF9tb250X2dyb3VwX3NldF9jdXJ2ZVwwIgotICAgICJlY19HRnBfbmlzdHAyNTZfZ3JvdXBfc2V0X2N1cnZlXDAiCi0gICAgImVjX0dGcF9uaXN0cDI1Nl9wb2ludF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVzXDAiCi0gICAgImVjX0dGcF9uaXN0cDI1Nl9wb2ludHNfbXVsXDAiCi0gICAgImVjX0dGcF9zaW1wbGVfZ3JvdXBfY2hlY2tfZGlzY3JpbWluYW50XDAiCi0gICAgImVjX0dGcF9zaW1wbGVfZ3JvdXBfc2V0X2N1cnZlXDAiCi0gICAgImVjX0dGcF9zaW1wbGVfbWFrZV9hZmZpbmVcMCIKLSAgICAiZWNfR0ZwX3NpbXBsZV9vY3QycG9pbnRcMCIKLSAgICAiZWNfR0ZwX3NpbXBsZV9wb2ludDJvY3RcMCIKLSAgICAiZWNfR0ZwX3NpbXBsZV9wb2ludF9nZXRfYWZmaW5lX2Nvb3JkaW5hdGVzXDAiCi0gICAgImVjX0dGcF9zaW1wbGVfcG9pbnRfc2V0X2FmZmluZV9jb29yZGluYXRlc1wwIgotICAgICJlY19HRnBfc2ltcGxlX3BvaW50c19tYWtlX2FmZmluZVwwIgotICAgICJlY19HRnBfc2ltcGxlX3NldF9jb21wcmVzc2VkX2Nvb3JkaW5hdGVzXDAiCi0gICAgImVjX2FzbjFfZ3JvdXAycGtwYXJhbWV0ZXJzXDAiCi0gICAgImVjX2FzbjFfcGtwYXJhbWV0ZXJzMmdyb3VwXDAiCi0gICAgImVjX2dyb3VwX2NvcHlcMCIKLSAgICAiZWNfZ3JvdXBfbmV3XDAiCi0gICAgImVjX2dyb3VwX25ld19jdXJ2ZV9HRnBcMCIKLSAgICAiZWNfZ3JvdXBfbmV3X2Zyb21fZGF0YVwwIgotICAgICJlY19wb2ludF9zZXRfSnByb2plY3RpdmVfY29vcmRpbmF0ZXNfR0ZwXDAiCi0gICAgImVjX3ByZV9jb21wX25ld1wwIgotICAgICJlY193TkFGX211bFwwIgotICAgICJlY193TkFGX3ByZWNvbXB1dGVfbXVsdFwwIgotICAgICJpMmRfRUNQS1BhcmFtZXRlcnNcMCIKLSAgICAiaTJkX0VDUGFyYW1ldGVyc1wwIgotICAgICJpMmRfRUNQcml2YXRlS2V5XDAiCi0gICAgImkyb19FQ1B1YmxpY0tleVwwIgotICAgICJuaXN0cDI1Nl9wcmVfY29tcF9uZXdcMCIKLSAgICAibzJpX0VDUHVibGljS2V5XDAiCi0gICAgIkVDREhfY29tcHV0ZV9rZXlcMCIKLSAgICAiRUNEU0FfZG9fc2lnbl9leFwwIgotICAgICJFQ0RTQV9kb192ZXJpZnlcMCIKLSAgICAiRUNEU0Ffc2lnbl9leFwwIgotICAgICJkaWdlc3RfdG9fYm5cMCIKLSAgICAiZWNkc2Ffc2lnbl9zZXR1cFwwIgotICAgICJFVlBfRGlnZXN0U2lnbkFsZ29yaXRobVwwIgotICAgICJFVlBfRGlnZXN0VmVyaWZ5SW5pdEZyb21BbGdvcml0aG1cMCIKLSAgICAiRVZQX1BLRVlfQ1RYX2N0cmxcMCIKLSAgICAiRVZQX1BLRVlfQ1RYX2R1cFwwIgotICAgICJFVlBfUEtFWV9DVFhfZ2V0MF9yc2Ffb2FlcF9sYWJlbFwwIgotICAgICJFVlBfUEtFWV9jb3B5X3BhcmFtZXRlcnNcMCIKLSAgICAiRVZQX1BLRVlfZGVjcnlwdFwwIgotICAgICJFVlBfUEtFWV9kZWNyeXB0X2luaXRcMCIKLSAgICAiRVZQX1BLRVlfZGVyaXZlXDAiCi0gICAgIkVWUF9QS0VZX2Rlcml2ZV9pbml0XDAiCi0gICAgIkVWUF9QS0VZX2Rlcml2ZV9zZXRfcGVlclwwIgotICAgICJFVlBfUEtFWV9lbmNyeXB0XDAiCi0gICAgIkVWUF9QS0VZX2VuY3J5cHRfaW5pdFwwIgotICAgICJFVlBfUEtFWV9nZXQxX0RIXDAiCi0gICAgIkVWUF9QS0VZX2dldDFfRFNBXDAiCi0gICAgIkVWUF9QS0VZX2dldDFfRUNfS0VZXDAiCi0gICAgIkVWUF9QS0VZX2dldDFfUlNBXDAiCi0gICAgIkVWUF9QS0VZX2tleWdlblwwIgotICAgICJFVlBfUEtFWV9rZXlnZW5faW5pdFwwIgotICAgICJFVlBfUEtFWV9uZXdcMCIKLSAgICAiRVZQX1BLRVlfc2V0X3R5cGVcMCIKLSAgICAiRVZQX1BLRVlfc2lnblwwIgotICAgICJFVlBfUEtFWV9zaWduX2luaXRcMCIKLSAgICAiRVZQX1BLRVlfdmVyaWZ5XDAiCi0gICAgIkVWUF9QS0VZX3ZlcmlmeV9pbml0XDAiCi0gICAgImNoZWNrX3BhZGRpbmdfbWRcMCIKLSAgICAiZDJpX0F1dG9Qcml2YXRlS2V5XDAiCi0gICAgImQyaV9Qcml2YXRlS2V5XDAiCi0gICAgImRvX0VDX0tFWV9wcmludFwwIgotICAgICJkb19kc2FfcHJpbnRcMCIKLSAgICAiZG9fcnNhX3ByaW50XDAiCi0gICAgImRvX3NpZ3Zlcl9pbml0XDAiCi0gICAgImRzYV9wYXJhbV9kZWNvZGVcMCIKLSAgICAiZHNhX3ByaXZfZGVjb2RlXDAiCi0gICAgImRzYV9wcml2X2VuY29kZVwwIgotICAgICJkc2FfcHViX2RlY29kZVwwIgotICAgICJkc2FfcHViX2VuY29kZVwwIgotICAgICJkc2Ffc2lnX3ByaW50XDAiCi0gICAgImVja2V5X3BhcmFtMnR5cGVcMCIKLSAgICAiZWNrZXlfcGFyYW1fZGVjb2RlXDAiCi0gICAgImVja2V5X3ByaXZfZGVjb2RlXDAiCi0gICAgImVja2V5X3ByaXZfZW5jb2RlXDAiCi0gICAgImVja2V5X3B1Yl9kZWNvZGVcMCIKLSAgICAiZWNrZXlfcHViX2VuY29kZVwwIgotICAgICJlY2tleV90eXBlMnBhcmFtXDAiCi0gICAgImV2cF9wa2V5X2N0eF9uZXdcMCIKLSAgICAiaG1hY19zaWduY3R4XDAiCi0gICAgImkyZF9QdWJsaWNLZXlcMCIKLSAgICAib2xkX2RzYV9wcml2X2RlY29kZVwwIgotICAgICJvbGRfZWNfcHJpdl9kZWNvZGVcMCIKLSAgICAib2xkX3JzYV9wcml2X2RlY29kZVwwIgotICAgICJwa2V5X2VjX2N0cmxcMCIKLSAgICAicGtleV9lY19kZXJpdmVcMCIKLSAgICAicGtleV9lY19rZXlnZW5cMCIKLSAgICAicGtleV9lY19wYXJhbWdlblwwIgotICAgICJwa2V5X2VjX3NpZ25cMCIKLSAgICAicGtleV9obWFjX2N0cmxcMCIKLSAgICAicGtleV9yc2FfY3RybFwwIgotICAgICJwa2V5X3JzYV9kZWNyeXB0XDAiCi0gICAgInBrZXlfcnNhX2VuY3J5cHRcMCIKLSAgICAicGtleV9yc2Ffc2lnblwwIgotICAgICJyc2FfYWxnb3JfdG9fbWRcMCIKLSAgICAicnNhX2RpZ2VzdF92ZXJpZnlfaW5pdF9mcm9tX2FsZ29yaXRobVwwIgotICAgICJyc2FfbWdmMV90b19tZFwwIgotICAgICJyc2FfcHJpdl9kZWNvZGVcMCIKLSAgICAicnNhX3ByaXZfZW5jb2RlXDAiCi0gICAgInJzYV9wc3NfdG9fY3R4XDAiCi0gICAgInJzYV9wdWJfZGVjb2RlXDAiCi0gICAgIkhLREZcMCIKLSAgICAiT0JKX2NyZWF0ZVwwIgotICAgICJPQkpfZHVwXDAiCi0gICAgIk9CSl9uaWQyb2JqXDAiCi0gICAgIk9CSl90eHQyb2JqXDAiCi0gICAgIlBFTV9BU04xX3JlYWRcMCIKLSAgICAiUEVNX0FTTjFfcmVhZF9iaW9cMCIKLSAgICAiUEVNX0FTTjFfd3JpdGVcMCIKLSAgICAiUEVNX0FTTjFfd3JpdGVfYmlvXDAiCi0gICAgIlBFTV9YNTA5X0lORk9fcmVhZFwwIgotICAgICJQRU1fWDUwOV9JTkZPX3JlYWRfYmlvXDAiCi0gICAgIlBFTV9YNTA5X0lORk9fd3JpdGVfYmlvXDAiCi0gICAgIlBFTV9kb19oZWFkZXJcMCIKLSAgICAiUEVNX2dldF9FVlBfQ0lQSEVSX0lORk9cMCIKLSAgICAiUEVNX3JlYWRcMCIKLSAgICAiUEVNX3JlYWRfREhwYXJhbXNcMCIKLSAgICAiUEVNX3JlYWRfUHJpdmF0ZUtleVwwIgotICAgICJQRU1fcmVhZF9iaW9cMCIKLSAgICAiUEVNX3JlYWRfYmlvX0RIcGFyYW1zXDAiCi0gICAgIlBFTV9yZWFkX2Jpb19QYXJhbWV0ZXJzXDAiCi0gICAgIlBFTV9yZWFkX2Jpb19Qcml2YXRlS2V5XDAiCi0gICAgIlBFTV93cml0ZVwwIgotICAgICJQRU1fd3JpdGVfUHJpdmF0ZUtleVwwIgotICAgICJQRU1fd3JpdGVfYmlvXDAiCi0gICAgImQyaV9QS0NTOFByaXZhdGVLZXlfYmlvXDAiCi0gICAgImQyaV9QS0NTOFByaXZhdGVLZXlfZnBcMCIKLSAgICAiZG9fcGs4cGtleVwwIgotICAgICJkb19wazhwa2V5X2ZwXDAiCi0gICAgImxvYWRfaXZcMCIKLSAgICAiRVZQX1BLQ1M4MlBLRVlcMCIKLSAgICAiRVZQX1BLRVkyUEtDUzhcMCIKLSAgICAiUEtDUzEyX2dldF9rZXlfYW5kX2NlcnRzXDAiCi0gICAgIlBLQ1MxMl9oYW5kbGVfY29udGVudF9pbmZvXDAiCi0gICAgIlBLQ1MxMl9oYW5kbGVfY29udGVudF9pbmZvc1wwIgotICAgICJQS0NTNV9wYmUyX3NldF9pdlwwIgotICAgICJQS0NTNV9wYmVfc2V0XDAiCi0gICAgIlBLQ1M1X3BiZV9zZXQwX2FsZ29yXDAiCi0gICAgIlBLQ1M1X3Bia2RmMl9zZXRcMCIKLSAgICAiUEtDUzhfZGVjcnlwdFwwIgotICAgICJQS0NTOF9lbmNyeXB0XDAiCi0gICAgIlBLQ1M4X2VuY3J5cHRfcGJlXDAiCi0gICAgInBiZV9jaXBoZXJfaW5pdFwwIgotICAgICJwYmVfY3J5cHRcMCIKLSAgICAicGtjczEyX2l0ZW1fZGVjcnlwdF9kMmlcMCIKLSAgICAicGtjczEyX2l0ZW1faTJkX2VuY3J5cHRcMCIKLSAgICAicGtjczEyX2tleV9nZW5fcmF3XDAiCi0gICAgInBrY3MxMl9wYmVfa2V5aXZnZW5cMCIKLSAgICAiQk5fQkxJTkRJTkdfY29udmVydF9leFwwIgotICAgICJCTl9CTElORElOR19jcmVhdGVfcGFyYW1cMCIKLSAgICAiQk5fQkxJTkRJTkdfaW52ZXJ0X2V4XDAiCi0gICAgIkJOX0JMSU5ESU5HX25ld1wwIgotICAgICJCTl9CTElORElOR191cGRhdGVcMCIKLSAgICAiUlNBX2FkZF9wa2NzMV9wcmVmaXhcMCIKLSAgICAiUlNBX2NoZWNrX2tleVwwIgotICAgICJSU0FfbmV3X21ldGhvZFwwIgotICAgICJSU0FfcGFkZGluZ19hZGRfUEtDUzFfT0FFUF9tZ2YxXDAiCi0gICAgIlJTQV9wYWRkaW5nX2FkZF9QS0NTMV9QU1NfbWdmMVwwIgotICAgICJSU0FfcGFkZGluZ19hZGRfUEtDUzFfdHlwZV8xXDAiCi0gICAgIlJTQV9wYWRkaW5nX2FkZF9QS0NTMV90eXBlXzJcMCIKLSAgICAiUlNBX3BhZGRpbmdfYWRkX25vbmVcMCIKLSAgICAiUlNBX3BhZGRpbmdfY2hlY2tfUEtDUzFfT0FFUF9tZ2YxXDAiCi0gICAgIlJTQV9wYWRkaW5nX2NoZWNrX1BLQ1MxX3R5cGVfMVwwIgotICAgICJSU0FfcGFkZGluZ19jaGVja19QS0NTMV90eXBlXzJcMCIKLSAgICAiUlNBX3BhZGRpbmdfY2hlY2tfbm9uZVwwIgotICAgICJSU0FfcmVjb3Zlcl9jcnRfcGFyYW1zXDAiCi0gICAgIlJTQV9zaWduXDAiCi0gICAgIlJTQV92ZXJpZnlcMCIKLSAgICAiUlNBX3ZlcmlmeV9QS0NTMV9QU1NfbWdmMVwwIgotICAgICJkZWNyeXB0XDAiCi0gICAgImVuY3J5cHRcMCIKLSAgICAia2V5Z2VuXDAiCi0gICAgImtleWdlbl9tdWx0aXByaW1lXDAiCi0gICAgInByaXZhdGVfdHJhbnNmb3JtXDAiCi0gICAgInJzYV9zZXR1cF9ibGluZGluZ1wwIgotICAgICJzaWduX3Jhd1wwIgotICAgICJ2ZXJpZnlfcmF3XDAiCi0gICAgIlNTTF9BRUFEX0NUWF9uZXdcMCIKLSAgICAiU1NMX0FFQURfQ1RYX29wZW5cMCIKLSAgICAiU1NMX0FFQURfQ1RYX3NlYWxcMCIKLSAgICAiU1NMX0NUWF9jaGVja19wcml2YXRlX2tleVwwIgotICAgICJTU0xfQ1RYX2dldF90bHNleHRfdGlja2V0X2tleXNcMCIKLSAgICAiU1NMX0NUWF9uZXdcMCIKLSAgICAiU1NMX0NUWF9zZXQxX3Rsc19jaGFubmVsX2lkXDAiCi0gICAgIlNTTF9DVFhfc2V0X2NpcGhlcl9saXN0XDAiCi0gICAgIlNTTF9DVFhfc2V0X2NpcGhlcl9saXN0X3RsczExXDAiCi0gICAgIlNTTF9DVFhfc2V0X3Nlc3Npb25faWRfY29udGV4dFwwIgotICAgICJTU0xfQ1RYX3NldF90bHNleHRfdGlja2V0X2tleXNcMCIKLSAgICAiU1NMX0NUWF9zZXRfdG1wX2RoXDAiCi0gICAgIlNTTF9DVFhfc2V0X3RtcF9lY2RoXDAiCi0gICAgIlNTTF9DVFhfdXNlX1ByaXZhdGVLZXlcMCIKLSAgICAiU1NMX0NUWF91c2VfUHJpdmF0ZUtleV9BU04xXDAiCi0gICAgIlNTTF9DVFhfdXNlX1ByaXZhdGVLZXlfZmlsZVwwIgotICAgICJTU0xfQ1RYX3VzZV9SU0FQcml2YXRlS2V5XDAiCi0gICAgIlNTTF9DVFhfdXNlX1JTQVByaXZhdGVLZXlfQVNOMVwwIgotICAgICJTU0xfQ1RYX3VzZV9SU0FQcml2YXRlS2V5X2ZpbGVcMCIKLSAgICAiU1NMX0NUWF91c2VfY2VydGlmaWNhdGVcMCIKLSAgICAiU1NMX0NUWF91c2VfY2VydGlmaWNhdGVfQVNOMVwwIgotICAgICJTU0xfQ1RYX3VzZV9jZXJ0aWZpY2F0ZV9jaGFpbl9maWxlXDAiCi0gICAgIlNTTF9DVFhfdXNlX2NlcnRpZmljYXRlX2ZpbGVcMCIKLSAgICAiU1NMX0NUWF91c2VfcHNrX2lkZW50aXR5X2hpbnRcMCIKLSAgICAiU1NMX1NFU1NJT05fZnJvbV9ieXRlc1wwIgotICAgICJTU0xfU0VTU0lPTl9uZXdcMCIKLSAgICAiU1NMX1NFU1NJT05fcGFyc2VcMCIKLSAgICAiU1NMX1NFU1NJT05fcGFyc2Vfb2N0ZXRfc3RyaW5nXDAiCi0gICAgIlNTTF9TRVNTSU9OX3BhcnNlX3N0cmluZ1wwIgotICAgICJTU0xfU0VTU0lPTl9wcmludF9mcFwwIgotICAgICJTU0xfU0VTU0lPTl9zZXQxX2lkX2NvbnRleHRcMCIKLSAgICAiU1NMX1NFU1NJT05fdG9fYnl0ZXNfZnVsbFwwIgotICAgICJTU0xfYWNjZXB0XDAiCi0gICAgIlNTTF9hZGRfZGlyX2NlcnRfc3ViamVjdHNfdG9fc3RhY2tcMCIKLSAgICAiU1NMX2FkZF9maWxlX2NlcnRfc3ViamVjdHNfdG9fc3RhY2tcMCIKLSAgICAiU1NMX2NoZWNrX3ByaXZhdGVfa2V5XDAiCi0gICAgIlNTTF9jbGVhclwwIgotICAgICJTU0xfY29ubmVjdFwwIgotICAgICJTU0xfZG9faGFuZHNoYWtlXDAiCi0gICAgIlNTTF9sb2FkX2NsaWVudF9DQV9maWxlXDAiCi0gICAgIlNTTF9uZXdcMCIKLSAgICAiU1NMX3BlZWtcMCIKLSAgICAiU1NMX3JlYWRcMCIKLSAgICAiU1NMX3JlbmVnb3RpYXRlXDAiCi0gICAgIlNTTF9zZXQxX3Rsc19jaGFubmVsX2lkXDAiCi0gICAgIlNTTF9zZXRfY2lwaGVyX2xpc3RcMCIKLSAgICAiU1NMX3NldF9mZFwwIgotICAgICJTU0xfc2V0X3JmZFwwIgotICAgICJTU0xfc2V0X3Nlc3Npb25faWRfY29udGV4dFwwIgotICAgICJTU0xfc2V0X3Rsc2V4dF9ob3N0X25hbWVcMCIKLSAgICAiU1NMX3NldF90bXBfZGhcMCIKLSAgICAiU1NMX3NldF90bXBfZWNkaFwwIgotICAgICJTU0xfc2V0X3dmZFwwIgotICAgICJTU0xfc2h1dGRvd25cMCIKLSAgICAiU1NMX3VzZV9Qcml2YXRlS2V5XDAiCi0gICAgIlNTTF91c2VfUHJpdmF0ZUtleV9BU04xXDAiCi0gICAgIlNTTF91c2VfUHJpdmF0ZUtleV9maWxlXDAiCi0gICAgIlNTTF91c2VfUlNBUHJpdmF0ZUtleVwwIgotICAgICJTU0xfdXNlX1JTQVByaXZhdGVLZXlfQVNOMVwwIgotICAgICJTU0xfdXNlX1JTQVByaXZhdGVLZXlfZmlsZVwwIgotICAgICJTU0xfdXNlX2NlcnRpZmljYXRlXDAiCi0gICAgIlNTTF91c2VfY2VydGlmaWNhdGVfQVNOMVwwIgotICAgICJTU0xfdXNlX2NlcnRpZmljYXRlX2ZpbGVcMCIKLSAgICAiU1NMX3VzZV9wc2tfaWRlbnRpdHlfaGludFwwIgotICAgICJTU0xfd3JpdGVcMCIKLSAgICAiZDJpX1NTTF9TRVNTSU9OXDAiCi0gICAgImRvX3NzbDNfd3JpdGVcMCIKLSAgICAiZHRsczFfYWNjZXB0XDAiCi0gICAgImR0bHMxX2J1ZmZlcl9yZWNvcmRcMCIKLSAgICAiZHRsczFfY2hlY2tfdGltZW91dF9udW1cMCIKLSAgICAiZHRsczFfY29ubmVjdFwwIgotICAgICJkdGxzMV9kb193cml0ZVwwIgotICAgICJkdGxzMV9nZXRfYnVmZmVyZWRfbWVzc2FnZVwwIgotICAgICJkdGxzMV9nZXRfaGVsbG9fdmVyaWZ5XDAiCi0gICAgImR0bHMxX2dldF9tZXNzYWdlXDAiCi0gICAgImR0bHMxX2dldF9tZXNzYWdlX2ZyYWdtZW50XDAiCi0gICAgImR0bHMxX2htX2ZyYWdtZW50X25ld1wwIgotICAgICJkdGxzMV9wcmVwcm9jZXNzX2ZyYWdtZW50XDAiCi0gICAgImR0bHMxX3Byb2Nlc3NfZnJhZ21lbnRcMCIKLSAgICAiZHRsczFfcHJvY2Vzc19yZWNvcmRcMCIKLSAgICAiZHRsczFfcmVhZF9ieXRlc1wwIgotICAgICJkdGxzMV9zZWFsX3JlY29yZFwwIgotICAgICJkdGxzMV9zZW5kX2hlbGxvX3ZlcmlmeV9yZXF1ZXN0XDAiCi0gICAgImR0bHMxX3dyaXRlX2FwcF9kYXRhXDAiCi0gICAgImkyZF9TU0xfU0VTU0lPTlwwIgotICAgICJzc2wzX2FjY2VwdFwwIgotICAgICJzc2wzX2NlcnRfdmVyaWZ5X2hhc2hcMCIKLSAgICAic3NsM19jaGVja19jZXJ0X2FuZF9hbGdvcml0aG1cMCIKLSAgICAic3NsM19jaGVja19jZXJ0aWZpY2F0ZV9mb3JfY2lwaGVyXDAiCi0gICAgInNzbDNfY29ubmVjdFwwIgotICAgICJzc2wzX2N0cmxcMCIKLSAgICAic3NsM19jdHhfY3RybFwwIgotICAgICJzc2wzX2RpZ2VzdF9jYWNoZWRfcmVjb3Jkc1wwIgotICAgICJzc2wzX2RvX2NoYW5nZV9jaXBoZXJfc3BlY1wwIgotICAgICJzc2wzX2V4cGVjdF9jaGFuZ2VfY2lwaGVyX3NwZWNcMCIKLSAgICAic3NsM19nZXRfY2VydF9zdGF0dXNcMCIKLSAgICAic3NsM19nZXRfY2VydF92ZXJpZnlcMCIKLSAgICAic3NsM19nZXRfY2VydGlmaWNhdGVfcmVxdWVzdFwwIgotICAgICJzc2wzX2dldF9jaGFubmVsX2lkXDAiCi0gICAgInNzbDNfZ2V0X2NsaWVudF9jZXJ0aWZpY2F0ZVwwIgotICAgICJzc2wzX2dldF9jbGllbnRfaGVsbG9cMCIKLSAgICAic3NsM19nZXRfY2xpZW50X2tleV9leGNoYW5nZVwwIgotICAgICJzc2wzX2dldF9maW5pc2hlZFwwIgotICAgICJzc2wzX2dldF9pbml0aWFsX2J5dGVzXDAiCi0gICAgInNzbDNfZ2V0X21lc3NhZ2VcMCIKLSAgICAic3NsM19nZXRfbmV3X3Nlc3Npb25fdGlja2V0XDAiCi0gICAgInNzbDNfZ2V0X25leHRfcHJvdG9cMCIKLSAgICAic3NsM19nZXRfcmVjb3JkXDAiCi0gICAgInNzbDNfZ2V0X3NlcnZlcl9jZXJ0aWZpY2F0ZVwwIgotICAgICJzc2wzX2dldF9zZXJ2ZXJfZG9uZVwwIgotICAgICJzc2wzX2dldF9zZXJ2ZXJfaGVsbG9cMCIKLSAgICAic3NsM19nZXRfc2VydmVyX2tleV9leGNoYW5nZVwwIgotICAgICJzc2wzX2dldF92Ml9jbGllbnRfaGVsbG9cMCIKLSAgICAic3NsM19oYW5kc2hha2VfbWFjXDAiCi0gICAgInNzbDNfb3V0cHV0X2NlcnRfY2hhaW5cMCIKLSAgICAic3NsM19wcmZcMCIKLSAgICAic3NsM19yZWFkX2J5dGVzXDAiCi0gICAgInNzbDNfcmVhZF9uXDAiCi0gICAgInNzbDNfcmVjb3JkX3NlcXVlbmNlX3VwZGF0ZVwwIgotICAgICJzc2wzX3NlYWxfcmVjb3JkXDAiCi0gICAgInNzbDNfc2VuZF9jZXJ0X3ZlcmlmeVwwIgotICAgICJzc2wzX3NlbmRfY2VydGlmaWNhdGVfcmVxdWVzdFwwIgotICAgICJzc2wzX3NlbmRfY2hhbm5lbF9pZFwwIgotICAgICJzc2wzX3NlbmRfY2xpZW50X2NlcnRpZmljYXRlXDAiCi0gICAgInNzbDNfc2VuZF9jbGllbnRfaGVsbG9cMCIKLSAgICAic3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2VcMCIKLSAgICAic3NsM19zZW5kX3NlcnZlcl9jZXJ0aWZpY2F0ZVwwIgotICAgICJzc2wzX3NlbmRfc2VydmVyX2hlbGxvXDAiCi0gICAgInNzbDNfc2VuZF9zZXJ2ZXJfa2V5X2V4Y2hhbmdlXDAiCi0gICAgInNzbDNfc2V0dXBfcmVhZF9idWZmZXJcMCIKLSAgICAic3NsM19zZXR1cF93cml0ZV9idWZmZXJcMCIKLSAgICAic3NsM193cml0ZV9ieXRlc1wwIgotICAgICJzc2wzX3dyaXRlX3BlbmRpbmdcMCIKLSAgICAic3NsX2FkZF9jZXJ0X2NoYWluXDAiCi0gICAgInNzbF9hZGRfY2VydF90b19idWZcMCIKLSAgICAic3NsX2FkZF9jbGllbnRoZWxsb19yZW5lZ290aWF0ZV9leHRcMCIKLSAgICAic3NsX2FkZF9jbGllbnRoZWxsb190bHNleHRcMCIKLSAgICAic3NsX2FkZF9jbGllbnRoZWxsb191c2Vfc3J0cF9leHRcMCIKLSAgICAic3NsX2FkZF9zZXJ2ZXJoZWxsb19yZW5lZ290aWF0ZV9leHRcMCIKLSAgICAic3NsX2FkZF9zZXJ2ZXJoZWxsb190bHNleHRcMCIKLSAgICAic3NsX2FkZF9zZXJ2ZXJoZWxsb191c2Vfc3J0cF9leHRcMCIKLSAgICAic3NsX2J1aWxkX2NlcnRfY2hhaW5cMCIKLSAgICAic3NsX2J5dGVzX3RvX2NpcGhlcl9saXN0XDAiCi0gICAgInNzbF9jZXJ0X2R1cFwwIgotICAgICJzc2xfY2VydF9pbnN0XDAiCi0gICAgInNzbF9jZXJ0X25ld1wwIgotICAgICJzc2xfY2hlY2tfc2VydmVyaGVsbG9fdGxzZXh0XDAiCi0gICAgInNzbF9jaGVja19zcnZyX2VjY19jZXJ0X2FuZF9hbGdcMCIKLSAgICAic3NsX2NpcGhlcl9wcm9jZXNzX3J1bGVzdHJcMCIKLSAgICAic3NsX2NpcGhlcl9zdHJlbmd0aF9zb3J0XDAiCi0gICAgInNzbF9jcmVhdGVfY2lwaGVyX2xpc3RcMCIKLSAgICAic3NsX2N0eF9sb2dfbWFzdGVyX3NlY3JldFwwIgotICAgICJzc2xfY3R4X2xvZ19yc2FfY2xpZW50X2tleV9leGNoYW5nZVwwIgotICAgICJzc2xfY3R4X21ha2VfcHJvZmlsZXNcMCIKLSAgICAic3NsX2dldF9uZXdfc2Vzc2lvblwwIgotICAgICJzc2xfZ2V0X3ByZXZfc2Vzc2lvblwwIgotICAgICJzc2xfZ2V0X3NlcnZlcl9jZXJ0X2luZGV4XDAiCi0gICAgInNzbF9nZXRfc2lnbl9wa2V5XDAiCi0gICAgInNzbF9pbml0X3diaW9fYnVmZmVyXDAiCi0gICAgInNzbF9wYXJzZV9jbGllbnRoZWxsb19yZW5lZ290aWF0ZV9leHRcMCIKLSAgICAic3NsX3BhcnNlX2NsaWVudGhlbGxvX3Rsc2V4dFwwIgotICAgICJzc2xfcGFyc2VfY2xpZW50aGVsbG9fdXNlX3NydHBfZXh0XDAiCi0gICAgInNzbF9wYXJzZV9zZXJ2ZXJoZWxsb19yZW5lZ290aWF0ZV9leHRcMCIKLSAgICAic3NsX3BhcnNlX3NlcnZlcmhlbGxvX3Rsc2V4dFwwIgotICAgICJzc2xfcGFyc2Vfc2VydmVyaGVsbG9fdXNlX3NydHBfZXh0XDAiCi0gICAgInNzbF9zY2FuX2NsaWVudGhlbGxvX3Rsc2V4dFwwIgotICAgICJzc2xfc2Nhbl9zZXJ2ZXJoZWxsb190bHNleHRcMCIKLSAgICAic3NsX3Nlc3NfY2VydF9uZXdcMCIKLSAgICAic3NsX3NldF9jZXJ0XDAiCi0gICAgInNzbF9zZXRfcGtleVwwIgotICAgICJzc2xfdmVyaWZ5X2NlcnRfY2hhaW5cMCIKLSAgICAidGxzMTJfY2hlY2tfcGVlcl9zaWdhbGdcMCIKLSAgICAidGxzMV9hZWFkX2N0eF9pbml0XDAiCi0gICAgInRsczFfY2VydF92ZXJpZnlfbWFjXDAiCi0gICAgInRsczFfY2hhbmdlX2NpcGhlcl9zdGF0ZVwwIgotICAgICJ0bHMxX2NoYW5nZV9jaXBoZXJfc3RhdGVfYWVhZFwwIgotICAgICJ0bHMxX2NoZWNrX2R1cGxpY2F0ZV9leHRlbnNpb25zXDAiCi0gICAgInRsczFfZW5jXDAiCi0gICAgInRsczFfZXhwb3J0X2tleWluZ19tYXRlcmlhbFwwIgotICAgICJ0bHMxX3ByZlwwIgotICAgICJ0bHMxX3NldHVwX2tleV9ibG9ja1wwIgotICAgICJBU04xX2RpZ2VzdFwwIgotICAgICJBU04xX2l0ZW1fc2lnbl9jdHhcMCIKLSAgICAiQVNOMV9pdGVtX3ZlcmlmeVwwIgotICAgICJORVRTQ0FQRV9TUEtJX2I2NF9kZWNvZGVcMCIKLSAgICAiTkVUU0NBUEVfU1BLSV9iNjRfZW5jb2RlXDAiCi0gICAgIlBLQ1M3X2dldF9DUkxzXDAiCi0gICAgIlBLQ1M3X2dldF9jZXJ0aWZpY2F0ZXNcMCIKLSAgICAiWDUwOV9BVFRSSUJVVEVfY3JlYXRlX2J5X05JRFwwIgotICAgICJYNTA5X0FUVFJJQlVURV9jcmVhdGVfYnlfT0JKXDAiCi0gICAgIlg1MDlfQVRUUklCVVRFX2NyZWF0ZV9ieV90eHRcMCIKLSAgICAiWDUwOV9BVFRSSUJVVEVfZ2V0MF9kYXRhXDAiCi0gICAgIlg1MDlfQVRUUklCVVRFX3NldDFfZGF0YVwwIgotICAgICJYNTA5X0NSTF9hZGQwX3Jldm9rZWRcMCIKLSAgICAiWDUwOV9DUkxfZGlmZlwwIgotICAgICJYNTA5X0NSTF9wcmludF9mcFwwIgotICAgICJYNTA5X0VYVEVOU0lPTl9jcmVhdGVfYnlfTklEXDAiCi0gICAgIlg1MDlfRVhURU5TSU9OX2NyZWF0ZV9ieV9PQkpcMCIKLSAgICAiWDUwOV9JTkZPX25ld1wwIgotICAgICJYNTA5X05BTUVfRU5UUllfY3JlYXRlX2J5X05JRFwwIgotICAgICJYNTA5X05BTUVfRU5UUllfY3JlYXRlX2J5X3R4dFwwIgotICAgICJYNTA5X05BTUVfRU5UUllfc2V0X29iamVjdFwwIgotICAgICJYNTA5X05BTUVfYWRkX2VudHJ5XDAiCi0gICAgIlg1MDlfTkFNRV9vbmVsaW5lXDAiCi0gICAgIlg1MDlfTkFNRV9wcmludFwwIgotICAgICJYNTA5X1BLRVlfbmV3XDAiCi0gICAgIlg1MDlfUFVCS0VZX2dldFwwIgotICAgICJYNTA5X1BVQktFWV9zZXRcMCIKLSAgICAiWDUwOV9SRVFfY2hlY2tfcHJpdmF0ZV9rZXlcMCIKLSAgICAiWDUwOV9SRVFfcHJpbnRfZXhcMCIKLSAgICAiWDUwOV9SRVFfcHJpbnRfZnBcMCIKLSAgICAiWDUwOV9SRVFfdG9fWDUwOVwwIgotICAgICJYNTA5X1NUT1JFX0NUWF9nZXQxX2lzc3VlclwwIgotICAgICJYNTA5X1NUT1JFX0NUWF9pbml0XDAiCi0gICAgIlg1MDlfU1RPUkVfQ1RYX25ld1wwIgotICAgICJYNTA5X1NUT1JFX0NUWF9wdXJwb3NlX2luaGVyaXRcMCIKLSAgICAiWDUwOV9TVE9SRV9hZGRfY2VydFwwIgotICAgICJYNTA5X1NUT1JFX2FkZF9jcmxcMCIKLSAgICAiWDUwOV9UUlVTVF9hZGRcMCIKLSAgICAiWDUwOV9UUlVTVF9zZXRcMCIKLSAgICAiWDUwOV9jaGVja19wcml2YXRlX2tleVwwIgotICAgICJYNTA5X2dldF9wdWJrZXlfcGFyYW1ldGVyc1wwIgotICAgICJYNTA5X2xvYWRfY2VydF9jcmxfZmlsZVwwIgotICAgICJYNTA5X2xvYWRfY2VydF9maWxlXDAiCi0gICAgIlg1MDlfbG9hZF9jcmxfZmlsZVwwIgotICAgICJYNTA5X3ByaW50X2V4X2ZwXDAiCi0gICAgIlg1MDlfdG9fWDUwOV9SRVFcMCIKLSAgICAiWDUwOV92ZXJpZnlfY2VydFwwIgotICAgICJYNTA5YXRfYWRkMV9hdHRyXDAiCi0gICAgIlg1MDl2M19hZGRfZXh0XDAiCi0gICAgImFkZF9jZXJ0X2RpclwwIgotICAgICJieV9maWxlX2N0cmxcMCIKLSAgICAiY2hlY2tfcG9saWN5XDAiCi0gICAgImRpcl9jdHJsXDAiCi0gICAgImdldF9jZXJ0X2J5X3N1YmplY3RcMCIKLSAgICAiaTJkX0RTQV9QVUJLRVlcMCIKLSAgICAiaTJkX0VDX1BVQktFWVwwIgotICAgICJpMmRfUlNBX1BVQktFWVwwIgotICAgICJwa2NzN19wYXJzZV9oZWFkZXJcMCIKLSAgICAieDUwOV9uYW1lX2VuY29kZVwwIgotICAgICJ4NTA5X25hbWVfZXhfZDJpXDAiCi0gICAgIng1MDlfbmFtZV9leF9uZXdcMCIKLSAgICAiU1hORVRfYWRkX2lkX0lOVEVHRVJcMCIKLSAgICAiU1hORVRfYWRkX2lkX2FzY1wwIgotICAgICJTWE5FVF9hZGRfaWRfdWxvbmdcMCIKLSAgICAiU1hORVRfZ2V0X2lkX2FzY1wwIgotICAgICJTWE5FVF9nZXRfaWRfdWxvbmdcMCIKLSAgICAiWDUwOVYzX0VYVF9hZGRcMCIKLSAgICAiWDUwOVYzX0VYVF9hZGRfYWxpYXNcMCIKLSAgICAiWDUwOVYzX0VYVF9mcmVlXDAiCi0gICAgIlg1MDlWM19FWFRfaTJkXDAiCi0gICAgIlg1MDlWM19FWFRfbmNvbmZcMCIKLSAgICAiWDUwOVYzX2FkZDFfaTJkXDAiCi0gICAgIlg1MDlWM19hZGRfdmFsdWVcMCIKLSAgICAiWDUwOVYzX2dldF9zZWN0aW9uXDAiCi0gICAgIlg1MDlWM19nZXRfc3RyaW5nXDAiCi0gICAgIlg1MDlWM19nZXRfdmFsdWVfYm9vbFwwIgotICAgICJYNTA5VjNfcGFyc2VfbGlzdFwwIgotICAgICJYNTA5X1BVUlBPU0VfYWRkXDAiCi0gICAgIlg1MDlfUFVSUE9TRV9zZXRcMCIKLSAgICAiYTJpX0dFTkVSQUxfTkFNRVwwIgotICAgICJjb3B5X2VtYWlsXDAiCi0gICAgImNvcHlfaXNzdWVyXDAiCi0gICAgImRvX2Rpcm5hbWVcMCIKLSAgICAiZG9fZXh0X2kyZFwwIgotICAgICJkb19leHRfbmNvbmZcMCIKLSAgICAiZ25hbWVzX2Zyb21fc2VjdG5hbWVcMCIKLSAgICAiaGV4X3RvX3N0cmluZ1wwIgotICAgICJpMnNfQVNOMV9FTlVNRVJBVEVEXDAiCi0gICAgImkyc19BU04xX0lBNVNUUklOR1wwIgotICAgICJpMnNfQVNOMV9JTlRFR0VSXDAiCi0gICAgImkydl9BVVRIT1JJVFlfSU5GT19BQ0NFU1NcMCIKLSAgICAibm90aWNlX3NlY3Rpb25cMCIKLSAgICAibnJlZl9ub3NcMCIKLSAgICAicG9saWN5X3NlY3Rpb25cMCIKLSAgICAicHJvY2Vzc19wY2lfdmFsdWVcMCIKLSAgICAicjJpX2NlcnRwb2xcMCIKLSAgICAicjJpX3BjaVwwIgotICAgICJzMmlfQVNOMV9JQTVTVFJJTkdcMCIKLSAgICAiczJpX0FTTjFfSU5URUdFUlwwIgotICAgICJzMmlfQVNOMV9PQ1RFVF9TVFJJTkdcMCIKLSAgICAiczJpX3NrZXlfaWRcMCIKLSAgICAic2V0X2Rpc3RfcG9pbnRfbmFtZVwwIgotICAgICJzdHJpbmdfdG9faGV4XDAiCi0gICAgInYyaV9BU04xX0JJVF9TVFJJTkdcMCIKLSAgICAidjJpX0FVVEhPUklUWV9JTkZPX0FDQ0VTU1wwIgotICAgICJ2MmlfQVVUSE9SSVRZX0tFWUlEXDAiCi0gICAgInYyaV9CQVNJQ19DT05TVFJBSU5UU1wwIgotICAgICJ2MmlfRVhURU5ERURfS0VZX1VTQUdFXDAiCi0gICAgInYyaV9HRU5FUkFMX05BTUVTXDAiCi0gICAgInYyaV9HRU5FUkFMX05BTUVfZXhcMCIKLSAgICAidjJpX05BTUVfQ09OU1RSQUlOVFNcMCIKLSAgICAidjJpX1BPTElDWV9DT05TVFJBSU5UU1wwIgotICAgICJ2MmlfUE9MSUNZX01BUFBJTkdTXDAiCi0gICAgInYyaV9jcmxkXDAiCi0gICAgInYyaV9pZHBcMCIKLSAgICAidjJpX2lzc3Vlcl9hbHRcMCIKLSAgICAidjJpX3N1YmplY3RfYWx0XDAiCi0gICAgInYzX2dlbmVyaWNfZXh0ZW5zaW9uXDAiCi0gICAgIiI7Ci0KIGNvbnN0IHVpbnQzMl90IGtPcGVuU1NMUmVhc29uVmFsdWVzW10gPSB7Ci0gICAgMHhjMzIwN2JhLAotICAgIDB4YzMyODdjNywKLSAgICAweGMzMzA3ZDYsCi0gICAgMHhjMzM4N2U2LAotICAgIDB4YzM0MDdmNSwKLSAgICAweGMzNDg4MGUsCi0gICAgMHhjMzUwODFhLAotICAgIDB4YzM1ODgzNywKLSAgICAweGMzNjA4NDksCi0gICAgMHhjMzY4ODU3LAotICAgIDB4YzM3MDg2NywKLSAgICAweGMzNzg4NzQsCi0gICAgMHhjMzgwODg0LAotICAgIDB4YzM4ODg4ZiwKLSAgICAweGMzOTA4YTUsCi0gICAgMHhjMzk4OGI0LAotICAgIDB4YzNhMDhjOCwKLSAgICAweDEwMzIxNDZiLAotICAgIDB4MTAzMjk0NzcsCi0gICAgMHgxMDMzMTQ5MCwKLSAgICAweDEwMzM5NGEzLAotICAgIDB4MTAzNDBkZDQsCi0gICAgMHgxMDM0OTRiNiwKLSAgICAweDEwMzUxNGNiLAotICAgIDB4MTAzNTk0ZmQsCi0gICAgMHgxMDM2MTUxNiwKLSAgICAweDEwMzY5NTJiLAotICAgIDB4MTAzNzE1NDksCi0gICAgMHgxMDM3OTU1OCwKLSAgICAweDEwMzgxNTc0LAotICAgIDB4MTAzODk1OGYsCi0gICAgMHgxMDM5MTU5ZSwKLSAgICAweDEwMzk5NWJhLAotICAgIDB4MTAzYTE1ZDUsCi0gICAgMHgxMDNhOTVlYywKLSAgICAweDEwM2IxNWZkLAotICAgIDB4MTAzYjk2MTEsCi0gICAgMHgxMDNjMTYzMCwKLSAgICAweDEwM2M5NjNmLAotICAgIDB4MTAzZDE2NTYsCi0gICAgMHgxMDNkOTY2OSwKLSAgICAweDEwM2UwYjVmLAotICAgIDB4MTAzZTk2OWEsCi0gICAgMHgxMDNmMTZhZCwKLSAgICAweDEwM2Y5NmM3LAotICAgIDB4MTA0MDE2ZDcsCi0gICAgMHgxMDQwOTZlYiwKLSAgICAweDEwNDExNzAxLAotICAgIDB4MTA0MTk3MTksCi0gICAgMHgxMDQyMTcyZSwKLSAgICAweDEwNDI5NzQyLAotICAgIDB4MTA0MzE3NTQsCi0gICAgMHgxMDQzODVkMCwKLSAgICAweDEwNDQwOGI0LAotICAgIDB4MTA0NDk3NjksCi0gICAgMHgxMDQ1MTc4MCwKLSAgICAweDEwNDU5Nzk1LAotICAgIDB4MTA0NjE3YTMsCi0gICAgMHgxMDQ2OTY3YywKLSAgICAweDEwNDcxNGRlLAotICAgIDB4MTQzMjBiNDIsCi0gICAgMHgxNDMyOGI1MCwKLSAgICAweDE0MzMwYjVmLAotICAgIDB4MTQzMzhiNzEsCisgICAgMHhjMzIwODM4LAorICAgIDB4YzMyODg1MiwKKyAgICAweGMzMzA4NjEsCisgICAgMHhjMzM4ODcxLAorICAgIDB4YzM0MDg4MCwKKyAgICAweGMzNDg4OTksCisgICAgMHhjMzUwOGE1LAorICAgIDB4YzM1ODhjMiwKKyAgICAweGMzNjA4ZDQsCisgICAgMHhjMzY4OGUyLAorICAgIDB4YzM3MDhmMiwKKyAgICAweGMzNzg4ZmYsCisgICAgMHhjMzgwOTBmLAorICAgIDB4YzM4ODkxYSwKKyAgICAweGMzOTA5MzAsCisgICAgMHhjMzk4OTNmLAorICAgIDB4YzNhMDk1MywKKyAgICAweGMzYTg4NDUsCisgICAgMHhjM2IwMGVhLAorICAgIDB4MTAzMjA4NDUsCisgICAgMHgxMDMyOTNhYiwKKyAgICAweDEwMzMxM2I3LAorICAgIDB4MTAzMzkzZDAsCisgICAgMHgxMDM0MTNlMywKKyAgICAweDEwMzQ4ZThiLAorICAgIDB4MTAzNTBjMTksCisgICAgMHgxMDM1OTNmNiwKKyAgICAweDEwMzYxNDBiLAorICAgIDB4MTAzNjk0MWUsCisgICAgMHgxMDM3MTQzZCwKKyAgICAweDEwMzc5NDU2LAorICAgIDB4MTAzODE0NmIsCisgICAgMHgxMDM4OTQ4OSwKKyAgICAweDEwMzkxNDk4LAorICAgIDB4MTAzOTk0YjQsCisgICAgMHgxMDNhMTRjZiwKKyAgICAweDEwM2E5NGRlLAorICAgIDB4MTAzYjE0ZmEsCisgICAgMHgxMDNiOTUxNSwKKyAgICAweDEwM2MxNTJjLAorICAgIDB4MTAzYzgwZWEsCisgICAgMHgxMDNkMTUzZCwKKyAgICAweDEwM2Q5NTUxLAorICAgIDB4MTAzZTE1NzAsCisgICAgMHgxMDNlOTU3ZiwKKyAgICAweDEwM2YxNTk2LAorICAgIDB4MTAzZjk1YTksCisgICAgMHgxMDQwMGJlYSwKKyAgICAweDEwNDA5NWJjLAorICAgIDB4MTA0MTE1ZGEsCisgICAgMHgxMDQxOTVlZCwKKyAgICAweDEwNDIxNjA3LAorICAgIDB4MTA0Mjk2MTcsCisgICAgMHgxMDQzMTYyYiwKKyAgICAweDEwNDM5NjQxLAorICAgIDB4MTA0NDE2NTksCisgICAgMHgxMDQ0OTY2ZSwKKyAgICAweDEwNDUxNjgyLAorICAgIDB4MTA0NTk2OTQsCisgICAgMHgxMDQ2MDVmYiwKKyAgICAweDEwNDY4OTNmLAorICAgIDB4MTA0NzE2YTksCisgICAgMHgxMDQ3OTZjMCwKKyAgICAweDEwNDgxNmQ1LAorICAgIDB4MTA0ODk2ZTMsCisgICAgMHgxNDMyMGJjZCwKKyAgICAweDE0MzI4YmRiLAorICAgIDB4MTQzMzBiZWEsCisgICAgMHgxNDMzOGJmYywKKyAgICAweDE0MzQwMGFjLAorICAgIDB4MTQzNDgwZWEsCiAgICAgMHgxODMyMDA4MywKLSAgICAweDE4MzI4ZTNhLAotICAgIDB4MTgzNDBlNjgsCi0gICAgMHgxODM0OGU3YywKLSAgICAweDE4MzU4ZWIzLAotICAgIDB4MTgzNjhlZTAsCi0gICAgMHgxODM3MGVmMywKLSAgICAweDE4Mzc4ZjA3LAotICAgIDB4MTgzODBmMmIsCi0gICAgMHgxODM4OGYzOSwKLSAgICAweDE4MzkwZjRmLAotICAgIDB4MTgzOThmNjMsCi0gICAgMHgxODNhMGY3MywKLSAgICAweDE4M2IwZjgzLAotICAgIDB4MTgzYjhmOTgsCi0gICAgMHgxODNjOGZjMywKLSAgICAweDE4M2QwZmQ3LAotICAgIDB4MTgzZDhmZTcsCi0gICAgMHgxODNlMGI4ZSwKLSAgICAweDE4M2U4ZmY0LAotICAgIDB4MTgzZjEwMDYsCi0gICAgMHgxODNmOTAxMSwKLSAgICAweDE4NDAxMDIxLAotICAgIDB4MTg0MDkwMzIsCi0gICAgMHgxODQxMTA0MywKLSAgICAweDE4NDE5MDU1LAotICAgIDB4MTg0MjEwN2UsCi0gICAgMHgxODQyOTBiMCwKLSAgICAweDE4NDMxMGJmLAotICAgIDB4MTg0NTExMjgsCi0gICAgMHgxODQ1OTEzZSwKLSAgICAweDE4NDYxMTU5LAotICAgIDB4MTg0NjhlY2IsCi0gICAgMHgxODQ3MDljYywKLSAgICAweDE4NDc4MDk0LAotICAgIDB4MTg0ODBmYWYsCi0gICAgMHgxODQ4OTBmNCwKLSAgICAweDE4NDkwZTUwLAotICAgIDB4MTg0OThlOTEsCi0gICAgMHgxODRhMTE4ZiwKLSAgICAweDE4NGE5MTBjLAotICAgIDB4MTg0YjEwZDMsCi0gICAgMHgxODRiOGUyYSwKLSAgICAweDE4NGMxMDk3LAotICAgIDB4MTg0Yzg2NmIsCi0gICAgMHgxODRkMTE3NCwKLSAgICAweDIwMzIxMWI2LAotICAgIDB4MjQzMjExYzIsCi0gICAgMHgyNDMyODhmYSwKLSAgICAweDI0MzMxMWQ0LAotICAgIDB4MjQzMzkxZTEsCi0gICAgMHgyNDM0MTFlZSwKLSAgICAweDI0MzQ5MjAwLAotICAgIDB4MjQzNTEyMGYsCi0gICAgMHgyNDM1OTIyYywKLSAgICAweDI0MzYxMjM5LAotICAgIDB4MjQzNjkyNDcsCi0gICAgMHgyNDM3MTI1NSwKLSAgICAweDI0Mzc5MjYzLAotICAgIDB4MjQzODEyNmMsCi0gICAgMHgyNDM4OTI3OSwKLSAgICAweDI0MzkxMjhjLAotICAgIDB4MjgzMjBiODIsCi0gICAgMHgyODMyOGI4ZSwKLSAgICAweDI4MzMwYjVmLAotICAgIDB4MjgzMzhiYTEsCi0gICAgMHgyYzMyMmIwOCwKLSAgICAweDJjMzJhYjE2LAotICAgIDB4MmMzMzJiMjgsCi0gICAgMHgyYzMzYWIzYSwKLSAgICAweDJjMzQyYjRlLAotICAgIDB4MmMzNGFiNjAsCi0gICAgMHgyYzM1MmI3YiwKLSAgICAweDJjMzVhYjhkLAotICAgIDB4MmMzNjJiYTAsCi0gICAgMHgyYzM2ODJmMywKLSAgICAweDJjMzcyYmFkLAotICAgIDB4MmMzN2FiYmYsCi0gICAgMHgyYzM4MmJkMiwKLSAgICAweDJjMzhhYmUwLAotICAgIDB4MmMzOTJiZjAsCi0gICAgMHgyYzM5YWMwMiwKLSAgICAweDJjM2EyYzE2LAotICAgIDB4MmMzYWFjMjcsCi0gICAgMHgyYzNiMTM0YywKLSAgICAweDJjM2JhYzM4LAotICAgIDB4MmMzYzJjNGMsCi0gICAgMHgyYzNjYWM2MiwKLSAgICAweDJjM2QyYzdiLAotICAgIDB4MmMzZGFjYTksCi0gICAgMHgyYzNlMmNiNywKLSAgICAweDJjM2VhY2NmLAotICAgIDB4MmMzZjJjZTcsCi0gICAgMHgyYzNmYWNmNCwKLSAgICAweDJjNDAyZDE3LAotICAgIDB4MmM0MGFkMzYsCi0gICAgMHgyYzQxMTFiNiwKLSAgICAweDJjNDFhZDQ3LAotICAgIDB4MmM0MjJkNWEsCi0gICAgMHgyYzQyOTEyOCwKLSAgICAweDJjNDMyZDZiLAotICAgIDB4MmM0Mzg2YTIsCi0gICAgMHgyYzQ0MmM5OCwKKyAgICAweDE4MzI4ZWUxLAorICAgIDB4MTgzMzAwYWMsCisgICAgMHgxODMzOGVmNywKKyAgICAweDE4MzQwZjBiLAorICAgIDB4MTgzNDgwZWEsCisgICAgMHgxODM1MGYyMCwKKyAgICAweDE4MzU4ZjM4LAorICAgIDB4MTgzNjBmNGQsCisgICAgMHgxODM2OGY2MSwKKyAgICAweDE4MzcwZjg1LAorICAgIDB4MTgzNzhmOWIsCisgICAgMHgxODM4MGZhZiwKKyAgICAweDE4Mzg4ZmJmLAorICAgIDB4MTgzOTBhNTcsCisgICAgMHgxODM5OGZjZiwKKyAgICAweDE4M2EwZmU0LAorICAgIDB4MTgzYThmZjgsCisgICAgMHgxODNiMGMyNSwKKyAgICAweDE4M2I5MDA1LAorICAgIDB4MTgzYzEwMTcsCisgICAgMHgxODNjOTAyMiwKKyAgICAweDE4M2QxMDMyLAorICAgIDB4MTgzZDkwNDMsCisgICAgMHgxODNlMTA1NCwKKyAgICAweDE4M2U5MDY2LAorICAgIDB4MTgzZjEwOGYsCisgICAgMHgxODNmOTBhOCwKKyAgICAweDE4NDAxMGMwLAorICAgIDB4MTg0MDg2ZDMsCisgICAgMHgyMDMyMTBlNywKKyAgICAweDI0MzIxMGYzLAorICAgIDB4MjQzMjg5ODUsCisgICAgMHgyNDMzMTEwNSwKKyAgICAweDI0MzM5MTEyLAorICAgIDB4MjQzNDExMWYsCisgICAgMHgyNDM0OTEzMSwKKyAgICAweDI0MzUxMTQwLAorICAgIDB4MjQzNTkxNWQsCisgICAgMHgyNDM2MTE2YSwKKyAgICAweDI0MzY5MTc4LAorICAgIDB4MjQzNzExODYsCisgICAgMHgyNDM3OTE5NCwKKyAgICAweDI0MzgxMTlkLAorICAgIDB4MjQzODkxYWEsCisgICAgMHgyNDM5MTFiZCwKKyAgICAweDI4MzIwYzBkLAorICAgIDB4MjgzMjhjMjUsCisgICAgMHgyODMzMGJlYSwKKyAgICAweDI4MzM4YzM4LAorICAgIDB4MjgzNDBjMTksCisgICAgMHgyODM0ODBhYywKKyAgICAweDI4MzUwMGVhLAorICAgIDB4MmMzMjI3Y2IsCisgICAgMHgyYzMyYTdkOSwKKyAgICAweDJjMzMyN2ViLAorICAgIDB4MmMzM2E3ZmQsCisgICAgMHgyYzM0MjgxMSwKKyAgICAweDJjMzRhODIzLAorICAgIDB4MmMzNTI4M2UsCisgICAgMHgyYzM1YTg1MCwKKyAgICAweDJjMzYyODYzLAorICAgIDB4MmMzNjgzMmQsCisgICAgMHgyYzM3Mjg3MCwKKyAgICAweDJjMzdhODgyLAorICAgIDB4MmMzODI4OTUsCisgICAgMHgyYzM4YThhYywKKyAgICAweDJjMzkyOGJhLAorICAgIDB4MmMzOWE4Y2EsCisgICAgMHgyYzNhMjhkYywKKyAgICAweDJjM2FhOGYwLAorICAgIDB4MmMzYjI5MDEsCisgICAgMHgyYzNiYTkyMCwKKyAgICAweDJjM2MyOTM0LAorICAgIDB4MmMzY2E5NGEsCisgICAgMHgyYzNkMjk2MywKKyAgICAweDJjM2RhOTgwLAorICAgIDB4MmMzZTI5OTEsCisgICAgMHgyYzNlYTk5ZiwKKyAgICAweDJjM2YyOWI3LAorICAgIDB4MmMzZmE5Y2YsCisgICAgMHgyYzQwMjlkYywKKyAgICAweDJjNDA5MGU3LAorICAgIDB4MmM0MTI5ZWQsCisgICAgMHgyYzQxYWEwMCwKKyAgICAweDJjNDIxMGMwLAorICAgIDB4MmM0MmFhMTEsCisgICAgMHgyYzQzMDcyMCwKKyAgICAweDJjNDNhOTEyLAogICAgIDB4MzAzMjAwMDAsCiAgICAgMHgzMDMyODAxNSwKICAgICAweDMwMzMwMDFmLApAQCAtMTYwNiw0NjkgKzIyMyw0NTQgQEAKICAgICAweDMwMzUwMDZiLAogICAgIDB4MzAzNTgwODMsCiAgICAgMHgzMDM2MDA5NCwKLSAgICAweDMwMzY4MGExLAotICAgIDB4MzAzNzAwYjAsCi0gICAgMHgzMDM3ODBiZCwKLSAgICAweDMwMzgwMGQwLAotICAgIDB4MzAzODgwZWIsCi0gICAgMHgzMDM5MDEwMCwKLSAgICAweDMwMzk4MTE0LAotICAgIDB4MzAzYTAxMjgsCi0gICAgMHgzMDNhODEzOSwKLSAgICAweDMwM2IwMTUyLAotICAgIDB4MzAzYjgxNmYsCi0gICAgMHgzMDNjMDE3ZCwKLSAgICAweDMwM2M4MTkxLAotICAgIDB4MzAzZDAxYTEsCi0gICAgMHgzMDNkODFiYSwKLSAgICAweDMwM2UwMWNhLAotICAgIDB4MzAzZTgxZGQsCi0gICAgMHgzMDNmMDFlYywKLSAgICAweDMwM2Y4MWY4LAotICAgIDB4MzA0MDAyMGQsCi0gICAgMHgzMDQwODIxZCwKLSAgICAweDMwNDEwMjM0LAotICAgIDB4MzA0MTgyNDEsCi0gICAgMHgzMDQyMDI1NCwKLSAgICAweDMwNDI4MjYzLAotICAgIDB4MzA0MzAyNzgsCi0gICAgMHgzMDQzODI5OSwKLSAgICAweDMwNDQwMmFjLAotICAgIDB4MzA0NDgyYmYsCi0gICAgMHgzMDQ1MDJkOCwKLSAgICAweDMwNDU4MmYzLAotICAgIDB4MzA0NjAzMTAsCi0gICAgMHgzMDQ2ODMyOSwKLSAgICAweDMwNDcwMzM3LAotICAgIDB4MzA0NzgzNDgsCi0gICAgMHgzMDQ4MDM1NywKLSAgICAweDMwNDg4MzZmLAotICAgIDB4MzA0OTAzODEsCi0gICAgMHgzMDQ5ODM5NSwKLSAgICAweDMwNGEwM2I0LAotICAgIDB4MzA0YTgzYzcsCi0gICAgMHgzMDRiMDNkMiwKLSAgICAweDMwNGI4M2UxLAotICAgIDB4MzA0YzAzZjIsCi0gICAgMHgzMDRjODNmZSwKLSAgICAweDMwNGQwNDE0LAotICAgIDB4MzA0ZDg0MjIsCi0gICAgMHgzMDRlMDQzOCwKLSAgICAweDMwNGU4NDRhLAotICAgIDB4MzA0ZjA0NWMsCi0gICAgMHgzMDRmODQ2ZiwKLSAgICAweDMwNTAwNDgyLAotICAgIDB4MzA1MDg0OTMsCi0gICAgMHgzMDUxMDRhMywKLSAgICAweDMwNTE4NGJiLAotICAgIDB4MzA1MjA0ZDAsCi0gICAgMHgzMDUyODRlOCwKLSAgICAweDMwNTMwNGZjLAotICAgIDB4MzA1Mzg1MTQsCi0gICAgMHgzMDU0MDUyZCwKLSAgICAweDMwNTQ4NTQ2LAotICAgIDB4MzA1NTA1NjMsCi0gICAgMHgzMDU1ODU2ZSwKLSAgICAweDMwNTYwNTg2LAotICAgIDB4MzA1Njg1OTYsCi0gICAgMHgzMDU3MDVhNywKLSAgICAweDMwNTc4NWJhLAotICAgIDB4MzA1ODA1ZDAsCi0gICAgMHgzMDU4ODVkOSwKLSAgICAweDMwNTkwNWVlLAotICAgIDB4MzA1OTg2MDEsCi0gICAgMHgzMDVhMDYxMCwKLSAgICAweDMwNWE4NjMwLAotICAgIDB4MzA1YjA2M2YsCi0gICAgMHgzMDViODY0YiwKLSAgICAweDMwNWMwNjZiLAotICAgIDB4MzA1Yzg2ODcsCi0gICAgMHgzMDVkMDY5OCwKLSAgICAweDMwNWQ4NmEyLAotICAgIDB4MzQzMjBhYmMsCi0gICAgMHgzNDMyOGFkMCwKLSAgICAweDM0MzMwYWVkLAotICAgIDB4MzQzMzhiMDAsCi0gICAgMHgzNDM0MGIwZiwKLSAgICAweDM0MzQ4YjJjLAorICAgIDB4MzAzNjgwYWMsCisgICAgMHgzMDM3MDBiOSwKKyAgICAweDMwMzc4MGM4LAorICAgIDB4MzAzODAwZWEsCisgICAgMHgzMDM4ODBmNywKKyAgICAweDMwMzkwMTBhLAorICAgIDB4MzAzOTgxMjUsCisgICAgMHgzMDNhMDEzYSwKKyAgICAweDMwM2E4MTRlLAorICAgIDB4MzAzYjAxNjIsCisgICAgMHgzMDNiODE3MywKKyAgICAweDMwM2MwMThjLAorICAgIDB4MzAzYzgxYTksCisgICAgMHgzMDNkMDFiNywKKyAgICAweDMwM2Q4MWNiLAorICAgIDB4MzAzZTAxZGIsCisgICAgMHgzMDNlODFmNCwKKyAgICAweDMwM2YwMjA0LAorICAgIDB4MzAzZjgyMTcsCisgICAgMHgzMDQwMDIyNiwKKyAgICAweDMwNDA4MjMyLAorICAgIDB4MzA0MTAyNDcsCisgICAgMHgzMDQxODI1NywKKyAgICAweDMwNDIwMjZlLAorICAgIDB4MzA0MjgyN2IsCisgICAgMHgzMDQzMDI4ZSwKKyAgICAweDMwNDM4MjlkLAorICAgIDB4MzA0NDAyYjIsCisgICAgMHgzMDQ0ODJkMywKKyAgICAweDMwNDUwMmU2LAorICAgIDB4MzA0NTgyZjksCisgICAgMHgzMDQ2MDMxMiwKKyAgICAweDMwNDY4MzJkLAorICAgIDB4MzA0NzAzNGEsCisgICAgMHgzMDQ3ODM2MywKKyAgICAweDMwNDgwMzcxLAorICAgIDB4MzA0ODgzODIsCisgICAgMHgzMDQ5MDM5MSwKKyAgICAweDMwNDk4M2E5LAorICAgIDB4MzA0YTAzYmIsCisgICAgMHgzMDRhODNjZiwKKyAgICAweDMwNGIwM2VlLAorICAgIDB4MzA0Yjg0MDEsCisgICAgMHgzMDRjMDQwYywKKyAgICAweDMwNGM4NDFkLAorICAgIDB4MzA0ZDA0MjksCisgICAgMHgzMDRkODQzZiwKKyAgICAweDMwNGUwNDRkLAorICAgIDB4MzA0ZTg0NjMsCisgICAgMHgzMDRmMDQ3NSwKKyAgICAweDMwNGY4NDg3LAorICAgIDB4MzA1MDA0OWEsCisgICAgMHgzMDUwODRhZCwKKyAgICAweDMwNTEwNGJlLAorICAgIDB4MzA1MTg0Y2UsCisgICAgMHgzMDUyMDRlNiwKKyAgICAweDMwNTI4NGZiLAorICAgIDB4MzA1MzA1MTMsCisgICAgMHgzMDUzODUyNywKKyAgICAweDMwNTQwNTNmLAorICAgIDB4MzA1NDg1NTgsCisgICAgMHgzMDU1MDU3MSwKKyAgICAweDMwNTU4NThlLAorICAgIDB4MzA1NjA1OTksCisgICAgMHgzMDU2ODViMSwKKyAgICAweDMwNTcwNWMxLAorICAgIDB4MzA1Nzg1ZDIsCisgICAgMHgzMDU4MDVlNSwKKyAgICAweDMwNTg4NWZiLAorICAgIDB4MzA1OTA2MDQsCisgICAgMHgzMDU5ODYxOSwKKyAgICAweDMwNWEwNjJjLAorICAgIDB4MzA1YTg2M2IsCisgICAgMHgzMDViMDY1YiwKKyAgICAweDMwNWI4NjZhLAorICAgIDB4MzA1YzA2OGIsCisgICAgMHgzMDVjODZhNywKKyAgICAweDMwNWQwNmIzLAorICAgIDB4MzA1ZDg2ZDMsCisgICAgMHgzMDVlMDZlZiwKKyAgICAweDMwNWU4NzAwLAorICAgIDB4MzA1ZjA3MTYsCisgICAgMHgzMDVmODcyMCwKKyAgICAweDM0MzIwYjQ3LAorICAgIDB4MzQzMjhiNWIsCisgICAgMHgzNDMzMGI3OCwKKyAgICAweDM0MzM4YjhiLAorICAgIDB4MzQzNDBiOWEsCisgICAgMHgzNDM0OGJiNywKICAgICAweDNjMzIwMDgzLAotICAgIDB4M2MzMjhiY2IsCi0gICAgMHgzYzMzMGJlNCwKLSAgICAweDNjMzM4YmZmLAotICAgIDB4M2MzNDBjMWMsCi0gICAgMHgzYzM0OGMzNywKLSAgICAweDNjMzUwYzUyLAotICAgIDB4M2MzNThjNjcsCi0gICAgMHgzYzM2MGM4MCwKLSAgICAweDNjMzY4Yzk4LAotICAgIDB4M2MzNzBjYTksCi0gICAgMHgzYzM3OGNiNywKLSAgICAweDNjMzgwY2M0LAotICAgIDB4M2MzODhjZDgsCi0gICAgMHgzYzM5MGI4ZSwKLSAgICAweDNjMzk4Y2VjLAotICAgIDB4M2MzYTBkMDAsCi0gICAgMHgzYzNhODg3NCwKLSAgICAweDNjM2IwZDEwLAotICAgIDB4M2MzYjhkMmIsCi0gICAgMHgzYzNjMGQzZCwKLSAgICAweDNjM2M4ZDUzLAotICAgIDB4M2MzZDBkNWQsCi0gICAgMHgzYzNkOGQ3MSwKLSAgICAweDNjM2UwZDdmLAotICAgIDB4M2MzZThkYTQsCi0gICAgMHgzYzNmMGJiNywKLSAgICAweDNjM2Y4ZDhkLAotICAgIDB4NDAzMjE3YmEsCi0gICAgMHg0MDMyOTdkMCwKLSAgICAweDQwMzMxN2ZlLAotICAgIDB4NDAzMzk4MDgsCi0gICAgMHg0MDM0MTgxZiwKLSAgICAweDQwMzQ5ODNkLAotICAgIDB4NDAzNTE4NGQsCi0gICAgMHg0MDM1OTg1ZiwKLSAgICAweDQwMzYxODZjLAotICAgIDB4NDAzNjk4NzgsCi0gICAgMHg0MDM3MTg4ZCwKLSAgICAweDQwMzc5OGEyLAotICAgIDB4NDAzODE4YjQsCi0gICAgMHg0MDM4OThiZiwKLSAgICAweDQwMzkxOGQxLAotICAgIDB4NDAzOThkZDQsCi0gICAgMHg0MDNhMThlMSwKLSAgICAweDQwM2E5OGY0LAotICAgIDB4NDAzYjE5MTUsCi0gICAgMHg0MDNiOTkyNiwKLSAgICAweDQwM2MxOTM2LAotICAgIDB4NDAzYzgwNjQsCi0gICAgMHg0MDNkMTk0MiwKLSAgICAweDQwM2Q5OTVlLAotICAgIDB4NDAzZTE5NzQsCi0gICAgMHg0MDNlOTk4MywKLSAgICAweDQwM2YxOTk2LAotICAgIDB4NDAzZjk5YjAsCi0gICAgMHg0MDQwMTliZSwKLSAgICAweDQwNDA5OWQzLAotICAgIDB4NDA0MTE5ZTcsCi0gICAgMHg0MDQxOWEwNCwKLSAgICAweDQwNDIxYTFkLAotICAgIDB4NDA0MjlhMzgsCi0gICAgMHg0MDQzMWE1MSwKLSAgICAweDQwNDM5YTY0LAotICAgIDB4NDA0NDFhNzgsCi0gICAgMHg0MDQ0OWE5MCwKLSAgICAweDQwNDUxYWEwLAotICAgIDB4NDA0NTlhYWUsCi0gICAgMHg0MDQ2MWFjYywKLSAgICAweDQwNDY4MDk0LAotICAgIDB4NDA0NzFhZTEsCi0gICAgMHg0MDQ3OWFmMywKLSAgICAweDQwNDgxYjE3LAotICAgIDB4NDA0ODliMzcsCi0gICAgMHg0MDQ5MWI0YiwKLSAgICAweDQwNDk5YjYwLAotICAgIDB4NDA0YTFiNzksCi0gICAgMHg0MDRhOWJiMywKLSAgICAweDQwNGIxYmNkLAotICAgIDB4NDA0YjliZWIsCi0gICAgMHg0MDRjMWMwNiwKLSAgICAweDQwNGM5YzIwLAotICAgIDB4NDA0ZDFjMzcsCi0gICAgMHg0MDRkOWM1ZiwKLSAgICAweDQwNGUxYzc2LAotICAgIDB4NDA0ZTljOTIsCi0gICAgMHg0MDRmMWNhZSwKLSAgICAweDQwNGY5Y2NmLAotICAgIDB4NDA1MDFjZjEsCi0gICAgMHg0MDUwOWQwZCwKLSAgICAweDQwNTExZDIxLAotICAgIDB4NDA1MTlkMmUsCi0gICAgMHg0MDUyMWQ0NSwKLSAgICAweDQwNTI5ZDU1LAotICAgIDB4NDA1MzFkNjUsCi0gICAgMHg0MDUzOWQ3OSwKLSAgICAweDQwNTQxZDk0LAotICAgIDB4NDA1NDlkYTQsCi0gICAgMHg0MDU1MWRiYiwKLSAgICAweDQwNTU5ZGNhLAotICAgIDB4NDA1NjFkZTUsCi0gICAgMHg0MDU2OWRmZCwKLSAgICAweDQwNTcxZTE5LAotICAgIDB4NDA1NzllMzIsCi0gICAgMHg0MDU4MWU0NSwKLSAgICAweDQwNTg5ZTVhLAotICAgIDB4NDA1OTFlN2QsCi0gICAgMHg0MDU5OWU4YiwKLSAgICAweDQwNWExZTk4LAotICAgIDB4NDA1YTllYjEsCi0gICAgMHg0MDViMWVjOSwKLSAgICAweDQwNWI5ZWRjLAotICAgIDB4NDA1YzFlZjEsCi0gICAgMHg0MDVjOWYwMywKLSAgICAweDQwNWQxZjE4LAotICAgIDB4NDA1ZDlmMjgsCi0gICAgMHg0MDVlMWY0MSwKLSAgICAweDQwNWU5ZjU1LAotICAgIDB4NDA1ZjFmNjUsCi0gICAgMHg0MDVmOWY3ZCwKLSAgICAweDQwNjAxZjhlLAotICAgIDB4NDA2MDlmYTEsCi0gICAgMHg0MDYxMWZiMiwKLSAgICAweDQwNjE5ZmQwLAotICAgIDB4NDA2MjFmZTEsCi0gICAgMHg0MDYyOWZlZSwKLSAgICAweDQwNjMyMDA1LAotICAgIDB4NDA2M2EwNDYsCi0gICAgMHg0MDY0MjA1ZCwKLSAgICAweDQwNjRhMDZhLAotICAgIDB4NDA2NTIwNzgsCi0gICAgMHg0MDY1YTA5YSwKLSAgICAweDQwNjYyMGMyLAotICAgIDB4NDA2NmEwZDcsCi0gICAgMHg0MDY3MjBlZSwKLSAgICAweDQwNjdhMGZmLAotICAgIDB4NDA2ODIxMTAsCi0gICAgMHg0MDY4YTEyMSwKLSAgICAweDQwNjkyMTM2LAotICAgIDB4NDA2OWExNGQsCi0gICAgMHg0MDZhMjE1ZSwKLSAgICAweDQwNmFhMTc3LAotICAgIDB4NDA2YjIxOTIsCi0gICAgMHg0MDZiYTFhOSwKLSAgICAweDQwNmMyMjE2LAotICAgIDB4NDA2Y2EyMzcsCi0gICAgMHg0MDZkMjI0YSwKLSAgICAweDQwNmRhMjZiLAotICAgIDB4NDA2ZTIyODYsCi0gICAgMHg0MDZlYTJhMSwKLSAgICAweDQwNmYyMmMyLAotICAgIDB4NDA2ZmEyZTgsCi0gICAgMHg0MDcwMjMwOCwKLSAgICAweDQwNzBhMzI0LAotICAgIDB4NDA3MTI0YjEsCi0gICAgMHg0MDcxYTRkNCwKLSAgICAweDQwNzIyNGVhLAotICAgIDB4NDA3MmE1MDksCi0gICAgMHg0MDczMjUyMSwKLSAgICAweDQwNzNhNTQxLAotICAgIDB4NDA3NDI3NmIsCi0gICAgMHg0MDc0YTc5MCwKLSAgICAweDQwNzUyN2FiLAotICAgIDB4NDA3NWE3Y2EsCi0gICAgMHg0MDc2MjdmOSwKLSAgICAweDQwNzZhODIxLAotICAgIDB4NDA3NzI4NTIsCi0gICAgMHg0MDc3YTg3MSwKLSAgICAweDQwNzgyODk2LAotICAgIDB4NDA3OGE4YWQsCi0gICAgMHg0MDc5MjhjMCwKLSAgICAweDQwNzlhOGRkLAotICAgIDB4NDA3YTA3ODIsCi0gICAgMHg0MDdhYThlZiwKLSAgICAweDQwN2IyOTAyLAotICAgIDB4NDA3YmE5MWIsCi0gICAgMHg0MDdjMjkzMywKLSAgICAweDQwN2M5MGIwLAotICAgIDB4NDA3ZDI5NDcsCi0gICAgMHg0MDdkYTk2MSwKLSAgICAweDQwN2UyOTcyLAotICAgIDB4NDA3ZWE5ODYsCi0gICAgMHg0MDdmMjk5NCwKLSAgICAweDQwN2ZhOWFmLAotICAgIDB4NDA4MDEyNzksCi0gICAgMHg0MDgwYTlkNCwKLSAgICAweDQwODEyOWY2LAotICAgIDB4NDA4MWFhMTEsCi0gICAgMHg0MDgyMmEyNiwKLSAgICAweDQwODJhYTNlLAotICAgIDB4NDA4MzJhNTYsCi0gICAgMHg0MDgzYWE2ZCwKLSAgICAweDQwODQyYTgzLAotICAgIDB4NDA4NGFhOGYsCi0gICAgMHg0MDg1MmFhMiwKLSAgICAweDQwODVhYWI3LAotICAgIDB4NDA4NjJhYzksCi0gICAgMHg0MDg2YWFkZSwKLSAgICAweDQwODcyYWU3LAotICAgIDB4NDA4NzljNGQsCi0gICAgMHg0MDg4MDA4MywKLSAgICAweDQwODhhMDI1LAotICAgIDB4NDA4OTBhMGEsCi0gICAgMHg0MDg5YTFjMSwKLSAgICAweDQwOGExYjljLAotICAgIDB4NDA4YWExZWIsCi0gICAgMHg0MDhiMjgzYSwKLSAgICAweDQxZjQyM2RjLAotICAgIDB4NDFmOTI0NmUsCi0gICAgMHg0MWZlMjM2MSwKLSAgICAweDQxZmVhNTkyLAotICAgIDB4NDFmZjI2ODMsCi0gICAgMHg0MjAzMjNmNSwKLSAgICAweDQyMDgyNDE3LAotICAgIDB4NDIwOGE0NTMsCi0gICAgMHg0MjA5MjM0NSwKLSAgICAweDQyMDlhNDhkLAotICAgIDB4NDIwYTIzOWMsCi0gICAgMHg0MjBhYTM3YywKLSAgICAweDQyMGIyM2JjLAotICAgIDB4NDIwYmE0MzUsCi0gICAgMHg0MjBjMjY5ZiwKLSAgICAweDQyMGNhNTVmLAotICAgIDB4NDIwZDI1NzksCi0gICAgMHg0MjBkYTViMCwKLSAgICAweDQyMTIyNWNhLAotICAgIDB4NDIxNzI2NjYsCi0gICAgMHg0MjE3YTYwYywKLSAgICAweDQyMWMyNjJlLAotICAgIDB4NDIxZjI1ZTksCi0gICAgMHg0MjIxMjZiNiwKLSAgICAweDQyMjYyNjQ5LAotICAgIDB4NDIyYjI3NGYsCi0gICAgMHg0MjJiYTcxOCwKLSAgICAweDQyMmMyNzM3LAotICAgIDB4NDIyY2E2ZjIsCi0gICAgMHg0MjJkMjZkMSwKLSAgICAweDQ0MzIwNmFkLAotICAgIDB4NDQzMjg2YmMsCi0gICAgMHg0NDMzMDZjOCwKLSAgICAweDQ0MzM4NmQ2LAotICAgIDB4NDQzNDA2ZTksCi0gICAgMHg0NDM0ODZmYSwKLSAgICAweDQ0MzUwNzAxLAotICAgIDB4NDQzNTg3MGIsCi0gICAgMHg0NDM2MDcxZSwKLSAgICAweDQ0MzY4NzM0LAotICAgIDB4NDQzNzA3NDYsCi0gICAgMHg0NDM3ODc1MywKLSAgICAweDQ0MzgwNzYyLAotICAgIDB4NDQzODg3NmEsCi0gICAgMHg0NDM5MDc4MiwKLSAgICAweDQ0Mzk4NzkwLAotICAgIDB4NDQzYTA3YTMsCi0gICAgMHg0YzMyMTJhMywKLSAgICAweDRjMzI5MmIzLAotICAgIDB4NGMzMzEyYzYsCi0gICAgMHg0YzMzOTJlNiwKLSAgICAweDRjMzQwMDk0LAotICAgIDB4NGMzNDgwYjAsCi0gICAgMHg0YzM1MTJmMiwKLSAgICAweDRjMzU5MzAwLAotICAgIDB4NGMzNjEzMWMsCi0gICAgMHg0YzM2OTMyZiwKLSAgICAweDRjMzcxMzNlLAotICAgIDB4NGMzNzkzNGMsCi0gICAgMHg0YzM4MTM2MSwKLSAgICAweDRjMzg5MzZkLAotICAgIDB4NGMzOTEzOGQsCi0gICAgMHg0YzM5OTNiNywKLSAgICAweDRjM2ExM2QwLAotICAgIDB4NGMzYTkzZTksCi0gICAgMHg0YzNiMDVkMCwKLSAgICAweDRjM2I5NDAyLAotICAgIDB4NGMzYzE0MTQsCi0gICAgMHg0YzNjOTQyMywKLSAgICAweDRjM2QxMGIwLAotICAgIDB4NGMzZDk0M2MsCi0gICAgMHg0YzNlMTQ0OSwKLSAgICAweDUwMzIyZDdkLAotICAgIDB4NTAzMmFkOGMsCi0gICAgMHg1MDMzMmQ5NywKLSAgICAweDUwMzNhZGE3LAotICAgIDB4NTAzNDJkYzAsCi0gICAgMHg1MDM0YWRkYSwKLSAgICAweDUwMzUyZGU4LAotICAgIDB4NTAzNWFkZmUsCi0gICAgMHg1MDM2MmUxMCwKLSAgICAweDUwMzZhZTI2LAotICAgIDB4NTAzNzJlM2YsCi0gICAgMHg1MDM3YWU1MiwKLSAgICAweDUwMzgyZTZhLAotICAgIDB4NTAzOGFlN2IsCi0gICAgMHg1MDM5MmU5MCwKLSAgICAweDUwMzlhZWE0LAotICAgIDB4NTAzYTJlYzQsCi0gICAgMHg1MDNhYWVkYSwKLSAgICAweDUwM2IyZWYyLAotICAgIDB4NTAzYmFmMDQsCi0gICAgMHg1MDNjMmYyMCwKLSAgICAweDUwM2NhZjM3LAotICAgIDB4NTAzZDJmNTAsCi0gICAgMHg1MDNkYWY2NiwKLSAgICAweDUwM2UyZjczLAotICAgIDB4NTAzZWFmODksCi0gICAgMHg1MDNmMmY5YiwKLSAgICAweDUwM2Y4MzQ4LAotICAgIDB4NTA0MDJmYWUsCi0gICAgMHg1MDQwYWZiZSwKLSAgICAweDUwNDEyZmQ4LAotICAgIDB4NTA0MWFmZTcsCi0gICAgMHg1MDQyMzAwMSwKLSAgICAweDUwNDJiMDFlLAotICAgIDB4NTA0MzMwMmUsCi0gICAgMHg1MDQzYjAzZSwKLSAgICAweDUwNDQzMDRkLAotICAgIDB4NTA0NDg0MTQsCi0gICAgMHg1MDQ1MzA2MSwKLSAgICAweDUwNDViMDdmLAotICAgIDB4NTA0NjMwOTIsCi0gICAgMHg1MDQ2YjBhOCwKLSAgICAweDUwNDczMGJhLAotICAgIDB4NTA0N2IwY2YsCi0gICAgMHg1MDQ4MzBmNSwKLSAgICAweDUwNDhiMTAzLAotICAgIDB4NTA0OTMxMTYsCi0gICAgMHg1MDQ5YjEyYiwKLSAgICAweDUwNGEzMTQxLAotICAgIDB4NTA0YWIxNTEsCi0gICAgMHg1MDRiMzE3MSwKLSAgICAweDUwNGJiMTg0LAotICAgIDB4NTA0YzMxYTcsCi0gICAgMHg1MDRjYjFkNSwKLSAgICAweDUwNGQzMWU3LAotICAgIDB4NTA0ZGIyMDQsCi0gICAgMHg1MDRlMzIxZiwKLSAgICAweDUwNGViMjNiLAotICAgIDB4NTA0ZjMyNGQsCi0gICAgMHg1MDRmYjI2NCwKLSAgICAweDUwNTAzMjczLAotICAgIDB4NTA1MDg2ODcsCi0gICAgMHg1MDUxMzI4NiwKLSAgICAweDU4MzIwZTEyLAotICAgIDB4NjgzMjBkZDQsCi0gICAgMHg2ODMyOGI4ZSwKLSAgICAweDY4MzMwYmExLAotICAgIDB4NjgzMzhkZTIsCi0gICAgMHg2ODM0MGRmMiwKLSAgICAweDZjMzIwZGIwLAotICAgIDB4NmMzMjhiNzEsCi0gICAgMHg2YzMzMGRiYiwKLSAgICAweDc0MzIwOTgwLAotICAgIDB4NzgzMjA4ZTUsCi0gICAgMHg3ODMyODhmYSwKLSAgICAweDc4MzMwOTA2LAorICAgIDB4M2MzMjhjNjIsCisgICAgMHgzYzMzMGM3YiwKKyAgICAweDNjMzM4Yzk2LAorICAgIDB4M2MzNDBjYjMsCisgICAgMHgzYzM0OGNkZCwKKyAgICAweDNjMzUwY2Y4LAorICAgIDB4M2MzNThkMWUsCisgICAgMHgzYzM2MGQzNywKKyAgICAweDNjMzY4ZDRmLAorICAgIDB4M2MzNzBkNjAsCisgICAgMHgzYzM3OGQ2ZSwKKyAgICAweDNjMzgwZDdiLAorICAgIDB4M2MzODhkOGYsCisgICAgMHgzYzM5MGMyNSwKKyAgICAweDNjMzk4ZGEzLAorICAgIDB4M2MzYTBkYjcsCisgICAgMHgzYzNhODhmZiwKKyAgICAweDNjM2IwZGM3LAorICAgIDB4M2MzYjhkZTIsCisgICAgMHgzYzNjMGRmNCwKKyAgICAweDNjM2M4ZTBhLAorICAgIDB4M2MzZDBlMTQsCisgICAgMHgzYzNkOGUyOCwKKyAgICAweDNjM2UwZTM2LAorICAgIDB4M2MzZThlNWIsCisgICAgMHgzYzNmMGM0ZSwKKyAgICAweDNjM2Y4ZTQ0LAorICAgIDB4M2M0MDAwYWMsCisgICAgMHgzYzQwODBlYSwKKyAgICAweDNjNDEwY2NlLAorICAgIDB4M2M0MThkMGQsCisgICAgMHg0MDMyMTZmYSwKKyAgICAweDQwMzI5NzEwLAorICAgIDB4NDAzMzE3M2UsCisgICAgMHg0MDMzOTc0OCwKKyAgICAweDQwMzQxNzVmLAorICAgIDB4NDAzNDk3N2QsCisgICAgMHg0MDM1MTc4ZCwKKyAgICAweDQwMzU5NzlmLAorICAgIDB4NDAzNjE3YWMsCisgICAgMHg0MDM2OTdiOCwKKyAgICAweDQwMzcxN2NkLAorICAgIDB4NDAzNzk3ZGYsCisgICAgMHg0MDM4MTdlYSwKKyAgICAweDQwMzg5N2ZjLAorICAgIDB4NDAzOTBlOGIsCisgICAgMHg0MDM5OTgwYywKKyAgICAweDQwM2ExODFmLAorICAgIDB4NDAzYTk4NDAsCisgICAgMHg0MDNiMTg1MSwKKyAgICAweDQwM2I5ODYxLAorICAgIDB4NDAzYzAwNjQsCisgICAgMHg0MDNjODA4MywKKyAgICAweDQwM2QxODZkLAorICAgIDB4NDAzZDk4ODMsCisgICAgMHg0MDNlMTg5MiwKKyAgICAweDQwM2U5OGE1LAorICAgIDB4NDAzZjE4YmYsCisgICAgMHg0MDNmOThjZCwKKyAgICAweDQwNDAxOGUyLAorICAgIDB4NDA0MDk4ZjYsCisgICAgMHg0MDQxMTkxMywKKyAgICAweDQwNDE5OTJlLAorICAgIDB4NDA0MjE5NDcsCisgICAgMHg0MDQyOTk1YSwKKyAgICAweDQwNDMxOTZlLAorICAgIDB4NDA0Mzk5ODYsCisgICAgMHg0MDQ0MTk5ZCwKKyAgICAweDQwNDQ4MGFjLAorICAgIDB4NDA0NTE5YjIsCisgICAgMHg0MDQ1OTljNCwKKyAgICAweDQwNDYxOWU4LAorICAgIDB4NDA0NjlhMDgsCisgICAgMHg0MDQ3MWExNiwKKyAgICAweDQwNDc5YTNkLAorICAgIDB4NDA0ODFhNTIsCisgICAgMHg0MDQ4OWE2YiwKKyAgICAweDQwNDkxYTgyLAorICAgIDB4NDA0OTlhOWMsCisgICAgMHg0MDRhMWFiMywKKyAgICAweDQwNGE5YWQxLAorICAgIDB4NDA0YjFhZTksCisgICAgMHg0MDRiOWIwMCwKKyAgICAweDQwNGMxYjE2LAorICAgIDB4NDA0YzliMjgsCisgICAgMHg0MDRkMWI0OSwKKyAgICAweDQwNGQ5YjZiLAorICAgIDB4NDA0ZTFiN2YsCisgICAgMHg0MDRlOWI4YywKKyAgICAweDQwNGYxYmEzLAorICAgIDB4NDA0ZjliYjMsCisgICAgMHg0MDUwMWJkZCwKKyAgICAweDQwNTA5YmYxLAorICAgIDB4NDA1MTFjMGMsCisgICAgMHg0MDUxOWMxYywKKyAgICAweDQwNTIxYzMzLAorICAgIDB4NDA1MjljNDUsCisgICAgMHg0MDUzMWM1ZCwKKyAgICAweDQwNTM5YzcwLAorICAgIDB4NDA1NDFjODUsCisgICAgMHg0MDU0OWNhOCwKKyAgICAweDQwNTUxY2I2LAorICAgIDB4NDA1NTljZDMsCisgICAgMHg0MDU2MWNlMCwKKyAgICAweDQwNTY5Y2Y5LAorICAgIDB4NDA1NzFkMTEsCisgICAgMHg0MDU3OWQyNCwKKyAgICAweDQwNTgxZDM5LAorICAgIDB4NDA1ODlkNGIsCisgICAgMHg0MDU5MWQ3YSwKKyAgICAweDQwNTk5ZDkzLAorICAgIDB4NDA1YTFkYTcsCisgICAgMHg0MDVhOWRiNywKKyAgICAweDQwNWIxZGNmLAorICAgIDB4NDA1YjlkZTAsCisgICAgMHg0MDVjMWRmMywKKyAgICAweDQwNWM5ZTA0LAorICAgIDB4NDA1ZDFlMTEsCisgICAgMHg0MDVkOWUyOCwKKyAgICAweDQwNWUxZTQ4LAorICAgIDB4NDA1ZThhOTUsCisgICAgMHg0MDVmMWU2OSwKKyAgICAweDQwNWY5ZTc2LAorICAgIDB4NDA2MDFlODQsCisgICAgMHg0MDYwOWVhNiwKKyAgICAweDQwNjExZWNlLAorICAgIDB4NDA2MTllZTMsCisgICAgMHg0MDYyMWVmYSwKKyAgICAweDQwNjI5ZjBiLAorICAgIDB4NDA2MzFmMWMsCisgICAgMHg0MDYzOWYzMSwKKyAgICAweDQwNjQxZjQ4LAorICAgIDB4NDA2NDlmNTksCisgICAgMHg0MDY1MWY3NCwKKyAgICAweDQwNjU5ZjhiLAorICAgIDB4NDA2NjFmYTMsCisgICAgMHg0MDY2OWZjZCwKKyAgICAweDQwNjcxZmY4LAorICAgIDB4NDA2N2EwMTksCisgICAgMHg0MDY4MjAyYywKKyAgICAweDQwNjhhMDRkLAorICAgIDB4NDA2OTIwN2YsCisgICAgMHg0MDY5YTBhZCwKKyAgICAweDQwNmEyMGNlLAorICAgIDB4NDA2YWEwZWUsCisgICAgMHg0MDZiMjI3NiwKKyAgICAweDQwNmJhMjk5LAorICAgIDB4NDA2YzIyYWYsCisgICAgMHg0MDZjYTRkYiwKKyAgICAweDQwNmQyNTBhLAorICAgIDB4NDA2ZGE1MzIsCisgICAgMHg0MDZlMjU0YiwKKyAgICAweDQwNmVhNTYzLAorICAgIDB4NDA2ZjI1ODIsCisgICAgMHg0MDZmYTU5NywKKyAgICAweDQwNzAyNWFhLAorICAgIDB4NDA3MGE1YzcsCisgICAgMHg0MDcxMDgwMCwKKyAgICAweDQwNzFhNWQ5LAorICAgIDB4NDA3MjI1ZWMsCisgICAgMHg0MDcyYTYwNSwKKyAgICAweDQwNzMyNjFkLAorICAgIDB4NDA3MzkzNmQsCisgICAgMHg0MDc0MjYzMSwKKyAgICAweDQwNzRhNjRiLAorICAgIDB4NDA3NTI2NWMsCisgICAgMHg0MDc1YTY3MCwKKyAgICAweDQwNzYyNjdlLAorICAgIDB4NDA3NjkxYWEsCisgICAgMHg0MDc3MjZhMywKKyAgICAweDQwNzdhNmM1LAorICAgIDB4NDA3ODI2ZTAsCisgICAgMHg0MDc4YTcxOSwKKyAgICAweDQwNzkyNzMwLAorICAgIDB4NDA3OWE3NDYsCisgICAgMHg0MDdhMjc1MiwKKyAgICAweDQwN2FhNzY1LAorICAgIDB4NDA3YjI3N2EsCisgICAgMHg0MDdiYTc4YywKKyAgICAweDQwN2MyN2ExLAorICAgIDB4NDA3Y2E3YWEsCisgICAgMHg0MDdkMjA2OCwKKyAgICAweDQwN2Q5YmMzLAorICAgIDB4NDA3ZTI2ZjUsCisgICAgMHg0MDdlOWQ1YiwKKyAgICAweDQwN2YxYTJhLAorICAgIDB4NDFmNDIxYTEsCisgICAgMHg0MWY5MjIzMywKKyAgICAweDQxZmUyMTI2LAorICAgIDB4NDFmZWEzMDIsCisgICAgMHg0MWZmMjNmMywKKyAgICAweDQyMDMyMWJhLAorICAgIDB4NDIwODIxZGMsCisgICAgMHg0MjA4YTIxOCwKKyAgICAweDQyMDkyMTBhLAorICAgIDB4NDIwOWEyNTIsCisgICAgMHg0MjBhMjE2MSwKKyAgICAweDQyMGFhMTQxLAorICAgIDB4NDIwYjIxODEsCisgICAgMHg0MjBiYTFmYSwKKyAgICAweDQyMGMyNDBmLAorICAgIDB4NDIwY2EyY2YsCisgICAgMHg0MjBkMjJlOSwKKyAgICAweDQyMGRhMzIwLAorICAgIDB4NDIxMjIzM2EsCisgICAgMHg0MjE3MjNkNiwKKyAgICAweDQyMTdhMzdjLAorICAgIDB4NDIxYzIzOWUsCisgICAgMHg0MjFmMjM1OSwKKyAgICAweDQyMjEyNDI2LAorICAgIDB4NDIyNjIzYjksCisgICAgMHg0MjJiMjRiZiwKKyAgICAweDQyMmJhNDg4LAorICAgIDB4NDIyYzI0YTcsCisgICAgMHg0MjJjYTQ2MiwKKyAgICAweDQyMmQyNDQxLAorICAgIDB4NDQzMjA3MmIsCisgICAgMHg0NDMyODczYSwKKyAgICAweDQ0MzMwNzQ2LAorICAgIDB4NDQzMzg3NTQsCisgICAgMHg0NDM0MDc2NywKKyAgICAweDQ0MzQ4Nzc4LAorICAgIDB4NDQzNTA3N2YsCisgICAgMHg0NDM1ODc4OSwKKyAgICAweDQ0MzYwNzljLAorICAgIDB4NDQzNjg3YjIsCisgICAgMHg0NDM3MDdjNCwKKyAgICAweDQ0Mzc4N2QxLAorICAgIDB4NDQzODA3ZTAsCisgICAgMHg0NDM4ODdlOCwKKyAgICAweDQ0MzkwODAwLAorICAgIDB4NDQzOTg4MGUsCisgICAgMHg0NDNhMDgyMSwKKyAgICAweDRjMzIxMWQ0LAorICAgIDB4NGMzMjkxZTQsCisgICAgMHg0YzMzMTFmNywKKyAgICAweDRjMzM5MjE3LAorICAgIDB4NGMzNDAwYWMsCisgICAgMHg0YzM0ODBlYSwKKyAgICAweDRjMzUxMjIzLAorICAgIDB4NGMzNTkyMzEsCisgICAgMHg0YzM2MTI0ZCwKKyAgICAweDRjMzY5MjYwLAorICAgIDB4NGMzNzEyNmYsCisgICAgMHg0YzM3OTI3ZCwKKyAgICAweDRjMzgxMjkyLAorICAgIDB4NGMzODkyOWUsCisgICAgMHg0YzM5MTJiZSwKKyAgICAweDRjMzk5MmU4LAorICAgIDB4NGMzYTEzMDEsCisgICAgMHg0YzNhOTMxYSwKKyAgICAweDRjM2IwNWZiLAorICAgIDB4NGMzYjkzMzMsCisgICAgMHg0YzNjMTM0NSwKKyAgICAweDRjM2M5MzU0LAorICAgIDB4NGMzZDEzNmQsCisgICAgMHg0YzNkOTM3YywKKyAgICAweDRjM2UxMzg5LAorICAgIDB4NTAzMjJhMjMsCisgICAgMHg1MDMyYWEzMiwKKyAgICAweDUwMzMyYTNkLAorICAgIDB4NTAzM2FhNGQsCisgICAgMHg1MDM0MmE2NiwKKyAgICAweDUwMzRhYTgwLAorICAgIDB4NTAzNTJhOGUsCisgICAgMHg1MDM1YWFhNCwKKyAgICAweDUwMzYyYWI2LAorICAgIDB4NTAzNmFhY2MsCisgICAgMHg1MDM3MmFlNSwKKyAgICAweDUwMzdhYWY4LAorICAgIDB4NTAzODJiMTAsCisgICAgMHg1MDM4YWIyMSwKKyAgICAweDUwMzkyYjM2LAorICAgIDB4NTAzOWFiNGEsCisgICAgMHg1MDNhMmI2YSwKKyAgICAweDUwM2FhYjgwLAorICAgIDB4NTAzYjJiOTgsCisgICAgMHg1MDNiYWJhYSwKKyAgICAweDUwM2MyYmM2LAorICAgIDB4NTAzY2FiZGQsCisgICAgMHg1MDNkMmJmNiwKKyAgICAweDUwM2RhYzBjLAorICAgIDB4NTAzZTJjMTksCisgICAgMHg1MDNlYWMyZiwKKyAgICAweDUwM2YyYzQxLAorICAgIDB4NTAzZjgzODIsCisgICAgMHg1MDQwMmM1NCwKKyAgICAweDUwNDBhYzY0LAorICAgIDB4NTA0MTJjN2UsCisgICAgMHg1MDQxYWM4ZCwKKyAgICAweDUwNDIyY2E3LAorICAgIDB4NTA0MmFjYzQsCisgICAgMHg1MDQzMmNkNCwKKyAgICAweDUwNDNhY2U0LAorICAgIDB4NTA0NDJjZjMsCisgICAgMHg1MDQ0ODQzZiwKKyAgICAweDUwNDUyZDA3LAorICAgIDB4NTA0NWFkMjUsCisgICAgMHg1MDQ2MmQzOCwKKyAgICAweDUwNDZhZDRlLAorICAgIDB4NTA0NzJkNjAsCisgICAgMHg1MDQ3YWQ3NSwKKyAgICAweDUwNDgyZDliLAorICAgIDB4NTA0OGFkYTksCisgICAgMHg1MDQ5MmRiYywKKyAgICAweDUwNDlhZGQxLAorICAgIDB4NTA0YTJkZTcsCisgICAgMHg1MDRhYWRmNywKKyAgICAweDUwNGIyZTE3LAorICAgIDB4NTA0YmFlMmEsCisgICAgMHg1MDRjMmU0ZCwKKyAgICAweDUwNGNhZTdiLAorICAgIDB4NTA0ZDJlOGQsCisgICAgMHg1MDRkYWVhYSwKKyAgICAweDUwNGUyZWM1LAorICAgIDB4NTA0ZWFlZTEsCisgICAgMHg1MDRmMmVmMywKKyAgICAweDUwNGZhZjBhLAorICAgIDB4NTA1MDJmMTksCisgICAgMHg1MDUwODZlZiwKKyAgICAweDUwNTEyZjJjLAorICAgIDB4NTgzMjBlYzksCisgICAgMHg2ODMyMGU4YiwKKyAgICAweDY4MzI4YzI1LAorICAgIDB4NjgzMzBjMzgsCisgICAgMHg2ODMzOGU5OSwKKyAgICAweDY4MzQwZWE5LAorICAgIDB4NjgzNDgwZWEsCisgICAgMHg2YzMyMGU2NywKKyAgICAweDZjMzI4YmZjLAorICAgIDB4NmMzMzBlNzIsCisgICAgMHg3NDMyMGEwYiwKKyAgICAweDc4MzIwOTcwLAorICAgIDB4NzgzMjg5ODUsCisgICAgMHg3ODMzMDk5MSwKICAgICAweDc4MzM4MDgzLAotICAgIDB4NzgzNDA5MTUsCi0gICAgMHg3ODM0ODkyYSwKLSAgICAweDc4MzUwOTQ5LAotICAgIDB4NzgzNTg5NmIsCi0gICAgMHg3ODM2MDk4MCwKLSAgICAweDc4MzY4OTk2LAotICAgIDB4NzgzNzA5YTYsCi0gICAgMHg3ODM3ODliOSwKLSAgICAweDc4MzgwOWNjLAotICAgIDB4NzgzODg5ZGUsCi0gICAgMHg3ODM5MDllYiwKLSAgICAweDc4Mzk4YTBhLAotICAgIDB4NzgzYTBhMWYsCi0gICAgMHg3ODNhOGEyZCwKLSAgICAweDc4M2IwYTM3LAotICAgIDB4NzgzYjhhNGIsCi0gICAgMHg3ODNjMGE2MiwKLSAgICAweDc4M2M4YTc3LAotICAgIDB4NzgzZDBhOGUsCi0gICAgMHg3ODNkOGFhMywKLSAgICAweDc4M2UwOWY5LAotICAgIDB4ODAzMjExYTUsCisgICAgMHg3ODM0MDlhMCwKKyAgICAweDc4MzQ4OWI1LAorICAgIDB4NzgzNTA5ZDQsCisgICAgMHg3ODM1ODlmNiwKKyAgICAweDc4MzYwYTBiLAorICAgIDB4NzgzNjhhMjEsCisgICAgMHg3ODM3MGEzMSwKKyAgICAweDc4Mzc4YTQ0LAorICAgIDB4NzgzODBhNTcsCisgICAgMHg3ODM4OGE2OSwKKyAgICAweDc4MzkwYTc2LAorICAgIDB4NzgzOThhOTUsCisgICAgMHg3ODNhMGFhYSwKKyAgICAweDc4M2E4YWI4LAorICAgIDB4NzgzYjBhYzIsCisgICAgMHg3ODNiOGFkNiwKKyAgICAweDc4M2MwYWVkLAorICAgIDB4NzgzYzhiMDIsCisgICAgMHg3ODNkMGIxOSwKKyAgICAweDc4M2Q4YjJlLAorICAgIDB4NzgzZTBhODQsCisgICAgMHg3YzMyMTBkNiwKIH07CiAKIGNvbnN0IHNpemVfdCBrT3BlblNTTFJlYXNvblZhbHVlc0xlbiA9IHNpemVvZihrT3BlblNTTFJlYXNvblZhbHVlcykgLyBzaXplb2Yoa09wZW5TU0xSZWFzb25WYWx1ZXNbMF0pOwpAQCAtMjA4Miw4ICs2ODQsMTAgQEAKICAgICAiQk5fTElCXDAiCiAgICAgIkJPT0xFQU5fSVNfV1JPTkdfTEVOR1RIXDAiCiAgICAgIkJVRkZFUl9UT09fU01BTExcMCIKKyAgICAiQ09OVEVYVF9OT1RfSU5JVElBTElTRURcMCIKICAgICAiREVDT0RFX0VSUk9SXDAiCiAgICAgIkRFUFRIX0VYQ0VFREVEXDAiCisgICAgIkRJR0VTVF9BTkRfS0VZX1RZUEVfTk9UX1NVUFBPUlRFRFwwIgogICAgICJFTkNPREVfRVJST1JcMCIKICAgICAiRVJST1JfR0VUVElOR19USU1FXDAiCiAgICAgIkVYUEVDVElOR19BTl9BU04xX1NFUVVFTkNFXDAiCkBAIC0yMTI0LDcgKzcyOCw2IEBACiAgICAgIklOVkFMSURfVU5JVkVSU0FMU1RSSU5HX0xFTkdUSFwwIgogICAgICJJTlZBTElEX1VURjhTVFJJTkdcMCIKICAgICAiTElTVF9FUlJPUlwwIgotICAgICJNQUxMT0NfRkFJTFVSRVwwIgogICAgICJNSVNTSU5HX0FTTjFfRU9TXDAiCiAgICAgIk1JU1NJTkdfRU9DXDAiCiAgICAgIk1JU1NJTkdfU0VDT05EX05VTUJFUlwwIgpAQCAtMjE1NiwxMCArNzU5LDEzIEBACiAgICAgIlVORVhQRUNURURfRU9DXDAiCiAgICAgIlVOSVZFUlNBTFNUUklOR19JU19XUk9OR19MRU5HVEhcMCIKICAgICAiVU5LTk9XTl9GT1JNQVRcMCIKKyAgICAiVU5LTk9XTl9NRVNTQUdFX0RJR0VTVF9BTEdPUklUSE1cMCIKKyAgICAiVU5LTk9XTl9TSUdOQVRVUkVfQUxHT1JJVEhNXDAiCiAgICAgIlVOS05PV05fVEFHXDAiCiAgICAgIlVOU1VQUE9SVEVEX0FOWV9ERUZJTkVEX0JZX1RZUEVcMCIKICAgICAiVU5TVVBQT1JURURfUFVCTElDX0tFWV9UWVBFXDAiCiAgICAgIlVOU1VQUE9SVEVEX1RZUEVcMCIKKyAgICAiV1JPTkdfUFVCTElDX0tFWV9UWVBFXDAiCiAgICAgIldST05HX1RBR1wwIgogICAgICJXUk9OR19UWVBFXDAiCiAgICAgIkJBRF9GT1BFTl9NT0RFXDAiCkBAIC0yMTgwLDYgKzc4Niw3IEBACiAgICAgIlVOU1VQUE9SVEVEX01FVEhPRFwwIgogICAgICJXUklURV9UT19SRUFEX09OTFlfQklPXDAiCiAgICAgIkFSRzJfTFRfQVJHM1wwIgorICAgICJCQURfRU5DT0RJTkdcMCIKICAgICAiQkFEX1JFQ0lQUk9DQUxcMCIKICAgICAiQklHTlVNX1RPT19MT05HXDAiCiAgICAgIkJJVFNfVE9PX1NNQUxMXDAiCkBAIC0yMjMxLDYgKzgzOCw3IEBACiAgICAgIk1PRFVMVVNfVE9PX0xBUkdFXDAiCiAgICAgIk5PX1BSSVZBVEVfVkFMVUVcMCIKICAgICAiQkFEX1FfVkFMVUVcMCIKKyAgICAiQkFEX1ZFUlNJT05cMCIKICAgICAiTUlTU0lOR19QQVJBTUVURVJTXDAiCiAgICAgIk5FRURfTkVXX1NFVFVQX1ZBTFVFU1wwIgogICAgICJCSUdOVU1fT1VUX09GX1JBTkdFXDAiCkBAIC0yMjM4LDggKzg0NiwxMCBAQAogICAgICJEMklfRUNQS1BBUkFNRVRFUlNfRkFJTFVSRVwwIgogICAgICJFQ19HUk9VUF9ORVdfQllfTkFNRV9GQUlMVVJFXDAiCiAgICAgIkdST1VQMlBLUEFSQU1FVEVSU19GQUlMVVJFXDAiCisgICAgIkdST1VQX01JU01BVENIXDAiCiAgICAgIkkyRF9FQ1BLUEFSQU1FVEVSU19GQUlMVVJFXDAiCiAgICAgIklOQ09NUEFUSUJMRV9PQkpFQ1RTXDAiCisgICAgIklOVkFMSURfQ09GQUNUT1JcMCIKICAgICAiSU5WQUxJRF9DT01QUkVTU0VEX1BPSU5UXDAiCiAgICAgIklOVkFMSURfQ09NUFJFU1NJT05fQklUXDAiCiAgICAgIklOVkFMSURfRU5DT0RJTkdcMCIKQEAgLTIyNjQsMjcgKzg3NCwxOSBAQAogICAgICJOT1RfSU1QTEVNRU5URURcMCIKICAgICAiUkFORE9NX05VTUJFUl9HRU5FUkFUSU9OX0ZBSUxFRFwwIgogICAgICJPUEVSQVRJT05fTk9UX1NVUFBPUlRFRFwwIgotICAgICJCTl9ERUNPREVfRVJST1JcMCIKICAgICAiQ09NTUFORF9OT1RfU1VQUE9SVEVEXDAiCi0gICAgIkNPTlRFWFRfTk9UX0lOSVRJQUxJU0VEXDAiCiAgICAgIkRJRkZFUkVOVF9LRVlfVFlQRVNcMCIKICAgICAiRElGRkVSRU5UX1BBUkFNRVRFUlNcMCIKLSAgICAiRElHRVNUX0FORF9LRVlfVFlQRV9OT1RfU1VQUE9SVEVEXDAiCiAgICAgIkVYUEVDVElOR19BTl9FQ19LRVlfS0VZXDAiCiAgICAgIkVYUEVDVElOR19BTl9SU0FfS0VZXDAiCi0gICAgIkVYUEVDVElOR19BX0RIX0tFWVwwIgogICAgICJFWFBFQ1RJTkdfQV9EU0FfS0VZXDAiCiAgICAgIklMTEVHQUxfT1JfVU5TVVBQT1JURURfUEFERElOR19NT0RFXDAiCi0gICAgIklOVkFMSURfQ1VSVkVcMCIKICAgICAiSU5WQUxJRF9ESUdFU1RfTEVOR1RIXDAiCiAgICAgIklOVkFMSURfRElHRVNUX1RZUEVcMCIKICAgICAiSU5WQUxJRF9LRVlCSVRTXDAiCiAgICAgIklOVkFMSURfTUdGMV9NRFwwIgogICAgICJJTlZBTElEX1BBRERJTkdfTU9ERVwwIgotICAgICJJTlZBTElEX1BTU19QQVJBTUVURVJTXDAiCiAgICAgIklOVkFMSURfUFNTX1NBTFRMRU5cMCIKLSAgICAiSU5WQUxJRF9TQUxUX0xFTkdUSFwwIgotICAgICJJTlZBTElEX1RSQUlMRVJcMCIKICAgICAiS0VZU19OT1RfU0VUXDAiCiAgICAgIk5PX0RFRkFVTFRfRElHRVNUXDAiCiAgICAgIk5PX0tFWV9TRVRcMCIKQEAgLTIyOTQsMTcgKzg5Niw4IEBACiAgICAgIk5PX1BBUkFNRVRFUlNfU0VUXDAiCiAgICAgIk9QRVJBVElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEVcMCIKICAgICAiT1BFUkFUT05fTk9UX0lOSVRJQUxJWkVEXDAiCi0gICAgIlBBUkFNRVRFUl9FTkNPRElOR19FUlJPUlwwIgotICAgICJVTktOT1dOX0RJR0VTVFwwIgotICAgICJVTktOT1dOX01BU0tfRElHRVNUXDAiCi0gICAgIlVOS05PV05fTUVTU0FHRV9ESUdFU1RfQUxHT1JJVEhNXDAiCiAgICAgIlVOS05PV05fUFVCTElDX0tFWV9UWVBFXDAiCi0gICAgIlVOS05PV05fU0lHTkFUVVJFX0FMR09SSVRITVwwIgogICAgICJVTlNVUFBPUlRFRF9BTEdPUklUSE1cMCIKLSAgICAiVU5TVVBQT1JURURfTUFTS19BTEdPUklUSE1cMCIKLSAgICAiVU5TVVBQT1JURURfTUFTS19QQVJBTUVURVJcMCIKLSAgICAiVU5TVVBQT1JURURfU0lHTkFUVVJFX1RZUEVcMCIKLSAgICAiV1JPTkdfUFVCTElDX0tFWV9UWVBFXDAiCiAgICAgIk9VVFBVVF9UT09fTEFSR0VcMCIKICAgICAiVU5LTk9XTl9OSURcMCIKICAgICAiQkFEX0JBU0U2NF9ERUNPREVcMCIKQEAgLTIzNDAsNiArOTMzLDcgQEAKICAgICAiVU5LTk9XTl9BTEdPUklUSE1cMCIKICAgICAiVU5LTk9XTl9DSVBIRVJcMCIKICAgICAiVU5LTk9XTl9DSVBIRVJfQUxHT1JJVEhNXDAiCisgICAgIlVOS05PV05fRElHRVNUXDAiCiAgICAgIlVOS05PV05fSEFTSFwwIgogICAgICJVTlNVUFBPUlRFRF9QUklWQVRFX0tFWV9BTEdPUklUSE1cMCIKICAgICAiQkFEX0VfVkFMVUVcMCIKQEAgLTIzOTAsNyArOTg0LDYgQEAKICAgICAiQkFEX0RJR0VTVF9MRU5HVEhcMCIKICAgICAiQkFEX0VDQ19DRVJUXDAiCiAgICAgIkJBRF9FQ1BPSU5UXDAiCi0gICAgIkJBRF9IQU5EU0hBS0VfTEVOR1RIXDAiCiAgICAgIkJBRF9IQU5EU0hBS0VfUkVDT1JEXDAiCiAgICAgIkJBRF9IRUxMT19SRVFVRVNUXDAiCiAgICAgIkJBRF9MRU5HVEhcMCIKQEAgLTI0MDEsNyArOTk0LDYgQEAKICAgICAiQkFEX1NTTF9GSUxFVFlQRVwwIgogICAgICJCQURfV1JJVEVfUkVUUllcMCIKICAgICAiQklPX05PVF9TRVRcMCIKLSAgICAiQ0FOTk9UX1NFUklBTElaRV9QVUJMSUNfS0VZXDAiCiAgICAgIkNBX0ROX0xFTkdUSF9NSVNNQVRDSFwwIgogICAgICJDQV9ETl9UT09fTE9OR1wwIgogICAgICJDQ1NfUkVDRUlWRURfRUFSTFlcMCIKQEAgLTI0MTAsNjMgKzEwMDIsNTYgQEAKICAgICAiQ0VSVF9MRU5HVEhfTUlTTUFUQ0hcMCIKICAgICAiQ0hBTk5FTF9JRF9OT1RfUDI1NlwwIgogICAgICJDSEFOTkVMX0lEX1NJR05BVFVSRV9JTlZBTElEXDAiCi0gICAgIkNJUEhFUl9DT0RFX1dST05HX0xFTkdUSFwwIgogICAgICJDSVBIRVJfT1JfSEFTSF9VTkFWQUlMQUJMRVwwIgogICAgICJDTElFTlRIRUxMT19QQVJTRV9GQUlMRURcMCIKICAgICAiQ0xJRU5USEVMTE9fVExTRVhUXDAiCiAgICAgIkNPTk5FQ1RJT05fUkVKRUNURURcMCIKICAgICAiQ09OTkVDVElPTl9UWVBFX05PVF9TRVRcMCIKLSAgICAiQ09PS0lFX01JU01BVENIXDAiCi0gICAgIkQySV9FQ0RTQV9TSUdcMCIKLSAgICAiREFUQV9CRVRXRUVOX0NDU19BTkRfRklOSVNIRURcMCIKKyAgICAiQ1VTVE9NX0VYVEVOU0lPTl9FUlJPUlwwIgogICAgICJEQVRBX0xFTkdUSF9UT09fTE9OR1wwIgogICAgICJERUNSWVBUSU9OX0ZBSUxFRFwwIgogICAgICJERUNSWVBUSU9OX0ZBSUxFRF9PUl9CQURfUkVDT1JEX01BQ1wwIgogICAgICJESF9QVUJMSUNfVkFMVUVfTEVOR1RIX0lTX1dST05HXDAiCisgICAgIkRIX1BfVE9PX0xPTkdcMCIKICAgICAiRElHRVNUX0NIRUNLX0ZBSUxFRFwwIgorICAgICJET1dOR1JBREVfREVURUNURURcMCIKICAgICAiRFRMU19NRVNTQUdFX1RPT19CSUdcMCIKICAgICAiRUNDX0NFUlRfTk9UX0ZPUl9TSUdOSU5HXDAiCi0gICAgIkVNUFRZX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX0xJU1RcMCIKICAgICAiRU1TX1NUQVRFX0lOQ09OU0lTVEVOVFwwIgogICAgICJFTkNSWVBURURfTEVOR1RIX1RPT19MT05HXDAiCisgICAgIkVSUk9SX0FERElOR19FWFRFTlNJT05cMCIKICAgICAiRVJST1JfSU5fUkVDRUlWRURfQ0lQSEVSX0xJU1RcMCIKLSAgICAiRVZQX0RJR0VTVFNJR05GSU5BTF9GQUlMRURcMCIKLSAgICAiRVZQX0RJR0VTVFNJR05JTklUX0ZBSUxFRFwwIgorICAgICJFUlJPUl9QQVJTSU5HX0VYVEVOU0lPTlwwIgogICAgICJFWENFU1NJVkVfTUVTU0FHRV9TSVpFXDAiCiAgICAgIkVYVFJBX0RBVEFfSU5fTUVTU0FHRVwwIgogICAgICJGUkFHTUVOVF9NSVNNQVRDSFwwIgotICAgICJHT1RfQV9GSU5fQkVGT1JFX0FfQ0NTXDAiCi0gICAgIkdPVF9DSEFOTkVMX0lEX0JFRk9SRV9BX0NDU1wwIgotICAgICJHT1RfTkVYVF9QUk9UT19CRUZPUkVfQV9DQ1NcMCIKICAgICAiR09UX05FWFRfUFJPVE9fV0lUSE9VVF9FWFRFTlNJT05cMCIKICAgICAiSEFORFNIQUtFX0ZBSUxVUkVfT05fQ0xJRU5UX0hFTExPXDAiCi0gICAgIkhBTkRTSEFLRV9SRUNPUkRfQkVGT1JFX0NDU1wwIgogICAgICJIVFRQU19QUk9YWV9SRVFVRVNUXDAiCiAgICAgIkhUVFBfUkVRVUVTVFwwIgogICAgICJJTkFQUFJPUFJJQVRFX0ZBTExCQUNLXDAiCiAgICAgIklOVkFMSURfQ09NTUFORFwwIgogICAgICJJTlZBTElEX01FU1NBR0VcMCIKKyAgICAiSU5WQUxJRF9PVVRFUl9SRUNPUkRfVFlQRVwwIgogICAgICJJTlZBTElEX1NTTF9TRVNTSU9OXDAiCiAgICAgIklOVkFMSURfVElDS0VUX0tFWVNfTEVOR1RIXDAiCiAgICAgIkxFTkdUSF9NSVNNQVRDSFwwIgogICAgICJMSUJSQVJZX0hBU19OT19DSVBIRVJTXDAiCi0gICAgIk1JU1NJTkdfREhfS0VZXDAiCi0gICAgIk1JU1NJTkdfRUNEU0FfU0lHTklOR19DRVJUXDAiCisgICAgIk1JU1NJTkdfRVhURU5TSU9OXDAiCiAgICAgIk1JU1NJTkdfUlNBX0NFUlRJRklDQVRFXDAiCi0gICAgIk1JU1NJTkdfUlNBX0VOQ1JZUFRJTkdfQ0VSVFwwIgotICAgICJNSVNTSU5HX1JTQV9TSUdOSU5HX0NFUlRcMCIKICAgICAiTUlTU0lOR19UTVBfREhfS0VZXDAiCiAgICAgIk1JU1NJTkdfVE1QX0VDREhfS0VZXDAiCiAgICAgIk1JWEVEX1NQRUNJQUxfT1BFUkFUT1JfV0lUSF9HUk9VUFNcMCIKICAgICAiTVRVX1RPT19TTUFMTFwwIgorICAgICJORUdPVElBVEVEX0JPVEhfTlBOX0FORF9BTFBOXDAiCiAgICAgIk5FU1RFRF9HUk9VUFwwIgogICAgICJOT19DRVJUSUZJQ0FURVNfUkVUVVJORURcMCIKICAgICAiTk9fQ0VSVElGSUNBVEVfQVNTSUdORURcMCIKICAgICAiTk9fQ0VSVElGSUNBVEVfU0VUXDAiCiAgICAgIk5PX0NJUEhFUlNfQVZBSUxBQkxFXDAiCiAgICAgIk5PX0NJUEhFUlNfUEFTU0VEXDAiCi0gICAgIk5PX0NJUEhFUlNfU1BFQ0lGSUVEXDAiCiAgICAgIk5PX0NJUEhFUl9NQVRDSFwwIgorICAgICJOT19DT01NT05fU0lHTkFUVVJFX0FMR09SSVRITVNcMCIKICAgICAiTk9fQ09NUFJFU1NJT05fU1BFQ0lGSUVEXDAiCiAgICAgIk5PX01FVEhPRF9TUEVDSUZJRURcMCIKICAgICAiTk9fUDI1Nl9TVVBQT1JUXDAiCkBAIC0yNDc0LDEzICsxMDU5LDEwIEBACiAgICAgIk5PX1JFTkVHT1RJQVRJT05cMCIKICAgICAiTk9fUkVRVUlSRURfRElHRVNUXDAiCiAgICAgIk5PX1NIQVJFRF9DSVBIRVJcMCIKLSAgICAiTk9fU0hBUkVEX1NJR0FUVVJFX0FMR09SSVRITVNcMCIKLSAgICAiTk9fU1JUUF9QUk9GSUxFU1wwIgogICAgICJOVUxMX1NTTF9DVFhcMCIKICAgICAiTlVMTF9TU0xfTUVUSE9EX1BBU1NFRFwwIgogICAgICJPTERfU0VTU0lPTl9DSVBIRVJfTk9UX1JFVFVSTkVEXDAiCiAgICAgIk9MRF9TRVNTSU9OX1ZFUlNJT05fTk9UX1JFVFVSTkVEXDAiCi0gICAgIlBBQ0tFVF9MRU5HVEhfVE9PX0xPTkdcMCIKICAgICAiUEFSU0VfVExTRVhUXDAiCiAgICAgIlBBVEhfVE9PX0xPTkdcMCIKICAgICAiUEVFUl9ESURfTk9UX1JFVFVSTl9BX0NFUlRJRklDQVRFXDAiCkBAIC0yNDg5LDExICsxMDcxLDkgQEAKICAgICAiUFNLX0lERU5USVRZX05PVF9GT1VORFwwIgogICAgICJQU0tfTk9fQ0xJRU5UX0NCXDAiCiAgICAgIlBTS19OT19TRVJWRVJfQ0JcMCIKLSAgICAiUkVBRF9CSU9fTk9UX1NFVFwwIgogICAgICJSRUFEX1RJTUVPVVRfRVhQSVJFRFwwIgogICAgICJSRUNPUkRfTEVOR1RIX01JU01BVENIXDAiCiAgICAgIlJFQ09SRF9UT09fTEFSR0VcMCIKLSAgICAiUkVORUdPVElBVEVfRVhUX1RPT19MT05HXDAiCiAgICAgIlJFTkVHT1RJQVRJT05fRU5DT0RJTkdfRVJSXDAiCiAgICAgIlJFTkVHT1RJQVRJT05fTUlTTUFUQ0hcMCIKICAgICAiUkVRVUlSRURfQ0lQSEVSX01JU1NJTkdcMCIKQEAgLTI1MDMsMTIgKzEwODMsMTEgQEAKICAgICAiU0VSVkVSSEVMTE9fVExTRVhUXDAiCiAgICAgIlNFU1NJT05fSURfQ09OVEVYVF9VTklOSVRJQUxJWkVEXDAiCiAgICAgIlNFU1NJT05fTUFZX05PVF9CRV9DUkVBVEVEXDAiCi0gICAgIlNJR05BVFVSRV9BTEdPUklUSE1TX0VSUk9SXDAiCisgICAgIlNIVVRET1dOX1dISUxFX0lOX0lOSVRcMCIKKyAgICAiU0lHTkFUVVJFX0FMR09SSVRITVNfRVhURU5TSU9OX1NFTlRfQllfU0VSVkVSXDAiCiAgICAgIlNSVFBfQ09VTERfTk9UX0FMTE9DQVRFX1BST0ZJTEVTXDAiCi0gICAgIlNSVFBfUFJPVEVDVElPTl9QUk9GSUxFX0xJU1RfVE9PX0xPTkdcMCIKICAgICAiU1JUUF9VTktOT1dOX1BST1RFQ1RJT05fUFJPRklMRVwwIgogICAgICJTU0wzX0VYVF9JTlZBTElEX1NFUlZFUk5BTUVcMCIKLSAgICAiU1NMM19FWFRfSU5WQUxJRF9TRVJWRVJOQU1FX1RZUEVcMCIKICAgICAiU1NMVjNfQUxFUlRfQkFEX0NFUlRJRklDQVRFXDAiCiAgICAgIlNTTFYzX0FMRVJUX0JBRF9SRUNPUkRfTUFDXDAiCiAgICAgIlNTTFYzX0FMRVJUX0NFUlRJRklDQVRFX0VYUElSRURcMCIKQEAgLTI1MjMsMTAgKzExMDIsNyBAQAogICAgICJTU0xWM19BTEVSVF9VTlNVUFBPUlRFRF9DRVJUSUZJQ0FURVwwIgogICAgICJTU0xfQ1RYX0hBU19OT19ERUZBVUxUX1NTTF9WRVJTSU9OXDAiCiAgICAgIlNTTF9IQU5EU0hBS0VfRkFJTFVSRVwwIgotICAgICJTU0xfU0VTU0lPTl9JRF9DQUxMQkFDS19GQUlMRURcMCIKLSAgICAiU1NMX1NFU1NJT05fSURfQ09ORkxJQ1RcMCIKICAgICAiU1NMX1NFU1NJT05fSURfQ09OVEVYVF9UT09fTE9OR1wwIgotICAgICJTU0xfU0VTU0lPTl9JRF9IQVNfQkFEX0xFTkdUSFwwIgogICAgICJUTFNWMV9BTEVSVF9BQ0NFU1NfREVOSUVEXDAiCiAgICAgIlRMU1YxX0FMRVJUX0RFQ09ERV9FUlJPUlwwIgogICAgICJUTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRFwwIgpAQCAtMjU0NSwxNiArMTEyMSwxMiBAQAogICAgICJUTFNWMV9DRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEVcMCIKICAgICAiVExTVjFfVU5SRUNPR05JWkVEX05BTUVcMCIKICAgICAiVExTVjFfVU5TVVBQT1JURURfRVhURU5TSU9OXDAiCi0gICAgIlRMU19DTElFTlRfQ0VSVF9SRVFfV0lUSF9BTk9OX0NJUEhFUlwwIgotICAgICJUTFNfSUxMRUdBTF9FWFBPUlRFUl9MQUJFTFwwIgotICAgICJUTFNfSU5WQUxJRF9FQ1BPSU5URk9STUFUX0xJU1RcMCIKICAgICAiVExTX1BFRVJfRElEX05PVF9SRVNQT05EX1dJVEhfQ0VSVElGSUNBVEVfTElTVFwwIgogICAgICJUTFNfUlNBX0VOQ1JZUFRFRF9WQUxVRV9MRU5HVEhfSVNfV1JPTkdcMCIKICAgICAiVE9PX01BTllfRU1QVFlfRlJBR01FTlRTXDAiCiAgICAgIlRPT19NQU5ZX1dBUk5JTkdfQUxFUlRTXDAiCiAgICAgIlVOQUJMRV9UT19GSU5EX0VDREhfUEFSQU1FVEVSU1wwIgotICAgICJVTkFCTEVfVE9fRklORF9QVUJMSUNfS0VZX1BBUkFNRVRFUlNcMCIKLSAgICAiVU5FWFBFQ1RFRF9HUk9VUF9DTE9TRVwwIgorICAgICJVTkVYUEVDVEVEX0VYVEVOU0lPTlwwIgogICAgICJVTkVYUEVDVEVEX01FU1NBR0VcMCIKICAgICAiVU5FWFBFQ1RFRF9PUEVSQVRPUl9JTl9HUk9VUFwwIgogICAgICJVTkVYUEVDVEVEX1JFQ09SRFwwIgpAQCAtMjU2NiwxMyArMTEzOCwxMSBAQAogICAgICJVTktOT1dOX1BST1RPQ09MXDAiCiAgICAgIlVOS05PV05fU1NMX1ZFUlNJT05cMCIKICAgICAiVU5LTk9XTl9TVEFURVwwIgotICAgICJVTlBST0NFU1NFRF9IQU5EU0hBS0VfREFUQVwwIgogICAgICJVTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT05fRElTQUJMRURcMCIKICAgICAiVU5TVVBQT1JURURfQ09NUFJFU1NJT05fQUxHT1JJVEhNXDAiCiAgICAgIlVOU1VQUE9SVEVEX0VMTElQVElDX0NVUlZFXDAiCiAgICAgIlVOU1VQUE9SVEVEX1BST1RPQ09MXDAiCi0gICAgIlVOU1VQUE9SVEVEX1NTTF9WRVJTSU9OXDAiCi0gICAgIlVTRV9TUlRQX05PVF9ORUdPVElBVEVEXDAiCisgICAgIlVOU1VQUE9SVEVEX1BST1RPQ09MX0ZPUl9DVVNUT01fS0VZXDAiCiAgICAgIldST05HX0NFUlRJRklDQVRFX1RZUEVcMCIKICAgICAiV1JPTkdfQ0lQSEVSX1JFVFVSTkVEXDAiCiAgICAgIldST05HX0NVUlZFXDAiCkBAIC0yNTkzLDEyICsxMTYzLDE0IEBACiAgICAgIklEUF9NSVNNQVRDSFwwIgogICAgICJJTlZBTElEX0RJUkVDVE9SWVwwIgogICAgICJJTlZBTElEX0ZJRUxEX05BTUVcMCIKKyAgICAiSU5WQUxJRF9QU1NfUEFSQU1FVEVSU1wwIgogICAgICJJTlZBTElEX1RSVVNUXDAiCiAgICAgIklTU1VFUl9NSVNNQVRDSFwwIgogICAgICJLRVlfVFlQRV9NSVNNQVRDSFwwIgogICAgICJLRVlfVkFMVUVTX01JU01BVENIXDAiCiAgICAgIkxPQURJTkdfQ0VSVF9ESVJcMCIKICAgICAiTE9BRElOR19ERUZBVUxUU1wwIgorICAgICJOQU1FX1RPT19MT05HXDAiCiAgICAgIk5FV0VSX0NSTF9OT1RfTkVXRVJcMCIKICAgICAiTk9UX1BLQ1M3X1NJR05FRF9EQVRBXDAiCiAgICAgIk5PX0NFUlRJRklDQVRFU19JTkNMVURFRFwwIgpAQCAtMjYwOCw4ICsxMTgwLDYgQEAKICAgICAiUFVCTElDX0tFWV9ERUNPREVfRVJST1JcMCIKICAgICAiUFVCTElDX0tFWV9FTkNPREVfRVJST1JcMCIKICAgICAiU0hPVUxEX1JFVFJZXDAiCi0gICAgIlVOQUJMRV9UT19GSU5EX1BBUkFNRVRFUlNfSU5fQ0hBSU5cMCIKLSAgICAiVU5BQkxFX1RPX0dFVF9DRVJUU19QVUJMSUNfS0VZXDAiCiAgICAgIlVOS05PV05fS0VZX1RZUEVcMCIKICAgICAiVU5LTk9XTl9QVVJQT1NFX0lEXDAiCiAgICAgIlVOS05PV05fVFJVU1RfSURcMCIKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9hZXMvYWVzdjgtYXJteDY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vYWVzL2Flc3Y4LWFybXg2NC5TCmluZGV4IGM0MTQ0NzYuLjNlOGNiMTYgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9hZXMvYWVzdjgtYXJteDY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2Flcy9hZXN2OC1hcm14NjQuUwpAQCAtMSw1ICsxLDUgQEAKICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotI2luY2x1ZGUgImFybV9hcmNoLmgiCisjaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogCiAjaWYgX19BUk1fTUFYX0FSQ0hfXz49NwogLnRleHQKQEAgLTEzLDYgKzEzLDcgQEAKIC5sb25nCTB4MWIsMHgxYiwweDFiLDB4MWIKIAogLmdsb2JsCWFlc192OF9zZXRfZW5jcnlwdF9rZXkKKy5oaWRkZW4JYWVzX3Y4X3NldF9lbmNyeXB0X2tleQogLnR5cGUJYWVzX3Y4X3NldF9lbmNyeXB0X2tleSwlZnVuY3Rpb24KIC5hbGlnbgk1CiBhZXNfdjhfc2V0X2VuY3J5cHRfa2V5OgpAQCAtMTgwLDYgKzE4MSw3IEBACiAuc2l6ZQlhZXNfdjhfc2V0X2VuY3J5cHRfa2V5LC4tYWVzX3Y4X3NldF9lbmNyeXB0X2tleQogCiAuZ2xvYmwJYWVzX3Y4X3NldF9kZWNyeXB0X2tleQorLmhpZGRlbglhZXNfdjhfc2V0X2RlY3J5cHRfa2V5CiAudHlwZQlhZXNfdjhfc2V0X2RlY3J5cHRfa2V5LCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9zZXRfZGVjcnlwdF9rZXk6CkBAIC0yMTksNiArMjIxLDcgQEAKIAlyZXQKIC5zaXplCWFlc192OF9zZXRfZGVjcnlwdF9rZXksLi1hZXNfdjhfc2V0X2RlY3J5cHRfa2V5CiAuZ2xvYmwJYWVzX3Y4X2VuY3J5cHQKKy5oaWRkZW4JYWVzX3Y4X2VuY3J5cHQKIC50eXBlCWFlc192OF9lbmNyeXB0LCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9lbmNyeXB0OgpAQCAtMjQ4LDYgKzI1MSw3IEBACiAJcmV0CiAuc2l6ZQlhZXNfdjhfZW5jcnlwdCwuLWFlc192OF9lbmNyeXB0CiAuZ2xvYmwJYWVzX3Y4X2RlY3J5cHQKKy5oaWRkZW4JYWVzX3Y4X2RlY3J5cHQKIC50eXBlCWFlc192OF9kZWNyeXB0LCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9kZWNyeXB0OgpAQCAtMjc3LDYgKzI4MSw3IEBACiAJcmV0CiAuc2l6ZQlhZXNfdjhfZGVjcnlwdCwuLWFlc192OF9kZWNyeXB0CiAuZ2xvYmwJYWVzX3Y4X2NiY19lbmNyeXB0CisuaGlkZGVuCWFlc192OF9jYmNfZW5jcnlwdAogLnR5cGUJYWVzX3Y4X2NiY19lbmNyeXB0LCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9jYmNfZW5jcnlwdDoKQEAgLTU2Nyw2ICs1NzIsNyBAQAogCXJldAogLnNpemUJYWVzX3Y4X2NiY19lbmNyeXB0LC4tYWVzX3Y4X2NiY19lbmNyeXB0CiAuZ2xvYmwJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzCisuaGlkZGVuCWFlc192OF9jdHIzMl9lbmNyeXB0X2Jsb2NrcwogLnR5cGUJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzLCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9jdHIzMl9lbmNyeXB0X2Jsb2NrczoKQEAgLTc0OCw0ICs3NTQsNCBAQAogCXJldAogLnNpemUJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzLC4tYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzCiAjZW5kaWYKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2JuL2FybXY4LW1vbnQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9ibi9hcm12OC1tb250LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ3MDJkYgotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9ibi9hcm12OC1tb250LlMKQEAgLTAsMCArMSwxNDA3IEBACisjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKy50ZXh0CisKKy5nbG9ibAlibl9tdWxfbW9udAorLmhpZGRlbglibl9tdWxfbW9udAorLnR5cGUJYm5fbXVsX21vbnQsJWZ1bmN0aW9uCisuYWxpZ24JNQorYm5fbXVsX21vbnQ6CisJdHN0CXg1LCM3CisJYi5lcQlfX2JuX3Nxcjh4X21vbnQKKwl0c3QJeDUsIzMKKwliLmVxCV9fYm5fbXVsNHhfbW9udAorLkxtdWxfbW9udDoKKwlzdHAJeDI5LHgzMCxbc3AsIy02NF0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAl4MTkseDIwLFtzcCwjMTZdCisJc3RwCXgyMSx4MjIsW3NwLCMzMl0KKwlzdHAJeDIzLHgyNCxbc3AsIzQ4XQorCisJbGRyCXg5LFt4Ml0sIzgJCS8vIGJwWzBdCisJc3ViCXgyMixzcCx4NSxsc2wjMworCWxkcAl4Nyx4OCxbeDFdLCMxNgkvLyBhcFswLi4xXQorCWxzbAl4NSx4NSwjMworCWxkcgl4NCxbeDRdCQkvLyAqbjAKKwlhbmQJeDIyLHgyMiwjLTE2CQkvLyBBQkkgc2F5cyBzbworCWxkcAl4MTMseDE0LFt4M10sIzE2CS8vIG5wWzAuLjFdCisKKwltdWwJeDYseDcseDkJCS8vIGFwWzBdKmJwWzBdCisJc3ViCXgyMSx4NSwjMTYJCS8vIGo9bnVtLTIKKwl1bXVsaAl4Nyx4Nyx4OQorCW11bAl4MTAseDgseDkJCS8vIGFwWzFdKmJwWzBdCisJdW11bGgJeDExLHg4LHg5CisKKwltdWwJeDE1LHg2LHg0CQkvLyAidHBbMF0iKm4wCisJbW92CXNwLHgyMgkJCS8vIGFsbG9jYQorCisJLy8gKCopCW11bAl4MTIseDEzLHgxNQkvLyBucFswXSptMQorCXVtdWxoCXgxMyx4MTMseDE1CisJbXVsCXgxNix4MTQseDE1CQkvLyBucFsxXSptMQorCS8vICgqKQlhZGRzCXgxMix4MTIseDYJLy8gZGlzY2FyZGVkCisJLy8gKCopCUFzIGZvciByZW1vdmFsIG9mIGZpcnN0IG11bHRpcGxpY2F0aW9uIGFuZCBhZGRpdGlvbgorCS8vCWluc3RydWN0aW9ucy4gVGhlIG91dGNvbWUgb2YgZmlyc3QgYWRkaXRpb24gaXMKKwkvLwlndWFyYW50ZWVkIHRvIGJlIHplcm8sIHdoaWNoIGxlYXZlcyB0d28gY29tcHV0YXRpb25hbGx5CisJLy8Jc2lnbmlmaWNhbnQgb3V0Y29tZXM6IGl0IGVpdGhlciBjYXJyaWVzIG9yIG5vdC4gVGhlbgorCS8vCXF1ZXN0aW9uIGlzIHdoZW4gZG9lcyBpdCBjYXJyeT8gSXMgdGhlcmUgYWx0ZXJuYXRpdmUKKwkvLwl3YXkgdG8gZGVkdWNlIGl0PyBJZiB5b3UgZm9sbG93IG9wZXJhdGlvbnMsIHlvdSBjYW4KKwkvLwlvYnNlcnZlIHRoYXQgY29uZGl0aW9uIGZvciBjYXJyeSBpcyBxdWl0ZSBzaW1wbGU6CisJLy8JeDYgYmVpbmcgbm9uLXplcm8uIFNvIHRoYXQgY2FycnkgY2FuIGJlIGNhbGN1bGF0ZWQKKwkvLwlieSBhZGRpbmcgLTEgdG8geDYuIFRoYXQncyB3aGF0IG5leHQgaW5zdHJ1Y3Rpb24gZG9lcy4KKwlzdWJzCXh6cix4NiwjMQkJLy8gKCopCisJdW11bGgJeDE3LHgxNCx4MTUKKwlhZGMJeDEzLHgxMyx4enIKKwljYnoJeDIxLC5MMXN0X3NraXAKKworLkwxc3Q6CisJbGRyCXg4LFt4MV0sIzgKKwlhZGRzCXg2LHgxMCx4NworCXN1Ygl4MjEseDIxLCM4CQkvLyBqLS0KKwlhZGMJeDcseDExLHh6cgorCisJbGRyCXgxNCxbeDNdLCM4CisJYWRkcwl4MTIseDE2LHgxMworCW11bAl4MTAseDgseDkJCS8vIGFwW2pdKmJwWzBdCisJYWRjCXgxMyx4MTcseHpyCisJdW11bGgJeDExLHg4LHg5CisKKwlhZGRzCXgxMix4MTIseDYKKwltdWwJeDE2LHgxNCx4MTUJCS8vIG5wW2pdKm0xCisJYWRjCXgxMyx4MTMseHpyCisJdW11bGgJeDE3LHgxNCx4MTUKKwlzdHIJeDEyLFt4MjJdLCM4CQkvLyB0cFtqLTFdCisJY2Juegl4MjEsLkwxc3QKKworLkwxc3Rfc2tpcDoKKwlhZGRzCXg2LHgxMCx4NworCXN1Ygl4MSx4MSx4NQkJLy8gcmV3aW5kIHgxCisJYWRjCXg3LHgxMSx4enIKKworCWFkZHMJeDEyLHgxNix4MTMKKwlzdWIJeDMseDMseDUJCS8vIHJld2luZCB4MworCWFkYwl4MTMseDE3LHh6cgorCisJYWRkcwl4MTIseDEyLHg2CisJc3ViCXgyMCx4NSwjOAkJLy8gaT1udW0tMQorCWFkY3MJeDEzLHgxMyx4NworCisJYWRjCXgxOSx4enIseHpyCQkvLyB1cG1vc3Qgb3ZlcmZsb3cgYml0CisJc3RwCXgxMix4MTMsW3gyMl0KKworLkxvdXRlcjoKKwlsZHIJeDksW3gyXSwjOAkJLy8gYnBbaV0KKwlsZHAJeDcseDgsW3gxXSwjMTYKKwlsZHIJeDIzLFtzcF0JCS8vIHRwWzBdCisJYWRkCXgyMixzcCwjOAorCisJbXVsCXg2LHg3LHg5CQkvLyBhcFswXSpicFtpXQorCXN1Ygl4MjEseDUsIzE2CQkvLyBqPW51bS0yCisJdW11bGgJeDcseDcseDkKKwlsZHAJeDEzLHgxNCxbeDNdLCMxNgorCW11bAl4MTAseDgseDkJCS8vIGFwWzFdKmJwW2ldCisJYWRkcwl4Nix4Nix4MjMKKwl1bXVsaAl4MTEseDgseDkKKwlhZGMJeDcseDcseHpyCisKKwltdWwJeDE1LHg2LHg0CisJc3ViCXgyMCx4MjAsIzgJCS8vIGktLQorCisJLy8gKCopCW11bAl4MTIseDEzLHgxNQkvLyBucFswXSptMQorCXVtdWxoCXgxMyx4MTMseDE1CisJbXVsCXgxNix4MTQseDE1CQkvLyBucFsxXSptMQorCS8vICgqKQlhZGRzCXgxMix4MTIseDYKKwlzdWJzCXh6cix4NiwjMQkJLy8gKCopCisJdW11bGgJeDE3LHgxNCx4MTUKKwljYnoJeDIxLC5MaW5uZXJfc2tpcAorCisuTGlubmVyOgorCWxkcgl4OCxbeDFdLCM4CisJYWRjCXgxMyx4MTMseHpyCisJbGRyCXgyMyxbeDIyXSwjOAkJLy8gdHBbal0KKwlhZGRzCXg2LHgxMCx4NworCXN1Ygl4MjEseDIxLCM4CQkvLyBqLS0KKwlhZGMJeDcseDExLHh6cgorCisJYWRkcwl4MTIseDE2LHgxMworCWxkcgl4MTQsW3gzXSwjOAorCWFkYwl4MTMseDE3LHh6cgorCisJbXVsCXgxMCx4OCx4OQkJLy8gYXBbal0qYnBbaV0KKwlhZGRzCXg2LHg2LHgyMworCXVtdWxoCXgxMSx4OCx4OQorCWFkYwl4Nyx4Nyx4enIKKworCW11bAl4MTYseDE0LHgxNQkJLy8gbnBbal0qbTEKKwlhZGRzCXgxMix4MTIseDYKKwl1bXVsaAl4MTcseDE0LHgxNQorCXN0cgl4MTIsW3gyMiwjLTE2XQkJLy8gdHBbai0xXQorCWNibnoJeDIxLC5MaW5uZXIKKworLkxpbm5lcl9za2lwOgorCWxkcgl4MjMsW3gyMl0sIzgJCS8vIHRwW2pdCisJYWRjCXgxMyx4MTMseHpyCisJYWRkcwl4Nix4MTAseDcKKwlzdWIJeDEseDEseDUJCS8vIHJld2luZCB4MQorCWFkYwl4Nyx4MTEseHpyCisKKwlhZGRzCXgxMix4MTYseDEzCisJc3ViCXgzLHgzLHg1CQkvLyByZXdpbmQgeDMKKwlhZGNzCXgxMyx4MTcseDE5CisJYWRjCXgxOSx4enIseHpyCisKKwlhZGRzCXg2LHg2LHgyMworCWFkYwl4Nyx4Nyx4enIKKworCWFkZHMJeDEyLHgxMix4NgorCWFkY3MJeDEzLHgxMyx4NworCWFkYwl4MTkseDE5LHh6cgkJLy8gdXBtb3N0IG92ZXJmbG93IGJpdAorCXN0cAl4MTIseDEzLFt4MjIsIy0xNl0KKworCWNibnoJeDIwLC5Mb3V0ZXIKKworCS8vIEZpbmFsIHN0ZXAuIFdlIHNlZSBpZiByZXN1bHQgaXMgbGFyZ2VyIHRoYW4gbW9kdWx1cywgYW5kCisJLy8gaWYgaXQgaXMsIHN1YnRyYWN0IHRoZSBtb2R1bHVzLiBCdXQgY29tcGFyaXNvbiBpbXBsaWVzCisJLy8gc3VidHJhY3Rpb24uIFNvIHdlIHN1YnRyYWN0IG1vZHVsdXMsIHNlZSBpZiBpdCBib3Jyb3dlZCwKKwkvLyBhbmQgY29uZGl0aW9uYWxseSBjb3B5IG9yaWdpbmFsIHZhbHVlLgorCWxkcgl4MjMsW3NwXQkJLy8gdHBbMF0KKwlhZGQJeDIyLHNwLCM4CisJbGRyCXgxNCxbeDNdLCM4CQkvLyBucFswXQorCXN1YnMJeDIxLHg1LCM4CQkvLyBqPW51bS0xIGFuZCBjbGVhciBib3Jyb3cKKwltb3YJeDEseDAKKy5Mc3ViOgorCXNiY3MJeDgseDIzLHgxNAkJLy8gdHBbal0tbnBbal0KKwlsZHIJeDIzLFt4MjJdLCM4CisJc3ViCXgyMSx4MjEsIzgJCS8vIGotLQorCWxkcgl4MTQsW3gzXSwjOAorCXN0cgl4OCxbeDFdLCM4CQkvLyBycFtqXT10cFtqXS1ucFtqXQorCWNibnoJeDIxLC5Mc3ViCisKKwlzYmNzCXg4LHgyMyx4MTQKKwlzYmNzCXgxOSx4MTkseHpyCQkvLyBkaWQgaXQgYm9ycm93PworCXN0cgl4OCxbeDFdLCM4CQkvLyBycFtudW0tMV0KKworCWxkcgl4MjMsW3NwXQkJLy8gdHBbMF0KKwlhZGQJeDIyLHNwLCM4CisJbGRyCXg4LFt4MF0sIzgJCS8vIHJwWzBdCisJc3ViCXg1LHg1LCM4CQkvLyBudW0tLQorCW5vcAorLkxjb25kX2NvcHk6CisJc3ViCXg1LHg1LCM4CQkvLyBudW0tLQorCWNzZWwJeDE0LHgyMyx4OCxsbwkJLy8gZGlkIGl0IGJvcnJvdz8KKwlsZHIJeDIzLFt4MjJdLCM4CisJbGRyCXg4LFt4MF0sIzgKKwlzdHIJeHpyLFt4MjIsIy0xNl0JCS8vIHdpcGUgdHAKKwlzdHIJeDE0LFt4MCwjLTE2XQorCWNibnoJeDUsLkxjb25kX2NvcHkKKworCWNzZWwJeDE0LHgyMyx4OCxsbworCXN0cgl4enIsW3gyMiwjLThdCQkvLyB3aXBlIHRwCisJc3RyCXgxNCxbeDAsIy04XQorCisJbGRwCXgxOSx4MjAsW3gyOSwjMTZdCisJbW92CXNwLHgyOQorCWxkcAl4MjEseDIyLFt4MjksIzMyXQorCW1vdgl4MCwjMQorCWxkcAl4MjMseDI0LFt4MjksIzQ4XQorCWxkcgl4MjksW3NwXSwjNjQKKwlyZXQKKy5zaXplCWJuX211bF9tb250LC4tYm5fbXVsX21vbnQKKy50eXBlCV9fYm5fc3FyOHhfbW9udCwlZnVuY3Rpb24KKy5hbGlnbgk1CitfX2JuX3Nxcjh4X21vbnQ6CisJY21wCXgxLHgyCisJYi5uZQlfX2JuX211bDR4X21vbnQKKy5Mc3FyOHhfbW9udDoKKwlzdHAJeDI5LHgzMCxbc3AsIy0xMjhdIQorCWFkZAl4Mjksc3AsIzAKKwlzdHAJeDE5LHgyMCxbc3AsIzE2XQorCXN0cAl4MjEseDIyLFtzcCwjMzJdCisJc3RwCXgyMyx4MjQsW3NwLCM0OF0KKwlzdHAJeDI1LHgyNixbc3AsIzY0XQorCXN0cAl4MjcseDI4LFtzcCwjODBdCisJc3RwCXgwLHgzLFtzcCwjOTZdCS8vIG9mZmxvYWQgcnAgYW5kIG5wCisKKwlsZHAJeDYseDcsW3gxLCM4KjBdCisJbGRwCXg4LHg5LFt4MSwjOCoyXQorCWxkcAl4MTAseDExLFt4MSwjOCo0XQorCWxkcAl4MTIseDEzLFt4MSwjOCo2XQorCisJc3ViCXgyLHNwLHg1LGxzbCM0CisJbHNsCXg1LHg1LCMzCisJbGRyCXg0LFt4NF0JCS8vICpuMAorCW1vdglzcCx4MgkJCS8vIGFsbG9jYQorCXN1Ygl4MjcseDUsIzgqOAorCWIJLkxzcXI4eF96ZXJvX3N0YXJ0CisKKy5Mc3FyOHhfemVybzoKKwlzdWIJeDI3LHgyNywjOCo4CisJc3RwCXh6cix4enIsW3gyLCM4KjBdCisJc3RwCXh6cix4enIsW3gyLCM4KjJdCisJc3RwCXh6cix4enIsW3gyLCM4KjRdCisJc3RwCXh6cix4enIsW3gyLCM4KjZdCisuTHNxcjh4X3plcm9fc3RhcnQ6CisJc3RwCXh6cix4enIsW3gyLCM4KjhdCisJc3RwCXh6cix4enIsW3gyLCM4KjEwXQorCXN0cAl4enIseHpyLFt4MiwjOCoxMl0KKwlzdHAJeHpyLHh6cixbeDIsIzgqMTRdCisJYWRkCXgyLHgyLCM4KjE2CisJY2Juegl4MjcsLkxzcXI4eF96ZXJvCisKKwlhZGQJeDMseDEseDUKKwlhZGQJeDEseDEsIzgqOAorCW1vdgl4MTkseHpyCisJbW92CXgyMCx4enIKKwltb3YJeDIxLHh6cgorCW1vdgl4MjIseHpyCisJbW92CXgyMyx4enIKKwltb3YJeDI0LHh6cgorCW1vdgl4MjUseHpyCisJbW92CXgyNix4enIKKwltb3YJeDIsc3AKKwlzdHIJeDQsW3gyOSwjMTEyXQkJLy8gb2ZmbG9hZCBuMAorCisJLy8gTXVsdGlwbHkgZXZlcnl0aGluZyBidXQgYVtpXSphW2ldCisuYWxpZ24JNAorLkxzcXI4eF9vdXRlcl9sb29wOgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzFdYVswXQkoaSkKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzJdYVswXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVszXWFbMF0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs0XWFbMF0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzVdYVswXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs2XWFbMF0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgYVs3XWFbMF0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbMl1hWzFdCQkoaWkpCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbM11hWzFdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs0XWFbMV0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbNV1hWzFdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGFbNl1hWzFdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgYVs3XWFbMV0KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzNdYVsyXQkJCShpaWkpCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzRdYVsyXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBhWzVdYVsyXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGFbNl1hWzJdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICBhWzddYVsyXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBhWzRdYVszXQkJCQkoaXYpCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgYVs1XWFbM10KKyAgICAgICAgLy8gICAgICAgICAgICAgICAgIGFbNl1hWzNdCisgICAgICAgIC8vICAgICAgICAgICAgIGFbN11hWzNdCisgICAgICAgIC8vICAgICAgICAgICAgICAgICBhWzVdYVs0XQkJCQkJKHYpCisgICAgICAgIC8vICAgICAgICAgICAgIGFbNl1hWzRdCisgICAgICAgIC8vICAgICAgICAgYVs3XWFbNF0KKyAgICAgICAgLy8gICAgICAgICBhWzZdYVs1XQkJCQkJCSh2aSkKKyAgICAgICAgLy8gICAgIGFbN11hWzVdCisgICAgICAgIC8vIGFbN11hWzZdCQkJCQkJCSh2aWkpCisKKwltdWwJeDE0LHg3LHg2CQkvLyBsbyhhWzEuLjddKmFbMF0pCQkoaSkKKwltdWwJeDE1LHg4LHg2CisJbXVsCXgxNix4OSx4NgorCW11bAl4MTcseDEwLHg2CisJYWRkcwl4MjAseDIwLHgxNAkJLy8gdFsxXStsbyhhWzFdKmFbMF0pCisJbXVsCXgxNCx4MTEseDYKKwlhZGNzCXgyMSx4MjEseDE1CisJbXVsCXgxNSx4MTIseDYKKwlhZGNzCXgyMix4MjIseDE2CisJbXVsCXgxNix4MTMseDYKKwlhZGNzCXgyMyx4MjMseDE3CisJdW11bGgJeDE3LHg3LHg2CQkvLyBoaShhWzEuLjddKmFbMF0pCisJYWRjcwl4MjQseDI0LHgxNAorCXVtdWxoCXgxNCx4OCx4NgorCWFkY3MJeDI1LHgyNSx4MTUKKwl1bXVsaAl4MTUseDkseDYKKwlhZGNzCXgyNix4MjYseDE2CisJdW11bGgJeDE2LHgxMCx4NgorCXN0cAl4MTkseDIwLFt4Ml0sIzgqMgkvLyB0WzAuLjFdCisJYWRjCXgxOSx4enIseHpyCQkvLyB0WzhdCisJYWRkcwl4MjEseDIxLHgxNwkJLy8gdFsyXStsbyhhWzFdKmFbMF0pCisJdW11bGgJeDE3LHgxMSx4NgorCWFkY3MJeDIyLHgyMix4MTQKKwl1bXVsaAl4MTQseDEyLHg2CisJYWRjcwl4MjMseDIzLHgxNQorCXVtdWxoCXgxNSx4MTMseDYKKwlhZGNzCXgyNCx4MjQseDE2CisJbXVsCXgxNix4OCx4NwkJLy8gbG8oYVsyLi43XSphWzFdKQkJKGlpKQorCWFkY3MJeDI1LHgyNSx4MTcKKwltdWwJeDE3LHg5LHg3CisJYWRjcwl4MjYseDI2LHgxNAorCW11bAl4MTQseDEwLHg3CisJYWRjCXgxOSx4MTkseDE1CisKKwltdWwJeDE1LHgxMSx4NworCWFkZHMJeDIyLHgyMix4MTYKKwltdWwJeDE2LHgxMix4NworCWFkY3MJeDIzLHgyMyx4MTcKKwltdWwJeDE3LHgxMyx4NworCWFkY3MJeDI0LHgyNCx4MTQKKwl1bXVsaAl4MTQseDgseDcJCS8vIGhpKGFbMi4uN10qYVsxXSkKKwlhZGNzCXgyNSx4MjUseDE1CisJdW11bGgJeDE1LHg5LHg3CisJYWRjcwl4MjYseDI2LHgxNgorCXVtdWxoCXgxNix4MTAseDcKKwlhZGNzCXgxOSx4MTkseDE3CisJdW11bGgJeDE3LHgxMSx4NworCXN0cAl4MjEseDIyLFt4Ml0sIzgqMgkvLyB0WzIuLjNdCisJYWRjCXgyMCx4enIseHpyCQkvLyB0WzldCisJYWRkcwl4MjMseDIzLHgxNAorCXVtdWxoCXgxNCx4MTIseDcKKwlhZGNzCXgyNCx4MjQseDE1CisJdW11bGgJeDE1LHgxMyx4NworCWFkY3MJeDI1LHgyNSx4MTYKKwltdWwJeDE2LHg5LHg4CQkvLyBsbyhhWzMuLjddKmFbMl0pCQkoaWlpKQorCWFkY3MJeDI2LHgyNix4MTcKKwltdWwJeDE3LHgxMCx4OAorCWFkY3MJeDE5LHgxOSx4MTQKKwltdWwJeDE0LHgxMSx4OAorCWFkYwl4MjAseDIwLHgxNQorCisJbXVsCXgxNSx4MTIseDgKKwlhZGRzCXgyNCx4MjQseDE2CisJbXVsCXgxNix4MTMseDgKKwlhZGNzCXgyNSx4MjUseDE3CisJdW11bGgJeDE3LHg5LHg4CQkvLyBoaShhWzMuLjddKmFbMl0pCisJYWRjcwl4MjYseDI2LHgxNAorCXVtdWxoCXgxNCx4MTAseDgKKwlhZGNzCXgxOSx4MTkseDE1CisJdW11bGgJeDE1LHgxMSx4OAorCWFkY3MJeDIwLHgyMCx4MTYKKwl1bXVsaAl4MTYseDEyLHg4CisJc3RwCXgyMyx4MjQsW3gyXSwjOCoyCS8vIHRbNC4uNV0KKwlhZGMJeDIxLHh6cix4enIJCS8vIHRbMTBdCisJYWRkcwl4MjUseDI1LHgxNworCXVtdWxoCXgxNyx4MTMseDgKKwlhZGNzCXgyNix4MjYseDE0CisJbXVsCXgxNCx4MTAseDkJCS8vIGxvKGFbNC4uN10qYVszXSkJCShpdikKKwlhZGNzCXgxOSx4MTkseDE1CisJbXVsCXgxNSx4MTEseDkKKwlhZGNzCXgyMCx4MjAseDE2CisJbXVsCXgxNix4MTIseDkKKwlhZGMJeDIxLHgyMSx4MTcKKworCW11bAl4MTcseDEzLHg5CisJYWRkcwl4MjYseDI2LHgxNAorCXVtdWxoCXgxNCx4MTAseDkJCS8vIGhpKGFbNC4uN10qYVszXSkKKwlhZGNzCXgxOSx4MTkseDE1CisJdW11bGgJeDE1LHgxMSx4OQorCWFkY3MJeDIwLHgyMCx4MTYKKwl1bXVsaAl4MTYseDEyLHg5CisJYWRjcwl4MjEseDIxLHgxNworCXVtdWxoCXgxNyx4MTMseDkKKwlzdHAJeDI1LHgyNixbeDJdLCM4KjIJLy8gdFs2Li43XQorCWFkYwl4MjIseHpyLHh6cgkJLy8gdFsxMV0KKwlhZGRzCXgxOSx4MTkseDE0CisJbXVsCXgxNCx4MTEseDEwCQkvLyBsbyhhWzUuLjddKmFbNF0pCQkodikKKwlhZGNzCXgyMCx4MjAseDE1CisJbXVsCXgxNSx4MTIseDEwCisJYWRjcwl4MjEseDIxLHgxNgorCW11bAl4MTYseDEzLHgxMAorCWFkYwl4MjIseDIyLHgxNworCisJdW11bGgJeDE3LHgxMSx4MTAJCS8vIGhpKGFbNS4uN10qYVs0XSkKKwlhZGRzCXgyMCx4MjAseDE0CisJdW11bGgJeDE0LHgxMix4MTAKKwlhZGNzCXgyMSx4MjEseDE1CisJdW11bGgJeDE1LHgxMyx4MTAKKwlhZGNzCXgyMix4MjIseDE2CisJbXVsCXgxNix4MTIseDExCQkvLyBsbyhhWzYuLjddKmFbNV0pCQkodmkpCisJYWRjCXgyMyx4enIseHpyCQkvLyB0WzEyXQorCWFkZHMJeDIxLHgyMSx4MTcKKwltdWwJeDE3LHgxMyx4MTEKKwlhZGNzCXgyMix4MjIseDE0CisJdW11bGgJeDE0LHgxMix4MTEJCS8vIGhpKGFbNi4uN10qYVs1XSkKKwlhZGMJeDIzLHgyMyx4MTUKKworCXVtdWxoCXgxNSx4MTMseDExCisJYWRkcwl4MjIseDIyLHgxNgorCW11bAl4MTYseDEzLHgxMgkJLy8gbG8oYVs3XSphWzZdKQkJKHZpaSkKKwlhZGNzCXgyMyx4MjMseDE3CisJdW11bGgJeDE3LHgxMyx4MTIJCS8vIGhpKGFbN10qYVs2XSkKKwlhZGMJeDI0LHh6cix4enIJCS8vIHRbMTNdCisJYWRkcwl4MjMseDIzLHgxNAorCXN1Ygl4MjcseDMseDEJLy8gZG9uZSB5ZXQ/CisJYWRjCXgyNCx4MjQseDE1CisKKwlhZGRzCXgyNCx4MjQseDE2CisJc3ViCXgxNCx4Myx4NQkvLyByZXdpbmRlZCBhcAorCWFkYwl4MjUseHpyLHh6cgkJLy8gdFsxNF0KKwlhZGQJeDI1LHgyNSx4MTcKKworCWNiegl4MjcsLkxzcXI4eF9vdXRlcl9icmVhaworCisJbW92CXg0LHg2CisJbGRwCXg2LHg3LFt4MiwjOCowXQorCWxkcAl4OCx4OSxbeDIsIzgqMl0KKwlsZHAJeDEwLHgxMSxbeDIsIzgqNF0KKwlsZHAJeDEyLHgxMyxbeDIsIzgqNl0KKwlhZGRzCXgxOSx4MTkseDYKKwlhZGNzCXgyMCx4MjAseDcKKwlsZHAJeDYseDcsW3gxLCM4KjBdCisJYWRjcwl4MjEseDIxLHg4CisJYWRjcwl4MjIseDIyLHg5CisJbGRwCXg4LHg5LFt4MSwjOCoyXQorCWFkY3MJeDIzLHgyMyx4MTAKKwlhZGNzCXgyNCx4MjQseDExCisJbGRwCXgxMCx4MTEsW3gxLCM4KjRdCisJYWRjcwl4MjUseDI1LHgxMgorCW1vdgl4MCx4MQorCWFkY3MJeDI2LHh6cix4MTMKKwlsZHAJeDEyLHgxMyxbeDEsIzgqNl0KKwlhZGQJeDEseDEsIzgqOAorCS8vYWRjCXgyOCx4enIseHpyCQkvLyBtb3ZlZCBiZWxvdworCW1vdgl4MjcsIy04KjgKKworCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs5XWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW2FdYVswXQorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtiXWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtjXWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW2RdYVswXQorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtlXWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtmXWFbMF0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbMV0KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICBhW2ZdYVsxXS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbOF1hWzJdCisJLy8gICAgICAgICAgICAgICAgICAgICBhW2ZdYVsyXS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbM10KKwkvLyAgICAgICAgICAgICAgICAgYVtmXWFbM10uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbNF0KKwkvLyAgICAgICAgICAgICBhW2ZdYVs0XS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbOF1hWzVdCisJLy8gICAgICAgICBhW2ZdYVs1XS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorCS8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbNl0KKwkvLyAgICAgYVtmXWFbNl0uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKwkvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVs4XWFbN10KKwkvLyBhW2ZdYVs3XS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLkxzcXI4eF9tdWw6CisJbXVsCXgxNCx4Nix4NAorCWFkYwl4MjgseHpyLHh6cgkJLy8gY2FycnkgYml0LCBtb2R1bG8tc2NoZWR1bGVkCisJbXVsCXgxNSx4Nyx4NAorCWFkZAl4MjcseDI3LCM4CisJbXVsCXgxNix4OCx4NAorCW11bAl4MTcseDkseDQKKwlhZGRzCXgxOSx4MTkseDE0CisJbXVsCXgxNCx4MTAseDQKKwlhZGNzCXgyMCx4MjAseDE1CisJbXVsCXgxNSx4MTEseDQKKwlhZGNzCXgyMSx4MjEseDE2CisJbXVsCXgxNix4MTIseDQKKwlhZGNzCXgyMix4MjIseDE3CisJbXVsCXgxNyx4MTMseDQKKwlhZGNzCXgyMyx4MjMseDE0CisJdW11bGgJeDE0LHg2LHg0CisJYWRjcwl4MjQseDI0LHgxNQorCXVtdWxoCXgxNSx4Nyx4NAorCWFkY3MJeDI1LHgyNSx4MTYKKwl1bXVsaAl4MTYseDgseDQKKwlhZGNzCXgyNix4MjYseDE3CisJdW11bGgJeDE3LHg5LHg0CisJYWRjCXgyOCx4MjgseHpyCisJc3RyCXgxOSxbeDJdLCM4CisJYWRkcwl4MTkseDIwLHgxNAorCXVtdWxoCXgxNCx4MTAseDQKKwlhZGNzCXgyMCx4MjEseDE1CisJdW11bGgJeDE1LHgxMSx4NAorCWFkY3MJeDIxLHgyMix4MTYKKwl1bXVsaAl4MTYseDEyLHg0CisJYWRjcwl4MjIseDIzLHgxNworCXVtdWxoCXgxNyx4MTMseDQKKwlsZHIJeDQsW3gwLHgyN10KKwlhZGNzCXgyMyx4MjQseDE0CisJYWRjcwl4MjQseDI1LHgxNQorCWFkY3MJeDI1LHgyNix4MTYKKwlhZGNzCXgyNix4MjgseDE3CisJLy9hZGMJeDI4LHh6cix4enIJCS8vIG1vdmVkIGFib3ZlCisJY2Juegl4MjcsLkxzcXI4eF9tdWwKKwkJCQkJLy8gbm90ZSB0aGF0IGNhcnJ5IGZsYWcgaXMgZ3VhcmFudGVlZAorCQkJCQkvLyB0byBiZSB6ZXJvIGF0IHRoaXMgcG9pbnQKKwljbXAJeDEseDMJCS8vIGRvbmUgeWV0PworCWIuZXEJLkxzcXI4eF9icmVhaworCisJbGRwCXg2LHg3LFt4MiwjOCowXQorCWxkcAl4OCx4OSxbeDIsIzgqMl0KKwlsZHAJeDEwLHgxMSxbeDIsIzgqNF0KKwlsZHAJeDEyLHgxMyxbeDIsIzgqNl0KKwlhZGRzCXgxOSx4MTkseDYKKwlsZHIJeDQsW3gwLCMtOCo4XQorCWFkY3MJeDIwLHgyMCx4NworCWxkcAl4Nix4NyxbeDEsIzgqMF0KKwlhZGNzCXgyMSx4MjEseDgKKwlhZGNzCXgyMix4MjIseDkKKwlsZHAJeDgseDksW3gxLCM4KjJdCisJYWRjcwl4MjMseDIzLHgxMAorCWFkY3MJeDI0LHgyNCx4MTEKKwlsZHAJeDEwLHgxMSxbeDEsIzgqNF0KKwlhZGNzCXgyNSx4MjUseDEyCisJbW92CXgyNywjLTgqOAorCWFkY3MJeDI2LHgyNix4MTMKKwlsZHAJeDEyLHgxMyxbeDEsIzgqNl0KKwlhZGQJeDEseDEsIzgqOAorCS8vYWRjCXgyOCx4enIseHpyCQkvLyBtb3ZlZCBhYm92ZQorCWIJLkxzcXI4eF9tdWwKKworLmFsaWduCTQKKy5Mc3FyOHhfYnJlYWs6CisJbGRwCXg2LHg3LFt4MCwjOCowXQorCWFkZAl4MSx4MCwjOCo4CisJbGRwCXg4LHg5LFt4MCwjOCoyXQorCXN1Ygl4MTQseDMseDEJCS8vIGlzIGl0IGxhc3QgaXRlcmF0aW9uPworCWxkcAl4MTAseDExLFt4MCwjOCo0XQorCXN1Ygl4MTUseDIseDE0CisJbGRwCXgxMix4MTMsW3gwLCM4KjZdCisJY2J6CXgxNCwuTHNxcjh4X291dGVyX2xvb3AKKworCXN0cAl4MTkseDIwLFt4MiwjOCowXQorCWxkcAl4MTkseDIwLFt4MTUsIzgqMF0KKwlzdHAJeDIxLHgyMixbeDIsIzgqMl0KKwlsZHAJeDIxLHgyMixbeDE1LCM4KjJdCisJc3RwCXgyMyx4MjQsW3gyLCM4KjRdCisJbGRwCXgyMyx4MjQsW3gxNSwjOCo0XQorCXN0cAl4MjUseDI2LFt4MiwjOCo2XQorCW1vdgl4Mix4MTUKKwlsZHAJeDI1LHgyNixbeDE1LCM4KjZdCisJYgkuTHNxcjh4X291dGVyX2xvb3AKKworLmFsaWduCTQKKy5Mc3FyOHhfb3V0ZXJfYnJlYWs6CisJLy8gTm93IG11bHRpcGx5IGFib3ZlIHJlc3VsdCBieSAyIGFuZCBhZGQgYVtuLTFdKmFbbi0xXXwuLi58YVswXSphWzBdCisJbGRwCXg3LHg5LFt4MTQsIzgqMF0JLy8gcmVjYWxsIHRoYXQgeDE0IGlzICZhWzBdCisJbGRwCXgxNSx4MTYsW3NwLCM4KjFdCisJbGRwCXgxMSx4MTMsW3gxNCwjOCoyXQorCWFkZAl4MSx4MTQsIzgqNAorCWxkcAl4MTcseDE0LFtzcCwjOCozXQorCisJc3RwCXgxOSx4MjAsW3gyLCM4KjBdCisJbXVsCXgxOSx4Nyx4NworCXN0cAl4MjEseDIyLFt4MiwjOCoyXQorCXVtdWxoCXg3LHg3LHg3CisJc3RwCXgyMyx4MjQsW3gyLCM4KjRdCisJbXVsCXg4LHg5LHg5CisJc3RwCXgyNSx4MjYsW3gyLCM4KjZdCisJbW92CXgyLHNwCisJdW11bGgJeDkseDkseDkKKwlhZGRzCXgyMCx4Nyx4MTUsbHNsIzEKKwlleHRyCXgxNSx4MTYseDE1LCM2MworCXN1Ygl4MjcseDUsIzgqNAorCisuTHNxcjR4X3NoaWZ0X25fYWRkOgorCWFkY3MJeDIxLHg4LHgxNQorCWV4dHIJeDE2LHgxNyx4MTYsIzYzCisJc3ViCXgyNyx4MjcsIzgqNAorCWFkY3MJeDIyLHg5LHgxNgorCWxkcAl4MTUseDE2LFt4MiwjOCo1XQorCW11bAl4MTAseDExLHgxMQorCWxkcAl4Nyx4OSxbeDFdLCM4KjIKKwl1bXVsaAl4MTEseDExLHgxMQorCW11bAl4MTIseDEzLHgxMworCXVtdWxoCXgxMyx4MTMseDEzCisJZXh0cgl4MTcseDE0LHgxNywjNjMKKwlzdHAJeDE5LHgyMCxbeDIsIzgqMF0KKwlhZGNzCXgyMyx4MTAseDE3CisJZXh0cgl4MTQseDE1LHgxNCwjNjMKKwlzdHAJeDIxLHgyMixbeDIsIzgqMl0KKwlhZGNzCXgyNCx4MTEseDE0CisJbGRwCXgxNyx4MTQsW3gyLCM4KjddCisJZXh0cgl4MTUseDE2LHgxNSwjNjMKKwlhZGNzCXgyNSx4MTIseDE1CisJZXh0cgl4MTYseDE3LHgxNiwjNjMKKwlhZGNzCXgyNix4MTMseDE2CisJbGRwCXgxNSx4MTYsW3gyLCM4KjldCisJbXVsCXg2LHg3LHg3CisJbGRwCXgxMSx4MTMsW3gxXSwjOCoyCisJdW11bGgJeDcseDcseDcKKwltdWwJeDgseDkseDkKKwl1bXVsaAl4OSx4OSx4OQorCXN0cAl4MjMseDI0LFt4MiwjOCo0XQorCWV4dHIJeDE3LHgxNCx4MTcsIzYzCisJc3RwCXgyNSx4MjYsW3gyLCM4KjZdCisJYWRkCXgyLHgyLCM4KjgKKwlhZGNzCXgxOSx4Nix4MTcKKwlleHRyCXgxNCx4MTUseDE0LCM2MworCWFkY3MJeDIwLHg3LHgxNAorCWxkcAl4MTcseDE0LFt4MiwjOCozXQorCWV4dHIJeDE1LHgxNix4MTUsIzYzCisJY2Juegl4MjcsLkxzcXI0eF9zaGlmdF9uX2FkZAorCWxkcAl4MSx4NCxbeDI5LCMxMDRdCS8vIHB1bGwgbnAgYW5kIG4wCisKKwlhZGNzCXgyMSx4OCx4MTUKKwlleHRyCXgxNix4MTcseDE2LCM2MworCWFkY3MJeDIyLHg5LHgxNgorCWxkcAl4MTUseDE2LFt4MiwjOCo1XQorCW11bAl4MTAseDExLHgxMQorCXVtdWxoCXgxMSx4MTEseDExCisJc3RwCXgxOSx4MjAsW3gyLCM4KjBdCisJbXVsCXgxMix4MTMseDEzCisJdW11bGgJeDEzLHgxMyx4MTMKKwlzdHAJeDIxLHgyMixbeDIsIzgqMl0KKwlleHRyCXgxNyx4MTQseDE3LCM2MworCWFkY3MJeDIzLHgxMCx4MTcKKwlleHRyCXgxNCx4MTUseDE0LCM2MworCWxkcAl4MTkseDIwLFtzcCwjOCowXQorCWFkY3MJeDI0LHgxMSx4MTQKKwlleHRyCXgxNSx4MTYseDE1LCM2MworCWxkcAl4Nix4NyxbeDEsIzgqMF0KKwlhZGNzCXgyNSx4MTIseDE1CisJZXh0cgl4MTYseHpyLHgxNiwjNjMKKwlsZHAJeDgseDksW3gxLCM4KjJdCisJYWRjCXgyNix4MTMseDE2CisJbGRwCXgxMCx4MTEsW3gxLCM4KjRdCisKKwkvLyBSZWR1Y2UgYnkgNTEyIGJpdHMgcGVyIGl0ZXJhdGlvbgorCW11bAl4MjgseDQseDE5CQkvLyB0WzBdKm4wCisJbGRwCXgxMix4MTMsW3gxLCM4KjZdCisJYWRkCXgzLHgxLHg1CisJbGRwCXgyMSx4MjIsW3NwLCM4KjJdCisJc3RwCXgyMyx4MjQsW3gyLCM4KjRdCisJbGRwCXgyMyx4MjQsW3NwLCM4KjRdCisJc3RwCXgyNSx4MjYsW3gyLCM4KjZdCisJbGRwCXgyNSx4MjYsW3NwLCM4KjZdCisJYWRkCXgxLHgxLCM4KjgKKwltb3YJeDMwLHh6cgkJLy8gaW5pdGlhbCB0b3AtbW9zdCBjYXJyeQorCW1vdgl4MixzcAorCW1vdgl4MjcsIzgKKworLkxzcXI4eF9yZWR1Y3Rpb246CisJLy8gKCopCW11bAl4MTQseDYseDI4CS8vIGxvKG5bMC03XSkqbG8odFswXSpuMCkKKwltdWwJeDE1LHg3LHgyOAorCXN1Ygl4MjcseDI3LCMxCisJbXVsCXgxNix4OCx4MjgKKwlzdHIJeDI4LFt4Ml0sIzgJCS8vIHB1dCBhc2lkZSB0WzBdKm4wIGZvciB0YWlsIHByb2Nlc3NpbmcKKwltdWwJeDE3LHg5LHgyOAorCS8vICgqKQlhZGRzCXh6cix4MTkseDE0CisJc3Vicwl4enIseDE5LCMxCQkvLyAoKikKKwltdWwJeDE0LHgxMCx4MjgKKwlhZGNzCXgxOSx4MjAseDE1CisJbXVsCXgxNSx4MTEseDI4CisJYWRjcwl4MjAseDIxLHgxNgorCW11bAl4MTYseDEyLHgyOAorCWFkY3MJeDIxLHgyMix4MTcKKwltdWwJeDE3LHgxMyx4MjgKKwlhZGNzCXgyMix4MjMseDE0CisJdW11bGgJeDE0LHg2LHgyOAkJLy8gaGkoblswLTddKSpsbyh0WzBdKm4wKQorCWFkY3MJeDIzLHgyNCx4MTUKKwl1bXVsaAl4MTUseDcseDI4CisJYWRjcwl4MjQseDI1LHgxNgorCXVtdWxoCXgxNix4OCx4MjgKKwlhZGNzCXgyNSx4MjYseDE3CisJdW11bGgJeDE3LHg5LHgyOAorCWFkYwl4MjYseHpyLHh6cgorCWFkZHMJeDE5LHgxOSx4MTQKKwl1bXVsaAl4MTQseDEwLHgyOAorCWFkY3MJeDIwLHgyMCx4MTUKKwl1bXVsaAl4MTUseDExLHgyOAorCWFkY3MJeDIxLHgyMSx4MTYKKwl1bXVsaAl4MTYseDEyLHgyOAorCWFkY3MJeDIyLHgyMix4MTcKKwl1bXVsaAl4MTcseDEzLHgyOAorCW11bAl4MjgseDQseDE5CQkvLyBuZXh0IHRbMF0qbjAKKwlhZGNzCXgyMyx4MjMseDE0CisJYWRjcwl4MjQseDI0LHgxNQorCWFkY3MJeDI1LHgyNSx4MTYKKwlhZGMJeDI2LHgyNix4MTcKKwljYm56CXgyNywuTHNxcjh4X3JlZHVjdGlvbgorCisJbGRwCXgxNCx4MTUsW3gyLCM4KjBdCisJbGRwCXgxNix4MTcsW3gyLCM4KjJdCisJbW92CXgwLHgyCisJc3ViCXgyNyx4Myx4MQkvLyBkb25lIHlldD8KKwlhZGRzCXgxOSx4MTkseDE0CisJYWRjcwl4MjAseDIwLHgxNQorCWxkcAl4MTQseDE1LFt4MiwjOCo0XQorCWFkY3MJeDIxLHgyMSx4MTYKKwlhZGNzCXgyMix4MjIseDE3CisJbGRwCXgxNix4MTcsW3gyLCM4KjZdCisJYWRjcwl4MjMseDIzLHgxNAorCWFkY3MJeDI0LHgyNCx4MTUKKwlhZGNzCXgyNSx4MjUseDE2CisJYWRjcwl4MjYseDI2LHgxNworCS8vYWRjCXgyOCx4enIseHpyCQkvLyBtb3ZlZCBiZWxvdworCWNiegl4MjcsLkxzcXI4eDhfcG9zdF9jb25kaXRpb24KKworCWxkcgl4NCxbeDIsIy04KjhdCisJbGRwCXg2LHg3LFt4MSwjOCowXQorCWxkcAl4OCx4OSxbeDEsIzgqMl0KKwlsZHAJeDEwLHgxMSxbeDEsIzgqNF0KKwltb3YJeDI3LCMtOCo4CisJbGRwCXgxMix4MTMsW3gxLCM4KjZdCisJYWRkCXgxLHgxLCM4KjgKKworLkxzcXI4eF90YWlsOgorCW11bAl4MTQseDYseDQKKwlhZGMJeDI4LHh6cix4enIJCS8vIGNhcnJ5IGJpdCwgbW9kdWxvLXNjaGVkdWxlZAorCW11bAl4MTUseDcseDQKKwlhZGQJeDI3LHgyNywjOAorCW11bAl4MTYseDgseDQKKwltdWwJeDE3LHg5LHg0CisJYWRkcwl4MTkseDE5LHgxNAorCW11bAl4MTQseDEwLHg0CisJYWRjcwl4MjAseDIwLHgxNQorCW11bAl4MTUseDExLHg0CisJYWRjcwl4MjEseDIxLHgxNgorCW11bAl4MTYseDEyLHg0CisJYWRjcwl4MjIseDIyLHgxNworCW11bAl4MTcseDEzLHg0CisJYWRjcwl4MjMseDIzLHgxNAorCXVtdWxoCXgxNCx4Nix4NAorCWFkY3MJeDI0LHgyNCx4MTUKKwl1bXVsaAl4MTUseDcseDQKKwlhZGNzCXgyNSx4MjUseDE2CisJdW11bGgJeDE2LHg4LHg0CisJYWRjcwl4MjYseDI2LHgxNworCXVtdWxoCXgxNyx4OSx4NAorCWFkYwl4MjgseDI4LHh6cgorCXN0cgl4MTksW3gyXSwjOAorCWFkZHMJeDE5LHgyMCx4MTQKKwl1bXVsaAl4MTQseDEwLHg0CisJYWRjcwl4MjAseDIxLHgxNQorCXVtdWxoCXgxNSx4MTEseDQKKwlhZGNzCXgyMSx4MjIseDE2CisJdW11bGgJeDE2LHgxMix4NAorCWFkY3MJeDIyLHgyMyx4MTcKKwl1bXVsaAl4MTcseDEzLHg0CisJbGRyCXg0LFt4MCx4MjddCisJYWRjcwl4MjMseDI0LHgxNAorCWFkY3MJeDI0LHgyNSx4MTUKKwlhZGNzCXgyNSx4MjYseDE2CisJYWRjcwl4MjYseDI4LHgxNworCS8vYWRjCXgyOCx4enIseHpyCQkvLyBtb3ZlZCBhYm92ZQorCWNibnoJeDI3LC5Mc3FyOHhfdGFpbAorCQkJCQkvLyBub3RlIHRoYXQgY2FycnkgZmxhZyBpcyBndWFyYW50ZWVkCisJCQkJCS8vIHRvIGJlIHplcm8gYXQgdGhpcyBwb2ludAorCWxkcAl4Nix4NyxbeDIsIzgqMF0KKwlzdWIJeDI3LHgzLHgxCS8vIGRvbmUgeWV0PworCXN1Ygl4MTYseDMseDUJLy8gcmV3aW5kZWQgbnAKKwlsZHAJeDgseDksW3gyLCM4KjJdCisJbGRwCXgxMCx4MTEsW3gyLCM4KjRdCisJbGRwCXgxMix4MTMsW3gyLCM4KjZdCisJY2J6CXgyNywuTHNxcjh4X3RhaWxfYnJlYWsKKworCWxkcgl4NCxbeDAsIy04KjhdCisJYWRkcwl4MTkseDE5LHg2CisJYWRjcwl4MjAseDIwLHg3CisJbGRwCXg2LHg3LFt4MSwjOCowXQorCWFkY3MJeDIxLHgyMSx4OAorCWFkY3MJeDIyLHgyMix4OQorCWxkcAl4OCx4OSxbeDEsIzgqMl0KKwlhZGNzCXgyMyx4MjMseDEwCisJYWRjcwl4MjQseDI0LHgxMQorCWxkcAl4MTAseDExLFt4MSwjOCo0XQorCWFkY3MJeDI1LHgyNSx4MTIKKwltb3YJeDI3LCMtOCo4CisJYWRjcwl4MjYseDI2LHgxMworCWxkcAl4MTIseDEzLFt4MSwjOCo2XQorCWFkZAl4MSx4MSwjOCo4CisJLy9hZGMJeDI4LHh6cix4enIJCS8vIG1vdmVkIGFib3ZlCisJYgkuTHNxcjh4X3RhaWwKKworLmFsaWduCTQKKy5Mc3FyOHhfdGFpbF9icmVhazoKKwlsZHIJeDQsW3gyOSwjMTEyXQkJLy8gcHVsbCBuMAorCWFkZAl4MjcseDIsIzgqOAkJLy8gZW5kIG9mIGN1cnJlbnQgdFtudW1dIHdpbmRvdworCisJc3Vicwl4enIseDMwLCMxCQkvLyAibW92ZSIgdG9wLW1vc3QgY2FycnkgdG8gY2FycnkgYml0CisJYWRjcwl4MTQseDE5LHg2CisJYWRjcwl4MTUseDIwLHg3CisJbGRwCXgxOSx4MjAsW3gwLCM4KjBdCisJYWRjcwl4MjEseDIxLHg4CisJbGRwCXg2LHg3LFt4MTYsIzgqMF0JLy8gcmVjYWxsIHRoYXQgeDE2IGlzICZuWzBdCisJYWRjcwl4MjIseDIyLHg5CisJbGRwCXg4LHg5LFt4MTYsIzgqMl0KKwlhZGNzCXgyMyx4MjMseDEwCisJYWRjcwl4MjQseDI0LHgxMQorCWxkcAl4MTAseDExLFt4MTYsIzgqNF0KKwlhZGNzCXgyNSx4MjUseDEyCisJYWRjcwl4MjYseDI2LHgxMworCWxkcAl4MTIseDEzLFt4MTYsIzgqNl0KKwlhZGQJeDEseDE2LCM4KjgKKwlhZGMJeDMwLHh6cix4enIJLy8gdG9wLW1vc3QgY2FycnkKKwltdWwJeDI4LHg0LHgxOQorCXN0cAl4MTQseDE1LFt4MiwjOCowXQorCXN0cAl4MjEseDIyLFt4MiwjOCoyXQorCWxkcAl4MjEseDIyLFt4MCwjOCoyXQorCXN0cAl4MjMseDI0LFt4MiwjOCo0XQorCWxkcAl4MjMseDI0LFt4MCwjOCo0XQorCWNtcAl4MjcseDI5CQkvLyBkaWQgd2UgaGl0IHRoZSBib3R0b20/CisJc3RwCXgyNSx4MjYsW3gyLCM4KjZdCisJbW92CXgyLHgwCQkJLy8gc2xpZGUgdGhlIHdpbmRvdworCWxkcAl4MjUseDI2LFt4MCwjOCo2XQorCW1vdgl4MjcsIzgKKwliLm5lCS5Mc3FyOHhfcmVkdWN0aW9uCisKKwkvLyBGaW5hbCBzdGVwLiBXZSBzZWUgaWYgcmVzdWx0IGlzIGxhcmdlciB0aGFuIG1vZHVsdXMsIGFuZAorCS8vIGlmIGl0IGlzLCBzdWJ0cmFjdCB0aGUgbW9kdWx1cy4gQnV0IGNvbXBhcmlzb24gaW1wbGllcworCS8vIHN1YnRyYWN0aW9uLiBTbyB3ZSBzdWJ0cmFjdCBtb2R1bHVzLCBzZWUgaWYgaXQgYm9ycm93ZWQsCisJLy8gYW5kIGNvbmRpdGlvbmFsbHkgY29weSBvcmlnaW5hbCB2YWx1ZS4KKwlsZHIJeDAsW3gyOSwjOTZdCQkvLyBwdWxsIHJwCisJYWRkCXgyLHgyLCM4KjgKKwlzdWJzCXgxNCx4MTkseDYKKwlzYmNzCXgxNSx4MjAseDcKKwlzdWIJeDI3LHg1LCM4KjgKKwltb3YJeDMseDAJCS8vIHgwIGNvcHkKKworLkxzcXI4eF9zdWI6CisJc2Jjcwl4MTYseDIxLHg4CisJbGRwCXg2LHg3LFt4MSwjOCowXQorCXNiY3MJeDE3LHgyMix4OQorCXN0cAl4MTQseDE1LFt4MCwjOCowXQorCXNiY3MJeDE0LHgyMyx4MTAKKwlsZHAJeDgseDksW3gxLCM4KjJdCisJc2Jjcwl4MTUseDI0LHgxMQorCXN0cAl4MTYseDE3LFt4MCwjOCoyXQorCXNiY3MJeDE2LHgyNSx4MTIKKwlsZHAJeDEwLHgxMSxbeDEsIzgqNF0KKwlzYmNzCXgxNyx4MjYseDEzCisJbGRwCXgxMix4MTMsW3gxLCM4KjZdCisJYWRkCXgxLHgxLCM4KjgKKwlsZHAJeDE5LHgyMCxbeDIsIzgqMF0KKwlzdWIJeDI3LHgyNywjOCo4CisJbGRwCXgyMSx4MjIsW3gyLCM4KjJdCisJbGRwCXgyMyx4MjQsW3gyLCM4KjRdCisJbGRwCXgyNSx4MjYsW3gyLCM4KjZdCisJYWRkCXgyLHgyLCM4KjgKKwlzdHAJeDE0LHgxNSxbeDAsIzgqNF0KKwlzYmNzCXgxNCx4MTkseDYKKwlzdHAJeDE2LHgxNyxbeDAsIzgqNl0KKwlhZGQJeDAseDAsIzgqOAorCXNiY3MJeDE1LHgyMCx4NworCWNibnoJeDI3LC5Mc3FyOHhfc3ViCisKKwlzYmNzCXgxNix4MjEseDgKKwltb3YJeDIsc3AKKwlhZGQJeDEsc3AseDUKKwlsZHAJeDYseDcsW3gzLCM4KjBdCisJc2Jjcwl4MTcseDIyLHg5CisJc3RwCXgxNCx4MTUsW3gwLCM4KjBdCisJc2Jjcwl4MTQseDIzLHgxMAorCWxkcAl4OCx4OSxbeDMsIzgqMl0KKwlzYmNzCXgxNSx4MjQseDExCisJc3RwCXgxNix4MTcsW3gwLCM4KjJdCisJc2Jjcwl4MTYseDI1LHgxMgorCWxkcAl4MTkseDIwLFt4MSwjOCowXQorCXNiY3MJeDE3LHgyNix4MTMKKwlsZHAJeDIxLHgyMixbeDEsIzgqMl0KKwlzYmNzCXh6cix4MzAseHpyCS8vIGRpZCBpdCBib3Jyb3c/CisJbGRyCXgzMCxbeDI5LCM4XQkJLy8gcHVsbCByZXR1cm4gYWRkcmVzcworCXN0cAl4MTQseDE1LFt4MCwjOCo0XQorCXN0cAl4MTYseDE3LFt4MCwjOCo2XQorCisJc3ViCXgyNyx4NSwjOCo0CisuTHNxcjR4X2NvbmRfY29weToKKwlzdWIJeDI3LHgyNywjOCo0CisJY3NlbAl4MTQseDE5LHg2LGxvCisJc3RwCXh6cix4enIsW3gyLCM4KjBdCisJY3NlbAl4MTUseDIwLHg3LGxvCisJbGRwCXg2LHg3LFt4MywjOCo0XQorCWxkcAl4MTkseDIwLFt4MSwjOCo0XQorCWNzZWwJeDE2LHgyMSx4OCxsbworCXN0cAl4enIseHpyLFt4MiwjOCoyXQorCWFkZAl4Mix4MiwjOCo0CisJY3NlbAl4MTcseDIyLHg5LGxvCisJbGRwCXg4LHg5LFt4MywjOCo2XQorCWxkcAl4MjEseDIyLFt4MSwjOCo2XQorCWFkZAl4MSx4MSwjOCo0CisJc3RwCXgxNCx4MTUsW3gzLCM4KjBdCisJc3RwCXgxNix4MTcsW3gzLCM4KjJdCisJYWRkCXgzLHgzLCM4KjQKKwlzdHAJeHpyLHh6cixbeDEsIzgqMF0KKwlzdHAJeHpyLHh6cixbeDEsIzgqMl0KKwljYm56CXgyNywuTHNxcjR4X2NvbmRfY29weQorCisJY3NlbAl4MTQseDE5LHg2LGxvCisJc3RwCXh6cix4enIsW3gyLCM4KjBdCisJY3NlbAl4MTUseDIwLHg3LGxvCisJc3RwCXh6cix4enIsW3gyLCM4KjJdCisJY3NlbAl4MTYseDIxLHg4LGxvCisJY3NlbAl4MTcseDIyLHg5LGxvCisJc3RwCXgxNCx4MTUsW3gzLCM4KjBdCisJc3RwCXgxNix4MTcsW3gzLCM4KjJdCisKKwliCS5Mc3FyOHhfZG9uZQorCisuYWxpZ24JNAorLkxzcXI4eDhfcG9zdF9jb25kaXRpb246CisJYWRjCXgyOCx4enIseHpyCisJbGRyCXgzMCxbeDI5LCM4XQkJLy8gcHVsbCByZXR1cm4gYWRkcmVzcworCS8vIHgxOS03LHgyOCBob2xkIHJlc3VsdCwgeDYtNyBob2xkIG1vZHVsdXMKKwlzdWJzCXg2LHgxOSx4NgorCWxkcgl4MSxbeDI5LCM5Nl0JCS8vIHB1bGwgcnAKKwlzYmNzCXg3LHgyMCx4NworCXN0cAl4enIseHpyLFtzcCwjOCowXQorCXNiY3MJeDgseDIxLHg4CisJc3RwCXh6cix4enIsW3NwLCM4KjJdCisJc2Jjcwl4OSx4MjIseDkKKwlzdHAJeHpyLHh6cixbc3AsIzgqNF0KKwlzYmNzCXgxMCx4MjMseDEwCisJc3RwCXh6cix4enIsW3NwLCM4KjZdCisJc2Jjcwl4MTEseDI0LHgxMQorCXN0cAl4enIseHpyLFtzcCwjOCo4XQorCXNiY3MJeDEyLHgyNSx4MTIKKwlzdHAJeHpyLHh6cixbc3AsIzgqMTBdCisJc2Jjcwl4MTMseDI2LHgxMworCXN0cAl4enIseHpyLFtzcCwjOCoxMl0KKwlzYmNzCXgyOCx4MjgseHpyCS8vIGRpZCBpdCBib3Jyb3c/CisJc3RwCXh6cix4enIsW3NwLCM4KjE0XQorCisJLy8geDYtNyBob2xkIHJlc3VsdC1tb2R1bHVzCisJY3NlbAl4Nix4MTkseDYsbG8KKwljc2VsCXg3LHgyMCx4NyxsbworCWNzZWwJeDgseDIxLHg4LGxvCisJY3NlbAl4OSx4MjIseDksbG8KKwlzdHAJeDYseDcsW3gxLCM4KjBdCisJY3NlbAl4MTAseDIzLHgxMCxsbworCWNzZWwJeDExLHgyNCx4MTEsbG8KKwlzdHAJeDgseDksW3gxLCM4KjJdCisJY3NlbAl4MTIseDI1LHgxMixsbworCWNzZWwJeDEzLHgyNix4MTMsbG8KKwlzdHAJeDEwLHgxMSxbeDEsIzgqNF0KKwlzdHAJeDEyLHgxMyxbeDEsIzgqNl0KKworLkxzcXI4eF9kb25lOgorCWxkcAl4MTkseDIwLFt4MjksIzE2XQorCW1vdglzcCx4MjkKKwlsZHAJeDIxLHgyMixbeDI5LCMzMl0KKwltb3YJeDAsIzEKKwlsZHAJeDIzLHgyNCxbeDI5LCM0OF0KKwlsZHAJeDI1LHgyNixbeDI5LCM2NF0KKwlsZHAJeDI3LHgyOCxbeDI5LCM4MF0KKwlsZHIJeDI5LFtzcF0sIzEyOAorCXJldAorLnNpemUJX19ibl9zcXI4eF9tb250LC4tX19ibl9zcXI4eF9tb250CisudHlwZQlfX2JuX211bDR4X21vbnQsJWZ1bmN0aW9uCisuYWxpZ24JNQorX19ibl9tdWw0eF9tb250OgorCXN0cAl4MjkseDMwLFtzcCwjLTEyOF0hCisJYWRkCXgyOSxzcCwjMAorCXN0cAl4MTkseDIwLFtzcCwjMTZdCisJc3RwCXgyMSx4MjIsW3NwLCMzMl0KKwlzdHAJeDIzLHgyNCxbc3AsIzQ4XQorCXN0cAl4MjUseDI2LFtzcCwjNjRdCisJc3RwCXgyNyx4MjgsW3NwLCM4MF0KKworCXN1Ygl4MjYsc3AseDUsbHNsIzMKKwlsc2wJeDUseDUsIzMKKwlsZHIJeDQsW3g0XQkJLy8gKm4wCisJc3ViCXNwLHgyNiwjOCo0CQkvLyBhbGxvY2EKKworCWFkZAl4MTAseDIseDUKKwlhZGQJeDI3LHgxLHg1CisJc3RwCXgwLHgxMCxbeDI5LCM5Nl0JLy8gb2ZmbG9hZCBycCBhbmQgJmJbbnVtXQorCisJbGRyCXgyNCxbeDIsIzgqMF0JCS8vIGJbMF0KKwlsZHAJeDYseDcsW3gxLCM4KjBdCS8vIGFbMC4uM10KKwlsZHAJeDgseDksW3gxLCM4KjJdCisJYWRkCXgxLHgxLCM4KjQKKwltb3YJeDE5LHh6cgorCW1vdgl4MjAseHpyCisJbW92CXgyMSx4enIKKwltb3YJeDIyLHh6cgorCWxkcAl4MTQseDE1LFt4MywjOCowXQkvLyBuWzAuLjNdCisJbGRwCXgxNix4MTcsW3gzLCM4KjJdCisJYWRkcwl4Myx4MywjOCo0CQkvLyBjbGVhciBjYXJyeSBiaXQKKwltb3YJeDAseHpyCisJbW92CXgyOCwjMAorCW1vdgl4MjYsc3AKKworLkxvb3BfbXVsNHhfMXN0X3JlZHVjdGlvbjoKKwltdWwJeDEwLHg2LHgyNAkJLy8gbG8oYVswLi4zXSpiWzBdKQorCWFkYwl4MCx4MCx4enIJLy8gbW9kdWxvLXNjaGVkdWxlZAorCW11bAl4MTEseDcseDI0CisJYWRkCXgyOCx4MjgsIzgKKwltdWwJeDEyLHg4LHgyNAorCWFuZAl4MjgseDI4LCMzMQorCW11bAl4MTMseDkseDI0CisJYWRkcwl4MTkseDE5LHgxMAorCXVtdWxoCXgxMCx4Nix4MjQJCS8vIGhpKGFbMC4uM10qYlswXSkKKwlhZGNzCXgyMCx4MjAseDExCisJbXVsCXgyNSx4MTkseDQJCS8vIHRbMF0qbjAKKwlhZGNzCXgyMSx4MjEseDEyCisJdW11bGgJeDExLHg3LHgyNAorCWFkY3MJeDIyLHgyMix4MTMKKwl1bXVsaAl4MTIseDgseDI0CisJYWRjCXgyMyx4enIseHpyCisJdW11bGgJeDEzLHg5LHgyNAorCWxkcgl4MjQsW3gyLHgyOF0JCS8vIG5leHQgYltpXSAob3IgYlswXSkKKwlhZGRzCXgyMCx4MjAseDEwCisJLy8gKCopCW11bAl4MTAseDE0LHgyNQkvLyBsbyhuWzAuLjNdKnRbMF0qbjApCisJc3RyCXgyNSxbeDI2XSwjOAkJLy8gcHV0IGFzaWRlIHRbMF0qbjAgZm9yIHRhaWwgcHJvY2Vzc2luZworCWFkY3MJeDIxLHgyMSx4MTEKKwltdWwJeDExLHgxNSx4MjUKKwlhZGNzCXgyMix4MjIseDEyCisJbXVsCXgxMix4MTYseDI1CisJYWRjCXgyMyx4MjMseDEzCQkvLyBjYW4ndCBvdmVyZmxvdworCW11bAl4MTMseDE3LHgyNQorCS8vICgqKQlhZGRzCXh6cix4MTkseDEwCisJc3Vicwl4enIseDE5LCMxCQkvLyAoKikKKwl1bXVsaAl4MTAseDE0LHgyNQkJLy8gaGkoblswLi4zXSp0WzBdKm4wKQorCWFkY3MJeDE5LHgyMCx4MTEKKwl1bXVsaAl4MTEseDE1LHgyNQorCWFkY3MJeDIwLHgyMSx4MTIKKwl1bXVsaAl4MTIseDE2LHgyNQorCWFkY3MJeDIxLHgyMix4MTMKKwl1bXVsaAl4MTMseDE3LHgyNQorCWFkY3MJeDIyLHgyMyx4MAorCWFkYwl4MCx4enIseHpyCisJYWRkcwl4MTkseDE5LHgxMAorCXN1Ygl4MTAseDI3LHgxCisJYWRjcwl4MjAseDIwLHgxMQorCWFkY3MJeDIxLHgyMSx4MTIKKwlhZGNzCXgyMix4MjIseDEzCisJLy9hZGMJeDAseDAseHpyCisJY2Juegl4MjgsLkxvb3BfbXVsNHhfMXN0X3JlZHVjdGlvbgorCisJY2J6CXgxMCwuTG11bDR4NF9wb3N0X2NvbmRpdGlvbgorCisJbGRwCXg2LHg3LFt4MSwjOCowXQkvLyBhWzQuLjddCisJbGRwCXg4LHg5LFt4MSwjOCoyXQorCWFkZAl4MSx4MSwjOCo0CisJbGRyCXgyNSxbc3BdCQkvLyBhWzBdKm4wCisJbGRwCXgxNCx4MTUsW3gzLCM4KjBdCS8vIG5bNC4uN10KKwlsZHAJeDE2LHgxNyxbeDMsIzgqMl0KKwlhZGQJeDMseDMsIzgqNAorCisuTG9vcF9tdWw0eF8xc3RfdGFpbDoKKwltdWwJeDEwLHg2LHgyNAkJLy8gbG8oYVs0Li43XSpiW2ldKQorCWFkYwl4MCx4MCx4enIJLy8gbW9kdWxvLXNjaGVkdWxlZAorCW11bAl4MTEseDcseDI0CisJYWRkCXgyOCx4MjgsIzgKKwltdWwJeDEyLHg4LHgyNAorCWFuZAl4MjgseDI4LCMzMQorCW11bAl4MTMseDkseDI0CisJYWRkcwl4MTkseDE5LHgxMAorCXVtdWxoCXgxMCx4Nix4MjQJCS8vIGhpKGFbNC4uN10qYltpXSkKKwlhZGNzCXgyMCx4MjAseDExCisJdW11bGgJeDExLHg3LHgyNAorCWFkY3MJeDIxLHgyMSx4MTIKKwl1bXVsaAl4MTIseDgseDI0CisJYWRjcwl4MjIseDIyLHgxMworCXVtdWxoCXgxMyx4OSx4MjQKKwlhZGMJeDIzLHh6cix4enIKKwlsZHIJeDI0LFt4Mix4MjhdCQkvLyBuZXh0IGJbaV0gKG9yIGJbMF0pCisJYWRkcwl4MjAseDIwLHgxMAorCW11bAl4MTAseDE0LHgyNQkJLy8gbG8obls0Li43XSphWzBdKm4wKQorCWFkY3MJeDIxLHgyMSx4MTEKKwltdWwJeDExLHgxNSx4MjUKKwlhZGNzCXgyMix4MjIseDEyCisJbXVsCXgxMix4MTYseDI1CisJYWRjCXgyMyx4MjMseDEzCQkvLyBjYW4ndCBvdmVyZmxvdworCW11bAl4MTMseDE3LHgyNQorCWFkZHMJeDE5LHgxOSx4MTAKKwl1bXVsaAl4MTAseDE0LHgyNQkJLy8gaGkobls0Li43XSphWzBdKm4wKQorCWFkY3MJeDIwLHgyMCx4MTEKKwl1bXVsaAl4MTEseDE1LHgyNQorCWFkY3MJeDIxLHgyMSx4MTIKKwl1bXVsaAl4MTIseDE2LHgyNQorCWFkY3MJeDIyLHgyMix4MTMKKwlhZGNzCXgyMyx4MjMseDAKKwl1bXVsaAl4MTMseDE3LHgyNQorCWFkYwl4MCx4enIseHpyCisJbGRyCXgyNSxbc3AseDI4XQkJLy8gbmV4dCB0WzBdKm4wCisJc3RyCXgxOSxbeDI2XSwjOAkJLy8gcmVzdWx0ISEhCisJYWRkcwl4MTkseDIwLHgxMAorCXN1Ygl4MTAseDI3LHgxCQkvLyBkb25lIHlldD8KKwlhZGNzCXgyMCx4MjEseDExCisJYWRjcwl4MjEseDIyLHgxMgorCWFkY3MJeDIyLHgyMyx4MTMKKwkvL2FkYwl4MCx4MCx4enIKKwljYm56CXgyOCwuTG9vcF9tdWw0eF8xc3RfdGFpbAorCisJc3ViCXgxMSx4MjcseDUJLy8gcmV3aW5kZWQgeDEKKwljYnoJeDEwLC5MbXVsNHhfcHJvY2VlZAorCisJbGRwCXg2LHg3LFt4MSwjOCowXQorCWxkcAl4OCx4OSxbeDEsIzgqMl0KKwlhZGQJeDEseDEsIzgqNAorCWxkcAl4MTQseDE1LFt4MywjOCowXQorCWxkcAl4MTYseDE3LFt4MywjOCoyXQorCWFkZAl4Myx4MywjOCo0CisJYgkuTG9vcF9tdWw0eF8xc3RfdGFpbAorCisuYWxpZ24JNQorLkxtdWw0eF9wcm9jZWVkOgorCWxkcgl4MjQsW3gyLCM4KjRdIQkJLy8gKisrYgorCWFkYwl4MzAseDAseHpyCisJbGRwCXg2LHg3LFt4MTEsIzgqMF0JLy8gYVswLi4zXQorCXN1Ygl4Myx4Myx4NQkJLy8gcmV3aW5kIG5wCisJbGRwCXg4LHg5LFt4MTEsIzgqMl0KKwlhZGQJeDEseDExLCM4KjQKKworCXN0cAl4MTkseDIwLFt4MjYsIzgqMF0JLy8gcmVzdWx0ISEhCisJbGRwCXgxOSx4MjAsW3NwLCM4KjRdCS8vIHRbMC4uM10KKwlzdHAJeDIxLHgyMixbeDI2LCM4KjJdCS8vIHJlc3VsdCEhIQorCWxkcAl4MjEseDIyLFtzcCwjOCo2XQorCisJbGRwCXgxNCx4MTUsW3gzLCM4KjBdCS8vIG5bMC4uM10KKwltb3YJeDI2LHNwCisJbGRwCXgxNix4MTcsW3gzLCM4KjJdCisJYWRkcwl4Myx4MywjOCo0CQkvLyBjbGVhciBjYXJyeSBiaXQKKwltb3YJeDAseHpyCisKKy5hbGlnbgk0CisuTG9vcF9tdWw0eF9yZWR1Y3Rpb246CisJbXVsCXgxMCx4Nix4MjQJCS8vIGxvKGFbMC4uM10qYls0XSkKKwlhZGMJeDAseDAseHpyCS8vIG1vZHVsby1zY2hlZHVsZWQKKwltdWwJeDExLHg3LHgyNAorCWFkZAl4MjgseDI4LCM4CisJbXVsCXgxMix4OCx4MjQKKwlhbmQJeDI4LHgyOCwjMzEKKwltdWwJeDEzLHg5LHgyNAorCWFkZHMJeDE5LHgxOSx4MTAKKwl1bXVsaAl4MTAseDYseDI0CQkvLyBoaShhWzAuLjNdKmJbNF0pCisJYWRjcwl4MjAseDIwLHgxMQorCW11bAl4MjUseDE5LHg0CQkvLyB0WzBdKm4wCisJYWRjcwl4MjEseDIxLHgxMgorCXVtdWxoCXgxMSx4Nyx4MjQKKwlhZGNzCXgyMix4MjIseDEzCisJdW11bGgJeDEyLHg4LHgyNAorCWFkYwl4MjMseHpyLHh6cgorCXVtdWxoCXgxMyx4OSx4MjQKKwlsZHIJeDI0LFt4Mix4MjhdCQkvLyBuZXh0IGJbaV0KKwlhZGRzCXgyMCx4MjAseDEwCisJLy8gKCopCW11bAl4MTAseDE0LHgyNQorCXN0cgl4MjUsW3gyNl0sIzgJCS8vIHB1dCBhc2lkZSB0WzBdKm4wIGZvciB0YWlsIHByb2Nlc3NpbmcKKwlhZGNzCXgyMSx4MjEseDExCisJbXVsCXgxMSx4MTUseDI1CQkvLyBsbyhuWzAuLjNdKnRbMF0qbjAKKwlhZGNzCXgyMix4MjIseDEyCisJbXVsCXgxMix4MTYseDI1CisJYWRjCXgyMyx4MjMseDEzCQkvLyBjYW4ndCBvdmVyZmxvdworCW11bAl4MTMseDE3LHgyNQorCS8vICgqKQlhZGRzCXh6cix4MTkseDEwCisJc3Vicwl4enIseDE5LCMxCQkvLyAoKikKKwl1bXVsaAl4MTAseDE0LHgyNQkJLy8gaGkoblswLi4zXSp0WzBdKm4wCisJYWRjcwl4MTkseDIwLHgxMQorCXVtdWxoCXgxMSx4MTUseDI1CisJYWRjcwl4MjAseDIxLHgxMgorCXVtdWxoCXgxMix4MTYseDI1CisJYWRjcwl4MjEseDIyLHgxMworCXVtdWxoCXgxMyx4MTcseDI1CisJYWRjcwl4MjIseDIzLHgwCisJYWRjCXgwLHh6cix4enIKKwlhZGRzCXgxOSx4MTkseDEwCisJYWRjcwl4MjAseDIwLHgxMQorCWFkY3MJeDIxLHgyMSx4MTIKKwlhZGNzCXgyMix4MjIseDEzCisJLy9hZGMJeDAseDAseHpyCisJY2Juegl4MjgsLkxvb3BfbXVsNHhfcmVkdWN0aW9uCisKKwlhZGMJeDAseDAseHpyCisJbGRwCXgxMCx4MTEsW3gyNiwjOCo0XQkvLyB0WzQuLjddCisJbGRwCXgxMix4MTMsW3gyNiwjOCo2XQorCWxkcAl4Nix4NyxbeDEsIzgqMF0JLy8gYVs0Li43XQorCWxkcAl4OCx4OSxbeDEsIzgqMl0KKwlhZGQJeDEseDEsIzgqNAorCWFkZHMJeDE5LHgxOSx4MTAKKwlhZGNzCXgyMCx4MjAseDExCisJYWRjcwl4MjEseDIxLHgxMgorCWFkY3MJeDIyLHgyMix4MTMKKwkvL2FkYwl4MCx4MCx4enIKKworCWxkcgl4MjUsW3NwXQkJLy8gdFswXSpuMAorCWxkcAl4MTQseDE1LFt4MywjOCowXQkvLyBuWzQuLjddCisJbGRwCXgxNix4MTcsW3gzLCM4KjJdCisJYWRkCXgzLHgzLCM4KjQKKworLmFsaWduCTQKKy5Mb29wX211bDR4X3RhaWw6CisJbXVsCXgxMCx4Nix4MjQJCS8vIGxvKGFbNC4uN10qYls0XSkKKwlhZGMJeDAseDAseHpyCS8vIG1vZHVsby1zY2hlZHVsZWQKKwltdWwJeDExLHg3LHgyNAorCWFkZAl4MjgseDI4LCM4CisJbXVsCXgxMix4OCx4MjQKKwlhbmQJeDI4LHgyOCwjMzEKKwltdWwJeDEzLHg5LHgyNAorCWFkZHMJeDE5LHgxOSx4MTAKKwl1bXVsaAl4MTAseDYseDI0CQkvLyBoaShhWzQuLjddKmJbNF0pCisJYWRjcwl4MjAseDIwLHgxMQorCXVtdWxoCXgxMSx4Nyx4MjQKKwlhZGNzCXgyMSx4MjEseDEyCisJdW11bGgJeDEyLHg4LHgyNAorCWFkY3MJeDIyLHgyMix4MTMKKwl1bXVsaAl4MTMseDkseDI0CisJYWRjCXgyMyx4enIseHpyCisJbGRyCXgyNCxbeDIseDI4XQkJLy8gbmV4dCBiW2ldCisJYWRkcwl4MjAseDIwLHgxMAorCW11bAl4MTAseDE0LHgyNQkJLy8gbG8obls0Li43XSp0WzBdKm4wKQorCWFkY3MJeDIxLHgyMSx4MTEKKwltdWwJeDExLHgxNSx4MjUKKwlhZGNzCXgyMix4MjIseDEyCisJbXVsCXgxMix4MTYseDI1CisJYWRjCXgyMyx4MjMseDEzCQkvLyBjYW4ndCBvdmVyZmxvdworCW11bAl4MTMseDE3LHgyNQorCWFkZHMJeDE5LHgxOSx4MTAKKwl1bXVsaAl4MTAseDE0LHgyNQkJLy8gaGkobls0Li43XSp0WzBdKm4wKQorCWFkY3MJeDIwLHgyMCx4MTEKKwl1bXVsaAl4MTEseDE1LHgyNQorCWFkY3MJeDIxLHgyMSx4MTIKKwl1bXVsaAl4MTIseDE2LHgyNQorCWFkY3MJeDIyLHgyMix4MTMKKwl1bXVsaAl4MTMseDE3LHgyNQorCWFkY3MJeDIzLHgyMyx4MAorCWxkcgl4MjUsW3NwLHgyOF0JCS8vIG5leHQgYVswXSpuMAorCWFkYwl4MCx4enIseHpyCisJc3RyCXgxOSxbeDI2XSwjOAkJLy8gcmVzdWx0ISEhCisJYWRkcwl4MTkseDIwLHgxMAorCXN1Ygl4MTAseDI3LHgxCQkvLyBkb25lIHlldD8KKwlhZGNzCXgyMCx4MjEseDExCisJYWRjcwl4MjEseDIyLHgxMgorCWFkY3MJeDIyLHgyMyx4MTMKKwkvL2FkYwl4MCx4MCx4enIKKwljYm56CXgyOCwuTG9vcF9tdWw0eF90YWlsCisKKwlzdWIJeDExLHgzLHg1CQkvLyByZXdpbmRlZCBucD8KKwlhZGMJeDAseDAseHpyCisJY2J6CXgxMCwuTG9vcF9tdWw0eF9icmVhaworCisJbGRwCXgxMCx4MTEsW3gyNiwjOCo0XQorCWxkcAl4MTIseDEzLFt4MjYsIzgqNl0KKwlsZHAJeDYseDcsW3gxLCM4KjBdCisJbGRwCXg4LHg5LFt4MSwjOCoyXQorCWFkZAl4MSx4MSwjOCo0CisJYWRkcwl4MTkseDE5LHgxMAorCWFkY3MJeDIwLHgyMCx4MTEKKwlhZGNzCXgyMSx4MjEseDEyCisJYWRjcwl4MjIseDIyLHgxMworCS8vYWRjCXgwLHgwLHh6cgorCWxkcAl4MTQseDE1LFt4MywjOCowXQorCWxkcAl4MTYseDE3LFt4MywjOCoyXQorCWFkZAl4Myx4MywjOCo0CisJYgkuTG9vcF9tdWw0eF90YWlsCisKKy5hbGlnbgk0CisuTG9vcF9tdWw0eF9icmVhazoKKwlsZHAJeDEyLHgxMyxbeDI5LCM5Nl0JLy8gcHVsbCBycCBhbmQgJmJbbnVtXQorCWFkZHMJeDE5LHgxOSx4MzAKKwlhZGQJeDIseDIsIzgqNAkJLy8gYnArKworCWFkY3MJeDIwLHgyMCx4enIKKwlzdWIJeDEseDEseDUJCS8vIHJld2luZCBhcAorCWFkY3MJeDIxLHgyMSx4enIKKwlzdHAJeDE5LHgyMCxbeDI2LCM4KjBdCS8vIHJlc3VsdCEhIQorCWFkY3MJeDIyLHgyMix4enIKKwlsZHAJeDE5LHgyMCxbc3AsIzgqNF0JLy8gdFswLi4zXQorCWFkYwl4MzAseDAseHpyCisJc3RwCXgyMSx4MjIsW3gyNiwjOCoyXQkvLyByZXN1bHQhISEKKwljbXAJeDIseDEzCQkJLy8gZG9uZSB5ZXQ/CisJbGRwCXgyMSx4MjIsW3NwLCM4KjZdCisJbGRwCXgxNCx4MTUsW3gxMSwjOCowXQkvLyBuWzAuLjNdCisJbGRwCXgxNix4MTcsW3gxMSwjOCoyXQorCWFkZAl4Myx4MTEsIzgqNAorCWIuZXEJLkxtdWw0eF9wb3N0CisKKwlsZHIJeDI0LFt4Ml0KKwlsZHAJeDYseDcsW3gxLCM4KjBdCS8vIGFbMC4uM10KKwlsZHAJeDgseDksW3gxLCM4KjJdCisJYWRkcwl4MSx4MSwjOCo0CQkvLyBjbGVhciBjYXJyeSBiaXQKKwltb3YJeDAseHpyCisJbW92CXgyNixzcAorCWIJLkxvb3BfbXVsNHhfcmVkdWN0aW9uCisKKy5hbGlnbgk0CisuTG11bDR4X3Bvc3Q6CisJLy8gRmluYWwgc3RlcC4gV2Ugc2VlIGlmIHJlc3VsdCBpcyBsYXJnZXIgdGhhbiBtb2R1bHVzLCBhbmQKKwkvLyBpZiBpdCBpcywgc3VidHJhY3QgdGhlIG1vZHVsdXMuIEJ1dCBjb21wYXJpc29uIGltcGxpZXMKKwkvLyBzdWJ0cmFjdGlvbi4gU28gd2Ugc3VidHJhY3QgbW9kdWx1cywgc2VlIGlmIGl0IGJvcnJvd2VkLAorCS8vIGFuZCBjb25kaXRpb25hbGx5IGNvcHkgb3JpZ2luYWwgdmFsdWUuCisJbW92CXgwLHgxMgorCW1vdgl4MjcseDEyCQkvLyB4MCBjb3B5CisJc3Vicwl4MTAseDE5LHgxNAorCWFkZAl4MjYsc3AsIzgqOAorCXNiY3MJeDExLHgyMCx4MTUKKwlzdWIJeDI4LHg1LCM4KjQKKworLkxtdWw0eF9zdWI6CisJc2Jjcwl4MTIseDIxLHgxNgorCWxkcAl4MTQseDE1LFt4MywjOCowXQorCXN1Ygl4MjgseDI4LCM4KjQKKwlsZHAJeDE5LHgyMCxbeDI2LCM4KjBdCisJc2Jjcwl4MTMseDIyLHgxNworCWxkcAl4MTYseDE3LFt4MywjOCoyXQorCWFkZAl4Myx4MywjOCo0CisJbGRwCXgyMSx4MjIsW3gyNiwjOCoyXQorCWFkZAl4MjYseDI2LCM4KjQKKwlzdHAJeDEwLHgxMSxbeDAsIzgqMF0KKwlzYmNzCXgxMCx4MTkseDE0CisJc3RwCXgxMix4MTMsW3gwLCM4KjJdCisJYWRkCXgwLHgwLCM4KjQKKwlzYmNzCXgxMSx4MjAseDE1CisJY2Juegl4MjgsLkxtdWw0eF9zdWIKKworCXNiY3MJeDEyLHgyMSx4MTYKKwltb3YJeDI2LHNwCisJYWRkCXgxLHNwLCM4KjQKKwlsZHAJeDYseDcsW3gyNywjOCowXQorCXNiY3MJeDEzLHgyMix4MTcKKwlzdHAJeDEwLHgxMSxbeDAsIzgqMF0KKwlsZHAJeDgseDksW3gyNywjOCoyXQorCXN0cAl4MTIseDEzLFt4MCwjOCoyXQorCWxkcAl4MTkseDIwLFt4MSwjOCowXQorCWxkcAl4MjEseDIyLFt4MSwjOCoyXQorCXNiY3MJeHpyLHgzMCx4enIJLy8gZGlkIGl0IGJvcnJvdz8KKwlsZHIJeDMwLFt4MjksIzhdCQkvLyBwdWxsIHJldHVybiBhZGRyZXNzCisKKwlzdWIJeDI4LHg1LCM4KjQKKy5MbXVsNHhfY29uZF9jb3B5OgorCXN1Ygl4MjgseDI4LCM4KjQKKwljc2VsCXgxMCx4MTkseDYsbG8KKwlzdHAJeHpyLHh6cixbeDI2LCM4KjBdCisJY3NlbAl4MTEseDIwLHg3LGxvCisJbGRwCXg2LHg3LFt4MjcsIzgqNF0KKwlsZHAJeDE5LHgyMCxbeDEsIzgqNF0KKwljc2VsCXgxMix4MjEseDgsbG8KKwlzdHAJeHpyLHh6cixbeDI2LCM4KjJdCisJYWRkCXgyNix4MjYsIzgqNAorCWNzZWwJeDEzLHgyMix4OSxsbworCWxkcAl4OCx4OSxbeDI3LCM4KjZdCisJbGRwCXgyMSx4MjIsW3gxLCM4KjZdCisJYWRkCXgxLHgxLCM4KjQKKwlzdHAJeDEwLHgxMSxbeDI3LCM4KjBdCisJc3RwCXgxMix4MTMsW3gyNywjOCoyXQorCWFkZAl4MjcseDI3LCM4KjQKKwljYm56CXgyOCwuTG11bDR4X2NvbmRfY29weQorCisJY3NlbAl4MTAseDE5LHg2LGxvCisJc3RwCXh6cix4enIsW3gyNiwjOCowXQorCWNzZWwJeDExLHgyMCx4NyxsbworCXN0cAl4enIseHpyLFt4MjYsIzgqMl0KKwljc2VsCXgxMix4MjEseDgsbG8KKwlzdHAJeHpyLHh6cixbeDI2LCM4KjNdCisJY3NlbAl4MTMseDIyLHg5LGxvCisJc3RwCXh6cix4enIsW3gyNiwjOCo0XQorCXN0cAl4MTAseDExLFt4MjcsIzgqMF0KKwlzdHAJeDEyLHgxMyxbeDI3LCM4KjJdCisKKwliCS5MbXVsNHhfZG9uZQorCisuYWxpZ24JNAorLkxtdWw0eDRfcG9zdF9jb25kaXRpb246CisJYWRjCXgwLHgwLHh6cgorCWxkcgl4MSxbeDI5LCM5Nl0JCS8vIHB1bGwgcnAKKwkvLyB4MTktMyx4MCBob2xkIHJlc3VsdCwgeDE0LTcgaG9sZCBtb2R1bHVzCisJc3Vicwl4Nix4MTkseDE0CisJbGRyCXgzMCxbeDI5LCM4XQkJLy8gcHVsbCByZXR1cm4gYWRkcmVzcworCXNiY3MJeDcseDIwLHgxNQorCXN0cAl4enIseHpyLFtzcCwjOCowXQorCXNiY3MJeDgseDIxLHgxNgorCXN0cAl4enIseHpyLFtzcCwjOCoyXQorCXNiY3MJeDkseDIyLHgxNworCXN0cAl4enIseHpyLFtzcCwjOCo0XQorCXNiY3MJeHpyLHgwLHh6cgkJLy8gZGlkIGl0IGJvcnJvdz8KKwlzdHAJeHpyLHh6cixbc3AsIzgqNl0KKworCS8vIHg2LTMgaG9sZCByZXN1bHQtbW9kdWx1cworCWNzZWwJeDYseDE5LHg2LGxvCisJY3NlbAl4Nyx4MjAseDcsbG8KKwljc2VsCXg4LHgyMSx4OCxsbworCWNzZWwJeDkseDIyLHg5LGxvCisJc3RwCXg2LHg3LFt4MSwjOCowXQorCXN0cAl4OCx4OSxbeDEsIzgqMl0KKworLkxtdWw0eF9kb25lOgorCWxkcAl4MTkseDIwLFt4MjksIzE2XQorCW1vdglzcCx4MjkKKwlsZHAJeDIxLHgyMixbeDI5LCMzMl0KKwltb3YJeDAsIzEKKwlsZHAJeDIzLHgyNCxbeDI5LCM0OF0KKwlsZHAJeDI1LHgyNixbeDI5LCM2NF0KKwlsZHAJeDI3LHgyOCxbeDI5LCM4MF0KKwlsZHIJeDI5LFtzcF0sIzEyOAorCXJldAorLnNpemUJX19ibl9tdWw0eF9tb250LC4tX19ibl9tdWw0eF9tb250CisuYnl0ZQk3NywxMTEsMTEwLDExNiwxMDMsMTExLDEwOSwxMDEsMTE0LDEyMSwzMiw3NywxMTcsMTA4LDExNiwxMDUsMTEyLDEwOCwxMDUsOTksOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCisuYWxpZ24JMgorLmFsaWduCTQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjguUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmNmJmZgotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLWFybXY4LlMKQEAgLTAsMCArMSwxOTcxIEBACisjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyNpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CisKKy50ZXh0CisKKworCisuYWxpZ24JNQorLkxzaWdtYToKKy5xdWFkCTB4MzMyMDY0NmU2MTcwNzg2NSwweDZiMjA2NTc0Nzk2MjJkMzIJCS8vIGVuZGlhbi1uZXV0cmFsCisuTG9uZToKKy5sb25nCTEsMCwwLDAKKy5MT1BFTlNTTF9hcm1jYXBfUDoKKyNpZmRlZglfX0lMUDMyX18KKy5sb25nCU9QRU5TU0xfYXJtY2FwX1AtLgorI2Vsc2UKKy5xdWFkCU9QRU5TU0xfYXJtY2FwX1AtLgorI2VuZGlmCisuYnl0ZQk2NywxMDQsOTcsNjcsMTA0LDk3LDUwLDQ4LDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCisuYWxpZ24JMgorCisuZ2xvYmwJQ2hhQ2hhMjBfY3RyMzIKKy5oaWRkZW4JQ2hhQ2hhMjBfY3RyMzIKKy50eXBlCUNoYUNoYTIwX2N0cjMyLCVmdW5jdGlvbgorLmFsaWduCTUKK0NoYUNoYTIwX2N0cjMyOgorCWNiegl4MiwuTGFib3J0CisJYWRyCXg1LC5MT1BFTlNTTF9hcm1jYXBfUAorCWNtcAl4MiwjMTkyCisJYi5sbwkuTHNob3J0CisjaWZkZWYJX19JTFAzMl9fCisJbGRyc3cJeDYsW3g1XQorI2Vsc2UKKwlsZHIJeDYsW3g1XQorI2VuZGlmCisJbGRyCXcxNyxbeDYseDVdCisJdHN0CXcxNywjQVJNVjdfTkVPTgorCWIubmUJQ2hhQ2hhMjBfbmVvbgorCisuTHNob3J0OgorCXN0cAl4MjkseDMwLFtzcCwjLTk2XSEKKwlhZGQJeDI5LHNwLCMwCisKKwlhZHIJeDUsLkxzaWdtYQorCXN0cAl4MTkseDIwLFtzcCwjMTZdCisJc3RwCXgyMSx4MjIsW3NwLCMzMl0KKwlzdHAJeDIzLHgyNCxbc3AsIzQ4XQorCXN0cAl4MjUseDI2LFtzcCwjNjRdCisJc3RwCXgyNyx4MjgsW3NwLCM4MF0KKwlzdWIJc3Asc3AsIzY0CisKKwlsZHAJeDIyLHgyMyxbeDVdCQkvLyBsb2FkIHNpZ21hCisJbGRwCXgyNCx4MjUsW3gzXQkJLy8gbG9hZCBrZXkKKwlsZHAJeDI2LHgyNyxbeDMsIzE2XQorCWxkcAl4MjgseDMwLFt4NF0JCS8vIGxvYWQgY291bnRlcgorI2lmZGVmCV9fQVJNRUJfXworCXJvcgl4MjQseDI0LCMzMgorCXJvcgl4MjUseDI1LCMzMgorCXJvcgl4MjYseDI2LCMzMgorCXJvcgl4MjcseDI3LCMzMgorCXJvcgl4MjgseDI4LCMzMgorCXJvcgl4MzAseDMwLCMzMgorI2VuZGlmCisKKy5Mb29wX291dGVyOgorCW1vdgl3NSx3MjIJCQkvLyB1bnBhY2sga2V5IGJsb2NrCisJbHNyCXg2LHgyMiwjMzIKKwltb3YJdzcsdzIzCisJbHNyCXg4LHgyMywjMzIKKwltb3YJdzksdzI0CisJbHNyCXgxMCx4MjQsIzMyCisJbW92CXcxMSx3MjUKKwlsc3IJeDEyLHgyNSwjMzIKKwltb3YJdzEzLHcyNgorCWxzcgl4MTQseDI2LCMzMgorCW1vdgl3MTUsdzI3CisJbHNyCXgxNix4MjcsIzMyCisJbW92CXcxNyx3MjgKKwlsc3IJeDE5LHgyOCwjMzIKKwltb3YJdzIwLHczMAorCWxzcgl4MjEseDMwLCMzMgorCisJbW92CXg0LCMxMAorCXN1YnMJeDIseDIsIzY0CisuTG9vcDoKKwlzdWIJeDQseDQsIzEKKwlhZGQJdzUsdzUsdzkKKwlhZGQJdzYsdzYsdzEwCisJYWRkCXc3LHc3LHcxMQorCWFkZAl3OCx3OCx3MTIKKwllb3IJdzE3LHcxNyx3NQorCWVvcgl3MTksdzE5LHc2CisJZW9yCXcyMCx3MjAsdzcKKwllb3IJdzIxLHcyMSx3OAorCXJvcgl3MTcsdzE3LCMxNgorCXJvcgl3MTksdzE5LCMxNgorCXJvcgl3MjAsdzIwLCMxNgorCXJvcgl3MjEsdzIxLCMxNgorCWFkZAl3MTMsdzEzLHcxNworCWFkZAl3MTQsdzE0LHcxOQorCWFkZAl3MTUsdzE1LHcyMAorCWFkZAl3MTYsdzE2LHcyMQorCWVvcgl3OSx3OSx3MTMKKwllb3IJdzEwLHcxMCx3MTQKKwllb3IJdzExLHcxMSx3MTUKKwllb3IJdzEyLHcxMix3MTYKKwlyb3IJdzksdzksIzIwCisJcm9yCXcxMCx3MTAsIzIwCisJcm9yCXcxMSx3MTEsIzIwCisJcm9yCXcxMix3MTIsIzIwCisJYWRkCXc1LHc1LHc5CisJYWRkCXc2LHc2LHcxMAorCWFkZAl3Nyx3Nyx3MTEKKwlhZGQJdzgsdzgsdzEyCisJZW9yCXcxNyx3MTcsdzUKKwllb3IJdzE5LHcxOSx3NgorCWVvcgl3MjAsdzIwLHc3CisJZW9yCXcyMSx3MjEsdzgKKwlyb3IJdzE3LHcxNywjMjQKKwlyb3IJdzE5LHcxOSwjMjQKKwlyb3IJdzIwLHcyMCwjMjQKKwlyb3IJdzIxLHcyMSwjMjQKKwlhZGQJdzEzLHcxMyx3MTcKKwlhZGQJdzE0LHcxNCx3MTkKKwlhZGQJdzE1LHcxNSx3MjAKKwlhZGQJdzE2LHcxNix3MjEKKwllb3IJdzksdzksdzEzCisJZW9yCXcxMCx3MTAsdzE0CisJZW9yCXcxMSx3MTEsdzE1CisJZW9yCXcxMix3MTIsdzE2CisJcm9yCXc5LHc5LCMyNQorCXJvcgl3MTAsdzEwLCMyNQorCXJvcgl3MTEsdzExLCMyNQorCXJvcgl3MTIsdzEyLCMyNQorCWFkZAl3NSx3NSx3MTAKKwlhZGQJdzYsdzYsdzExCisJYWRkCXc3LHc3LHcxMgorCWFkZAl3OCx3OCx3OQorCWVvcgl3MjEsdzIxLHc1CisJZW9yCXcxNyx3MTcsdzYKKwllb3IJdzE5LHcxOSx3NworCWVvcgl3MjAsdzIwLHc4CisJcm9yCXcyMSx3MjEsIzE2CisJcm9yCXcxNyx3MTcsIzE2CisJcm9yCXcxOSx3MTksIzE2CisJcm9yCXcyMCx3MjAsIzE2CisJYWRkCXcxNSx3MTUsdzIxCisJYWRkCXcxNix3MTYsdzE3CisJYWRkCXcxMyx3MTMsdzE5CisJYWRkCXcxNCx3MTQsdzIwCisJZW9yCXcxMCx3MTAsdzE1CisJZW9yCXcxMSx3MTEsdzE2CisJZW9yCXcxMix3MTIsdzEzCisJZW9yCXc5LHc5LHcxNAorCXJvcgl3MTAsdzEwLCMyMAorCXJvcgl3MTEsdzExLCMyMAorCXJvcgl3MTIsdzEyLCMyMAorCXJvcgl3OSx3OSwjMjAKKwlhZGQJdzUsdzUsdzEwCisJYWRkCXc2LHc2LHcxMQorCWFkZAl3Nyx3Nyx3MTIKKwlhZGQJdzgsdzgsdzkKKwllb3IJdzIxLHcyMSx3NQorCWVvcgl3MTcsdzE3LHc2CisJZW9yCXcxOSx3MTksdzcKKwllb3IJdzIwLHcyMCx3OAorCXJvcgl3MjEsdzIxLCMyNAorCXJvcgl3MTcsdzE3LCMyNAorCXJvcgl3MTksdzE5LCMyNAorCXJvcgl3MjAsdzIwLCMyNAorCWFkZAl3MTUsdzE1LHcyMQorCWFkZAl3MTYsdzE2LHcxNworCWFkZAl3MTMsdzEzLHcxOQorCWFkZAl3MTQsdzE0LHcyMAorCWVvcgl3MTAsdzEwLHcxNQorCWVvcgl3MTEsdzExLHcxNgorCWVvcgl3MTIsdzEyLHcxMworCWVvcgl3OSx3OSx3MTQKKwlyb3IJdzEwLHcxMCwjMjUKKwlyb3IJdzExLHcxMSwjMjUKKwlyb3IJdzEyLHcxMiwjMjUKKwlyb3IJdzksdzksIzI1CisJY2Juegl4NCwuTG9vcAorCisJYWRkCXc1LHc1LHcyMgkJLy8gYWNjdW11bGF0ZSBrZXkgYmxvY2sKKwlhZGQJeDYseDYseDIyLGxzciMzMgorCWFkZAl3Nyx3Nyx3MjMKKwlhZGQJeDgseDgseDIzLGxzciMzMgorCWFkZAl3OSx3OSx3MjQKKwlhZGQJeDEwLHgxMCx4MjQsbHNyIzMyCisJYWRkCXcxMSx3MTEsdzI1CisJYWRkCXgxMix4MTIseDI1LGxzciMzMgorCWFkZAl3MTMsdzEzLHcyNgorCWFkZAl4MTQseDE0LHgyNixsc3IjMzIKKwlhZGQJdzE1LHcxNSx3MjcKKwlhZGQJeDE2LHgxNix4MjcsbHNyIzMyCisJYWRkCXcxNyx3MTcsdzI4CisJYWRkCXgxOSx4MTkseDI4LGxzciMzMgorCWFkZAl3MjAsdzIwLHczMAorCWFkZAl4MjEseDIxLHgzMCxsc3IjMzIKKworCWIubG8JLkx0YWlsCisKKwlhZGQJeDUseDUseDYsbHNsIzMyCS8vIHBhY2sKKwlhZGQJeDcseDcseDgsbHNsIzMyCisJbGRwCXg2LHg4LFt4MSwjMF0JCS8vIGxvYWQgaW5wdXQKKwlhZGQJeDkseDkseDEwLGxzbCMzMgorCWFkZAl4MTEseDExLHgxMixsc2wjMzIKKwlsZHAJeDEwLHgxMixbeDEsIzE2XQorCWFkZAl4MTMseDEzLHgxNCxsc2wjMzIKKwlhZGQJeDE1LHgxNSx4MTYsbHNsIzMyCisJbGRwCXgxNCx4MTYsW3gxLCMzMl0KKwlhZGQJeDE3LHgxNyx4MTksbHNsIzMyCisJYWRkCXgyMCx4MjAseDIxLGxzbCMzMgorCWxkcAl4MTkseDIxLFt4MSwjNDhdCisJYWRkCXgxLHgxLCM2NAorI2lmZGVmCV9fQVJNRUJfXworCXJldgl4NSx4NQorCXJldgl4Nyx4NworCXJldgl4OSx4OQorCXJldgl4MTEseDExCisJcmV2CXgxMyx4MTMKKwlyZXYJeDE1LHgxNQorCXJldgl4MTcseDE3CisJcmV2CXgyMCx4MjAKKyNlbmRpZgorCWVvcgl4NSx4NSx4NgorCWVvcgl4Nyx4Nyx4OAorCWVvcgl4OSx4OSx4MTAKKwllb3IJeDExLHgxMSx4MTIKKwllb3IJeDEzLHgxMyx4MTQKKwllb3IJeDE1LHgxNSx4MTYKKwllb3IJeDE3LHgxNyx4MTkKKwllb3IJeDIwLHgyMCx4MjEKKworCXN0cAl4NSx4NyxbeDAsIzBdCQkvLyBzdG9yZSBvdXRwdXQKKwlhZGQJeDI4LHgyOCwjMQkJCS8vIGluY3JlbWVudCBjb3VudGVyCisJc3RwCXg5LHgxMSxbeDAsIzE2XQorCXN0cAl4MTMseDE1LFt4MCwjMzJdCisJc3RwCXgxNyx4MjAsW3gwLCM0OF0KKwlhZGQJeDAseDAsIzY0CisKKwliLmhpCS5Mb29wX291dGVyCisKKwlsZHAJeDE5LHgyMCxbeDI5LCMxNl0KKwlhZGQJc3Asc3AsIzY0CisJbGRwCXgyMSx4MjIsW3gyOSwjMzJdCisJbGRwCXgyMyx4MjQsW3gyOSwjNDhdCisJbGRwCXgyNSx4MjYsW3gyOSwjNjRdCisJbGRwCXgyNyx4MjgsW3gyOSwjODBdCisJbGRwCXgyOSx4MzAsW3NwXSwjOTYKKy5MYWJvcnQ6CisJcmV0CisKKy5hbGlnbgk0CisuTHRhaWw6CisJYWRkCXgyLHgyLCM2NAorLkxlc3NfdGhhbl82NDoKKwlzdWIJeDAseDAsIzEKKwlhZGQJeDEseDEseDIKKwlhZGQJeDAseDAseDIKKwlhZGQJeDQsc3AseDIKKwluZWcJeDIseDIKKworCWFkZAl4NSx4NSx4Nixsc2wjMzIJLy8gcGFjaworCWFkZAl4Nyx4Nyx4OCxsc2wjMzIKKwlhZGQJeDkseDkseDEwLGxzbCMzMgorCWFkZAl4MTEseDExLHgxMixsc2wjMzIKKwlhZGQJeDEzLHgxMyx4MTQsbHNsIzMyCisJYWRkCXgxNSx4MTUseDE2LGxzbCMzMgorCWFkZAl4MTcseDE3LHgxOSxsc2wjMzIKKwlhZGQJeDIwLHgyMCx4MjEsbHNsIzMyCisjaWZkZWYJX19BUk1FQl9fCisJcmV2CXg1LHg1CisJcmV2CXg3LHg3CisJcmV2CXg5LHg5CisJcmV2CXgxMSx4MTEKKwlyZXYJeDEzLHgxMworCXJldgl4MTUseDE1CisJcmV2CXgxNyx4MTcKKwlyZXYJeDIwLHgyMAorI2VuZGlmCisJc3RwCXg1LHg3LFtzcCwjMF0KKwlzdHAJeDkseDExLFtzcCwjMTZdCisJc3RwCXgxMyx4MTUsW3NwLCMzMl0KKwlzdHAJeDE3LHgyMCxbc3AsIzQ4XQorCisuTG9vcF90YWlsOgorCWxkcmIJdzEwLFt4MSx4Ml0KKwlsZHJiCXcxMSxbeDQseDJdCisJYWRkCXgyLHgyLCMxCisJZW9yCXcxMCx3MTAsdzExCisJc3RyYgl3MTAsW3gwLHgyXQorCWNibnoJeDIsLkxvb3BfdGFpbAorCisJc3RwCXh6cix4enIsW3NwLCMwXQorCXN0cAl4enIseHpyLFtzcCwjMTZdCisJc3RwCXh6cix4enIsW3NwLCMzMl0KKwlzdHAJeHpyLHh6cixbc3AsIzQ4XQorCisJbGRwCXgxOSx4MjAsW3gyOSwjMTZdCisJYWRkCXNwLHNwLCM2NAorCWxkcAl4MjEseDIyLFt4MjksIzMyXQorCWxkcAl4MjMseDI0LFt4MjksIzQ4XQorCWxkcAl4MjUseDI2LFt4MjksIzY0XQorCWxkcAl4MjcseDI4LFt4MjksIzgwXQorCWxkcAl4MjkseDMwLFtzcF0sIzk2CisJcmV0Cisuc2l6ZQlDaGFDaGEyMF9jdHIzMiwuLUNoYUNoYTIwX2N0cjMyCisKKy50eXBlCUNoYUNoYTIwX25lb24sJWZ1bmN0aW9uCisuYWxpZ24JNQorQ2hhQ2hhMjBfbmVvbjoKKwlzdHAJeDI5LHgzMCxbc3AsIy05Nl0hCisJYWRkCXgyOSxzcCwjMAorCisJYWRyCXg1LC5Mc2lnbWEKKwlzdHAJeDE5LHgyMCxbc3AsIzE2XQorCXN0cAl4MjEseDIyLFtzcCwjMzJdCisJc3RwCXgyMyx4MjQsW3NwLCM0OF0KKwlzdHAJeDI1LHgyNixbc3AsIzY0XQorCXN0cAl4MjcseDI4LFtzcCwjODBdCisJY21wCXgyLCM1MTIKKwliLmhzCS5MNTEyX29yX21vcmVfbmVvbgorCisJc3ViCXNwLHNwLCM2NAorCisJbGRwCXgyMix4MjMsW3g1XQkJLy8gbG9hZCBzaWdtYQorCWxkMQl7djI0LjRzfSxbeDVdLCMxNgorCWxkcAl4MjQseDI1LFt4M10JCS8vIGxvYWQga2V5CisJbGRwCXgyNix4MjcsW3gzLCMxNl0KKwlsZDEJe3YyNS40cyx2MjYuNHN9LFt4M10KKwlsZHAJeDI4LHgzMCxbeDRdCQkvLyBsb2FkIGNvdW50ZXIKKwlsZDEJe3YyNy40c30sW3g0XQorCWxkMQl7djMxLjRzfSxbeDVdCisjaWZkZWYJX19BUk1FQl9fCisJcmV2NjQJdjI0LjRzLHYyNC40cworCXJvcgl4MjQseDI0LCMzMgorCXJvcgl4MjUseDI1LCMzMgorCXJvcgl4MjYseDI2LCMzMgorCXJvcgl4MjcseDI3LCMzMgorCXJvcgl4MjgseDI4LCMzMgorCXJvcgl4MzAseDMwLCMzMgorI2VuZGlmCisJYWRkCXYyNy40cyx2MjcuNHMsdjMxLjRzCQkvLyArPSAxCisJYWRkCXYyOC40cyx2MjcuNHMsdjMxLjRzCisJYWRkCXYyOS40cyx2MjguNHMsdjMxLjRzCisJc2hsCXYzMS40cyx2MzEuNHMsIzIJCQkvLyAxIC0+IDQKKworLkxvb3Bfb3V0ZXJfbmVvbjoKKwltb3YJdzUsdzIyCQkJLy8gdW5wYWNrIGtleSBibG9jaworCWxzcgl4Nix4MjIsIzMyCisJbW92CXYwLjE2Yix2MjQuMTZiCisJbW92CXc3LHcyMworCWxzcgl4OCx4MjMsIzMyCisJbW92CXY0LjE2Yix2MjQuMTZiCisJbW92CXc5LHcyNAorCWxzcgl4MTAseDI0LCMzMgorCW1vdgl2MTYuMTZiLHYyNC4xNmIKKwltb3YJdzExLHcyNQorCW1vdgl2MS4xNmIsdjI1LjE2YgorCWxzcgl4MTIseDI1LCMzMgorCW1vdgl2NS4xNmIsdjI1LjE2YgorCW1vdgl3MTMsdzI2CisJbW92CXYxNy4xNmIsdjI1LjE2YgorCWxzcgl4MTQseDI2LCMzMgorCW1vdgl2My4xNmIsdjI3LjE2YgorCW1vdgl3MTUsdzI3CisJbW92CXY3LjE2Yix2MjguMTZiCisJbHNyCXgxNix4MjcsIzMyCisJbW92CXYxOS4xNmIsdjI5LjE2YgorCW1vdgl3MTcsdzI4CisJbW92CXYyLjE2Yix2MjYuMTZiCisJbHNyCXgxOSx4MjgsIzMyCisJbW92CXY2LjE2Yix2MjYuMTZiCisJbW92CXcyMCx3MzAKKwltb3YJdjE4LjE2Yix2MjYuMTZiCisJbHNyCXgyMSx4MzAsIzMyCisKKwltb3YJeDQsIzEwCisJc3Vicwl4Mix4MiwjMjU2CisuTG9vcF9uZW9uOgorCXN1Ygl4NCx4NCwjMQorCWFkZAl2MC40cyx2MC40cyx2MS40cworCWFkZAl3NSx3NSx3OQorCWFkZAl2NC40cyx2NC40cyx2NS40cworCWFkZAl3Nix3Nix3MTAKKwlhZGQJdjE2LjRzLHYxNi40cyx2MTcuNHMKKwlhZGQJdzcsdzcsdzExCisJZW9yCXYzLjE2Yix2My4xNmIsdjAuMTZiCisJYWRkCXc4LHc4LHcxMgorCWVvcgl2Ny4xNmIsdjcuMTZiLHY0LjE2YgorCWVvcgl3MTcsdzE3LHc1CisJZW9yCXYxOS4xNmIsdjE5LjE2Yix2MTYuMTZiCisJZW9yCXcxOSx3MTksdzYKKwlyZXYzMgl2My44aCx2My44aAorCWVvcgl3MjAsdzIwLHc3CisJcmV2MzIJdjcuOGgsdjcuOGgKKwllb3IJdzIxLHcyMSx3OAorCXJldjMyCXYxOS44aCx2MTkuOGgKKwlyb3IJdzE3LHcxNywjMTYKKwlhZGQJdjIuNHMsdjIuNHMsdjMuNHMKKwlyb3IJdzE5LHcxOSwjMTYKKwlhZGQJdjYuNHMsdjYuNHMsdjcuNHMKKwlyb3IJdzIwLHcyMCwjMTYKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzIxLHcyMSwjMTYKKwllb3IJdjIwLjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXcxMyx3MTMsdzE3CisJZW9yCXYyMS4xNmIsdjUuMTZiLHY2LjE2YgorCWFkZAl3MTQsdzE0LHcxOQorCWVvcgl2MjIuMTZiLHYxNy4xNmIsdjE4LjE2YgorCWFkZAl3MTUsdzE1LHcyMAorCXVzaHIJdjEuNHMsdjIwLjRzLCMyMAorCWFkZAl3MTYsdzE2LHcyMQorCXVzaHIJdjUuNHMsdjIxLjRzLCMyMAorCWVvcgl3OSx3OSx3MTMKKwl1c2hyCXYxNy40cyx2MjIuNHMsIzIwCisJZW9yCXcxMCx3MTAsdzE0CisJc2xpCXYxLjRzLHYyMC40cywjMTIKKwllb3IJdzExLHcxMSx3MTUKKwlzbGkJdjUuNHMsdjIxLjRzLCMxMgorCWVvcgl3MTIsdzEyLHcxNgorCXNsaQl2MTcuNHMsdjIyLjRzLCMxMgorCXJvcgl3OSx3OSwjMjAKKwlhZGQJdjAuNHMsdjAuNHMsdjEuNHMKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjQuNHMsdjQuNHMsdjUuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjE2LjRzLHYxNi40cyx2MTcuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwllb3IJdjIwLjE2Yix2My4xNmIsdjAuMTZiCisJYWRkCXc1LHc1LHc5CisJZW9yCXYyMS4xNmIsdjcuMTZiLHY0LjE2YgorCWFkZAl3Nix3Nix3MTAKKwllb3IJdjIyLjE2Yix2MTkuMTZiLHYxNi4xNmIKKwlhZGQJdzcsdzcsdzExCisJdXNocgl2My40cyx2MjAuNHMsIzI0CisJYWRkCXc4LHc4LHcxMgorCXVzaHIJdjcuNHMsdjIxLjRzLCMyNAorCWVvcgl3MTcsdzE3LHc1CisJdXNocgl2MTkuNHMsdjIyLjRzLCMyNAorCWVvcgl3MTksdzE5LHc2CisJc2xpCXYzLjRzLHYyMC40cywjOAorCWVvcgl3MjAsdzIwLHc3CisJc2xpCXY3LjRzLHYyMS40cywjOAorCWVvcgl3MjEsdzIxLHc4CisJc2xpCXYxOS40cyx2MjIuNHMsIzgKKwlyb3IJdzE3LHcxNywjMjQKKwlhZGQJdjIuNHMsdjIuNHMsdjMuNHMKKwlyb3IJdzE5LHcxOSwjMjQKKwlhZGQJdjYuNHMsdjYuNHMsdjcuNHMKKwlyb3IJdzIwLHcyMCwjMjQKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzIxLHcyMSwjMjQKKwllb3IJdjIwLjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXcxMyx3MTMsdzE3CisJZW9yCXYyMS4xNmIsdjUuMTZiLHY2LjE2YgorCWFkZAl3MTQsdzE0LHcxOQorCWVvcgl2MjIuMTZiLHYxNy4xNmIsdjE4LjE2YgorCWFkZAl3MTUsdzE1LHcyMAorCXVzaHIJdjEuNHMsdjIwLjRzLCMyNQorCWFkZAl3MTYsdzE2LHcyMQorCXVzaHIJdjUuNHMsdjIxLjRzLCMyNQorCWVvcgl3OSx3OSx3MTMKKwl1c2hyCXYxNy40cyx2MjIuNHMsIzI1CisJZW9yCXcxMCx3MTAsdzE0CisJc2xpCXYxLjRzLHYyMC40cywjNworCWVvcgl3MTEsdzExLHcxNQorCXNsaQl2NS40cyx2MjEuNHMsIzcKKwllb3IJdzEyLHcxMix3MTYKKwlzbGkJdjE3LjRzLHYyMi40cywjNworCXJvcgl3OSx3OSwjMjUKKwlleHQJdjIuMTZiLHYyLjE2Yix2Mi4xNmIsIzgKKwlyb3IJdzEwLHcxMCwjMjUKKwlleHQJdjYuMTZiLHY2LjE2Yix2Ni4xNmIsIzgKKwlyb3IJdzExLHcxMSwjMjUKKwlleHQJdjE4LjE2Yix2MTguMTZiLHYxOC4xNmIsIzgKKwlyb3IJdzEyLHcxMiwjMjUKKwlleHQJdjMuMTZiLHYzLjE2Yix2My4xNmIsIzEyCisJZXh0CXY3LjE2Yix2Ny4xNmIsdjcuMTZiLCMxMgorCWV4dAl2MTkuMTZiLHYxOS4xNmIsdjE5LjE2YiwjMTIKKwlleHQJdjEuMTZiLHYxLjE2Yix2MS4xNmIsIzQKKwlleHQJdjUuMTZiLHY1LjE2Yix2NS4xNmIsIzQKKwlleHQJdjE3LjE2Yix2MTcuMTZiLHYxNy4xNmIsIzQKKwlhZGQJdjAuNHMsdjAuNHMsdjEuNHMKKwlhZGQJdzUsdzUsdzEwCisJYWRkCXY0LjRzLHY0LjRzLHY1LjRzCisJYWRkCXc2LHc2LHcxMQorCWFkZAl2MTYuNHMsdjE2LjRzLHYxNy40cworCWFkZAl3Nyx3Nyx3MTIKKwllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIKKwlhZGQJdzgsdzgsdzkKKwllb3IJdjcuMTZiLHY3LjE2Yix2NC4xNmIKKwllb3IJdzIxLHcyMSx3NQorCWVvcgl2MTkuMTZiLHYxOS4xNmIsdjE2LjE2YgorCWVvcgl3MTcsdzE3LHc2CisJcmV2MzIJdjMuOGgsdjMuOGgKKwllb3IJdzE5LHcxOSx3NworCXJldjMyCXY3LjhoLHY3LjhoCisJZW9yCXcyMCx3MjAsdzgKKwlyZXYzMgl2MTkuOGgsdjE5LjhoCisJcm9yCXcyMSx3MjEsIzE2CisJYWRkCXYyLjRzLHYyLjRzLHYzLjRzCisJcm9yCXcxNyx3MTcsIzE2CisJYWRkCXY2LjRzLHY2LjRzLHY3LjRzCisJcm9yCXcxOSx3MTksIzE2CisJYWRkCXYxOC40cyx2MTguNHMsdjE5LjRzCisJcm9yCXcyMCx3MjAsIzE2CisJZW9yCXYyMC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3MTUsdzE1LHcyMQorCWVvcgl2MjEuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzE2LHcxNix3MTcKKwllb3IJdjIyLjE2Yix2MTcuMTZiLHYxOC4xNmIKKwlhZGQJdzEzLHcxMyx3MTkKKwl1c2hyCXYxLjRzLHYyMC40cywjMjAKKwlhZGQJdzE0LHcxNCx3MjAKKwl1c2hyCXY1LjRzLHYyMS40cywjMjAKKwllb3IJdzEwLHcxMCx3MTUKKwl1c2hyCXYxNy40cyx2MjIuNHMsIzIwCisJZW9yCXcxMSx3MTEsdzE2CisJc2xpCXYxLjRzLHYyMC40cywjMTIKKwllb3IJdzEyLHcxMix3MTMKKwlzbGkJdjUuNHMsdjIxLjRzLCMxMgorCWVvcgl3OSx3OSx3MTQKKwlzbGkJdjE3LjRzLHYyMi40cywjMTIKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjAuNHMsdjAuNHMsdjEuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjQuNHMsdjQuNHMsdjUuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwlhZGQJdjE2LjRzLHYxNi40cyx2MTcuNHMKKwlyb3IJdzksdzksIzIwCisJZW9yCXYyMC4xNmIsdjMuMTZiLHYwLjE2YgorCWFkZAl3NSx3NSx3MTAKKwllb3IJdjIxLjE2Yix2Ny4xNmIsdjQuMTZiCisJYWRkCXc2LHc2LHcxMQorCWVvcgl2MjIuMTZiLHYxOS4xNmIsdjE2LjE2YgorCWFkZAl3Nyx3Nyx3MTIKKwl1c2hyCXYzLjRzLHYyMC40cywjMjQKKwlhZGQJdzgsdzgsdzkKKwl1c2hyCXY3LjRzLHYyMS40cywjMjQKKwllb3IJdzIxLHcyMSx3NQorCXVzaHIJdjE5LjRzLHYyMi40cywjMjQKKwllb3IJdzE3LHcxNyx3NgorCXNsaQl2My40cyx2MjAuNHMsIzgKKwllb3IJdzE5LHcxOSx3NworCXNsaQl2Ny40cyx2MjEuNHMsIzgKKwllb3IJdzIwLHcyMCx3OAorCXNsaQl2MTkuNHMsdjIyLjRzLCM4CisJcm9yCXcyMSx3MjEsIzI0CisJYWRkCXYyLjRzLHYyLjRzLHYzLjRzCisJcm9yCXcxNyx3MTcsIzI0CisJYWRkCXY2LjRzLHY2LjRzLHY3LjRzCisJcm9yCXcxOSx3MTksIzI0CisJYWRkCXYxOC40cyx2MTguNHMsdjE5LjRzCisJcm9yCXcyMCx3MjAsIzI0CisJZW9yCXYyMC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3MTUsdzE1LHcyMQorCWVvcgl2MjEuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzE2LHcxNix3MTcKKwllb3IJdjIyLjE2Yix2MTcuMTZiLHYxOC4xNmIKKwlhZGQJdzEzLHcxMyx3MTkKKwl1c2hyCXYxLjRzLHYyMC40cywjMjUKKwlhZGQJdzE0LHcxNCx3MjAKKwl1c2hyCXY1LjRzLHYyMS40cywjMjUKKwllb3IJdzEwLHcxMCx3MTUKKwl1c2hyCXYxNy40cyx2MjIuNHMsIzI1CisJZW9yCXcxMSx3MTEsdzE2CisJc2xpCXYxLjRzLHYyMC40cywjNworCWVvcgl3MTIsdzEyLHcxMworCXNsaQl2NS40cyx2MjEuNHMsIzcKKwllb3IJdzksdzksdzE0CisJc2xpCXYxNy40cyx2MjIuNHMsIzcKKwlyb3IJdzEwLHcxMCwjMjUKKwlleHQJdjIuMTZiLHYyLjE2Yix2Mi4xNmIsIzgKKwlyb3IJdzExLHcxMSwjMjUKKwlleHQJdjYuMTZiLHY2LjE2Yix2Ni4xNmIsIzgKKwlyb3IJdzEyLHcxMiwjMjUKKwlleHQJdjE4LjE2Yix2MTguMTZiLHYxOC4xNmIsIzgKKwlyb3IJdzksdzksIzI1CisJZXh0CXYzLjE2Yix2My4xNmIsdjMuMTZiLCM0CisJZXh0CXY3LjE2Yix2Ny4xNmIsdjcuMTZiLCM0CisJZXh0CXYxOS4xNmIsdjE5LjE2Yix2MTkuMTZiLCM0CisJZXh0CXYxLjE2Yix2MS4xNmIsdjEuMTZiLCMxMgorCWV4dAl2NS4xNmIsdjUuMTZiLHY1LjE2YiwjMTIKKwlleHQJdjE3LjE2Yix2MTcuMTZiLHYxNy4xNmIsIzEyCisJY2Juegl4NCwuTG9vcF9uZW9uCisKKwlhZGQJdzUsdzUsdzIyCQkvLyBhY2N1bXVsYXRlIGtleSBibG9jaworCWFkZAl2MC40cyx2MC40cyx2MjQuNHMKKwlhZGQJeDYseDYseDIyLGxzciMzMgorCWFkZAl2NC40cyx2NC40cyx2MjQuNHMKKwlhZGQJdzcsdzcsdzIzCisJYWRkCXYxNi40cyx2MTYuNHMsdjI0LjRzCisJYWRkCXg4LHg4LHgyMyxsc3IjMzIKKwlhZGQJdjIuNHMsdjIuNHMsdjI2LjRzCisJYWRkCXc5LHc5LHcyNAorCWFkZAl2Ni40cyx2Ni40cyx2MjYuNHMKKwlhZGQJeDEwLHgxMCx4MjQsbHNyIzMyCisJYWRkCXYxOC40cyx2MTguNHMsdjI2LjRzCisJYWRkCXcxMSx3MTEsdzI1CisJYWRkCXYzLjRzLHYzLjRzLHYyNy40cworCWFkZAl4MTIseDEyLHgyNSxsc3IjMzIKKwlhZGQJdzEzLHcxMyx3MjYKKwlhZGQJdjcuNHMsdjcuNHMsdjI4LjRzCisJYWRkCXgxNCx4MTQseDI2LGxzciMzMgorCWFkZAl3MTUsdzE1LHcyNworCWFkZAl2MTkuNHMsdjE5LjRzLHYyOS40cworCWFkZAl4MTYseDE2LHgyNyxsc3IjMzIKKwlhZGQJdzE3LHcxNyx3MjgKKwlhZGQJdjEuNHMsdjEuNHMsdjI1LjRzCisJYWRkCXgxOSx4MTkseDI4LGxzciMzMgorCWFkZAl3MjAsdzIwLHczMAorCWFkZAl2NS40cyx2NS40cyx2MjUuNHMKKwlhZGQJeDIxLHgyMSx4MzAsbHNyIzMyCisJYWRkCXYxNy40cyx2MTcuNHMsdjI1LjRzCisKKwliLmxvCS5MdGFpbF9uZW9uCisKKwlhZGQJeDUseDUseDYsbHNsIzMyCS8vIHBhY2sKKwlhZGQJeDcseDcseDgsbHNsIzMyCisJbGRwCXg2LHg4LFt4MSwjMF0JCS8vIGxvYWQgaW5wdXQKKwlhZGQJeDkseDkseDEwLGxzbCMzMgorCWFkZAl4MTEseDExLHgxMixsc2wjMzIKKwlsZHAJeDEwLHgxMixbeDEsIzE2XQorCWFkZAl4MTMseDEzLHgxNCxsc2wjMzIKKwlhZGQJeDE1LHgxNSx4MTYsbHNsIzMyCisJbGRwCXgxNCx4MTYsW3gxLCMzMl0KKwlhZGQJeDE3LHgxNyx4MTksbHNsIzMyCisJYWRkCXgyMCx4MjAseDIxLGxzbCMzMgorCWxkcAl4MTkseDIxLFt4MSwjNDhdCisJYWRkCXgxLHgxLCM2NAorI2lmZGVmCV9fQVJNRUJfXworCXJldgl4NSx4NQorCXJldgl4Nyx4NworCXJldgl4OSx4OQorCXJldgl4MTEseDExCisJcmV2CXgxMyx4MTMKKwlyZXYJeDE1LHgxNQorCXJldgl4MTcseDE3CisJcmV2CXgyMCx4MjAKKyNlbmRpZgorCWxkMQl7djIwLjE2Yix2MjEuMTZiLHYyMi4xNmIsdjIzLjE2Yn0sW3gxXSwjNjQKKwllb3IJeDUseDUseDYKKwllb3IJeDcseDcseDgKKwllb3IJeDkseDkseDEwCisJZW9yCXgxMSx4MTEseDEyCisJZW9yCXgxMyx4MTMseDE0CisJZW9yCXYwLjE2Yix2MC4xNmIsdjIwLjE2YgorCWVvcgl4MTUseDE1LHgxNgorCWVvcgl2MS4xNmIsdjEuMTZiLHYyMS4xNmIKKwllb3IJeDE3LHgxNyx4MTkKKwllb3IJdjIuMTZiLHYyLjE2Yix2MjIuMTZiCisJZW9yCXgyMCx4MjAseDIxCisJZW9yCXYzLjE2Yix2My4xNmIsdjIzLjE2YgorCWxkMQl7djIwLjE2Yix2MjEuMTZiLHYyMi4xNmIsdjIzLjE2Yn0sW3gxXSwjNjQKKworCXN0cAl4NSx4NyxbeDAsIzBdCQkvLyBzdG9yZSBvdXRwdXQKKwlhZGQJeDI4LHgyOCwjNAkJCS8vIGluY3JlbWVudCBjb3VudGVyCisJc3RwCXg5LHgxMSxbeDAsIzE2XQorCWFkZAl2MjcuNHMsdjI3LjRzLHYzMS40cwkJLy8gKz0gNAorCXN0cAl4MTMseDE1LFt4MCwjMzJdCisJYWRkCXYyOC40cyx2MjguNHMsdjMxLjRzCisJc3RwCXgxNyx4MjAsW3gwLCM0OF0KKwlhZGQJdjI5LjRzLHYyOS40cyx2MzEuNHMKKwlhZGQJeDAseDAsIzY0CisKKwlzdDEJe3YwLjE2Yix2MS4xNmIsdjIuMTZiLHYzLjE2Yn0sW3gwXSwjNjQKKwlsZDEJe3YwLjE2Yix2MS4xNmIsdjIuMTZiLHYzLjE2Yn0sW3gxXSwjNjQKKworCWVvcgl2NC4xNmIsdjQuMTZiLHYyMC4xNmIKKwllb3IJdjUuMTZiLHY1LjE2Yix2MjEuMTZiCisJZW9yCXY2LjE2Yix2Ni4xNmIsdjIyLjE2YgorCWVvcgl2Ny4xNmIsdjcuMTZiLHYyMy4xNmIKKwlzdDEJe3Y0LjE2Yix2NS4xNmIsdjYuMTZiLHY3LjE2Yn0sW3gwXSwjNjQKKworCWVvcgl2MTYuMTZiLHYxNi4xNmIsdjAuMTZiCisJZW9yCXYxNy4xNmIsdjE3LjE2Yix2MS4xNmIKKwllb3IJdjE4LjE2Yix2MTguMTZiLHYyLjE2YgorCWVvcgl2MTkuMTZiLHYxOS4xNmIsdjMuMTZiCisJc3QxCXt2MTYuMTZiLHYxNy4xNmIsdjE4LjE2Yix2MTkuMTZifSxbeDBdLCM2NAorCisJYi5oaQkuTG9vcF9vdXRlcl9uZW9uCisKKwlsZHAJeDE5LHgyMCxbeDI5LCMxNl0KKwlhZGQJc3Asc3AsIzY0CisJbGRwCXgyMSx4MjIsW3gyOSwjMzJdCisJbGRwCXgyMyx4MjQsW3gyOSwjNDhdCisJbGRwCXgyNSx4MjYsW3gyOSwjNjRdCisJbGRwCXgyNyx4MjgsW3gyOSwjODBdCisJbGRwCXgyOSx4MzAsW3NwXSwjOTYKKwlyZXQKKworLkx0YWlsX25lb246CisJYWRkCXgyLHgyLCMyNTYKKwljbXAJeDIsIzY0CisJYi5sbwkuTGVzc190aGFuXzY0CisKKwlhZGQJeDUseDUseDYsbHNsIzMyCS8vIHBhY2sKKwlhZGQJeDcseDcseDgsbHNsIzMyCisJbGRwCXg2LHg4LFt4MSwjMF0JCS8vIGxvYWQgaW5wdXQKKwlhZGQJeDkseDkseDEwLGxzbCMzMgorCWFkZAl4MTEseDExLHgxMixsc2wjMzIKKwlsZHAJeDEwLHgxMixbeDEsIzE2XQorCWFkZAl4MTMseDEzLHgxNCxsc2wjMzIKKwlhZGQJeDE1LHgxNSx4MTYsbHNsIzMyCisJbGRwCXgxNCx4MTYsW3gxLCMzMl0KKwlhZGQJeDE3LHgxNyx4MTksbHNsIzMyCisJYWRkCXgyMCx4MjAseDIxLGxzbCMzMgorCWxkcAl4MTkseDIxLFt4MSwjNDhdCisJYWRkCXgxLHgxLCM2NAorI2lmZGVmCV9fQVJNRUJfXworCXJldgl4NSx4NQorCXJldgl4Nyx4NworCXJldgl4OSx4OQorCXJldgl4MTEseDExCisJcmV2CXgxMyx4MTMKKwlyZXYJeDE1LHgxNQorCXJldgl4MTcseDE3CisJcmV2CXgyMCx4MjAKKyNlbmRpZgorCWVvcgl4NSx4NSx4NgorCWVvcgl4Nyx4Nyx4OAorCWVvcgl4OSx4OSx4MTAKKwllb3IJeDExLHgxMSx4MTIKKwllb3IJeDEzLHgxMyx4MTQKKwllb3IJeDE1LHgxNSx4MTYKKwllb3IJeDE3LHgxNyx4MTkKKwllb3IJeDIwLHgyMCx4MjEKKworCXN0cAl4NSx4NyxbeDAsIzBdCQkvLyBzdG9yZSBvdXRwdXQKKwlhZGQJeDI4LHgyOCwjNAkJCS8vIGluY3JlbWVudCBjb3VudGVyCisJc3RwCXg5LHgxMSxbeDAsIzE2XQorCXN0cAl4MTMseDE1LFt4MCwjMzJdCisJc3RwCXgxNyx4MjAsW3gwLCM0OF0KKwlhZGQJeDAseDAsIzY0CisJYi5lcQkuTGRvbmVfbmVvbgorCXN1Ygl4Mix4MiwjNjQKKwljbXAJeDIsIzY0CisJYi5sbwkuTGVzc190aGFuXzEyOAorCisJbGQxCXt2MjAuMTZiLHYyMS4xNmIsdjIyLjE2Yix2MjMuMTZifSxbeDFdLCM2NAorCWVvcgl2MC4xNmIsdjAuMTZiLHYyMC4xNmIKKwllb3IJdjEuMTZiLHYxLjE2Yix2MjEuMTZiCisJZW9yCXYyLjE2Yix2Mi4xNmIsdjIyLjE2YgorCWVvcgl2My4xNmIsdjMuMTZiLHYyMy4xNmIKKwlzdDEJe3YwLjE2Yix2MS4xNmIsdjIuMTZiLHYzLjE2Yn0sW3gwXSwjNjQKKwliLmVxCS5MZG9uZV9uZW9uCisJc3ViCXgyLHgyLCM2NAorCWNtcAl4MiwjNjQKKwliLmxvCS5MZXNzX3RoYW5fMTkyCisKKwlsZDEJe3YyMC4xNmIsdjIxLjE2Yix2MjIuMTZiLHYyMy4xNmJ9LFt4MV0sIzY0CisJZW9yCXY0LjE2Yix2NC4xNmIsdjIwLjE2YgorCWVvcgl2NS4xNmIsdjUuMTZiLHYyMS4xNmIKKwllb3IJdjYuMTZiLHY2LjE2Yix2MjIuMTZiCisJZW9yCXY3LjE2Yix2Ny4xNmIsdjIzLjE2YgorCXN0MQl7djQuMTZiLHY1LjE2Yix2Ni4xNmIsdjcuMTZifSxbeDBdLCM2NAorCWIuZXEJLkxkb25lX25lb24KKwlzdWIJeDIseDIsIzY0CisKKwlzdDEJe3YxNi4xNmIsdjE3LjE2Yix2MTguMTZiLHYxOS4xNmJ9LFtzcF0KKwliCS5MYXN0X25lb24KKworLkxlc3NfdGhhbl8xMjg6CisJc3QxCXt2MC4xNmIsdjEuMTZiLHYyLjE2Yix2My4xNmJ9LFtzcF0KKwliCS5MYXN0X25lb24KKy5MZXNzX3RoYW5fMTkyOgorCXN0MQl7djQuMTZiLHY1LjE2Yix2Ni4xNmIsdjcuMTZifSxbc3BdCisJYgkuTGFzdF9uZW9uCisKKy5hbGlnbgk0CisuTGFzdF9uZW9uOgorCXN1Ygl4MCx4MCwjMQorCWFkZAl4MSx4MSx4MgorCWFkZAl4MCx4MCx4MgorCWFkZAl4NCxzcCx4MgorCW5lZwl4Mix4MgorCisuTG9vcF90YWlsX25lb246CisJbGRyYgl3MTAsW3gxLHgyXQorCWxkcmIJdzExLFt4NCx4Ml0KKwlhZGQJeDIseDIsIzEKKwllb3IJdzEwLHcxMCx3MTEKKwlzdHJiCXcxMCxbeDAseDJdCisJY2Juegl4MiwuTG9vcF90YWlsX25lb24KKworCXN0cAl4enIseHpyLFtzcCwjMF0KKwlzdHAJeHpyLHh6cixbc3AsIzE2XQorCXN0cAl4enIseHpyLFtzcCwjMzJdCisJc3RwCXh6cix4enIsW3NwLCM0OF0KKworLkxkb25lX25lb246CisJbGRwCXgxOSx4MjAsW3gyOSwjMTZdCisJYWRkCXNwLHNwLCM2NAorCWxkcAl4MjEseDIyLFt4MjksIzMyXQorCWxkcAl4MjMseDI0LFt4MjksIzQ4XQorCWxkcAl4MjUseDI2LFt4MjksIzY0XQorCWxkcAl4MjcseDI4LFt4MjksIzgwXQorCWxkcAl4MjkseDMwLFtzcF0sIzk2CisJcmV0Cisuc2l6ZQlDaGFDaGEyMF9uZW9uLC4tQ2hhQ2hhMjBfbmVvbgorLnR5cGUJQ2hhQ2hhMjBfNTEyX25lb24sJWZ1bmN0aW9uCisuYWxpZ24JNQorQ2hhQ2hhMjBfNTEyX25lb246CisJc3RwCXgyOSx4MzAsW3NwLCMtOTZdIQorCWFkZAl4Mjksc3AsIzAKKworCWFkcgl4NSwuTHNpZ21hCisJc3RwCXgxOSx4MjAsW3NwLCMxNl0KKwlzdHAJeDIxLHgyMixbc3AsIzMyXQorCXN0cAl4MjMseDI0LFtzcCwjNDhdCisJc3RwCXgyNSx4MjYsW3NwLCM2NF0KKwlzdHAJeDI3LHgyOCxbc3AsIzgwXQorCisuTDUxMl9vcl9tb3JlX25lb246CisJc3ViCXNwLHNwLCMxMjgrNjQKKworCWxkcAl4MjIseDIzLFt4NV0JCS8vIGxvYWQgc2lnbWEKKwlsZDEJe3YyNC40c30sW3g1XSwjMTYKKwlsZHAJeDI0LHgyNSxbeDNdCQkvLyBsb2FkIGtleQorCWxkcAl4MjYseDI3LFt4MywjMTZdCisJbGQxCXt2MjUuNHMsdjI2LjRzfSxbeDNdCisJbGRwCXgyOCx4MzAsW3g0XQkJLy8gbG9hZCBjb3VudGVyCisJbGQxCXt2MjcuNHN9LFt4NF0KKwlsZDEJe3YzMS40c30sW3g1XQorI2lmZGVmCV9fQVJNRUJfXworCXJldjY0CXYyNC40cyx2MjQuNHMKKwlyb3IJeDI0LHgyNCwjMzIKKwlyb3IJeDI1LHgyNSwjMzIKKwlyb3IJeDI2LHgyNiwjMzIKKwlyb3IJeDI3LHgyNywjMzIKKwlyb3IJeDI4LHgyOCwjMzIKKwlyb3IJeDMwLHgzMCwjMzIKKyNlbmRpZgorCWFkZAl2MjcuNHMsdjI3LjRzLHYzMS40cwkJLy8gKz0gMQorCXN0cAlxMjQscTI1LFtzcCwjMF0JCS8vIG9mZi1sb2FkIGtleSBibG9jaywgaW52YXJpYW50IHBhcnQKKwlhZGQJdjI3LjRzLHYyNy40cyx2MzEuNHMJCS8vIG5vdCB0eXBvCisJc3RyCXEyNixbc3AsIzMyXQorCWFkZAl2MjguNHMsdjI3LjRzLHYzMS40cworCWFkZAl2MjkuNHMsdjI4LjRzLHYzMS40cworCWFkZAl2MzAuNHMsdjI5LjRzLHYzMS40cworCXNobAl2MzEuNHMsdjMxLjRzLCMyCQkJLy8gMSAtPiA0CisKKwlzdHAJZDgsZDksW3NwLCMxMjgrMF0JCS8vIG1lZXQgQUJJIHJlcXVpcmVtZW50cworCXN0cAlkMTAsZDExLFtzcCwjMTI4KzE2XQorCXN0cAlkMTIsZDEzLFtzcCwjMTI4KzMyXQorCXN0cAlkMTQsZDE1LFtzcCwjMTI4KzQ4XQorCisJc3ViCXgyLHgyLCM1MTIJCQkvLyBub3QgdHlwbworCisuTG9vcF9vdXRlcl81MTJfbmVvbjoKKwltb3YJdjAuMTZiLHYyNC4xNmIKKwltb3YJdjQuMTZiLHYyNC4xNmIKKwltb3YJdjguMTZiLHYyNC4xNmIKKwltb3YJdjEyLjE2Yix2MjQuMTZiCisJbW92CXYxNi4xNmIsdjI0LjE2YgorCW1vdgl2MjAuMTZiLHYyNC4xNmIKKwltb3YJdjEuMTZiLHYyNS4xNmIKKwltb3YJdzUsdzIyCQkJLy8gdW5wYWNrIGtleSBibG9jaworCW1vdgl2NS4xNmIsdjI1LjE2YgorCWxzcgl4Nix4MjIsIzMyCisJbW92CXY5LjE2Yix2MjUuMTZiCisJbW92CXc3LHcyMworCW1vdgl2MTMuMTZiLHYyNS4xNmIKKwlsc3IJeDgseDIzLCMzMgorCW1vdgl2MTcuMTZiLHYyNS4xNmIKKwltb3YJdzksdzI0CisJbW92CXYyMS4xNmIsdjI1LjE2YgorCWxzcgl4MTAseDI0LCMzMgorCW1vdgl2My4xNmIsdjI3LjE2YgorCW1vdgl3MTEsdzI1CisJbW92CXY3LjE2Yix2MjguMTZiCisJbHNyCXgxMix4MjUsIzMyCisJbW92CXYxMS4xNmIsdjI5LjE2YgorCW1vdgl3MTMsdzI2CisJbW92CXYxNS4xNmIsdjMwLjE2YgorCWxzcgl4MTQseDI2LCMzMgorCW1vdgl2Mi4xNmIsdjI2LjE2YgorCW1vdgl3MTUsdzI3CisJbW92CXY2LjE2Yix2MjYuMTZiCisJbHNyCXgxNix4MjcsIzMyCisJYWRkCXYxOS40cyx2My40cyx2MzEuNHMJCQkvLyArNAorCW1vdgl3MTcsdzI4CisJYWRkCXYyMy40cyx2Ny40cyx2MzEuNHMJCQkvLyArNAorCWxzcgl4MTkseDI4LCMzMgorCW1vdgl2MTAuMTZiLHYyNi4xNmIKKwltb3YJdzIwLHczMAorCW1vdgl2MTQuMTZiLHYyNi4xNmIKKwlsc3IJeDIxLHgzMCwjMzIKKwltb3YJdjE4LjE2Yix2MjYuMTZiCisJc3RwCXEyNyxxMjgsW3NwLCM0OF0JCS8vIG9mZi1sb2FkIGtleSBibG9jaywgdmFyaWFibGUgcGFydAorCW1vdgl2MjIuMTZiLHYyNi4xNmIKKwlzdHIJcTI5LFtzcCwjODBdCisKKwltb3YJeDQsIzUKKwlzdWJzCXgyLHgyLCM1MTIKKy5Mb29wX3VwcGVyX25lb246CisJc3ViCXg0LHg0LCMxCisJYWRkCXYwLjRzLHYwLjRzLHYxLjRzCisJYWRkCXc1LHc1LHc5CisJYWRkCXY0LjRzLHY0LjRzLHY1LjRzCisJYWRkCXc2LHc2LHcxMAorCWFkZAl2OC40cyx2OC40cyx2OS40cworCWFkZAl3Nyx3Nyx3MTEKKwlhZGQJdjEyLjRzLHYxMi40cyx2MTMuNHMKKwlhZGQJdzgsdzgsdzEyCisJYWRkCXYxNi40cyx2MTYuNHMsdjE3LjRzCisJZW9yCXcxNyx3MTcsdzUKKwlhZGQJdjIwLjRzLHYyMC40cyx2MjEuNHMKKwllb3IJdzE5LHcxOSx3NgorCWVvcgl2My4xNmIsdjMuMTZiLHYwLjE2YgorCWVvcgl3MjAsdzIwLHc3CisJZW9yCXY3LjE2Yix2Ny4xNmIsdjQuMTZiCisJZW9yCXcyMSx3MjEsdzgKKwllb3IJdjExLjE2Yix2MTEuMTZiLHY4LjE2YgorCXJvcgl3MTcsdzE3LCMxNgorCWVvcgl2MTUuMTZiLHYxNS4xNmIsdjEyLjE2YgorCXJvcgl3MTksdzE5LCMxNgorCWVvcgl2MTkuMTZiLHYxOS4xNmIsdjE2LjE2YgorCXJvcgl3MjAsdzIwLCMxNgorCWVvcgl2MjMuMTZiLHYyMy4xNmIsdjIwLjE2YgorCXJvcgl3MjEsdzIxLCMxNgorCXJldjMyCXYzLjhoLHYzLjhoCisJYWRkCXcxMyx3MTMsdzE3CisJcmV2MzIJdjcuOGgsdjcuOGgKKwlhZGQJdzE0LHcxNCx3MTkKKwlyZXYzMgl2MTEuOGgsdjExLjhoCisJYWRkCXcxNSx3MTUsdzIwCisJcmV2MzIJdjE1LjhoLHYxNS44aAorCWFkZAl3MTYsdzE2LHcyMQorCXJldjMyCXYxOS44aCx2MTkuOGgKKwllb3IJdzksdzksdzEzCisJcmV2MzIJdjIzLjhoLHYyMy44aAorCWVvcgl3MTAsdzEwLHcxNAorCWFkZAl2Mi40cyx2Mi40cyx2My40cworCWVvcgl3MTEsdzExLHcxNQorCWFkZAl2Ni40cyx2Ni40cyx2Ny40cworCWVvcgl3MTIsdzEyLHcxNgorCWFkZAl2MTAuNHMsdjEwLjRzLHYxMS40cworCXJvcgl3OSx3OSwjMjAKKwlhZGQJdjE0LjRzLHYxNC40cyx2MTUuNHMKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjIyLjRzLHYyMi40cyx2MjMuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwllb3IJdjI0LjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXc1LHc1LHc5CisJZW9yCXYyNS4xNmIsdjUuMTZiLHY2LjE2YgorCWFkZAl3Nix3Nix3MTAKKwllb3IJdjI2LjE2Yix2OS4xNmIsdjEwLjE2YgorCWFkZAl3Nyx3Nyx3MTEKKwllb3IJdjI3LjE2Yix2MTMuMTZiLHYxNC4xNmIKKwlhZGQJdzgsdzgsdzEyCisJZW9yCXYyOC4xNmIsdjE3LjE2Yix2MTguMTZiCisJZW9yCXcxNyx3MTcsdzUKKwllb3IJdjI5LjE2Yix2MjEuMTZiLHYyMi4xNmIKKwllb3IJdzE5LHcxOSx3NgorCXVzaHIJdjEuNHMsdjI0LjRzLCMyMAorCWVvcgl3MjAsdzIwLHc3CisJdXNocgl2NS40cyx2MjUuNHMsIzIwCisJZW9yCXcyMSx3MjEsdzgKKwl1c2hyCXY5LjRzLHYyNi40cywjMjAKKwlyb3IJdzE3LHcxNywjMjQKKwl1c2hyCXYxMy40cyx2MjcuNHMsIzIwCisJcm9yCXcxOSx3MTksIzI0CisJdXNocgl2MTcuNHMsdjI4LjRzLCMyMAorCXJvcgl3MjAsdzIwLCMyNAorCXVzaHIJdjIxLjRzLHYyOS40cywjMjAKKwlyb3IJdzIxLHcyMSwjMjQKKwlzbGkJdjEuNHMsdjI0LjRzLCMxMgorCWFkZAl3MTMsdzEzLHcxNworCXNsaQl2NS40cyx2MjUuNHMsIzEyCisJYWRkCXcxNCx3MTQsdzE5CisJc2xpCXY5LjRzLHYyNi40cywjMTIKKwlhZGQJdzE1LHcxNSx3MjAKKwlzbGkJdjEzLjRzLHYyNy40cywjMTIKKwlhZGQJdzE2LHcxNix3MjEKKwlzbGkJdjE3LjRzLHYyOC40cywjMTIKKwllb3IJdzksdzksdzEzCisJc2xpCXYyMS40cyx2MjkuNHMsIzEyCisJZW9yCXcxMCx3MTAsdzE0CisJYWRkCXYwLjRzLHYwLjRzLHYxLjRzCisJZW9yCXcxMSx3MTEsdzE1CisJYWRkCXY0LjRzLHY0LjRzLHY1LjRzCisJZW9yCXcxMix3MTIsdzE2CisJYWRkCXY4LjRzLHY4LjRzLHY5LjRzCisJcm9yCXc5LHc5LCMyNQorCWFkZAl2MTIuNHMsdjEyLjRzLHYxMy40cworCXJvcgl3MTAsdzEwLCMyNQorCWFkZAl2MTYuNHMsdjE2LjRzLHYxNy40cworCXJvcgl3MTEsdzExLCMyNQorCWFkZAl2MjAuNHMsdjIwLjRzLHYyMS40cworCXJvcgl3MTIsdzEyLCMyNQorCWVvcgl2MjQuMTZiLHYzLjE2Yix2MC4xNmIKKwlhZGQJdzUsdzUsdzEwCisJZW9yCXYyNS4xNmIsdjcuMTZiLHY0LjE2YgorCWFkZAl3Nix3Nix3MTEKKwllb3IJdjI2LjE2Yix2MTEuMTZiLHY4LjE2YgorCWFkZAl3Nyx3Nyx3MTIKKwllb3IJdjI3LjE2Yix2MTUuMTZiLHYxMi4xNmIKKwlhZGQJdzgsdzgsdzkKKwllb3IJdjI4LjE2Yix2MTkuMTZiLHYxNi4xNmIKKwllb3IJdzIxLHcyMSx3NQorCWVvcgl2MjkuMTZiLHYyMy4xNmIsdjIwLjE2YgorCWVvcgl3MTcsdzE3LHc2CisJdXNocgl2My40cyx2MjQuNHMsIzI0CisJZW9yCXcxOSx3MTksdzcKKwl1c2hyCXY3LjRzLHYyNS40cywjMjQKKwllb3IJdzIwLHcyMCx3OAorCXVzaHIJdjExLjRzLHYyNi40cywjMjQKKwlyb3IJdzIxLHcyMSwjMTYKKwl1c2hyCXYxNS40cyx2MjcuNHMsIzI0CisJcm9yCXcxNyx3MTcsIzE2CisJdXNocgl2MTkuNHMsdjI4LjRzLCMyNAorCXJvcgl3MTksdzE5LCMxNgorCXVzaHIJdjIzLjRzLHYyOS40cywjMjQKKwlyb3IJdzIwLHcyMCwjMTYKKwlzbGkJdjMuNHMsdjI0LjRzLCM4CisJYWRkCXcxNSx3MTUsdzIxCisJc2xpCXY3LjRzLHYyNS40cywjOAorCWFkZAl3MTYsdzE2LHcxNworCXNsaQl2MTEuNHMsdjI2LjRzLCM4CisJYWRkCXcxMyx3MTMsdzE5CisJc2xpCXYxNS40cyx2MjcuNHMsIzgKKwlhZGQJdzE0LHcxNCx3MjAKKwlzbGkJdjE5LjRzLHYyOC40cywjOAorCWVvcgl3MTAsdzEwLHcxNQorCXNsaQl2MjMuNHMsdjI5LjRzLCM4CisJZW9yCXcxMSx3MTEsdzE2CisJYWRkCXYyLjRzLHYyLjRzLHYzLjRzCisJZW9yCXcxMix3MTIsdzEzCisJYWRkCXY2LjRzLHY2LjRzLHY3LjRzCisJZW9yCXc5LHc5LHcxNAorCWFkZAl2MTAuNHMsdjEwLjRzLHYxMS40cworCXJvcgl3MTAsdzEwLCMyMAorCWFkZAl2MTQuNHMsdjE0LjRzLHYxNS40cworCXJvcgl3MTEsdzExLCMyMAorCWFkZAl2MTguNHMsdjE4LjRzLHYxOS40cworCXJvcgl3MTIsdzEyLCMyMAorCWFkZAl2MjIuNHMsdjIyLjRzLHYyMy40cworCXJvcgl3OSx3OSwjMjAKKwllb3IJdjI0LjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXc1LHc1LHcxMAorCWVvcgl2MjUuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzYsdzYsdzExCisJZW9yCXYyNi4xNmIsdjkuMTZiLHYxMC4xNmIKKwlhZGQJdzcsdzcsdzEyCisJZW9yCXYyNy4xNmIsdjEzLjE2Yix2MTQuMTZiCisJYWRkCXc4LHc4LHc5CisJZW9yCXYyOC4xNmIsdjE3LjE2Yix2MTguMTZiCisJZW9yCXcyMSx3MjEsdzUKKwllb3IJdjI5LjE2Yix2MjEuMTZiLHYyMi4xNmIKKwllb3IJdzE3LHcxNyx3NgorCXVzaHIJdjEuNHMsdjI0LjRzLCMyNQorCWVvcgl3MTksdzE5LHc3CisJdXNocgl2NS40cyx2MjUuNHMsIzI1CisJZW9yCXcyMCx3MjAsdzgKKwl1c2hyCXY5LjRzLHYyNi40cywjMjUKKwlyb3IJdzIxLHcyMSwjMjQKKwl1c2hyCXYxMy40cyx2MjcuNHMsIzI1CisJcm9yCXcxNyx3MTcsIzI0CisJdXNocgl2MTcuNHMsdjI4LjRzLCMyNQorCXJvcgl3MTksdzE5LCMyNAorCXVzaHIJdjIxLjRzLHYyOS40cywjMjUKKwlyb3IJdzIwLHcyMCwjMjQKKwlzbGkJdjEuNHMsdjI0LjRzLCM3CisJYWRkCXcxNSx3MTUsdzIxCisJc2xpCXY1LjRzLHYyNS40cywjNworCWFkZAl3MTYsdzE2LHcxNworCXNsaQl2OS40cyx2MjYuNHMsIzcKKwlhZGQJdzEzLHcxMyx3MTkKKwlzbGkJdjEzLjRzLHYyNy40cywjNworCWFkZAl3MTQsdzE0LHcyMAorCXNsaQl2MTcuNHMsdjI4LjRzLCM3CisJZW9yCXcxMCx3MTAsdzE1CisJc2xpCXYyMS40cyx2MjkuNHMsIzcKKwllb3IJdzExLHcxMSx3MTYKKwlleHQJdjIuMTZiLHYyLjE2Yix2Mi4xNmIsIzgKKwllb3IJdzEyLHcxMix3MTMKKwlleHQJdjYuMTZiLHY2LjE2Yix2Ni4xNmIsIzgKKwllb3IJdzksdzksdzE0CisJZXh0CXYxMC4xNmIsdjEwLjE2Yix2MTAuMTZiLCM4CisJcm9yCXcxMCx3MTAsIzI1CisJZXh0CXYxNC4xNmIsdjE0LjE2Yix2MTQuMTZiLCM4CisJcm9yCXcxMSx3MTEsIzI1CisJZXh0CXYxOC4xNmIsdjE4LjE2Yix2MTguMTZiLCM4CisJcm9yCXcxMix3MTIsIzI1CisJZXh0CXYyMi4xNmIsdjIyLjE2Yix2MjIuMTZiLCM4CisJcm9yCXc5LHc5LCMyNQorCWV4dAl2My4xNmIsdjMuMTZiLHYzLjE2YiwjMTIKKwlleHQJdjcuMTZiLHY3LjE2Yix2Ny4xNmIsIzEyCisJZXh0CXYxMS4xNmIsdjExLjE2Yix2MTEuMTZiLCMxMgorCWV4dAl2MTUuMTZiLHYxNS4xNmIsdjE1LjE2YiwjMTIKKwlleHQJdjE5LjE2Yix2MTkuMTZiLHYxOS4xNmIsIzEyCisJZXh0CXYyMy4xNmIsdjIzLjE2Yix2MjMuMTZiLCMxMgorCWV4dAl2MS4xNmIsdjEuMTZiLHYxLjE2YiwjNAorCWV4dAl2NS4xNmIsdjUuMTZiLHY1LjE2YiwjNAorCWV4dAl2OS4xNmIsdjkuMTZiLHY5LjE2YiwjNAorCWV4dAl2MTMuMTZiLHYxMy4xNmIsdjEzLjE2YiwjNAorCWV4dAl2MTcuMTZiLHYxNy4xNmIsdjE3LjE2YiwjNAorCWV4dAl2MjEuMTZiLHYyMS4xNmIsdjIxLjE2YiwjNAorCWFkZAl2MC40cyx2MC40cyx2MS40cworCWFkZAl3NSx3NSx3OQorCWFkZAl2NC40cyx2NC40cyx2NS40cworCWFkZAl3Nix3Nix3MTAKKwlhZGQJdjguNHMsdjguNHMsdjkuNHMKKwlhZGQJdzcsdzcsdzExCisJYWRkCXYxMi40cyx2MTIuNHMsdjEzLjRzCisJYWRkCXc4LHc4LHcxMgorCWFkZAl2MTYuNHMsdjE2LjRzLHYxNy40cworCWVvcgl3MTcsdzE3LHc1CisJYWRkCXYyMC40cyx2MjAuNHMsdjIxLjRzCisJZW9yCXcxOSx3MTksdzYKKwllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIKKwllb3IJdzIwLHcyMCx3NworCWVvcgl2Ny4xNmIsdjcuMTZiLHY0LjE2YgorCWVvcgl3MjEsdzIxLHc4CisJZW9yCXYxMS4xNmIsdjExLjE2Yix2OC4xNmIKKwlyb3IJdzE3LHcxNywjMTYKKwllb3IJdjE1LjE2Yix2MTUuMTZiLHYxMi4xNmIKKwlyb3IJdzE5LHcxOSwjMTYKKwllb3IJdjE5LjE2Yix2MTkuMTZiLHYxNi4xNmIKKwlyb3IJdzIwLHcyMCwjMTYKKwllb3IJdjIzLjE2Yix2MjMuMTZiLHYyMC4xNmIKKwlyb3IJdzIxLHcyMSwjMTYKKwlyZXYzMgl2My44aCx2My44aAorCWFkZAl3MTMsdzEzLHcxNworCXJldjMyCXY3LjhoLHY3LjhoCisJYWRkCXcxNCx3MTQsdzE5CisJcmV2MzIJdjExLjhoLHYxMS44aAorCWFkZAl3MTUsdzE1LHcyMAorCXJldjMyCXYxNS44aCx2MTUuOGgKKwlhZGQJdzE2LHcxNix3MjEKKwlyZXYzMgl2MTkuOGgsdjE5LjhoCisJZW9yCXc5LHc5LHcxMworCXJldjMyCXYyMy44aCx2MjMuOGgKKwllb3IJdzEwLHcxMCx3MTQKKwlhZGQJdjIuNHMsdjIuNHMsdjMuNHMKKwllb3IJdzExLHcxMSx3MTUKKwlhZGQJdjYuNHMsdjYuNHMsdjcuNHMKKwllb3IJdzEyLHcxMix3MTYKKwlhZGQJdjEwLjRzLHYxMC40cyx2MTEuNHMKKwlyb3IJdzksdzksIzIwCisJYWRkCXYxNC40cyx2MTQuNHMsdjE1LjRzCisJcm9yCXcxMCx3MTAsIzIwCisJYWRkCXYxOC40cyx2MTguNHMsdjE5LjRzCisJcm9yCXcxMSx3MTEsIzIwCisJYWRkCXYyMi40cyx2MjIuNHMsdjIzLjRzCisJcm9yCXcxMix3MTIsIzIwCisJZW9yCXYyNC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3NSx3NSx3OQorCWVvcgl2MjUuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzYsdzYsdzEwCisJZW9yCXYyNi4xNmIsdjkuMTZiLHYxMC4xNmIKKwlhZGQJdzcsdzcsdzExCisJZW9yCXYyNy4xNmIsdjEzLjE2Yix2MTQuMTZiCisJYWRkCXc4LHc4LHcxMgorCWVvcgl2MjguMTZiLHYxNy4xNmIsdjE4LjE2YgorCWVvcgl3MTcsdzE3LHc1CisJZW9yCXYyOS4xNmIsdjIxLjE2Yix2MjIuMTZiCisJZW9yCXcxOSx3MTksdzYKKwl1c2hyCXYxLjRzLHYyNC40cywjMjAKKwllb3IJdzIwLHcyMCx3NworCXVzaHIJdjUuNHMsdjI1LjRzLCMyMAorCWVvcgl3MjEsdzIxLHc4CisJdXNocgl2OS40cyx2MjYuNHMsIzIwCisJcm9yCXcxNyx3MTcsIzI0CisJdXNocgl2MTMuNHMsdjI3LjRzLCMyMAorCXJvcgl3MTksdzE5LCMyNAorCXVzaHIJdjE3LjRzLHYyOC40cywjMjAKKwlyb3IJdzIwLHcyMCwjMjQKKwl1c2hyCXYyMS40cyx2MjkuNHMsIzIwCisJcm9yCXcyMSx3MjEsIzI0CisJc2xpCXYxLjRzLHYyNC40cywjMTIKKwlhZGQJdzEzLHcxMyx3MTcKKwlzbGkJdjUuNHMsdjI1LjRzLCMxMgorCWFkZAl3MTQsdzE0LHcxOQorCXNsaQl2OS40cyx2MjYuNHMsIzEyCisJYWRkCXcxNSx3MTUsdzIwCisJc2xpCXYxMy40cyx2MjcuNHMsIzEyCisJYWRkCXcxNix3MTYsdzIxCisJc2xpCXYxNy40cyx2MjguNHMsIzEyCisJZW9yCXc5LHc5LHcxMworCXNsaQl2MjEuNHMsdjI5LjRzLCMxMgorCWVvcgl3MTAsdzEwLHcxNAorCWFkZAl2MC40cyx2MC40cyx2MS40cworCWVvcgl3MTEsdzExLHcxNQorCWFkZAl2NC40cyx2NC40cyx2NS40cworCWVvcgl3MTIsdzEyLHcxNgorCWFkZAl2OC40cyx2OC40cyx2OS40cworCXJvcgl3OSx3OSwjMjUKKwlhZGQJdjEyLjRzLHYxMi40cyx2MTMuNHMKKwlyb3IJdzEwLHcxMCwjMjUKKwlhZGQJdjE2LjRzLHYxNi40cyx2MTcuNHMKKwlyb3IJdzExLHcxMSwjMjUKKwlhZGQJdjIwLjRzLHYyMC40cyx2MjEuNHMKKwlyb3IJdzEyLHcxMiwjMjUKKwllb3IJdjI0LjE2Yix2My4xNmIsdjAuMTZiCisJYWRkCXc1LHc1LHcxMAorCWVvcgl2MjUuMTZiLHY3LjE2Yix2NC4xNmIKKwlhZGQJdzYsdzYsdzExCisJZW9yCXYyNi4xNmIsdjExLjE2Yix2OC4xNmIKKwlhZGQJdzcsdzcsdzEyCisJZW9yCXYyNy4xNmIsdjE1LjE2Yix2MTIuMTZiCisJYWRkCXc4LHc4LHc5CisJZW9yCXYyOC4xNmIsdjE5LjE2Yix2MTYuMTZiCisJZW9yCXcyMSx3MjEsdzUKKwllb3IJdjI5LjE2Yix2MjMuMTZiLHYyMC4xNmIKKwllb3IJdzE3LHcxNyx3NgorCXVzaHIJdjMuNHMsdjI0LjRzLCMyNAorCWVvcgl3MTksdzE5LHc3CisJdXNocgl2Ny40cyx2MjUuNHMsIzI0CisJZW9yCXcyMCx3MjAsdzgKKwl1c2hyCXYxMS40cyx2MjYuNHMsIzI0CisJcm9yCXcyMSx3MjEsIzE2CisJdXNocgl2MTUuNHMsdjI3LjRzLCMyNAorCXJvcgl3MTcsdzE3LCMxNgorCXVzaHIJdjE5LjRzLHYyOC40cywjMjQKKwlyb3IJdzE5LHcxOSwjMTYKKwl1c2hyCXYyMy40cyx2MjkuNHMsIzI0CisJcm9yCXcyMCx3MjAsIzE2CisJc2xpCXYzLjRzLHYyNC40cywjOAorCWFkZAl3MTUsdzE1LHcyMQorCXNsaQl2Ny40cyx2MjUuNHMsIzgKKwlhZGQJdzE2LHcxNix3MTcKKwlzbGkJdjExLjRzLHYyNi40cywjOAorCWFkZAl3MTMsdzEzLHcxOQorCXNsaQl2MTUuNHMsdjI3LjRzLCM4CisJYWRkCXcxNCx3MTQsdzIwCisJc2xpCXYxOS40cyx2MjguNHMsIzgKKwllb3IJdzEwLHcxMCx3MTUKKwlzbGkJdjIzLjRzLHYyOS40cywjOAorCWVvcgl3MTEsdzExLHcxNgorCWFkZAl2Mi40cyx2Mi40cyx2My40cworCWVvcgl3MTIsdzEyLHcxMworCWFkZAl2Ni40cyx2Ni40cyx2Ny40cworCWVvcgl3OSx3OSx3MTQKKwlhZGQJdjEwLjRzLHYxMC40cyx2MTEuNHMKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjE0LjRzLHYxNC40cyx2MTUuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwlhZGQJdjIyLjRzLHYyMi40cyx2MjMuNHMKKwlyb3IJdzksdzksIzIwCisJZW9yCXYyNC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3NSx3NSx3MTAKKwllb3IJdjI1LjE2Yix2NS4xNmIsdjYuMTZiCisJYWRkCXc2LHc2LHcxMQorCWVvcgl2MjYuMTZiLHY5LjE2Yix2MTAuMTZiCisJYWRkCXc3LHc3LHcxMgorCWVvcgl2MjcuMTZiLHYxMy4xNmIsdjE0LjE2YgorCWFkZAl3OCx3OCx3OQorCWVvcgl2MjguMTZiLHYxNy4xNmIsdjE4LjE2YgorCWVvcgl3MjEsdzIxLHc1CisJZW9yCXYyOS4xNmIsdjIxLjE2Yix2MjIuMTZiCisJZW9yCXcxNyx3MTcsdzYKKwl1c2hyCXYxLjRzLHYyNC40cywjMjUKKwllb3IJdzE5LHcxOSx3NworCXVzaHIJdjUuNHMsdjI1LjRzLCMyNQorCWVvcgl3MjAsdzIwLHc4CisJdXNocgl2OS40cyx2MjYuNHMsIzI1CisJcm9yCXcyMSx3MjEsIzI0CisJdXNocgl2MTMuNHMsdjI3LjRzLCMyNQorCXJvcgl3MTcsdzE3LCMyNAorCXVzaHIJdjE3LjRzLHYyOC40cywjMjUKKwlyb3IJdzE5LHcxOSwjMjQKKwl1c2hyCXYyMS40cyx2MjkuNHMsIzI1CisJcm9yCXcyMCx3MjAsIzI0CisJc2xpCXYxLjRzLHYyNC40cywjNworCWFkZAl3MTUsdzE1LHcyMQorCXNsaQl2NS40cyx2MjUuNHMsIzcKKwlhZGQJdzE2LHcxNix3MTcKKwlzbGkJdjkuNHMsdjI2LjRzLCM3CisJYWRkCXcxMyx3MTMsdzE5CisJc2xpCXYxMy40cyx2MjcuNHMsIzcKKwlhZGQJdzE0LHcxNCx3MjAKKwlzbGkJdjE3LjRzLHYyOC40cywjNworCWVvcgl3MTAsdzEwLHcxNQorCXNsaQl2MjEuNHMsdjI5LjRzLCM3CisJZW9yCXcxMSx3MTEsdzE2CisJZXh0CXYyLjE2Yix2Mi4xNmIsdjIuMTZiLCM4CisJZW9yCXcxMix3MTIsdzEzCisJZXh0CXY2LjE2Yix2Ni4xNmIsdjYuMTZiLCM4CisJZW9yCXc5LHc5LHcxNAorCWV4dAl2MTAuMTZiLHYxMC4xNmIsdjEwLjE2YiwjOAorCXJvcgl3MTAsdzEwLCMyNQorCWV4dAl2MTQuMTZiLHYxNC4xNmIsdjE0LjE2YiwjOAorCXJvcgl3MTEsdzExLCMyNQorCWV4dAl2MTguMTZiLHYxOC4xNmIsdjE4LjE2YiwjOAorCXJvcgl3MTIsdzEyLCMyNQorCWV4dAl2MjIuMTZiLHYyMi4xNmIsdjIyLjE2YiwjOAorCXJvcgl3OSx3OSwjMjUKKwlleHQJdjMuMTZiLHYzLjE2Yix2My4xNmIsIzQKKwlleHQJdjcuMTZiLHY3LjE2Yix2Ny4xNmIsIzQKKwlleHQJdjExLjE2Yix2MTEuMTZiLHYxMS4xNmIsIzQKKwlleHQJdjE1LjE2Yix2MTUuMTZiLHYxNS4xNmIsIzQKKwlleHQJdjE5LjE2Yix2MTkuMTZiLHYxOS4xNmIsIzQKKwlleHQJdjIzLjE2Yix2MjMuMTZiLHYyMy4xNmIsIzQKKwlleHQJdjEuMTZiLHYxLjE2Yix2MS4xNmIsIzEyCisJZXh0CXY1LjE2Yix2NS4xNmIsdjUuMTZiLCMxMgorCWV4dAl2OS4xNmIsdjkuMTZiLHY5LjE2YiwjMTIKKwlleHQJdjEzLjE2Yix2MTMuMTZiLHYxMy4xNmIsIzEyCisJZXh0CXYxNy4xNmIsdjE3LjE2Yix2MTcuMTZiLCMxMgorCWV4dAl2MjEuMTZiLHYyMS4xNmIsdjIxLjE2YiwjMTIKKwljYm56CXg0LC5Mb29wX3VwcGVyX25lb24KKworCWFkZAl3NSx3NSx3MjIJCS8vIGFjY3VtdWxhdGUga2V5IGJsb2NrCisJYWRkCXg2LHg2LHgyMixsc3IjMzIKKwlhZGQJdzcsdzcsdzIzCisJYWRkCXg4LHg4LHgyMyxsc3IjMzIKKwlhZGQJdzksdzksdzI0CisJYWRkCXgxMCx4MTAseDI0LGxzciMzMgorCWFkZAl3MTEsdzExLHcyNQorCWFkZAl4MTIseDEyLHgyNSxsc3IjMzIKKwlhZGQJdzEzLHcxMyx3MjYKKwlhZGQJeDE0LHgxNCx4MjYsbHNyIzMyCisJYWRkCXcxNSx3MTUsdzI3CisJYWRkCXgxNix4MTYseDI3LGxzciMzMgorCWFkZAl3MTcsdzE3LHcyOAorCWFkZAl4MTkseDE5LHgyOCxsc3IjMzIKKwlhZGQJdzIwLHcyMCx3MzAKKwlhZGQJeDIxLHgyMSx4MzAsbHNyIzMyCisKKwlhZGQJeDUseDUseDYsbHNsIzMyCS8vIHBhY2sKKwlhZGQJeDcseDcseDgsbHNsIzMyCisJbGRwCXg2LHg4LFt4MSwjMF0JCS8vIGxvYWQgaW5wdXQKKwlhZGQJeDkseDkseDEwLGxzbCMzMgorCWFkZAl4MTEseDExLHgxMixsc2wjMzIKKwlsZHAJeDEwLHgxMixbeDEsIzE2XQorCWFkZAl4MTMseDEzLHgxNCxsc2wjMzIKKwlhZGQJeDE1LHgxNSx4MTYsbHNsIzMyCisJbGRwCXgxNCx4MTYsW3gxLCMzMl0KKwlhZGQJeDE3LHgxNyx4MTksbHNsIzMyCisJYWRkCXgyMCx4MjAseDIxLGxzbCMzMgorCWxkcAl4MTkseDIxLFt4MSwjNDhdCisJYWRkCXgxLHgxLCM2NAorI2lmZGVmCV9fQVJNRUJfXworCXJldgl4NSx4NQorCXJldgl4Nyx4NworCXJldgl4OSx4OQorCXJldgl4MTEseDExCisJcmV2CXgxMyx4MTMKKwlyZXYJeDE1LHgxNQorCXJldgl4MTcseDE3CisJcmV2CXgyMCx4MjAKKyNlbmRpZgorCWVvcgl4NSx4NSx4NgorCWVvcgl4Nyx4Nyx4OAorCWVvcgl4OSx4OSx4MTAKKwllb3IJeDExLHgxMSx4MTIKKwllb3IJeDEzLHgxMyx4MTQKKwllb3IJeDE1LHgxNSx4MTYKKwllb3IJeDE3LHgxNyx4MTkKKwllb3IJeDIwLHgyMCx4MjEKKworCXN0cAl4NSx4NyxbeDAsIzBdCQkvLyBzdG9yZSBvdXRwdXQKKwlhZGQJeDI4LHgyOCwjMQkJCS8vIGluY3JlbWVudCBjb3VudGVyCisJbW92CXc1LHcyMgkJCS8vIHVucGFjayBrZXkgYmxvY2sKKwlsc3IJeDYseDIyLCMzMgorCXN0cAl4OSx4MTEsW3gwLCMxNl0KKwltb3YJdzcsdzIzCisJbHNyCXg4LHgyMywjMzIKKwlzdHAJeDEzLHgxNSxbeDAsIzMyXQorCW1vdgl3OSx3MjQKKwlsc3IJeDEwLHgyNCwjMzIKKwlzdHAJeDE3LHgyMCxbeDAsIzQ4XQorCWFkZAl4MCx4MCwjNjQKKwltb3YJdzExLHcyNQorCWxzcgl4MTIseDI1LCMzMgorCW1vdgl3MTMsdzI2CisJbHNyCXgxNCx4MjYsIzMyCisJbW92CXcxNSx3MjcKKwlsc3IJeDE2LHgyNywjMzIKKwltb3YJdzE3LHcyOAorCWxzcgl4MTkseDI4LCMzMgorCW1vdgl3MjAsdzMwCisJbHNyCXgyMSx4MzAsIzMyCisKKwltb3YJeDQsIzUKKy5Mb29wX2xvd2VyX25lb246CisJc3ViCXg0LHg0LCMxCisJYWRkCXYwLjRzLHYwLjRzLHYxLjRzCisJYWRkCXc1LHc1LHc5CisJYWRkCXY0LjRzLHY0LjRzLHY1LjRzCisJYWRkCXc2LHc2LHcxMAorCWFkZAl2OC40cyx2OC40cyx2OS40cworCWFkZAl3Nyx3Nyx3MTEKKwlhZGQJdjEyLjRzLHYxMi40cyx2MTMuNHMKKwlhZGQJdzgsdzgsdzEyCisJYWRkCXYxNi40cyx2MTYuNHMsdjE3LjRzCisJZW9yCXcxNyx3MTcsdzUKKwlhZGQJdjIwLjRzLHYyMC40cyx2MjEuNHMKKwllb3IJdzE5LHcxOSx3NgorCWVvcgl2My4xNmIsdjMuMTZiLHYwLjE2YgorCWVvcgl3MjAsdzIwLHc3CisJZW9yCXY3LjE2Yix2Ny4xNmIsdjQuMTZiCisJZW9yCXcyMSx3MjEsdzgKKwllb3IJdjExLjE2Yix2MTEuMTZiLHY4LjE2YgorCXJvcgl3MTcsdzE3LCMxNgorCWVvcgl2MTUuMTZiLHYxNS4xNmIsdjEyLjE2YgorCXJvcgl3MTksdzE5LCMxNgorCWVvcgl2MTkuMTZiLHYxOS4xNmIsdjE2LjE2YgorCXJvcgl3MjAsdzIwLCMxNgorCWVvcgl2MjMuMTZiLHYyMy4xNmIsdjIwLjE2YgorCXJvcgl3MjEsdzIxLCMxNgorCXJldjMyCXYzLjhoLHYzLjhoCisJYWRkCXcxMyx3MTMsdzE3CisJcmV2MzIJdjcuOGgsdjcuOGgKKwlhZGQJdzE0LHcxNCx3MTkKKwlyZXYzMgl2MTEuOGgsdjExLjhoCisJYWRkCXcxNSx3MTUsdzIwCisJcmV2MzIJdjE1LjhoLHYxNS44aAorCWFkZAl3MTYsdzE2LHcyMQorCXJldjMyCXYxOS44aCx2MTkuOGgKKwllb3IJdzksdzksdzEzCisJcmV2MzIJdjIzLjhoLHYyMy44aAorCWVvcgl3MTAsdzEwLHcxNAorCWFkZAl2Mi40cyx2Mi40cyx2My40cworCWVvcgl3MTEsdzExLHcxNQorCWFkZAl2Ni40cyx2Ni40cyx2Ny40cworCWVvcgl3MTIsdzEyLHcxNgorCWFkZAl2MTAuNHMsdjEwLjRzLHYxMS40cworCXJvcgl3OSx3OSwjMjAKKwlhZGQJdjE0LjRzLHYxNC40cyx2MTUuNHMKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjIyLjRzLHYyMi40cyx2MjMuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwllb3IJdjI0LjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXc1LHc1LHc5CisJZW9yCXYyNS4xNmIsdjUuMTZiLHY2LjE2YgorCWFkZAl3Nix3Nix3MTAKKwllb3IJdjI2LjE2Yix2OS4xNmIsdjEwLjE2YgorCWFkZAl3Nyx3Nyx3MTEKKwllb3IJdjI3LjE2Yix2MTMuMTZiLHYxNC4xNmIKKwlhZGQJdzgsdzgsdzEyCisJZW9yCXYyOC4xNmIsdjE3LjE2Yix2MTguMTZiCisJZW9yCXcxNyx3MTcsdzUKKwllb3IJdjI5LjE2Yix2MjEuMTZiLHYyMi4xNmIKKwllb3IJdzE5LHcxOSx3NgorCXVzaHIJdjEuNHMsdjI0LjRzLCMyMAorCWVvcgl3MjAsdzIwLHc3CisJdXNocgl2NS40cyx2MjUuNHMsIzIwCisJZW9yCXcyMSx3MjEsdzgKKwl1c2hyCXY5LjRzLHYyNi40cywjMjAKKwlyb3IJdzE3LHcxNywjMjQKKwl1c2hyCXYxMy40cyx2MjcuNHMsIzIwCisJcm9yCXcxOSx3MTksIzI0CisJdXNocgl2MTcuNHMsdjI4LjRzLCMyMAorCXJvcgl3MjAsdzIwLCMyNAorCXVzaHIJdjIxLjRzLHYyOS40cywjMjAKKwlyb3IJdzIxLHcyMSwjMjQKKwlzbGkJdjEuNHMsdjI0LjRzLCMxMgorCWFkZAl3MTMsdzEzLHcxNworCXNsaQl2NS40cyx2MjUuNHMsIzEyCisJYWRkCXcxNCx3MTQsdzE5CisJc2xpCXY5LjRzLHYyNi40cywjMTIKKwlhZGQJdzE1LHcxNSx3MjAKKwlzbGkJdjEzLjRzLHYyNy40cywjMTIKKwlhZGQJdzE2LHcxNix3MjEKKwlzbGkJdjE3LjRzLHYyOC40cywjMTIKKwllb3IJdzksdzksdzEzCisJc2xpCXYyMS40cyx2MjkuNHMsIzEyCisJZW9yCXcxMCx3MTAsdzE0CisJYWRkCXYwLjRzLHYwLjRzLHYxLjRzCisJZW9yCXcxMSx3MTEsdzE1CisJYWRkCXY0LjRzLHY0LjRzLHY1LjRzCisJZW9yCXcxMix3MTIsdzE2CisJYWRkCXY4LjRzLHY4LjRzLHY5LjRzCisJcm9yCXc5LHc5LCMyNQorCWFkZAl2MTIuNHMsdjEyLjRzLHYxMy40cworCXJvcgl3MTAsdzEwLCMyNQorCWFkZAl2MTYuNHMsdjE2LjRzLHYxNy40cworCXJvcgl3MTEsdzExLCMyNQorCWFkZAl2MjAuNHMsdjIwLjRzLHYyMS40cworCXJvcgl3MTIsdzEyLCMyNQorCWVvcgl2MjQuMTZiLHYzLjE2Yix2MC4xNmIKKwlhZGQJdzUsdzUsdzEwCisJZW9yCXYyNS4xNmIsdjcuMTZiLHY0LjE2YgorCWFkZAl3Nix3Nix3MTEKKwllb3IJdjI2LjE2Yix2MTEuMTZiLHY4LjE2YgorCWFkZAl3Nyx3Nyx3MTIKKwllb3IJdjI3LjE2Yix2MTUuMTZiLHYxMi4xNmIKKwlhZGQJdzgsdzgsdzkKKwllb3IJdjI4LjE2Yix2MTkuMTZiLHYxNi4xNmIKKwllb3IJdzIxLHcyMSx3NQorCWVvcgl2MjkuMTZiLHYyMy4xNmIsdjIwLjE2YgorCWVvcgl3MTcsdzE3LHc2CisJdXNocgl2My40cyx2MjQuNHMsIzI0CisJZW9yCXcxOSx3MTksdzcKKwl1c2hyCXY3LjRzLHYyNS40cywjMjQKKwllb3IJdzIwLHcyMCx3OAorCXVzaHIJdjExLjRzLHYyNi40cywjMjQKKwlyb3IJdzIxLHcyMSwjMTYKKwl1c2hyCXYxNS40cyx2MjcuNHMsIzI0CisJcm9yCXcxNyx3MTcsIzE2CisJdXNocgl2MTkuNHMsdjI4LjRzLCMyNAorCXJvcgl3MTksdzE5LCMxNgorCXVzaHIJdjIzLjRzLHYyOS40cywjMjQKKwlyb3IJdzIwLHcyMCwjMTYKKwlzbGkJdjMuNHMsdjI0LjRzLCM4CisJYWRkCXcxNSx3MTUsdzIxCisJc2xpCXY3LjRzLHYyNS40cywjOAorCWFkZAl3MTYsdzE2LHcxNworCXNsaQl2MTEuNHMsdjI2LjRzLCM4CisJYWRkCXcxMyx3MTMsdzE5CisJc2xpCXYxNS40cyx2MjcuNHMsIzgKKwlhZGQJdzE0LHcxNCx3MjAKKwlzbGkJdjE5LjRzLHYyOC40cywjOAorCWVvcgl3MTAsdzEwLHcxNQorCXNsaQl2MjMuNHMsdjI5LjRzLCM4CisJZW9yCXcxMSx3MTEsdzE2CisJYWRkCXYyLjRzLHYyLjRzLHYzLjRzCisJZW9yCXcxMix3MTIsdzEzCisJYWRkCXY2LjRzLHY2LjRzLHY3LjRzCisJZW9yCXc5LHc5LHcxNAorCWFkZAl2MTAuNHMsdjEwLjRzLHYxMS40cworCXJvcgl3MTAsdzEwLCMyMAorCWFkZAl2MTQuNHMsdjE0LjRzLHYxNS40cworCXJvcgl3MTEsdzExLCMyMAorCWFkZAl2MTguNHMsdjE4LjRzLHYxOS40cworCXJvcgl3MTIsdzEyLCMyMAorCWFkZAl2MjIuNHMsdjIyLjRzLHYyMy40cworCXJvcgl3OSx3OSwjMjAKKwllb3IJdjI0LjE2Yix2MS4xNmIsdjIuMTZiCisJYWRkCXc1LHc1LHcxMAorCWVvcgl2MjUuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzYsdzYsdzExCisJZW9yCXYyNi4xNmIsdjkuMTZiLHYxMC4xNmIKKwlhZGQJdzcsdzcsdzEyCisJZW9yCXYyNy4xNmIsdjEzLjE2Yix2MTQuMTZiCisJYWRkCXc4LHc4LHc5CisJZW9yCXYyOC4xNmIsdjE3LjE2Yix2MTguMTZiCisJZW9yCXcyMSx3MjEsdzUKKwllb3IJdjI5LjE2Yix2MjEuMTZiLHYyMi4xNmIKKwllb3IJdzE3LHcxNyx3NgorCXVzaHIJdjEuNHMsdjI0LjRzLCMyNQorCWVvcgl3MTksdzE5LHc3CisJdXNocgl2NS40cyx2MjUuNHMsIzI1CisJZW9yCXcyMCx3MjAsdzgKKwl1c2hyCXY5LjRzLHYyNi40cywjMjUKKwlyb3IJdzIxLHcyMSwjMjQKKwl1c2hyCXYxMy40cyx2MjcuNHMsIzI1CisJcm9yCXcxNyx3MTcsIzI0CisJdXNocgl2MTcuNHMsdjI4LjRzLCMyNQorCXJvcgl3MTksdzE5LCMyNAorCXVzaHIJdjIxLjRzLHYyOS40cywjMjUKKwlyb3IJdzIwLHcyMCwjMjQKKwlzbGkJdjEuNHMsdjI0LjRzLCM3CisJYWRkCXcxNSx3MTUsdzIxCisJc2xpCXY1LjRzLHYyNS40cywjNworCWFkZAl3MTYsdzE2LHcxNworCXNsaQl2OS40cyx2MjYuNHMsIzcKKwlhZGQJdzEzLHcxMyx3MTkKKwlzbGkJdjEzLjRzLHYyNy40cywjNworCWFkZAl3MTQsdzE0LHcyMAorCXNsaQl2MTcuNHMsdjI4LjRzLCM3CisJZW9yCXcxMCx3MTAsdzE1CisJc2xpCXYyMS40cyx2MjkuNHMsIzcKKwllb3IJdzExLHcxMSx3MTYKKwlleHQJdjIuMTZiLHYyLjE2Yix2Mi4xNmIsIzgKKwllb3IJdzEyLHcxMix3MTMKKwlleHQJdjYuMTZiLHY2LjE2Yix2Ni4xNmIsIzgKKwllb3IJdzksdzksdzE0CisJZXh0CXYxMC4xNmIsdjEwLjE2Yix2MTAuMTZiLCM4CisJcm9yCXcxMCx3MTAsIzI1CisJZXh0CXYxNC4xNmIsdjE0LjE2Yix2MTQuMTZiLCM4CisJcm9yCXcxMSx3MTEsIzI1CisJZXh0CXYxOC4xNmIsdjE4LjE2Yix2MTguMTZiLCM4CisJcm9yCXcxMix3MTIsIzI1CisJZXh0CXYyMi4xNmIsdjIyLjE2Yix2MjIuMTZiLCM4CisJcm9yCXc5LHc5LCMyNQorCWV4dAl2My4xNmIsdjMuMTZiLHYzLjE2YiwjMTIKKwlleHQJdjcuMTZiLHY3LjE2Yix2Ny4xNmIsIzEyCisJZXh0CXYxMS4xNmIsdjExLjE2Yix2MTEuMTZiLCMxMgorCWV4dAl2MTUuMTZiLHYxNS4xNmIsdjE1LjE2YiwjMTIKKwlleHQJdjE5LjE2Yix2MTkuMTZiLHYxOS4xNmIsIzEyCisJZXh0CXYyMy4xNmIsdjIzLjE2Yix2MjMuMTZiLCMxMgorCWV4dAl2MS4xNmIsdjEuMTZiLHYxLjE2YiwjNAorCWV4dAl2NS4xNmIsdjUuMTZiLHY1LjE2YiwjNAorCWV4dAl2OS4xNmIsdjkuMTZiLHY5LjE2YiwjNAorCWV4dAl2MTMuMTZiLHYxMy4xNmIsdjEzLjE2YiwjNAorCWV4dAl2MTcuMTZiLHYxNy4xNmIsdjE3LjE2YiwjNAorCWV4dAl2MjEuMTZiLHYyMS4xNmIsdjIxLjE2YiwjNAorCWFkZAl2MC40cyx2MC40cyx2MS40cworCWFkZAl3NSx3NSx3OQorCWFkZAl2NC40cyx2NC40cyx2NS40cworCWFkZAl3Nix3Nix3MTAKKwlhZGQJdjguNHMsdjguNHMsdjkuNHMKKwlhZGQJdzcsdzcsdzExCisJYWRkCXYxMi40cyx2MTIuNHMsdjEzLjRzCisJYWRkCXc4LHc4LHcxMgorCWFkZAl2MTYuNHMsdjE2LjRzLHYxNy40cworCWVvcgl3MTcsdzE3LHc1CisJYWRkCXYyMC40cyx2MjAuNHMsdjIxLjRzCisJZW9yCXcxOSx3MTksdzYKKwllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIKKwllb3IJdzIwLHcyMCx3NworCWVvcgl2Ny4xNmIsdjcuMTZiLHY0LjE2YgorCWVvcgl3MjEsdzIxLHc4CisJZW9yCXYxMS4xNmIsdjExLjE2Yix2OC4xNmIKKwlyb3IJdzE3LHcxNywjMTYKKwllb3IJdjE1LjE2Yix2MTUuMTZiLHYxMi4xNmIKKwlyb3IJdzE5LHcxOSwjMTYKKwllb3IJdjE5LjE2Yix2MTkuMTZiLHYxNi4xNmIKKwlyb3IJdzIwLHcyMCwjMTYKKwllb3IJdjIzLjE2Yix2MjMuMTZiLHYyMC4xNmIKKwlyb3IJdzIxLHcyMSwjMTYKKwlyZXYzMgl2My44aCx2My44aAorCWFkZAl3MTMsdzEzLHcxNworCXJldjMyCXY3LjhoLHY3LjhoCisJYWRkCXcxNCx3MTQsdzE5CisJcmV2MzIJdjExLjhoLHYxMS44aAorCWFkZAl3MTUsdzE1LHcyMAorCXJldjMyCXYxNS44aCx2MTUuOGgKKwlhZGQJdzE2LHcxNix3MjEKKwlyZXYzMgl2MTkuOGgsdjE5LjhoCisJZW9yCXc5LHc5LHcxMworCXJldjMyCXYyMy44aCx2MjMuOGgKKwllb3IJdzEwLHcxMCx3MTQKKwlhZGQJdjIuNHMsdjIuNHMsdjMuNHMKKwllb3IJdzExLHcxMSx3MTUKKwlhZGQJdjYuNHMsdjYuNHMsdjcuNHMKKwllb3IJdzEyLHcxMix3MTYKKwlhZGQJdjEwLjRzLHYxMC40cyx2MTEuNHMKKwlyb3IJdzksdzksIzIwCisJYWRkCXYxNC40cyx2MTQuNHMsdjE1LjRzCisJcm9yCXcxMCx3MTAsIzIwCisJYWRkCXYxOC40cyx2MTguNHMsdjE5LjRzCisJcm9yCXcxMSx3MTEsIzIwCisJYWRkCXYyMi40cyx2MjIuNHMsdjIzLjRzCisJcm9yCXcxMix3MTIsIzIwCisJZW9yCXYyNC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3NSx3NSx3OQorCWVvcgl2MjUuMTZiLHY1LjE2Yix2Ni4xNmIKKwlhZGQJdzYsdzYsdzEwCisJZW9yCXYyNi4xNmIsdjkuMTZiLHYxMC4xNmIKKwlhZGQJdzcsdzcsdzExCisJZW9yCXYyNy4xNmIsdjEzLjE2Yix2MTQuMTZiCisJYWRkCXc4LHc4LHcxMgorCWVvcgl2MjguMTZiLHYxNy4xNmIsdjE4LjE2YgorCWVvcgl3MTcsdzE3LHc1CisJZW9yCXYyOS4xNmIsdjIxLjE2Yix2MjIuMTZiCisJZW9yCXcxOSx3MTksdzYKKwl1c2hyCXYxLjRzLHYyNC40cywjMjAKKwllb3IJdzIwLHcyMCx3NworCXVzaHIJdjUuNHMsdjI1LjRzLCMyMAorCWVvcgl3MjEsdzIxLHc4CisJdXNocgl2OS40cyx2MjYuNHMsIzIwCisJcm9yCXcxNyx3MTcsIzI0CisJdXNocgl2MTMuNHMsdjI3LjRzLCMyMAorCXJvcgl3MTksdzE5LCMyNAorCXVzaHIJdjE3LjRzLHYyOC40cywjMjAKKwlyb3IJdzIwLHcyMCwjMjQKKwl1c2hyCXYyMS40cyx2MjkuNHMsIzIwCisJcm9yCXcyMSx3MjEsIzI0CisJc2xpCXYxLjRzLHYyNC40cywjMTIKKwlhZGQJdzEzLHcxMyx3MTcKKwlzbGkJdjUuNHMsdjI1LjRzLCMxMgorCWFkZAl3MTQsdzE0LHcxOQorCXNsaQl2OS40cyx2MjYuNHMsIzEyCisJYWRkCXcxNSx3MTUsdzIwCisJc2xpCXYxMy40cyx2MjcuNHMsIzEyCisJYWRkCXcxNix3MTYsdzIxCisJc2xpCXYxNy40cyx2MjguNHMsIzEyCisJZW9yCXc5LHc5LHcxMworCXNsaQl2MjEuNHMsdjI5LjRzLCMxMgorCWVvcgl3MTAsdzEwLHcxNAorCWFkZAl2MC40cyx2MC40cyx2MS40cworCWVvcgl3MTEsdzExLHcxNQorCWFkZAl2NC40cyx2NC40cyx2NS40cworCWVvcgl3MTIsdzEyLHcxNgorCWFkZAl2OC40cyx2OC40cyx2OS40cworCXJvcgl3OSx3OSwjMjUKKwlhZGQJdjEyLjRzLHYxMi40cyx2MTMuNHMKKwlyb3IJdzEwLHcxMCwjMjUKKwlhZGQJdjE2LjRzLHYxNi40cyx2MTcuNHMKKwlyb3IJdzExLHcxMSwjMjUKKwlhZGQJdjIwLjRzLHYyMC40cyx2MjEuNHMKKwlyb3IJdzEyLHcxMiwjMjUKKwllb3IJdjI0LjE2Yix2My4xNmIsdjAuMTZiCisJYWRkCXc1LHc1LHcxMAorCWVvcgl2MjUuMTZiLHY3LjE2Yix2NC4xNmIKKwlhZGQJdzYsdzYsdzExCisJZW9yCXYyNi4xNmIsdjExLjE2Yix2OC4xNmIKKwlhZGQJdzcsdzcsdzEyCisJZW9yCXYyNy4xNmIsdjE1LjE2Yix2MTIuMTZiCisJYWRkCXc4LHc4LHc5CisJZW9yCXYyOC4xNmIsdjE5LjE2Yix2MTYuMTZiCisJZW9yCXcyMSx3MjEsdzUKKwllb3IJdjI5LjE2Yix2MjMuMTZiLHYyMC4xNmIKKwllb3IJdzE3LHcxNyx3NgorCXVzaHIJdjMuNHMsdjI0LjRzLCMyNAorCWVvcgl3MTksdzE5LHc3CisJdXNocgl2Ny40cyx2MjUuNHMsIzI0CisJZW9yCXcyMCx3MjAsdzgKKwl1c2hyCXYxMS40cyx2MjYuNHMsIzI0CisJcm9yCXcyMSx3MjEsIzE2CisJdXNocgl2MTUuNHMsdjI3LjRzLCMyNAorCXJvcgl3MTcsdzE3LCMxNgorCXVzaHIJdjE5LjRzLHYyOC40cywjMjQKKwlyb3IJdzE5LHcxOSwjMTYKKwl1c2hyCXYyMy40cyx2MjkuNHMsIzI0CisJcm9yCXcyMCx3MjAsIzE2CisJc2xpCXYzLjRzLHYyNC40cywjOAorCWFkZAl3MTUsdzE1LHcyMQorCXNsaQl2Ny40cyx2MjUuNHMsIzgKKwlhZGQJdzE2LHcxNix3MTcKKwlzbGkJdjExLjRzLHYyNi40cywjOAorCWFkZAl3MTMsdzEzLHcxOQorCXNsaQl2MTUuNHMsdjI3LjRzLCM4CisJYWRkCXcxNCx3MTQsdzIwCisJc2xpCXYxOS40cyx2MjguNHMsIzgKKwllb3IJdzEwLHcxMCx3MTUKKwlzbGkJdjIzLjRzLHYyOS40cywjOAorCWVvcgl3MTEsdzExLHcxNgorCWFkZAl2Mi40cyx2Mi40cyx2My40cworCWVvcgl3MTIsdzEyLHcxMworCWFkZAl2Ni40cyx2Ni40cyx2Ny40cworCWVvcgl3OSx3OSx3MTQKKwlhZGQJdjEwLjRzLHYxMC40cyx2MTEuNHMKKwlyb3IJdzEwLHcxMCwjMjAKKwlhZGQJdjE0LjRzLHYxNC40cyx2MTUuNHMKKwlyb3IJdzExLHcxMSwjMjAKKwlhZGQJdjE4LjRzLHYxOC40cyx2MTkuNHMKKwlyb3IJdzEyLHcxMiwjMjAKKwlhZGQJdjIyLjRzLHYyMi40cyx2MjMuNHMKKwlyb3IJdzksdzksIzIwCisJZW9yCXYyNC4xNmIsdjEuMTZiLHYyLjE2YgorCWFkZAl3NSx3NSx3MTAKKwllb3IJdjI1LjE2Yix2NS4xNmIsdjYuMTZiCisJYWRkCXc2LHc2LHcxMQorCWVvcgl2MjYuMTZiLHY5LjE2Yix2MTAuMTZiCisJYWRkCXc3LHc3LHcxMgorCWVvcgl2MjcuMTZiLHYxMy4xNmIsdjE0LjE2YgorCWFkZAl3OCx3OCx3OQorCWVvcgl2MjguMTZiLHYxNy4xNmIsdjE4LjE2YgorCWVvcgl3MjEsdzIxLHc1CisJZW9yCXYyOS4xNmIsdjIxLjE2Yix2MjIuMTZiCisJZW9yCXcxNyx3MTcsdzYKKwl1c2hyCXYxLjRzLHYyNC40cywjMjUKKwllb3IJdzE5LHcxOSx3NworCXVzaHIJdjUuNHMsdjI1LjRzLCMyNQorCWVvcgl3MjAsdzIwLHc4CisJdXNocgl2OS40cyx2MjYuNHMsIzI1CisJcm9yCXcyMSx3MjEsIzI0CisJdXNocgl2MTMuNHMsdjI3LjRzLCMyNQorCXJvcgl3MTcsdzE3LCMyNAorCXVzaHIJdjE3LjRzLHYyOC40cywjMjUKKwlyb3IJdzE5LHcxOSwjMjQKKwl1c2hyCXYyMS40cyx2MjkuNHMsIzI1CisJcm9yCXcyMCx3MjAsIzI0CisJc2xpCXYxLjRzLHYyNC40cywjNworCWFkZAl3MTUsdzE1LHcyMQorCXNsaQl2NS40cyx2MjUuNHMsIzcKKwlhZGQJdzE2LHcxNix3MTcKKwlzbGkJdjkuNHMsdjI2LjRzLCM3CisJYWRkCXcxMyx3MTMsdzE5CisJc2xpCXYxMy40cyx2MjcuNHMsIzcKKwlhZGQJdzE0LHcxNCx3MjAKKwlzbGkJdjE3LjRzLHYyOC40cywjNworCWVvcgl3MTAsdzEwLHcxNQorCXNsaQl2MjEuNHMsdjI5LjRzLCM3CisJZW9yCXcxMSx3MTEsdzE2CisJZXh0CXYyLjE2Yix2Mi4xNmIsdjIuMTZiLCM4CisJZW9yCXcxMix3MTIsdzEzCisJZXh0CXY2LjE2Yix2Ni4xNmIsdjYuMTZiLCM4CisJZW9yCXc5LHc5LHcxNAorCWV4dAl2MTAuMTZiLHYxMC4xNmIsdjEwLjE2YiwjOAorCXJvcgl3MTAsdzEwLCMyNQorCWV4dAl2MTQuMTZiLHYxNC4xNmIsdjE0LjE2YiwjOAorCXJvcgl3MTEsdzExLCMyNQorCWV4dAl2MTguMTZiLHYxOC4xNmIsdjE4LjE2YiwjOAorCXJvcgl3MTIsdzEyLCMyNQorCWV4dAl2MjIuMTZiLHYyMi4xNmIsdjIyLjE2YiwjOAorCXJvcgl3OSx3OSwjMjUKKwlleHQJdjMuMTZiLHYzLjE2Yix2My4xNmIsIzQKKwlleHQJdjcuMTZiLHY3LjE2Yix2Ny4xNmIsIzQKKwlleHQJdjExLjE2Yix2MTEuMTZiLHYxMS4xNmIsIzQKKwlleHQJdjE1LjE2Yix2MTUuMTZiLHYxNS4xNmIsIzQKKwlleHQJdjE5LjE2Yix2MTkuMTZiLHYxOS4xNmIsIzQKKwlleHQJdjIzLjE2Yix2MjMuMTZiLHYyMy4xNmIsIzQKKwlleHQJdjEuMTZiLHYxLjE2Yix2MS4xNmIsIzEyCisJZXh0CXY1LjE2Yix2NS4xNmIsdjUuMTZiLCMxMgorCWV4dAl2OS4xNmIsdjkuMTZiLHY5LjE2YiwjMTIKKwlleHQJdjEzLjE2Yix2MTMuMTZiLHYxMy4xNmIsIzEyCisJZXh0CXYxNy4xNmIsdjE3LjE2Yix2MTcuMTZiLCMxMgorCWV4dAl2MjEuMTZiLHYyMS4xNmIsdjIxLjE2YiwjMTIKKwljYm56CXg0LC5Mb29wX2xvd2VyX25lb24KKworCWFkZAl3NSx3NSx3MjIJCS8vIGFjY3VtdWxhdGUga2V5IGJsb2NrCisJbGRwCXEyNCxxMjUsW3NwLCMwXQorCWFkZAl4Nix4Nix4MjIsbHNyIzMyCisJbGRwCXEyNixxMjcsW3NwLCMzMl0KKwlhZGQJdzcsdzcsdzIzCisJbGRwCXEyOCxxMjksW3NwLCM2NF0KKwlhZGQJeDgseDgseDIzLGxzciMzMgorCWFkZAl2MC40cyx2MC40cyx2MjQuNHMKKwlhZGQJdzksdzksdzI0CisJYWRkCXY0LjRzLHY0LjRzLHYyNC40cworCWFkZAl4MTAseDEwLHgyNCxsc3IjMzIKKwlhZGQJdjguNHMsdjguNHMsdjI0LjRzCisJYWRkCXcxMSx3MTEsdzI1CisJYWRkCXYxMi40cyx2MTIuNHMsdjI0LjRzCisJYWRkCXgxMix4MTIseDI1LGxzciMzMgorCWFkZAl2MTYuNHMsdjE2LjRzLHYyNC40cworCWFkZAl3MTMsdzEzLHcyNgorCWFkZAl2MjAuNHMsdjIwLjRzLHYyNC40cworCWFkZAl4MTQseDE0LHgyNixsc3IjMzIKKwlhZGQJdjIuNHMsdjIuNHMsdjI2LjRzCisJYWRkCXcxNSx3MTUsdzI3CisJYWRkCXY2LjRzLHY2LjRzLHYyNi40cworCWFkZAl4MTYseDE2LHgyNyxsc3IjMzIKKwlhZGQJdjEwLjRzLHYxMC40cyx2MjYuNHMKKwlhZGQJdzE3LHcxNyx3MjgKKwlhZGQJdjE0LjRzLHYxNC40cyx2MjYuNHMKKwlhZGQJeDE5LHgxOSx4MjgsbHNyIzMyCisJYWRkCXYxOC40cyx2MTguNHMsdjI2LjRzCisJYWRkCXcyMCx3MjAsdzMwCisJYWRkCXYyMi40cyx2MjIuNHMsdjI2LjRzCisJYWRkCXgyMSx4MjEseDMwLGxzciMzMgorCWFkZAl2MTkuNHMsdjE5LjRzLHYzMS40cwkJCS8vICs0CisJYWRkCXg1LHg1LHg2LGxzbCMzMgkvLyBwYWNrCisJYWRkCXYyMy40cyx2MjMuNHMsdjMxLjRzCQkJLy8gKzQKKwlhZGQJeDcseDcseDgsbHNsIzMyCisJYWRkCXYzLjRzLHYzLjRzLHYyNy40cworCWxkcAl4Nix4OCxbeDEsIzBdCQkvLyBsb2FkIGlucHV0CisJYWRkCXY3LjRzLHY3LjRzLHYyOC40cworCWFkZAl4OSx4OSx4MTAsbHNsIzMyCisJYWRkCXYxMS40cyx2MTEuNHMsdjI5LjRzCisJYWRkCXgxMSx4MTEseDEyLGxzbCMzMgorCWFkZAl2MTUuNHMsdjE1LjRzLHYzMC40cworCWxkcAl4MTAseDEyLFt4MSwjMTZdCisJYWRkCXYxOS40cyx2MTkuNHMsdjI3LjRzCisJYWRkCXgxMyx4MTMseDE0LGxzbCMzMgorCWFkZAl2MjMuNHMsdjIzLjRzLHYyOC40cworCWFkZAl4MTUseDE1LHgxNixsc2wjMzIKKwlhZGQJdjEuNHMsdjEuNHMsdjI1LjRzCisJbGRwCXgxNCx4MTYsW3gxLCMzMl0KKwlhZGQJdjUuNHMsdjUuNHMsdjI1LjRzCisJYWRkCXgxNyx4MTcseDE5LGxzbCMzMgorCWFkZAl2OS40cyx2OS40cyx2MjUuNHMKKwlhZGQJeDIwLHgyMCx4MjEsbHNsIzMyCisJYWRkCXYxMy40cyx2MTMuNHMsdjI1LjRzCisJbGRwCXgxOSx4MjEsW3gxLCM0OF0KKwlhZGQJdjE3LjRzLHYxNy40cyx2MjUuNHMKKwlhZGQJeDEseDEsIzY0CisJYWRkCXYyMS40cyx2MjEuNHMsdjI1LjRzCisKKyNpZmRlZglfX0FSTUVCX18KKwlyZXYJeDUseDUKKwlyZXYJeDcseDcKKwlyZXYJeDkseDkKKwlyZXYJeDExLHgxMQorCXJldgl4MTMseDEzCisJcmV2CXgxNSx4MTUKKwlyZXYJeDE3LHgxNworCXJldgl4MjAseDIwCisjZW5kaWYKKwlsZDEJe3YyNC4xNmIsdjI1LjE2Yix2MjYuMTZiLHYyNy4xNmJ9LFt4MV0sIzY0CisJZW9yCXg1LHg1LHg2CisJZW9yCXg3LHg3LHg4CisJZW9yCXg5LHg5LHgxMAorCWVvcgl4MTEseDExLHgxMgorCWVvcgl4MTMseDEzLHgxNAorCWVvcgl2MC4xNmIsdjAuMTZiLHYyNC4xNmIKKwllb3IJeDE1LHgxNSx4MTYKKwllb3IJdjEuMTZiLHYxLjE2Yix2MjUuMTZiCisJZW9yCXgxNyx4MTcseDE5CisJZW9yCXYyLjE2Yix2Mi4xNmIsdjI2LjE2YgorCWVvcgl4MjAseDIwLHgyMQorCWVvcgl2My4xNmIsdjMuMTZiLHYyNy4xNmIKKwlsZDEJe3YyNC4xNmIsdjI1LjE2Yix2MjYuMTZiLHYyNy4xNmJ9LFt4MV0sIzY0CisKKwlzdHAJeDUseDcsW3gwLCMwXQkJLy8gc3RvcmUgb3V0cHV0CisJYWRkCXgyOCx4MjgsIzcJCQkvLyBpbmNyZW1lbnQgY291bnRlcgorCXN0cAl4OSx4MTEsW3gwLCMxNl0KKwlzdHAJeDEzLHgxNSxbeDAsIzMyXQorCXN0cAl4MTcseDIwLFt4MCwjNDhdCisJYWRkCXgwLHgwLCM2NAorCXN0MQl7djAuMTZiLHYxLjE2Yix2Mi4xNmIsdjMuMTZifSxbeDBdLCM2NAorCisJbGQxCXt2MC4xNmIsdjEuMTZiLHYyLjE2Yix2My4xNmJ9LFt4MV0sIzY0CisJZW9yCXY0LjE2Yix2NC4xNmIsdjI0LjE2YgorCWVvcgl2NS4xNmIsdjUuMTZiLHYyNS4xNmIKKwllb3IJdjYuMTZiLHY2LjE2Yix2MjYuMTZiCisJZW9yCXY3LjE2Yix2Ny4xNmIsdjI3LjE2YgorCXN0MQl7djQuMTZiLHY1LjE2Yix2Ni4xNmIsdjcuMTZifSxbeDBdLCM2NAorCisJbGQxCXt2NC4xNmIsdjUuMTZiLHY2LjE2Yix2Ny4xNmJ9LFt4MV0sIzY0CisJZW9yCXY4LjE2Yix2OC4xNmIsdjAuMTZiCisJbGRwCXEyNCxxMjUsW3NwLCMwXQorCWVvcgl2OS4xNmIsdjkuMTZiLHYxLjE2YgorCWxkcAlxMjYscTI3LFtzcCwjMzJdCisJZW9yCXYxMC4xNmIsdjEwLjE2Yix2Mi4xNmIKKwllb3IJdjExLjE2Yix2MTEuMTZiLHYzLjE2YgorCXN0MQl7djguMTZiLHY5LjE2Yix2MTAuMTZiLHYxMS4xNmJ9LFt4MF0sIzY0CisKKwlsZDEJe3Y4LjE2Yix2OS4xNmIsdjEwLjE2Yix2MTEuMTZifSxbeDFdLCM2NAorCWVvcgl2MTIuMTZiLHYxMi4xNmIsdjQuMTZiCisJZW9yCXYxMy4xNmIsdjEzLjE2Yix2NS4xNmIKKwllb3IJdjE0LjE2Yix2MTQuMTZiLHY2LjE2YgorCWVvcgl2MTUuMTZiLHYxNS4xNmIsdjcuMTZiCisJc3QxCXt2MTIuMTZiLHYxMy4xNmIsdjE0LjE2Yix2MTUuMTZifSxbeDBdLCM2NAorCisJbGQxCXt2MTIuMTZiLHYxMy4xNmIsdjE0LjE2Yix2MTUuMTZifSxbeDFdLCM2NAorCWVvcgl2MTYuMTZiLHYxNi4xNmIsdjguMTZiCisJZW9yCXYxNy4xNmIsdjE3LjE2Yix2OS4xNmIKKwllb3IJdjE4LjE2Yix2MTguMTZiLHYxMC4xNmIKKwllb3IJdjE5LjE2Yix2MTkuMTZiLHYxMS4xNmIKKwlzdDEJe3YxNi4xNmIsdjE3LjE2Yix2MTguMTZiLHYxOS4xNmJ9LFt4MF0sIzY0CisKKwlzaGwJdjAuNHMsdjMxLjRzLCMxCQkJLy8gNCAtPiA4CisJZW9yCXYyMC4xNmIsdjIwLjE2Yix2MTIuMTZiCisJZW9yCXYyMS4xNmIsdjIxLjE2Yix2MTMuMTZiCisJZW9yCXYyMi4xNmIsdjIyLjE2Yix2MTQuMTZiCisJZW9yCXYyMy4xNmIsdjIzLjE2Yix2MTUuMTZiCisJc3QxCXt2MjAuMTZiLHYyMS4xNmIsdjIyLjE2Yix2MjMuMTZifSxbeDBdLCM2NAorCisJYWRkCXYyNy40cyx2MjcuNHMsdjAuNHMJCQkvLyArPSA4CisJYWRkCXYyOC40cyx2MjguNHMsdjAuNHMKKwlhZGQJdjI5LjRzLHYyOS40cyx2MC40cworCWFkZAl2MzAuNHMsdjMwLjRzLHYwLjRzCisKKwliLmhzCS5Mb29wX291dGVyXzUxMl9uZW9uCisKKwlhZGRzCXgyLHgyLCM1MTIKKwl1c2hyCXYwLjRzLHYzMS40cywjMgkJCS8vIDQgLT4gMQorCisJbGRwCWQ4LGQ5LFtzcCwjMTI4KzBdCQkvLyBtZWV0IEFCSSByZXF1aXJlbWVudHMKKwlsZHAJZDEwLGQxMSxbc3AsIzEyOCsxNl0KKwlsZHAJZDEyLGQxMyxbc3AsIzEyOCszMl0KKwlsZHAJZDE0LGQxNSxbc3AsIzEyOCs0OF0KKworCXN0cAlxMjQscTMxLFtzcCwjMF0JCS8vIHdpcGUgb2ZmLWxvYWQgYXJlYQorCXN0cAlxMjQscTMxLFtzcCwjMzJdCisJc3RwCXEyNCxxMzEsW3NwLCM2NF0KKworCWIuZXEJLkxkb25lXzUxMl9uZW9uCisKKwljbXAJeDIsIzE5MgorCXN1Ygl2MjcuNHMsdjI3LjRzLHYwLjRzCQkJLy8gLT0gMQorCXN1Ygl2MjguNHMsdjI4LjRzLHYwLjRzCisJc3ViCXYyOS40cyx2MjkuNHMsdjAuNHMKKwlhZGQJc3Asc3AsIzEyOAorCWIuaHMJLkxvb3Bfb3V0ZXJfbmVvbgorCisJZW9yCXYyNS4xNmIsdjI1LjE2Yix2MjUuMTZiCisJZW9yCXYyNi4xNmIsdjI2LjE2Yix2MjYuMTZiCisJZW9yCXYyNy4xNmIsdjI3LjE2Yix2MjcuMTZiCisJZW9yCXYyOC4xNmIsdjI4LjE2Yix2MjguMTZiCisJZW9yCXYyOS4xNmIsdjI5LjE2Yix2MjkuMTZiCisJZW9yCXYzMC4xNmIsdjMwLjE2Yix2MzAuMTZiCisJYgkuTG9vcF9vdXRlcgorCisuTGRvbmVfNTEyX25lb246CisJbGRwCXgxOSx4MjAsW3gyOSwjMTZdCisJYWRkCXNwLHNwLCMxMjgrNjQKKwlsZHAJeDIxLHgyMixbeDI5LCMzMl0KKwlsZHAJeDIzLHgyNCxbeDI5LCM0OF0KKwlsZHAJeDI1LHgyNixbeDI5LCM2NF0KKwlsZHAJeDI3LHgyOCxbeDI5LCM4MF0KKwlsZHAJeDI5LHgzMCxbc3BdLCM5NgorCXJldAorLnNpemUJQ2hhQ2hhMjBfNTEyX25lb24sLi1DaGFDaGEyMF81MTJfbmVvbgorI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14NjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9tb2Rlcy9naGFzaHY4LWFybXg2NC5TCmluZGV4IGEwYTliNjgwLi5mMzlmM2JhIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14NjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14NjQuUwpAQCAtMSwxMSArMSwxMiBAQAogI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0jaW5jbHVkZSAiYXJtX2FyY2guaCIKKyNpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CiAKIC50ZXh0CiAjaWYgIWRlZmluZWQoX19jbGFuZ19fKQogLmFyY2gJYXJtdjgtYStjcnlwdG8KICNlbmRpZgogLmdsb2JsCWdjbV9pbml0X3Y4CisuaGlkZGVuCWdjbV9pbml0X3Y4CiAudHlwZQlnY21faW5pdF92OCwlZnVuY3Rpb24KIC5hbGlnbgk0CiBnY21faW5pdF92ODoKQEAgLTU2LDYgKzU3LDcgQEAKIAlyZXQKIC5zaXplCWdjbV9pbml0X3Y4LC4tZ2NtX2luaXRfdjgKIC5nbG9ibAlnY21fZ211bHRfdjgKKy5oaWRkZW4JZ2NtX2dtdWx0X3Y4CiAudHlwZQlnY21fZ211bHRfdjgsJWZ1bmN0aW9uCiAuYWxpZ24JNAogZ2NtX2dtdWx0X3Y4OgpAQCAtNjgsMTAgKzcwLDEwIEBACiAjZW5kaWYKIAlleHQJdjMuMTZiLHYxNy4xNmIsdjE3LjE2YiwjOAogCi0JcG11bGwJdjAuMXEsdjIwLjFkLHYzLjFkCQkvL0gubG+3WGkubG8KKwlwbXVsbAl2MC4xcSx2MjAuMWQsdjMuMWQJCS8vSC5sb8K3WGkubG8KIAllb3IJdjE3LjE2Yix2MTcuMTZiLHYzLjE2YgkJLy9LYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcKLQlwbXVsbDIJdjIuMXEsdjIwLjJkLHYzLjJkCQkvL0guaGm3WGkuaGkKLQlwbXVsbAl2MS4xcSx2MjEuMWQsdjE3LjFkCQkvLyhILmxvK0guaGkptyhYaS5sbytYaS5oaSkKKwlwbXVsbDIJdjIuMXEsdjIwLjJkLHYzLjJkCQkvL0guaGnCt1hpLmhpCisJcG11bGwJdjEuMXEsdjIxLjFkLHYxNy4xZAkJLy8oSC5sbytILmhpKcK3KFhpLmxvK1hpLmhpKQogCiAJZXh0CXYxNy4xNmIsdjAuMTZiLHYyLjE2YiwjOAkJLy9LYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCiAJZW9yCXYxOC4xNmIsdjAuMTZiLHYyLjE2YgpAQCAtOTcsNiArOTksNyBAQAogCXJldAogLnNpemUJZ2NtX2dtdWx0X3Y4LC4tZ2NtX2dtdWx0X3Y4CiAuZ2xvYmwJZ2NtX2doYXNoX3Y4CisuaGlkZGVuCWdjbV9naGFzaF92OAogLnR5cGUJZ2NtX2doYXNoX3Y4LCVmdW5jdGlvbgogLmFsaWduCTQKIGdjbV9naGFzaF92ODoKQEAgLTEzNSw3ICsxMzgsNyBAQAogI2VuZGlmCiAJZXh0CXY3LjE2Yix2MTcuMTZiLHYxNy4xNmIsIzgKIAllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIJCS8vSVtpXV49WGkKLQlwbXVsbAl2NC4xcSx2MjAuMWQsdjcuMWQJCS8vSLdJaSsxCisJcG11bGwJdjQuMXEsdjIwLjFkLHY3LjFkCQkvL0jCt0lpKzEKIAllb3IJdjE3LjE2Yix2MTcuMTZiLHY3LjE2YgkJLy9LYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcKIAlwbXVsbDIJdjYuMXEsdjIwLjJkLHY3LjJkCiAJYgkuTG9vcF9tb2QyeF92OApAQCAtMTQ0LDE0ICsxNDcsMTQgQEAKIC5Mb29wX21vZDJ4X3Y4OgogCWV4dAl2MTguMTZiLHYzLjE2Yix2My4xNmIsIzgKIAlzdWJzCXgzLHgzLCMzMgkJLy9pcyB0aGVyZSBtb3JlIGRhdGE/Ci0JcG11bGwJdjAuMXEsdjIyLjFkLHYzLjFkCQkvL0heMi5sb7dYaS5sbworCXBtdWxsCXYwLjFxLHYyMi4xZCx2My4xZAkJLy9IXjIubG/Ct1hpLmxvCiAJY3NlbAl4MTIseHpyLHgxMixsbwkJCS8vaXMgaXQgdGltZSB0byB6ZXJvIHgxMj8KIAogCXBtdWxsCXY1LjFxLHYyMS4xZCx2MTcuMWQKIAllb3IJdjE4LjE2Yix2MTguMTZiLHYzLjE2YgkJLy9LYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcKLQlwbXVsbDIJdjIuMXEsdjIyLjJkLHYzLjJkCQkvL0heMi5oabdYaS5oaQorCXBtdWxsMgl2Mi4xcSx2MjIuMmQsdjMuMmQJCS8vSF4yLmhpwrdYaS5oaQogCWVvcgl2MC4xNmIsdjAuMTZiLHY0LjE2YgkJLy9hY2N1bXVsYXRlCi0JcG11bGwyCXYxLjFxLHYyMS4yZCx2MTguMmQJCS8vKEheMi5sbytIXjIuaGkptyhYaS5sbytYaS5oaSkKKwlwbXVsbDIJdjEuMXEsdjIxLjJkLHYxOC4yZAkJLy8oSF4yLmxvK0heMi5oaSnCtyhYaS5sbytYaS5oaSkKIAlsZDEJe3YxNi4yZH0sW3gyXSx4MTIJLy9sb2FkIFtyb3RhdGVkXSBJW2krMl0KIAogCWVvcgl2Mi4xNmIsdjIuMTZiLHY2LjE2YgpAQCAtMTc2LDcgKzE3OSw3IEBACiAJZXh0CXY3LjE2Yix2MTcuMTZiLHYxNy4xNmIsIzgKIAlleHQJdjMuMTZiLHYxNi4xNmIsdjE2LjE2YiwjOAogCWVvcgl2MC4xNmIsdjEuMTZiLHYxOC4xNmIKLQlwbXVsbAl2NC4xcSx2MjAuMWQsdjcuMWQJCS8vSLdJaSsxCisJcG11bGwJdjQuMXEsdjIwLjFkLHY3LjFkCQkvL0jCt0lpKzEKIAllb3IJdjMuMTZiLHYzLjE2Yix2Mi4xNmIJCS8vYWNjdW11bGF0ZSB2My4xNmIgZWFybHkKIAogCWV4dAl2MTguMTZiLHYwLjE2Yix2MC4xNmIsIzgJCS8vMm5kIHBoYXNlIG9mIHJlZHVjdGlvbgpAQCAtMTk3LDEwICsyMDAsMTAgQEAKIAllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIJCS8vaW5wXj1YaQogCWVvcgl2MTcuMTZiLHYxNi4xNmIsdjE4LjE2YgkJLy92MTcuMTZiIGlzIHJvdGF0ZWQgaW5wXlhpCiAKLQlwbXVsbAl2MC4xcSx2MjAuMWQsdjMuMWQJCS8vSC5sb7dYaS5sbworCXBtdWxsCXYwLjFxLHYyMC4xZCx2My4xZAkJLy9ILmxvwrdYaS5sbwogCWVvcgl2MTcuMTZiLHYxNy4xNmIsdjMuMTZiCQkvL0thcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwotCXBtdWxsMgl2Mi4xcSx2MjAuMmQsdjMuMmQJCS8vSC5oabdYaS5oaQotCXBtdWxsCXYxLjFxLHYyMS4xZCx2MTcuMWQJCS8vKEgubG8rSC5oaSm3KFhpLmxvK1hpLmhpKQorCXBtdWxsMgl2Mi4xcSx2MjAuMmQsdjMuMmQJCS8vSC5oacK3WGkuaGkKKwlwbXVsbAl2MS4xcSx2MjEuMWQsdjE3LjFkCQkvLyhILmxvK0guaGkpwrcoWGkubG8rWGkuaGkpCiAKIAlleHQJdjE3LjE2Yix2MC4xNmIsdjIuMTZiLCM4CQkvL0thcmF0c3ViYSBwb3N0LXByb2Nlc3NpbmcKIAllb3IJdjE4LjE2Yix2MC4xNmIsdjIuMTZiCkBAIC0yMjksNCArMjMyLDQgQEAKIC5ieXRlCTcxLDcyLDY1LDgzLDcyLDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Niw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCiAuYWxpZ24JMgogLmFsaWduCTIKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGExLWFybXY4LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vc2hhL3NoYTEtYXJtdjguUwppbmRleCA0ODdhNDk3Li5jZmI0YWEwMiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGExLWFybXY4LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGExLWFybXY4LlMKQEAgLTEsMTAgKzEsMTEgQEAKICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotI2luY2x1ZGUgImFybV9hcmNoLmgiCisjaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogCiAudGV4dAogCiAKIC5nbG9ibAlzaGExX2Jsb2NrX2RhdGFfb3JkZXIKKy5oaWRkZW4Jc2hhMV9ibG9ja19kYXRhX29yZGVyCiAudHlwZQlzaGExX2Jsb2NrX2RhdGFfb3JkZXIsJWZ1bmN0aW9uCiAuYWxpZ24JNgogc2hhMV9ibG9ja19kYXRhX29yZGVyOgpAQCAtMTIxMiw0ICsxMjEzLDQgQEAKIC5hbGlnbgkyCiAuYWxpZ24JMgogLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjguUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhMjU2LWFybXY4LlMKaW5kZXggNDgzNDU1My4uYmZjNTUyYyAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjguUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vc2hhL3NoYTI1Ni1hcm12OC5TCkBAIC0xLDEwICsxLDExIEBACiAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSNpbmNsdWRlICJhcm1fYXJjaC5oIgorI2luY2x1ZGUgPG9wZW5zc2wvYXJtX2FyY2guaD4KIAogLnRleHQKIAogCiAuZ2xvYmwJc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXIKKy5oaWRkZW4Jc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXIKIC50eXBlCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyLCVmdW5jdGlvbgogLmFsaWduCTYKIHNoYTI1Nl9ibG9ja19kYXRhX29yZGVyOgpAQCAtMTE0Miw0ICsxMTQzLDQgQEAKIAlyZXQKIC5zaXplCXNoYTI1Nl9ibG9ja19hcm12OCwuLXNoYTI1Nl9ibG9ja19hcm12OAogLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGE1MTItYXJtdjguUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hYXJjaDY0L2NyeXB0by9zaGEvc2hhNTEyLWFybXY4LlMKaW5kZXggNjU0YzQ3My4uNDY0NTcyMiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFhcmNoNjQvY3J5cHRvL3NoYS9zaGE1MTItYXJtdjguUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYWFyY2g2NC9jcnlwdG8vc2hhL3NoYTUxMi1hcm12OC5TCkBAIC0xLDEwICsxLDExIEBACiAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSNpbmNsdWRlICJhcm1fYXJjaC5oIgorI2luY2x1ZGUgPG9wZW5zc2wvYXJtX2FyY2guaD4KIAogLnRleHQKIAogCiAuZ2xvYmwJc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIKKy5oaWRkZW4Jc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIKIC50eXBlCXNoYTUxMl9ibG9ja19kYXRhX29yZGVyLCVmdW5jdGlvbgogLmFsaWduCTYKIHNoYTUxMl9ibG9ja19kYXRhX29yZGVyOgpAQCAtMTAyMiw0ICsxMDIzLDQgQEAKIC5hbGlnbgkyCiAuYWxpZ24JMgogLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vYWVzL2Flcy1hcm12NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vYWVzL2Flcy1hcm12NC5TCmluZGV4IGNiOTQ4NDEuLmJjMTFlM2YgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2Flcy9hZXMtYXJtdjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9hZXMvYWVzLWFybXY0LlMKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19hcm1fXykKICNpZm5kZWYgX19LRVJORUxfXwotIyBpbmNsdWRlICJhcm1fYXJjaC5oIgorIyBpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CiAjZWxzZQogIyBkZWZpbmUgX19BUk1fQVJDSF9fIF9fTElOVVhfQVJNX0FSQ0hfXwogI2VuZGlmCkBAIC0xMTk3LDQgKzExOTcsNCBAQAogLmFsaWduCTIKIAogI2VuZGlmCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2Flcy9hZXN2OC1hcm14MzIuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2Flcy9hZXN2OC1hcm14MzIuUwppbmRleCA2ZjBlZTdkLi45NWEyZWE0IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9hZXMvYWVzdjgtYXJteDMyLlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vYWVzL2Flc3Y4LWFybXgzMi5TCkBAIC0xLDUgKzEsNSBAQAogI2lmIGRlZmluZWQoX19hcm1fXykKLSNpbmNsdWRlICJhcm1fYXJjaC5oIgorI2luY2x1ZGUgPG9wZW5zc2wvYXJtX2FyY2guaD4KIAogI2lmIF9fQVJNX01BWF9BUkNIX18+PTcKIC50ZXh0CkBAIC0xMyw2ICsxMyw3IEBACiAubG9uZwkweDFiLDB4MWIsMHgxYiwweDFiCiAKIC5nbG9ibAlhZXNfdjhfc2V0X2VuY3J5cHRfa2V5CisuaGlkZGVuCWFlc192OF9zZXRfZW5jcnlwdF9rZXkKIC50eXBlCWFlc192OF9zZXRfZW5jcnlwdF9rZXksJWZ1bmN0aW9uCiAuYWxpZ24JNQogYWVzX3Y4X3NldF9lbmNyeXB0X2tleToKQEAgLTE4Myw2ICsxODQsNyBAQAogLnNpemUJYWVzX3Y4X3NldF9lbmNyeXB0X2tleSwuLWFlc192OF9zZXRfZW5jcnlwdF9rZXkKIAogLmdsb2JsCWFlc192OF9zZXRfZGVjcnlwdF9rZXkKKy5oaWRkZW4JYWVzX3Y4X3NldF9kZWNyeXB0X2tleQogLnR5cGUJYWVzX3Y4X3NldF9kZWNyeXB0X2tleSwlZnVuY3Rpb24KIC5hbGlnbgk1CiBhZXNfdjhfc2V0X2RlY3J5cHRfa2V5OgpAQCAtMjIwLDYgKzIyMiw3IEBACiAJbGRtaWEJc3AhLHtyNCxwY30KIC5zaXplCWFlc192OF9zZXRfZGVjcnlwdF9rZXksLi1hZXNfdjhfc2V0X2RlY3J5cHRfa2V5CiAuZ2xvYmwJYWVzX3Y4X2VuY3J5cHQKKy5oaWRkZW4JYWVzX3Y4X2VuY3J5cHQKIC50eXBlCWFlc192OF9lbmNyeXB0LCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9lbmNyeXB0OgpAQCAtMjQ5LDYgKzI1Miw3IEBACiAJYngJbHIKIC5zaXplCWFlc192OF9lbmNyeXB0LC4tYWVzX3Y4X2VuY3J5cHQKIC5nbG9ibAlhZXNfdjhfZGVjcnlwdAorLmhpZGRlbglhZXNfdjhfZGVjcnlwdAogLnR5cGUJYWVzX3Y4X2RlY3J5cHQsJWZ1bmN0aW9uCiAuYWxpZ24JNQogYWVzX3Y4X2RlY3J5cHQ6CkBAIC0yNzgsNiArMjgyLDcgQEAKIAlieAlscgogLnNpemUJYWVzX3Y4X2RlY3J5cHQsLi1hZXNfdjhfZGVjcnlwdAogLmdsb2JsCWFlc192OF9jYmNfZW5jcnlwdAorLmhpZGRlbglhZXNfdjhfY2JjX2VuY3J5cHQKIC50eXBlCWFlc192OF9jYmNfZW5jcnlwdCwlZnVuY3Rpb24KIC5hbGlnbgk1CiBhZXNfdjhfY2JjX2VuY3J5cHQ6CkBAIC01NzAsNiArNTc1LDcgQEAKIAlsZG1pYQlzcCEse3I0LHI1LHI2LHI3LHI4LHBjfQogLnNpemUJYWVzX3Y4X2NiY19lbmNyeXB0LC4tYWVzX3Y4X2NiY19lbmNyeXB0CiAuZ2xvYmwJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzCisuaGlkZGVuCWFlc192OF9jdHIzMl9lbmNyeXB0X2Jsb2NrcwogLnR5cGUJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzLCVmdW5jdGlvbgogLmFsaWduCTUKIGFlc192OF9jdHIzMl9lbmNyeXB0X2Jsb2NrczoKQEAgLTc1Myw0ICs3NTksNCBAQAogCWxkbWlhCXNwISx7cjQscjUscjYscjcscjgscjkscjEwLHBjfQogLnNpemUJYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzLC4tYWVzX3Y4X2N0cjMyX2VuY3J5cHRfYmxvY2tzCiAjZW5kaWYKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vYWVzL2JzYWVzLWFybXY3LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9hZXMvYnNhZXMtYXJtdjcuUwppbmRleCBkZDg0ZjM1Li5hYmI0MTRkIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9hZXMvYnNhZXMtYXJtdjcuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9hZXMvYnNhZXMtYXJtdjcuUwpAQCAtNDcsOSArNDcsOCBAQAogQAogQAkJCQkJPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+CiAKLSNpZiBkZWZpbmVkKF9fYXJtX18pCiAjaWZuZGVmIF9fS0VSTkVMX18KLSMgaW5jbHVkZSAiYXJtX2FyY2guaCIKKyMgaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogCiAjIGRlZmluZSBWRlBfQUJJX1BVU0gJdnN0bWRiCXNwISx7ZDgtZDE1fQogIyBkZWZpbmUgVkZQX0FCSV9QT1AJdmxkbWlhCXNwISx7ZDgtZDE1fQpAQCAtMjU3Niw0ICsyNTc1LDMgQEAKIC5zaXplCWJzYWVzX3h0c19kZWNyeXB0LC4tYnNhZXNfeHRzX2RlY3J5cHQKICNlbmRpZgogI2VuZGlmCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9ibi9hcm12NC1tb250LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9ibi9hcm12NC1tb250LlMKaW5kZXggNjhkZmIyYy4uZTU5NTk5ZiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vYm4vYXJtdjQtbW9udC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2JuL2FybXY0LW1vbnQuUwpAQCAtMSw1ICsxLDUgQEAKICNpZiBkZWZpbmVkKF9fYXJtX18pCi0jaW5jbHVkZSAiYXJtX2FyY2guaCIKKyNpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CiAKIC50ZXh0CiAuY29kZQkzMgpAQCAtMjgsNyArMjgsNyBAQAogI2lmZGVmCV9fQVBQTEVfXwogCWxkcglyMCxbcjBdCiAjZW5kaWYKLQl0c3QJcjAsIzEJCQlAIE5FT04gYXZhaWxhYmxlPworCXRzdAlyMCwjQVJNVjdfTkVPTgkJQCBORU9OIGF2YWlsYWJsZT8KIAlsZG1pYQlzcCwge3IwLHIyfQogCWJlcQkuTGlhbHUKIAlhZGQJc3Asc3AsIzgKQEAgLTU4Niw0ICs1ODYsNCBAQAogLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKIC5oaWRkZW4JT1BFTlNTTF9hcm1jYXBfUAogI2VuZGlmCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL2NoYWNoYS9jaGFjaGEtYXJtdjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWE0ZDJjCi0tLSAvZGV2L251bGwKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vY2hhY2hhL2NoYWNoYS1hcm12NC5TCkBAIC0wLDAgKzEsMTQ3MSBAQAorI2lmIGRlZmluZWQoX19hcm1fXykKKyNpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CisKKy50ZXh0CisjaWYgZGVmaW5lZChfX3RodW1iMl9fKQorLnN5bnRheAl1bmlmaWVkCisudGh1bWIKKyNlbHNlCisuY29kZQkzMgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fdGh1bWIyX18pIHx8IGRlZmluZWQoX19jbGFuZ19fKQorI2RlZmluZSBsZHJoc2IJbGRyYmhzCisjZW5kaWYKKworLmFsaWduCTUKKy5Mc2lnbWE6CisubG9uZwkweDYxNzA3ODY1LDB4MzMyMDY0NmUsMHg3OTYyMmQzMiwweDZiMjA2NTc0CUAgZW5kaWFuLW5ldXRyYWwKKy5Mb25lOgorLmxvbmcJMSwwLDAsMAorI2lmIF9fQVJNX01BWF9BUkNIX18+PTcKKy5MT1BFTlNTTF9hcm1jYXA6Cisud29yZAlPUEVOU1NMX2FybWNhcF9QLS5MQ2hhQ2hhMjBfY3RyMzIKKyNlbHNlCisud29yZAktMQorI2VuZGlmCisKKy5nbG9ibAlDaGFDaGEyMF9jdHIzMgorLmhpZGRlbglDaGFDaGEyMF9jdHIzMgorLnR5cGUJQ2hhQ2hhMjBfY3RyMzIsJWZ1bmN0aW9uCisuYWxpZ24JNQorQ2hhQ2hhMjBfY3RyMzI6CisuTENoYUNoYTIwX2N0cjMyOgorCWxkcglyMTIsW3NwLCMwXQkJQCBwdWxsIHBvaW50ZXIgdG8gY291bnRlciBhbmQgbm9uY2UKKwlzdG1kYglzcCEse3IwLHIxLHIyLHI0LXIxMSxscn0KKyNpZiBfX0FSTV9BUkNIX188NyAmJiAhZGVmaW5lZChfX3RodW1iMl9fKQorCXN1YglyMTQscGMsIzE2CQlAIENoYUNoYTIwX2N0cjMyCisjZWxzZQorCWFkcglyMTQsLkxDaGFDaGEyMF9jdHIzMgorI2VuZGlmCisJY21wCXIyLCMwCQkJQCBsZW49PTA/CisjaWZkZWYJX190aHVtYjJfXworCWl0dAllcQorI2VuZGlmCisJYWRkZXEJc3Asc3AsIzQqMworCWJlcQkuTG5vX2RhdGEKKyNpZiBfX0FSTV9NQVhfQVJDSF9fPj03CisJY21wCXIyLCMxOTIJCQlAIHRlc3QgbGVuCisJYmxzCS5Mc2hvcnQKKwlsZHIJcjQsW3IxNCwjLTMyXQorCWxkcglyNCxbcjE0LHI0XQorIyBpZmRlZglfX0FQUExFX18KKwlsZHIJcjQsW3I0XQorIyBlbmRpZgorCXRzdAlyNCwjQVJNVjdfTkVPTgorCWJuZQkuTENoYUNoYTIwX25lb24KKy5Mc2hvcnQ6CisjZW5kaWYKKwlsZG1pYQlyMTIse3I0LHI1LHI2LHI3fQkJQCBsb2FkIGNvdW50ZXIgYW5kIG5vbmNlCisJc3ViCXNwLHNwLCM0KigxNikJCUAgb2ZmLWxvYWQgYXJlYQorCXN1YglyMTQscjE0LCM2NAkJQCAuTHNpZ21hCisJc3RtZGIJc3AhLHtyNCxyNSxyNixyN30JCUAgY29weSBjb3VudGVyIGFuZCBub25jZQorCWxkbWlhCXIzLHtyNCxyNSxyNixyNyxyOCxyOSxyMTAscjExfQkJQCBsb2FkIGtleQorCWxkbWlhCXIxNCx7cjAscjEscjIscjN9CQlAIGxvYWQgc2lnbWEKKwlzdG1kYglzcCEse3I0LHI1LHI2LHI3LHI4LHI5LHIxMCxyMTF9CQlAIGNvcHkga2V5CisJc3RtZGIJc3AhLHtyMCxyMSxyMixyM30JCUAgY29weSBzaWdtYQorCXN0cglyMTAsW3NwLCM0KigxNisxMCldCUAgb2ZmLWxvYWQgInJ4IgorCXN0cglyMTEsW3NwLCM0KigxNisxMSldCUAgb2ZmLWxvYWQgInJ4IgorCWIJLkxvb3Bfb3V0ZXJfZW50ZXIKKworLmFsaWduCTQKKy5Mb29wX291dGVyOgorCWxkbWlhCXNwLHtyMCxyMSxyMixyMyxyNCxyNSxyNixyNyxyOCxyOX0JCUAgbG9hZCBrZXkgbWF0ZXJpYWwKKwlzdHIJcjExLFtzcCwjNCooMzIrMildCUAgc2F2ZSBsZW4KKwlzdHIJcjEyLCAgW3NwLCM0KigzMisxKV0JQCBzYXZlIGlucAorCXN0cglyMTQsICBbc3AsIzQqKDMyKzApXQlAIHNhdmUgb3V0CisuTG9vcF9vdXRlcl9lbnRlcjoKKwlsZHIJcjExLCBbc3AsIzQqKDE1KV0KKwlsZHIJcjEyLFtzcCwjNCooMTIpXQlAIG1vZHVsby1zY2hlZHVsZWQgbG9hZAorCWxkcglyMTAsIFtzcCwjNCooMTMpXQorCWxkcglyMTQsW3NwLCM0KigxNCldCisJc3RyCXIxMSwgW3NwLCM0KigxNisxNSldCisJbW92CXIxMSwjMTAKKwliCS5Mb29wCisKKy5hbGlnbgk0CisuTG9vcDoKKwlzdWJzCXIxMSxyMTEsIzEKKwlhZGQJcjAscjAscjQKKwltb3YJcjEyLHIxMixyb3IjMTYKKwlhZGQJcjEscjEscjUKKwltb3YJcjEwLHIxMCxyb3IjMTYKKwllb3IJcjEyLHIxMixyMCxyb3IjMTYKKwllb3IJcjEwLHIxMCxyMSxyb3IjMTYKKwlhZGQJcjgscjgscjEyCisJbW92CXI0LHI0LHJvciMyMAorCWFkZAlyOSxyOSxyMTAKKwltb3YJcjUscjUscm9yIzIwCisJZW9yCXI0LHI0LHI4LHJvciMyMAorCWVvcglyNSxyNSxyOSxyb3IjMjAKKwlhZGQJcjAscjAscjQKKwltb3YJcjEyLHIxMixyb3IjMjQKKwlhZGQJcjEscjEscjUKKwltb3YJcjEwLHIxMCxyb3IjMjQKKwllb3IJcjEyLHIxMixyMCxyb3IjMjQKKwllb3IJcjEwLHIxMCxyMSxyb3IjMjQKKwlhZGQJcjgscjgscjEyCisJbW92CXI0LHI0LHJvciMyNQorCWFkZAlyOSxyOSxyMTAKKwltb3YJcjUscjUscm9yIzI1CisJc3RyCXIxMCxbc3AsIzQqKDE2KzEzKV0KKwlsZHIJcjEwLFtzcCwjNCooMTYrMTUpXQorCWVvcglyNCxyNCxyOCxyb3IjMjUKKwllb3IJcjUscjUscjkscm9yIzI1CisJc3RyCXI4LFtzcCwjNCooMTYrOCldCisJbGRyCXI4LFtzcCwjNCooMTYrMTApXQorCWFkZAlyMixyMixyNgorCW1vdglyMTQscjE0LHJvciMxNgorCXN0cglyOSxbc3AsIzQqKDE2KzkpXQorCWxkcglyOSxbc3AsIzQqKDE2KzExKV0KKwlhZGQJcjMscjMscjcKKwltb3YJcjEwLHIxMCxyb3IjMTYKKwllb3IJcjE0LHIxNCxyMixyb3IjMTYKKwllb3IJcjEwLHIxMCxyMyxyb3IjMTYKKwlhZGQJcjgscjgscjE0CisJbW92CXI2LHI2LHJvciMyMAorCWFkZAlyOSxyOSxyMTAKKwltb3YJcjcscjcscm9yIzIwCisJZW9yCXI2LHI2LHI4LHJvciMyMAorCWVvcglyNyxyNyxyOSxyb3IjMjAKKwlhZGQJcjIscjIscjYKKwltb3YJcjE0LHIxNCxyb3IjMjQKKwlhZGQJcjMscjMscjcKKwltb3YJcjEwLHIxMCxyb3IjMjQKKwllb3IJcjE0LHIxNCxyMixyb3IjMjQKKwllb3IJcjEwLHIxMCxyMyxyb3IjMjQKKwlhZGQJcjgscjgscjE0CisJbW92CXI2LHI2LHJvciMyNQorCWFkZAlyOSxyOSxyMTAKKwltb3YJcjcscjcscm9yIzI1CisJZW9yCXI2LHI2LHI4LHJvciMyNQorCWVvcglyNyxyNyxyOSxyb3IjMjUKKwlhZGQJcjAscjAscjUKKwltb3YJcjEwLHIxMCxyb3IjMTYKKwlhZGQJcjEscjEscjYKKwltb3YJcjEyLHIxMixyb3IjMTYKKwllb3IJcjEwLHIxMCxyMCxyb3IjMTYKKwllb3IJcjEyLHIxMixyMSxyb3IjMTYKKwlhZGQJcjgscjgscjEwCisJbW92CXI1LHI1LHJvciMyMAorCWFkZAlyOSxyOSxyMTIKKwltb3YJcjYscjYscm9yIzIwCisJZW9yCXI1LHI1LHI4LHJvciMyMAorCWVvcglyNixyNixyOSxyb3IjMjAKKwlhZGQJcjAscjAscjUKKwltb3YJcjEwLHIxMCxyb3IjMjQKKwlhZGQJcjEscjEscjYKKwltb3YJcjEyLHIxMixyb3IjMjQKKwllb3IJcjEwLHIxMCxyMCxyb3IjMjQKKwllb3IJcjEyLHIxMixyMSxyb3IjMjQKKwlhZGQJcjgscjgscjEwCisJbW92CXI1LHI1LHJvciMyNQorCXN0cglyMTAsW3NwLCM0KigxNisxNSldCisJbGRyCXIxMCxbc3AsIzQqKDE2KzEzKV0KKwlhZGQJcjkscjkscjEyCisJbW92CXI2LHI2LHJvciMyNQorCWVvcglyNSxyNSxyOCxyb3IjMjUKKwllb3IJcjYscjYscjkscm9yIzI1CisJc3RyCXI4LFtzcCwjNCooMTYrMTApXQorCWxkcglyOCxbc3AsIzQqKDE2KzgpXQorCWFkZAlyMixyMixyNworCW1vdglyMTAscjEwLHJvciMxNgorCXN0cglyOSxbc3AsIzQqKDE2KzExKV0KKwlsZHIJcjksW3NwLCM0KigxNis5KV0KKwlhZGQJcjMscjMscjQKKwltb3YJcjE0LHIxNCxyb3IjMTYKKwllb3IJcjEwLHIxMCxyMixyb3IjMTYKKwllb3IJcjE0LHIxNCxyMyxyb3IjMTYKKwlhZGQJcjgscjgscjEwCisJbW92CXI3LHI3LHJvciMyMAorCWFkZAlyOSxyOSxyMTQKKwltb3YJcjQscjQscm9yIzIwCisJZW9yCXI3LHI3LHI4LHJvciMyMAorCWVvcglyNCxyNCxyOSxyb3IjMjAKKwlhZGQJcjIscjIscjcKKwltb3YJcjEwLHIxMCxyb3IjMjQKKwlhZGQJcjMscjMscjQKKwltb3YJcjE0LHIxNCxyb3IjMjQKKwllb3IJcjEwLHIxMCxyMixyb3IjMjQKKwllb3IJcjE0LHIxNCxyMyxyb3IjMjQKKwlhZGQJcjgscjgscjEwCisJbW92CXI3LHI3LHJvciMyNQorCWFkZAlyOSxyOSxyMTQKKwltb3YJcjQscjQscm9yIzI1CisJZW9yCXI3LHI3LHI4LHJvciMyNQorCWVvcglyNCxyNCxyOSxyb3IjMjUKKwlibmUJLkxvb3AKKworCWxkcglyMTEsW3NwLCM0KigzMisyKV0JQCBsb2FkIGxlbgorCisJc3RyCXI4LCBbc3AsIzQqKDE2KzgpXQlAIG1vZHVsby1zY2hlZHVsZWQgc3RvcmUKKwlzdHIJcjksIFtzcCwjNCooMTYrOSldCisJc3RyCXIxMixbc3AsIzQqKDE2KzEyKV0KKwlzdHIJcjEwLCBbc3AsIzQqKDE2KzEzKV0KKwlzdHIJcjE0LFtzcCwjNCooMTYrMTQpXQorCisJQCBhdCB0aGlzIHBvaW50IHdlIGhhdmUgZmlyc3QgaGFsZiBvZiA1MTItYml0IHJlc3VsdCBpbgorCUAgcnggYW5kIHNlY29uZCBoYWxmIGF0IHNwKzQqKDE2KzgpCisKKwljbXAJcjExLCM2NAkJQCBkb25lIHlldD8KKyNpZmRlZglfX3RodW1iMl9fCisJaXRldGUJbG8KKyNlbmRpZgorCWFkZGxvCXIxMixzcCwjNCooMCkJCUAgc2hvcnRjdXQgb3IgLi4uCisJbGRyaHMJcjEyLFtzcCwjNCooMzIrMSldCUAgLi4uIGxvYWQgaW5wCisJYWRkbG8JcjE0LHNwLCM0KigwKQkJQCBzaG9ydGN1dCBvciAuLi4KKwlsZHJocwlyMTQsW3NwLCM0KigzMiswKV0JQCAuLi4gbG9hZCBvdXQKKworCWxkcglyOCxbc3AsIzQqKDApXQlAIGxvYWQga2V5IG1hdGVyaWFsCisJbGRyCXI5LFtzcCwjNCooMSldCisKKyNpZiBfX0FSTV9BUkNIX18+PTYgfHwgIWRlZmluZWQoX19BUk1FQl9fKQorIyBpZiBfX0FSTV9BUkNIX188NworCW9ycglyMTAscjEyLHIxNAorCXRzdAlyMTAsIzMJCUAgYXJlIGlucHV0IGFuZCBvdXRwdXQgYWxpZ25lZD8KKwlsZHIJcjEwLFtzcCwjNCooMildCisJYm5lCS5MdW5hbGlnbmVkCisJY21wCXIxMSwjNjQJCUAgcmVzdG9yZSBmbGFncworIyBlbHNlCisJbGRyCXIxMCxbc3AsIzQqKDIpXQorIyBlbmRpZgorCWxkcglyMTEsW3NwLCM0KigzKV0KKworCWFkZAlyMCxyMCxyOAlAIGFjY3VtdWxhdGUga2V5IG1hdGVyaWFsCisJYWRkCXIxLHIxLHI5CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJocwlyOCxbcjEyXSwjMTYJCUAgbG9hZCBpbnB1dAorCWxkcmhzCXI5LFtyMTIsIy0xMl0KKworCWFkZAlyMixyMixyMTAKKwlhZGQJcjMscjMscjExCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJocwlyMTAsW3IxMiwjLThdCisJbGRyaHMJcjExLFtyMTIsIy00XQorIyBpZiBfX0FSTV9BUkNIX18+PTYgJiYgZGVmaW5lZChfX0FSTUVCX18pCisJcmV2CXIwLHIwCisJcmV2CXIxLHIxCisJcmV2CXIyLHIyCisJcmV2CXIzLHIzCisjIGVuZGlmCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwllb3JocwlyMCxyMCxyOAlAIHhvciB3aXRoIGlucHV0CisJZW9yaHMJcjEscjEscjkKKwlhZGQJcjgsc3AsIzQqKDQpCisJc3RyCXIwLFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWVvcmhzCXIyLHIyLHIxMAorCWVvcmhzCXIzLHIzLHIxMQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQlAIGxvYWQga2V5IG1hdGVyaWFsCisJc3RyCXIxLFtyMTQsIy0xMl0KKwlzdHIJcjIsW3IxNCwjLThdCisJc3RyCXIzLFtyMTQsIy00XQorCisJYWRkCXI0LHI0LHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjUscjUscjkKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzCXI4LFtyMTJdLCMxNgkJQCBsb2FkIGlucHV0CisJbGRyaHMJcjksW3IxMiwjLTEyXQorCWFkZAlyNixyNixyMTAKKwlhZGQJcjcscjcscjExCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJocwlyMTAsW3IxMiwjLThdCisJbGRyaHMJcjExLFtyMTIsIy00XQorIyBpZiBfX0FSTV9BUkNIX18+PTYgJiYgZGVmaW5lZChfX0FSTUVCX18pCisJcmV2CXI0LHI0CisJcmV2CXI1LHI1CisJcmV2CXI2LHI2CisJcmV2CXI3LHI3CisjIGVuZGlmCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwllb3JocwlyNCxyNCxyOAorCWVvcmhzCXI1LHI1LHI5CisJYWRkCXI4LHNwLCM0Kig4KQorCXN0cglyNCxbcjE0XSwjMTYJCUAgc3RvcmUgb3V0cHV0CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwllb3JocwlyNixyNixyMTAKKwllb3JocwlyNyxyNyxyMTEKKwlzdHIJcjUsW3IxNCwjLTEyXQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQlAIGxvYWQga2V5IG1hdGVyaWFsCisJc3RyCXI2LFtyMTQsIy04XQorCWFkZAlyMCxzcCwjNCooMTYrOCkKKwlzdHIJcjcsW3IxNCwjLTRdCisKKwlsZG1pYQlyMCx7cjAscjEscjIscjMscjQscjUscjYscjd9CUAgbG9hZCBzZWNvbmQgaGFsZgorCisJYWRkCXIwLHIwLHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjEscjEscjkKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzCXI4LFtyMTJdLCMxNgkJQCBsb2FkIGlucHV0CisJbGRyaHMJcjksW3IxMiwjLTEyXQorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhpCisjIGVuZGlmCisJc3RyaGkJcjEwLFtzcCwjNCooMTYrMTApXQlAIGNvcHkgInJ4IiB3aGlsZSBhdCBpdAorCXN0cmhpCXIxMSxbc3AsIzQqKDE2KzExKV0JQCBjb3B5ICJyeCIgd2hpbGUgYXQgaXQKKwlhZGQJcjIscjIscjEwCisJYWRkCXIzLHIzLHIxMQorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHMJcjEwLFtyMTIsIy04XQorCWxkcmhzCXIxMSxbcjEyLCMtNF0KKyMgaWYgX19BUk1fQVJDSF9fPj02ICYmIGRlZmluZWQoX19BUk1FQl9fKQorCXJldglyMCxyMAorCXJldglyMSxyMQorCXJldglyMixyMgorCXJldglyMyxyMworIyBlbmRpZgorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJZW9yaHMJcjAscjAscjgKKwllb3JocwlyMSxyMSxyOQorCWFkZAlyOCxzcCwjNCooMTIpCisJc3RyCXIwLFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWVvcmhzCXIyLHIyLHIxMAorCWVvcmhzCXIzLHIzLHIxMQorCXN0cglyMSxbcjE0LCMtMTJdCisJbGRtaWEJcjgse3I4LHI5LHIxMCxyMTF9CUAgbG9hZCBrZXkgbWF0ZXJpYWwKKwlzdHIJcjIsW3IxNCwjLThdCisJc3RyCXIzLFtyMTQsIy00XQorCisJYWRkCXI0LHI0LHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjUscjUscjkKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAloaQorIyBlbmRpZgorCWFkZGhpCXI4LHI4LCMxCQlAIG5leHQgY291bnRlciB2YWx1ZQorCXN0cmhpCXI4LFtzcCwjNCooMTIpXQlAIHNhdmUgbmV4dCBjb3VudGVyIHZhbHVlCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJocwlyOCxbcjEyXSwjMTYJCUAgbG9hZCBpbnB1dAorCWxkcmhzCXI5LFtyMTIsIy0xMl0KKwlhZGQJcjYscjYscjEwCisJYWRkCXI3LHI3LHIxMQorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHMJcjEwLFtyMTIsIy04XQorCWxkcmhzCXIxMSxbcjEyLCMtNF0KKyMgaWYgX19BUk1fQVJDSF9fPj02ICYmIGRlZmluZWQoX19BUk1FQl9fKQorCXJldglyNCxyNAorCXJldglyNSxyNQorCXJldglyNixyNgorCXJldglyNyxyNworIyBlbmRpZgorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJZW9yaHMJcjQscjQscjgKKwllb3JocwlyNSxyNSxyOQorIyBpZmRlZglfX3RodW1iMl9fCisJaXQJbmUKKyMgZW5kaWYKKwlsZHJuZQlyOCxbc3AsIzQqKDMyKzIpXQlAIHJlLWxvYWQgbGVuCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwllb3JocwlyNixyNixyMTAKKwllb3JocwlyNyxyNyxyMTEKKwlzdHIJcjQsW3IxNF0sIzE2CQlAIHN0b3JlIG91dHB1dAorCXN0cglyNSxbcjE0LCMtMTJdCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdAlocworIyBlbmRpZgorCXN1YmhzCXIxMSxyOCwjNjQJCUAgbGVuLT02NAorCXN0cglyNixbcjE0LCMtOF0KKwlzdHIJcjcsW3IxNCwjLTRdCisJYmhpCS5Mb29wX291dGVyCisKKwliZXEJLkxkb25lCisjIGlmIF9fQVJNX0FSQ0hfXzw3CisJYgkuTHRhaWwKKworLmFsaWduCTQKKy5MdW5hbGlnbmVkOkAgdW5hbGlnbmVkIGVuZGlhbi1uZXV0cmFsIHBhdGgKKwljbXAJcjExLCM2NAkJQCByZXN0b3JlIGZsYWdzCisjIGVuZGlmCisjZW5kaWYKKyNpZiBfX0FSTV9BUkNIX188NworCWxkcglyMTEsW3NwLCM0KigzKV0KKwlhZGQJcjAscjAscjgJCUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjEscjEscjkKKwlhZGQJcjIscjIscjEwCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdGV0ZQlsbworIyBlbmRpZgorCWVvcmxvCXI4LHI4LHI4CQlAIHplcm8gb3IgLi4uCisJbGRyaHNiCXI4LFtyMTJdLCMxNgkJCUAgLi4uIGxvYWQgaW5wdXQKKwllb3JsbwlyOSxyOSxyOQorCWxkcmhzYglyOSxbcjEyLCMtMTJdCisKKwlhZGQJcjMscjMscjExCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdGV0ZQlsbworIyBlbmRpZgorCWVvcmxvCXIxMCxyMTAscjEwCisJbGRyaHNiCXIxMCxbcjEyLCMtOF0KKwllb3JsbwlyMTEscjExLHIxMQorCWxkcmhzYglyMTEsW3IxMiwjLTRdCisKKwllb3IJcjAscjgscjAJCUAgeG9yIHdpdGggaW5wdXQgKG9yIHplcm8pCisJZW9yCXIxLHI5LHIxCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjgsW3IxMiwjLTE1XQkJQCBsb2FkIG1vcmUgaW5wdXQKKwlsZHJoc2IJcjksW3IxMiwjLTExXQorCWVvcglyMixyMTAscjIKKwlzdHJiCXIwLFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKwllb3IJcjMscjExLHIzCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjEwLFtyMTIsIy03XQorCWxkcmhzYglyMTEsW3IxMiwjLTNdCisJc3RyYglyMSxbcjE0LCMtMTJdCisJZW9yCXIwLHI4LHIwLGxzciM4CisJc3RyYglyMixbcjE0LCMtOF0KKwllb3IJcjEscjkscjEsbHNyIzgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyOCxbcjEyLCMtMTRdCQlAIGxvYWQgbW9yZSBpbnB1dAorCWxkcmhzYglyOSxbcjEyLCMtMTBdCisJc3RyYglyMyxbcjE0LCMtNF0KKwllb3IJcjIscjEwLHIyLGxzciM4CisJc3RyYglyMCxbcjE0LCMtMTVdCisJZW9yCXIzLHIxMSxyMyxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXIxMCxbcjEyLCMtNl0KKwlsZHJoc2IJcjExLFtyMTIsIy0yXQorCXN0cmIJcjEsW3IxNCwjLTExXQorCWVvcglyMCxyOCxyMCxsc3IjOAorCXN0cmIJcjIsW3IxNCwjLTddCisJZW9yCXIxLHI5LHIxLGxzciM4CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjgsW3IxMiwjLTEzXQkJQCBsb2FkIG1vcmUgaW5wdXQKKwlsZHJoc2IJcjksW3IxMiwjLTldCisJc3RyYglyMyxbcjE0LCMtM10KKwllb3IJcjIscjEwLHIyLGxzciM4CisJc3RyYglyMCxbcjE0LCMtMTRdCisJZW9yCXIzLHIxMSxyMyxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXIxMCxbcjEyLCMtNV0KKwlsZHJoc2IJcjExLFtyMTIsIy0xXQorCXN0cmIJcjEsW3IxNCwjLTEwXQorCXN0cmIJcjIsW3IxNCwjLTZdCisJZW9yCXIwLHI4LHIwLGxzciM4CisJc3RyYglyMyxbcjE0LCMtMl0KKwllb3IJcjEscjkscjEsbHNyIzgKKwlzdHJiCXIwLFtyMTQsIy0xM10KKwllb3IJcjIscjEwLHIyLGxzciM4CisJc3RyYglyMSxbcjE0LCMtOV0KKwllb3IJcjMscjExLHIzLGxzciM4CisJc3RyYglyMixbcjE0LCMtNV0KKwlzdHJiCXIzLFtyMTQsIy0xXQorCWFkZAlyOCxzcCwjNCooNCswKQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQkJQCBsb2FkIGtleSBtYXRlcmlhbAorCWFkZAlyMCxzcCwjNCooMTYrOCkKKwlhZGQJcjQscjQscjgJCUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjUscjUscjkKKwlhZGQJcjYscjYscjEwCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdGV0ZQlsbworIyBlbmRpZgorCWVvcmxvCXI4LHI4LHI4CQlAIHplcm8gb3IgLi4uCisJbGRyaHNiCXI4LFtyMTJdLCMxNgkJCUAgLi4uIGxvYWQgaW5wdXQKKwllb3JsbwlyOSxyOSxyOQorCWxkcmhzYglyOSxbcjEyLCMtMTJdCisKKwlhZGQJcjcscjcscjExCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdGV0ZQlsbworIyBlbmRpZgorCWVvcmxvCXIxMCxyMTAscjEwCisJbGRyaHNiCXIxMCxbcjEyLCMtOF0KKwllb3JsbwlyMTEscjExLHIxMQorCWxkcmhzYglyMTEsW3IxMiwjLTRdCisKKwllb3IJcjQscjgscjQJCUAgeG9yIHdpdGggaW5wdXQgKG9yIHplcm8pCisJZW9yCXI1LHI5LHI1CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjgsW3IxMiwjLTE1XQkJQCBsb2FkIG1vcmUgaW5wdXQKKwlsZHJoc2IJcjksW3IxMiwjLTExXQorCWVvcglyNixyMTAscjYKKwlzdHJiCXI0LFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKwllb3IJcjcscjExLHI3CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjEwLFtyMTIsIy03XQorCWxkcmhzYglyMTEsW3IxMiwjLTNdCisJc3RyYglyNSxbcjE0LCMtMTJdCisJZW9yCXI0LHI4LHI0LGxzciM4CisJc3RyYglyNixbcjE0LCMtOF0KKwllb3IJcjUscjkscjUsbHNyIzgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyOCxbcjEyLCMtMTRdCQlAIGxvYWQgbW9yZSBpbnB1dAorCWxkcmhzYglyOSxbcjEyLCMtMTBdCisJc3RyYglyNyxbcjE0LCMtNF0KKwllb3IJcjYscjEwLHI2LGxzciM4CisJc3RyYglyNCxbcjE0LCMtMTVdCisJZW9yCXI3LHIxMSxyNyxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXIxMCxbcjEyLCMtNl0KKwlsZHJoc2IJcjExLFtyMTIsIy0yXQorCXN0cmIJcjUsW3IxNCwjLTExXQorCWVvcglyNCxyOCxyNCxsc3IjOAorCXN0cmIJcjYsW3IxNCwjLTddCisJZW9yCXI1LHI5LHI1LGxzciM4CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjgsW3IxMiwjLTEzXQkJQCBsb2FkIG1vcmUgaW5wdXQKKwlsZHJoc2IJcjksW3IxMiwjLTldCisJc3RyYglyNyxbcjE0LCMtM10KKwllb3IJcjYscjEwLHI2LGxzciM4CisJc3RyYglyNCxbcjE0LCMtMTRdCisJZW9yCXI3LHIxMSxyNyxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXIxMCxbcjEyLCMtNV0KKwlsZHJoc2IJcjExLFtyMTIsIy0xXQorCXN0cmIJcjUsW3IxNCwjLTEwXQorCXN0cmIJcjYsW3IxNCwjLTZdCisJZW9yCXI0LHI4LHI0LGxzciM4CisJc3RyYglyNyxbcjE0LCMtMl0KKwllb3IJcjUscjkscjUsbHNyIzgKKwlzdHJiCXI0LFtyMTQsIy0xM10KKwllb3IJcjYscjEwLHI2LGxzciM4CisJc3RyYglyNSxbcjE0LCMtOV0KKwllb3IJcjcscjExLHI3LGxzciM4CisJc3RyYglyNixbcjE0LCMtNV0KKwlzdHJiCXI3LFtyMTQsIy0xXQorCWFkZAlyOCxzcCwjNCooNCs0KQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQkJQCBsb2FkIGtleSBtYXRlcmlhbAorCWxkbWlhCXIwLHtyMCxyMSxyMixyMyxyNCxyNSxyNixyN30JCUAgbG9hZCBzZWNvbmQgaGFsZgorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhpCisjIGVuZGlmCisJc3RyaGkJcjEwLFtzcCwjNCooMTYrMTApXQkJQCBjb3B5ICJyeCIKKwlzdHJoaQlyMTEsW3NwLCM0KigxNisxMSldCQlAIGNvcHkgInJ4IgorCWFkZAlyMCxyMCxyOAkJQCBhY2N1bXVsYXRlIGtleSBtYXRlcmlhbAorCWFkZAlyMSxyMSxyOQorCWFkZAlyMixyMixyMTAKKyMgaWZkZWYJX190aHVtYjJfXworCWl0ZXRlCWxvCisjIGVuZGlmCisJZW9ybG8JcjgscjgscjgJCUAgemVybyBvciAuLi4KKwlsZHJoc2IJcjgsW3IxMl0sIzE2CQkJQCAuLi4gbG9hZCBpbnB1dAorCWVvcmxvCXI5LHI5LHI5CisJbGRyaHNiCXI5LFtyMTIsIy0xMl0KKworCWFkZAlyMyxyMyxyMTEKKyMgaWZkZWYJX190aHVtYjJfXworCWl0ZXRlCWxvCisjIGVuZGlmCisJZW9ybG8JcjEwLHIxMCxyMTAKKwlsZHJoc2IJcjEwLFtyMTIsIy04XQorCWVvcmxvCXIxMSxyMTEscjExCisJbGRyaHNiCXIxMSxbcjEyLCMtNF0KKworCWVvcglyMCxyOCxyMAkJQCB4b3Igd2l0aCBpbnB1dCAob3IgemVybykKKwllb3IJcjEscjkscjEKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyOCxbcjEyLCMtMTVdCQlAIGxvYWQgbW9yZSBpbnB1dAorCWxkcmhzYglyOSxbcjEyLCMtMTFdCisJZW9yCXIyLHIxMCxyMgorCXN0cmIJcjAsW3IxNF0sIzE2CQlAIHN0b3JlIG91dHB1dAorCWVvcglyMyxyMTEscjMKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyMTAsW3IxMiwjLTddCisJbGRyaHNiCXIxMSxbcjEyLCMtM10KKwlzdHJiCXIxLFtyMTQsIy0xMl0KKwllb3IJcjAscjgscjAsbHNyIzgKKwlzdHJiCXIyLFtyMTQsIy04XQorCWVvcglyMSxyOSxyMSxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXI4LFtyMTIsIy0xNF0JCUAgbG9hZCBtb3JlIGlucHV0CisJbGRyaHNiCXI5LFtyMTIsIy0xMF0KKwlzdHJiCXIzLFtyMTQsIy00XQorCWVvcglyMixyMTAscjIsbHNyIzgKKwlzdHJiCXIwLFtyMTQsIy0xNV0KKwllb3IJcjMscjExLHIzLGxzciM4CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjEwLFtyMTIsIy02XQorCWxkcmhzYglyMTEsW3IxMiwjLTJdCisJc3RyYglyMSxbcjE0LCMtMTFdCisJZW9yCXIwLHI4LHIwLGxzciM4CisJc3RyYglyMixbcjE0LCMtN10KKwllb3IJcjEscjkscjEsbHNyIzgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyOCxbcjEyLCMtMTNdCQlAIGxvYWQgbW9yZSBpbnB1dAorCWxkcmhzYglyOSxbcjEyLCMtOV0KKwlzdHJiCXIzLFtyMTQsIy0zXQorCWVvcglyMixyMTAscjIsbHNyIzgKKwlzdHJiCXIwLFtyMTQsIy0xNF0KKwllb3IJcjMscjExLHIzLGxzciM4CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjEwLFtyMTIsIy01XQorCWxkcmhzYglyMTEsW3IxMiwjLTFdCisJc3RyYglyMSxbcjE0LCMtMTBdCisJc3RyYglyMixbcjE0LCMtNl0KKwllb3IJcjAscjgscjAsbHNyIzgKKwlzdHJiCXIzLFtyMTQsIy0yXQorCWVvcglyMSxyOSxyMSxsc3IjOAorCXN0cmIJcjAsW3IxNCwjLTEzXQorCWVvcglyMixyMTAscjIsbHNyIzgKKwlzdHJiCXIxLFtyMTQsIy05XQorCWVvcglyMyxyMTEscjMsbHNyIzgKKwlzdHJiCXIyLFtyMTQsIy01XQorCXN0cmIJcjMsW3IxNCwjLTFdCisJYWRkCXI4LHNwLCM0Kig0KzgpCisJbGRtaWEJcjgse3I4LHI5LHIxMCxyMTF9CQlAIGxvYWQga2V5IG1hdGVyaWFsCisJYWRkCXI0LHI0LHI4CQlAIGFjY3VtdWxhdGUga2V5IG1hdGVyaWFsCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaGkKKyMgZW5kaWYKKwlhZGRoaQlyOCxyOCwjMQkJCUAgbmV4dCBjb3VudGVyIHZhbHVlCisJc3RyaGkJcjgsW3NwLCM0KigxMildCQlAIHNhdmUgbmV4dCBjb3VudGVyIHZhbHVlCisJYWRkCXI1LHI1LHI5CisJYWRkCXI2LHI2LHIxMAorIyBpZmRlZglfX3RodW1iMl9fCisJaXRldGUJbG8KKyMgZW5kaWYKKwllb3JsbwlyOCxyOCxyOAkJQCB6ZXJvIG9yIC4uLgorCWxkcmhzYglyOCxbcjEyXSwjMTYJCQlAIC4uLiBsb2FkIGlucHV0CisJZW9ybG8JcjkscjkscjkKKwlsZHJoc2IJcjksW3IxMiwjLTEyXQorCisJYWRkCXI3LHI3LHIxMQorIyBpZmRlZglfX3RodW1iMl9fCisJaXRldGUJbG8KKyMgZW5kaWYKKwllb3JsbwlyMTAscjEwLHIxMAorCWxkcmhzYglyMTAsW3IxMiwjLThdCisJZW9ybG8JcjExLHIxMSxyMTEKKwlsZHJoc2IJcjExLFtyMTIsIy00XQorCisJZW9yCXI0LHI4LHI0CQlAIHhvciB3aXRoIGlucHV0IChvciB6ZXJvKQorCWVvcglyNSxyOSxyNQorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXI4LFtyMTIsIy0xNV0JCUAgbG9hZCBtb3JlIGlucHV0CisJbGRyaHNiCXI5LFtyMTIsIy0xMV0KKwllb3IJcjYscjEwLHI2CisJc3RyYglyNCxbcjE0XSwjMTYJCUAgc3RvcmUgb3V0cHV0CisJZW9yCXI3LHIxMSxyNworIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXIxMCxbcjEyLCMtN10KKwlsZHJoc2IJcjExLFtyMTIsIy0zXQorCXN0cmIJcjUsW3IxNCwjLTEyXQorCWVvcglyNCxyOCxyNCxsc3IjOAorCXN0cmIJcjYsW3IxNCwjLThdCisJZW9yCXI1LHI5LHI1LGxzciM4CisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdHQJaHMKKyMgZW5kaWYKKwlsZHJoc2IJcjgsW3IxMiwjLTE0XQkJQCBsb2FkIG1vcmUgaW5wdXQKKwlsZHJoc2IJcjksW3IxMiwjLTEwXQorCXN0cmIJcjcsW3IxNCwjLTRdCisJZW9yCXI2LHIxMCxyNixsc3IjOAorCXN0cmIJcjQsW3IxNCwjLTE1XQorCWVvcglyNyxyMTEscjcsbHNyIzgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyMTAsW3IxMiwjLTZdCisJbGRyaHNiCXIxMSxbcjEyLCMtMl0KKwlzdHJiCXI1LFtyMTQsIy0xMV0KKwllb3IJcjQscjgscjQsbHNyIzgKKwlzdHJiCXI2LFtyMTQsIy03XQorCWVvcglyNSxyOSxyNSxsc3IjOAorIyBpZmRlZglfX3RodW1iMl9fCisJaXR0CWhzCisjIGVuZGlmCisJbGRyaHNiCXI4LFtyMTIsIy0xM10JCUAgbG9hZCBtb3JlIGlucHV0CisJbGRyaHNiCXI5LFtyMTIsIy05XQorCXN0cmIJcjcsW3IxNCwjLTNdCisJZW9yCXI2LHIxMCxyNixsc3IjOAorCXN0cmIJcjQsW3IxNCwjLTE0XQorCWVvcglyNyxyMTEscjcsbHNyIzgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0dAlocworIyBlbmRpZgorCWxkcmhzYglyMTAsW3IxMiwjLTVdCisJbGRyaHNiCXIxMSxbcjEyLCMtMV0KKwlzdHJiCXI1LFtyMTQsIy0xMF0KKwlzdHJiCXI2LFtyMTQsIy02XQorCWVvcglyNCxyOCxyNCxsc3IjOAorCXN0cmIJcjcsW3IxNCwjLTJdCisJZW9yCXI1LHI5LHI1LGxzciM4CisJc3RyYglyNCxbcjE0LCMtMTNdCisJZW9yCXI2LHIxMCxyNixsc3IjOAorCXN0cmIJcjUsW3IxNCwjLTldCisJZW9yCXI3LHIxMSxyNyxsc3IjOAorCXN0cmIJcjYsW3IxNCwjLTVdCisJc3RyYglyNyxbcjE0LCMtMV0KKyMgaWZkZWYJX190aHVtYjJfXworCWl0CW5lCisjIGVuZGlmCisJbGRybmUJcjgsW3NwLCM0KigzMisyKV0JCUAgcmUtbG9hZCBsZW4KKyMgaWZkZWYJX190aHVtYjJfXworCWl0CWhzCisjIGVuZGlmCisJc3ViaHMJcjExLHI4LCM2NAkJCUAgbGVuLT02NAorCWJoaQkuTG9vcF9vdXRlcgorCisJYmVxCS5MZG9uZQorI2VuZGlmCisKKy5MdGFpbDoKKwlsZHIJcjEyLFtzcCwjNCooMzIrMSldCUAgbG9hZCBpbnAKKwlhZGQJcjksc3AsIzQqKDApCisJbGRyCXIxNCxbc3AsIzQqKDMyKzApXQlAIGxvYWQgb3V0CisKKy5Mb29wX3RhaWw6CisJbGRyYglyMTAsW3I5XSwjMQlAIHJlYWQgYnVmZmVyIG9uIHN0YWNrCisJbGRyYglyMTEsW3IxMl0sIzEJCUAgcmVhZCBpbnB1dAorCXN1YnMJcjgscjgsIzEKKwllb3IJcjExLHIxMSxyMTAKKwlzdHJiCXIxMSxbcjE0XSwjMQkJQCBzdG9yZSBvdXRwdXQKKwlibmUJLkxvb3BfdGFpbAorCisuTGRvbmU6CisJYWRkCXNwLHNwLCM0KigzMiszKQorLkxub19kYXRhOgorCWxkbWlhCXNwISx7cjQscjUscjYscjcscjgscjkscjEwLHIxMSxwY30KKy5zaXplCUNoYUNoYTIwX2N0cjMyLC4tQ2hhQ2hhMjBfY3RyMzIKKyNpZiBfX0FSTV9NQVhfQVJDSF9fPj03CisuYXJjaAlhcm12Ny1hCisuZnB1CW5lb24KKworLnR5cGUJQ2hhQ2hhMjBfbmVvbiwlZnVuY3Rpb24KKy5hbGlnbgk1CitDaGFDaGEyMF9uZW9uOgorCWxkcglyMTIsW3NwLCMwXQkJQCBwdWxsIHBvaW50ZXIgdG8gY291bnRlciBhbmQgbm9uY2UKKwlzdG1kYglzcCEse3IwLHIxLHIyLHI0LXIxMSxscn0KKy5MQ2hhQ2hhMjBfbmVvbjoKKwlhZHIJcjE0LC5Mc2lnbWEKKwl2c3RtZGIJc3AhLHtkOCxkOSxkMTAsZDExLGQxMixkMTMsZDE0LGQxNX0JCUAgQUJJIHNwZWMgc2F5cyBzbworCXN0bWRiCXNwISx7cjAscjEscjIscjN9CisKKwl2bGQxLjMyCXtxMSxxMn0sW3IzXQkJQCBsb2FkIGtleQorCWxkbWlhCXIzLHtyNCxyNSxyNixyNyxyOCxyOSxyMTAscjExfQkJQCBsb2FkIGtleQorCisJc3ViCXNwLHNwLCM0KigxNisxNikKKwl2bGQxLjMyCXtxM30sW3IxMl0JCUAgbG9hZCBjb3VudGVyIGFuZCBub25jZQorCWFkZAlyMTIsc3AsIzQqOAorCWxkbWlhCXIxNCx7cjAscjEscjIscjN9CQlAIGxvYWQgc2lnbWEKKwl2bGQxLjMyCXtxMH0sW3IxNF0hCQlAIGxvYWQgc2lnbWEKKwl2bGQxLjMyCXtxMTJ9LFtyMTRdCQlAIG9uZQorCXZzdDEuMzIJe3EyLHEzfSxbcjEyXQkJQCBjb3B5IDEvMmtleXxjb3VudGVyfG5vbmNlCisJdnN0MS4zMgl7cTAscTF9LFtzcF0JCUAgY29weSBzaWdtYXwxLzJrZXkKKworCXN0cglyMTAsW3NwLCM0KigxNisxMCldCUAgb2ZmLWxvYWQgInJ4IgorCXN0cglyMTEsW3NwLCM0KigxNisxMSldCUAgb2ZmLWxvYWQgInJ4IgorCXZzaGwuaTMyCWQyNixkMjQsIzEJQCB0d28KKwl2c3RyCWQyNCxbc3AsIzQqKDE2KzApXQorCXZzaGwuaTMyCWQyOCxkMjQsIzIJQCBmb3VyCisJdnN0cglkMjYsW3NwLCM0KigxNisyKV0KKwl2bW92CXE0LHEwCisJdnN0cglkMjgsW3NwLCM0KigxNis0KV0KKwl2bW92CXE4LHEwCisJdm1vdglxNSxxMQorCXZtb3YJcTkscTEKKwliCS5Mb29wX25lb25fZW50ZXIKKworLmFsaWduCTQKKy5Mb29wX25lb25fb3V0ZXI6CisJbGRtaWEJc3Ase3IwLHIxLHIyLHIzLHI0LHI1LHI2LHI3LHI4LHI5fQkJQCBsb2FkIGtleSBtYXRlcmlhbAorCWNtcAlyMTEsIzY0KjIJCUAgaWYgbGVuPD02NCoyCisJYmxzCS5MYnJlYWtfbmVvbgkJQCBzd2l0Y2ggdG8gaW50ZWdlci1vbmx5CisJdm1vdglxNCxxMAorCXN0cglyMTEsW3NwLCM0KigzMisyKV0JQCBzYXZlIGxlbgorCXZtb3YJcTgscTAKKwlzdHIJcjEyLCAgW3NwLCM0KigzMisxKV0JQCBzYXZlIGlucAorCXZtb3YJcTUscTEKKwlzdHIJcjE0LCAgW3NwLCM0KigzMiswKV0JQCBzYXZlIG91dAorCXZtb3YJcTkscTEKKy5Mb29wX25lb25fZW50ZXI6CisJbGRyCXIxMSwgW3NwLCM0KigxNSldCisJdmFkZC5pMzIJcTcscTMscTEyCQlAIGNvdW50ZXIrMQorCWxkcglyMTIsW3NwLCM0KigxMildCUAgbW9kdWxvLXNjaGVkdWxlZCBsb2FkCisJdm1vdglxNixxMgorCWxkcglyMTAsIFtzcCwjNCooMTMpXQorCXZtb3YJcTEwLHEyCisJbGRyCXIxNCxbc3AsIzQqKDE0KV0KKwl2YWRkLmkzMglxMTEscTcscTEyCQlAIGNvdW50ZXIrMgorCXN0cglyMTEsIFtzcCwjNCooMTYrMTUpXQorCW1vdglyMTEsIzEwCisJYWRkCXIxMixyMTIsIzMJQCBjb3VudGVyKzMKKwliCS5Mb29wX25lb24KKworLmFsaWduCTQKKy5Mb29wX25lb246CisJc3VicwlyMTEscjExLCMxCisJdmFkZC5pMzIJcTAscTAscTEKKwlhZGQJcjAscjAscjQKKwl2YWRkLmkzMglxNCxxNCxxNQorCW1vdglyMTIscjEyLHJvciMxNgorCXZhZGQuaTMyCXE4LHE4LHE5CisJYWRkCXIxLHIxLHI1CisJdmVvcglxMyxxMyxxMAorCW1vdglyMTAscjEwLHJvciMxNgorCXZlb3IJcTcscTcscTQKKwllb3IJcjEyLHIxMixyMCxyb3IjMTYKKwl2ZW9yCXExMSxxMTEscTgKKwllb3IJcjEwLHIxMCxyMSxyb3IjMTYKKwl2cmV2MzIuMTYJcTMscTMKKwlhZGQJcjgscjgscjEyCisJdnJldjMyLjE2CXE3LHE3CisJbW92CXI0LHI0LHJvciMyMAorCXZyZXYzMi4xNglxMTEscTExCisJYWRkCXI5LHI5LHIxMAorCXZhZGQuaTMyCXEyLHEyLHEzCisJbW92CXI1LHI1LHJvciMyMAorCXZhZGQuaTMyCXE2LHE2LHE3CisJZW9yCXI0LHI0LHI4LHJvciMyMAorCXZhZGQuaTMyCXExMCxxMTAscTExCisJZW9yCXI1LHI1LHI5LHJvciMyMAorCXZlb3IJcTEyLHExLHEyCisJYWRkCXIwLHIwLHI0CisJdmVvcglxMTMscTUscTYKKwltb3YJcjEyLHIxMixyb3IjMjQKKwl2ZW9yCXExNCxxOSxxMTAKKwlhZGQJcjEscjEscjUKKwl2c2hyLnUzMglxMSxxMTIsIzIwCisJbW92CXIxMCxyMTAscm9yIzI0CisJdnNoci51MzIJcTUscTEzLCMyMAorCWVvcglyMTIscjEyLHIwLHJvciMyNAorCXZzaHIudTMyCXE5LHExNCwjMjAKKwllb3IJcjEwLHIxMCxyMSxyb3IjMjQKKwl2c2xpLjMyCXExLHExMiwjMTIKKwlhZGQJcjgscjgscjEyCisJdnNsaS4zMglxNSxxMTMsIzEyCisJbW92CXI0LHI0LHJvciMyNQorCXZzbGkuMzIJcTkscTE0LCMxMgorCWFkZAlyOSxyOSxyMTAKKwl2YWRkLmkzMglxMCxxMCxxMQorCW1vdglyNSxyNSxyb3IjMjUKKwl2YWRkLmkzMglxNCxxNCxxNQorCXN0cglyMTAsW3NwLCM0KigxNisxMyldCisJdmFkZC5pMzIJcTgscTgscTkKKwlsZHIJcjEwLFtzcCwjNCooMTYrMTUpXQorCXZlb3IJcTEyLHEzLHEwCisJZW9yCXI0LHI0LHI4LHJvciMyNQorCXZlb3IJcTEzLHE3LHE0CisJZW9yCXI1LHI1LHI5LHJvciMyNQorCXZlb3IJcTE0LHExMSxxOAorCXN0cglyOCxbc3AsIzQqKDE2KzgpXQorCXZzaHIudTMyCXEzLHExMiwjMjQKKwlsZHIJcjgsW3NwLCM0KigxNisxMCldCisJdnNoci51MzIJcTcscTEzLCMyNAorCWFkZAlyMixyMixyNgorCXZzaHIudTMyCXExMSxxMTQsIzI0CisJbW92CXIxNCxyMTQscm9yIzE2CisJdnNsaS4zMglxMyxxMTIsIzgKKwlzdHIJcjksW3NwLCM0KigxNis5KV0KKwl2c2xpLjMyCXE3LHExMywjOAorCWxkcglyOSxbc3AsIzQqKDE2KzExKV0KKwl2c2xpLjMyCXExMSxxMTQsIzgKKwlhZGQJcjMscjMscjcKKwl2YWRkLmkzMglxMixxMixxMworCW1vdglyMTAscjEwLHJvciMxNgorCXZhZGQuaTMyCXE2LHE2LHE3CisJZW9yCXIxNCxyMTQscjIscm9yIzE2CisJdmFkZC5pMzIJcTEwLHExMCxxMTEKKwllb3IJcjEwLHIxMCxyMyxyb3IjMTYKKwl2ZW9yCXExMixxMSxxMgorCWFkZAlyOCxyOCxyMTQKKwl2ZW9yCXExMyxxNSxxNgorCW1vdglyNixyNixyb3IjMjAKKwl2ZW9yCXExNCxxOSxxMTAKKwlhZGQJcjkscjkscjEwCisJdnNoci51MzIJcTEscTEyLCMyNQorCW1vdglyNyxyNyxyb3IjMjAKKwl2c2hyLnUzMglxNSxxMTMsIzI1CisJZW9yCXI2LHI2LHI4LHJvciMyMAorCXZzaHIudTMyCXE5LHExNCwjMjUKKwllb3IJcjcscjcscjkscm9yIzIwCisJdnNsaS4zMglxMSxxMTIsIzcKKwlhZGQJcjIscjIscjYKKwl2c2xpLjMyCXE1LHExMywjNworCW1vdglyMTQscjE0LHJvciMyNAorCXZzbGkuMzIJcTkscTE0LCM3CisJYWRkCXIzLHIzLHI3CisJdmV4dC44CXEyLHEyLHEyLCM4CisJbW92CXIxMCxyMTAscm9yIzI0CisJdmV4dC44CXE2LHE2LHE2LCM4CisJZW9yCXIxNCxyMTQscjIscm9yIzI0CisJdmV4dC44CXExMCxxMTAscTEwLCM4CisJZW9yCXIxMCxyMTAscjMscm9yIzI0CisJdmV4dC44CXExLHExLHExLCM0CisJYWRkCXI4LHI4LHIxNAorCXZleHQuOAlxNSxxNSxxNSwjNAorCW1vdglyNixyNixyb3IjMjUKKwl2ZXh0LjgJcTkscTkscTksIzQKKwlhZGQJcjkscjkscjEwCisJdmV4dC44CXEzLHEzLHEzLCMxMgorCW1vdglyNyxyNyxyb3IjMjUKKwl2ZXh0LjgJcTcscTcscTcsIzEyCisJZW9yCXI2LHI2LHI4LHJvciMyNQorCXZleHQuOAlxMTEscTExLHExMSwjMTIKKwllb3IJcjcscjcscjkscm9yIzI1CisJdmFkZC5pMzIJcTAscTAscTEKKwlhZGQJcjAscjAscjUKKwl2YWRkLmkzMglxNCxxNCxxNQorCW1vdglyMTAscjEwLHJvciMxNgorCXZhZGQuaTMyCXE4LHE4LHE5CisJYWRkCXIxLHIxLHI2CisJdmVvcglxMyxxMyxxMAorCW1vdglyMTIscjEyLHJvciMxNgorCXZlb3IJcTcscTcscTQKKwllb3IJcjEwLHIxMCxyMCxyb3IjMTYKKwl2ZW9yCXExMSxxMTEscTgKKwllb3IJcjEyLHIxMixyMSxyb3IjMTYKKwl2cmV2MzIuMTYJcTMscTMKKwlhZGQJcjgscjgscjEwCisJdnJldjMyLjE2CXE3LHE3CisJbW92CXI1LHI1LHJvciMyMAorCXZyZXYzMi4xNglxMTEscTExCisJYWRkCXI5LHI5LHIxMgorCXZhZGQuaTMyCXEyLHEyLHEzCisJbW92CXI2LHI2LHJvciMyMAorCXZhZGQuaTMyCXE2LHE2LHE3CisJZW9yCXI1LHI1LHI4LHJvciMyMAorCXZhZGQuaTMyCXExMCxxMTAscTExCisJZW9yCXI2LHI2LHI5LHJvciMyMAorCXZlb3IJcTEyLHExLHEyCisJYWRkCXIwLHIwLHI1CisJdmVvcglxMTMscTUscTYKKwltb3YJcjEwLHIxMCxyb3IjMjQKKwl2ZW9yCXExNCxxOSxxMTAKKwlhZGQJcjEscjEscjYKKwl2c2hyLnUzMglxMSxxMTIsIzIwCisJbW92CXIxMixyMTIscm9yIzI0CisJdnNoci51MzIJcTUscTEzLCMyMAorCWVvcglyMTAscjEwLHIwLHJvciMyNAorCXZzaHIudTMyCXE5LHExNCwjMjAKKwllb3IJcjEyLHIxMixyMSxyb3IjMjQKKwl2c2xpLjMyCXExLHExMiwjMTIKKwlhZGQJcjgscjgscjEwCisJdnNsaS4zMglxNSxxMTMsIzEyCisJbW92CXI1LHI1LHJvciMyNQorCXZzbGkuMzIJcTkscTE0LCMxMgorCXN0cglyMTAsW3NwLCM0KigxNisxNSldCisJdmFkZC5pMzIJcTAscTAscTEKKwlsZHIJcjEwLFtzcCwjNCooMTYrMTMpXQorCXZhZGQuaTMyCXE0LHE0LHE1CisJYWRkCXI5LHI5LHIxMgorCXZhZGQuaTMyCXE4LHE4LHE5CisJbW92CXI2LHI2LHJvciMyNQorCXZlb3IJcTEyLHEzLHEwCisJZW9yCXI1LHI1LHI4LHJvciMyNQorCXZlb3IJcTEzLHE3LHE0CisJZW9yCXI2LHI2LHI5LHJvciMyNQorCXZlb3IJcTE0LHExMSxxOAorCXN0cglyOCxbc3AsIzQqKDE2KzEwKV0KKwl2c2hyLnUzMglxMyxxMTIsIzI0CisJbGRyCXI4LFtzcCwjNCooMTYrOCldCisJdnNoci51MzIJcTcscTEzLCMyNAorCWFkZAlyMixyMixyNworCXZzaHIudTMyCXExMSxxMTQsIzI0CisJbW92CXIxMCxyMTAscm9yIzE2CisJdnNsaS4zMglxMyxxMTIsIzgKKwlzdHIJcjksW3NwLCM0KigxNisxMSldCisJdnNsaS4zMglxNyxxMTMsIzgKKwlsZHIJcjksW3NwLCM0KigxNis5KV0KKwl2c2xpLjMyCXExMSxxMTQsIzgKKwlhZGQJcjMscjMscjQKKwl2YWRkLmkzMglxMixxMixxMworCW1vdglyMTQscjE0LHJvciMxNgorCXZhZGQuaTMyCXE2LHE2LHE3CisJZW9yCXIxMCxyMTAscjIscm9yIzE2CisJdmFkZC5pMzIJcTEwLHExMCxxMTEKKwllb3IJcjE0LHIxNCxyMyxyb3IjMTYKKwl2ZW9yCXExMixxMSxxMgorCWFkZAlyOCxyOCxyMTAKKwl2ZW9yCXExMyxxNSxxNgorCW1vdglyNyxyNyxyb3IjMjAKKwl2ZW9yCXExNCxxOSxxMTAKKwlhZGQJcjkscjkscjE0CisJdnNoci51MzIJcTEscTEyLCMyNQorCW1vdglyNCxyNCxyb3IjMjAKKwl2c2hyLnUzMglxNSxxMTMsIzI1CisJZW9yCXI3LHI3LHI4LHJvciMyMAorCXZzaHIudTMyCXE5LHExNCwjMjUKKwllb3IJcjQscjQscjkscm9yIzIwCisJdnNsaS4zMglxMSxxMTIsIzcKKwlhZGQJcjIscjIscjcKKwl2c2xpLjMyCXE1LHExMywjNworCW1vdglyMTAscjEwLHJvciMyNAorCXZzbGkuMzIJcTkscTE0LCM3CisJYWRkCXIzLHIzLHI0CisJdmV4dC44CXEyLHEyLHEyLCM4CisJbW92CXIxNCxyMTQscm9yIzI0CisJdmV4dC44CXE2LHE2LHE2LCM4CisJZW9yCXIxMCxyMTAscjIscm9yIzI0CisJdmV4dC44CXExMCxxMTAscTEwLCM4CisJZW9yCXIxNCxyMTQscjMscm9yIzI0CisJdmV4dC44CXExLHExLHExLCMxMgorCWFkZAlyOCxyOCxyMTAKKwl2ZXh0LjgJcTUscTUscTUsIzEyCisJbW92CXI3LHI3LHJvciMyNQorCXZleHQuOAlxOSxxOSxxOSwjMTIKKwlhZGQJcjkscjkscjE0CisJdmV4dC44CXEzLHEzLHEzLCM0CisJbW92CXI0LHI0LHJvciMyNQorCXZleHQuOAlxNyxxNyxxNywjNAorCWVvcglyNyxyNyxyOCxyb3IjMjUKKwl2ZXh0LjgJcTExLHExMSxxMTEsIzQKKwllb3IJcjQscjQscjkscm9yIzI1CisJYm5lCS5Mb29wX25lb24KKworCWFkZAlyMTEsc3AsIzMyCisJdmxkMS4zMgl7cTEyLHExM30sW3NwXQkJQCBsb2FkIGtleSBtYXRlcmlhbAorCXZsZDEuMzIJe3ExNCxxMTV9LFtyMTFdCisKKwlsZHIJcjExLFtzcCwjNCooMzIrMildCUAgbG9hZCBsZW4KKworCXN0cglyOCwgW3NwLCM0KigxNis4KV0JQCBtb2R1bG8tc2NoZWR1bGVkIHN0b3JlCisJc3RyCXI5LCBbc3AsIzQqKDE2KzkpXQorCXN0cglyMTIsW3NwLCM0KigxNisxMildCisJc3RyCXIxMCwgW3NwLCM0KigxNisxMyldCisJc3RyCXIxNCxbc3AsIzQqKDE2KzE0KV0KKworCUAgYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGZpcnN0IGhhbGYgb2YgNTEyLWJpdCByZXN1bHQgaW4KKwlAIHJ4IGFuZCBzZWNvbmQgaGFsZiBhdCBzcCs0KigxNis4KQorCisJbGRyCXIxMixbc3AsIzQqKDMyKzEpXQlAIGxvYWQgaW5wCisJbGRyCXIxNCxbc3AsIzQqKDMyKzApXQlAIGxvYWQgb3V0CisKKwl2YWRkLmkzMglxMCxxMCxxMTIJCUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwl2YWRkLmkzMglxNCxxNCxxMTIKKwl2YWRkLmkzMglxOCxxOCxxMTIKKwl2bGRyCWQyNCxbc3AsIzQqKDE2KzApXQlAIG9uZQorCisJdmFkZC5pMzIJcTEscTEscTEzCisJdmFkZC5pMzIJcTUscTUscTEzCisJdmFkZC5pMzIJcTkscTkscTEzCisJdmxkcglkMjYsW3NwLCM0KigxNisyKV0JQCB0d28KKworCXZhZGQuaTMyCXEyLHEyLHExNAorCXZhZGQuaTMyCXE2LHE2LHExNAorCXZhZGQuaTMyCXExMCxxMTAscTE0CisJdmFkZC5pMzIJZDE0LGQxNCxkMjQJQCBjb3VudGVyKzEKKwl2YWRkLmkzMglkMjIsZDIyLGQyNglAIGNvdW50ZXIrMgorCisJdmFkZC5pMzIJcTMscTMscTE1CisJdmFkZC5pMzIJcTcscTcscTE1CisJdmFkZC5pMzIJcTExLHExMSxxMTUKKworCWNtcAlyMTEsIzY0KjQKKwlibG8JLkx0YWlsX25lb24KKworCXZsZDEuOAl7cTEyLHExM30sW3IxMl0hCUAgbG9hZCBpbnB1dAorCW1vdglyMTEsc3AKKwl2bGQxLjgJe3ExNCxxMTV9LFtyMTJdIQorCXZlb3IJcTAscTAscTEyCQlAIHhvciB3aXRoIGlucHV0CisJdmVvcglxMSxxMSxxMTMKKwl2bGQxLjgJe3ExMixxMTN9LFtyMTJdIQorCXZlb3IJcTIscTIscTE0CisJdmVvcglxMyxxMyxxMTUKKwl2bGQxLjgJe3ExNCxxMTV9LFtyMTJdIQorCisJdmVvcglxNCxxNCxxMTIKKwl2c3QxLjgJe3EwLHExfSxbcjE0XSEJQCBzdG9yZSBvdXRwdXQKKwl2ZW9yCXE1LHE1LHExMworCXZsZDEuOAl7cTEyLHExM30sW3IxMl0hCisJdmVvcglxNixxNixxMTQKKwl2c3QxLjgJe3EyLHEzfSxbcjE0XSEKKwl2ZW9yCXE3LHE3LHExNQorCXZsZDEuOAl7cTE0LHExNX0sW3IxMl0hCisKKwl2ZW9yCXE4LHE4LHExMgorCXZsZDEuMzIJe3EwLHExfSxbcjExXSEJQCBsb2FkIGZvciBuZXh0IGl0ZXJhdGlvbgorCXZlb3IJZDI1LGQyNSxkMjUKKwl2bGRyCWQyNCxbc3AsIzQqKDE2KzQpXQlAIGZvdXIKKwl2ZW9yCXE5LHE5LHExMworCXZsZDEuMzIJe3EyLHEzfSxbcjExXQorCXZlb3IJcTEwLHExMCxxMTQKKwl2c3QxLjgJe3E0LHE1fSxbcjE0XSEKKwl2ZW9yCXExMSxxMTEscTE1CisJdnN0MS44CXtxNixxN30sW3IxNF0hCisKKwl2YWRkLmkzMglkNixkNixkMjQJQCBuZXh0IGNvdW50ZXIgdmFsdWUKKwl2bGRyCWQyNCxbc3AsIzQqKDE2KzApXQlAIG9uZQorCisJbGRtaWEJc3Ase3I4LHI5LHIxMCxyMTF9CUAgbG9hZCBrZXkgbWF0ZXJpYWwKKwlhZGQJcjAscjAscjgJQCBhY2N1bXVsYXRlIGtleSBtYXRlcmlhbAorCWxkcglyOCxbcjEyXSwjMTYJCUAgbG9hZCBpbnB1dAorCXZzdDEuOAl7cTgscTl9LFtyMTRdIQorCWFkZAlyMSxyMSxyOQorCWxkcglyOSxbcjEyLCMtMTJdCisJdnN0MS44CXtxMTAscTExfSxbcjE0XSEKKwlhZGQJcjIscjIscjEwCisJbGRyCXIxMCxbcjEyLCMtOF0KKwlhZGQJcjMscjMscjExCisJbGRyCXIxMSxbcjEyLCMtNF0KKyMgaWZkZWYJX19BUk1FQl9fCisJcmV2CXIwLHIwCisJcmV2CXIxLHIxCisJcmV2CXIyLHIyCisJcmV2CXIzLHIzCisjIGVuZGlmCisJZW9yCXIwLHIwLHI4CUAgeG9yIHdpdGggaW5wdXQKKwlhZGQJcjgsc3AsIzQqKDQpCisJZW9yCXIxLHIxLHI5CisJc3RyCXIwLFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKwllb3IJcjIscjIscjEwCisJc3RyCXIxLFtyMTQsIy0xMl0KKwllb3IJcjMscjMscjExCisJbGRtaWEJcjgse3I4LHI5LHIxMCxyMTF9CUAgbG9hZCBrZXkgbWF0ZXJpYWwKKwlzdHIJcjIsW3IxNCwjLThdCisJc3RyCXIzLFtyMTQsIy00XQorCisJYWRkCXI0LHI0LHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlsZHIJcjgsW3IxMl0sIzE2CQlAIGxvYWQgaW5wdXQKKwlhZGQJcjUscjUscjkKKwlsZHIJcjksW3IxMiwjLTEyXQorCWFkZAlyNixyNixyMTAKKwlsZHIJcjEwLFtyMTIsIy04XQorCWFkZAlyNyxyNyxyMTEKKwlsZHIJcjExLFtyMTIsIy00XQorIyBpZmRlZglfX0FSTUVCX18KKwlyZXYJcjQscjQKKwlyZXYJcjUscjUKKwlyZXYJcjYscjYKKwlyZXYJcjcscjcKKyMgZW5kaWYKKwllb3IJcjQscjQscjgKKwlhZGQJcjgsc3AsIzQqKDgpCisJZW9yCXI1LHI1LHI5CisJc3RyCXI0LFtyMTRdLCMxNgkJQCBzdG9yZSBvdXRwdXQKKwllb3IJcjYscjYscjEwCisJc3RyCXI1LFtyMTQsIy0xMl0KKwllb3IJcjcscjcscjExCisJbGRtaWEJcjgse3I4LHI5LHIxMCxyMTF9CUAgbG9hZCBrZXkgbWF0ZXJpYWwKKwlzdHIJcjYsW3IxNCwjLThdCisJYWRkCXIwLHNwLCM0KigxNis4KQorCXN0cglyNyxbcjE0LCMtNF0KKworCWxkbWlhCXIwLHtyMCxyMSxyMixyMyxyNCxyNSxyNixyN30JQCBsb2FkIHNlY29uZCBoYWxmCisKKwlhZGQJcjAscjAscjgJQCBhY2N1bXVsYXRlIGtleSBtYXRlcmlhbAorCWxkcglyOCxbcjEyXSwjMTYJCUAgbG9hZCBpbnB1dAorCWFkZAlyMSxyMSxyOQorCWxkcglyOSxbcjEyLCMtMTJdCisjIGlmZGVmCV9fdGh1bWIyX18KKwlpdAloaQorIyBlbmRpZgorCXN0cmhpCXIxMCxbc3AsIzQqKDE2KzEwKV0JQCBjb3B5ICJyeCIgd2hpbGUgYXQgaXQKKwlhZGQJcjIscjIscjEwCisJbGRyCXIxMCxbcjEyLCMtOF0KKyMgaWZkZWYJX190aHVtYjJfXworCWl0CWhpCisjIGVuZGlmCisJc3RyaGkJcjExLFtzcCwjNCooMTYrMTEpXQlAIGNvcHkgInJ4IiB3aGlsZSBhdCBpdAorCWFkZAlyMyxyMyxyMTEKKwlsZHIJcjExLFtyMTIsIy00XQorIyBpZmRlZglfX0FSTUVCX18KKwlyZXYJcjAscjAKKwlyZXYJcjEscjEKKwlyZXYJcjIscjIKKwlyZXYJcjMscjMKKyMgZW5kaWYKKwllb3IJcjAscjAscjgKKwlhZGQJcjgsc3AsIzQqKDEyKQorCWVvcglyMSxyMSxyOQorCXN0cglyMCxbcjE0XSwjMTYJCUAgc3RvcmUgb3V0cHV0CisJZW9yCXIyLHIyLHIxMAorCXN0cglyMSxbcjE0LCMtMTJdCisJZW9yCXIzLHIzLHIxMQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQlAIGxvYWQga2V5IG1hdGVyaWFsCisJc3RyCXIyLFtyMTQsIy04XQorCXN0cglyMyxbcjE0LCMtNF0KKworCWFkZAlyNCxyNCxyOAlAIGFjY3VtdWxhdGUga2V5IG1hdGVyaWFsCisJYWRkCXI4LHI4LCM0CQlAIG5leHQgY291bnRlciB2YWx1ZQorCWFkZAlyNSxyNSxyOQorCXN0cglyOCxbc3AsIzQqKDEyKV0JQCBzYXZlIG5leHQgY291bnRlciB2YWx1ZQorCWxkcglyOCxbcjEyXSwjMTYJCUAgbG9hZCBpbnB1dAorCWFkZAlyNixyNixyMTAKKwlhZGQJcjQscjQsIzMJCUAgY291bnRlciszCisJbGRyCXI5LFtyMTIsIy0xMl0KKwlhZGQJcjcscjcscjExCisJbGRyCXIxMCxbcjEyLCMtOF0KKwlsZHIJcjExLFtyMTIsIy00XQorIyBpZmRlZglfX0FSTUVCX18KKwlyZXYJcjQscjQKKwlyZXYJcjUscjUKKwlyZXYJcjYscjYKKwlyZXYJcjcscjcKKyMgZW5kaWYKKwllb3IJcjQscjQscjgKKyMgaWZkZWYJX190aHVtYjJfXworCWl0CWhpCisjIGVuZGlmCisJbGRyaGkJcjgsW3NwLCM0KigzMisyKV0JQCByZS1sb2FkIGxlbgorCWVvcglyNSxyNSxyOQorCWVvcglyNixyNixyMTAKKwlzdHIJcjQsW3IxNF0sIzE2CQlAIHN0b3JlIG91dHB1dAorCWVvcglyNyxyNyxyMTEKKwlzdHIJcjUsW3IxNCwjLTEyXQorCXN1YglyMTEscjgsIzY0KjQJQCBsZW4tPTY0KjQKKwlzdHIJcjYsW3IxNCwjLThdCisJc3RyCXI3LFtyMTQsIy00XQorCWJoaQkuTG9vcF9uZW9uX291dGVyCisKKwliCS5MZG9uZV9uZW9uCisKKy5hbGlnbgk0CisuTGJyZWFrX25lb246CisJQCBoYXJtb25pemUgTkVPTiBhbmQgaW50ZWdlci1vbmx5IHN0YWNrIGZyYW1lczogbG9hZCBkYXRhCisJQCBmcm9tIE5FT04gZnJhbWUsIGJ1dCBzYXZlIHRvIGludGVnZXItb25seSBvbmU7IGRpc3RhbmNlCisJQCBiZXR3ZWVuIHRoZSB0d28gaXMgNCooMzIrNCsxNi0zMik9NCooMjApLgorCisJc3RyCXIxMSwgW3NwLCM0KigyMCszMisyKV0JQCBzYXZlIGxlbgorCWFkZAlyMTEsc3AsIzQqKDMyKzQpCisJc3RyCXIxMiwgICBbc3AsIzQqKDIwKzMyKzEpXQlAIHNhdmUgaW5wCisJc3RyCXIxNCwgICBbc3AsIzQqKDIwKzMyKzApXQlAIHNhdmUgb3V0CisKKwlsZHIJcjEyLFtzcCwjNCooMTYrMTApXQorCWxkcglyMTQsW3NwLCM0KigxNisxMSldCisJdmxkbWlhCXIxMSx7ZDgsZDksZDEwLGQxMSxkMTIsZDEzLGQxNCxkMTV9CQkJQCBmdWxmaWxsIEFCSSByZXF1aXJlbWVudAorCXN0cglyMTIsW3NwLCM0KigyMCsxNisxMCldCUAgY29weSAicngiCisJc3RyCXIxNCxbc3AsIzQqKDIwKzE2KzExKV0JQCBjb3B5ICJyeCIKKworCWxkcglyMTEsIFtzcCwjNCooMTUpXQorCWxkcglyMTIsW3NwLCM0KigxMildCQlAIG1vZHVsby1zY2hlZHVsZWQgbG9hZAorCWxkcglyMTAsIFtzcCwjNCooMTMpXQorCWxkcglyMTQsW3NwLCM0KigxNCldCisJc3RyCXIxMSwgW3NwLCM0KigyMCsxNisxNSldCisJYWRkCXIxMSxzcCwjNCooMjApCisJdnN0MS4zMgl7cTAscTF9LFtyMTFdIQkJQCBjb3B5IGtleQorCWFkZAlzcCxzcCwjNCooMjApCQkJQCBzd2l0Y2ggZnJhbWUKKwl2c3QxLjMyCXtxMixxM30sW3IxMV0KKwltb3YJcjExLCMxMAorCWIJLkxvb3AJCQkJQCBnbyBpbnRlZ2VyLW9ubHkKKworLmFsaWduCTQKKy5MdGFpbF9uZW9uOgorCWNtcAlyMTEsIzY0KjMKKwliaHMJLkwxOTJfb3JfbW9yZV9uZW9uCisJY21wCXIxMSwjNjQqMgorCWJocwkuTDEyOF9vcl9tb3JlX25lb24KKwljbXAJcjExLCM2NCoxCisJYmhzCS5MNjRfb3JfbW9yZV9uZW9uCisKKwlhZGQJcjgsc3AsIzQqKDgpCisJdnN0MS44CXtxMCxxMX0sW3NwXQorCWFkZAlyMTAsc3AsIzQqKDApCisJdnN0MS44CXtxMixxM30sW3I4XQorCWIJLkxvb3BfdGFpbF9uZW9uCisKKy5hbGlnbgk0CisuTDY0X29yX21vcmVfbmVvbjoKKwl2bGQxLjgJe3ExMixxMTN9LFtyMTJdIQorCXZsZDEuOAl7cTE0LHExNX0sW3IxMl0hCisJdmVvcglxMCxxMCxxMTIKKwl2ZW9yCXExLHExLHExMworCXZlb3IJcTIscTIscTE0CisJdmVvcglxMyxxMyxxMTUKKwl2c3QxLjgJe3EwLHExfSxbcjE0XSEKKwl2c3QxLjgJe3EyLHEzfSxbcjE0XSEKKworCWJlcQkuTGRvbmVfbmVvbgorCisJYWRkCXI4LHNwLCM0Kig4KQorCXZzdDEuOAl7cTQscTV9LFtzcF0KKwlhZGQJcjEwLHNwLCM0KigwKQorCXZzdDEuOAl7cTYscTd9LFtyOF0KKwlzdWIJcjExLHIxMSwjNjQqMQlAIGxlbi09NjQqMQorCWIJLkxvb3BfdGFpbF9uZW9uCisKKy5hbGlnbgk0CisuTDEyOF9vcl9tb3JlX25lb246CisJdmxkMS44CXtxMTIscTEzfSxbcjEyXSEKKwl2bGQxLjgJe3ExNCxxMTV9LFtyMTJdIQorCXZlb3IJcTAscTAscTEyCisJdmVvcglxMSxxMSxxMTMKKwl2bGQxLjgJe3ExMixxMTN9LFtyMTJdIQorCXZlb3IJcTIscTIscTE0CisJdmVvcglxMyxxMyxxMTUKKwl2bGQxLjgJe3ExNCxxMTV9LFtyMTJdIQorCisJdmVvcglxNCxxNCxxMTIKKwl2ZW9yCXE1LHE1LHExMworCXZzdDEuOAl7cTAscTF9LFtyMTRdIQorCXZlb3IJcTYscTYscTE0CisJdnN0MS44CXtxMixxM30sW3IxNF0hCisJdmVvcglxNyxxNyxxMTUKKwl2c3QxLjgJe3E0LHE1fSxbcjE0XSEKKwl2c3QxLjgJe3E2LHE3fSxbcjE0XSEKKworCWJlcQkuTGRvbmVfbmVvbgorCisJYWRkCXI4LHNwLCM0Kig4KQorCXZzdDEuOAl7cTgscTl9LFtzcF0KKwlhZGQJcjEwLHNwLCM0KigwKQorCXZzdDEuOAl7cTEwLHExMX0sW3I4XQorCXN1YglyMTEscjExLCM2NCoyCUAgbGVuLT02NCoyCisJYgkuTG9vcF90YWlsX25lb24KKworLmFsaWduCTQKKy5MMTkyX29yX21vcmVfbmVvbjoKKwl2bGQxLjgJe3ExMixxMTN9LFtyMTJdIQorCXZsZDEuOAl7cTE0LHExNX0sW3IxMl0hCisJdmVvcglxMCxxMCxxMTIKKwl2ZW9yCXExLHExLHExMworCXZsZDEuOAl7cTEyLHExM30sW3IxMl0hCisJdmVvcglxMixxMixxMTQKKwl2ZW9yCXEzLHEzLHExNQorCXZsZDEuOAl7cTE0LHExNX0sW3IxMl0hCisKKwl2ZW9yCXE0LHE0LHExMgorCXZlb3IJcTUscTUscTEzCisJdmxkMS44CXtxMTIscTEzfSxbcjEyXSEKKwl2ZW9yCXE2LHE2LHExNAorCXZzdDEuOAl7cTAscTF9LFtyMTRdIQorCXZlb3IJcTcscTcscTE1CisJdmxkMS44CXtxMTQscTE1fSxbcjEyXSEKKworCXZlb3IJcTgscTgscTEyCisJdnN0MS44CXtxMixxM30sW3IxNF0hCisJdmVvcglxOSxxOSxxMTMKKwl2c3QxLjgJe3E0LHE1fSxbcjE0XSEKKwl2ZW9yCXExMCxxMTAscTE0CisJdnN0MS44CXtxNixxN30sW3IxNF0hCisJdmVvcglxMTEscTExLHExNQorCXZzdDEuOAl7cTgscTl9LFtyMTRdIQorCXZzdDEuOAl7cTEwLHExMX0sW3IxNF0hCisKKwliZXEJLkxkb25lX25lb24KKworCWxkbWlhCXNwLHtyOCxyOSxyMTAscjExfQlAIGxvYWQga2V5IG1hdGVyaWFsCisJYWRkCXIwLHIwLHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjgsc3AsIzQqKDQpCisJYWRkCXIxLHIxLHI5CisJYWRkCXIyLHIyLHIxMAorCWFkZAlyMyxyMyxyMTEKKwlsZG1pYQlyOCx7cjgscjkscjEwLHIxMX0JQCBsb2FkIGtleSBtYXRlcmlhbAorCisJYWRkCXI0LHI0LHI4CUAgYWNjdW11bGF0ZSBrZXkgbWF0ZXJpYWwKKwlhZGQJcjgsc3AsIzQqKDgpCisJYWRkCXI1LHI1LHI5CisJYWRkCXI2LHI2LHIxMAorCWFkZAlyNyxyNyxyMTEKKwlsZG1pYQlyOCx7cjgscjkscjEwLHIxMX0JQCBsb2FkIGtleSBtYXRlcmlhbAorIyBpZmRlZglfX0FSTUVCX18KKwlyZXYJcjAscjAKKwlyZXYJcjEscjEKKwlyZXYJcjIscjIKKwlyZXYJcjMscjMKKwlyZXYJcjQscjQKKwlyZXYJcjUscjUKKwlyZXYJcjYscjYKKwlyZXYJcjcscjcKKyMgZW5kaWYKKwlzdG1pYQlzcCx7cjAscjEscjIscjMscjQscjUscjYscjd9CisJYWRkCXIwLHNwLCM0KigxNis4KQorCisJbGRtaWEJcjAse3IwLHIxLHIyLHIzLHI0LHI1LHI2LHI3fQlAIGxvYWQgc2Vjb25kIGhhbGYKKworCWFkZAlyMCxyMCxyOAlAIGFjY3VtdWxhdGUga2V5IG1hdGVyaWFsCisJYWRkCXI4LHNwLCM0KigxMikKKwlhZGQJcjEscjEscjkKKwlhZGQJcjIscjIscjEwCisJYWRkCXIzLHIzLHIxMQorCWxkbWlhCXI4LHtyOCxyOSxyMTAscjExfQlAIGxvYWQga2V5IG1hdGVyaWFsCisKKwlhZGQJcjQscjQscjgJQCBhY2N1bXVsYXRlIGtleSBtYXRlcmlhbAorCWFkZAlyOCxzcCwjNCooOCkKKwlhZGQJcjUscjUscjkKKwlhZGQJcjQscjQsIzMJCUAgY291bnRlciszCisJYWRkCXI2LHI2LHIxMAorCWFkZAlyNyxyNyxyMTEKKwlsZHIJcjExLFtzcCwjNCooMzIrMildCUAgcmUtbG9hZCBsZW4KKyMgaWZkZWYJX19BUk1FQl9fCisJcmV2CXIwLHIwCisJcmV2CXIxLHIxCisJcmV2CXIyLHIyCisJcmV2CXIzLHIzCisJcmV2CXI0LHI0CisJcmV2CXI1LHI1CisJcmV2CXI2LHI2CisJcmV2CXI3LHI3CisjIGVuZGlmCisJc3RtaWEJcjgse3IwLHIxLHIyLHIzLHI0LHI1LHI2LHI3fQorCWFkZAlyMTAsc3AsIzQqKDApCisJc3ViCXIxMSxyMTEsIzY0KjMJQCBsZW4tPTY0KjMKKworLkxvb3BfdGFpbF9uZW9uOgorCWxkcmIJcjgsW3IxMF0sIzEJQCByZWFkIGJ1ZmZlciBvbiBzdGFjaworCWxkcmIJcjksW3IxMl0sIzEJCUAgcmVhZCBpbnB1dAorCXN1YnMJcjExLHIxMSwjMQorCWVvcglyOCxyOCxyOQorCXN0cmIJcjgsW3IxNF0sIzEJCUAgc3RvcmUgb3VwdXQKKwlibmUJLkxvb3BfdGFpbF9uZW9uCisKKy5MZG9uZV9uZW9uOgorCWFkZAlzcCxzcCwjNCooMzIrNCkKKwl2bGRtaWEJc3Ase2Q4LGQ5LGQxMCxkMTEsZDEyLGQxMyxkMTQsZDE1fQorCWFkZAlzcCxzcCwjNCooMTYrMykKKwlsZG1pYQlzcCEse3I0LHI1LHI2LHI3LHI4LHI5LHIxMCxyMTEscGN9Cisuc2l6ZQlDaGFDaGEyMF9uZW9uLC4tQ2hhQ2hhMjBfbmVvbgorLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9tb2Rlcy9naGFzaC1hcm12NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vbW9kZXMvZ2hhc2gtYXJtdjQuUwppbmRleCBjNmYwMjVkLi43OTFiMjg5IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9tb2Rlcy9naGFzaC1hcm12NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL21vZGVzL2doYXNoLWFybXY0LlMKQEAgLTEsMTMgKzEsMTIgQEAKICNpZiBkZWZpbmVkKF9fYXJtX18pCi0jaWYgZGVmaW5lZChfX2FybV9fKQotI2luY2x1ZGUgImFybV9hcmNoLmgiCisjaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogCiAuc3ludGF4CXVuaWZpZWQKIAogLnRleHQKIC5jb2RlCTMyCiAKLSNpZmRlZiAgX19BUFBMRV9fCisjaWZkZWYgIF9fY2xhbmdfXwogI2RlZmluZSBsZHJwbGIgIGxkcmJwbAogI2RlZmluZSBsZHJuZWIgIGxkcmJuZQogI2VuZGlmCkBAIC01MzYsNiArNTM1LDQgQEAKIC5ieXRlCTcxLDcyLDY1LDgzLDcyLDMyLDEwMiwxMTEsMTE0LDMyLDY1LDgyLDc3LDExOCw1Miw0Nyw3OCw2OSw3OSw3OCw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCiAuYWxpZ24JMgogLmFsaWduCTIKLQogI2VuZGlmCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9tb2Rlcy9naGFzaHY4LWFybXgzMi5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vbW9kZXMvZ2hhc2h2OC1hcm14MzIuUwppbmRleCBiZGJiYWU5Li4wZTFlNjMxIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9tb2Rlcy9naGFzaHY4LWFybXgzMi5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL21vZGVzL2doYXNodjgtYXJteDMyLlMKQEAgLTEsMTAgKzEsMTEgQEAKICNpZiBkZWZpbmVkKF9fYXJtX18pCi0jaW5jbHVkZSAiYXJtX2FyY2guaCIKKyNpbmNsdWRlIDxvcGVuc3NsL2FybV9hcmNoLmg+CiAKIC50ZXh0CiAuZnB1CW5lb24KIC5jb2RlCTMyCiAuZ2xvYmwJZ2NtX2luaXRfdjgKKy5oaWRkZW4JZ2NtX2luaXRfdjgKIC50eXBlCWdjbV9pbml0X3Y4LCVmdW5jdGlvbgogLmFsaWduCTQKIGdjbV9pbml0X3Y4OgpAQCAtNTUsNiArNTYsNyBAQAogCWJ4CWxyCiAuc2l6ZQlnY21faW5pdF92OCwuLWdjbV9pbml0X3Y4CiAuZ2xvYmwJZ2NtX2dtdWx0X3Y4CisuaGlkZGVuCWdjbV9nbXVsdF92OAogLnR5cGUJZ2NtX2dtdWx0X3Y4LCVmdW5jdGlvbgogLmFsaWduCTQKIGdjbV9nbXVsdF92ODoKQEAgLTY3LDEwICs2OSwxMCBAQAogI2VuZGlmCiAJdmV4dC44CXEzLHE5LHE5LCM4CiAKLS5ieXRlCTB4ODYsMHgwZSwweGE4LDB4ZjIJQCBwbXVsbCBxMCxxMTIscTMJCUAgSC5sb7dYaS5sbworLmJ5dGUJMHg4NiwweDBlLDB4YTgsMHhmMglAIHBtdWxsIHEwLHExMixxMwkJQCBILmxvwrdYaS5sbwogCXZlb3IJcTkscTkscTMJCUAgS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCi0uYnl0ZQkweDg3LDB4NGUsMHhhOSwweGYyCUAgcG11bGwyIHEyLHExMixxMwkJQCBILmhpt1hpLmhpCi0uYnl0ZQkweGEyLDB4MmUsMHhhYSwweGYyCUAgcG11bGwgcTEscTEzLHE5CQlAIChILmxvK0guaGkptyhYaS5sbytYaS5oaSkKKy5ieXRlCTB4ODcsMHg0ZSwweGE5LDB4ZjIJQCBwbXVsbDIgcTIscTEyLHEzCQlAIEguaGnCt1hpLmhpCisuYnl0ZQkweGEyLDB4MmUsMHhhYSwweGYyCUAgcG11bGwgcTEscTEzLHE5CQlAIChILmxvK0guaGkpwrcoWGkubG8rWGkuaGkpCiAKIAl2ZXh0LjgJcTkscTAscTIsIzgJCUAgS2FyYXRzdWJhIHBvc3QtcHJvY2Vzc2luZwogCXZlb3IJcTEwLHEwLHEyCkBAIC05Niw2ICs5OCw3IEBACiAJYngJbHIKIC5zaXplCWdjbV9nbXVsdF92OCwuLWdjbV9nbXVsdF92OAogLmdsb2JsCWdjbV9naGFzaF92OAorLmhpZGRlbglnY21fZ2hhc2hfdjgKIC50eXBlCWdjbV9naGFzaF92OCwlZnVuY3Rpb24KIC5hbGlnbgk0CiBnY21fZ2hhc2hfdjg6CkBAIC0xMzUsNyArMTM4LDcgQEAKICNlbmRpZgogCXZleHQuOAlxNyxxOSxxOSwjOAogCXZlb3IJcTMscTMscTAJCUAgSVtpXV49WGkKLS5ieXRlCTB4OGUsMHg4ZSwweGE4LDB4ZjIJQCBwbXVsbCBxNCxxMTIscTcJCUAgSLdJaSsxCisuYnl0ZQkweDhlLDB4OGUsMHhhOCwweGYyCUAgcG11bGwgcTQscTEyLHE3CQlAIEjCt0lpKzEKIAl2ZW9yCXE5LHE5LHE3CQlAIEthcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwogLmJ5dGUJMHg4ZiwweGNlLDB4YTksMHhmMglAIHBtdWxsMiBxNixxMTIscTcKIAliCS5Mb29wX21vZDJ4X3Y4CkBAIC0xNDQsMTQgKzE0NywxNCBAQAogLkxvb3BfbW9kMnhfdjg6CiAJdmV4dC44CXExMCxxMyxxMywjOAogCXN1YnMJcjMscjMsIzMyCQlAIGlzIHRoZXJlIG1vcmUgZGF0YT8KLS5ieXRlCTB4ODYsMHgwZSwweGFjLDB4ZjIJQCBwbXVsbCBxMCxxMTQscTMJCUAgSF4yLmxvt1hpLmxvCisuYnl0ZQkweDg2LDB4MGUsMHhhYywweGYyCUAgcG11bGwgcTAscTE0LHEzCQlAIEheMi5sb8K3WGkubG8KIAltb3ZsbwlyMTIsIzAJCQlAIGlzIGl0IHRpbWUgdG8gemVybyByMTI/CiAKIC5ieXRlCTB4YTIsMHhhZSwweGFhLDB4ZjIJQCBwbXVsbCBxNSxxMTMscTkKIAl2ZW9yCXExMCxxMTAscTMJCUAgS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCi0uYnl0ZQkweDg3LDB4NGUsMHhhZCwweGYyCUAgcG11bGwyIHEyLHExNCxxMwkJQCBIXjIuaGm3WGkuaGkKKy5ieXRlCTB4ODcsMHg0ZSwweGFkLDB4ZjIJQCBwbXVsbDIgcTIscTE0LHEzCQlAIEheMi5oacK3WGkuaGkKIAl2ZW9yCXEwLHEwLHE0CQlAIGFjY3VtdWxhdGUKLS5ieXRlCTB4YTUsMHgyZSwweGFiLDB4ZjIJQCBwbXVsbDIgcTEscTEzLHExMAkJQCAoSF4yLmxvK0heMi5oaSm3KFhpLmxvK1hpLmhpKQorLmJ5dGUJMHhhNSwweDJlLDB4YWIsMHhmMglAIHBtdWxsMiBxMSxxMTMscTEwCQlAIChIXjIubG8rSF4yLmhpKcK3KFhpLmxvK1hpLmhpKQogCXZsZDEuNjQJe3E4fSxbcjJdLHIxMglAIGxvYWQgW3JvdGF0ZWRdIElbaSsyXQogCiAJdmVvcglxMixxMixxNgpAQCAtMTc2LDcgKzE3OSw3IEBACiAJdmV4dC44CXE3LHE5LHE5LCM4CiAJdmV4dC44CXEzLHE4LHE4LCM4CiAJdmVvcglxMCxxMSxxMTAKLS5ieXRlCTB4OGUsMHg4ZSwweGE4LDB4ZjIJQCBwbXVsbCBxNCxxMTIscTcJCUAgSLdJaSsxCisuYnl0ZQkweDhlLDB4OGUsMHhhOCwweGYyCUAgcG11bGwgcTQscTEyLHE3CQlAIEjCt0lpKzEKIAl2ZW9yCXEzLHEzLHEyCQlAIGFjY3VtdWxhdGUgcTMgZWFybHkKIAogCXZleHQuOAlxMTAscTAscTAsIzgJCUAgMm5kIHBoYXNlIG9mIHJlZHVjdGlvbgpAQCAtMTk3LDEwICsyMDAsMTAgQEAKIAl2ZW9yCXEzLHEzLHEwCQlAIGlucF49WGkKIAl2ZW9yCXE5LHE4LHExMAkJQCBxOSBpcyByb3RhdGVkIGlucF5YaQogCi0uYnl0ZQkweDg2LDB4MGUsMHhhOCwweGYyCUAgcG11bGwgcTAscTEyLHEzCQlAIEgubG+3WGkubG8KKy5ieXRlCTB4ODYsMHgwZSwweGE4LDB4ZjIJQCBwbXVsbCBxMCxxMTIscTMJCUAgSC5sb8K3WGkubG8KIAl2ZW9yCXE5LHE5LHEzCQlAIEthcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwotLmJ5dGUJMHg4NywweDRlLDB4YTksMHhmMglAIHBtdWxsMiBxMixxMTIscTMJCUAgSC5oabdYaS5oaQotLmJ5dGUJMHhhMiwweDJlLDB4YWEsMHhmMglAIHBtdWxsIHExLHExMyxxOQkJQCAoSC5sbytILmhpKbcoWGkubG8rWGkuaGkpCisuYnl0ZQkweDg3LDB4NGUsMHhhOSwweGYyCUAgcG11bGwyIHEyLHExMixxMwkJQCBILmhpwrdYaS5oaQorLmJ5dGUJMHhhMiwweDJlLDB4YWEsMHhmMglAIHBtdWxsIHExLHExMyxxOQkJQCAoSC5sbytILmhpKcK3KFhpLmxvK1hpLmhpKQogCiAJdmV4dC44CXE5LHEwLHEyLCM4CQlAIEthcmF0c3ViYSBwb3N0LXByb2Nlc3NpbmcKIAl2ZW9yCXExMCxxMCxxMgpAQCAtMjMwLDQgKzIzMyw0IEBACiAuYnl0ZQk3MSw3Miw2NSw4Myw3MiwzMiwxMDIsMTExLDExNCwzMiw2NSw4Miw3NywxMTgsNTYsNDQsMzIsNjcsODIsODksODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0LDExMSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYsMTExLDExNCwxMDMsNjIsMAogLmFsaWduCTIKIC5hbGlnbgkyCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL3NoYS9zaGExLWFybXY0LWxhcmdlLlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9zaGEvc2hhMS1hcm12NC1sYXJnZS5TCmluZGV4IDQ5MTE0NTguLjM2OTU1ZmEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL3NoYS9zaGExLWFybXY0LWxhcmdlLlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vc2hhL3NoYTEtYXJtdjQtbGFyZ2UuUwpAQCAtMSwxMCArMSwxMSBAQAogI2lmIGRlZmluZWQoX19hcm1fXykKLSNpbmNsdWRlICJhcm1fYXJjaC5oIgorI2luY2x1ZGUgPG9wZW5zc2wvYXJtX2FyY2guaD4KIAogLnRleHQKIC5jb2RlCTMyCiAKIC5nbG9ibAlzaGExX2Jsb2NrX2RhdGFfb3JkZXIKKy5oaWRkZW4Jc2hhMV9ibG9ja19kYXRhX29yZGVyCiAudHlwZQlzaGExX2Jsb2NrX2RhdGFfb3JkZXIsJWZ1bmN0aW9uCiAKIC5hbGlnbgk1CkBAIC0xNDU5LDQgKzE0NjAsNCBAQAogLmNvbW0JT1BFTlNTTF9hcm1jYXBfUCw0LDQKIC5oaWRkZW4JT1BFTlNTTF9hcm1jYXBfUAogI2VuZGlmCi0jZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL3NoYS9zaGEyNTYtYXJtdjQuUwppbmRleCBhYzlmMmYxLi42MDQwMDQxIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9zaGEvc2hhMjU2LWFybXY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vc2hhL3NoYTI1Ni1hcm12NC5TCkBAIC0zOCw3ICszOCw3IEBACiBAIEFkZCBBUk12OCBjb2RlIHBhdGggcGVyZm9ybWluZyBhdCAyLjAgY3BiIG9uIEFwcGxlIEE3LgogCiAjaWZuZGVmIF9fS0VSTkVMX18KLSMgaW5jbHVkZSAiYXJtX2FyY2guaCIKKyMgaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogI2Vsc2UKICMgZGVmaW5lIF9fQVJNX0FSQ0hfXyBfX0xJTlVYX0FSTV9BUkNIX18KICMgZGVmaW5lIF9fQVJNX01BWF9BUkNIX18gNwpAQCAtODUsNiArODUsNyBAQAogLmFsaWduCTUKIAogLmdsb2JsCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyCisuaGlkZGVuCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyCiAudHlwZQlzaGEyNTZfYmxvY2tfZGF0YV9vcmRlciwlZnVuY3Rpb24KIHNoYTI1Nl9ibG9ja19kYXRhX29yZGVyOgogLkxzaGEyNTZfYmxvY2tfZGF0YV9vcmRlcjoKQEAgLTE4NzUsNiArMTg3Niw3IEBACiAuZnB1CW5lb24KIAogLmdsb2JsCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyX25lb24KKy5oaWRkZW4Jc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfbmVvbgogLnR5cGUJc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfbmVvbiwlZnVuY3Rpb24KIC5hbGlnbgk0CiBzaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9uZW9uOgpAQCAtMjgxNSw0ICsyODE3LDQgQEAKIC5jb21tCU9QRU5TU0xfYXJtY2FwX1AsNCw0CiAuaGlkZGVuCU9QRU5TU0xfYXJtY2FwX1AKICNlbmRpZgotI2VuZGlmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9zaGEvc2hhNTEyLWFybXY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgtYXJtL2NyeXB0by9zaGEvc2hhNTEyLWFybXY0LlMKaW5kZXggYzc5NGY4Ny4uOTNhN2JmOCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LWFybS9jcnlwdG8vc2hhL3NoYTUxMi1hcm12NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC1hcm0vY3J5cHRvL3NoYS9zaGE1MTItYXJtdjQuUwpAQCAtNDcsNyArNDcsNyBAQAogQCB3YXMgcmVmbGVjdGVkIGluIGJlbG93IHR3byBwYXJhbWV0ZXJzIGFzIDAgYW5kIDQuIE5vdyBjYWxsZXIgaXMKIEAgZXhwZWN0ZWQgdG8gbWFpbnRhaW4gbmF0aXZlIGJ5dGUgb3JkZXIgZm9yIHdob2xlIDY0LWJpdCB2YWx1ZXMuCiAjaWZuZGVmIF9fS0VSTkVMX18KLSMgaW5jbHVkZSAiYXJtX2FyY2guaCIKKyMgaW5jbHVkZSA8b3BlbnNzbC9hcm1fYXJjaC5oPgogIyBkZWZpbmUgVkZQX0FCSV9QVVNICXZzdG1kYglzcCEse2Q4LWQxNX0KICMgZGVmaW5lIFZGUF9BQklfUE9QCXZsZG1pYQlzcCEse2Q4LWQxNX0KICNlbHNlCkBAIC0xMzMsNiArMTMzLDcgQEAKICNlbmRpZgogCiAuZ2xvYmwJc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIKKy5oaWRkZW4Jc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIKIC50eXBlCXNoYTUxMl9ibG9ja19kYXRhX29yZGVyLCVmdW5jdGlvbgogc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXI6CiAuTHNoYTUxMl9ibG9ja19kYXRhX29yZGVyOgpAQCAtMTQ3LDcgKzE0OCw3IEBACiAjaWZkZWYJX19BUFBMRV9fCiAJbGRyCXIxMixbcjEyXQogI2VuZGlmCi0JdHN0CXIxMiwjMQorCXRzdAlyMTIsI0FSTVY3X05FT04KIAlibmUJLkxORU9OCiAjZW5kaWYKIAlhZGQJcjIscjEscjIsbHNsIzcJQCBsZW4gdG8gcG9pbnQgYXQgdGhlIGVuZCBvZiBpbnAKQEAgLTUzMyw2ICs1MzQsNyBAQAogLmZwdQluZW9uCiAKIC5nbG9ibAlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9uZW9uCisuaGlkZGVuCXNoYTUxMl9ibG9ja19kYXRhX29yZGVyX25lb24KIC50eXBlCXNoYTUxMl9ibG9ja19kYXRhX29yZGVyX25lb24sJWZ1bmN0aW9uCiAuYWxpZ24JNAogc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfbmVvbjoKQEAgLTE4NjYsNCArMTg2OCw0IEBACiAuY29tbQlPUEVOU1NMX2FybWNhcF9QLDQsNAogLmhpZGRlbglPUEVOU1NMX2FybWNhcF9QCiAjZW5kaWYKLSNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNjMzlhYwotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LlMKQEAgLTAsMCArMSw5NjkgQEAKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorLmZpbGUJImNoYWNoYS14ODYuUyIKKy50ZXh0CisuZ2xvYmwJQ2hhQ2hhMjBfY3RyMzIKKy5oaWRkZW4JQ2hhQ2hhMjBfY3RyMzIKKy50eXBlCUNoYUNoYTIwX2N0cjMyLEBmdW5jdGlvbgorLmFsaWduCTE2CitDaGFDaGEyMF9jdHIzMjoKKy5MX0NoYUNoYTIwX2N0cjMyX2JlZ2luOgorCXB1c2hsCSVlYnAKKwlwdXNobAklZWJ4CisJcHVzaGwJJWVzaQorCXB1c2hsCSVlZGkKKwl4b3JsCSVlYXgsJWVheAorCWNtcGwJMjgoJWVzcCksJWVheAorCWplCS5MMDAwbm9fZGF0YQorCWNhbGwJLkxwaWNfcG9pbnQKKy5McGljX3BvaW50OgorCXBvcGwJJWVheAorCWxlYWwJT1BFTlNTTF9pYTMyY2FwX1AtLkxwaWNfcG9pbnQoJWVheCksJWVicAorCXRlc3RsCSQxNjc3NzIxNiwoJWVicCkKKwlqegkuTDAwMXg4NgorCXRlc3RsCSQ1MTIsNCglZWJwKQorCWp6CS5MMDAxeDg2CisJam1wCS5Mc3NzZTNfc2hvcnRjdXQKKy5MMDAxeDg2OgorCW1vdmwJMzIoJWVzcCksJWVzaQorCW1vdmwJMzYoJWVzcCksJWVkaQorCXN1YmwJJDEzMiwlZXNwCisJbW92bAkoJWVzaSksJWVheAorCW1vdmwJNCglZXNpKSwlZWJ4CisJbW92bAk4KCVlc2kpLCVlY3gKKwltb3ZsCTEyKCVlc2kpLCVlZHgKKwltb3ZsCSVlYXgsODAoJWVzcCkKKwltb3ZsCSVlYngsODQoJWVzcCkKKwltb3ZsCSVlY3gsODgoJWVzcCkKKwltb3ZsCSVlZHgsOTIoJWVzcCkKKwltb3ZsCTE2KCVlc2kpLCVlYXgKKwltb3ZsCTIwKCVlc2kpLCVlYngKKwltb3ZsCTI0KCVlc2kpLCVlY3gKKwltb3ZsCTI4KCVlc2kpLCVlZHgKKwltb3ZsCSVlYXgsOTYoJWVzcCkKKwltb3ZsCSVlYngsMTAwKCVlc3ApCisJbW92bAklZWN4LDEwNCglZXNwKQorCW1vdmwJJWVkeCwxMDgoJWVzcCkKKwltb3ZsCSglZWRpKSwlZWF4CisJbW92bAk0KCVlZGkpLCVlYngKKwltb3ZsCTgoJWVkaSksJWVjeAorCW1vdmwJMTIoJWVkaSksJWVkeAorCXN1YmwJJDEsJWVheAorCW1vdmwJJWVheCwxMTIoJWVzcCkKKwltb3ZsCSVlYngsMTE2KCVlc3ApCisJbW92bAklZWN4LDEyMCglZXNwKQorCW1vdmwJJWVkeCwxMjQoJWVzcCkKKwlqbXAJLkwwMDJlbnRyeQorLmFsaWduCTE2CisuTDAwM291dGVyX2xvb3A6CisJbW92bAklZWJ4LDE1NiglZXNwKQorCW1vdmwJJWVheCwxNTIoJWVzcCkKKwltb3ZsCSVlY3gsMTYwKCVlc3ApCisuTDAwMmVudHJ5OgorCW1vdmwJJDE2MzQ3NjA4MDUsJWVheAorCW1vdmwJJDg1Nzc2MDg3OCw0KCVlc3ApCisJbW92bAkkMjAzNjQ3NzIzNCw4KCVlc3ApCisJbW92bAkkMTc5NzI4NTIzNiwxMiglZXNwKQorCW1vdmwJODQoJWVzcCksJWVieAorCW1vdmwJODgoJWVzcCksJWVicAorCW1vdmwJMTA0KCVlc3ApLCVlY3gKKwltb3ZsCTEwOCglZXNwKSwlZXNpCisJbW92bAkxMTYoJWVzcCksJWVkeAorCW1vdmwJMTIwKCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwltb3ZsCSVlYnAsMjQoJWVzcCkKKwltb3ZsCSVlY3gsNDAoJWVzcCkKKwltb3ZsCSVlc2ksNDQoJWVzcCkKKwltb3ZsCSVlZHgsNTIoJWVzcCkKKwltb3ZsCSVlZGksNTYoJWVzcCkKKwltb3ZsCTkyKCVlc3ApLCVlYngKKwltb3ZsCTEyNCglZXNwKSwlZWRpCisJbW92bAkxMTIoJWVzcCksJWVkeAorCW1vdmwJODAoJWVzcCksJWVicAorCW1vdmwJOTYoJWVzcCksJWVjeAorCW1vdmwJMTAwKCVlc3ApLCVlc2kKKwlhZGRsCSQxLCVlZHgKKwltb3ZsCSVlYngsMjgoJWVzcCkKKwltb3ZsCSVlZGksNjAoJWVzcCkKKwltb3ZsCSVlZHgsMTEyKCVlc3ApCisJbW92bAkkMTAsJWVieAorCWptcAkuTDAwNGxvb3AKKy5hbGlnbgkxNgorLkwwMDRsb29wOgorCWFkZGwJJWVicCwlZWF4CisJbW92bAklZWJ4LDEyOCglZXNwKQorCW1vdmwJJWVicCwlZWJ4CisJeG9ybAklZWF4LCVlZHgKKwlyb2xsCSQxNiwlZWR4CisJYWRkbAklZWR4LCVlY3gKKwl4b3JsCSVlY3gsJWVieAorCW1vdmwJNTIoJWVzcCksJWVkaQorCXJvbGwJJDEyLCVlYngKKwltb3ZsCTIwKCVlc3ApLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZWF4LCglZXNwKQorCXJvbGwJJDgsJWVkeAorCW1vdmwJNCglZXNwKSwlZWF4CisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCSVlZHgsNDgoJWVzcCkKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVicCwlZWF4CisJcm9sbAkkNywlZWJ4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlY3gsMzIoJWVzcCkKKwlyb2xsCSQxNiwlZWRpCisJbW92bAklZWJ4LDE2KCVlc3ApCisJYWRkbAklZWRpLCVlc2kKKwltb3ZsCTQwKCVlc3ApLCVlY3gKKwl4b3JsCSVlc2ksJWVicAorCW1vdmwJNTYoJWVzcCksJWVkeAorCXJvbGwJJDEyLCVlYnAKKwltb3ZsCTI0KCVlc3ApLCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWF4LDQoJWVzcCkKKwlyb2xsCSQ4LCVlZGkKKwltb3ZsCTgoJWVzcCksJWVheAorCWFkZGwJJWVkaSwlZXNpCisJbW92bAklZWRpLDUyKCVlc3ApCisJeG9ybAklZXNpLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXJvbGwJJDcsJWVicAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZXNpLDM2KCVlc3ApCisJcm9sbAkkMTYsJWVkeAorCW1vdmwJJWVicCwyMCglZXNwKQorCWFkZGwJJWVkeCwlZWN4CisJbW92bAk0NCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlYngKKwltb3ZsCTYwKCVlc3ApLCVlZGkKKwlyb2xsCSQxMiwlZWJ4CisJbW92bAkyOCglZXNwKSwlZWJwCisJYWRkbAklZWJ4LCVlYXgKKwl4b3JsCSVlYXgsJWVkeAorCW1vdmwJJWVheCw4KCVlc3ApCisJcm9sbAkkOCwlZWR4CisJbW92bAkxMiglZXNwKSwlZWF4CisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCSVlZHgsNTYoJWVzcCkKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVicCwlZWF4CisJcm9sbAkkNywlZWJ4CisJeG9ybAklZWF4LCVlZGkKKwlyb2xsCSQxNiwlZWRpCisJbW92bAklZWJ4LDI0KCVlc3ApCisJYWRkbAklZWRpLCVlc2kKKwl4b3JsCSVlc2ksJWVicAorCXJvbGwJJDEyLCVlYnAKKwltb3ZsCTIwKCVlc3ApLCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWF4LDEyKCVlc3ApCisJcm9sbAkkOCwlZWRpCisJbW92bAkoJWVzcCksJWVheAorCWFkZGwJJWVkaSwlZXNpCisJbW92bAklZWRpLCVlZHgKKwl4b3JsCSVlc2ksJWVicAorCWFkZGwJJWVieCwlZWF4CisJcm9sbAkkNywlZWJwCisJeG9ybAklZWF4LCVlZHgKKwlyb2xsCSQxNiwlZWR4CisJbW92bAklZWJwLDI4KCVlc3ApCisJYWRkbAklZWR4LCVlY3gKKwl4b3JsCSVlY3gsJWVieAorCW1vdmwJNDgoJWVzcCksJWVkaQorCXJvbGwJJDEyLCVlYngKKwltb3ZsCTI0KCVlc3ApLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZWF4LCglZXNwKQorCXJvbGwJJDgsJWVkeAorCW1vdmwJNCglZXNwKSwlZWF4CisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCSVlZHgsNjAoJWVzcCkKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVicCwlZWF4CisJcm9sbAkkNywlZWJ4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlY3gsNDAoJWVzcCkKKwlyb2xsCSQxNiwlZWRpCisJbW92bAklZWJ4LDIwKCVlc3ApCisJYWRkbAklZWRpLCVlc2kKKwltb3ZsCTMyKCVlc3ApLCVlY3gKKwl4b3JsCSVlc2ksJWVicAorCW1vdmwJNTIoJWVzcCksJWVkeAorCXJvbGwJJDEyLCVlYnAKKwltb3ZsCTI4KCVlc3ApLCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWF4LDQoJWVzcCkKKwlyb2xsCSQ4LCVlZGkKKwltb3ZsCTgoJWVzcCksJWVheAorCWFkZGwJJWVkaSwlZXNpCisJbW92bAklZWRpLDQ4KCVlc3ApCisJeG9ybAklZXNpLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXJvbGwJJDcsJWVicAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZXNpLDQ0KCVlc3ApCisJcm9sbAkkMTYsJWVkeAorCW1vdmwJJWVicCwyNCglZXNwKQorCWFkZGwJJWVkeCwlZWN4CisJbW92bAkzNiglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlYngKKwltb3ZsCTU2KCVlc3ApLCVlZGkKKwlyb2xsCSQxMiwlZWJ4CisJbW92bAkxNiglZXNwKSwlZWJwCisJYWRkbAklZWJ4LCVlYXgKKwl4b3JsCSVlYXgsJWVkeAorCW1vdmwJJWVheCw4KCVlc3ApCisJcm9sbAkkOCwlZWR4CisJbW92bAkxMiglZXNwKSwlZWF4CisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCSVlZHgsNTIoJWVzcCkKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVicCwlZWF4CisJcm9sbAkkNywlZWJ4CisJeG9ybAklZWF4LCVlZGkKKwlyb2xsCSQxNiwlZWRpCisJbW92bAklZWJ4LDI4KCVlc3ApCisJYWRkbAklZWRpLCVlc2kKKwl4b3JsCSVlc2ksJWVicAorCW1vdmwJNDgoJWVzcCksJWVkeAorCXJvbGwJJDEyLCVlYnAKKwltb3ZsCTEyOCglZXNwKSwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVheCwxMiglZXNwKQorCXJvbGwJJDgsJWVkaQorCW1vdmwJKCVlc3ApLCVlYXgKKwlhZGRsCSVlZGksJWVzaQorCW1vdmwJJWVkaSw1NiglZXNwKQorCXhvcmwJJWVzaSwlZWJwCisJcm9sbAkkNywlZWJwCisJZGVjbAklZWJ4CisJam56CS5MMDA0bG9vcAorCW1vdmwJMTYwKCVlc3ApLCVlYngKKwlhZGRsCSQxNjM0NzYwODA1LCVlYXgKKwlhZGRsCTgwKCVlc3ApLCVlYnAKKwlhZGRsCTk2KCVlc3ApLCVlY3gKKwlhZGRsCTEwMCglZXNwKSwlZXNpCisJY21wbAkkNjQsJWVieAorCWpiCS5MMDA1dGFpbAorCW1vdmwJMTU2KCVlc3ApLCVlYngKKwlhZGRsCTExMiglZXNwKSwlZWR4CisJYWRkbAkxMjAoJWVzcCksJWVkaQorCXhvcmwJKCVlYngpLCVlYXgKKwl4b3JsCTE2KCVlYngpLCVlYnAKKwltb3ZsCSVlYXgsKCVlc3ApCisJbW92bAkxNTIoJWVzcCksJWVheAorCXhvcmwJMzIoJWVieCksJWVjeAorCXhvcmwJMzYoJWVieCksJWVzaQorCXhvcmwJNDgoJWVieCksJWVkeAorCXhvcmwJNTYoJWVieCksJWVkaQorCW1vdmwJJWVicCwxNiglZWF4KQorCW1vdmwJJWVjeCwzMiglZWF4KQorCW1vdmwJJWVzaSwzNiglZWF4KQorCW1vdmwJJWVkeCw0OCglZWF4KQorCW1vdmwJJWVkaSw1NiglZWF4KQorCW1vdmwJNCglZXNwKSwlZWJwCisJbW92bAk4KCVlc3ApLCVlY3gKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwltb3ZsCTIwKCVlc3ApLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwlhZGRsCSQ4NTc3NjA4NzgsJWVicAorCWFkZGwJJDIwMzY0NzcyMzQsJWVjeAorCWFkZGwJJDE3OTcyODUyMzYsJWVzaQorCWFkZGwJODQoJWVzcCksJWVkeAorCWFkZGwJODgoJWVzcCksJWVkaQorCXhvcmwJNCglZWJ4KSwlZWJwCisJeG9ybAk4KCVlYngpLCVlY3gKKwl4b3JsCTEyKCVlYngpLCVlc2kKKwl4b3JsCTIwKCVlYngpLCVlZHgKKwl4b3JsCTI0KCVlYngpLCVlZGkKKwltb3ZsCSVlYnAsNCglZWF4KQorCW1vdmwJJWVjeCw4KCVlYXgpCisJbW92bAklZXNpLDEyKCVlYXgpCisJbW92bAklZWR4LDIwKCVlYXgpCisJbW92bAklZWRpLDI0KCVlYXgpCisJbW92bAkyOCglZXNwKSwlZWJwCisJbW92bAk0MCglZXNwKSwlZWN4CisJbW92bAk0NCglZXNwKSwlZXNpCisJbW92bAk1MiglZXNwKSwlZWR4CisJbW92bAk2MCglZXNwKSwlZWRpCisJYWRkbAk5MiglZXNwKSwlZWJwCisJYWRkbAkxMDQoJWVzcCksJWVjeAorCWFkZGwJMTA4KCVlc3ApLCVlc2kKKwlhZGRsCTExNiglZXNwKSwlZWR4CisJYWRkbAkxMjQoJWVzcCksJWVkaQorCXhvcmwJMjgoJWVieCksJWVicAorCXhvcmwJNDAoJWVieCksJWVjeAorCXhvcmwJNDQoJWVieCksJWVzaQorCXhvcmwJNTIoJWVieCksJWVkeAorCXhvcmwJNjAoJWVieCksJWVkaQorCWxlYWwJNjQoJWVieCksJWVieAorCW1vdmwJJWVicCwyOCglZWF4KQorCW1vdmwJKCVlc3ApLCVlYnAKKwltb3ZsCSVlY3gsNDAoJWVheCkKKwltb3ZsCTE2MCglZXNwKSwlZWN4CisJbW92bAklZXNpLDQ0KCVlYXgpCisJbW92bAklZWR4LDUyKCVlYXgpCisJbW92bAklZWRpLDYwKCVlYXgpCisJbW92bAklZWJwLCglZWF4KQorCWxlYWwJNjQoJWVheCksJWVheAorCXN1YmwJJDY0LCVlY3gKKwlqbnoJLkwwMDNvdXRlcl9sb29wCisJam1wCS5MMDA2ZG9uZQorLkwwMDV0YWlsOgorCWFkZGwJMTEyKCVlc3ApLCVlZHgKKwlhZGRsCTEyMCglZXNwKSwlZWRpCisJbW92bAklZWF4LCglZXNwKQorCW1vdmwJJWVicCwxNiglZXNwKQorCW1vdmwJJWVjeCwzMiglZXNwKQorCW1vdmwJJWVzaSwzNiglZXNwKQorCW1vdmwJJWVkeCw0OCglZXNwKQorCW1vdmwJJWVkaSw1NiglZXNwKQorCW1vdmwJNCglZXNwKSwlZWJwCisJbW92bAk4KCVlc3ApLCVlY3gKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwltb3ZsCTIwKCVlc3ApLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwlhZGRsCSQ4NTc3NjA4NzgsJWVicAorCWFkZGwJJDIwMzY0NzcyMzQsJWVjeAorCWFkZGwJJDE3OTcyODUyMzYsJWVzaQorCWFkZGwJODQoJWVzcCksJWVkeAorCWFkZGwJODgoJWVzcCksJWVkaQorCW1vdmwJJWVicCw0KCVlc3ApCisJbW92bAklZWN4LDgoJWVzcCkKKwltb3ZsCSVlc2ksMTIoJWVzcCkKKwltb3ZsCSVlZHgsMjAoJWVzcCkKKwltb3ZsCSVlZGksMjQoJWVzcCkKKwltb3ZsCTI4KCVlc3ApLCVlYnAKKwltb3ZsCTQwKCVlc3ApLCVlY3gKKwltb3ZsCTQ0KCVlc3ApLCVlc2kKKwltb3ZsCTUyKCVlc3ApLCVlZHgKKwltb3ZsCTYwKCVlc3ApLCVlZGkKKwlhZGRsCTkyKCVlc3ApLCVlYnAKKwlhZGRsCTEwNCglZXNwKSwlZWN4CisJYWRkbAkxMDgoJWVzcCksJWVzaQorCWFkZGwJMTE2KCVlc3ApLCVlZHgKKwlhZGRsCTEyNCglZXNwKSwlZWRpCisJbW92bAklZWJwLDI4KCVlc3ApCisJbW92bAkxNTYoJWVzcCksJWVicAorCW1vdmwJJWVjeCw0MCglZXNwKQorCW1vdmwJMTUyKCVlc3ApLCVlY3gKKwltb3ZsCSVlc2ksNDQoJWVzcCkKKwl4b3JsCSVlc2ksJWVzaQorCW1vdmwJJWVkeCw1MiglZXNwKQorCW1vdmwJJWVkaSw2MCglZXNwKQorCXhvcmwJJWVheCwlZWF4CisJeG9ybAklZWR4LCVlZHgKKy5MMDA3dGFpbF9sb29wOgorCW1vdmIJKCVlc2ksJWVicCwxKSwlYWwKKwltb3ZiCSglZXNwLCVlc2ksMSksJWRsCisJbGVhbAkxKCVlc2kpLCVlc2kKKwl4b3JiCSVkbCwlYWwKKwltb3ZiCSVhbCwtMSglZWN4LCVlc2ksMSkKKwlkZWNsCSVlYngKKwlqbnoJLkwwMDd0YWlsX2xvb3AKKy5MMDA2ZG9uZToKKwlhZGRsCSQxMzIsJWVzcAorLkwwMDBub19kYXRhOgorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAorLnNpemUJQ2hhQ2hhMjBfY3RyMzIsLi0uTF9DaGFDaGEyMF9jdHIzMl9iZWdpbgorLmdsb2JsCUNoYUNoYTIwX3Nzc2UzCisuaGlkZGVuCUNoYUNoYTIwX3Nzc2UzCisudHlwZQlDaGFDaGEyMF9zc3NlMyxAZnVuY3Rpb24KKy5hbGlnbgkxNgorQ2hhQ2hhMjBfc3NzZTM6CisuTF9DaGFDaGEyMF9zc3NlM19iZWdpbjoKKwlwdXNobAklZWJwCisJcHVzaGwJJWVieAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCisuTHNzc2UzX3Nob3J0Y3V0OgorCW1vdmwJMjAoJWVzcCksJWVkaQorCW1vdmwJMjQoJWVzcCksJWVzaQorCW1vdmwJMjgoJWVzcCksJWVjeAorCW1vdmwJMzIoJWVzcCksJWVkeAorCW1vdmwJMzYoJWVzcCksJWVieAorCW1vdmwJJWVzcCwlZWJwCisJc3VibAkkNTI0LCVlc3AKKwlhbmRsCSQtNjQsJWVzcAorCW1vdmwJJWVicCw1MTIoJWVzcCkKKwlsZWFsCS5Mc3NzZTNfZGF0YS0uTHBpY19wb2ludCglZWF4KSwlZWF4CisJbW92ZHF1CSglZWJ4KSwleG1tMworCWNtcGwJJDI1NiwlZWN4CisJamIJLkwwMDgxeAorCW1vdmwJJWVkeCw1MTYoJWVzcCkKKwltb3ZsCSVlYngsNTIwKCVlc3ApCisJc3VibAkkMjU2LCVlY3gKKwlsZWFsCTM4NCglZXNwKSwlZWJwCisJbW92ZHF1CSglZWR4KSwleG1tNworCXBzaHVmZAkkMCwleG1tMywleG1tMAorCXBzaHVmZAkkODUsJXhtbTMsJXhtbTEKKwlwc2h1ZmQJJDE3MCwleG1tMywleG1tMgorCXBzaHVmZAkkMjU1LCV4bW0zLCV4bW0zCisJcGFkZGQJNDgoJWVheCksJXhtbTAKKwlwc2h1ZmQJJDAsJXhtbTcsJXhtbTQKKwlwc2h1ZmQJJDg1LCV4bW03LCV4bW01CisJcHN1YmQJNjQoJWVheCksJXhtbTAKKwlwc2h1ZmQJJDE3MCwleG1tNywleG1tNgorCXBzaHVmZAkkMjU1LCV4bW03LCV4bW03CisJbW92ZHFhCSV4bW0wLDY0KCVlYnApCisJbW92ZHFhCSV4bW0xLDgwKCVlYnApCisJbW92ZHFhCSV4bW0yLDk2KCVlYnApCisJbW92ZHFhCSV4bW0zLDExMiglZWJwKQorCW1vdmRxdQkxNiglZWR4KSwleG1tMworCW1vdmRxYQkleG1tNCwtNjQoJWVicCkKKwltb3ZkcWEJJXhtbTUsLTQ4KCVlYnApCisJbW92ZHFhCSV4bW02LC0zMiglZWJwKQorCW1vdmRxYQkleG1tNywtMTYoJWVicCkKKwltb3ZkcWEJMzIoJWVheCksJXhtbTcKKwlsZWFsCTEyOCglZXNwKSwlZWJ4CisJcHNodWZkCSQwLCV4bW0zLCV4bW0wCisJcHNodWZkCSQ4NSwleG1tMywleG1tMQorCXBzaHVmZAkkMTcwLCV4bW0zLCV4bW0yCisJcHNodWZkCSQyNTUsJXhtbTMsJXhtbTMKKwlwc2h1ZmQJJDAsJXhtbTcsJXhtbTQKKwlwc2h1ZmQJJDg1LCV4bW03LCV4bW01CisJcHNodWZkCSQxNzAsJXhtbTcsJXhtbTYKKwlwc2h1ZmQJJDI1NSwleG1tNywleG1tNworCW1vdmRxYQkleG1tMCwoJWVicCkKKwltb3ZkcWEJJXhtbTEsMTYoJWVicCkKKwltb3ZkcWEJJXhtbTIsMzIoJWVicCkKKwltb3ZkcWEJJXhtbTMsNDgoJWVicCkKKwltb3ZkcWEJJXhtbTQsLTEyOCglZWJwKQorCW1vdmRxYQkleG1tNSwtMTEyKCVlYnApCisJbW92ZHFhCSV4bW02LC05NiglZWJwKQorCW1vdmRxYQkleG1tNywtODAoJWVicCkKKwlsZWFsCTEyOCglZXNpKSwlZXNpCisJbGVhbAkxMjgoJWVkaSksJWVkaQorCWptcAkuTDAwOW91dGVyX2xvb3AKKy5hbGlnbgkxNgorLkwwMDlvdXRlcl9sb29wOgorCW1vdmRxYQktMTEyKCVlYnApLCV4bW0xCisJbW92ZHFhCS05NiglZWJwKSwleG1tMgorCW1vdmRxYQktODAoJWVicCksJXhtbTMKKwltb3ZkcWEJLTQ4KCVlYnApLCV4bW01CisJbW92ZHFhCS0zMiglZWJwKSwleG1tNgorCW1vdmRxYQktMTYoJWVicCksJXhtbTcKKwltb3ZkcWEJJXhtbTEsLTExMiglZWJ4KQorCW1vdmRxYQkleG1tMiwtOTYoJWVieCkKKwltb3ZkcWEJJXhtbTMsLTgwKCVlYngpCisJbW92ZHFhCSV4bW01LC00OCglZWJ4KQorCW1vdmRxYQkleG1tNiwtMzIoJWVieCkKKwltb3ZkcWEJJXhtbTcsLTE2KCVlYngpCisJbW92ZHFhCTMyKCVlYnApLCV4bW0yCisJbW92ZHFhCTQ4KCVlYnApLCV4bW0zCisJbW92ZHFhCTY0KCVlYnApLCV4bW00CisJbW92ZHFhCTgwKCVlYnApLCV4bW01CisJbW92ZHFhCTk2KCVlYnApLCV4bW02CisJbW92ZHFhCTExMiglZWJwKSwleG1tNworCXBhZGRkCTY0KCVlYXgpLCV4bW00CisJbW92ZHFhCSV4bW0yLDMyKCVlYngpCisJbW92ZHFhCSV4bW0zLDQ4KCVlYngpCisJbW92ZHFhCSV4bW00LDY0KCVlYngpCisJbW92ZHFhCSV4bW01LDgwKCVlYngpCisJbW92ZHFhCSV4bW02LDk2KCVlYngpCisJbW92ZHFhCSV4bW03LDExMiglZWJ4KQorCW1vdmRxYQkleG1tNCw2NCglZWJwKQorCW1vdmRxYQktMTI4KCVlYnApLCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW02CisJbW92ZHFhCS02NCglZWJwKSwleG1tMworCW1vdmRxYQkoJWVicCksJXhtbTQKKwltb3ZkcWEJMTYoJWVicCksJXhtbTUKKwltb3ZsCSQxMCwlZWR4CisJbm9wCisuYWxpZ24JMTYKKy5MMDEwbG9vcDoKKwlwYWRkZAkleG1tMywleG1tMAorCW1vdmRxYQkleG1tMywleG1tMgorCXB4b3IJJXhtbTAsJXhtbTYKKwlwc2h1ZmIJKCVlYXgpLCV4bW02CisJcGFkZGQJJXhtbTYsJXhtbTQKKwlweG9yCSV4bW00LCV4bW0yCisJbW92ZHFhCS00OCglZWJ4KSwleG1tMworCW1vdmRxYQkleG1tMiwleG1tMQorCXBzbGxkCSQxMiwleG1tMgorCXBzcmxkCSQyMCwleG1tMQorCXBvcgkleG1tMSwleG1tMgorCW1vdmRxYQktMTEyKCVlYngpLCV4bW0xCisJcGFkZGQJJXhtbTIsJXhtbTAKKwltb3ZkcWEJODAoJWVieCksJXhtbTcKKwlweG9yCSV4bW0wLCV4bW02CisJbW92ZHFhCSV4bW0wLC0xMjgoJWVieCkKKwlwc2h1ZmIJMTYoJWVheCksJXhtbTYKKwlwYWRkZAkleG1tNiwleG1tNAorCW1vdmRxYQkleG1tNiw2NCglZWJ4KQorCXB4b3IJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQkleG1tMiwleG1tMAorCXBzbGxkCSQ3LCV4bW0yCisJcHNybGQJJDI1LCV4bW0wCisJcHhvcgkleG1tMSwleG1tNworCXBvcgkleG1tMCwleG1tMgorCW1vdmRxYQkleG1tNCwoJWVieCkKKwlwc2h1ZmIJKCVlYXgpLCV4bW03CisJbW92ZHFhCSV4bW0yLC02NCglZWJ4KQorCXBhZGRkCSV4bW03LCV4bW01CisJbW92ZHFhCTMyKCVlYngpLCV4bW00CisJcHhvcgkleG1tNSwleG1tMworCW1vdmRxYQktMzIoJWVieCksJXhtbTIKKwltb3ZkcWEJJXhtbTMsJXhtbTAKKwlwc2xsZAkkMTIsJXhtbTMKKwlwc3JsZAkkMjAsJXhtbTAKKwlwb3IJJXhtbTAsJXhtbTMKKwltb3ZkcWEJLTk2KCVlYngpLCV4bW0wCisJcGFkZGQJJXhtbTMsJXhtbTEKKwltb3ZkcWEJOTYoJWVieCksJXhtbTYKKwlweG9yCSV4bW0xLCV4bW03CisJbW92ZHFhCSV4bW0xLC0xMTIoJWVieCkKKwlwc2h1ZmIJMTYoJWVheCksJXhtbTcKKwlwYWRkZAkleG1tNywleG1tNQorCW1vdmRxYQkleG1tNyw4MCglZWJ4KQorCXB4b3IJJXhtbTUsJXhtbTMKKwlwYWRkZAkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tMywleG1tMQorCXBzbGxkCSQ3LCV4bW0zCisJcHNybGQJJDI1LCV4bW0xCisJcHhvcgkleG1tMCwleG1tNgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxYQkleG1tNSwxNiglZWJ4KQorCXBzaHVmYgkoJWVheCksJXhtbTYKKwltb3ZkcWEJJXhtbTMsLTQ4KCVlYngpCisJcGFkZGQJJXhtbTYsJXhtbTQKKwltb3ZkcWEJNDgoJWVieCksJXhtbTUKKwlweG9yCSV4bW00LCV4bW0yCisJbW92ZHFhCS0xNiglZWJ4KSwleG1tMworCW1vdmRxYQkleG1tMiwleG1tMQorCXBzbGxkCSQxMiwleG1tMgorCXBzcmxkCSQyMCwleG1tMQorCXBvcgkleG1tMSwleG1tMgorCW1vdmRxYQktODAoJWVieCksJXhtbTEKKwlwYWRkZAkleG1tMiwleG1tMAorCW1vdmRxYQkxMTIoJWVieCksJXhtbTcKKwlweG9yCSV4bW0wLCV4bW02CisJbW92ZHFhCSV4bW0wLC05NiglZWJ4KQorCXBzaHVmYgkxNiglZWF4KSwleG1tNgorCXBhZGRkCSV4bW02LCV4bW00CisJbW92ZHFhCSV4bW02LDk2KCVlYngpCisJcHhvcgkleG1tNCwleG1tMgorCXBhZGRkCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW0yLCV4bW0wCisJcHNsbGQJJDcsJXhtbTIKKwlwc3JsZAkkMjUsJXhtbTAKKwlweG9yCSV4bW0xLCV4bW03CisJcG9yCSV4bW0wLCV4bW0yCisJcHNodWZiCSglZWF4KSwleG1tNworCW1vdmRxYQkleG1tMiwtMzIoJWVieCkKKwlwYWRkZAkleG1tNywleG1tNQorCXB4b3IJJXhtbTUsJXhtbTMKKwltb3ZkcWEJLTQ4KCVlYngpLCV4bW0yCisJbW92ZHFhCSV4bW0zLCV4bW0wCisJcHNsbGQJJDEyLCV4bW0zCisJcHNybGQJJDIwLCV4bW0wCisJcG9yCSV4bW0wLCV4bW0zCisJbW92ZHFhCS0xMjgoJWVieCksJXhtbTAKKwlwYWRkZAkleG1tMywleG1tMQorCXB4b3IJJXhtbTEsJXhtbTcKKwltb3ZkcWEJJXhtbTEsLTgwKCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW03CisJcGFkZGQJJXhtbTcsJXhtbTUKKwltb3ZkcWEJJXhtbTcsJXhtbTYKKwlweG9yCSV4bW01LCV4bW0zCisJcGFkZGQJJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTMsJXhtbTEKKwlwc2xsZAkkNywleG1tMworCXBzcmxkCSQyNSwleG1tMQorCXB4b3IJJXhtbTAsJXhtbTYKKwlwb3IJJXhtbTEsJXhtbTMKKwlwc2h1ZmIJKCVlYXgpLCV4bW02CisJbW92ZHFhCSV4bW0zLC0xNiglZWJ4KQorCXBhZGRkCSV4bW02LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCW1vdmRxYQktMzIoJWVieCksJXhtbTMKKwltb3ZkcWEJJXhtbTIsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTIKKwlwc3JsZAkkMjAsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTIKKwltb3ZkcWEJLTExMiglZWJ4KSwleG1tMQorCXBhZGRkCSV4bW0yLCV4bW0wCisJbW92ZHFhCTY0KCVlYngpLCV4bW03CisJcHhvcgkleG1tMCwleG1tNgorCW1vdmRxYQkleG1tMCwtMTI4KCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW02CisJcGFkZGQJJXhtbTYsJXhtbTQKKwltb3ZkcWEJJXhtbTYsMTEyKCVlYngpCisJcHhvcgkleG1tNCwleG1tMgorCXBhZGRkCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW0yLCV4bW0wCisJcHNsbGQJJDcsJXhtbTIKKwlwc3JsZAkkMjUsJXhtbTAKKwlweG9yCSV4bW0xLCV4bW03CisJcG9yCSV4bW0wLCV4bW0yCisJbW92ZHFhCSV4bW00LDMyKCVlYngpCisJcHNodWZiCSglZWF4KSwleG1tNworCW1vdmRxYQkleG1tMiwtNDgoJWVieCkKKwlwYWRkZAkleG1tNywleG1tNQorCW1vdmRxYQkoJWVieCksJXhtbTQKKwlweG9yCSV4bW01LCV4bW0zCisJbW92ZHFhCS0xNiglZWJ4KSwleG1tMgorCW1vdmRxYQkleG1tMywleG1tMAorCXBzbGxkCSQxMiwleG1tMworCXBzcmxkCSQyMCwleG1tMAorCXBvcgkleG1tMCwleG1tMworCW1vdmRxYQktOTYoJWVieCksJXhtbTAKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQk4MCglZWJ4KSwleG1tNgorCXB4b3IJJXhtbTEsJXhtbTcKKwltb3ZkcWEJJXhtbTEsLTExMiglZWJ4KQorCXBzaHVmYgkxNiglZWF4KSwleG1tNworCXBhZGRkCSV4bW03LCV4bW01CisJbW92ZHFhCSV4bW03LDY0KCVlYngpCisJcHhvcgkleG1tNSwleG1tMworCXBhZGRkCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW0zLCV4bW0xCisJcHNsbGQJJDcsJXhtbTMKKwlwc3JsZAkkMjUsJXhtbTEKKwlweG9yCSV4bW0wLCV4bW02CisJcG9yCSV4bW0xLCV4bW0zCisJbW92ZHFhCSV4bW01LDQ4KCVlYngpCisJcHNodWZiCSglZWF4KSwleG1tNgorCW1vdmRxYQkleG1tMywtMzIoJWVieCkKKwlwYWRkZAkleG1tNiwleG1tNAorCW1vdmRxYQkxNiglZWJ4KSwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTIKKwltb3ZkcWEJLTY0KCVlYngpLCV4bW0zCisJbW92ZHFhCSV4bW0yLCV4bW0xCisJcHNsbGQJJDEyLCV4bW0yCisJcHNybGQJJDIwLCV4bW0xCisJcG9yCSV4bW0xLCV4bW0yCisJbW92ZHFhCS04MCglZWJ4KSwleG1tMQorCXBhZGRkCSV4bW0yLCV4bW0wCisJbW92ZHFhCTk2KCVlYngpLCV4bW03CisJcHhvcgkleG1tMCwleG1tNgorCW1vdmRxYQkleG1tMCwtOTYoJWVieCkKKwlwc2h1ZmIJMTYoJWVheCksJXhtbTYKKwlwYWRkZAkleG1tNiwleG1tNAorCW1vdmRxYQkleG1tNiw4MCglZWJ4KQorCXB4b3IJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQkleG1tMiwleG1tMAorCXBzbGxkCSQ3LCV4bW0yCisJcHNybGQJJDI1LCV4bW0wCisJcHhvcgkleG1tMSwleG1tNworCXBvcgkleG1tMCwleG1tMgorCXBzaHVmYgkoJWVheCksJXhtbTcKKwltb3ZkcWEJJXhtbTIsLTE2KCVlYngpCisJcGFkZGQJJXhtbTcsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0zLCV4bW0wCisJcHNsbGQJJDEyLCV4bW0zCisJcHNybGQJJDIwLCV4bW0wCisJcG9yCSV4bW0wLCV4bW0zCisJbW92ZHFhCS0xMjgoJWVieCksJXhtbTAKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQk2NCglZWJ4KSwleG1tNgorCXB4b3IJJXhtbTEsJXhtbTcKKwltb3ZkcWEJJXhtbTEsLTgwKCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW03CisJcGFkZGQJJXhtbTcsJXhtbTUKKwltb3ZkcWEJJXhtbTcsOTYoJWVieCkKKwlweG9yCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0zLCV4bW0xCisJcHNsbGQJJDcsJXhtbTMKKwlwc3JsZAkkMjUsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTMKKwlkZWNsCSVlZHgKKwlqbnoJLkwwMTBsb29wCisJbW92ZHFhCSV4bW0zLC02NCglZWJ4KQorCW1vdmRxYQkleG1tNCwoJWVieCkKKwltb3ZkcWEJJXhtbTUsMTYoJWVieCkKKwltb3ZkcWEJJXhtbTYsNjQoJWVieCkKKwltb3ZkcWEJJXhtbTcsOTYoJWVieCkKKwltb3ZkcWEJLTExMiglZWJ4KSwleG1tMQorCW1vdmRxYQktOTYoJWVieCksJXhtbTIKKwltb3ZkcWEJLTgwKCVlYngpLCV4bW0zCisJcGFkZGQJLTEyOCglZWJwKSwleG1tMAorCXBhZGRkCS0xMTIoJWVicCksJXhtbTEKKwlwYWRkZAktOTYoJWVicCksJXhtbTIKKwlwYWRkZAktODAoJWVicCksJXhtbTMKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKwlwdW5wY2tsZHEJJXhtbTEsJXhtbTAKKwltb3ZkcWEJJXhtbTIsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTMsJXhtbTIKKwlwdW5wY2toZHEJJXhtbTEsJXhtbTYKKwlwdW5wY2toZHEJJXhtbTMsJXhtbTcKKwltb3ZkcWEJJXhtbTAsJXhtbTEKKwlwdW5wY2tscWRxCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHVucGNrbHFkcQkleG1tNywleG1tNgorCXB1bnBja2hxZHEJJXhtbTIsJXhtbTEKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0zCisJbW92ZHF1CS0xMjgoJWVzaSksJXhtbTQKKwltb3ZkcXUJLTY0KCVlc2kpLCV4bW01CisJbW92ZHF1CSglZXNpKSwleG1tMgorCW1vdmRxdQk2NCglZXNpKSwleG1tNworCWxlYWwJMTYoJWVzaSksJWVzaQorCXB4b3IJJXhtbTAsJXhtbTQKKwltb3ZkcWEJLTY0KCVlYngpLCV4bW0wCisJcHhvcgkleG1tMSwleG1tNQorCW1vdmRxYQktNDgoJWVieCksJXhtbTEKKwlweG9yCSV4bW0yLCV4bW02CisJbW92ZHFhCS0zMiglZWJ4KSwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTcKKwltb3ZkcWEJLTE2KCVlYngpLCV4bW0zCisJbW92ZHF1CSV4bW00LC0xMjgoJWVkaSkKKwltb3ZkcXUJJXhtbTUsLTY0KCVlZGkpCisJbW92ZHF1CSV4bW02LCglZWRpKQorCW1vdmRxdQkleG1tNyw2NCglZWRpKQorCWxlYWwJMTYoJWVkaSksJWVkaQorCXBhZGRkCS02NCglZWJwKSwleG1tMAorCXBhZGRkCS00OCglZWJwKSwleG1tMQorCXBhZGRkCS0zMiglZWJwKSwleG1tMgorCXBhZGRkCS0xNiglZWJwKSwleG1tMworCW1vdmRxYQkleG1tMCwleG1tNgorCXB1bnBja2xkcQkleG1tMSwleG1tMAorCW1vdmRxYQkleG1tMiwleG1tNworCXB1bnBja2xkcQkleG1tMywleG1tMgorCXB1bnBja2hkcQkleG1tMSwleG1tNgorCXB1bnBja2hkcQkleG1tMywleG1tNworCW1vdmRxYQkleG1tMCwleG1tMQorCXB1bnBja2xxZHEJJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwdW5wY2tscWRxCSV4bW03LCV4bW02CisJcHVucGNraHFkcQkleG1tMiwleG1tMQorCXB1bnBja2hxZHEJJXhtbTcsJXhtbTMKKwltb3ZkcXUJLTEyOCglZXNpKSwleG1tNAorCW1vdmRxdQktNjQoJWVzaSksJXhtbTUKKwltb3ZkcXUJKCVlc2kpLCV4bW0yCisJbW92ZHF1CTY0KCVlc2kpLCV4bW03CisJbGVhbAkxNiglZXNpKSwlZXNpCisJcHhvcgkleG1tMCwleG1tNAorCW1vdmRxYQkoJWVieCksJXhtbTAKKwlweG9yCSV4bW0xLCV4bW01CisJbW92ZHFhCTE2KCVlYngpLCV4bW0xCisJcHhvcgkleG1tMiwleG1tNgorCW1vdmRxYQkzMiglZWJ4KSwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTcKKwltb3ZkcWEJNDgoJWVieCksJXhtbTMKKwltb3ZkcXUJJXhtbTQsLTEyOCglZWRpKQorCW1vdmRxdQkleG1tNSwtNjQoJWVkaSkKKwltb3ZkcXUJJXhtbTYsKCVlZGkpCisJbW92ZHF1CSV4bW03LDY0KCVlZGkpCisJbGVhbAkxNiglZWRpKSwlZWRpCisJcGFkZGQJKCVlYnApLCV4bW0wCisJcGFkZGQJMTYoJWVicCksJXhtbTEKKwlwYWRkZAkzMiglZWJwKSwleG1tMgorCXBhZGRkCTQ4KCVlYnApLCV4bW0zCisJbW92ZHFhCSV4bW0wLCV4bW02CisJcHVucGNrbGRxCSV4bW0xLCV4bW0wCisJbW92ZHFhCSV4bW0yLCV4bW03CisJcHVucGNrbGRxCSV4bW0zLCV4bW0yCisJcHVucGNraGRxCSV4bW0xLCV4bW02CisJcHVucGNraGRxCSV4bW0zLCV4bW03CisJbW92ZHFhCSV4bW0wLCV4bW0xCisJcHVucGNrbHFkcQkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNiwleG1tMworCXB1bnBja2xxZHEJJXhtbTcsJXhtbTYKKwlwdW5wY2tocWRxCSV4bW0yLCV4bW0xCisJcHVucGNraHFkcQkleG1tNywleG1tMworCW1vdmRxdQktMTI4KCVlc2kpLCV4bW00CisJbW92ZHF1CS02NCglZXNpKSwleG1tNQorCW1vdmRxdQkoJWVzaSksJXhtbTIKKwltb3ZkcXUJNjQoJWVzaSksJXhtbTcKKwlsZWFsCTE2KCVlc2kpLCVlc2kKKwlweG9yCSV4bW0wLCV4bW00CisJbW92ZHFhCTY0KCVlYngpLCV4bW0wCisJcHhvcgkleG1tMSwleG1tNQorCW1vdmRxYQk4MCglZWJ4KSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTYKKwltb3ZkcWEJOTYoJWVieCksJXhtbTIKKwlweG9yCSV4bW0zLCV4bW03CisJbW92ZHFhCTExMiglZWJ4KSwleG1tMworCW1vdmRxdQkleG1tNCwtMTI4KCVlZGkpCisJbW92ZHF1CSV4bW01LC02NCglZWRpKQorCW1vdmRxdQkleG1tNiwoJWVkaSkKKwltb3ZkcXUJJXhtbTcsNjQoJWVkaSkKKwlsZWFsCTE2KCVlZGkpLCVlZGkKKwlwYWRkZAk2NCglZWJwKSwleG1tMAorCXBhZGRkCTgwKCVlYnApLCV4bW0xCisJcGFkZGQJOTYoJWVicCksJXhtbTIKKwlwYWRkZAkxMTIoJWVicCksJXhtbTMKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKwlwdW5wY2tsZHEJJXhtbTEsJXhtbTAKKwltb3ZkcWEJJXhtbTIsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTMsJXhtbTIKKwlwdW5wY2toZHEJJXhtbTEsJXhtbTYKKwlwdW5wY2toZHEJJXhtbTMsJXhtbTcKKwltb3ZkcWEJJXhtbTAsJXhtbTEKKwlwdW5wY2tscWRxCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHVucGNrbHFkcQkleG1tNywleG1tNgorCXB1bnBja2hxZHEJJXhtbTIsJXhtbTEKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0zCisJbW92ZHF1CS0xMjgoJWVzaSksJXhtbTQKKwltb3ZkcXUJLTY0KCVlc2kpLCV4bW01CisJbW92ZHF1CSglZXNpKSwleG1tMgorCW1vdmRxdQk2NCglZXNpKSwleG1tNworCWxlYWwJMjA4KCVlc2kpLCVlc2kKKwlweG9yCSV4bW0wLCV4bW00CisJcHhvcgkleG1tMSwleG1tNQorCXB4b3IJJXhtbTIsJXhtbTYKKwlweG9yCSV4bW0zLCV4bW03CisJbW92ZHF1CSV4bW00LC0xMjgoJWVkaSkKKwltb3ZkcXUJJXhtbTUsLTY0KCVlZGkpCisJbW92ZHF1CSV4bW02LCglZWRpKQorCW1vdmRxdQkleG1tNyw2NCglZWRpKQorCWxlYWwJMjA4KCVlZGkpLCVlZGkKKwlzdWJsCSQyNTYsJWVjeAorCWpuYwkuTDAwOW91dGVyX2xvb3AKKwlhZGRsCSQyNTYsJWVjeAorCWp6CS5MMDExZG9uZQorCW1vdmwJNTIwKCVlc3ApLCVlYngKKwlsZWFsCS0xMjgoJWVzaSksJWVzaQorCW1vdmwJNTE2KCVlc3ApLCVlZHgKKwlsZWFsCS0xMjgoJWVkaSksJWVkaQorCW1vdmQJNjQoJWVicCksJXhtbTIKKwltb3ZkcXUJKCVlYngpLCV4bW0zCisJcGFkZGQJOTYoJWVheCksJXhtbTIKKwlwYW5kCTExMiglZWF4KSwleG1tMworCXBvcgkleG1tMiwleG1tMworLkwwMDgxeDoKKwltb3ZkcWEJMzIoJWVheCksJXhtbTAKKwltb3ZkcXUJKCVlZHgpLCV4bW0xCisJbW92ZHF1CTE2KCVlZHgpLCV4bW0yCisJbW92ZHFhCSglZWF4KSwleG1tNgorCW1vdmRxYQkxNiglZWF4KSwleG1tNworCW1vdmwJJWVicCw0OCglZXNwKQorCW1vdmRxYQkleG1tMCwoJWVzcCkKKwltb3ZkcWEJJXhtbTEsMTYoJWVzcCkKKwltb3ZkcWEJJXhtbTIsMzIoJWVzcCkKKwltb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwltb3ZsCSQxMCwlZWR4CisJam1wCS5MMDEybG9vcDF4CisuYWxpZ24JMTYKKy5MMDEzb3V0ZXIxeDoKKwltb3ZkcWEJODAoJWVheCksJXhtbTMKKwltb3ZkcWEJKCVlc3ApLCV4bW0wCisJbW92ZHFhCTE2KCVlc3ApLCV4bW0xCisJbW92ZHFhCTMyKCVlc3ApLCV4bW0yCisJcGFkZGQJNDgoJWVzcCksJXhtbTMKKwltb3ZsCSQxMCwlZWR4CisJbW92ZHFhCSV4bW0zLDQ4KCVlc3ApCisJam1wCS5MMDEybG9vcDF4CisuYWxpZ24JMTYKKy5MMDEybG9vcDF4OgorCXBhZGRkCSV4bW0xLCV4bW0wCisJcHhvcgkleG1tMCwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjIyCisJcGFkZGQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW00CisJcHNybGQJJDIwLCV4bW0xCisJcHNsbGQJJDEyLCV4bW00CisJcG9yCSV4bW00LCV4bW0xCisJcGFkZGQJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW0wLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjMKKwlwYWRkZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwlwc3JsZAkkMjUsJXhtbTEKKwlwc2xsZAkkNywleG1tNAorCXBvcgkleG1tNCwleG1tMQorCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTIKKwlwc2h1ZmQJJDU3LCV4bW0xLCV4bW0xCisJcHNodWZkCSQxNDcsJXhtbTMsJXhtbTMKKwlub3AKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyMCwleG1tMQorCXBzbGxkCSQxMiwleG1tNAorCXBvcgkleG1tNCwleG1tMQorCXBhZGRkCSV4bW0xLCV4bW0wCisJcHhvcgkleG1tMCwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW00CisJcHNybGQJJDI1LCV4bW0xCisJcHNsbGQJJDcsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwc2h1ZmQJJDc4LCV4bW0yLCV4bW0yCisJcHNodWZkCSQxNDcsJXhtbTEsJXhtbTEKKwlwc2h1ZmQJJDU3LCV4bW0zLCV4bW0zCisJZGVjbAklZWR4CisJam56CS5MMDEybG9vcDF4CisJcGFkZGQJKCVlc3ApLCV4bW0wCisJcGFkZGQJMTYoJWVzcCksJXhtbTEKKwlwYWRkZAkzMiglZXNwKSwleG1tMgorCXBhZGRkCTQ4KCVlc3ApLCV4bW0zCisJY21wbAkkNjQsJWVjeAorCWpiCS5MMDE0dGFpbAorCW1vdmRxdQkoJWVzaSksJXhtbTQKKwltb3ZkcXUJMTYoJWVzaSksJXhtbTUKKwlweG9yCSV4bW00LCV4bW0wCisJbW92ZHF1CTMyKCVlc2kpLCV4bW00CisJcHhvcgkleG1tNSwleG1tMQorCW1vdmRxdQk0OCglZXNpKSwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTIKKwlweG9yCSV4bW01LCV4bW0zCisJbGVhbAk2NCglZXNpKSwlZXNpCisJbW92ZHF1CSV4bW0wLCglZWRpKQorCW1vdmRxdQkleG1tMSwxNiglZWRpKQorCW1vdmRxdQkleG1tMiwzMiglZWRpKQorCW1vdmRxdQkleG1tMyw0OCglZWRpKQorCWxlYWwJNjQoJWVkaSksJWVkaQorCXN1YmwJJDY0LCVlY3gKKwlqbnoJLkwwMTNvdXRlcjF4CisJam1wCS5MMDExZG9uZQorLkwwMTR0YWlsOgorCW1vdmRxYQkleG1tMCwoJWVzcCkKKwltb3ZkcWEJJXhtbTEsMTYoJWVzcCkKKwltb3ZkcWEJJXhtbTIsMzIoJWVzcCkKKwltb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwl4b3JsCSVlYXgsJWVheAorCXhvcmwJJWVkeCwlZWR4CisJeG9ybAklZWJwLCVlYnAKKy5MMDE1dGFpbF9sb29wOgorCW1vdmIJKCVlc3AsJWVicCwxKSwlYWwKKwltb3ZiCSglZXNpLCVlYnAsMSksJWRsCisJbGVhbAkxKCVlYnApLCVlYnAKKwl4b3JiCSVkbCwlYWwKKwltb3ZiCSVhbCwtMSglZWRpLCVlYnAsMSkKKwlkZWNsCSVlY3gKKwlqbnoJLkwwMTV0YWlsX2xvb3AKKy5MMDExZG9uZToKKwltb3ZsCTUxMiglZXNwKSwlZXNwCisJcG9wbAklZWRpCisJcG9wbAklZXNpCisJcG9wbAklZWJ4CisJcG9wbAklZWJwCisJcmV0Cisuc2l6ZQlDaGFDaGEyMF9zc3NlMywuLS5MX0NoYUNoYTIwX3Nzc2UzX2JlZ2luCisuYWxpZ24JNjQKKy5Mc3NzZTNfZGF0YToKKy5ieXRlCTIsMywwLDEsNiw3LDQsNSwxMCwxMSw4LDksMTQsMTUsMTIsMTMKKy5ieXRlCTMsMCwxLDIsNyw0LDUsNiwxMSw4LDksMTAsMTUsMTIsMTMsMTQKKy5sb25nCTE2MzQ3NjA4MDUsODU3NzYwODc4LDIwMzY0NzcyMzQsMTc5NzI4NTIzNgorLmxvbmcJMCwxLDIsMworLmxvbmcJNCw0LDQsNAorLmxvbmcJMSwwLDAsMAorLmxvbmcJNCwwLDAsMAorLmxvbmcJMCwtMSwtMSwtMQorLmFsaWduCTY0CisuYnl0ZQk2NywxMDQsOTcsNjcsMTA0LDk3LDUwLDQ4LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NAorLmJ5dGUJNDQsMzIsNjcsODIsODksODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyCisuYnl0ZQk2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMQorLmJ5dGUJMTE0LDEwMyw2MiwwCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2NwdS14ODYtYXNtLlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9jcHUteDg2LWFzbS5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNGE4ZGQ0Li4wMDAwMDAwCi0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL2NwdS14ODYtYXNtLlMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjIgKzAsMCBAQAotI2lmIGRlZmluZWQoX19pMzg2X18pCi0uZmlsZQkiY3J5cHRvL2NwdS14ODYtYXNtLlMiCi0udGV4dAotLmdsb2JsCU9QRU5TU0xfaWEzMl9jcHVpZAotLmhpZGRlbglPUEVOU1NMX2lhMzJfY3B1aWQKLS50eXBlCU9QRU5TU0xfaWEzMl9jcHVpZCxAZnVuY3Rpb24KLS5hbGlnbgkxNgotT1BFTlNTTF9pYTMyX2NwdWlkOgotLkxfT1BFTlNTTF9pYTMyX2NwdWlkX2JlZ2luOgotCXB1c2hsCSVlYnAKLQlwdXNobAklZWJ4Ci0JcHVzaGwJJWVzaQotCXB1c2hsCSVlZGkKLQl4b3JsCSVlZHgsJWVkeAotCXB1c2hmbAotCXBvcGwJJWVheAotCW1vdmwJJWVheCwlZWN4Ci0JeG9ybAkkMjA5NzE1MiwlZWF4Ci0JcHVzaGwJJWVheAotCXBvcGZsCi0JcHVzaGZsCi0JcG9wbAklZWF4Ci0JeG9ybAklZWF4LCVlY3gKLQl4b3JsCSVlYXgsJWVheAotCWJ0bAkkMjEsJWVjeAotCWpuYwkuTDAwMG5vY3B1aWQKLQltb3ZsCTIwKCVlc3ApLCVlc2kKLQltb3ZsCSVlYXgsOCglZXNpKQotCS5ieXRlCTB4MGYsMHhhMgotCW1vdmwJJWVheCwlZWRpCi0JeG9ybAklZWF4LCVlYXgKLQljbXBsCSQxOTcwMTY5MTU5LCVlYngKLQlzZXRuZQklYWwKLQltb3ZsCSVlYXgsJWVicAotCWNtcGwJJDEyMzEzODQxNjksJWVkeAotCXNldG5lCSVhbAotCW9ybAklZWF4LCVlYnAKLQljbXBsCSQxODE4NTg4MjcwLCVlY3gKLQlzZXRuZQklYWwKLQlvcmwJJWVheCwlZWJwCi0JanoJLkwwMDFpbnRlbAotCWNtcGwJJDE3NTI0NjI2NTcsJWVieAotCXNldG5lCSVhbAotCW1vdmwJJWVheCwlZXNpCi0JY21wbAkkMTc2OTIzODExNywlZWR4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJWVzaQotCWNtcGwJJDExNDU5MTM2OTksJWVjeAotCXNldG5lCSVhbAotCW9ybAklZWF4LCVlc2kKLQlqbnoJLkwwMDFpbnRlbAotCW1vdmwJJDIxNDc0ODM2NDgsJWVheAotCS5ieXRlCTB4MGYsMHhhMgotCWNtcGwJJDIxNDc0ODM2NDksJWVheAotCWpiCS5MMDAxaW50ZWwKLQltb3ZsCSVlYXgsJWVzaQotCW1vdmwJJDIxNDc0ODM2NDksJWVheAotCS5ieXRlCTB4MGYsMHhhMgotCW9ybAklZWN4LCVlYnAKLQlhbmRsCSQyMDQ5LCVlYnAKLQljbXBsCSQyMTQ3NDgzNjU2LCVlc2kKLQlqYgkuTDAwMWludGVsCi0JbW92bAkkMjE0NzQ4MzY1NiwlZWF4Ci0JLmJ5dGUJMHgwZiwweGEyCi0JbW92emJsCSVjbCwlZXNpCi0JaW5jbAklZXNpCi0JbW92bAkkMSwlZWF4Ci0JeG9ybAklZWN4LCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQlidGwJJDI4LCVlZHgKLQlqbmMJLkwwMDJnZW5lcmljCi0Jc2hybAkkMTYsJWVieAotCWFuZGwJJDI1NSwlZWJ4Ci0JY21wbAklZXNpLCVlYngKLQlqYQkuTDAwMmdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQlqbXAJLkwwMDJnZW5lcmljCi0uTDAwMWludGVsOgotCWNtcGwJJDcsJWVkaQotCWpiCS5MMDAzY2FjaGVpbmZvCi0JbW92bAkyMCglZXNwKSwlZXNpCi0JbW92bAkkNywlZWF4Ci0JeG9ybAklZWN4LCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQltb3ZsCSVlYngsOCglZXNpKQotLkwwMDNjYWNoZWluZm86Ci0JY21wbAkkNCwlZWRpCi0JbW92bAkkLTEsJWVkaQotCWpiCS5MMDA0bm9jYWNoZWluZm8KLQltb3ZsCSQ0LCVlYXgKLQltb3ZsCSQwLCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQltb3ZsCSVlYXgsJWVkaQotCXNocmwJJDE0LCVlZGkKLQlhbmRsCSQ0MDk1LCVlZGkKLS5MMDA0bm9jYWNoZWluZm86Ci0JbW92bAkkMSwlZWF4Ci0JeG9ybAklZWN4LCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQlhbmRsCSQzMjIwMTc2ODk1LCVlZHgKLQljbXBsCSQwLCVlYnAKLQlqbmUJLkwwMDVub3RpbnRlbAotCW9ybAkkMTA3Mzc0MTgyNCwlZWR4Ci0uTDAwNW5vdGludGVsOgotCWJ0bAkkMjgsJWVkeAotCWpuYwkuTDAwMmdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQljbXBsCSQwLCVlZGkKLQlqZQkuTDAwMmdlbmVyaWMKLQlvcmwJJDI2ODQzNTQ1NiwlZWR4Ci0Jc2hybAkkMTYsJWVieAotCWNtcGIJJDEsJWJsCi0JamEJLkwwMDJnZW5lcmljCi0JYW5kbAkkNDAyNjUzMTgzOSwlZWR4Ci0uTDAwMmdlbmVyaWM6Ci0JYW5kbAkkMjA0OCwlZWJwCi0JYW5kbAkkNDI5NDk2NTI0NywlZWN4Ci0JbW92bAklZWR4LCVlc2kKLQlvcmwJJWVjeCwlZWJwCi0JYnRsCSQyNywlZWN4Ci0Jam5jCS5MMDA2Y2xlYXJfYXZ4Ci0JeG9ybAklZWN4LCVlY3gKLS5ieXRlCTE1LDEsMjA4Ci0JYW5kbAkkNiwlZWF4Ci0JY21wbAkkNiwlZWF4Ci0JamUJLkwwMDdkb25lCi0JY21wbAkkMiwlZWF4Ci0JamUJLkwwMDZjbGVhcl9hdngKLS5MMDA4Y2xlYXJfeG1tOgotCWFuZGwJJDQyNjE0MTI4NjEsJWVicAotCWFuZGwJJDQyNzgxOTAwNzksJWVzaQotLkwwMDZjbGVhcl9hdng6Ci0JYW5kbAkkNDAyNjUyNTY5NSwlZWJwCi0JbW92bAkyMCglZXNwKSwlZWRpCi0JYW5kbAkkNDI5NDk2NzI2Myw4KCVlZGkpCi0uTDAwN2RvbmU6Ci0JbW92bAklZXNpLCVlYXgKLQltb3ZsCSVlYnAsJWVkeAotLkwwMDBub2NwdWlkOgotCXBvcGwJJWVkaQotCXBvcGwJJWVzaQotCXBvcGwJJWVieAotCXBvcGwJJWVicAotCXJldAotLnNpemUJT1BFTlNTTF9pYTMyX2NwdWlkLC4tLkxfT1BFTlNTTF9pYTMyX2NwdWlkX2JlZ2luCi0uZ2xvYmwJT1BFTlNTTF9yZHRzYwotLmhpZGRlbglPUEVOU1NMX3JkdHNjCi0udHlwZQlPUEVOU1NMX3JkdHNjLEBmdW5jdGlvbgotLmFsaWduCTE2Ci1PUEVOU1NMX3JkdHNjOgotLkxfT1BFTlNTTF9yZHRzY19iZWdpbjoKLQl4b3JsCSVlYXgsJWVheAotCXhvcmwJJWVkeCwlZWR4Ci0JY2FsbAkuTDAwOVBJQ19tZV91cAotLkwwMDlQSUNfbWVfdXA6Ci0JcG9wbAklZWN4Ci0JbGVhbAlPUEVOU1NMX2lhMzJjYXBfUC0uTDAwOVBJQ19tZV91cCglZWN4KSwlZWN4Ci0JYnRsCSQ0LCglZWN4KQotCWpuYwkuTDAxMG5vdHNjCi0JLmJ5dGUJMHgwZiwweDMxCi0uTDAxMG5vdHNjOgotCXJldAotLnNpemUJT1BFTlNTTF9yZHRzYywuLS5MX09QRU5TU0xfcmR0c2NfYmVnaW4KLS5nbG9ibAlPUEVOU1NMX2luc3RydW1lbnRfaGFsdAotLmhpZGRlbglPUEVOU1NMX2luc3RydW1lbnRfaGFsdAotLnR5cGUJT1BFTlNTTF9pbnN0cnVtZW50X2hhbHQsQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLU9QRU5TU0xfaW5zdHJ1bWVudF9oYWx0OgotLkxfT1BFTlNTTF9pbnN0cnVtZW50X2hhbHRfYmVnaW46Ci0JY2FsbAkuTDAxMVBJQ19tZV91cAotLkwwMTFQSUNfbWVfdXA6Ci0JcG9wbAklZWN4Ci0JbGVhbAlPUEVOU1NMX2lhMzJjYXBfUC0uTDAxMVBJQ19tZV91cCglZWN4KSwlZWN4Ci0JYnRsCSQ0LCglZWN4KQotCWpuYwkuTDAxMm5vaGFsdAotLmxvbmcJMjQyMTcyMzE1MAotCWFuZGwJJDMsJWVheAotCWpuegkuTDAxMm5vaGFsdAotCXB1c2hmbAotCXBvcGwJJWVheAotCWJ0bAkkOSwlZWF4Ci0Jam5jCS5MMDEybm9oYWx0Ci0JLmJ5dGUJMHgwZiwweDMxCi0JcHVzaGwJJWVkeAotCXB1c2hsCSVlYXgKLQlobHQKLQkuYnl0ZQkweDBmLDB4MzEKLQlzdWJsCSglZXNwKSwlZWF4Ci0Jc2JibAk0KCVlc3ApLCVlZHgKLQlhZGRsCSQ4LCVlc3AKLQlyZXQKLS5MMDEybm9oYWx0OgotCXhvcmwJJWVheCwlZWF4Ci0JeG9ybAklZWR4LCVlZHgKLQlyZXQKLS5zaXplCU9QRU5TU0xfaW5zdHJ1bWVudF9oYWx0LC4tLkxfT1BFTlNTTF9pbnN0cnVtZW50X2hhbHRfYmVnaW4KLS5nbG9ibAlPUEVOU1NMX2Zhcl9zcGluCi0uaGlkZGVuCU9QRU5TU0xfZmFyX3NwaW4KLS50eXBlCU9QRU5TU0xfZmFyX3NwaW4sQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLU9QRU5TU0xfZmFyX3NwaW46Ci0uTF9PUEVOU1NMX2Zhcl9zcGluX2JlZ2luOgotCXB1c2hmbAotCXBvcGwJJWVheAotCWJ0bAkkOSwlZWF4Ci0Jam5jCS5MMDEzbm9zcGluCi0JbW92bAk0KCVlc3ApLCVlYXgKLQltb3ZsCTgoJWVzcCksJWVjeAotLmxvbmcJMjQzMDExMTI2MgotCXhvcmwJJWVheCwlZWF4Ci0JbW92bAkoJWVjeCksJWVkeAotCWptcAkuTDAxNHNwaW4KLS5hbGlnbgkxNgotLkwwMTRzcGluOgotCWluY2wJJWVheAotCWNtcGwJKCVlY3gpLCVlZHgKLQlqZQkuTDAxNHNwaW4KLS5sb25nCTUyOTU2Nzg4OAotCXJldAotLkwwMTNub3NwaW46Ci0JeG9ybAklZWF4LCVlYXgKLQl4b3JsCSVlZHgsJWVkeAotCXJldAotLnNpemUJT1BFTlNTTF9mYXJfc3BpbiwuLS5MX09QRU5TU0xfZmFyX3NwaW5fYmVnaW4KLS5nbG9ibAlPUEVOU1NMX3dpcGVfY3B1Ci0uaGlkZGVuCU9QRU5TU0xfd2lwZV9jcHUKLS50eXBlCU9QRU5TU0xfd2lwZV9jcHUsQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLU9QRU5TU0xfd2lwZV9jcHU6Ci0uTF9PUEVOU1NMX3dpcGVfY3B1X2JlZ2luOgotCXhvcmwJJWVheCwlZWF4Ci0JeG9ybAklZWR4LCVlZHgKLQljYWxsCS5MMDE1UElDX21lX3VwCi0uTDAxNVBJQ19tZV91cDoKLQlwb3BsCSVlY3gKLQlsZWFsCU9QRU5TU0xfaWEzMmNhcF9QLS5MMDE1UElDX21lX3VwKCVlY3gpLCVlY3gKLQltb3ZsCSglZWN4KSwlZWN4Ci0JYnRsCSQxLCglZWN4KQotCWpuYwkuTDAxNm5vX3g4NwotCWFuZGwJJDgzODg2MDgwLCVlY3gKLQljbXBsCSQ4Mzg4NjA4MCwlZWN4Ci0Jam5lCS5MMDE3bm9fc3NlMgotCXB4b3IJJXhtbTAsJXhtbTAKLQlweG9yCSV4bW0xLCV4bW0xCi0JcHhvcgkleG1tMiwleG1tMgotCXB4b3IJJXhtbTMsJXhtbTMKLQlweG9yCSV4bW00LCV4bW00Ci0JcHhvcgkleG1tNSwleG1tNQotCXB4b3IJJXhtbTYsJXhtbTYKLQlweG9yCSV4bW03LCV4bW03Ci0uTDAxN25vX3NzZTI6Ci0ubG9uZwk0MDA3MjU5ODY1LDQwMDcyNTk4NjUsNDAwNzI1OTg2NSw0MDA3MjU5ODY1LDI0MzA4NTE5OTUKLS5MMDE2bm9feDg3OgotCWxlYWwJNCglZXNwKSwlZWF4Ci0JcmV0Ci0uc2l6ZQlPUEVOU1NMX3dpcGVfY3B1LC4tLkxfT1BFTlNTTF93aXBlX2NwdV9iZWdpbgotLmdsb2JsCU9QRU5TU0xfYXRvbWljX2FkZAotLmhpZGRlbglPUEVOU1NMX2F0b21pY19hZGQKLS50eXBlCU9QRU5TU0xfYXRvbWljX2FkZCxAZnVuY3Rpb24KLS5hbGlnbgkxNgotT1BFTlNTTF9hdG9taWNfYWRkOgotLkxfT1BFTlNTTF9hdG9taWNfYWRkX2JlZ2luOgotCW1vdmwJNCglZXNwKSwlZWR4Ci0JbW92bAk4KCVlc3ApLCVlY3gKLQlwdXNobAklZWJ4Ci0Jbm9wCi0JbW92bAkoJWVkeCksJWVheAotLkwwMThzcGluOgotCWxlYWwJKCVlYXgsJWVjeCwxKSwlZWJ4Ci0Jbm9wCi0ubG9uZwk0NDc4MTE1NjgKLQlqbmUJLkwwMThzcGluCi0JbW92bAklZWJ4LCVlYXgKLQlwb3BsCSVlYngKLQlyZXQKLS5zaXplCU9QRU5TU0xfYXRvbWljX2FkZCwuLS5MX09QRU5TU0xfYXRvbWljX2FkZF9iZWdpbgotLmdsb2JsCU9QRU5TU0xfaW5kaXJlY3RfY2FsbAotLmhpZGRlbglPUEVOU1NMX2luZGlyZWN0X2NhbGwKLS50eXBlCU9QRU5TU0xfaW5kaXJlY3RfY2FsbCxAZnVuY3Rpb24KLS5hbGlnbgkxNgotT1BFTlNTTF9pbmRpcmVjdF9jYWxsOgotLkxfT1BFTlNTTF9pbmRpcmVjdF9jYWxsX2JlZ2luOgotCXB1c2hsCSVlYnAKLQltb3ZsCSVlc3AsJWVicAotCXN1YmwJJDI4LCVlc3AKLQltb3ZsCTEyKCVlYnApLCVlY3gKLQltb3ZsCSVlY3gsKCVlc3ApCi0JbW92bAkxNiglZWJwKSwlZWR4Ci0JbW92bAklZWR4LDQoJWVzcCkKLQltb3ZsCTIwKCVlYnApLCVlYXgKLQltb3ZsCSVlYXgsOCglZXNwKQotCW1vdmwJMjQoJWVicCksJWVheAotCW1vdmwJJWVheCwxMiglZXNwKQotCW1vdmwJMjgoJWVicCksJWVheAotCW1vdmwJJWVheCwxNiglZXNwKQotCW1vdmwJMzIoJWVicCksJWVheAotCW1vdmwJJWVheCwyMCglZXNwKQotCW1vdmwJMzYoJWVicCksJWVheAotCW1vdmwJJWVheCwyNCglZXNwKQotCWNhbGwJKjgoJWVicCkKLQltb3ZsCSVlYnAsJWVzcAotCXBvcGwJJWVicAotCXJldAotLnNpemUJT1BFTlNTTF9pbmRpcmVjdF9jYWxsLC4tLkxfT1BFTlNTTF9pbmRpcmVjdF9jYWxsX2JlZ2luCi0uZ2xvYmwJT1BFTlNTTF9pYTMyX3JkcmFuZAotLmhpZGRlbglPUEVOU1NMX2lhMzJfcmRyYW5kCi0udHlwZQlPUEVOU1NMX2lhMzJfcmRyYW5kLEBmdW5jdGlvbgotLmFsaWduCTE2Ci1PUEVOU1NMX2lhMzJfcmRyYW5kOgotLkxfT1BFTlNTTF9pYTMyX3JkcmFuZF9iZWdpbjoKLQltb3ZsCSQ4LCVlY3gKLS5MMDE5bG9vcDoKLS5ieXRlCTE1LDE5OSwyNDAKLQlqYwkuTDAyMGJyZWFrCi0JbG9vcAkuTDAxOWxvb3AKLS5MMDIwYnJlYWs6Ci0JY21wbAkkMCwlZWF4Ci0JY21vdmVsCSVlY3gsJWVheAotCXJldAotLnNpemUJT1BFTlNTTF9pYTMyX3JkcmFuZCwuLS5MX09QRU5TU0xfaWEzMl9yZHJhbmRfYmVnaW4KLS5oaWRkZW4JT1BFTlNTTF9pYTMyY2FwX1AKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMKaW5kZXggYTVjY2U0Ny4uZDI0NTU4OSAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9yYzQvcmM0LTU4Ni5TCkBAIC0zNDcsMzkgKzM0Nyw0IEBACiAJcG9wbAklZWJwCiAJcmV0CiAuc2l6ZQlhc21fUkM0X3NldF9rZXksLi0uTF9hc21fUkM0X3NldF9rZXlfYmVnaW4KLS5nbG9ibAlSQzRfb3B0aW9ucwotLmhpZGRlbglSQzRfb3B0aW9ucwotLnR5cGUJUkM0X29wdGlvbnMsQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLVJDNF9vcHRpb25zOgotLkxfUkM0X29wdGlvbnNfYmVnaW46Ci0JY2FsbAkuTDAxOHBpY19wb2ludAotLkwwMThwaWNfcG9pbnQ6Ci0JcG9wbAklZWF4Ci0JbGVhbAkuTDAxOW9wdHMtLkwwMThwaWNfcG9pbnQoJWVheCksJWVheAotCWNhbGwJLkwwMjBQSUNfbWVfdXAKLS5MMDIwUElDX21lX3VwOgotCXBvcGwJJWVkeAotCWxlYWwJT1BFTlNTTF9pYTMyY2FwX1AtLkwwMjBQSUNfbWVfdXAoJWVkeCksJWVkeAotCW1vdmwJKCVlZHgpLCVlZHgKLQlidGwJJDIwLCVlZHgKLQlqYwkuTDAyMTF4Y2hhcgotCWJ0bAkkMjYsJWVkeAotCWpuYwkuTDAyMnJldAotCWFkZGwJJDI1LCVlYXgKLQlyZXQKLS5MMDIxMXhjaGFyOgotCWFkZGwJJDEyLCVlYXgKLS5MMDIycmV0OgotCXJldAotLmFsaWduCTY0Ci0uTDAxOW9wdHM6Ci0uYnl0ZQkxMTQsOTksNTIsNDAsNTIsMTIwLDQ0LDEwNSwxMTAsMTE2LDQxLDAKLS5ieXRlCTExNCw5OSw1Miw0MCw0OSwxMjAsNDQsOTksMTA0LDk3LDExNCw0MSwwCi0uYnl0ZQkxMTQsOTksNTIsNDAsNTYsMTIwLDQ0LDEwOSwxMDksMTIwLDQxLDAKLS5ieXRlCTgyLDY3LDUyLDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw0NCwzMiw2Nyw4Miw4OQotLmJ5dGUJODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0Ci0uYnl0ZQkxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKLS5hbGlnbgk2NAotLnNpemUJUkM0X29wdGlvbnMsLi0uTF9SQzRfb3B0aW9uc19iZWdpbgogI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9zaGEvc2hhMS01ODYuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5TCmluZGV4IDgwOGNjYWMuLjU4ZDBiYzEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5TCkBAIC0yMyw4ICsyMywxMSBAQAogCW1vdmwJOCglZXNpKSwlZWN4CiAJdGVzdGwJJDE2Nzc3MjE2LCVlYXgKIAlqegkuTDAwMXg4NgotCXRlc3RsCSQ1MzY4NzA5MTIsJWVjeAotCWpuegkuTHNoYWV4dF9zaG9ydGN1dAorCWFuZGwJJDI2ODQzNTQ1NiwlZWR4CisJYW5kbAkkMTA3Mzc0MTgyNCwlZWF4CisJb3JsCSVlZHgsJWVheAorCWNtcGwJJDEzNDIxNzcyODAsJWVheAorCWplCS5MYXZ4X3Nob3J0Y3V0CiAJam1wCS5Mc3NzZTNfc2hvcnRjdXQKIC5hbGlnbgkxNgogLkwwMDF4ODY6CkBAIC0xMzkzLDE3NyArMTM5Niw2IEBACiAJcG9wbAklZWJwCiAJcmV0CiAuc2l6ZQlzaGExX2Jsb2NrX2RhdGFfb3JkZXIsLi0uTF9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYmVnaW4KLS5oaWRkZW4JX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zaGFleHQKLS50eXBlCV9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc2hhZXh0LEBmdW5jdGlvbgotLmFsaWduCTE2Ci1fc2hhMV9ibG9ja19kYXRhX29yZGVyX3NoYWV4dDoKLQlwdXNobAklZWJwCi0JcHVzaGwJJWVieAotCXB1c2hsCSVlc2kKLQlwdXNobAklZWRpCi0JY2FsbAkuTDAwM3BpY19wb2ludAotLkwwMDNwaWNfcG9pbnQ6Ci0JcG9wbAklZWJwCi0JbGVhbAkuTEtfWFhfWFgtLkwwMDNwaWNfcG9pbnQoJWVicCksJWVicAotLkxzaGFleHRfc2hvcnRjdXQ6Ci0JbW92bAkyMCglZXNwKSwlZWRpCi0JbW92bAklZXNwLCVlYngKLQltb3ZsCTI0KCVlc3ApLCVlc2kKLQltb3ZsCTI4KCVlc3ApLCVlY3gKLQlzdWJsCSQzMiwlZXNwCi0JbW92ZHF1CSglZWRpKSwleG1tMAotCW1vdmQJMTYoJWVkaSksJXhtbTEKLQlhbmRsCSQtMzIsJWVzcAotCW1vdmRxYQk4MCglZWJwKSwleG1tMwotCW1vdmRxdQkoJWVzaSksJXhtbTQKLQlwc2h1ZmQJJDI3LCV4bW0wLCV4bW0wCi0JbW92ZHF1CTE2KCVlc2kpLCV4bW01Ci0JcHNodWZkCSQyNywleG1tMSwleG1tMQotCW1vdmRxdQkzMiglZXNpKSwleG1tNgotLmJ5dGUJMTAyLDE1LDU2LDAsMjI3Ci0JbW92ZHF1CTQ4KCVlc2kpLCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMzUKLS5ieXRlCTEwMiwxNSw1NiwwLDI0MwotLmJ5dGUJMTAyLDE1LDU2LDAsMjUxCi0Jam1wCS5MMDA0bG9vcF9zaGFleHQKLS5hbGlnbgkxNgotLkwwMDRsb29wX3NoYWV4dDoKLQlkZWNsCSVlY3gKLQlsZWFsCTY0KCVlc2kpLCVlYXgKLQltb3ZkcWEJJXhtbTEsKCVlc3ApCi0JcGFkZGQJJXhtbTQsJXhtbTEKLQljbW92bmVsCSVlYXgsJWVzaQotCW1vdmRxYQkleG1tMCwxNiglZXNwKQotLmJ5dGUJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywwCi0uYnl0ZQkxNSw1NiwyMDAsMjEzCi0JcHhvcgkleG1tNiwleG1tNAotLmJ5dGUJMTUsNTYsMjAxLDIzOAotLmJ5dGUJMTUsNTYsMjAyLDIzMQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwwCi0uYnl0ZQkxNSw1NiwyMDAsMjA2Ci0JcHhvcgkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjAyLDIzNgotLmJ5dGUJMTUsNTYsMjAxLDI0NwotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywwCi0uYnl0ZQkxNSw1NiwyMDAsMjE1Ci0JcHhvcgkleG1tNCwleG1tNgotLmJ5dGUJMTUsNTYsMjAxLDI1MgotLmJ5dGUJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwwCi0uYnl0ZQkxNSw1NiwyMDAsMjA0Ci0JcHhvcgkleG1tNSwleG1tNwotLmJ5dGUJMTUsNTYsMjAyLDI1NAotLmJ5dGUJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywwCi0uYnl0ZQkxNSw1NiwyMDAsMjEzCi0JcHhvcgkleG1tNiwleG1tNAotLmJ5dGUJMTUsNTYsMjAxLDIzOAotLmJ5dGUJMTUsNTYsMjAyLDIzMQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwxCi0uYnl0ZQkxNSw1NiwyMDAsMjA2Ci0JcHhvcgkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjAyLDIzNgotLmJ5dGUJMTUsNTYsMjAxLDI0NwotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywxCi0uYnl0ZQkxNSw1NiwyMDAsMjE1Ci0JcHhvcgkleG1tNCwleG1tNgotLmJ5dGUJMTUsNTYsMjAxLDI1MgotLmJ5dGUJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwxCi0uYnl0ZQkxNSw1NiwyMDAsMjA0Ci0JcHhvcgkleG1tNSwleG1tNwotLmJ5dGUJMTUsNTYsMjAyLDI1NAotLmJ5dGUJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywxCi0uYnl0ZQkxNSw1NiwyMDAsMjEzCi0JcHhvcgkleG1tNiwleG1tNAotLmJ5dGUJMTUsNTYsMjAxLDIzOAotLmJ5dGUJMTUsNTYsMjAyLDIzMQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwxCi0uYnl0ZQkxNSw1NiwyMDAsMjA2Ci0JcHhvcgkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjAyLDIzNgotLmJ5dGUJMTUsNTYsMjAxLDI0NwotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywyCi0uYnl0ZQkxNSw1NiwyMDAsMjE1Ci0JcHhvcgkleG1tNCwleG1tNgotLmJ5dGUJMTUsNTYsMjAxLDI1MgotLmJ5dGUJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwyCi0uYnl0ZQkxNSw1NiwyMDAsMjA0Ci0JcHhvcgkleG1tNSwleG1tNwotLmJ5dGUJMTUsNTYsMjAyLDI1NAotLmJ5dGUJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywyCi0uYnl0ZQkxNSw1NiwyMDAsMjEzCi0JcHhvcgkleG1tNiwleG1tNAotLmJ5dGUJMTUsNTYsMjAxLDIzOAotLmJ5dGUJMTUsNTYsMjAyLDIzMQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwyCi0uYnl0ZQkxNSw1NiwyMDAsMjA2Ci0JcHhvcgkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjAyLDIzNgotLmJ5dGUJMTUsNTYsMjAxLDI0NwotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywyCi0uYnl0ZQkxNSw1NiwyMDAsMjE1Ci0JcHhvcgkleG1tNCwleG1tNgotLmJ5dGUJMTUsNTYsMjAxLDI1MgotLmJ5dGUJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwzCi0uYnl0ZQkxNSw1NiwyMDAsMjA0Ci0JcHhvcgkleG1tNSwleG1tNwotLmJ5dGUJMTUsNTYsMjAyLDI1NAotCW1vdmRxdQkoJWVzaSksJXhtbTQKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMwotLmJ5dGUJMTUsNTYsMjAwLDIxMwotCW1vdmRxdQkxNiglZXNpKSwleG1tNQotLmJ5dGUJMTAyLDE1LDU2LDAsMjI3Ci0JbW92ZHFhCSV4bW0wLCV4bW0xCi0uYnl0ZQkxNSw1OCwyMDQsMTk0LDMKLS5ieXRlCTE1LDU2LDIwMCwyMDYKLQltb3ZkcXUJMzIoJWVzaSksJXhtbTYKLS5ieXRlCTEwMiwxNSw1NiwwLDIzNQotCW1vdmRxYQkleG1tMCwleG1tMgotLmJ5dGUJMTUsNTgsMjA0LDE5MywzCi0uYnl0ZQkxNSw1NiwyMDAsMjE1Ci0JbW92ZHF1CTQ4KCVlc2kpLCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyNDMKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMwotCW1vdmRxYQkoJWVzcCksJXhtbTIKLS5ieXRlCTEwMiwxNSw1NiwwLDI1MQotLmJ5dGUJMTUsNTYsMjAwLDIwMgotCXBhZGRkCTE2KCVlc3ApLCV4bW0wCi0Jam56CS5MMDA0bG9vcF9zaGFleHQKLQlwc2h1ZmQJJDI3LCV4bW0wLCV4bW0wCi0JcHNodWZkCSQyNywleG1tMSwleG1tMQotCW1vdmRxdQkleG1tMCwoJWVkaSkKLQltb3ZkCSV4bW0xLDE2KCVlZGkpCi0JbW92bAklZWJ4LCVlc3AKLQlwb3BsCSVlZGkKLQlwb3BsCSVlc2kKLQlwb3BsCSVlYngKLQlwb3BsCSVlYnAKLQlyZXQKLS5zaXplCV9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc2hhZXh0LC4tX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zaGFleHQKIC5oaWRkZW4JX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMwogLnR5cGUJX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyxAZnVuY3Rpb24KIC5hbGlnbgkxNgpAQCAtMTU3MiwxMCArMTQwNCwxMCBAQAogCXB1c2hsCSVlYngKIAlwdXNobAklZXNpCiAJcHVzaGwJJWVkaQotCWNhbGwJLkwwMDVwaWNfcG9pbnQKLS5MMDA1cGljX3BvaW50OgorCWNhbGwJLkwwMDNwaWNfcG9pbnQKKy5MMDAzcGljX3BvaW50OgogCXBvcGwJJWVicAotCWxlYWwJLkxLX1hYX1hYLS5MMDA1cGljX3BvaW50KCVlYnApLCVlYnAKKwlsZWFsCS5MS19YWF9YWC0uTDAwM3BpY19wb2ludCglZWJwKSwlZWJwCiAuTHNzc2UzX3Nob3J0Y3V0OgogCW1vdmRxYQkoJWVicCksJXhtbTcKIAltb3ZkcWEJMTYoJWVicCksJXhtbTAKQEAgLTE2MjgsOSArMTQ2MCw5IEBACiAJeG9ybAklZWR4LCVlYnAKIAlwc2h1ZmQJJDIzOCwleG1tMCwleG1tNAogCWFuZGwJJWVicCwlZXNpCi0Jam1wCS5MMDA2bG9vcAorCWptcAkuTDAwNGxvb3AKIC5hbGlnbgkxNgotLkwwMDZsb29wOgorLkwwMDRsb29wOgogCXJvcmwJJDIsJWVieAogCXhvcmwJJWVkeCwlZXNpCiAJbW92bAklZWF4LCVlYnAKQEAgLTI1MzMsNyArMjM2NSw3IEBACiAJYWRkbAklZWR4LCVlY3gKIAltb3ZsCTE5NiglZXNwKSwlZWJwCiAJY21wbAkyMDAoJWVzcCksJWVicAotCWplCS5MMDA3ZG9uZQorCWplCS5MMDA1ZG9uZQogCW1vdmRxYQkxNjAoJWVzcCksJXhtbTcKIAltb3ZkcWEJMTc2KCVlc3ApLCV4bW02CiAJbW92ZHF1CSglZWJwKSwleG1tMApAQCAtMjY2OCw5ICsyNTAwLDkgQEAKIAlwc2h1ZmQJJDIzOCwleG1tMCwleG1tNAogCWFuZGwJJWVieCwlZXNpCiAJbW92bAklZWJwLCVlYngKLQlqbXAJLkwwMDZsb29wCisJam1wCS5MMDA0bG9vcAogLmFsaWduCTE2Ci0uTDAwN2RvbmU6CisuTDAwNWRvbmU6CiAJYWRkbAkxNiglZXNwKSwlZWJ4CiAJeG9ybAklZWRpLCVlc2kKIAltb3ZsCSVlY3gsJWVicApAQCAtMjc4NCw2ICsyNjE2LDExNzcgQEAKIAlwb3BsCSVlYnAKIAlyZXQKIC5zaXplCV9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTMsLi1fc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzCisuaGlkZGVuCV9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4CisudHlwZQlfc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eCxAZnVuY3Rpb24KKy5hbGlnbgkxNgorX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdng6CisJcHVzaGwJJWVicAorCXB1c2hsCSVlYngKKwlwdXNobAklZXNpCisJcHVzaGwJJWVkaQorCWNhbGwJLkwwMDZwaWNfcG9pbnQKKy5MMDA2cGljX3BvaW50OgorCXBvcGwJJWVicAorCWxlYWwJLkxLX1hYX1hYLS5MMDA2cGljX3BvaW50KCVlYnApLCVlYnAKKy5MYXZ4X3Nob3J0Y3V0OgorCXZ6ZXJvYWxsCisJdm1vdmRxYQkoJWVicCksJXhtbTcKKwl2bW92ZHFhCTE2KCVlYnApLCV4bW0wCisJdm1vdmRxYQkzMiglZWJwKSwleG1tMQorCXZtb3ZkcWEJNDgoJWVicCksJXhtbTIKKwl2bW92ZHFhCTY0KCVlYnApLCV4bW02CisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAkyNCglZXNwKSwlZWJwCisJbW92bAkyOCglZXNwKSwlZWR4CisJbW92bAklZXNwLCVlc2kKKwlzdWJsCSQyMDgsJWVzcAorCWFuZGwJJC02NCwlZXNwCisJdm1vdmRxYQkleG1tMCwxMTIoJWVzcCkKKwl2bW92ZHFhCSV4bW0xLDEyOCglZXNwKQorCXZtb3ZkcWEJJXhtbTIsMTQ0KCVlc3ApCisJc2hsbAkkNiwlZWR4CisJdm1vdmRxYQkleG1tNywxNjAoJWVzcCkKKwlhZGRsCSVlYnAsJWVkeAorCXZtb3ZkcWEJJXhtbTYsMTc2KCVlc3ApCisJYWRkbAkkNjQsJWVicAorCW1vdmwJJWVkaSwxOTIoJWVzcCkKKwltb3ZsCSVlYnAsMTk2KCVlc3ApCisJbW92bAklZWR4LDIwMCglZXNwKQorCW1vdmwJJWVzaSwyMDQoJWVzcCkKKwltb3ZsCSglZWRpKSwlZWF4CisJbW92bAk0KCVlZGkpLCVlYngKKwltb3ZsCTgoJWVkaSksJWVjeAorCW1vdmwJMTIoJWVkaSksJWVkeAorCW1vdmwJMTYoJWVkaSksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJdm1vdmRxdQktNjQoJWVicCksJXhtbTAKKwl2bW92ZHF1CS00OCglZWJwKSwleG1tMQorCXZtb3ZkcXUJLTMyKCVlYnApLCV4bW0yCisJdm1vdmRxdQktMTYoJWVicCksJXhtbTMKKwl2cHNodWZiCSV4bW02LCV4bW0wLCV4bW0wCisJdnBzaHVmYgkleG1tNiwleG1tMSwleG1tMQorCXZwc2h1ZmIJJXhtbTYsJXhtbTIsJXhtbTIKKwl2bW92ZHFhCSV4bW03LDk2KCVlc3ApCisJdnBzaHVmYgkleG1tNiwleG1tMywleG1tMworCXZwYWRkZAkleG1tNywleG1tMCwleG1tNAorCXZwYWRkZAkleG1tNywleG1tMSwleG1tNQorCXZwYWRkZAkleG1tNywleG1tMiwleG1tNgorCXZtb3ZkcWEJJXhtbTQsKCVlc3ApCisJbW92bAklZWN4LCVlYnAKKwl2bW92ZHFhCSV4bW01LDE2KCVlc3ApCisJeG9ybAklZWR4LCVlYnAKKwl2bW92ZHFhCSV4bW02LDMyKCVlc3ApCisJYW5kbAklZWJwLCVlc2kKKwlqbXAJLkwwMDdsb29wCisuYWxpZ24JMTYKKy5MMDA3bG9vcDoKKwlzaHJkbAkkMiwlZWJ4LCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW00CisJbW92bAklZWF4LCVlYnAKKwlhZGRsCSglZXNwKSwlZWRpCisJdnBhZGRkCSV4bW0zLCV4bW03LCV4bW03CisJdm1vdmRxYQkleG1tMCw2NCglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkcQkkNCwleG1tMywleG1tNgorCWFkZGwJJWVzaSwlZWRpCisJYW5kbAklZWJ4LCVlYnAKKwl2cHhvcgkleG1tMCwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZWJwCisJdm1vdmRxYQkleG1tNyw0OCglZXNwKQorCW1vdmwJJWVkaSwlZXNpCisJYWRkbAk0KCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJWVieCwlZWF4CisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZWJwLCVlZHgKKwlhbmRsCSVlYXgsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTQsJXhtbTYKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJeG9ybAklZWJ4LCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNCwleG1tMAorCXZwYWRkZAkleG1tNCwleG1tNCwleG1tNAorCW1vdmwJJWVkeCwlZWJwCisJYWRkbAk4KCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc3JsZAkkMzAsJXhtbTAsJXhtbTcKKwl2cG9yCSV4bW02LCV4bW00LCV4bW00CisJYWRkbAklZXNpLCVlY3gKKwlhbmRsCSVlZGksJWVicAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2cHNsbGQJJDIsJXhtbTAsJXhtbTAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl4b3JsCSVlYXgsJWVicAorCXZweG9yCSV4bW03LCV4bW00LCV4bW00CisJbW92bAklZWN4LCVlc2kKKwlhZGRsCTEyKCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVkeAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZweG9yCSV4bW0wLCV4bW00LCV4bW00CisJYWRkbAklZWJwLCVlYngKKwlhbmRsCSVlZHgsJWVzaQorCXZtb3ZkcWEJOTYoJWVzcCksJXhtbTAKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJeG9ybAklZWRpLCVlc2kKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tNQorCW1vdmwJJWVieCwlZWJwCisJYWRkbAkxNiglZXNwKSwlZWF4CisJdnBhZGRkCSV4bW00LCV4bW0wLCV4bW0wCisJdm1vdmRxYQkleG1tMSw4MCglZXNwKQorCXhvcmwJJWVkeCwlZWN4CisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdnBzcmxkcQkkNCwleG1tNCwleG1tNworCWFkZGwJJWVzaSwlZWF4CisJYW5kbAklZWN4LCVlYnAKKwl2cHhvcgkleG1tMSwleG1tNSwleG1tNQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cHhvcgkleG1tMywleG1tNywleG1tNworCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZWJwCisJdm1vdmRxYQkleG1tMCwoJWVzcCkKKwltb3ZsCSVlYXgsJWVzaQorCWFkZGwJMjAoJWVzcCksJWVkaQorCXZweG9yCSV4bW03LCV4bW01LCV4bW01CisJeG9ybAklZWN4LCVlYngKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkaQorCWFuZGwJJWVieCwlZXNpCisJdnBzcmxkCSQzMSwleG1tNSwleG1tNworCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwl4b3JsCSVlY3gsJWVzaQorCXZwc2xsZHEJJDEyLCV4bW01LCV4bW0xCisJdnBhZGRkCSV4bW01LCV4bW01LCV4bW01CisJbW92bAklZWRpLCVlYnAKKwlhZGRsCTI0KCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZwc3JsZAkkMzAsJXhtbTEsJXhtbTAKKwl2cG9yCSV4bW03LCV4bW01LCV4bW01CisJYWRkbAklZXNpLCVlZHgKKwlhbmRsCSVlYXgsJWVicAorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwl2cHNsbGQJJDIsJXhtbTEsJXhtbTEKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwl4b3JsCSVlYngsJWVicAorCXZweG9yCSV4bW0wLCV4bW01LCV4bW01CisJbW92bAklZWR4LCVlc2kKKwlhZGRsCTI4KCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZweG9yCSV4bW0xLCV4bW01LCV4bW01CisJYWRkbAklZWJwLCVlY3gKKwlhbmRsCSVlZGksJWVzaQorCXZtb3ZkcWEJMTEyKCVlc3ApLCV4bW0xCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZXNpCisJdnBhbGlnbnIJJDgsJXhtbTIsJXhtbTMsJXhtbTYKKwltb3ZsCSVlY3gsJWVicAorCWFkZGwJMzIoJWVzcCksJWVieAorCXZwYWRkZAkleG1tNSwleG1tMSwleG1tMQorCXZtb3ZkcWEJJXhtbTIsOTYoJWVzcCkKKwl4b3JsCSVlZGksJWVkeAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZwc3JsZHEJJDQsJXhtbTUsJXhtbTAKKwlhZGRsCSVlc2ksJWVieAorCWFuZGwJJWVkeCwlZWJwCisJdnB4b3IJJXhtbTIsJXhtbTYsJXhtbTYKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnB4b3IJJXhtbTQsJXhtbTAsJXhtbTAKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwl4b3JsCSVlZGksJWVicAorCXZtb3ZkcWEJJXhtbTEsMTYoJWVzcCkKKwltb3ZsCSVlYngsJWVzaQorCWFkZGwJMzYoJWVzcCksJWVheAorCXZweG9yCSV4bW0wLCV4bW02LCV4bW02CisJeG9ybAklZWR4LCVlY3gKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlYnAsJWVheAorCWFuZGwJJWVjeCwlZXNpCisJdnBzcmxkCSQzMSwleG1tNiwleG1tMAorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXZwc2xsZHEJJDEyLCV4bW02LCV4bW0yCisJdnBhZGRkCSV4bW02LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlYnAKKwlhZGRsCTQwKCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVieAorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZwc3JsZAkkMzAsJXhtbTIsJXhtbTEKKwl2cG9yCSV4bW0wLCV4bW02LCV4bW02CisJYWRkbAklZXNpLCVlZGkKKwlhbmRsCSVlYngsJWVicAorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cHNsbGQJJDIsJXhtbTIsJXhtbTIKKwl2bW92ZHFhCTY0KCVlc3ApLCV4bW0wCisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlYnAKKwl2cHhvcgkleG1tMSwleG1tNiwleG1tNgorCW1vdmwJJWVkaSwlZXNpCisJYWRkbAk0NCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlYXgKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCWFkZGwJJWVicCwlZWR4CisJYW5kbAklZWF4LCVlc2kKKwl2bW92ZHFhCTExMiglZXNwKSwleG1tMgorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwl4b3JsCSVlYngsJWVzaQorCXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW03CisJbW92bAklZWR4LCVlYnAKKwlhZGRsCTQ4KCVlc3ApLCVlY3gKKwl2cGFkZGQJJXhtbTYsJXhtbTIsJXhtbTIKKwl2bW92ZHFhCSV4bW0zLDY0KCVlc3ApCisJeG9ybAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNybGRxCSQ0LCV4bW02LCV4bW0xCisJYWRkbAklZXNpLCVlY3gKKwlhbmRsCSVlZGksJWVicAorCXZweG9yCSV4bW0zLCV4bW03LCV4bW03CisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZweG9yCSV4bW01LCV4bW0xLCV4bW0xCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlYnAKKwl2bW92ZHFhCSV4bW0yLDMyKCVlc3ApCisJbW92bAklZWN4LCVlc2kKKwlhZGRsCTUyKCVlc3ApLCVlYngKKwl2cHhvcgkleG1tMSwleG1tNywleG1tNworCXhvcmwJJWVkaSwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWJwLCVlYngKKwlhbmRsCSVlZHgsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTcsJXhtbTEKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJeG9ybAklZWRpLCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNywleG1tMworCXZwYWRkZAkleG1tNywleG1tNywleG1tNworCW1vdmwJJWVieCwlZWJwCisJYWRkbAk1NiglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlY3gKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2cHNybGQJJDMwLCV4bW0zLCV4bW0yCisJdnBvcgkleG1tMSwleG1tNywleG1tNworCWFkZGwJJWVzaSwlZWF4CisJYW5kbAklZWN4LCVlYnAKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBzbGxkCSQyLCV4bW0zLCV4bW0zCisJdm1vdmRxYQk4MCglZXNwKSwleG1tMQorCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZWJwCisJdnB4b3IJJXhtbTIsJXhtbTcsJXhtbTcKKwltb3ZsCSVlYXgsJWVzaQorCWFkZGwJNjAoJWVzcCksJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnB4b3IJJXhtbTMsJXhtbTcsJXhtbTcKKwlhZGRsCSVlYnAsJWVkaQorCWFuZGwJJWVieCwlZXNpCisJdm1vdmRxYQkxMTIoJWVzcCksJXhtbTMKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWRpCisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTIKKwl2cHhvcgkleG1tNCwleG1tMCwleG1tMAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWRpLCVlYnAKKwlhZGRsCSglZXNwKSwlZWR4CisJdnB4b3IJJXhtbTEsJXhtbTAsJXhtbTAKKwl2bW92ZHFhCSV4bW00LDgwKCVlc3ApCisJeG9ybAklZWJ4LCVlYXgKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2bW92ZHFhCSV4bW0zLCV4bW00CisJdnBhZGRkCSV4bW03LCV4bW0zLCV4bW0zCisJYWRkbAklZXNpLCVlZHgKKwlhbmRsCSVlYXgsJWVicAorCXZweG9yCSV4bW0yLCV4bW0wLCV4bW0wCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXNocmRsCSQ3LCVlZGksJWVkaQorCXhvcmwJJWVieCwlZWJwCisJdnBzcmxkCSQzMCwleG1tMCwleG1tMgorCXZtb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwltb3ZsCSVlZHgsJWVzaQorCWFkZGwJNCglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNsbGQJJDIsJXhtbTAsJXhtbTAKKwlhZGRsCSVlYnAsJWVjeAorCWFuZGwJJWVkaSwlZXNpCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWN4LCVlYnAKKwlhZGRsCTgoJWVzcCksJWVieAorCXZwb3IJJXhtbTIsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZGksJWVkeAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZtb3ZkcWEJOTYoJWVzcCksJXhtbTIKKwlhZGRsCSVlc2ksJWVieAorCWFuZGwJJWVkeCwlZWJwCisJeG9ybAklZWRpLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJMTIoJWVzcCksJWVheAorCXhvcmwJJWVkaSwlZWJwCisJbW92bAklZWJ4LCVlc2kKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVkeCwlZXNpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cGFsaWducgkkOCwleG1tNywleG1tMCwleG1tMworCXZweG9yCSV4bW01LCV4bW0xLCV4bW0xCisJYWRkbAkxNiglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZweG9yCSV4bW0yLCV4bW0xLCV4bW0xCisJdm1vdmRxYQkleG1tNSw5NiglZXNwKQorCWFkZGwJJWVzaSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwl2bW92ZHFhCSV4bW00LCV4bW01CisJdnBhZGRkCSV4bW0wLCV4bW00LCV4bW00CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cHhvcgkleG1tMywleG1tMSwleG1tMQorCWFkZGwJMjAoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJbW92bAklZWRpLCVlc2kKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2cHNybGQJJDMwLCV4bW0xLCV4bW0zCisJdm1vdmRxYQkleG1tNCwoJWVzcCkKKwlhZGRsCSVlYnAsJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwl2cHNsbGQJJDIsJXhtbTEsJXhtbTEKKwlhZGRsCTI0KCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdnBvcgkleG1tMywleG1tMSwleG1tMQorCWFkZGwJMjgoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJdm1vdmRxYQk2NCglZXNwKSwleG1tMworCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWJwLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTQKKwl2cHhvcgkleG1tNiwleG1tMiwleG1tMgorCWFkZGwJMzIoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2cHhvcgkleG1tMywleG1tMiwleG1tMgorCXZtb3ZkcWEJJXhtbTYsNjQoJWVzcCkKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJdm1vdmRxYQkxMjgoJWVzcCksJXhtbTYKKwl2cGFkZGQJJXhtbTEsJXhtbTUsJXhtbTUKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZweG9yCSV4bW00LCV4bW0yLCV4bW0yCisJYWRkbAkzNiglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZwc3JsZAkkMzAsJXhtbTIsJXhtbTQKKwl2bW92ZHFhCSV4bW01LDE2KCVlc3ApCisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJdnBzbGxkCSQyLCV4bW0yLCV4bW0yCisJYWRkbAk0MCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXZwb3IJJXhtbTQsJXhtbTIsJXhtbTIKKwlhZGRsCTQ0KCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXZtb3ZkcWEJODAoJWVzcCksJXhtbTQKKwltb3ZsCSVlZHgsJWVzaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVicCwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW01CisJdnB4b3IJJXhtbTcsJXhtbTMsJXhtbTMKKwlhZGRsCTQ4KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCW1vdmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnB4b3IJJXhtbTQsJXhtbTMsJXhtbTMKKwl2bW92ZHFhCSV4bW03LDgwKCVlc3ApCisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZGksJWVicAorCXZtb3ZkcWEJJXhtbTYsJXhtbTcKKwl2cGFkZGQJJXhtbTIsJXhtbTYsJXhtbTYKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZweG9yCSV4bW01LCV4bW0zLCV4bW0zCisJYWRkbAk1MiglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCXZwc3JsZAkkMzAsJXhtbTMsJXhtbTUKKwl2bW92ZHFhCSV4bW02LDMyKCVlc3ApCisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBzbGxkCSQyLCV4bW0zLCV4bW0zCisJYWRkbAk1NiglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZwb3IJJXhtbTUsJXhtbTMsJXhtbTMKKwlhZGRsCTYwKCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVicAorCXZtb3ZkcWEJOTYoJWVzcCksJXhtbTUKKwltb3ZsCSVlZGksJWVzaQorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVicCwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW02CisJdnB4b3IJJXhtbTAsJXhtbTQsJXhtbTQKKwlhZGRsCSglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlZHgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJdm1vdmRxYQkleG1tMCw5NiglZXNwKQorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwl2bW92ZHFhCSV4bW03LCV4bW0wCisJdnBhZGRkCSV4bW0zLCV4bW03LCV4bW03CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCWFkZGwJNCglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZwc3JsZAkkMzAsJXhtbTQsJXhtbTYKKwl2bW92ZHFhCSV4bW03LDQ4KCVlc3ApCisJYWRkbAklZWJwLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBzbGxkCSQyLCV4bW00LCV4bW00CisJYWRkbAk4KCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWJwCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBvcgkleG1tNiwleG1tNCwleG1tNAorCWFkZGwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVjeCwlZWJwCisJdm1vdmRxYQk2NCglZXNwKSwleG1tNgorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJdnBhbGlnbnIJJDgsJXhtbTMsJXhtbTQsJXhtbTcKKwl2cHhvcgkleG1tMSwleG1tNSwleG1tNQorCWFkZGwJMTYoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJbW92bAklZWRpLCVlYnAKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2cHhvcgkleG1tNiwleG1tNSwleG1tNQorCXZtb3ZkcWEJJXhtbTEsNjQoJWVzcCkKKwlhZGRsCSVlc2ksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJdm1vdmRxYQkleG1tMCwleG1tMQorCXZwYWRkZAkleG1tNCwleG1tMCwleG1tMAorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdnB4b3IJJXhtbTcsJXhtbTUsJXhtbTUKKwlhZGRsCTIwKCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnBzcmxkCSQzMCwleG1tNSwleG1tNworCXZtb3ZkcWEJJXhtbTAsKCVlc3ApCisJYWRkbAklZWJwLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdnBzbGxkCSQyLCV4bW01LCV4bW01CisJYWRkbAkyNCglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwltb3ZsCSVlY3gsJWVicAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwb3IJJXhtbTcsJXhtbTUsJXhtbTUKKwlhZGRsCTI4KCVlc3ApLCVlYXgKKwl2bW92ZHFhCTgwKCVlc3ApLCV4bW03CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl4b3JsCSVlZHgsJWVicAorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTAKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCWFkZGwJMzIoJWVzcCksJWVkaQorCWFuZGwJJWVjeCwlZXNpCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXZtb3ZkcWEJJXhtbTIsODAoJWVzcCkKKwltb3ZsCSVlYXgsJWVicAorCXhvcmwJJWVjeCwlZXNpCisJdm1vdmRxYQkleG1tMSwleG1tMgorCXZwYWRkZAkleG1tNSwleG1tMSwleG1tMQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWRpCisJdnB4b3IJJXhtbTAsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVicAorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwlhZGRsCTM2KCVlc3ApLCVlZHgKKwl2cHNybGQJJDMwLCV4bW02LCV4bW0wCisJdm1vdmRxYQkleG1tMSwxNiglZXNwKQorCWFuZGwJJWVieCwlZWJwCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwltb3ZsCSVlZGksJWVzaQorCXZwc2xsZAkkMiwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWJwCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZWJwLCVlZHgKKwl4b3JsCSVlYXgsJWVzaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlhZGRsCTQwKCVlc3ApLCVlY3gKKwlhbmRsCSVlYXgsJWVzaQorCXZwb3IJJXhtbTAsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlZGksJWVkaQorCXZtb3ZkcWEJOTYoJWVzcCksJXhtbTAKKwltb3ZsCSVlZHgsJWVicAorCXhvcmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlZGksJWVicAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTQ0KCVlc3ApLCVlYngKKwlhbmRsCSVlZGksJWVicAorCXhvcmwJJWVheCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJbW92bAklZWN4LCVlc2kKKwl4b3JsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWR4LCVlc2kKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBhbGlnbnIJJDgsJXhtbTUsJXhtbTYsJXhtbTEKKwl2cHhvcgkleG1tMywleG1tNywleG1tNworCWFkZGwJNDgoJWVzcCksJWVheAorCWFuZGwJJWVkeCwlZXNpCisJeG9ybAklZWRpLCVlZHgKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwl2cHhvcgkleG1tMCwleG1tNywleG1tNworCXZtb3ZkcWEJJXhtbTMsOTYoJWVzcCkKKwltb3ZsCSVlYngsJWVicAorCXhvcmwJJWVkeCwlZXNpCisJdm1vdmRxYQkxNDQoJWVzcCksJXhtbTMKKwl2cGFkZGQJJXhtbTYsJXhtbTIsJXhtbTIKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXZweG9yCSV4bW0xLCV4bW03LCV4bW03CisJeG9ybAklZWN4LCVlYnAKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk1MiglZXNwKSwlZWRpCisJdnBzcmxkCSQzMCwleG1tNywleG1tMQorCXZtb3ZkcWEJJXhtbTIsMzIoJWVzcCkKKwlhbmRsCSVlY3gsJWVicAorCXhvcmwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJbW92bAklZWF4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWRpCisJeG9ybAklZWJ4LCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAk1NiglZXNwKSwlZWR4CisJYW5kbAklZWJ4LCVlc2kKKwl2cG9yCSV4bW0xLCV4bW03LCV4bW03CisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwl2bW92ZHFhCTY0KCVlc3ApLCV4bW0xCisJbW92bAklZWRpLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWF4LCVlYnAKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJYWRkbAk2MCglZXNwKSwlZWN4CisJYW5kbAklZWF4LCVlYnAKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlZGksJWVkaQorCW1vdmwJJWVkeCwlZXNpCisJeG9ybAklZWF4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVkaSwlZXNpCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZwYWxpZ25yCSQ4LCV4bW02LCV4bW03LCV4bW0yCisJdnB4b3IJJXhtbTQsJXhtbTAsJXhtbTAKKwlhZGRsCSglZXNwKSwlZWJ4CisJYW5kbAklZWRpLCVlc2kKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXZweG9yCSV4bW0xLCV4bW0wLCV4bW0wCisJdm1vdmRxYQkleG1tNCw2NCglZXNwKQorCW1vdmwJJWVjeCwlZWJwCisJeG9ybAklZWRpLCVlc2kKKwl2bW92ZHFhCSV4bW0zLCV4bW00CisJdnBhZGRkCSV4bW03LCV4bW0zLCV4bW0zCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl2cHhvcgkleG1tMiwleG1tMCwleG1tMAorCXhvcmwJJWVkeCwlZWJwCisJeG9ybAklZWRpLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNCglZXNwKSwlZWF4CisJdnBzcmxkCSQzMCwleG1tMCwleG1tMgorCXZtb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwlhbmRsCSVlZHgsJWVicAorCXhvcmwJJWVkaSwlZWR4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZHgsJWVicAorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk4KCVlc3ApLCVlZGkKKwlhbmRsCSVlY3gsJWVzaQorCXZwb3IJJXhtbTIsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlYngsJWVieAorCXZtb3ZkcWEJODAoJWVzcCksJXhtbTIKKwltb3ZsCSVlYXgsJWVicAorCXhvcmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlZGkKKwl4b3JsCSVlYngsJWVicAorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwlhZGRsCTEyKCVlc3ApLCVlZHgKKwlhbmRsCSVlYngsJWVicAorCXhvcmwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVheCwlZWF4CisJbW92bAklZWRpLCVlc2kKKwl4b3JsCSVlYngsJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVicCwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTMKKwl2cHhvcgkleG1tNSwleG1tMSwleG1tMQorCWFkZGwJMTYoJWVzcCksJWVjeAorCWFuZGwJJWVheCwlZXNpCisJeG9ybAklZWJ4LCVlYXgKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwl2cHhvcgkleG1tMiwleG1tMSwleG1tMQorCXZtb3ZkcWEJJXhtbTUsODAoJWVzcCkKKwltb3ZsCSVlZHgsJWVicAorCXhvcmwJJWVheCwlZXNpCisJdm1vdmRxYQkleG1tNCwleG1tNQorCXZwYWRkZAkleG1tMCwleG1tNCwleG1tNAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTMsJXhtbTEsJXhtbTEKKwl4b3JsCSVlZGksJWVicAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTIwKCVlc3ApLCVlYngKKwl2cHNybGQJJDMwLCV4bW0xLCV4bW0zCisJdm1vdmRxYQkleG1tNCwoJWVzcCkKKwlhbmRsCSVlZGksJWVicAorCXhvcmwJJWVheCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJbW92bAklZWN4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTEsJXhtbTEKKwl4b3JsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWR4LCVlc2kKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkyNCglZXNwKSwlZWF4CisJYW5kbAklZWR4LCVlc2kKKwl2cG9yCSV4bW0zLCV4bW0xLCV4bW0xCisJeG9ybAklZWRpLCVlZHgKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwl2bW92ZHFhCTk2KCVlc3ApLCV4bW0zCisJbW92bAklZWJ4LCVlYnAKKwl4b3JsCSVlZHgsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVzaSwlZWF4CisJeG9ybAklZWN4LCVlYnAKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyOCglZXNwKSwlZWRpCisJYW5kbAklZWN4LCVlYnAKKwl4b3JsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlYngsJWVieAorCW1vdmwJJWVheCwlZXNpCisJeG9ybAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkaQorCXhvcmwJJWVieCwlZXNpCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW00CisJdnB4b3IJJXhtbTYsJXhtbTIsJXhtbTIKKwlhZGRsCTMyKCVlc3ApLCVlZHgKKwlhbmRsCSVlYngsJWVzaQorCXhvcmwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVheCwlZWF4CisJdnB4b3IJJXhtbTMsJXhtbTIsJXhtbTIKKwl2bW92ZHFhCSV4bW02LDk2KCVlc3ApCisJbW92bAklZWRpLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXZtb3ZkcWEJJXhtbTUsJXhtbTYKKwl2cGFkZGQJJXhtbTEsJXhtbTUsJXhtbTUKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwlhZGRsCSVlc2ksJWVkeAorCXZweG9yCSV4bW00LCV4bW0yLCV4bW0yCisJeG9ybAklZWF4LCVlYnAKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJYWRkbAkzNiglZXNwKSwlZWN4CisJdnBzcmxkCSQzMCwleG1tMiwleG1tNAorCXZtb3ZkcWEJJXhtbTUsMTYoJWVzcCkKKwlhbmRsCSVlYXgsJWVicAorCXhvcmwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJbW92bAklZWR4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTIsJXhtbTIKKwl4b3JsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVicCwlZWN4CisJeG9ybAklZWRpLCVlc2kKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAk0MCglZXNwKSwlZWJ4CisJYW5kbAklZWRpLCVlc2kKKwl2cG9yCSV4bW00LCV4bW0yLCV4bW0yCisJeG9ybAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl2bW92ZHFhCTY0KCVlc3ApLCV4bW00CisJbW92bAklZWN4LCVlYnAKKwl4b3JsCSVlZGksJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWR4LCVlYnAKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk0NCglZXNwKSwlZWF4CisJYW5kbAklZWR4LCVlYnAKKwl4b3JsCSVlZGksJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCW1vdmwJJWVieCwlZXNpCisJeG9ybAklZWR4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVkeCwlZXNpCisJYWRkbAklZWJ4LCVlYXgKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tNQorCXZweG9yCSV4bW03LCV4bW0zLCV4bW0zCisJYWRkbAk0OCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZweG9yCSV4bW00LCV4bW0zLCV4bW0zCisJdm1vdmRxYQkleG1tNyw2NCglZXNwKQorCWFkZGwJJWVzaSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwl2bW92ZHFhCSV4bW02LCV4bW03CisJdnBhZGRkCSV4bW0yLCV4bW02LCV4bW02CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cHhvcgkleG1tNSwleG1tMywleG1tMworCWFkZGwJNTIoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJbW92bAklZWRpLCVlc2kKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2cHNybGQJJDMwLCV4bW0zLCV4bW01CisJdm1vdmRxYQkleG1tNiwzMiglZXNwKQorCWFkZGwJJWVicCwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXZwc2xsZAkkMiwleG1tMywleG1tMworCWFkZGwJNTYoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWR4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2cG9yCSV4bW01LCV4bW0zLCV4bW0zCisJYWRkbAk2MCglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJKCVlc3ApLCVlYXgKKwl2cGFkZGQJJXhtbTMsJXhtbTcsJXhtbTcKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWJwCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl2bW92ZHFhCSV4bW03LDQ4KCVlc3ApCisJeG9ybAklZWR4LCVlYnAKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJNCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJOCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCWFkZGwJMTIoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCTE5NiglZXNwKSwlZWJwCisJY21wbAkyMDAoJWVzcCksJWVicAorCWplCS5MMDA4ZG9uZQorCXZtb3ZkcWEJMTYwKCVlc3ApLCV4bW03CisJdm1vdmRxYQkxNzYoJWVzcCksJXhtbTYKKwl2bW92ZHF1CSglZWJwKSwleG1tMAorCXZtb3ZkcXUJMTYoJWVicCksJXhtbTEKKwl2bW92ZHF1CTMyKCVlYnApLCV4bW0yCisJdm1vdmRxdQk0OCglZWJwKSwleG1tMworCWFkZGwJJDY0LCVlYnAKKwl2cHNodWZiCSV4bW02LCV4bW0wLCV4bW0wCisJbW92bAklZWJwLDE5NiglZXNwKQorCXZtb3ZkcWEJJXhtbTcsOTYoJWVzcCkKKwlhZGRsCTE2KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCXZwc2h1ZmIJJXhtbTYsJXhtbTEsJXhtbTEKKwltb3ZsCSVlY3gsJWVicAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZwYWRkZAkleG1tNywleG1tMCwleG1tNAorCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZtb3ZkcWEJJXhtbTQsKCVlc3ApCisJYWRkbAkyMCglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJMjQoJWVzcCksJWVkaQorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWF4LCVlYnAKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlc2ksJWVkaQorCXhvcmwJJWVjeCwlZWJwCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwlhZGRsCTI4KCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVicAorCW1vdmwJJWVkaSwlZXNpCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZWJwLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJYWRkbAkzMiglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0yLCV4bW0yCisJbW92bAklZWR4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cGFkZGQJJXhtbTcsJXhtbTEsJXhtbTUKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2bW92ZHFhCSV4bW01LDE2KCVlc3ApCisJYWRkbAkzNiglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAk0OCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0zLCV4bW0zCisJbW92bAklZWRpLCVlYnAKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwl2cGFkZGQJJXhtbTcsJXhtbTIsJXhtbTYKKwlhZGRsCSVlc2ksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwl2bW92ZHFhCSV4bW02LDMyKCVlc3ApCisJYWRkbAk1MiglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwltb3ZsCSVlZHgsJWVzaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVicCwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJNTYoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZXNpCisJbW92bAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTYwKCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCW1vdmwJMTkyKCVlc3ApLCVlYnAKKwlhZGRsCSglZWJwKSwlZWF4CisJYWRkbAk0KCVlYnApLCVlc2kKKwlhZGRsCTgoJWVicCksJWVjeAorCW1vdmwJJWVheCwoJWVicCkKKwlhZGRsCTEyKCVlYnApLCVlZHgKKwltb3ZsCSVlc2ksNCglZWJwKQorCWFkZGwJMTYoJWVicCksJWVkaQorCW1vdmwJJWVjeCwlZWJ4CisJbW92bAklZWN4LDgoJWVicCkKKwl4b3JsCSVlZHgsJWVieAorCW1vdmwJJWVkeCwxMiglZWJwKQorCW1vdmwJJWVkaSwxNiglZWJwKQorCW1vdmwJJWVzaSwlZWJwCisJYW5kbAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVieAorCWptcAkuTDAwN2xvb3AKKy5hbGlnbgkxNgorLkwwMDhkb25lOgorCWFkZGwJMTYoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZXNpCisJbW92bAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJMjgoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJbW92bAklZWRpLCVlc2kKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwlhZGRsCSVlYnAsJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlhZGRsCTMyKCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAkzNiglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAk0OCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCWFkZGwJNTIoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCW1vdmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZGksJWVicAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2emVyb2FsbAorCW1vdmwJMTkyKCVlc3ApLCVlYnAKKwlhZGRsCSglZWJwKSwlZWF4CisJbW92bAkyMDQoJWVzcCksJWVzcAorCWFkZGwJNCglZWJwKSwlZXNpCisJYWRkbAk4KCVlYnApLCVlY3gKKwltb3ZsCSVlYXgsKCVlYnApCisJYWRkbAkxMiglZWJwKSwlZWR4CisJbW92bAklZXNpLDQoJWVicCkKKwlhZGRsCTE2KCVlYnApLCVlZGkKKwltb3ZsCSVlY3gsOCglZWJwKQorCW1vdmwJJWVkeCwxMiglZWJwKQorCW1vdmwJJWVkaSwxNiglZWJwKQorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAorLnNpemUJX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdngsLi1fc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eAogLmFsaWduCTY0CiAuTEtfWFhfWFg6CiAubG9uZwkxNTE4NTAwMjQ5LDE1MTg1MDAyNDksMTUxODUwMDI0OSwxNTE4NTAwMjQ5CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Ni9jcnlwdG8vc2hhL3NoYTI1Ni01ODYuUwppbmRleCAwOGQ5NDg0Li4zOGFjYmQ4IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODYvY3J5cHRvL3NoYS9zaGEyNTYtNTg2LlMKQEAgLTM3LDExICszNywxMCBAQAogCWp6CS5MMDAzbm9feG1tCiAJYW5kbAkkMTA3Mzc0MTgyNCwlZWN4CiAJYW5kbAkkMjY4NDM1OTY4LCVlYngKLQl0ZXN0bAkkNTM2ODcwOTEyLCVlZHgKLQlqbnoJLkwwMDRzaGFleHQKIAlvcmwJJWVieCwlZWN4CiAJYW5kbAkkMTM0MjE3NzI4MCwlZWN4CiAJY21wbAkkMTM0MjE3NzI4MCwlZWN4CisJamUJLkwwMDRBVlgKIAl0ZXN0bAkkNTEyLCVlYngKIAlqbnoJLkwwMDVTU1NFMwogLkwwMDNub194bW06CkBAIC0zMTY3LDIwNCArMzE2Niw2IEBACiAJcG9wbAklZWJwCiAJcmV0CiAuYWxpZ24JMzIKLS5MMDA0c2hhZXh0OgotCXN1YmwJJDMyLCVlc3AKLQltb3ZkcXUJKCVlc2kpLCV4bW0xCi0JbGVhbAkxMjgoJWVicCksJWVicAotCW1vdmRxdQkxNiglZXNpKSwleG1tMgotCW1vdmRxYQkxMjgoJWVicCksJXhtbTcKLQlwc2h1ZmQJJDI3LCV4bW0xLCV4bW0wCi0JcHNodWZkCSQxNzcsJXhtbTEsJXhtbTEKLQlwc2h1ZmQJJDI3LCV4bW0yLCV4bW0yCi0uYnl0ZQkxMDIsMTUsNTgsMTUsMjAyLDgKLQlwdW5wY2tscWRxCSV4bW0wLCV4bW0yCi0Jam1wCS5MMDEwbG9vcF9zaGFleHQKLS5hbGlnbgkxNgotLkwwMTBsb29wX3NoYWV4dDoKLQltb3ZkcXUJKCVlZGkpLCV4bW0zCi0JbW92ZHF1CTE2KCVlZGkpLCV4bW00Ci0JbW92ZHF1CTMyKCVlZGkpLCV4bW01Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMjMKLQltb3ZkcXUJNDgoJWVkaSksJXhtbTYKLQltb3ZkcWEJJXhtbTIsMTYoJWVzcCkKLQltb3ZkcWEJLTEyOCglZWJwKSwleG1tMAotCXBhZGRkCSV4bW0zLCV4bW0wCi0uYnl0ZQkxMDIsMTUsNTYsMCwyMzEKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0Jbm9wCi0JbW92ZHFhCSV4bW0xLCglZXNwKQotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQktMTEyKCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTQsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwwLDIzOQotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQlsZWFsCTY0KCVlZGkpLCVlZGkKLS5ieXRlCTE1LDU2LDIwNCwyMjAKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJLTk2KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTUsJXhtbTAKLS5ieXRlCTEwMiwxNSw1NiwwLDI0NwotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTYsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTMsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW0zCi0uYnl0ZQkxNSw1NiwyMDQsMjI5Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCS04MCglZWJwKSwleG1tMAotCXBhZGRkCSV4bW02LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjIyCi0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tMywleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1NCw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTQKLS5ieXRlCTE1LDU2LDIwNCwyMzgKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJLTY0KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTMsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMjcKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW00LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjA0LDI0MwotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQktNDgoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNCwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDIzNgotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTUsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTIsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW02Ci0uYnl0ZQkxNSw1NiwyMDQsMjIwCi0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCS0zMiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW01LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjQ1Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNiwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1Myw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTMKLS5ieXRlCTE1LDU2LDIwNCwyMjkKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJLTE2KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTYsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMjIKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW0zLCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjU0LDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNAotLmJ5dGUJMTUsNTYsMjA0LDIzOAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQkoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tMywleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDIyNwotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTQsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTEsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW01Ci0uYnl0ZQkxNSw1NiwyMDQsMjQzCi0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCTE2KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTQsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMzYKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW01LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUyLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNgotLmJ5dGUJMTUsNTYsMjA0LDIyMAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQkzMiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW01LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjQ1Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNiwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1Myw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTMKLS5ieXRlCTE1LDU2LDIwNCwyMjkKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJNDgoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNiwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDIyMgotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTMsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTQsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW00Ci0uYnl0ZQkxNSw1NiwyMDQsMjM4Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCTY0KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTMsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMjcKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW00LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjA0LDI0MwotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQk4MCglZWJwKSwleG1tMAotCXBhZGRkCSV4bW00LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjM2Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNSwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1Miw0Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JcGFkZGQJJXhtbTcsJXhtbTYKLQltb3ZkcWEJOTYoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNSwleG1tMAotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyNDUKLQltb3ZkcWEJMTI4KCVlYnApLCV4bW03Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCTExMiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW02LCV4bW0wCi0Jbm9wCi0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCWNtcGwJJWVkaSwlZWF4Ci0Jbm9wCi0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JcGFkZGQJMTYoJWVzcCksJXhtbTIKLQlwYWRkZAkoJWVzcCksJXhtbTEKLQlqbnoJLkwwMTBsb29wX3NoYWV4dAotCXBzaHVmZAkkMTc3LCV4bW0yLCV4bW0yCi0JcHNodWZkCSQyNywleG1tMSwleG1tNwotCXBzaHVmZAkkMTc3LCV4bW0xLCV4bW0xCi0JcHVucGNraHFkcQkleG1tMiwleG1tMQotLmJ5dGUJMTAyLDE1LDU4LDE1LDIxNSw4Ci0JbW92bAk0NCglZXNwKSwlZXNwCi0JbW92ZHF1CSV4bW0xLCglZXNpKQotCW1vdmRxdQkleG1tMiwxNiglZXNpKQotCXBvcGwJJWVkaQotCXBvcGwJJWVzaQotCXBvcGwJJWVieAotCXBvcGwJJWVicAotCXJldAotLmFsaWduCTMyCiAuTDAwNVNTU0UzOgogCWxlYWwJLTk2KCVlc3ApLCVlc3AKIAltb3ZsCSglZXNpKSwlZWF4CkBAIC0zMzg0LDkgKzMxODUsOSBAQAogCW1vdmwJJWVjeCwyNCglZXNwKQogCW1vdmwJJWVzaSwyOCglZXNwKQogCW1vdmRxYQkyNTYoJWVicCksJXhtbTcKLQlqbXAJLkwwMTFncmFuZF9zc3NlMworCWptcAkuTDAxMGdyYW5kX3Nzc2UzCiAuYWxpZ24JMTYKLS5MMDExZ3JhbmRfc3NzZTM6CisuTDAxMGdyYW5kX3Nzc2UzOgogCW1vdmRxdQkoJWVkaSksJXhtbTAKIAltb3ZkcXUJMTYoJWVkaSksJXhtbTEKIAltb3ZkcXUJMzIoJWVkaSksJXhtbTIKQEAgLTM0MDksOSArMzIxMCw5IEBACiAJcGFkZGQJJXhtbTMsJXhtbTcKIAltb3ZkcWEJJXhtbTYsNjQoJWVzcCkKIAltb3ZkcWEJJXhtbTcsODAoJWVzcCkKLQlqbXAJLkwwMTJzc3NlM18wMF80NworCWptcAkuTDAxMXNzc2UzXzAwXzQ3CiAuYWxpZ24JMTYKLS5MMDEyc3NzZTNfMDBfNDc6CisuTDAxMXNzc2UzXzAwXzQ3OgogCWFkZGwJJDY0LCVlYnAKIAltb3ZsCSVlZHgsJWVjeAogCW1vdmRxYQkleG1tMSwleG1tNApAQCAtNDA1NCw3ICszODU1LDcgQEAKIAlhZGRsCSVlY3gsJWVheAogCW1vdmRxYQkleG1tNiw4MCglZXNwKQogCWNtcGwJJDY2MDUxLDY0KCVlYnApCi0Jam5lCS5MMDEyc3NzZTNfMDBfNDcKKwlqbmUJLkwwMTFzc3NlM18wMF80NwogCW1vdmwJJWVkeCwlZWN4CiAJcm9ybAkkMTQsJWVkeAogCW1vdmwJMjAoJWVzcCksJWVzaQpAQCAtNDU2OCwxMiArNDM2OSwxMTkzIEBACiAJbW92ZHFhCTY0KCVlYnApLCV4bW03CiAJc3VibAkkMTkyLCVlYnAKIAljbXBsCTEwNCglZXNwKSwlZWRpCi0JamIJLkwwMTFncmFuZF9zc3NlMworCWpiCS5MMDEwZ3JhbmRfc3NzZTMKIAltb3ZsCTEwOCglZXNwKSwlZXNwCiAJcG9wbAklZWRpCiAJcG9wbAklZXNpCiAJcG9wbAklZWJ4CiAJcG9wbAklZWJwCiAJcmV0CisuYWxpZ24JMzIKKy5MMDA0QVZYOgorCWxlYWwJLTk2KCVlc3ApLCVlc3AKKwl2emVyb2FsbAorCW1vdmwJKCVlc2kpLCVlYXgKKwltb3ZsCTQoJWVzaSksJWVieAorCW1vdmwJOCglZXNpKSwlZWN4CisJbW92bAkxMiglZXNpKSwlZWRpCisJbW92bAklZWJ4LDQoJWVzcCkKKwl4b3JsCSVlY3gsJWVieAorCW1vdmwJJWVjeCw4KCVlc3ApCisJbW92bAklZWRpLDEyKCVlc3ApCisJbW92bAkxNiglZXNpKSwlZWR4CisJbW92bAkyMCglZXNpKSwlZWRpCisJbW92bAkyNCglZXNpKSwlZWN4CisJbW92bAkyOCglZXNpKSwlZXNpCisJbW92bAklZWRpLDIwKCVlc3ApCisJbW92bAkxMDAoJWVzcCksJWVkaQorCW1vdmwJJWVjeCwyNCglZXNwKQorCW1vdmwJJWVzaSwyOCglZXNwKQorCXZtb3ZkcWEJMjU2KCVlYnApLCV4bW03CisJam1wCS5MMDEyZ3JhbmRfYXZ4CisuYWxpZ24JMzIKKy5MMDEyZ3JhbmRfYXZ4OgorCXZtb3ZkcXUJKCVlZGkpLCV4bW0wCisJdm1vdmRxdQkxNiglZWRpKSwleG1tMQorCXZtb3ZkcXUJMzIoJWVkaSksJXhtbTIKKwl2bW92ZHF1CTQ4KCVlZGkpLCV4bW0zCisJYWRkbAkkNjQsJWVkaQorCXZwc2h1ZmIJJXhtbTcsJXhtbTAsJXhtbTAKKwltb3ZsCSVlZGksMTAwKCVlc3ApCisJdnBzaHVmYgkleG1tNywleG1tMSwleG1tMQorCXZwc2h1ZmIJJXhtbTcsJXhtbTIsJXhtbTIKKwl2cGFkZGQJKCVlYnApLCV4bW0wLCV4bW00CisJdnBzaHVmYgkleG1tNywleG1tMywleG1tMworCXZwYWRkZAkxNiglZWJwKSwleG1tMSwleG1tNQorCXZwYWRkZAkzMiglZWJwKSwleG1tMiwleG1tNgorCXZwYWRkZAk0OCglZWJwKSwleG1tMywleG1tNworCXZtb3ZkcWEJJXhtbTQsMzIoJWVzcCkKKwl2bW92ZHFhCSV4bW01LDQ4KCVlc3ApCisJdm1vdmRxYQkleG1tNiw2NCglZXNwKQorCXZtb3ZkcWEJJXhtbTcsODAoJWVzcCkKKwlqbXAJLkwwMTNhdnhfMDBfNDcKKy5hbGlnbgkxNgorLkwwMTNhdnhfMDBfNDc6CisJYWRkbAkkNjQsJWVicAorCXZwYWxpZ25yCSQ0LCV4bW0wLCV4bW0xLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZXNpCisJdnBhbGlnbnIJJDQsJXhtbTIsJXhtbTMsJXhtbTcKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQ3LCV4bW00LCV4bW02CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTYoJWVzcCkKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxkCSQzLCV4bW00LCV4bW03CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJNCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LCglZXNwKQorCXZweG9yCSV4bW02LCV4bW03LCV4bW00CisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjgoJWVzcCksJWVkeAorCXZwc2h1ZmQJJDI1MCwleG1tMywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzcmxkCSQxMSwleG1tNiwleG1tNgorCWFkZGwJMzIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJMTIoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBzbGxkCSQxMSwleG1tNSwleG1tNQorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTUKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkoJWVzcCksJWVkaQorCXZwYWRkZAkleG1tNCwleG1tMCwleG1tMAorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTM2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAk4KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZwc3JsZHEJJDgsJXhtbTcsJXhtbTcKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzaHVmZAkkODAsJXhtbTAsJXhtbTcKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCw4KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsMjQoJWVzcCkKKwl2cHNybHEJJDE5LCV4bW03LCV4bW03CisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjAoJWVzcCksJWVkeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNodWZkCSQyMzIsJXhtbTYsJXhtbTcKKwlhZGRsCTQwKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2xsZHEJJDgsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTgoJWVzcCksJWVzaQorCXZwYWRkZAkoJWVicCksJXhtbTAsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTQ0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJdm1vdmRxYQkleG1tNiwzMiglZXNwKQorCXZwYWxpZ25yCSQ0LCV4bW0xLCV4bW0yLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlc2kKKwl2cGFsaWducgkkNCwleG1tMywleG1tMCwleG1tNworCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXZwYWRkZAkleG1tNywleG1tMSwleG1tMQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDE2KCVlc3ApCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJdnBzaHVmZAkkMjUwLCV4bW0wLCV4bW03CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJYWRkbAk0OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTEsJXhtbTEKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTUyKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0xLCV4bW0xCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNodWZkCSQ4MCwleG1tMSwleG1tNworCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsOCglZXNwKQorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk1NiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWRkZAkleG1tNywleG1tMSwleG1tMQorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVzaQorCXZwYWRkZAkxNiglZWJwKSwleG1tMSwleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyMCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCw0KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNjAoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZtb3ZkcWEJJXhtbTYsNDgoJWVzcCkKKwl2cGFsaWducgkkNCwleG1tMiwleG1tMywleG1tNAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVzaQorCXZwYWxpZ25yCSQ0LCV4bW0wLCV4bW0xLCV4bW03CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDE2KCVlc3ApCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCXZwc3JsZAkkMywleG1tNCwleG1tNworCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXZwc2xsZAkkMTQsJXhtbTQsJXhtbTUKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwoJWVzcCkKKwl2cHhvcgkleG1tNiwleG1tNywleG1tNAorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTI4KCVlc3ApLCVlZHgKKwl2cHNodWZkCSQyNTAsJXhtbTEsJXhtbTcKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCXZwc3JsZAkkMTEsJXhtbTYsJXhtbTYKKwlhZGRsCTY0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTEyKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwc2xsZAkkMTEsJXhtbTUsJXhtbTUKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlc2kKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTIoJWVzcCkKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTIsJXhtbTIKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyOCglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJMjQoJWVzcCksJWVkeAorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAk2OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNodWZkCSQxMzIsJXhtbTYsJXhtbTcKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc2h1ZmQJJDgwLCV4bW0yLCV4bW03CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsOCglZXNwKQorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlZGkKKwl2cHhvcgkleG1tNSwleG1tNiwleG1tNgorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDI0KCVlc3ApCisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk3MiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTQoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlc2kKKwl2cGFkZGQJMzIoJWVicCksJXhtbTIsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTc2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJdm1vdmRxYQkleG1tNiw2NCglZXNwKQorCXZwYWxpZ25yCSQ0LCV4bW0zLCV4bW0wLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlc2kKKwl2cGFsaWducgkkNCwleG1tMSwleG1tMiwleG1tNworCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXZwYWRkZAkleG1tNywleG1tMywleG1tMworCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDE2KCVlc3ApCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJdnBzaHVmZAkkMjUwLCV4bW0yLCV4bW03CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJYWRkbAk4MCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTMsJXhtbTMKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTg0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0zLCV4bW0zCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNodWZkCSQ4MCwleG1tMywleG1tNworCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsOCglZXNwKQorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk4OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWRkZAkleG1tNywleG1tMywleG1tMworCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVzaQorCXZwYWRkZAk0OCglZWJwKSwleG1tMywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyMCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCw0KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJOTIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZtb3ZkcWEJJXhtbTYsODAoJWVzcCkKKwljbXBsCSQ2NjA1MSw2NCglZWJwKQorCWpuZQkuTDAxM2F2eF8wMF80NworCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwxNiglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk0KCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTMyKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTIoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyOCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCTI0KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJMzYoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTgoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDgoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDI0KCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjAoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk0MCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTgoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCw0KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyMCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNDQoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCSglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsMTYoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTQ4KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCSglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMjgoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTYoJWVzcCksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDEyKCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTUyKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCw4KCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJNCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTU2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyMCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMjAoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJOCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsNCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCSglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTYwKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTIwKCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTYoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJNCglZXNwKSwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsKCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjgoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk2NCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJMTIoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkxNiglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDEyKCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjgoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTY4KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAk4KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkxNiglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCw4KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwyNCglZXNwKQorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNzIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTQoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTc2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjAoJWVzcCksJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDE2KCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMTIoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk4MCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJMjgoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI4KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwxMiglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCTgoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk4NCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJMjQoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkxMiglZXNwKSwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsOCglZXNwKQorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTQoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk4OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJMjAoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyNCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDIwKCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTgoJWVzcCksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDQoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk5MiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJMTYoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJbW92bAk5NiglZXNwKSwlZXNpCisJeG9ybAklZWRpLCVlYngKKwltb3ZsCTEyKCVlc3ApLCVlY3gKKwlhZGRsCSglZXNpKSwlZWF4CisJYWRkbAk0KCVlc2kpLCVlYngKKwlhZGRsCTgoJWVzaSksJWVkaQorCWFkZGwJMTIoJWVzaSksJWVjeAorCW1vdmwJJWVheCwoJWVzaSkKKwltb3ZsCSVlYngsNCglZXNpKQorCW1vdmwJJWVkaSw4KCVlc2kpCisJbW92bAklZWN4LDEyKCVlc2kpCisJbW92bAklZWJ4LDQoJWVzcCkKKwl4b3JsCSVlZGksJWVieAorCW1vdmwJJWVkaSw4KCVlc3ApCisJbW92bAklZWN4LDEyKCVlc3ApCisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAkyNCglZXNwKSwlZWN4CisJYWRkbAkxNiglZXNpKSwlZWR4CisJYWRkbAkyMCglZXNpKSwlZWRpCisJYWRkbAkyNCglZXNpKSwlZWN4CisJbW92bAklZWR4LDE2KCVlc2kpCisJbW92bAklZWRpLDIwKCVlc2kpCisJbW92bAklZWRpLDIwKCVlc3ApCisJbW92bAkyOCglZXNwKSwlZWRpCisJbW92bAklZWN4LDI0KCVlc2kpCisJYWRkbAkyOCglZXNpKSwlZWRpCisJbW92bAklZWN4LDI0KCVlc3ApCisJbW92bAklZWRpLDI4KCVlc2kpCisJbW92bAklZWRpLDI4KCVlc3ApCisJbW92bAkxMDAoJWVzcCksJWVkaQorCXZtb3ZkcWEJNjQoJWVicCksJXhtbTcKKwlzdWJsCSQxOTIsJWVicAorCWNtcGwJMTA0KCVlc3ApLCVlZGkKKwlqYgkuTDAxMmdyYW5kX2F2eAorCW1vdmwJMTA4KCVlc3ApLCVlc3AKKwl2emVyb2FsbAorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAogLnNpemUJc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXIsLi0uTF9zaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9iZWdpbgogI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2Flcy14ODZfNjQuUwppbmRleCA1ZjRiMDU3Li4zNjFlODRjIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Flcy9hZXMteDg2XzY0LlMKQEAgLTgyLDggKzgyLDggQEAKIAltb3ZsCTAoJXIxNCwlcmRpLDgpLCVlZGkKIAltb3ZsCTAoJXIxNCwlcmJwLDgpLCVlYnAKIAotCWFuZGwJJDY1MjgwLCVlZGkKLQlhbmRsCSQ2NTI4MCwlZWJwCisJYW5kbAkkMHgwMDAwZmYwMCwlZWRpCisJYW5kbAkkMHgwMDAwZmYwMCwlZWJwCiAKIAl4b3JsCSVlZGksJXIxMGQKIAl4b3JsCSVlYnAsJXIxMWQKQEAgLTk1LDggKzk1LDggQEAKIAltb3ZsCTAoJXIxNCwlcnNpLDgpLCVlc2kKIAltb3ZsCTAoJXIxNCwlcmRpLDgpLCVlZGkKIAotCWFuZGwJJDY1MjgwLCVlc2kKLQlhbmRsCSQ2NTI4MCwlZWRpCisJYW5kbAkkMHgwMDAwZmYwMCwlZXNpCisJYW5kbAkkMHgwMDAwZmYwMCwlZWRpCiAJc2hybAkkMTYsJWVieAogCXhvcmwJJWVzaSwlcjEyZAogCXhvcmwJJWVkaSwlcjhkCkBAIC0xMDksOSArMTA5LDkgQEAKIAltb3ZsCTAoJXIxNCwlcmRpLDgpLCVlZGkKIAltb3ZsCTAoJXIxNCwlcmJwLDgpLCVlYnAKIAotCWFuZGwJJDE2NzExNjgwLCVlc2kKLQlhbmRsCSQxNjcxMTY4MCwlZWRpCi0JYW5kbAkkMTY3MTE2ODAsJWVicAorCWFuZGwJJDB4MDBmZjAwMDAsJWVzaQorCWFuZGwJJDB4MDBmZjAwMDAsJWVkaQorCWFuZGwJJDB4MDBmZjAwMDAsJWVicAogCiAJeG9ybAklZXNpLCVyMTBkCiAJeG9ybAklZWRpLCVyMTFkCkBAIC0xMjQsOSArMTI0LDkgQEAKIAltb3ZsCTIoJXIxNCwlcmRpLDgpLCVlZGkKIAltb3ZsCTIoJXIxNCwlcmJwLDgpLCVlYnAKIAotCWFuZGwJJDE2NzExNjgwLCVlc2kKLQlhbmRsCSQ0Mjc4MTkwMDgwLCVlZGkKLQlhbmRsCSQ0Mjc4MTkwMDgwLCVlYnAKKwlhbmRsCSQweDAwZmYwMDAwLCVlc2kKKwlhbmRsCSQweGZmMDAwMDAwLCVlZGkKKwlhbmRsCSQweGZmMDAwMDAwLCVlYnAKIAogCXhvcmwJJWVzaSwlcjhkCiAJeG9ybAklZWRpLCVyMTBkCkBAIC0xMzksOCArMTM5LDggQEAKIAltb3ZsCTIoJXIxNCwlcmRpLDgpLCVlZGkKIAltb3ZsCTE2KzAoJXIxNSksJWVheAogCi0JYW5kbAkkNDI3ODE5MDA4MCwlZXNpCi0JYW5kbAkkNDI3ODE5MDA4MCwlZWRpCisJYW5kbAkkMHhmZjAwMDAwMCwlZXNpCisJYW5kbAkkMHhmZjAwMDAwMCwlZWRpCiAKIAl4b3JsCSVlc2ksJXIxMmQKIAl4b3JsCSVlZGksJXI4ZApAQCAtMjQyLDggKzI0Miw4IEBACiAJeG9ybAklcjhkLCVlZHgKIAljbXBxCTE2KCVyc3ApLCVyMTUKIAlqZQkuTGVuY19jb21wYWN0X2RvbmUKLQltb3ZsCSQyMTU1OTA1MTUyLCVyMTBkCi0JbW92bAkkMjE1NTkwNTE1MiwlcjExZAorCW1vdmwJJDB4ODA4MDgwODAsJXIxMGQKKwltb3ZsCSQweDgwODA4MDgwLCVyMTFkCiAJYW5kbAklZWF4LCVyMTBkCiAJYW5kbAklZWJ4LCVyMTFkCiAJbW92bAklcjEwZCwlZXNpCkBAIC0yNTQsMTAgKzI1NCwxMCBAQAogCWxlYWwJKCVyYngsJXJieCwxKSwlcjlkCiAJc3VibAklcjEwZCwlZXNpCiAJc3VibAklcjExZCwlZWRpCi0JYW5kbAkkNDI3ODEyNDI4NiwlcjhkCi0JYW5kbAkkNDI3ODEyNDI4NiwlcjlkCi0JYW5kbAkkNDU0NzYxMjQzLCVlc2kKLQlhbmRsCSQ0NTQ3NjEyNDMsJWVkaQorCWFuZGwJJDB4ZmVmZWZlZmUsJXI4ZAorCWFuZGwJJDB4ZmVmZWZlZmUsJXI5ZAorCWFuZGwJJDB4MWIxYjFiMWIsJWVzaQorCWFuZGwJJDB4MWIxYjFiMWIsJWVkaQogCW1vdmwJJWVheCwlcjEwZAogCW1vdmwJJWVieCwlcjExZAogCXhvcmwJJWVzaSwlcjhkCkBAIC0yNjUsOSArMjY1LDkgQEAKIAogCXhvcmwJJXI4ZCwlZWF4CiAJeG9ybAklcjlkLCVlYngKLQltb3ZsCSQyMTU1OTA1MTUyLCVyMTJkCisJbW92bAkkMHg4MDgwODA4MCwlcjEyZAogCXJvbGwJJDI0LCVlYXgKLQltb3ZsCSQyMTU1OTA1MTUyLCVlYnAKKwltb3ZsCSQweDgwODA4MDgwLCVlYnAKIAlyb2xsCSQyNCwlZWJ4CiAJYW5kbAklZWN4LCVyMTJkCiAJYW5kbAklZWR4LCVlYnAKQEAgLTI5MCwxMCArMjkwLDEwIEBACiAJeG9ybAklcjEwZCwlZWF4CiAJeG9ybAklcjExZCwlZWJ4CiAKLQlhbmRsCSQ0Mjc4MTI0Mjg2LCVyOGQKLQlhbmRsCSQ0Mjc4MTI0Mjg2LCVyOWQKLQlhbmRsCSQ0NTQ3NjEyNDMsJWVzaQotCWFuZGwJJDQ1NDc2MTI0MywlZWRpCisJYW5kbAkkMHhmZWZlZmVmZSwlcjhkCisJYW5kbAkkMHhmZWZlZmVmZSwlcjlkCisJYW5kbAkkMHgxYjFiMWIxYiwlZXNpCisJYW5kbAkkMHgxYjFiMWIxYiwlZWRpCiAJbW92bAklZWN4LCVyMTJkCiAJbW92bAklZWR4LCVlYnAKIAl4b3JsCSVlc2ksJXI4ZApAQCAtMzQ1LDcgKzM0NSw3IEBACiAJYW5kcQkkLTY0LCVyc3AKIAlzdWJxCSVyc3AsJXJjeAogCW5lZ3EJJXJjeAotCWFuZHEJJDk2MCwlcmN4CisJYW5kcQkkMHgzYzAsJXJjeAogCXN1YnEJJXJjeCwlcnNwCiAJc3VicQkkMzIsJXJzcAogCkBAIC0zNzAsNyArMzcwLDcgQEAKIAlsZWFxCS5MQUVTX1RlKzIwNDgoJXJpcCksJXIxNAogCWxlYXEJNzY4KCVyc3ApLCVyYnAKIAlzdWJxCSVyMTQsJXJicAotCWFuZHEJJDc2OCwlcmJwCisJYW5kcQkkMHgzMDAsJXJicAogCWxlYXEJKCVyMTQsJXJicCwxKSwlcjE0CiAKIAljYWxsCV94ODZfNjRfQUVTX2VuY3J5cHRfY29tcGFjdApAQCAtNzkxLDcgKzc5MSw3IEBACiAJYW5kcQkkLTY0LCVyc3AKIAlzdWJxCSVyc3AsJXJjeAogCW5lZ3EJJXJjeAotCWFuZHEJJDk2MCwlcmN4CisJYW5kcQkkMHgzYzAsJXJjeAogCXN1YnEJJXJjeCwlcnNwCiAJc3VicQkkMzIsJXJzcAogCkBAIC04MTYsNyArODE2LDcgQEAKIAlsZWFxCS5MQUVTX1RkKzIwNDgoJXJpcCksJXIxNAogCWxlYXEJNzY4KCVyc3ApLCVyYnAKIAlzdWJxCSVyMTQsJXJicAotCWFuZHEJJDc2OCwlcmJwCisJYW5kcQkkMHgzMDAsJXJicAogCWxlYXEJKCVyMTQsJXJicCwxKSwlcjE0CiAJc2hycQkkMywlcmJwCiAJYWRkcQklcmJwLCVyMTQKQEAgLTEzMzQsOSArMTMzNCw5IEBACiAJbW92cQklcjE0LCVyMTAKIAlsZWFxCTIzMDQoJXIxNCksJXIxMQogCW1vdnEJJXIxNSwlcjEyCi0JYW5kcQkkNDA5NSwlcjEwCi0JYW5kcQkkNDA5NSwlcjExCi0JYW5kcQkkNDA5NSwlcjEyCisJYW5kcQkkMHhGRkYsJXIxMAorCWFuZHEJJDB4RkZGLCVyMTEKKwlhbmRxCSQweEZGRiwlcjEyCiAKIAljbXBxCSVyMTEsJXIxMgogCWpiCS5MY2JjX3RlX2JyZWFrX291dApAQCAtMTM0NSw3ICsxMzQ1LDcgQEAKIAlqbXAJLkxjYmNfdGVfb2sKIC5MY2JjX3RlX2JyZWFrX291dDoKIAlzdWJxCSVyMTAsJXIxMgotCWFuZHEJJDQwOTUsJXIxMgorCWFuZHEJJDB4RkZGLCVyMTIKIAlhZGRxCSQzMjAsJXIxMgogCXN1YnEJJXIxMiwlcjE1CiAuYWxpZ24JNApAQCAtMTM3MSw3ICsxMzcxLDcgQEAKIAogCW1vdnEJJXIxNSwlcjEwCiAJc3VicQklcjE0LCVyMTAKLQlhbmRxCSQ0MDk1LCVyMTAKKwlhbmRxCSQweGZmZiwlcjEwCiAJY21wcQkkMjMwNCwlcjEwCiAJamIJLkxjYmNfZG9fZWNvcHkKIAljbXBxCSQ0MDk2LTI0OCwlcjEwCkBAIC0xNTU4LDcgKzE1NTgsNyBAQAogCWxlYXEJLTg4LTYzKCVyY3gpLCVyMTAKIAlzdWJxCSVyYnAsJXIxMAogCW5lZ3EJJXIxMAotCWFuZHEJJDk2MCwlcjEwCisJYW5kcQkkMHgzYzAsJXIxMAogCXN1YnEJJXIxMCwlcmJwCiAKIAl4Y2hncQklcnNwLCVyYnAKQEAgLTE1ODcsNyArMTU4Nyw3IEBACiAJbGVhcQkyMDQ4KCVyMTQpLCVyMTQKIAlsZWFxCTc2OC04KCVyc3ApLCVyYXgKIAlzdWJxCSVyMTQsJXJheAotCWFuZHEJJDc2OCwlcmF4CisJYW5kcQkkMHgzMDAsJXJheAogCWxlYXEJKCVyMTQsJXJheCwxKSwlcjE0CiAKIAljbXBxCSQwLCVyYngKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Flcy9hZXNuaS14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Flcy9hZXNuaS14ODZfNjQuUwppbmRleCAxZDUxZDViLi41NzA5YTJkIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9hZXMvYWVzbmkteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2Flc25pLXg4Nl82NC5TCkBAIC01MDgsNyArNTA4LDcgQEAKIAl0ZXN0bAklcjhkLCVyOGQKIAlqegkuTGVjYl9kZWNyeXB0CiAKLQljbXBxCSQxMjgsJXJkeAorCWNtcHEJJDB4ODAsJXJkeAogCWpiCS5MZWNiX2VuY190YWlsCiAKIAltb3ZkcXUJKCVyZGkpLCV4bW0yCkBAIC01MjAsNyArNTIwLDcgQEAKIAltb3ZkcXUJOTYoJXJkaSksJXhtbTgKIAltb3ZkcXUJMTEyKCVyZGkpLCV4bW05CiAJbGVhcQkxMjgoJXJkaSksJXJkaQotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJam1wCS5MZWNiX2VuY19sb29wOF9lbnRlcgogLmFsaWduCTE2CiAuTGVjYl9lbmNfbG9vcDg6CkBAIC01NDgsNyArNTQ4LDcgQEAKIAogCWNhbGwJX2Flc25pX2VuY3J5cHQ4CiAKLQlzdWJxCSQxMjgsJXJkeAorCXN1YnEJJDB4ODAsJXJkeAogCWpuYwkuTGVjYl9lbmNfbG9vcDgKIAogCW1vdnVwcwkleG1tMiwoJXJzaSkKQEAgLTU2MiwyMiArNTYyLDIyIEBACiAJbW92dXBzCSV4bW04LDk2KCVyc2kpCiAJbW92dXBzCSV4bW05LDExMiglcnNpKQogCWxlYXEJMTI4KCVyc2kpLCVyc2kKLQlhZGRxCSQxMjgsJXJkeAorCWFkZHEJJDB4ODAsJXJkeAogCWp6CS5MZWNiX3JldAogCiAuTGVjYl9lbmNfdGFpbDoKIAltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JY21wcQkkMzIsJXJkeAorCWNtcHEJJDB4MjAsJXJkeAogCWpiCS5MZWNiX2VuY19vbmUKIAltb3Z1cHMJMTYoJXJkaSksJXhtbTMKIAlqZQkuTGVjYl9lbmNfdHdvCiAJbW92dXBzCTMyKCVyZGkpLCV4bW00Ci0JY21wcQkkNjQsJXJkeAorCWNtcHEJJDB4NDAsJXJkeAogCWpiCS5MZWNiX2VuY190aHJlZQogCW1vdnVwcwk0OCglcmRpKSwleG1tNQogCWplCS5MZWNiX2VuY19mb3VyCiAJbW92dXBzCTY0KCVyZGkpLCV4bW02Ci0JY21wcQkkOTYsJXJkeAorCWNtcHEJJDB4NjAsJXJkeAogCWpiCS5MZWNiX2VuY19maXZlCiAJbW92dXBzCTgwKCVyZGkpLCV4bW03CiAJamUJLkxlY2JfZW5jX3NpeApAQCAtNjUxLDcgKzY1MSw3IEBACiAKIC5hbGlnbgkxNgogLkxlY2JfZGVjcnlwdDoKLQljbXBxCSQxMjgsJXJkeAorCWNtcHEJJDB4ODAsJXJkeAogCWpiCS5MZWNiX2RlY190YWlsCiAKIAltb3ZkcXUJKCVyZGkpLCV4bW0yCkBAIC02NjMsNyArNjYzLDcgQEAKIAltb3ZkcXUJOTYoJXJkaSksJXhtbTgKIAltb3ZkcXUJMTEyKCVyZGkpLCV4bW05CiAJbGVhcQkxMjgoJXJkaSksJXJkaQotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJam1wCS5MZWNiX2RlY19sb29wOF9lbnRlcgogLmFsaWduCTE2CiAuTGVjYl9kZWNfbG9vcDg6CkBAIC02OTIsNyArNjkyLDcgQEAKIAljYWxsCV9hZXNuaV9kZWNyeXB0OAogCiAJbW92dXBzCSglcjExKSwleG1tMAotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJam5jCS5MZWNiX2RlY19sb29wOAogCiAJbW92dXBzCSV4bW0yLCglcnNpKQpAQCAtNzE0LDIyICs3MTQsMjIgQEAKIAltb3Z1cHMJJXhtbTksMTEyKCVyc2kpCiAJcHhvcgkleG1tOSwleG1tOQogCWxlYXEJMTI4KCVyc2kpLCVyc2kKLQlhZGRxCSQxMjgsJXJkeAorCWFkZHEJJDB4ODAsJXJkeAogCWp6CS5MZWNiX3JldAogCiAuTGVjYl9kZWNfdGFpbDoKIAltb3Z1cHMJKCVyZGkpLCV4bW0yCi0JY21wcQkkMzIsJXJkeAorCWNtcHEJJDB4MjAsJXJkeAogCWpiCS5MZWNiX2RlY19vbmUKIAltb3Z1cHMJMTYoJXJkaSksJXhtbTMKIAlqZQkuTGVjYl9kZWNfdHdvCiAJbW92dXBzCTMyKCVyZGkpLCV4bW00Ci0JY21wcQkkNjQsJXJkeAorCWNtcHEJJDB4NDAsJXJkeAogCWpiCS5MZWNiX2RlY190aHJlZQogCW1vdnVwcwk0OCglcmRpKSwleG1tNQogCWplCS5MZWNiX2RlY19mb3VyCiAJbW92dXBzCTY0KCVyZGkpLCV4bW02Ci0JY21wcQkkOTYsJXJkeAorCWNtcHEJJDB4NjAsJXJkeAogCWpiCS5MZWNiX2RlY19maXZlCiAJbW92dXBzCTgwKCVyZGkpLCV4bW03CiAJamUJLkxlY2JfZGVjX3NpeApAQCAtMTYwNyw3ICsxNjA3LDcgQEAKIAogCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tOAogCW1vdmRxYQkleG1tMiwleG1tMTUKLQlwc2h1ZmQJJDk1LCV4bW0yLCV4bW05CisJcHNodWZkCSQweDVmLCV4bW0yLCV4bW05CiAJcHhvcgkleG1tMCwleG1tMQogCW1vdmRxYQkleG1tOSwleG1tMTQKIAlwYWRkZAkleG1tOSwleG1tOQpAQCAtMTcwNiw3ICsxNzA2LDcgQEAKIC5ieXRlCTEwMiwxNSw1NiwyMjAsMjQ4CiAJbW92dXBzCTY0KCVyMTEpLCV4bW0wCiAJbW92ZHFhCSV4bW04LDgwKCVyc3ApCi0JcHNodWZkCSQ5NSwleG1tMTUsJXhtbTkKKwlwc2h1ZmQJJDB4NWYsJXhtbTE1LCV4bW05CiAJam1wCS5MeHRzX2VuY19sb29wNgogLmFsaWduCTMyCiAuTHh0c19lbmNfbG9vcDY6CkBAIC0xODQ1LDEzICsxODQ1LDEzIEBACiAJanoJLkx4dHNfZW5jX2RvbmUKIAogCXB4b3IJJXhtbTAsJXhtbTExCi0JY21wcQkkMzIsJXJkeAorCWNtcHEJJDB4MjAsJXJkeAogCWpiCS5MeHRzX2VuY19vbmUKIAlweG9yCSV4bW0wLCV4bW0xMgogCWplCS5MeHRzX2VuY190d28KIAogCXB4b3IJJXhtbTAsJXhtbTEzCi0JY21wcQkkNjQsJXJkeAorCWNtcHEJJDB4NDAsJXJkeAogCWpiCS5MeHRzX2VuY190aHJlZQogCXB4b3IJJXhtbTAsJXhtbTE0CiAJamUJLkx4dHNfZW5jX2ZvdXIKQEAgLTIwNzksNyArMjA3OSw3IEBACiAKIAltb3ZkcWEJLkx4dHNfbWFnaWMoJXJpcCksJXhtbTgKIAltb3ZkcWEJJXhtbTIsJXhtbTE1Ci0JcHNodWZkCSQ5NSwleG1tMiwleG1tOQorCXBzaHVmZAkkMHg1ZiwleG1tMiwleG1tOQogCXB4b3IJJXhtbTAsJXhtbTEKIAltb3ZkcWEJJXhtbTksJXhtbTE0CiAJcGFkZGQJJXhtbTksJXhtbTkKQEAgLTIxNzgsNyArMjE3OCw3IEBACiAuYnl0ZQkxMDIsMTUsNTYsMjIyLDI0OAogCW1vdnVwcwk2NCglcjExKSwleG1tMAogCW1vdmRxYQkleG1tOCw4MCglcnNwKQotCXBzaHVmZAkkOTUsJXhtbTE1LCV4bW05CisJcHNodWZkCSQweDVmLCV4bW0xNSwleG1tOQogCWptcAkuTHh0c19kZWNfbG9vcDYKIC5hbGlnbgkzMgogLkx4dHNfZGVjX2xvb3A2OgpAQCAtMjMxOCwxMyArMjMxOCwxMyBAQAogCWp6CS5MeHRzX2RlY19kb25lCiAKIAlweG9yCSV4bW0wLCV4bW0xMgotCWNtcHEJJDMyLCVyZHgKKwljbXBxCSQweDIwLCVyZHgKIAlqYgkuTHh0c19kZWNfb25lCiAJcHhvcgkleG1tMCwleG1tMTMKIAlqZQkuTHh0c19kZWNfdHdvCiAKIAlweG9yCSV4bW0wLCV4bW0xNAotCWNtcHEJJDY0LCVyZHgKKwljbXBxCSQweDQwLCVyZHgKIAlqYgkuTHh0c19kZWNfdGhyZWUKIAlqZQkuTHh0c19kZWNfZm91cgogCkBAIC0yMzU1LDcgKzIzNTUsNyBAQAogCXBjbXBndGQJJXhtbTE1LCV4bW0xNAogCW1vdmRxdQkleG1tNiw2NCglcnNpKQogCWxlYXEJODAoJXJzaSksJXJzaQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMQorCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTExCiAJYW5kcQkkMTUsJXI5CiAJanoJLkx4dHNfZGVjX3JldAogCkBAIC0yNjQ1LDcgKzI2NDUsNyBAQAogCWxlYXEJLTgoJXJheCksJXJicAogCW1vdnVwcwkoJXI4KSwleG1tMTAKIAltb3ZsCSVyMTBkLCVlYXgKLQljbXBxCSQ4MCwlcmR4CisJY21wcQkkMHg1MCwlcmR4CiAJamJlCS5MY2JjX2RlY190YWlsCiAKIAltb3Z1cHMJKCVyY3gpLCV4bW0wCkBAIC0yNjYxLDE0ICsyNjYxLDE0IEBACiAJbW92ZHF1CTgwKCVyZGkpLCV4bW03CiAJbW92ZHFhCSV4bW02LCV4bW0xNQogCW1vdmwJT1BFTlNTTF9pYTMyY2FwX1ArNCglcmlwKSwlcjlkCi0JY21wcQkkMTEyLCVyZHgKKwljbXBxCSQweDcwLCVyZHgKIAlqYmUJLkxjYmNfZGVjX3NpeF9vcl9zZXZlbgogCiAJYW5kbAkkNzEzMDMxNjgsJXI5ZAotCXN1YnEJJDgwLCVyZHgKKwlzdWJxCSQweDUwLCVyZHgKIAljbXBsCSQ0MTk0MzA0LCVyOWQKIAlqZQkuTGNiY19kZWNfbG9vcDZfZW50ZXIKLQlzdWJxCSQzMiwlcmR4CisJc3VicQkkMHgyMCwlcmR4CiAJbGVhcQkxMTIoJXJjeCksJXJjeAogCWptcAkuTGNiY19kZWNfbG9vcDhfZW50ZXIKIC5hbGlnbgkxNgpAQCAtMjY4Myw3ICsyNjgzLDcgQEAKIAltb3Z1cHMJMTYtMTEyKCVyY3gpLCV4bW0xCiAJcHhvcgkleG1tMCwleG1tNAogCXhvcnEJJXIxMSwlcjExCi0JY21wcQkkMTEyLCVyZHgKKwljbXBxCSQweDcwLCVyZHgKIAlweG9yCSV4bW0wLCV4bW01CiAJcHhvcgkleG1tMCwleG1tNgogCXB4b3IJJXhtbTAsJXhtbTcKQEAgLTI4NjgsMjEgKzI4NjgsMjEgQEAKIAltb3Z1cHMJJXhtbTgsOTYoJXJzaSkKIAlsZWFxCTExMiglcnNpKSwlcnNpCiAKLQlzdWJxCSQxMjgsJXJkeAorCXN1YnEJJDB4ODAsJXJkeAogCWphCS5MY2JjX2RlY19sb29wOAogCiAJbW92YXBzCSV4bW05LCV4bW0yCiAJbGVhcQktMTEyKCVyY3gpLCVyY3gKLQlhZGRxCSQxMTIsJXJkeAorCWFkZHEJJDB4NzAsJXJkeAogCWpsZQkuTGNiY19kZWNfY2xlYXJfdGFpbF9jb2xsZWN0ZWQKIAltb3Z1cHMJJXhtbTksKCVyc2kpCiAJbGVhcQkxNiglcnNpKSwlcnNpCi0JY21wcQkkODAsJXJkeAorCWNtcHEJJDB4NTAsJXJkeAogCWpiZQkuTGNiY19kZWNfdGFpbAogCiAJbW92YXBzCSV4bW0xMSwleG1tMgogLkxjYmNfZGVjX3NpeF9vcl9zZXZlbjoKLQljbXBxCSQ5NiwlcmR4CisJY21wcQkkMHg2MCwlcmR4CiAJamEJLkxjYmNfZGVjX3NldmVuCiAKIAltb3ZhcHMJJXhtbTcsJXhtbTgKQEAgLTI5NzUsMzMgKzI5NzUsMzMgQEAKIAltb3ZsCSVyMTBkLCVlYXgKIAltb3ZkcXUJJXhtbTYsNjQoJXJzaSkKIAlsZWFxCTgwKCVyc2kpLCVyc2kKLQlzdWJxCSQ5NiwlcmR4CisJc3VicQkkMHg2MCwlcmR4CiAJamEJLkxjYmNfZGVjX2xvb3A2CiAKIAltb3ZkcWEJJXhtbTcsJXhtbTIKLQlhZGRxCSQ4MCwlcmR4CisJYWRkcQkkMHg1MCwlcmR4CiAJamxlCS5MY2JjX2RlY19jbGVhcl90YWlsX2NvbGxlY3RlZAogCW1vdnVwcwkleG1tNywoJXJzaSkKIAlsZWFxCTE2KCVyc2kpLCVyc2kKIAogLkxjYmNfZGVjX3RhaWw6CiAJbW92dXBzCSglcmRpKSwleG1tMgotCXN1YnEJJDE2LCVyZHgKKwlzdWJxCSQweDEwLCVyZHgKIAlqYmUJLkxjYmNfZGVjX29uZQogCiAJbW92dXBzCTE2KCVyZGkpLCV4bW0zCiAJbW92YXBzCSV4bW0yLCV4bW0xMQotCXN1YnEJJDE2LCVyZHgKKwlzdWJxCSQweDEwLCVyZHgKIAlqYmUJLkxjYmNfZGVjX3R3bwogCiAJbW92dXBzCTMyKCVyZGkpLCV4bW00CiAJbW92YXBzCSV4bW0zLCV4bW0xMgotCXN1YnEJJDE2LCVyZHgKKwlzdWJxCSQweDEwLCVyZHgKIAlqYmUJLkxjYmNfZGVjX3RocmVlCiAKIAltb3Z1cHMJNDgoJXJkaSksJXhtbTUKIAltb3ZhcHMJJXhtbTQsJXhtbTEzCi0Jc3VicQkkMTYsJXJkeAorCXN1YnEJJDB4MTAsJXJkeAogCWpiZQkuTGNiY19kZWNfZm91cgogCiAJbW92dXBzCTY0KCVyZGkpLCV4bW02CkBAIC0zMDI2LDcgKzMwMjYsNyBAQAogCW1vdmRxYQkleG1tNiwleG1tMgogCXB4b3IJJXhtbTYsJXhtbTYKIAlweG9yCSV4bW03LCV4bW03Ci0Jc3VicQkkMTYsJXJkeAorCXN1YnEJJDB4MTAsJXJkeAogCWptcAkuTGNiY19kZWNfdGFpbF9jb2xsZWN0ZWQKIAogLmFsaWduCTE2CkBAIC0zMzQ1LDcgKzMzNDUsNyBAQAogCXBzbGxkcQkkNCwleG1tMAogCXB4b3IJJXhtbTMsJXhtbTAKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0zCisJcHNodWZkCSQweGZmLCV4bW0wLCV4bW0zCiAJcHhvcgkleG1tMSwleG1tMwogCXBzbGxkcQkkNCwleG1tMQogCXB4b3IJJXhtbTEsJXhtbTMKQEAgLTM0MzIsNyArMzQzMiw3IEBACiAJZGVjbAklcjEwZAogCWp6CS5MZG9uZV9rZXkyNTYKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0yCisJcHNodWZkCSQweGZmLCV4bW0wLCV4bW0yCiAJcHhvcgkleG1tMywleG1tMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTEKIApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2JzYWVzLXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2JzYWVzLXg4Nl82NC5TCmluZGV4IDhjZmE0ZGYuLmM1NDkxY2U0IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9hZXMvYnNhZXMteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL2JzYWVzLXg4Nl82NC5TCkBAIC0zMjcsNDUgKzMyNyw0NSBAQAogCXB4b3IJJXhtbTIsJXhtbTUKIAlkZWNsCSVyMTBkCiAJamwJLkxlbmNfZG9uZQotCXBzaHVmZAkkMTQ3LCV4bW0xNSwleG1tNwotCXBzaHVmZAkkMTQ3LCV4bW0wLCV4bW04CisJcHNodWZkCSQweDkzLCV4bW0xNSwleG1tNworCXBzaHVmZAkkMHg5MywleG1tMCwleG1tOAogCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQxNDcsJXhtbTMsJXhtbTkKKwlwc2h1ZmQJJDB4OTMsJXhtbTMsJXhtbTkKIAlweG9yCSV4bW04LCV4bW0wCi0JcHNodWZkCSQxNDcsJXhtbTUsJXhtbTEwCisJcHNodWZkCSQweDkzLCV4bW01LCV4bW0xMAogCXB4b3IJJXhtbTksJXhtbTMKLQlwc2h1ZmQJJDE0NywleG1tMiwleG1tMTEKKwlwc2h1ZmQJJDB4OTMsJXhtbTIsJXhtbTExCiAJcHhvcgkleG1tMTAsJXhtbTUKLQlwc2h1ZmQJJDE0NywleG1tNiwleG1tMTIKKwlwc2h1ZmQJJDB4OTMsJXhtbTYsJXhtbTEyCiAJcHhvcgkleG1tMTEsJXhtbTIKLQlwc2h1ZmQJJDE0NywleG1tMSwleG1tMTMKKwlwc2h1ZmQJJDB4OTMsJXhtbTEsJXhtbTEzCiAJcHhvcgkleG1tMTIsJXhtbTYKLQlwc2h1ZmQJJDE0NywleG1tNCwleG1tMTQKKwlwc2h1ZmQJJDB4OTMsJXhtbTQsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTEKIAlweG9yCSV4bW0xNCwleG1tNAogCiAJcHhvcgkleG1tMTUsJXhtbTgKIAlweG9yCSV4bW00LCV4bW03CiAJcHhvcgkleG1tNCwleG1tOAotCXBzaHVmZAkkNzgsJXhtbTE1LCV4bW0xNQorCXBzaHVmZAkkMHg0RSwleG1tMTUsJXhtbTE1CiAJcHhvcgkleG1tMCwleG1tOQotCXBzaHVmZAkkNzgsJXhtbTAsJXhtbTAKKwlwc2h1ZmQJJDB4NEUsJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0yLCV4bW0xMgogCXB4b3IJJXhtbTcsJXhtbTE1CiAJcHhvcgkleG1tNiwleG1tMTMKIAlweG9yCSV4bW04LCV4bW0wCiAJcHhvcgkleG1tNSwleG1tMTEKLQlwc2h1ZmQJJDc4LCV4bW0yLCV4bW03CisJcHNodWZkCSQweDRFLCV4bW0yLCV4bW03CiAJcHhvcgkleG1tMSwleG1tMTQKLQlwc2h1ZmQJJDc4LCV4bW02LCV4bW04CisJcHNodWZkCSQweDRFLCV4bW02LCV4bW04CiAJcHhvcgkleG1tMywleG1tMTAKLQlwc2h1ZmQJJDc4LCV4bW01LCV4bW0yCisJcHNodWZkCSQweDRFLCV4bW01LCV4bW0yCiAJcHhvcgkleG1tNCwleG1tMTAKLQlwc2h1ZmQJJDc4LCV4bW00LCV4bW02CisJcHNodWZkCSQweDRFLCV4bW00LCV4bW02CiAJcHhvcgkleG1tNCwleG1tMTEKLQlwc2h1ZmQJJDc4LCV4bW0xLCV4bW01CisJcHNodWZkCSQweDRFLCV4bW0xLCV4bW01CiAJcHhvcgkleG1tMTEsJXhtbTcKLQlwc2h1ZmQJJDc4LCV4bW0zLCV4bW0xCisJcHNodWZkCSQweDRFLCV4bW0zLCV4bW0xCiAJcHhvcgkleG1tMTIsJXhtbTgKIAlweG9yCSV4bW0xMCwleG1tMgogCXB4b3IJJXhtbTE0LCV4bW02CkBAIC03OTksMjQgKzc5OSwyNCBAQAogCWRlY2wJJXIxMGQKIAlqbAkuTGRlY19kb25lCiAKLQlwc2h1ZmQJJDc4LCV4bW0xNSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTEzCisJcHNodWZkCSQweDRFLCV4bW0xNSwleG1tNworCXBzaHVmZAkkMHg0RSwleG1tMiwleG1tMTMKIAlweG9yCSV4bW0xNSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTQsJXhtbTE0CisJcHNodWZkCSQweDRFLCV4bW00LCV4bW0xNAogCXB4b3IJJXhtbTIsJXhtbTEzCi0JcHNodWZkCSQ3OCwleG1tMCwleG1tOAorCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tOAogCXB4b3IJJXhtbTQsJXhtbTE0Ci0JcHNodWZkCSQ3OCwleG1tNSwleG1tOQorCXBzaHVmZAkkMHg0RSwleG1tNSwleG1tOQogCXB4b3IJJXhtbTAsJXhtbTgKLQlwc2h1ZmQJJDc4LCV4bW0zLCV4bW0xMAorCXBzaHVmZAkkMHg0RSwleG1tMywleG1tMTAKIAlweG9yCSV4bW01LCV4bW05CiAJcHhvcgkleG1tMTMsJXhtbTE1CiAJcHhvcgkleG1tMTMsJXhtbTAKLQlwc2h1ZmQJJDc4LCV4bW0xLCV4bW0xMQorCXBzaHVmZAkkMHg0RSwleG1tMSwleG1tMTEKIAlweG9yCSV4bW0zLCV4bW0xMAogCXB4b3IJJXhtbTcsJXhtbTUKIAlweG9yCSV4bW04LCV4bW0zCi0JcHNodWZkCSQ3OCwleG1tNiwleG1tMTIKKwlwc2h1ZmQJJDB4NEUsJXhtbTYsJXhtbTEyCiAJcHhvcgkleG1tMSwleG1tMTEKIAlweG9yCSV4bW0xNCwleG1tMAogCXB4b3IJJXhtbTksJXhtbTEKQEAgLTgzMCw0NSArODMwLDQ1IEBACiAJcHhvcgkleG1tMTQsJXhtbTEKIAlweG9yCSV4bW0xNCwleG1tNgogCXB4b3IJJXhtbTEyLCV4bW00Ci0JcHNodWZkCSQxNDcsJXhtbTE1LCV4bW03Ci0JcHNodWZkCSQxNDcsJXhtbTAsJXhtbTgKKwlwc2h1ZmQJJDB4OTMsJXhtbTE1LCV4bW03CisJcHNodWZkCSQweDkzLCV4bW0wLCV4bW04CiAJcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDE0NywleG1tNSwleG1tOQorCXBzaHVmZAkkMHg5MywleG1tNSwleG1tOQogCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDE0NywleG1tMywleG1tMTAKKwlwc2h1ZmQJJDB4OTMsJXhtbTMsJXhtbTEwCiAJcHhvcgkleG1tOSwleG1tNQotCXBzaHVmZAkkMTQ3LCV4bW0xLCV4bW0xMQorCXBzaHVmZAkkMHg5MywleG1tMSwleG1tMTEKIAlweG9yCSV4bW0xMCwleG1tMwotCXBzaHVmZAkkMTQ3LCV4bW02LCV4bW0xMgorCXBzaHVmZAkkMHg5MywleG1tNiwleG1tMTIKIAlweG9yCSV4bW0xMSwleG1tMQotCXBzaHVmZAkkMTQ3LCV4bW0yLCV4bW0xMworCXBzaHVmZAkkMHg5MywleG1tMiwleG1tMTMKIAlweG9yCSV4bW0xMiwleG1tNgotCXBzaHVmZAkkMTQ3LCV4bW00LCV4bW0xNAorCXBzaHVmZAkkMHg5MywleG1tNCwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tMgogCXB4b3IJJXhtbTE0LCV4bW00CiAKIAlweG9yCSV4bW0xNSwleG1tOAogCXB4b3IJJXhtbTQsJXhtbTcKIAlweG9yCSV4bW00LCV4bW04Ci0JcHNodWZkCSQ3OCwleG1tMTUsJXhtbTE1CisJcHNodWZkCSQweDRFLCV4bW0xNSwleG1tMTUKIAlweG9yCSV4bW0wLCV4bW05Ci0JcHNodWZkCSQ3OCwleG1tMCwleG1tMAorCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTEyCiAJcHhvcgkleG1tNywleG1tMTUKIAlweG9yCSV4bW02LCV4bW0xMwogCXB4b3IJJXhtbTgsJXhtbTAKIAlweG9yCSV4bW0zLCV4bW0xMQotCXBzaHVmZAkkNzgsJXhtbTEsJXhtbTcKKwlwc2h1ZmQJJDB4NEUsJXhtbTEsJXhtbTcKIAlweG9yCSV4bW0yLCV4bW0xNAotCXBzaHVmZAkkNzgsJXhtbTYsJXhtbTgKKwlwc2h1ZmQJJDB4NEUsJXhtbTYsJXhtbTgKIAlweG9yCSV4bW01LCV4bW0xMAotCXBzaHVmZAkkNzgsJXhtbTMsJXhtbTEKKwlwc2h1ZmQJJDB4NEUsJXhtbTMsJXhtbTEKIAlweG9yCSV4bW00LCV4bW0xMAotCXBzaHVmZAkkNzgsJXhtbTQsJXhtbTYKKwlwc2h1ZmQJJDB4NEUsJXhtbTQsJXhtbTYKIAlweG9yCSV4bW00LCV4bW0xMQotCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTMKKwlwc2h1ZmQJJDB4NEUsJXhtbTIsJXhtbTMKIAlweG9yCSV4bW0xMSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTUsJXhtbTIKKwlwc2h1ZmQJJDB4NEUsJXhtbTUsJXhtbTIKIAlweG9yCSV4bW0xMiwleG1tOAogCXB4b3IJJXhtbTEsJXhtbTEwCiAJcHhvcgkleG1tMTQsJXhtbTYKQEAgLTE1NTksMjAgKzE1NTksMjAgQEAKIAltb3ZkcWEJJXhtbTcsKCVyYXgpCiAKIAlhbmRxCSQtMTYsJXIxNAotCXN1YnEJJDEyOCwlcnNwCisJc3VicQkkMHg4MCwlcnNwCiAJbW92ZHFhCTMyKCVyYnApLCV4bW02CiAKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJLkx4dHNfbWFnaWMoJXJpcCksJXhtbTEyCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAotCXN1YnEJJDEyOCwlcjE0CisJc3VicQkkMHg4MCwlcjE0CiAJamMJLkx4dHNfZW5jX3Nob3J0CiAJam1wCS5MeHRzX2VuY19sb29wCiAKIC5hbGlnbgkxNgogLkx4dHNfZW5jX2xvb3A6Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTE1CiAJbW92ZHFhCSV4bW02LDAoJXJzcCkKQEAgLTE1ODAsNyArMTU4MCw3IEBACiAJcGFuZAkleG1tMTIsJXhtbTEzCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tNgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0wCiAJbW92ZHFhCSV4bW02LDE2KCVyc3ApCkBAIC0xNTg5LDcgKzE1ODksNyBAQAogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJMCglcjEyKSwleG1tNwotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xCiAJbW92ZHFhCSV4bW02LDMyKCVyc3ApCkBAIC0xNTk5LDcgKzE1OTksNyBAQAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTE2KCVyMTIpLCV4bW04CiAJcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMgogCW1vdmRxYQkleG1tNiw0OCglcnNwKQpAQCAtMTYwOSw3ICsxNjA5LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQkzMiglcjEyKSwleG1tOQogCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMwogCW1vdmRxYQkleG1tNiw2NCglcnNwKQpAQCAtMTYxOSw3ICsxNjE5LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQk0OCglcjEyKSwleG1tMTAKIAlweG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTQKIAltb3ZkcWEJJXhtbTYsODAoJXJzcCkKQEAgLTE2MjksNyArMTYyOSw3IEBACiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJNjQoJXIxMiksJXhtbTExCiAJcHhvcgkleG1tMTAsJXhtbTIKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNQogCW1vdmRxYQkleG1tNiw5NiglcnNwKQpAQCAtMTY3MywyMCArMTY3MywyMCBAQAogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tMTIKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJcGFkZHEJJXhtbTYsJXhtbTYKIAlwYW5kCSV4bW0xMiwleG1tMTMKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAogCXB4b3IJJXhtbTEzLCV4bW02CiAKLQlzdWJxCSQxMjgsJXIxNAorCXN1YnEJJDB4ODAsJXIxNAogCWpuYwkuTHh0c19lbmNfbG9vcAogCiAuTHh0c19lbmNfc2hvcnQ6Ci0JYWRkcQkkMTI4LCVyMTQKKwlhZGRxCSQweDgwLCVyMTQKIAlqegkuTHh0c19lbmNfZG9uZQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xNQogCW1vdmRxYQkleG1tNiwwKCVyc3ApCkBAIC0xNjk0LDcgKzE2OTQsNyBAQAogCXBhbmQJJXhtbTEyLCV4bW0xMwogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMAogCW1vdmRxYQkleG1tNiwxNiglcnNwKQpAQCAtMTcwNSw3ICsxNzA1LDcgQEAKIAltb3ZkcXUJMCglcjEyKSwleG1tNwogCWNtcHEJJDE2LCVyMTQKIAlqZQkuTHh0c19lbmNfMQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xCiAJbW92ZHFhCSV4bW02LDMyKCVyc3ApCkBAIC0xNzE3LDcgKzE3MTcsNyBAQAogCWNtcHEJJDMyLCVyMTQKIAlqZQkuTHh0c19lbmNfMgogCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTIKIAltb3ZkcWEJJXhtbTYsNDgoJXJzcCkKQEAgLTE3MjksNyArMTcyOSw3IEBACiAJY21wcQkkNDgsJXIxNAogCWplCS5MeHRzX2VuY18zCiAJcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0zCiAJbW92ZHFhCSV4bW02LDY0KCVyc3ApCkBAIC0xNzQxLDcgKzE3NDEsNyBAQAogCWNtcHEJJDY0LCVyMTQKIAlqZQkuTHh0c19lbmNfNAogCXB4b3IJJXhtbTksJXhtbTEKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNAogCW1vdmRxYQkleG1tNiw4MCglcnNwKQpAQCAtMTc1Myw3ICsxNzUzLDcgQEAKIAljbXBxCSQ4MCwlcjE0CiAJamUJLkx4dHNfZW5jXzUKIAlweG9yCSV4bW0xMCwleG1tMgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW01CiAJbW92ZHFhCSV4bW02LDk2KCVyc3ApCkBAIC0yMDE5LDIwICsyMDE5LDIwIEBACiAJc2hscQkkNCwlcmF4CiAJc3VicQklcmF4LCVyMTQKIAotCXN1YnEJJDEyOCwlcnNwCisJc3VicQkkMHg4MCwlcnNwCiAJbW92ZHFhCTMyKCVyYnApLCV4bW02CiAKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJLkx4dHNfbWFnaWMoJXJpcCksJXhtbTEyCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAotCXN1YnEJJDEyOCwlcjE0CisJc3VicQkkMHg4MCwlcjE0CiAJamMJLkx4dHNfZGVjX3Nob3J0CiAJam1wCS5MeHRzX2RlY19sb29wCiAKIC5hbGlnbgkxNgogLkx4dHNfZGVjX2xvb3A6Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTE1CiAJbW92ZHFhCSV4bW02LDAoJXJzcCkKQEAgLTIwNDAsNyArMjA0MCw3IEBACiAJcGFuZAkleG1tMTIsJXhtbTEzCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tNgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0wCiAJbW92ZHFhCSV4bW02LDE2KCVyc3ApCkBAIC0yMDQ5LDcgKzIwNDksNyBAQAogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJMCglcjEyKSwleG1tNwotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xCiAJbW92ZHFhCSV4bW02LDMyKCVyc3ApCkBAIC0yMDU5LDcgKzIwNTksNyBAQAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTE2KCVyMTIpLCV4bW04CiAJcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMgogCW1vdmRxYQkleG1tNiw0OCglcnNwKQpAQCAtMjA2OSw3ICsyMDY5LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQkzMiglcjEyKSwleG1tOQogCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMwogCW1vdmRxYQkleG1tNiw2NCglcnNwKQpAQCAtMjA3OSw3ICsyMDc5LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQk0OCglcjEyKSwleG1tMTAKIAlweG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTQKIAltb3ZkcWEJJXhtbTYsODAoJXJzcCkKQEAgLTIwODksNyArMjA4OSw3IEBACiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJNjQoJXIxMiksJXhtbTExCiAJcHhvcgkleG1tMTAsJXhtbTIKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNQogCW1vdmRxYQkleG1tNiw5NiglcnNwKQpAQCAtMjEzMywyMCArMjEzMywyMCBAQAogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tMTIKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJcGFkZHEJJXhtbTYsJXhtbTYKIAlwYW5kCSV4bW0xMiwleG1tMTMKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAogCXB4b3IJJXhtbTEzLCV4bW02CiAKLQlzdWJxCSQxMjgsJXIxNAorCXN1YnEJJDB4ODAsJXIxNAogCWpuYwkuTHh0c19kZWNfbG9vcAogCiAuTHh0c19kZWNfc2hvcnQ6Ci0JYWRkcQkkMTI4LCVyMTQKKwlhZGRxCSQweDgwLCVyMTQKIAlqegkuTHh0c19kZWNfZG9uZQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xNQogCW1vdmRxYQkleG1tNiwwKCVyc3ApCkBAIC0yMTU0LDcgKzIxNTQsNyBAQAogCXBhbmQJJXhtbTEyLCV4bW0xMwogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMAogCW1vdmRxYQkleG1tNiwxNiglcnNwKQpAQCAtMjE2NSw3ICsyMTY1LDcgQEAKIAltb3ZkcXUJMCglcjEyKSwleG1tNwogCWNtcHEJJDE2LCVyMTQKIAlqZQkuTHh0c19kZWNfMQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xCiAJbW92ZHFhCSV4bW02LDMyKCVyc3ApCkBAIC0yMTc3LDcgKzIxNzcsNyBAQAogCWNtcHEJJDMyLCVyMTQKIAlqZQkuTHh0c19kZWNfMgogCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTIKIAltb3ZkcWEJJXhtbTYsNDgoJXJzcCkKQEAgLTIxODksNyArMjE4OSw3IEBACiAJY21wcQkkNDgsJXIxNAogCWplCS5MeHRzX2RlY18zCiAJcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0zCiAJbW92ZHFhCSV4bW02LDY0KCVyc3ApCkBAIC0yMjAxLDcgKzIyMDEsNyBAQAogCWNtcHEJJDY0LCVyMTQKIAlqZQkuTHh0c19kZWNfNAogCXB4b3IJJXhtbTksJXhtbTEKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNAogCW1vdmRxYQkleG1tNiw4MCglcnNwKQpAQCAtMjIxMyw3ICsyMjEzLDcgQEAKIAljbXBxCSQ4MCwlcjE0CiAJamUJLkx4dHNfZGVjXzUKIAlweG9yCSV4bW0xMCwleG1tMgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW01CiAJbW92ZHFhCSV4bW02LDk2KCVyc3ApCkBAIC0yMzkwLDcgKzIzOTAsNyBAQAogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkuTHh0c19tYWdpYyglcmlwKSwleG1tMTIKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJbW92ZHFhCSV4bW02LCV4bW01CiAJcGFkZHEJJXhtbTYsJXhtbTYKIAlwYW5kCSV4bW0xMiwleG1tMTMKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Flcy92cGFlcy14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2Flcy92cGFlcy14ODZfNjQuUwppbmRleCAxZDEyNDI0Li40ZGZhZmE5IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9hZXMvdnBhZXMteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYWVzL3ZwYWVzLXg4Nl82NC5TCkBAIC02MSw3ICs2MSw3IEBACiAJYWRkcQkkMTYsJXIxMQogCXB4b3IJJXhtbTAsJXhtbTMKIC5ieXRlCTEwMiwxNSw1NiwwLDE5MwotCWFuZHEJJDQ4LCVyMTEKKwlhbmRxCSQweDMwLCVyMTEKIAlzdWJxCSQxLCVyYXgKIAlweG9yCSV4bW0zLCV4bW0wCiAKQEAgLTEyMSwxMCArMTIxLDEwIEBACiAJcGFuZAkleG1tOSwleG1tMAogLmJ5dGUJMTAyLDE1LDU2LDAsMjA4CiAJbW92ZHFhCS5Ma19kaXB0KzE2KCVyaXApLCV4bW0wCi0JeG9ycQkkNDgsJXIxMQorCXhvcnEJJDB4MzAsJXIxMQogCWxlYXEJLkxrX2RzYmQoJXJpcCksJXIxMAogLmJ5dGUJMTAyLDE1LDU2LDAsMTkzCi0JYW5kcQkkNDgsJXIxMQorCWFuZHEJJDB4MzAsJXIxMQogCXB4b3IJJXhtbTUsJXhtbTIKIAltb3ZkcWEJLkxrX21jX2ZvcndhcmQrNDgoJXJpcCksJXhtbTUKIAlweG9yCSV4bW0yLCV4bW0wCkBAIC0yNDMsNyArMjQzLDcgQEAKIAltb3ZkcWEJKCVyOCwlcjEwLDEpLCV4bW0xCiAuYnl0ZQkxMDIsMTUsNTYsMCwyMTcKIAltb3ZkcXUJJXhtbTMsKCVyZHgpCi0JeG9ycQkkNDgsJXI4CisJeG9ycQkkMHgzMCwlcjgKIAogLkxzY2hlZHVsZV9nbzoKIAljbXBsCSQxOTIsJWVzaQpAQCAtMzMzLDcgKzMzMyw3IEBACiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCiAKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0wCisJcHNodWZkCSQweEZGLCV4bW0wLCV4bW0wCiAJbW92ZHFhCSV4bW03LCV4bW01CiAJbW92ZHFhCSV4bW02LCV4bW03CiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVfbG93X3JvdW5kCkBAIC00MDAsOCArNDAwLDggQEAKIC50eXBlCV92cGFlc19zY2hlZHVsZV8xOTJfc21lYXIsQGZ1bmN0aW9uCiAuYWxpZ24JMTYKIF92cGFlc19zY2hlZHVsZV8xOTJfc21lYXI6Ci0JcHNodWZkCSQxMjgsJXhtbTYsJXhtbTEKLQlwc2h1ZmQJJDI1NCwleG1tNywleG1tMAorCXBzaHVmZAkkMHg4MCwleG1tNiwleG1tMQorCXBzaHVmZAkkMHhGRSwleG1tNywleG1tMAogCXB4b3IJJXhtbTEsJXhtbTYKIAlweG9yCSV4bW0xLCV4bW0xCiAJcHhvcgkleG1tMCwleG1tNgpAQCAtNDM4LDcgKzQzOCw3IEBACiAJcHhvcgkleG1tMSwleG1tNwogCiAKLQlwc2h1ZmQJJDI1NSwleG1tMCwleG1tMAorCXBzaHVmZAkkMHhGRiwleG1tMCwleG1tMAogLmJ5dGUJMTAyLDE1LDU4LDE1LDE5MiwxCiAKIApAQCAtNTk3LDcgKzU5Nyw3IEBACiAJbW92ZHFhCSglcjgsJXIxMCwxKSwleG1tMQogLmJ5dGUJMTAyLDE1LDU2LDAsMjE3CiAJYWRkcQkkLTE2LCVyOAotCWFuZHEJJDQ4LCVyOAorCWFuZHEJJDB4MzAsJXI4CiAJbW92ZHF1CSV4bW0zLCglcmR4KQogCS5ieXRlCTB4ZjMsMHhjMwogLnNpemUJX3ZwYWVzX3NjaGVkdWxlX21hbmdsZSwuLV92cGFlc19zY2hlZHVsZV9tYW5nbGUKQEAgLTYxNiw3ICs2MTYsNyBAQAogCW1vdmwJJWVheCwyNDAoJXJkeCkKIAogCW1vdmwJJDAsJWVjeAotCW1vdmwJJDQ4LCVyOGQKKwltb3ZsCSQweDMwLCVyOGQKIAljYWxsCV92cGFlc19zY2hlZHVsZV9jb3JlCiAJeG9ybAklZWF4LCVlYXgKIAkuYnl0ZQkweGYzLDB4YzMKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5TCmluZGV4IGRkM2QzMTAuLjIxNTMxZDEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYm4vcnNhei14ODZfNjQuUwpAQCAtNDY2LDQ4ICs0NjYsOTQgQEAKIAlwdXNocQklcjE0CiAJcHVzaHEJJXIxNQogCi0JbW92bAklcjlkLCVyOWQKLQlzdWJxCSQxMjgrMjQsJXJzcAorCXN1YnEJJDE1MiwlcnNwCiAuTG11bF9nYXRoZXI0X2JvZHk6Ci0JbW92bAk2NCglcmR4LCVyOSw0KSwlZWF4Ci0uYnl0ZQkxMDIsNzIsMTUsMTEwLDE5OQotCW1vdmwJKCVyZHgsJXI5LDQpLCVlYngKLS5ieXRlCTEwMiw3MiwxNSwxMTAsMjAxCi0JbW92cQklcjgsMTI4KCVyc3ApCisJbW92ZAklcjlkLCV4bW04CisJbW92ZHFhCS5MaW5jKzE2KCVyaXApLCV4bW0xCisJbW92ZHFhCS5MaW5jKCVyaXApLCV4bW0wCiAKLQlzaGxxCSQzMiwlcmF4Ci0Jb3JxCSVyYXgsJXJieAorCXBzaHVmZAkkMCwleG1tOCwleG1tOAorCW1vdmRxYQkleG1tMSwleG1tNworCW1vdmRxYQkleG1tMSwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tOCwleG1tMAorCW1vdmRxYQkleG1tNywleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tOCwleG1tMQorCW1vdmRxYQkleG1tNywleG1tNAorCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tOCwleG1tMgorCW1vdmRxYQkleG1tNywleG1tNQorCXBhZGRkCSV4bW0zLCV4bW00CisJcGNtcGVxZAkleG1tOCwleG1tMworCW1vdmRxYQkleG1tNywleG1tNgorCXBhZGRkCSV4bW00LCV4bW01CisJcGNtcGVxZAkleG1tOCwleG1tNAorCXBhZGRkCSV4bW01LCV4bW02CisJcGNtcGVxZAkleG1tOCwleG1tNQorCXBhZGRkCSV4bW02LCV4bW03CisJcGNtcGVxZAkleG1tOCwleG1tNgorCXBjbXBlcWQJJXhtbTgsJXhtbTcKKworCW1vdmRxYQkwKCVyZHgpLCV4bW04CisJbW92ZHFhCTE2KCVyZHgpLCV4bW05CisJbW92ZHFhCTMyKCVyZHgpLCV4bW0xMAorCW1vdmRxYQk0OCglcmR4KSwleG1tMTEKKwlwYW5kCSV4bW0wLCV4bW04CisJbW92ZHFhCTY0KCVyZHgpLCV4bW0xMgorCXBhbmQJJXhtbTEsJXhtbTkKKwltb3ZkcWEJODAoJXJkeCksJXhtbTEzCisJcGFuZAkleG1tMiwleG1tMTAKKwltb3ZkcWEJOTYoJXJkeCksJXhtbTE0CisJcGFuZAkleG1tMywleG1tMTEKKwltb3ZkcWEJMTEyKCVyZHgpLCV4bW0xNQorCWxlYXEJMTI4KCVyZHgpLCVyYnAKKwlwYW5kCSV4bW00LCV4bW0xMgorCXBhbmQJJXhtbTUsJXhtbTEzCisJcGFuZAkleG1tNiwleG1tMTQKKwlwYW5kCSV4bW03LCV4bW0xNQorCXBvcgkleG1tMTAsJXhtbTgKKwlwb3IJJXhtbTExLCV4bW05CisJcG9yCSV4bW0xMiwleG1tOAorCXBvcgkleG1tMTMsJXhtbTkKKwlwb3IJJXhtbTE0LCV4bW04CisJcG9yCSV4bW0xNSwleG1tOQorCisJcG9yCSV4bW05LCV4bW04CisJcHNodWZkCSQweDRlLCV4bW04LCV4bW05CisJcG9yCSV4bW05LCV4bW04CisuYnl0ZQkxMDIsNzYsMTUsMTI2LDE5NQorCisJbW92cQklcjgsMTI4KCVyc3ApCisJbW92cQklcmRpLDEyOCs4KCVyc3ApCisJbW92cQklcmN4LDEyOCsxNiglcnNwKQorCiAJbW92cQkoJXJzaSksJXJheAogCW1vdnEJOCglcnNpKSwlcmN4Ci0JbGVhcQkxMjgoJXJkeCwlcjksNCksJXJicAogCW11bHEJJXJieAogCW1vdnEJJXJheCwoJXJzcCkKIAltb3ZxCSVyY3gsJXJheAogCW1vdnEJJXJkeCwlcjgKIAogCW11bHEJJXJieAotCW1vdmQJKCVyYnApLCV4bW00CiAJYWRkcQklcmF4LCVyOAogCW1vdnEJMTYoJXJzaSksJXJheAogCW1vdnEJJXJkeCwlcjkKIAlhZGNxCSQwLCVyOQogCiAJbXVscQklcmJ4Ci0JbW92ZAk2NCglcmJwKSwleG1tNQogCWFkZHEJJXJheCwlcjkKIAltb3ZxCTI0KCVyc2kpLCVyYXgKIAltb3ZxCSVyZHgsJXIxMAogCWFkY3EJJDAsJXIxMAogCiAJbXVscQklcmJ4Ci0JcHNsbGRxCSQ0LCV4bW01CiAJYWRkcQklcmF4LCVyMTAKIAltb3ZxCTMyKCVyc2kpLCVyYXgKIAltb3ZxCSVyZHgsJXIxMQogCWFkY3EJJDAsJXIxMQogCiAJbXVscQklcmJ4Ci0JcG9yCSV4bW01LCV4bW00CiAJYWRkcQklcmF4LCVyMTEKIAltb3ZxCTQwKCVyc2kpLCVyYXgKIAltb3ZxCSVyZHgsJXIxMgpAQCAtNTIwLDE0ICs1NjYsMTIgQEAKIAlhZGNxCSQwLCVyMTMKIAogCW11bHEJJXJieAotCWxlYXEJMTI4KCVyYnApLCVyYnAKIAlhZGRxCSVyYXgsJXIxMwogCW1vdnEJNTYoJXJzaSksJXJheAogCW1vdnEJJXJkeCwlcjE0CiAJYWRjcQkkMCwlcjE0CiAKIAltdWxxCSVyYngKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMjI3CiAJYWRkcQklcmF4LCVyMTQKIAltb3ZxCSglcnNpKSwlcmF4CiAJbW92cQklcmR4LCVyMTUKQEAgLTUzOSw2ICs1ODMsMzUgQEAKIAogLmFsaWduCTMyCiAuTG9vcF9tdWxfZ2F0aGVyOgorCW1vdmRxYQkwKCVyYnApLCV4bW04CisJbW92ZHFhCTE2KCVyYnApLCV4bW05CisJbW92ZHFhCTMyKCVyYnApLCV4bW0xMAorCW1vdmRxYQk0OCglcmJwKSwleG1tMTEKKwlwYW5kCSV4bW0wLCV4bW04CisJbW92ZHFhCTY0KCVyYnApLCV4bW0xMgorCXBhbmQJJXhtbTEsJXhtbTkKKwltb3ZkcWEJODAoJXJicCksJXhtbTEzCisJcGFuZAkleG1tMiwleG1tMTAKKwltb3ZkcWEJOTYoJXJicCksJXhtbTE0CisJcGFuZAkleG1tMywleG1tMTEKKwltb3ZkcWEJMTEyKCVyYnApLCV4bW0xNQorCWxlYXEJMTI4KCVyYnApLCVyYnAKKwlwYW5kCSV4bW00LCV4bW0xMgorCXBhbmQJJXhtbTUsJXhtbTEzCisJcGFuZAkleG1tNiwleG1tMTQKKwlwYW5kCSV4bW03LCV4bW0xNQorCXBvcgkleG1tMTAsJXhtbTgKKwlwb3IJJXhtbTExLCV4bW05CisJcG9yCSV4bW0xMiwleG1tOAorCXBvcgkleG1tMTMsJXhtbTkKKwlwb3IJJXhtbTE0LCV4bW04CisJcG9yCSV4bW0xNSwleG1tOQorCisJcG9yCSV4bW05LCV4bW04CisJcHNodWZkCSQweDRlLCV4bW04LCV4bW05CisJcG9yCSV4bW05LCV4bW04CisuYnl0ZQkxMDIsNzYsMTUsMTI2LDE5NQorCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyOAogCW1vdnEJOCglcnNpKSwlcmF4CkBAIC01NDcsNyArNjIwLDYgQEAKIAlhZGNxCSQwLCVyOAogCiAJbXVscQklcmJ4Ci0JbW92ZAkoJXJicCksJXhtbTQKIAlhZGRxCSVyYXgsJXI5CiAJbW92cQkxNiglcnNpKSwlcmF4CiAJYWRjcQkkMCwlcmR4CkBAIC01NTYsNyArNjI4LDYgQEAKIAlhZGNxCSQwLCVyOQogCiAJbXVscQklcmJ4Ci0JbW92ZAk2NCglcmJwKSwleG1tNQogCWFkZHEJJXJheCwlcjEwCiAJbW92cQkyNCglcnNpKSwlcmF4CiAJYWRjcQkkMCwlcmR4CkBAIC01NjUsNyArNjM2LDYgQEAKIAlhZGNxCSQwLCVyMTAKIAogCW11bHEJJXJieAotCXBzbGxkcQkkNCwleG1tNQogCWFkZHEJJXJheCwlcjExCiAJbW92cQkzMiglcnNpKSwlcmF4CiAJYWRjcQkkMCwlcmR4CkBAIC01NzQsNyArNjQ0LDYgQEAKIAlhZGNxCSQwLCVyMTEKIAogCW11bHEJJXJieAotCXBvcgkleG1tNSwleG1tNAogCWFkZHEJJXJheCwlcjEyCiAJbW92cQk0MCglcnNpKSwlcmF4CiAJYWRjcQkkMCwlcmR4CkBAIC01OTksNyArNjY4LDYgQEAKIAlhZGNxCSQwLCVyMTQKIAogCW11bHEJJXJieAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMjcKIAlhZGRxCSVyYXgsJXIxNQogCW1vdnEJKCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKQEAgLTYwNyw3ICs2NzUsNiBAQAogCW1vdnEJJXJkeCwlcjE1CiAJYWRjcQkkMCwlcjE1CiAKLQlsZWFxCTEyOCglcmJwKSwlcmJwCiAJbGVhcQk4KCVyZGkpLCVyZGkKIAogCWRlY2wJJWVjeApAQCAtNjIyLDggKzY4OSw4IEBACiAJbW92cQklcjE0LDQ4KCVyZGkpCiAJbW92cQklcjE1LDU2KCVyZGkpCiAKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5Ci0uYnl0ZQkxMDIsNzIsMTUsMTI2LDIwNQorCW1vdnEJMTI4KzgoJXJzcCksJXJkaQorCW1vdnEJMTI4KzE2KCVyc3ApLCVyYnAKIAogCW1vdnEJKCVyc3ApLCVyOAogCW1vdnEJOCglcnNwKSwlcjkKQEAgLTY3Myw3ICs3NDAsNyBAQAogCW1vdmwJJXI5ZCwlcjlkCiAJc3VicQkkMTI4KzI0LCVyc3AKIC5MbXVsX3NjYXR0ZXI0X2JvZHk6Ci0JbGVhcQkoJXI4LCVyOSw0KSwlcjgKKwlsZWFxCSglcjgsJXI5LDgpLCVyOAogLmJ5dGUJMTAyLDcyLDE1LDExMCwxOTkKIC5ieXRlCTEwMiw3MiwxNSwxMTAsMjAyCiAuYnl0ZQkxMDIsNzMsMTUsMTEwLDIwOApAQCAtNzA5LDMwICs3NzYsMTQgQEAKIAogCWNhbGwJX19yc2F6XzUxMl9zdWJ0cmFjdAogCi0JbW92bAklcjhkLDAoJXJzaSkKLQlzaHJxCSQzMiwlcjgKLQltb3ZsCSVyOWQsMTI4KCVyc2kpCi0Jc2hycQkkMzIsJXI5Ci0JbW92bAklcjEwZCwyNTYoJXJzaSkKLQlzaHJxCSQzMiwlcjEwCi0JbW92bAklcjExZCwzODQoJXJzaSkKLQlzaHJxCSQzMiwlcjExCi0JbW92bAklcjEyZCw1MTIoJXJzaSkKLQlzaHJxCSQzMiwlcjEyCi0JbW92bAklcjEzZCw2NDAoJXJzaSkKLQlzaHJxCSQzMiwlcjEzCi0JbW92bAklcjE0ZCw3NjgoJXJzaSkKLQlzaHJxCSQzMiwlcjE0Ci0JbW92bAklcjE1ZCw4OTYoJXJzaSkKLQlzaHJxCSQzMiwlcjE1Ci0JbW92bAklcjhkLDY0KCVyc2kpCi0JbW92bAklcjlkLDE5MiglcnNpKQotCW1vdmwJJXIxMGQsMzIwKCVyc2kpCi0JbW92bAklcjExZCw0NDgoJXJzaSkKLQltb3ZsCSVyMTJkLDU3NiglcnNpKQotCW1vdmwJJXIxM2QsNzA0KCVyc2kpCi0JbW92bAklcjE0ZCw4MzIoJXJzaSkKLQltb3ZsCSVyMTVkLDk2MCglcnNpKQorCW1vdnEJJXI4LDAoJXJzaSkKKwltb3ZxCSVyOSwxMjgoJXJzaSkKKwltb3ZxCSVyMTAsMjU2KCVyc2kpCisJbW92cQklcjExLDM4NCglcnNpKQorCW1vdnEJJXIxMiw1MTIoJXJzaSkKKwltb3ZxCSVyMTMsNjQwKCVyc2kpCisJbW92cQklcjE0LDc2OCglcnNpKQorCW1vdnEJJXIxNSw4OTYoJXJzaSkKIAogCWxlYXEJMTI4KzI0KzQ4KCVyc3ApLCVyYXgKIAltb3ZxCS00OCglcmF4KSwlcjE1CkBAIC0xMDg3LDE2ICsxMTM4LDE0IEBACiAudHlwZQlyc2F6XzUxMl9zY2F0dGVyNCxAZnVuY3Rpb24KIC5hbGlnbgkxNgogcnNhel81MTJfc2NhdHRlcjQ6Ci0JbGVhcQkoJXJkaSwlcmR4LDQpLCVyZGkKKwlsZWFxCSglcmRpLCVyZHgsOCksJXJkaQogCW1vdmwJJDgsJXI5ZAogCWptcAkuTG9vcF9zY2F0dGVyCiAuYWxpZ24JMTYKIC5Mb29wX3NjYXR0ZXI6CiAJbW92cQkoJXJzaSksJXJheAogCWxlYXEJOCglcnNpKSwlcnNpCi0JbW92bAklZWF4LCglcmRpKQotCXNocnEJJDMyLCVyYXgKLQltb3ZsCSVlYXgsNjQoJXJkaSkKKwltb3ZxCSVyYXgsKCVyZGkpCiAJbGVhcQkxMjgoJXJkaSksJXJkaQogCWRlY2wJJXI5ZAogCWpuegkuTG9vcF9zY2F0dGVyCkBAIC0xMTA4LDIwICsxMTU3LDczIEBACiAudHlwZQlyc2F6XzUxMl9nYXRoZXI0LEBmdW5jdGlvbgogLmFsaWduCTE2CiByc2F6XzUxMl9nYXRoZXI0OgotCWxlYXEJKCVyc2ksJXJkeCw0KSwlcnNpCisJbW92ZAklZWR4LCV4bW04CisJbW92ZHFhCS5MaW5jKzE2KCVyaXApLCV4bW0xCisJbW92ZHFhCS5MaW5jKCVyaXApLCV4bW0wCisKKwlwc2h1ZmQJJDAsJXhtbTgsJXhtbTgKKwltb3ZkcWEJJXhtbTEsJXhtbTcKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTgsJXhtbTAKKwltb3ZkcWEJJXhtbTcsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTgsJXhtbTEKKwltb3ZkcWEJJXhtbTcsJXhtbTQKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTgsJXhtbTIKKwltb3ZkcWEJJXhtbTcsJXhtbTUKKwlwYWRkZAkleG1tMywleG1tNAorCXBjbXBlcWQJJXhtbTgsJXhtbTMKKwltb3ZkcWEJJXhtbTcsJXhtbTYKKwlwYWRkZAkleG1tNCwleG1tNQorCXBjbXBlcWQJJXhtbTgsJXhtbTQKKwlwYWRkZAkleG1tNSwleG1tNgorCXBjbXBlcWQJJXhtbTgsJXhtbTUKKwlwYWRkZAkleG1tNiwleG1tNworCXBjbXBlcWQJJXhtbTgsJXhtbTYKKwlwY21wZXFkCSV4bW04LCV4bW03CiAJbW92bAkkOCwlcjlkCiAJam1wCS5Mb29wX2dhdGhlcgogLmFsaWduCTE2CiAuTG9vcF9nYXRoZXI6Ci0JbW92bAkoJXJzaSksJWVheAotCW1vdmwJNjQoJXJzaSksJXI4ZAorCW1vdmRxYQkwKCVyc2kpLCV4bW04CisJbW92ZHFhCTE2KCVyc2kpLCV4bW05CisJbW92ZHFhCTMyKCVyc2kpLCV4bW0xMAorCW1vdmRxYQk0OCglcnNpKSwleG1tMTEKKwlwYW5kCSV4bW0wLCV4bW04CisJbW92ZHFhCTY0KCVyc2kpLCV4bW0xMgorCXBhbmQJJXhtbTEsJXhtbTkKKwltb3ZkcWEJODAoJXJzaSksJXhtbTEzCisJcGFuZAkleG1tMiwleG1tMTAKKwltb3ZkcWEJOTYoJXJzaSksJXhtbTE0CisJcGFuZAkleG1tMywleG1tMTEKKwltb3ZkcWEJMTEyKCVyc2kpLCV4bW0xNQogCWxlYXEJMTI4KCVyc2kpLCVyc2kKLQlzaGxxCSQzMiwlcjgKLQlvcnEJJXI4LCVyYXgKLQltb3ZxCSVyYXgsKCVyZGkpCisJcGFuZAkleG1tNCwleG1tMTIKKwlwYW5kCSV4bW01LCV4bW0xMworCXBhbmQJJXhtbTYsJXhtbTE0CisJcGFuZAkleG1tNywleG1tMTUKKwlwb3IJJXhtbTEwLCV4bW04CisJcG9yCSV4bW0xMSwleG1tOQorCXBvcgkleG1tMTIsJXhtbTgKKwlwb3IJJXhtbTEzLCV4bW05CisJcG9yCSV4bW0xNCwleG1tOAorCXBvcgkleG1tMTUsJXhtbTkKKworCXBvcgkleG1tOSwleG1tOAorCXBzaHVmZAkkMHg0ZSwleG1tOCwleG1tOQorCXBvcgkleG1tOSwleG1tOAorCW1vdnEJJXhtbTgsKCVyZGkpCiAJbGVhcQk4KCVyZGkpLCVyZGkKIAlkZWNsCSVyOWQKIAlqbnoJLkxvb3BfZ2F0aGVyCiAJLmJ5dGUJMHhmMywweGMzCisuTFNFSF9lbmRfcnNhel81MTJfZ2F0aGVyNDoKIC5zaXplCXJzYXpfNTEyX2dhdGhlcjQsLi1yc2F6XzUxMl9nYXRoZXI0CisKKy5hbGlnbgk2NAorLkxpbmM6CisubG9uZwkwLDAsIDEsMQorLmxvbmcJMiwyLCAyLDIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250LlMKaW5kZXggNGQ0MDFjNi4uODM5MjZhZCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TCkBAIC02MzYsMjAgKzYzNiwyMCBAQAogCiAKIAotCWxlYXEJLTY0KCVyc3AsJXI5LDQpLCVyMTEKKwlsZWFxCS02NCglcnNwLCVyOSwyKSwlcjExCiAJbW92cQkoJXI4KSwlcjgKIAlzdWJxCSVyc2ksJXIxMQogCWFuZHEJJDQwOTUsJXIxMQogCWNtcHEJJXIxMSwlcjEwCiAJamIJLkxzcXI4eF9zcF9hbHQKIAlzdWJxCSVyMTEsJXJzcAotCWxlYXEJLTY0KCVyc3AsJXI5LDQpLCVyc3AKKwlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCiAJam1wCS5Mc3FyOHhfc3BfZG9uZQogCiAuYWxpZ24JMzIKIC5Mc3FyOHhfc3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDQpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSw0KSwlcnNwCisJbGVhcQk0MDk2LTY0KCwlcjksMiksJXIxMAorCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyc3AKIAlzdWJxCSVyMTAsJXIxMQogCW1vdnEJJDAsJXIxMAogCWNtb3ZjcQklcjEwLCVyMTEKQEAgLTY1OSw1OCArNjU5LDgwIEBACiAJbW92cQklcjksJXIxMAogCW5lZ3EJJXI5CiAKLQlsZWFxCTY0KCVyc3AsJXI5LDIpLCVyMTEKIAltb3ZxCSVyOCwzMiglcnNwKQogCW1vdnEJJXJheCw0MCglcnNwKQogLkxzcXI4eF9ib2R5OgogCi0JbW92cQklcjksJXJicAotLmJ5dGUJMTAyLDczLDE1LDExMCwyMTEKLQlzaHJxCSQzKzIsJXJicAotCW1vdmwJT1BFTlNTTF9pYTMyY2FwX1ArOCglcmlwKSwlZWF4Ci0Jam1wCS5Mc3FyOHhfY29weV9uCi0KLS5hbGlnbgkzMgotLkxzcXI4eF9jb3B5X246Ci0JbW92cQkwKCVyY3gpLCV4bW0wCi0JbW92cQk4KCVyY3gpLCV4bW0xCi0JbW92cQkxNiglcmN4KSwleG1tMwotCW1vdnEJMjQoJXJjeCksJXhtbTQKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQltb3ZkcWEJJXhtbTAsMCglcjExKQotCW1vdmRxYQkleG1tMSwxNiglcjExKQotCW1vdmRxYQkleG1tMywzMiglcjExKQotCW1vdmRxYQkleG1tNCw0OCglcjExKQotCWxlYXEJNjQoJXIxMSksJXIxMQotCWRlY3EJJXJicAotCWpuegkuTHNxcjh4X2NvcHlfbgotCisuYnl0ZQkxMDIsNzIsMTUsMTEwLDIwOQogCXB4b3IJJXhtbTAsJXhtbTAKIC5ieXRlCTEwMiw3MiwxNSwxMTAsMjA3CiAuYnl0ZQkxMDIsNzMsMTUsMTEwLDIxOAogCWNhbGwJYm5fc3FyOHhfaW50ZXJuYWwKIAotCXB4b3IJJXhtbTAsJXhtbTAKLQlsZWFxCTQ4KCVyc3ApLCVyYXgKLQlsZWFxCTY0KCVyc3AsJXI5LDIpLCVyZHgKLQlzaHJxCSQzKzIsJXI5Ci0JbW92cQk0MCglcnNwKSwlcnNpCi0Jam1wCS5Mc3FyOHhfemVybworCisKKworCWxlYXEJKCVyZGksJXI5LDEpLCVyYngKKwltb3ZxCSVyOSwlcmN4CisJbW92cQklcjksJXJkeAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKKwlzYXJxCSQzKzIsJXJjeAorCWptcAkuTHNxcjh4X3N1YgogCiAuYWxpZ24JMzIKLS5Mc3FyOHhfemVybzoKLQltb3ZkcWEJJXhtbTAsMCglcmF4KQotCW1vdmRxYQkleG1tMCwxNiglcmF4KQotCW1vdmRxYQkleG1tMCwzMiglcmF4KQotCW1vdmRxYQkleG1tMCw0OCglcmF4KQotCWxlYXEJNjQoJXJheCksJXJheAotCW1vdmRxYQkleG1tMCwwKCVyZHgpCi0JbW92ZHFhCSV4bW0wLDE2KCVyZHgpCi0JbW92ZHFhCSV4bW0wLDMyKCVyZHgpCi0JbW92ZHFhCSV4bW0wLDQ4KCVyZHgpCi0JbGVhcQk2NCglcmR4KSwlcmR4Ci0JZGVjcQklcjkKLQlqbnoJLkxzcXI4eF96ZXJvCisuTHNxcjh4X3N1YjoKKwltb3ZxCTAoJXJieCksJXIxMgorCW1vdnEJOCglcmJ4KSwlcjEzCisJbW92cQkxNiglcmJ4KSwlcjE0CisJbW92cQkyNCglcmJ4KSwlcjE1CisJbGVhcQkzMiglcmJ4KSwlcmJ4CisJc2JicQkwKCVyYnApLCVyMTIKKwlzYmJxCTgoJXJicCksJXIxMworCXNiYnEJMTYoJXJicCksJXIxNAorCXNiYnEJMjQoJXJicCksJXIxNQorCWxlYXEJMzIoJXJicCksJXJicAorCW1vdnEJJXIxMiwwKCVyZGkpCisJbW92cQklcjEzLDgoJXJkaSkKKwltb3ZxCSVyMTQsMTYoJXJkaSkKKwltb3ZxCSVyMTUsMjQoJXJkaSkKKwlsZWFxCTMyKCVyZGkpLCVyZGkKKwlpbmNxCSVyY3gKKwlqbnoJLkxzcXI4eF9zdWIKKworCXNiYnEJJDAsJXJheAorCWxlYXEJKCVyYngsJXI5LDEpLCVyYngKKwlsZWFxCSglcmRpLCVyOSwxKSwlcmRpCisKKy5ieXRlCTEwMiw3MiwxNSwxMTAsMjAwCisJcHhvcgkleG1tMCwleG1tMAorCXBzaHVmZAkkMCwleG1tMSwleG1tMQorCW1vdnEJNDAoJXJzcCksJXJzaQorCWptcAkuTHNxcjh4X2NvbmRfY29weQorCisuYWxpZ24JMzIKKy5Mc3FyOHhfY29uZF9jb3B5OgorCW1vdmRxYQkwKCVyYngpLCV4bW0yCisJbW92ZHFhCTE2KCVyYngpLCV4bW0zCisJbGVhcQkzMiglcmJ4KSwlcmJ4CisJbW92ZHF1CTAoJXJkaSksJXhtbTQKKwltb3ZkcXUJMTYoJXJkaSksJXhtbTUKKwlsZWFxCTMyKCVyZGkpLCVyZGkKKwltb3ZkcWEJJXhtbTAsLTMyKCVyYngpCisJbW92ZHFhCSV4bW0wLC0xNiglcmJ4KQorCW1vdmRxYQkleG1tMCwtMzIoJXJieCwlcmR4LDEpCisJbW92ZHFhCSV4bW0wLC0xNiglcmJ4LCVyZHgsMSkKKwlwY21wZXFkCSV4bW0xLCV4bW0wCisJcGFuZAkleG1tMSwleG1tMgorCXBhbmQJJXhtbTEsJXhtbTMKKwlwYW5kCSV4bW0wLCV4bW00CisJcGFuZAkleG1tMCwleG1tNQorCXB4b3IJJXhtbTAsJXhtbTAKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcXUJJXhtbTQsLTMyKCVyZGkpCisJbW92ZHF1CSV4bW01LC0xNiglcmRpKQorCWFkZHEJJDMyLCVyOQorCWpuegkuTHNxcjh4X2NvbmRfY29weQogCiAJbW92cQkkMSwlcmF4CiAJbW92cQktNDgoJXJzaSksJXIxNQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQ1LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUwppbmRleCAwMmVkYzY5Li41NTRkZjFmIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUwpAQCAtMTcsNDYgKzE3LDE1MSBAQAogLkxtdWxfZW50ZXI6CiAJbW92bAklcjlkLCVyOWQKIAltb3ZxCSVyc3AsJXJheAotCW1vdmwJOCglcnNwKSwlcjEwZAorCW1vdmQJOCglcnNwKSwleG1tNQorCWxlYXEJLkxpbmMoJXJpcCksJXIxMAogCXB1c2hxCSVyYngKIAlwdXNocQklcmJwCiAJcHVzaHEJJXIxMgogCXB1c2hxCSVyMTMKIAlwdXNocQklcjE0CiAJcHVzaHEJJXIxNQorCiAJbGVhcQkyKCVyOSksJXIxMQogCW5lZ3EJJXIxMQotCWxlYXEJKCVyc3AsJXIxMSw4KSwlcnNwCisJbGVhcQktMjY0KCVyc3AsJXIxMSw4KSwlcnNwCiAJYW5kcQkkLTEwMjQsJXJzcAogCiAJbW92cQklcmF4LDgoJXJzcCwlcjksOCkKIC5MbXVsX2JvZHk6Ci0JbW92cQklcmR4LCVyMTIKLQltb3ZxCSVyMTAsJXIxMQotCXNocnEJJDMsJXIxMAotCWFuZHEJJDcsJXIxMQotCW5vdHEJJXIxMAotCWxlYXEJLkxtYWdpY19tYXNrcyglcmlwKSwlcmF4Ci0JYW5kcQkkMywlcjEwCi0JbGVhcQk5NiglcjEyLCVyMTEsOCksJXIxMgotCW1vdnEJMCglcmF4LCVyMTAsOCksJXhtbTQKLQltb3ZxCTgoJXJheCwlcjEwLDgpLCV4bW01Ci0JbW92cQkxNiglcmF4LCVyMTAsOCksJXhtbTYKLQltb3ZxCTI0KCVyYXgsJXIxMCw4KSwleG1tNworCWxlYXEJMTI4KCVyZHgpLCVyMTIKKwltb3ZkcWEJMCglcjEwKSwleG1tMAorCW1vdmRxYQkxNiglcjEwKSwleG1tMQorCWxlYXEJMjQtMTEyKCVyc3AsJXI5LDgpLCVyMTAKKwlhbmRxCSQtMTYsJXIxMAogCi0JbW92cQktOTYoJXIxMiksJXhtbTAKLQltb3ZxCS0zMiglcjEyKSwleG1tMQotCXBhbmQJJXhtbTQsJXhtbTAKLQltb3ZxCTMyKCVyMTIpLCV4bW0yCi0JcGFuZAkleG1tNSwleG1tMQotCW1vdnEJOTYoJXIxMiksJXhtbTMKLQlwYW5kCSV4bW02LCV4bW0yCi0JcG9yCSV4bW0xLCV4bW0wCi0JcGFuZAkleG1tNywleG1tMworCXBzaHVmZAkkMCwleG1tNSwleG1tNQorCW1vdmRxYQkleG1tMSwleG1tNAorCW1vdmRxYQkleG1tMSwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorLmJ5dGUJMHg2NworCW1vdmRxYQkleG1tNCwleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwxMTIoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwxMjgoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwxNDQoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKworCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywxNjAoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMTc2KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMTkyKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMjA4KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0yCisKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsMjI0KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDI0MCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDI1NiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLDI3MiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMgorCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW0zLDI4OCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwzMDQoJXIxMCkKKworCXBhZGRkCSV4bW0yLCV4bW0zCisuYnl0ZQkweDY3CisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwzMjAoJXIxMCkKKworCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMzM2KCVyMTApCisJcGFuZAk2NCglcjEyKSwleG1tMAorCisJcGFuZAk4MCglcjEyKSwleG1tMQorCXBhbmQJOTYoJXIxMiksJXhtbTIKKwltb3ZkcWEJJXhtbTMsMzUyKCVyMTApCisJcGFuZAkxMTIoJXIxMiksJXhtbTMKIAlwb3IJJXhtbTIsJXhtbTAKKwlwb3IJJXhtbTMsJXhtbTEKKwltb3ZkcWEJLTEyOCglcjEyKSwleG1tNAorCW1vdmRxYQktMTEyKCVyMTIpLCV4bW01CisJbW92ZHFhCS05NiglcjEyKSwleG1tMgorCXBhbmQJMTEyKCVyMTApLCV4bW00CisJbW92ZHFhCS04MCglcjEyKSwleG1tMworCXBhbmQJMTI4KCVyMTApLCV4bW01CisJcG9yCSV4bW00LCV4bW0wCisJcGFuZAkxNDQoJXIxMCksJXhtbTIKKwlwb3IJJXhtbTUsJXhtbTEKKwlwYW5kCTE2MCglcjEwKSwleG1tMworCXBvcgkleG1tMiwleG1tMAorCXBvcgkleG1tMywleG1tMQorCW1vdmRxYQktNjQoJXIxMiksJXhtbTQKKwltb3ZkcWEJLTQ4KCVyMTIpLCV4bW01CisJbW92ZHFhCS0zMiglcjEyKSwleG1tMgorCXBhbmQJMTc2KCVyMTApLCV4bW00CisJbW92ZHFhCS0xNiglcjEyKSwleG1tMworCXBhbmQJMTkyKCVyMTApLCV4bW01CisJcG9yCSV4bW00LCV4bW0wCisJcGFuZAkyMDgoJXIxMCksJXhtbTIKKwlwb3IJJXhtbTUsJXhtbTEKKwlwYW5kCTIyNCglcjEwKSwleG1tMworCXBvcgkleG1tMiwleG1tMAorCXBvcgkleG1tMywleG1tMQorCW1vdmRxYQkwKCVyMTIpLCV4bW00CisJbW92ZHFhCTE2KCVyMTIpLCV4bW01CisJbW92ZHFhCTMyKCVyMTIpLCV4bW0yCisJcGFuZAkyNDAoJXIxMCksJXhtbTQKKwltb3ZkcWEJNDgoJXIxMiksJXhtbTMKKwlwYW5kCTI1NiglcjEwKSwleG1tNQorCXBvcgkleG1tNCwleG1tMAorCXBhbmQJMjcyKCVyMTApLCV4bW0yCisJcG9yCSV4bW01LCV4bW0xCisJcGFuZAkyODgoJXIxMCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTAKKwlwb3IJJXhtbTMsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTAKKwlwc2h1ZmQJJDB4NGUsJXhtbTAsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTAKIAlsZWFxCTI1NiglcjEyKSwlcjEyCi0JcG9yCSV4bW0zLCV4bW0wCi0KIC5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1CiAKIAltb3ZxCSglcjgpLCVyOApAQCAtNjUsMjkgKzE3MCwxNCBAQAogCXhvcnEJJXIxNCwlcjE0CiAJeG9ycQklcjE1LCVyMTUKIAotCW1vdnEJLTk2KCVyMTIpLCV4bW0wCi0JbW92cQktMzIoJXIxMiksJXhtbTEKLQlwYW5kCSV4bW00LCV4bW0wCi0JbW92cQkzMiglcjEyKSwleG1tMgotCXBhbmQJJXhtbTUsJXhtbTEKLQogCW1vdnEJJXI4LCVyYnAKIAltdWxxCSVyYngKIAltb3ZxCSVyYXgsJXIxMAogCW1vdnEJKCVyY3gpLCVyYXgKIAotCW1vdnEJOTYoJXIxMiksJXhtbTMKLQlwYW5kCSV4bW02LCV4bW0yCi0JcG9yCSV4bW0xLCV4bW0wCi0JcGFuZAkleG1tNywleG1tMwotCiAJaW11bHEJJXIxMCwlcmJwCiAJbW92cQklcmR4LCVyMTEKIAotCXBvcgkleG1tMiwleG1tMAotCWxlYXEJMjU2KCVyMTIpLCVyMTIKLQlwb3IJJXhtbTMsJXhtbTAKLQogCW11bHEJJXJicAogCWFkZHEJJXJheCwlcjEwCiAJbW92cQk4KCVyc2kpLCVyYXgKQEAgLTEyMCwxNCArMjEwLDEyIEBACiAJY21wcQklcjksJXIxNQogCWpuZQkuTDFzdAogCi0uYnl0ZQkxMDIsNzIsMTUsMTI2LDE5NQogCiAJYWRkcQklcmF4LCVyMTMKLQltb3ZxCSglcnNpKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjExLCVyMTMKIAlhZGNxCSQwLCVyZHgKLQltb3ZxCSVyMTMsLTE2KCVyc3AsJXIxNSw4KQorCW1vdnEJJXIxMywtMTYoJXJzcCwlcjksOCkKIAltb3ZxCSVyZHgsJXIxMwogCW1vdnEJJXIxMCwlcjExCiAKQEAgLTE0MSwzMyArMjI5LDc4IEBACiAJam1wCS5Mb3V0ZXIKIC5hbGlnbgkxNgogLkxvdXRlcjoKKwlsZWFxCTI0KzEyOCglcnNwLCVyOSw4KSwlcmR4CisJYW5kcQkkLTE2LCVyZHgKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCW1vdmRxYQktMTI4KCVyMTIpLCV4bW0wCisJbW92ZHFhCS0xMTIoJXIxMiksJXhtbTEKKwltb3ZkcWEJLTk2KCVyMTIpLCV4bW0yCisJbW92ZHFhCS04MCglcjEyKSwleG1tMworCXBhbmQJLTEyOCglcmR4KSwleG1tMAorCXBhbmQJLTExMiglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJLTk2KCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAktODAoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJLTY0KCVyMTIpLCV4bW0wCisJbW92ZHFhCS00OCglcjEyKSwleG1tMQorCW1vdmRxYQktMzIoJXIxMiksJXhtbTIKKwltb3ZkcWEJLTE2KCVyMTIpLCV4bW0zCisJcGFuZAktNjQoJXJkeCksJXhtbTAKKwlwYW5kCS00OCglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJLTMyKCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAktMTYoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJMCglcjEyKSwleG1tMAorCW1vdmRxYQkxNiglcjEyKSwleG1tMQorCW1vdmRxYQkzMiglcjEyKSwleG1tMgorCW1vdmRxYQk0OCglcjEyKSwleG1tMworCXBhbmQJMCglcmR4KSwleG1tMAorCXBhbmQJMTYoJXJkeCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCTMyKCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAk0OCglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCW1vdmRxYQk2NCglcjEyKSwleG1tMAorCW1vdmRxYQk4MCglcjEyKSwleG1tMQorCW1vdmRxYQk5NiglcjEyKSwleG1tMgorCW1vdmRxYQkxMTIoJXIxMiksJXhtbTMKKwlwYW5kCTY0KCVyZHgpLCV4bW0wCisJcGFuZAk4MCglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJOTYoJXJkeCksJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTUKKwlwYW5kCTExMiglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCXBvcgkleG1tNSwleG1tNAorCXBzaHVmZAkkMHg0ZSwleG1tNCwleG1tMAorCXBvcgkleG1tNCwleG1tMAorCWxlYXEJMjU2KCVyMTIpLCVyMTIKKworCW1vdnEJKCVyc2kpLCVyYXgKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1CisKIAl4b3JxCSVyMTUsJXIxNQogCW1vdnEJJXI4LCVyYnAKIAltb3ZxCSglcnNwKSwlcjEwCiAKLQltb3ZxCS05NiglcjEyKSwleG1tMAotCW1vdnEJLTMyKCVyMTIpLCV4bW0xCi0JcGFuZAkleG1tNCwleG1tMAotCW1vdnEJMzIoJXIxMiksJXhtbTIKLQlwYW5kCSV4bW01LCV4bW0xCi0KIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMAogCW1vdnEJKCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAotCW1vdnEJOTYoJXIxMiksJXhtbTMKLQlwYW5kCSV4bW02LCV4bW0yCi0JcG9yCSV4bW0xLCV4bW0wCi0JcGFuZAkleG1tNywleG1tMwotCiAJaW11bHEJJXIxMCwlcmJwCiAJbW92cQklcmR4LCVyMTEKIAotCXBvcgkleG1tMiwleG1tMAotCWxlYXEJMjU2KCVyMTIpLCVyMTIKLQlwb3IJJXhtbTMsJXhtbTAKLQogCW11bHEJJXJicAogCWFkZHEJJXJheCwlcjEwCiAJbW92cQk4KCVyc2kpLCVyYXgKQEAgLTIwMywxNSArMzM2LDEyIEBACiAJY21wcQklcjksJXIxNQogCWpuZQkuTGlubmVyCiAKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1Ci0KIAlhZGRxCSVyYXgsJXIxMwotCW1vdnEJKCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTAsJXIxMwotCW1vdnEJKCVyc3AsJXIxNSw4KSwlcjEwCisJbW92cQkoJXJzcCwlcjksOCksJXIxMAogCWFkY3EJJDAsJXJkeAotCW1vdnEJJXIxMywtMTYoJXJzcCwlcjE1LDgpCisJbW92cQklcjEzLC0xNiglcnNwLCVyOSw4KQogCW1vdnEJJXJkeCwlcjEzCiAKIAl4b3JxCSVyZHgsJXJkeApAQCAtMjU3LDYgKzM4Nyw3IEBACiAKIAltb3ZxCTgoJXJzcCwlcjksOCksJXJzaQogCW1vdnEJJDEsJXJheAorCiAJbW92cQktNDgoJXJzaSksJXIxNQogCW1vdnEJLTQwKCVyc2kpLCVyMTQKIAltb3ZxCS0zMiglcnNpKSwlcjEzCkBAIC0yNzksMTAgKzQxMCwxMCBAQAogCXB1c2hxCSVyMTMKIAlwdXNocQklcjE0CiAJcHVzaHEJJXIxNQorCiAuYnl0ZQkweDY3Ci0JbW92bAklcjlkLCVyMTBkCiAJc2hsbAkkMywlcjlkCi0Jc2hsbAkkMysyLCVyMTBkCisJbGVhcQkoJXI5LCVyOSwyKSwlcjEwCiAJbmVncQklcjkKIAogCkBAIC0yOTIsMTkgKzQyMywyMSBAQAogCiAKIAotCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyMTEKLQlzdWJxCSVyc2ksJXIxMQorCisKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXIxMQorCXN1YnEJJXJkaSwlcjExCiAJYW5kcQkkNDA5NSwlcjExCiAJY21wcQklcjExLCVyMTAKIAlqYgkuTG11bDR4c3BfYWx0CiAJc3VicQklcjExLCVyc3AKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQktMzIwKCVyc3AsJXI5LDIpLCVyc3AKIAlqbXAJLkxtdWw0eHNwX2RvbmUKIAogLmFsaWduCTMyCiAuTG11bDR4c3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQk0MDk2LTMyMCgsJXI5LDIpLCVyMTAKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCXN1YnEJJXIxMCwlcjExCiAJbW92cQkkMCwlcjEwCiAJY21vdmNxCSVyMTAsJXIxMQpAQCAtMzIwLDYgKzQ1Myw3IEBACiAKIAltb3ZxCTQwKCVyc3ApLCVyc2kKIAltb3ZxCSQxLCVyYXgKKwogCW1vdnEJLTQ4KCVyc2kpLCVyMTUKIAltb3ZxCS00MCglcnNpKSwlcjE0CiAJbW92cQktMzIoJXJzaSksJXIxMwpAQCAtMzM1LDQ3ICs0NjksMTQxIEBACiAuYWxpZ24JMzIKIG11bDR4X2ludGVybmFsOgogCXNobHEJJDUsJXI5Ci0JbW92bAk4KCVyYXgpLCVyMTBkCi0JbGVhcQkyNTYoJXJkeCwlcjksMSksJXIxMworCW1vdmQJOCglcmF4KSwleG1tNQorCWxlYXEJLkxpbmMoJXJpcCksJXJheAorCWxlYXEJMTI4KCVyZHgsJXI5LDEpLCVyMTMKIAlzaHJxCSQ1LCVyOQotCW1vdnEJJXIxMCwlcjExCi0Jc2hycQkkMywlcjEwCi0JYW5kcQkkNywlcjExCi0Jbm90cQklcjEwCi0JbGVhcQkuTG1hZ2ljX21hc2tzKCVyaXApLCVyYXgKLQlhbmRxCSQzLCVyMTAKLQlsZWFxCTk2KCVyZHgsJXIxMSw4KSwlcjEyCi0JbW92cQkwKCVyYXgsJXIxMCw4KSwleG1tNAotCW1vdnEJOCglcmF4LCVyMTAsOCksJXhtbTUKLQlhZGRxCSQ3LCVyMTEKLQltb3ZxCTE2KCVyYXgsJXIxMCw4KSwleG1tNgotCW1vdnEJMjQoJXJheCwlcjEwLDgpLCV4bW03Ci0JYW5kcQkkNywlcjExCisJbW92ZHFhCTAoJXJheCksJXhtbTAKKwltb3ZkcWEJMTYoJXJheCksJXhtbTEKKwlsZWFxCTg4LTExMiglcnNwLCVyOSwxKSwlcjEwCisJbGVhcQkxMjgoJXJkeCksJXIxMgogCi0JbW92cQktOTYoJXIxMiksJXhtbTAKLQlsZWFxCTI1NiglcjEyKSwlcjE0Ci0JbW92cQktMzIoJXIxMiksJXhtbTEKLQlwYW5kCSV4bW00LCV4bW0wCi0JbW92cQkzMiglcjEyKSwleG1tMgotCXBhbmQJJXhtbTUsJXhtbTEKLQltb3ZxCTk2KCVyMTIpLCV4bW0zCi0JcGFuZAkleG1tNiwleG1tMgorCXBzaHVmZAkkMCwleG1tNSwleG1tNQorCW1vdmRxYQkleG1tMSwleG1tNAorLmJ5dGUJMHg2NywweDY3CisJbW92ZHFhCSV4bW0xLCV4bW0yCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCiAuYnl0ZQkweDY3Ci0JcG9yCSV4bW0xLCV4bW0wCi0JbW92cQktOTYoJXIxNCksJXhtbTEKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMTEyKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMTI4KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMTQ0KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0yCisKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsMTYwKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDE3NiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDE5MiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLDIwOCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMgorCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW0zLDIyNCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwyNDAoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwyNTYoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwyNzIoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKworCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywyODgoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMzA0KCVyMTApCisKKwlwYWRkZAkleG1tMiwleG1tMwogLmJ5dGUJMHg2NwotCXBhbmQJJXhtbTcsJXhtbTMKLS5ieXRlCTB4NjcKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDMyMCglcjEwKQorCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwzMzYoJXIxMCkKKwlwYW5kCTY0KCVyMTIpLCV4bW0wCisKKwlwYW5kCTgwKCVyMTIpLCV4bW0xCisJcGFuZAk5NiglcjEyKSwleG1tMgorCW1vdmRxYQkleG1tMywzNTIoJXIxMCkKKwlwYW5kCTExMiglcjEyKSwleG1tMwogCXBvcgkleG1tMiwleG1tMAotCW1vdnEJLTMyKCVyMTQpLCV4bW0yCi0uYnl0ZQkweDY3Ci0JcGFuZAkleG1tNCwleG1tMQotLmJ5dGUJMHg2NwotCXBvcgkleG1tMywleG1tMAotCW1vdnEJMzIoJXIxNCksJXhtbTMKLQorCXBvcgkleG1tMywleG1tMQorCW1vdmRxYQktMTI4KCVyMTIpLCV4bW00CisJbW92ZHFhCS0xMTIoJXIxMiksJXhtbTUKKwltb3ZkcWEJLTk2KCVyMTIpLCV4bW0yCisJcGFuZAkxMTIoJXIxMCksJXhtbTQKKwltb3ZkcWEJLTgwKCVyMTIpLCV4bW0zCisJcGFuZAkxMjgoJXIxMCksJXhtbTUKKwlwb3IJJXhtbTQsJXhtbTAKKwlwYW5kCTE0NCglcjEwKSwleG1tMgorCXBvcgkleG1tNSwleG1tMQorCXBhbmQJMTYwKCVyMTApLCV4bW0zCisJcG9yCSV4bW0yLCV4bW0wCisJcG9yCSV4bW0zLCV4bW0xCisJbW92ZHFhCS02NCglcjEyKSwleG1tNAorCW1vdmRxYQktNDgoJXIxMiksJXhtbTUKKwltb3ZkcWEJLTMyKCVyMTIpLCV4bW0yCisJcGFuZAkxNzYoJXIxMCksJXhtbTQKKwltb3ZkcWEJLTE2KCVyMTIpLCV4bW0zCisJcGFuZAkxOTIoJXIxMCksJXhtbTUKKwlwb3IJJXhtbTQsJXhtbTAKKwlwYW5kCTIwOCglcjEwKSwleG1tMgorCXBvcgkleG1tNSwleG1tMQorCXBhbmQJMjI0KCVyMTApLCV4bW0zCisJcG9yCSV4bW0yLCV4bW0wCisJcG9yCSV4bW0zLCV4bW0xCisJbW92ZHFhCTAoJXIxMiksJXhtbTQKKwltb3ZkcWEJMTYoJXIxMiksJXhtbTUKKwltb3ZkcWEJMzIoJXIxMiksJXhtbTIKKwlwYW5kCTI0MCglcjEwKSwleG1tNAorCW1vdmRxYQk0OCglcjEyKSwleG1tMworCXBhbmQJMjU2KCVyMTApLCV4bW01CisJcG9yCSV4bW00LCV4bW0wCisJcGFuZAkyNzIoJXIxMCksJXhtbTIKKwlwb3IJJXhtbTUsJXhtbTEKKwlwYW5kCTI4OCglcjEwKSwleG1tMworCXBvcgkleG1tMiwleG1tMAorCXBvcgkleG1tMywleG1tMQorCXBvcgkleG1tMSwleG1tMAorCXBzaHVmZAkkMHg0ZSwleG1tMCwleG1tMQorCXBvcgkleG1tMSwleG1tMAorCWxlYXEJMjU2KCVyMTIpLCVyMTIKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1Ci0JbW92cQk5NiglcjE0KSwleG1tMAorCiAJbW92cQklcjEzLDE2KzgoJXJzcCkKIAltb3ZxCSVyZGksNTYrOCglcnNwKQogCkBAIC0zODksMjYgKzYxNywxMCBAQAogCW1vdnEJJXJheCwlcjEwCiAJbW92cQkoJXJjeCksJXJheAogCi0JcGFuZAkleG1tNSwleG1tMgotCXBhbmQJJXhtbTYsJXhtbTMKLQlwb3IJJXhtbTIsJXhtbTEKLQogCWltdWxxCSVyMTAsJXJicAotCi0KLQotCi0KLQotCi0JbGVhcQk2NCs4KCVyc3AsJXIxMSw4KSwlcjE0CisJbGVhcQk2NCs4KCVyc3ApLCVyMTQKIAltb3ZxCSVyZHgsJXIxMQogCi0JcGFuZAkleG1tNywleG1tMAotCXBvcgkleG1tMywleG1tMQotCWxlYXEJNTEyKCVyMTIpLCVyMTIKLQlwb3IJJXhtbTEsJXhtbTAKLQogCW11bHEJJXJicAogCWFkZHEJJXJheCwlcjEwCiAJbW92cQk4KCVyc2ksJXI5LDEpLCVyYXgKQEAgLTQxNyw3ICs2MjksNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCTE2KCVyY3gpLCVyYXgKKwltb3ZxCTgoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXJkeCwlcjEwCiAKQEAgLTQyNyw3ICs2MzksNyBAQAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcmRpCiAJbGVhcQkzMiglcjkpLCVyMTUKLQlsZWFxCTY0KCVyY3gpLCVyY3gKKwlsZWFxCTMyKCVyY3gpLCVyY3gKIAlhZGNxCSQwLCVyZHgKIAltb3ZxCSVyZGksKCVyMTQpCiAJbW92cQklcmR4LCVyMTMKQEAgLTQzNyw3ICs2NDksNyBAQAogLkwxc3Q0eDoKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMAotCW1vdnEJLTMyKCVyY3gpLCVyYXgKKwltb3ZxCS0xNiglcmN4KSwlcmF4CiAJbGVhcQkzMiglcjE0KSwlcjE0CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTEKQEAgLTQ1Myw3ICs2NjUsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCS0xNiglcmN4KSwlcmF4CisJbW92cQktOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTAKIApAQCAtNDgzLDcgKzY5NSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJMTYoJXJjeCksJXJheAorCW1vdnEJOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTAKIApAQCAtNDkyLDcgKzcwNCw3IEBACiAJbW92cQkxNiglcnNpLCVyMTUsMSksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcmRpCi0JbGVhcQk2NCglcmN4KSwlcmN4CisJbGVhcQkzMiglcmN4KSwlcmN4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmRpLCglcjE0KQogCW1vdnEJJXJkeCwlcjEzCkBAIC01MDIsNyArNzE0LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEwCi0JbW92cQktMzIoJXJjeCksJXJheAorCW1vdnEJLTE2KCVyY3gpLCVyYXgKIAlsZWFxCTMyKCVyMTQpLCVyMTQKIAlhZGNxCSQwLCVyZHgKIAltb3ZxCSVyZHgsJXIxMQpAQCAtNTE4LDcgKzczMCw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJLTE2KCVyY3gpLCVyYXgKKwltb3ZxCS04KCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAltb3ZxCSVyZHgsJXIxMAogCkBAIC01MzEsOCArNzQzLDcgQEAKIAltb3ZxCSVyZGksLTE2KCVyMTQpCiAJbW92cQklcmR4LCVyMTMKIAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTUKLQlsZWFxCSglcmN4LCVyOSwyKSwlcmN4CisJbGVhcQkoJXJjeCwlcjksMSksJXJjeAogCiAJeG9ycQklcmRpLCVyZGkKIAlhZGRxCSVyMTAsJXIxMwpAQCAtNTQzLDYgKzc1NCw2MyBAQAogCiAuYWxpZ24JMzIKIC5Mb3V0ZXI0eDoKKwlsZWFxCTE2KzEyOCglcjE0KSwlcmR4CisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwltb3ZkcWEJLTEyOCglcjEyKSwleG1tMAorCW1vdmRxYQktMTEyKCVyMTIpLCV4bW0xCisJbW92ZHFhCS05NiglcjEyKSwleG1tMgorCW1vdmRxYQktODAoJXIxMiksJXhtbTMKKwlwYW5kCS0xMjgoJXJkeCksJXhtbTAKKwlwYW5kCS0xMTIoJXJkeCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS05NiglcmR4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTgwKCVyZHgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCS02NCglcjEyKSwleG1tMAorCW1vdmRxYQktNDgoJXIxMiksJXhtbTEKKwltb3ZkcWEJLTMyKCVyMTIpLCV4bW0yCisJbW92ZHFhCS0xNiglcjEyKSwleG1tMworCXBhbmQJLTY0KCVyZHgpLCV4bW0wCisJcGFuZAktNDgoJXJkeCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS0zMiglcmR4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTE2KCVyZHgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCTAoJXIxMiksJXhtbTAKKwltb3ZkcWEJMTYoJXIxMiksJXhtbTEKKwltb3ZkcWEJMzIoJXIxMiksJXhtbTIKKwltb3ZkcWEJNDgoJXIxMiksJXhtbTMKKwlwYW5kCTAoJXJkeCksJXhtbTAKKwlwYW5kCTE2KCVyZHgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAkzMiglcmR4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJNDgoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJNjQoJXIxMiksJXhtbTAKKwltb3ZkcWEJODAoJXIxMiksJXhtbTEKKwltb3ZkcWEJOTYoJXIxMiksJXhtbTIKKwltb3ZkcWEJMTEyKCVyMTIpLCV4bW0zCisJcGFuZAk2NCglcmR4KSwleG1tMAorCXBhbmQJODAoJXJkeCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCTk2KCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAkxMTIoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwlwb3IJJXhtbTUsJXhtbTQKKwlwc2h1ZmQJJDB4NGUsJXhtbTQsJXhtbTAKKwlwb3IJJXhtbTQsJXhtbTAKKwlsZWFxCTI1NiglcjEyKSwlcjEyCisuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5NQorCiAJbW92cQkoJXIxNCwlcjksMSksJXIxMAogCW1vdnEJJXI4LCVyYnAKIAltdWxxCSVyYngKQEAgLTU1MCwyNSArODE4LDExIEBACiAJbW92cQkoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCi0JbW92cQktOTYoJXIxMiksJXhtbTAKLQltb3ZxCS0zMiglcjEyKSwleG1tMQotCXBhbmQJJXhtbTQsJXhtbTAKLQltb3ZxCTMyKCVyMTIpLCV4bW0yCi0JcGFuZAkleG1tNSwleG1tMQotCW1vdnEJOTYoJXIxMiksJXhtbTMKLQogCWltdWxxCSVyMTAsJXJicAotLmJ5dGUJMHg2NwogCW1vdnEJJXJkeCwlcjExCiAJbW92cQklcmRpLCglcjE0KQogCi0JcGFuZAkleG1tNiwleG1tMgotCXBvcgkleG1tMSwleG1tMAotCXBhbmQJJXhtbTcsJXhtbTMKLQlwb3IJJXhtbTIsJXhtbTAKIAlsZWFxCSglcjE0LCVyOSwxKSwlcjE0Ci0JbGVhcQkyNTYoJXIxMiksJXIxMgotCXBvcgkleG1tMywleG1tMAogCiAJbXVscQklcmJwCiAJYWRkcQklcmF4LCVyMTAKQEAgLTU3OCw3ICs4MzIsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCTE2KCVyY3gpLCVyYXgKKwltb3ZxCTgoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJOCglcjE0KSwlcjExCiAJYWRjcQkkMCwlcmR4CkBAIC01OTAsNyArODQ0LDcgQEAKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTEsJXJkaQogCWxlYXEJMzIoJXI5KSwlcjE1Ci0JbGVhcQk2NCglcmN4KSwlcmN4CisJbGVhcQkzMiglcmN4KSwlcmN4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTMKIAlqbXAJLkxpbm5lcjR4CkBAIC01OTksNyArODUzLDcgQEAKIC5MaW5uZXI0eDoKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMAotCW1vdnEJLTMyKCVyY3gpLCVyYXgKKwltb3ZxCS0xNiglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQkxNiglcjE0KSwlcjEwCiAJbGVhcQkzMiglcjE0KSwlcjE0CkBAIC02MTcsNyArODcxLDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCi0JbW92cQktMTYoJXJjeCksJXJheAorCW1vdnEJLTgoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJLTgoJXIxNCksJXIxMQogCWFkY3EJJDAsJXJkeApAQCAtNjUxLDcgKzkwNSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJMTYoJXJjeCksJXJheAorCW1vdnEJOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQk4KCVyMTQpLCVyMTEKIAlhZGNxCSQwLCVyZHgKQEAgLTY2Miw3ICs5MTYsNyBAQAogCW1vdnEJMTYoJXJzaSwlcjE1LDEpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTEsJXJkaQotCWxlYXEJNjQoJXJjeCksJXJjeAorCWxlYXEJMzIoJXJjeCksJXJjeAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXIxMywtOCglcjE0KQogCW1vdnEJJXJkeCwlcjEzCkBAIC02NzIsNyArOTI2LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEwCi0JbW92cQktMzIoJXJjeCksJXJheAorCW1vdnEJLTE2KCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCTE2KCVyMTQpLCVyMTAKIAlsZWFxCTMyKCVyMTQpLCVyMTQKQEAgLTY5MSw3ICs5NDUsNyBAQAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCiAJbW92cQklcmJwLCVyYXgKLQltb3ZxCS0xNiglcmN4KSwlcmJwCisJbW92cQktOCglcmN4KSwlcmJwCiAJYWRjcQkkMCwlcmR4CiAJYWRkcQktOCglcjE0KSwlcjExCiAJYWRjcQkkMCwlcmR4CkBAIC03MDYsOSArOTYwLDggQEAKIAltb3ZxCSVyMTMsLTI0KCVyMTQpCiAJbW92cQklcmR4LCVyMTMKIAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTUKIAltb3ZxCSVyZGksLTE2KCVyMTQpCi0JbGVhcQkoJXJjeCwlcjksMiksJXJjeAorCWxlYXEJKCVyY3gsJXI5LDEpLCVyY3gKIAogCXhvcnEJJXJkaSwlcmRpCiAJYWRkcQklcjEwLCVyMTMKQEAgLTcxOSwxNiArOTcyLDIzIEBACiAKIAljbXBxCTE2KzgoJXJzcCksJXIxMgogCWpiCS5Mb3V0ZXI0eAorCXhvcnEJJXJheCwlcmF4CiAJc3VicQklcjEzLCVyYnAKIAlhZGNxCSVyMTUsJXIxNQogCW9ycQklcjE1LCVyZGkKLQl4b3JxCSQxLCVyZGkKKwlzdWJxCSVyZGksJXJheAogCWxlYXEJKCVyMTQsJXI5LDEpLCVyYngKLQlsZWFxCSglcmN4LCVyZGksOCksJXJicAorCW1vdnEJKCVyY3gpLCVyMTIKKwlsZWFxCSglcmN4KSwlcmJwCiAJbW92cQklcjksJXJjeAogCXNhcnEJJDMrMiwlcmN4CiAJbW92cQk1Nis4KCVyc3ApLCVyZGkKLQlqbXAJLkxzcXI0eF9zdWIKKwlkZWNxCSVyMTIKKwl4b3JxCSVyMTAsJXIxMAorCW1vdnEJOCglcmJwKSwlcjEzCisJbW92cQkxNiglcmJwKSwlcjE0CisJbW92cQkyNCglcmJwKSwlcjE1CisJam1wCS5Mc3FyNHhfc3ViX2VudHJ5CiAuc2l6ZQltdWw0eF9pbnRlcm5hbCwuLW11bDR4X2ludGVybmFsCiAuZ2xvYmwJYm5fcG93ZXI1CiAuaGlkZGVuIGJuX3Bvd2VyNQpAQCAtNzQyLDkgKzEwMDIsOSBAQAogCXB1c2hxCSVyMTMKIAlwdXNocQklcjE0CiAJcHVzaHEJJXIxNQotCW1vdmwJJXI5ZCwlcjEwZAorCiAJc2hsbAkkMywlcjlkCi0Jc2hsbAkkMysyLCVyMTBkCisJbGVhbAkoJXI5LCVyOSwyKSwlcjEwZAogCW5lZ3EJJXI5CiAJbW92cQkoJXI4KSwlcjgKIApAQCAtNzU0LDE5ICsxMDE0LDIwIEBACiAKIAogCi0JbGVhcQktNjQoJXJzcCwlcjksMiksJXIxMQotCXN1YnEJJXJzaSwlcjExCisKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXIxMQorCXN1YnEJJXJkaSwlcjExCiAJYW5kcQkkNDA5NSwlcjExCiAJY21wcQklcjExLCVyMTAKIAlqYgkuTHB3cl9zcF9hbHQKIAlzdWJxCSVyMTEsJXJzcAotCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyc3AKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCWptcAkuTHB3cl9zcF9kb25lCiAKIC5hbGlnbgkzMgogLkxwd3Jfc3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQk0MDk2LTMyMCgsJXI5LDIpLCVyMTAKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCXN1YnEJJXIxMCwlcjExCiAJbW92cQkkMCwlcjEwCiAJY21vdmNxCSVyMTAsJXIxMQpAQCAtNzk0LDEwICsxMDU1LDE1IEBACiAuYnl0ZQkxMDIsNzIsMTUsMTEwLDIyNgogCiAJY2FsbAlfX2JuX3Nxcjh4X2ludGVybmFsCisJY2FsbAlfX2JuX3Bvc3Q0eF9pbnRlcm5hbAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAljYWxsCV9fYm5fc3FyOHhfaW50ZXJuYWwKKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAJY2FsbAlfX2JuX3Nxcjh4X2ludGVybmFsCisJY2FsbAlfX2JuX3Bvc3Q0eF9pbnRlcm5hbAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAogLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDkKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMjI2CkBAIC0xMzQyLDkgKzE2MDgsOSBAQAogCW1vdnEJJXJieCwtMTYoJXJkaSkKIAltb3ZxCSVyOCwtOCglcmRpKQogLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMTMKLXNxcjh4X3JlZHVjdGlvbjoKK19fYm5fc3FyOHhfcmVkdWN0aW9uOgogCXhvcnEJJXJheCwlcmF4Ci0JbGVhcQkoJXJicCwlcjksMiksJXJjeAorCWxlYXEJKCVyOSwlcmJwLDEpLCVyY3gKIAlsZWFxCTQ4KzgoJXJzcCwlcjksMiksJXJkeAogCW1vdnEJJXJjeCwwKzgoJXJzcCkKIAlsZWFxCTQ4KzgoJXJzcCwlcjksMSksJXJkaQpAQCAtMTM3NywxNCArMTY0MywxNCBAQAogLmFsaWduCTMyCiAuTDh4X3JlZHVjZToKIAltdWxxCSVyYngKLQltb3ZxCTE2KCVyYnApLCVyYXgKKwltb3ZxCTgoJXJicCksJXJheAogCW5lZ3EJJXI4CiAJbW92cQklcmR4LCVyOAogCWFkY3EJJDAsJXI4CiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXI5Ci0JbW92cQkzMiglcmJwKSwlcmF4CisJbW92cQkxNiglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjksJXI4CiAJbW92cQklcmJ4LDQ4LTgrOCglcnNwLCVyY3gsOCkKQEAgLTEzOTMsNyArMTY1OSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMAotCW1vdnEJNDgoJXJicCksJXJheAorCW1vdnEJMjQoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMCwlcjkKIAltb3ZxCTMyKzgoJXJzcCksJXJzaQpAQCAtMTQwMiw3ICsxNjY4LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCi0JbW92cQk2NCglcmJwKSwlcmF4CisJbW92cQkzMiglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJaW11bHEJJXI4LCVyc2kKIAlhZGRxCSVyMTEsJXIxMApAQCAtMTQxMSw3ICsxNjc3LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEyCi0JbW92cQk4MCglcmJwKSwlcmF4CisJbW92cQk0MCglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjEyLCVyMTEKIAltb3ZxCSVyZHgsJXIxMgpAQCAtMTQxOSw3ICsxNjg1LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEzCi0JbW92cQk5NiglcmJwKSwlcmF4CisJbW92cQk0OCglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjEzLCVyMTIKIAltb3ZxCSVyZHgsJXIxMwpAQCAtMTQyNyw3ICsxNjkzLDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjE0Ci0JbW92cQkxMTIoJXJicCksJXJheAorCW1vdnEJNTYoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxNCwlcjEzCiAJbW92cQklcmR4LCVyMTQKQEAgLTE0NDUsNyArMTcxMSw3IEBACiAJZGVjbAklZWN4CiAJam56CS5MOHhfcmVkdWNlCiAKLQlsZWFxCTEyOCglcmJwKSwlcmJwCisJbGVhcQk2NCglcmJwKSwlcmJwCiAJeG9ycQklcmF4LCVyYXgKIAltb3ZxCTgrOCglcnNwKSwlcmR4CiAJY21wcQkwKzgoJXJzcCksJXJicApAQCAtMTQ3MSwxNCArMTczNywxNCBAQAogLkw4eF90YWlsOgogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjgKLQltb3ZxCTE2KCVyYnApLCVyYXgKKwltb3ZxCTgoJXJicCksJXJheAogCW1vdnEJJXI4LCglcmRpKQogCW1vdnEJJXJkeCwlcjgKIAlhZGNxCSQwLCVyOAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyOQotCW1vdnEJMzIoJXJicCksJXJheAorCW1vdnEJMTYoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXI5LCVyOAogCWxlYXEJOCglcmRpKSwlcmRpCkBAIC0xNDg3LDcgKzE3NTMsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTAKLQltb3ZxCTQ4KCVyYnApLCVyYXgKKwltb3ZxCTI0KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTAsJXI5CiAJbW92cQklcmR4LCVyMTAKQEAgLTE0OTUsNyArMTc2MSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJNjQoJXJicCksJXJheAorCW1vdnEJMzIoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcjEwCiAJbW92cQklcmR4LCVyMTEKQEAgLTE1MDMsNyArMTc2OSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMgotCW1vdnEJODAoJXJicCksJXJheAorCW1vdnEJNDAoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMiwlcjExCiAJbW92cQklcmR4LCVyMTIKQEAgLTE1MTEsNyArMTc3Nyw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMwotCW1vdnEJOTYoJXJicCksJXJheAorCW1vdnEJNDgoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMywlcjEyCiAJbW92cQklcmR4LCVyMTMKQEAgLTE1MTksNyArMTc4NSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxNAotCW1vdnEJMTEyKCVyYnApLCVyYXgKKwltb3ZxCTU2KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTQsJXIxMwogCW1vdnEJJXJkeCwlcjE0CkBAIC0xNTM3LDcgKzE4MDMsNyBAQAogCWRlY2wJJWVjeAogCWpuegkuTDh4X3RhaWwKIAotCWxlYXEJMTI4KCVyYnApLCVyYnAKKwlsZWFxCTY0KCVyYnApLCVyYnAKIAltb3ZxCTgrOCglcnNwKSwlcmR4CiAJY21wcQkwKzgoJXJzcCksJXJicAogCWphZQkuTDh4X3RhaWxfZG9uZQpAQCAtMTU2MSw2ICsxODI3LDE1IEBACiAuYWxpZ24JMzIKIC5MOHhfdGFpbF9kb25lOgogCWFkZHEJKCVyZHgpLCVyOAorCWFkY3EJJDAsJXI5CisJYWRjcQkkMCwlcjEwCisJYWRjcQkkMCwlcjExCisJYWRjcQkkMCwlcjEyCisJYWRjcQkkMCwlcjEzCisJYWRjcQkkMCwlcjE0CisJYWRjcQkkMCwlcjE1CisKKwogCXhvcnEJJXJheCwlcmF4CiAKIAluZWdxCSVyc2kKQEAgLTE1NzQsNyArMTg0OSw3IEBACiAJYWRjcQk0OCglcmRpKSwlcjE0CiAJYWRjcQk1NiglcmRpKSwlcjE1CiAJYWRjcQkkMCwlcmF4Ci0JbW92cQktMTYoJXJicCksJXJjeAorCW1vdnEJLTgoJXJicCksJXJjeAogCXhvcnEJJXJzaSwlcnNpCiAKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMjEzCkBAIC0xNTkyLDQ0ICsxODY3LDYyIEBACiAKIAljbXBxCSVyZHgsJXJkaQogCWpiCS5MOHhfcmVkdWN0aW9uX2xvb3AKLQotCXN1YnEJJXIxNSwlcmN4Ci0JbGVhcQkoJXJkaSwlcjksMSksJXJieAotCWFkY3EJJXJzaSwlcnNpCi0JbW92cQklcjksJXJjeAotCW9ycQklcnNpLCVyYXgKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMjA3Ci0JeG9ycQkkMSwlcmF4Ci0uYnl0ZQkxMDIsNzIsMTUsMTI2LDIwNgotCWxlYXEJKCVyYnAsJXJheCw4KSwlcmJwCi0Jc2FycQkkMysyLCVyY3gKLQlqbXAJLkxzcXI0eF9zdWIKLQorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJYm5fc3FyOHhfaW50ZXJuYWwsLi1ibl9zcXI4eF9pbnRlcm5hbAorLnR5cGUJX19ibl9wb3N0NHhfaW50ZXJuYWwsQGZ1bmN0aW9uCiAuYWxpZ24JMzIKK19fYm5fcG9zdDR4X2ludGVybmFsOgorCW1vdnEJMCglcmJwKSwlcjEyCisJbGVhcQkoJXJkaSwlcjksMSksJXJieAorCW1vdnEJJXI5LCVyY3gKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMjA3CisJbmVncQklcmF4CisuYnl0ZQkxMDIsNzIsMTUsMTI2LDIwNgorCXNhcnEJJDMrMiwlcmN4CisJZGVjcQklcjEyCisJeG9ycQklcjEwLCVyMTAKKwltb3ZxCTgoJXJicCksJXIxMworCW1vdnEJMTYoJXJicCksJXIxNAorCW1vdnEJMjQoJXJicCksJXIxNQorCWptcAkuTHNxcjR4X3N1Yl9lbnRyeQorCisuYWxpZ24JMTYKIC5Mc3FyNHhfc3ViOgotLmJ5dGUJMHg2NgotCW1vdnEJMCglcmJ4KSwlcjEyCi0JbW92cQk4KCVyYngpLCVyMTMKLQlzYmJxCTAoJXJicCksJXIxMgotCW1vdnEJMTYoJXJieCksJXIxNAotCXNiYnEJMTYoJXJicCksJXIxMwotCW1vdnEJMjQoJXJieCksJXIxNQotCWxlYXEJMzIoJXJieCksJXJieAotCXNiYnEJMzIoJXJicCksJXIxNAorCW1vdnEJMCglcmJwKSwlcjEyCisJbW92cQk4KCVyYnApLCVyMTMKKwltb3ZxCTE2KCVyYnApLCVyMTQKKwltb3ZxCTI0KCVyYnApLCVyMTUKKy5Mc3FyNHhfc3ViX2VudHJ5OgorCWxlYXEJMzIoJXJicCksJXJicAorCW5vdHEJJXIxMgorCW5vdHEJJXIxMworCW5vdHEJJXIxNAorCW5vdHEJJXIxNQorCWFuZHEJJXJheCwlcjEyCisJYW5kcQklcmF4LCVyMTMKKwlhbmRxCSVyYXgsJXIxNAorCWFuZHEJJXJheCwlcjE1CisKKwluZWdxCSVyMTAKKwlhZGNxCTAoJXJieCksJXIxMgorCWFkY3EJOCglcmJ4KSwlcjEzCisJYWRjcQkxNiglcmJ4KSwlcjE0CisJYWRjcQkyNCglcmJ4KSwlcjE1CiAJbW92cQklcjEyLDAoJXJkaSkKLQlzYmJxCTQ4KCVyYnApLCVyMTUKLQlsZWFxCTY0KCVyYnApLCVyYnAKKwlsZWFxCTMyKCVyYngpLCVyYngKIAltb3ZxCSVyMTMsOCglcmRpKQorCXNiYnEJJXIxMCwlcjEwCiAJbW92cQklcjE0LDE2KCVyZGkpCiAJbW92cQklcjE1LDI0KCVyZGkpCiAJbGVhcQkzMiglcmRpKSwlcmRpCiAKIAlpbmNxCSVyY3gKIAlqbnoJLkxzcXI0eF9zdWIKKwogCW1vdnEJJXI5LCVyMTAKIAluZWdxCSVyOQogCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJYm5fc3FyOHhfaW50ZXJuYWwsLi1ibl9zcXI4eF9pbnRlcm5hbAorLnNpemUJX19ibl9wb3N0NHhfaW50ZXJuYWwsLi1fX2JuX3Bvc3Q0eF9pbnRlcm5hbAogLmdsb2JsCWJuX2Zyb21fbW9udGdvbWVyeQogLmhpZGRlbiBibl9mcm9tX21vbnRnb21lcnkKIC50eXBlCWJuX2Zyb21fbW9udGdvbWVyeSxAZnVuY3Rpb24KQEAgLTE2NTIsMTAgKzE5NDUsOSBAQAogCXB1c2hxCSVyMTMKIAlwdXNocQklcjE0CiAJcHVzaHEJJXIxNQotLmJ5dGUJMHg2NwotCW1vdmwJJXI5ZCwlcjEwZAorCiAJc2hsbAkkMywlcjlkCi0Jc2hsbAkkMysyLCVyMTBkCisJbGVhcQkoJXI5LCVyOSwyKSwlcjEwCiAJbmVncQklcjkKIAltb3ZxCSglcjgpLCVyOAogCkBAIC0xNjY1LDE5ICsxOTU3LDIwIEBACiAKIAogCi0JbGVhcQktNjQoJXJzcCwlcjksMiksJXIxMQotCXN1YnEJJXJzaSwlcjExCisKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXIxMQorCXN1YnEJJXJkaSwlcjExCiAJYW5kcQkkNDA5NSwlcjExCiAJY21wcQklcjExLCVyMTAKIAlqYgkuTGZyb21fc3BfYWx0CiAJc3VicQklcjExLCVyc3AKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQktMzIwKCVyc3AsJXI5LDIpLCVyc3AKIAlqbXAJLkxmcm9tX3NwX2RvbmUKIAogLmFsaWduCTMyCiAuTGZyb21fc3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQk0MDk2LTMyMCgsJXI5LDIpLCVyMTAKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCXN1YnEJJXIxMCwlcjExCiAJbW92cQkkMCwlcjEwCiAJY21vdmNxCSVyMTAsJXIxMQpAQCAtMTcyOCw3ICsyMDIxLDggQEAKIC5ieXRlCTB4NjcKIAltb3ZxCSVyY3gsJXJicAogLmJ5dGUJMTAyLDczLDE1LDExMCwyMTgKLQljYWxsCXNxcjh4X3JlZHVjdGlvbgorCWNhbGwJX19ibl9zcXI4eF9yZWR1Y3Rpb24KKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAKIAlweG9yCSV4bW0wLCV4bW0wCiAJbGVhcQk0OCglcnNwKSwlcmF4CkBAIC0xNzc4LDQ2ICsyMDcyLDE3MCBAQAogLmdsb2JsCWJuX2dhdGhlcjUKIC5oaWRkZW4gYm5fZ2F0aGVyNQogLnR5cGUJYm5fZ2F0aGVyNSxAZnVuY3Rpb24KLS5hbGlnbgkxNgorLmFsaWduCTMyCiBibl9nYXRoZXI1OgotCW1vdmwJJWVjeCwlcjExZAotCXNocmwJJDMsJWVjeAotCWFuZHEJJDcsJXIxMQotCW5vdGwJJWVjeAotCWxlYXEJLkxtYWdpY19tYXNrcyglcmlwKSwlcmF4Ci0JYW5kbAkkMywlZWN4Ci0JbGVhcQkxMjgoJXJkeCwlcjExLDgpLCVyZHgKLQltb3ZxCTAoJXJheCwlcmN4LDgpLCV4bW00Ci0JbW92cQk4KCVyYXgsJXJjeCw4KSwleG1tNQotCW1vdnEJMTYoJXJheCwlcmN4LDgpLCV4bW02Ci0JbW92cQkyNCglcmF4LCVyY3gsOCksJXhtbTcKLQlqbXAJLkxnYXRoZXIKLS5hbGlnbgkxNgotLkxnYXRoZXI6Ci0JbW92cQktMTI4KCVyZHgpLCV4bW0wCi0JbW92cQktNjQoJXJkeCksJXhtbTEKLQlwYW5kCSV4bW00LCV4bW0wCi0JbW92cQkwKCVyZHgpLCV4bW0yCi0JcGFuZAkleG1tNSwleG1tMQotCW1vdnEJNjQoJXJkeCksJXhtbTMKLQlwYW5kCSV4bW02LCV4bW0yCi0JcG9yCSV4bW0xLCV4bW0wCi0JcGFuZAkleG1tNywleG1tMwotLmJ5dGUJMHg2NywweDY3Ci0JcG9yCSV4bW0yLCV4bW0wCi0JbGVhcQkyNTYoJXJkeCksJXJkeAotCXBvcgkleG1tMywleG1tMAorLkxTRUhfYmVnaW5fYm5fZ2F0aGVyNToKIAorLmJ5dGUJMHg0YywweDhkLDB4MTQsMHgyNAorLmJ5dGUJMHg0OCwweDgxLDB4ZWMsMHgwOCwweDAxLDB4MDAsMHgwMAorCWxlYXEJLkxpbmMoJXJpcCksJXJheAorCWFuZHEJJC0xNiwlcnNwCisKKwltb3ZkCSVlY3gsJXhtbTUKKwltb3ZkcWEJMCglcmF4KSwleG1tMAorCW1vdmRxYQkxNiglcmF4KSwleG1tMQorCWxlYXEJMTI4KCVyZHgpLCVyMTEKKwlsZWFxCTEyOCglcnNwKSwlcmF4CisKKwlwc2h1ZmQJJDAsJXhtbTUsJXhtbTUKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwtMTI4KCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsLTExMiglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLC05NiglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywtODAoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwtNjQoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwtNDgoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwtMzIoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsLTE2KCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0zCisKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDE2KCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMzIoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsNDgoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCw2NCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDgwKCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsOTYoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwltb3ZkcWEJJXhtbTMsMTEyKCVyYXgpCisJam1wCS5MZ2F0aGVyCisKKy5hbGlnbgkzMgorLkxnYXRoZXI6CisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwltb3ZkcWEJLTEyOCglcjExKSwleG1tMAorCW1vdmRxYQktMTEyKCVyMTEpLCV4bW0xCisJbW92ZHFhCS05NiglcjExKSwleG1tMgorCXBhbmQJLTEyOCglcmF4KSwleG1tMAorCW1vdmRxYQktODAoJXIxMSksJXhtbTMKKwlwYW5kCS0xMTIoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS05NiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTgwKCVyYXgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCS02NCglcjExKSwleG1tMAorCW1vdmRxYQktNDgoJXIxMSksJXhtbTEKKwltb3ZkcWEJLTMyKCVyMTEpLCV4bW0yCisJcGFuZAktNjQoJXJheCksJXhtbTAKKwltb3ZkcWEJLTE2KCVyMTEpLCV4bW0zCisJcGFuZAktNDgoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS0zMiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTE2KCVyYXgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCTAoJXIxMSksJXhtbTAKKwltb3ZkcWEJMTYoJXIxMSksJXhtbTEKKwltb3ZkcWEJMzIoJXIxMSksJXhtbTIKKwlwYW5kCTAoJXJheCksJXhtbTAKKwltb3ZkcWEJNDgoJXIxMSksJXhtbTMKKwlwYW5kCTE2KCVyYXgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAkzMiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJNDgoJXJheCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJNjQoJXIxMSksJXhtbTAKKwltb3ZkcWEJODAoJXIxMSksJXhtbTEKKwltb3ZkcWEJOTYoJXIxMSksJXhtbTIKKwlwYW5kCTY0KCVyYXgpLCV4bW0wCisJbW92ZHFhCTExMiglcjExKSwleG1tMworCXBhbmQJODAoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCTk2KCVyYXgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAkxMTIoJXJheCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwlwb3IJJXhtbTUsJXhtbTQKKwlsZWFxCTI1NiglcjExKSwlcjExCisJcHNodWZkCSQweDRlLCV4bW00LCV4bW0wCisJcG9yCSV4bW00LCV4bW0wCiAJbW92cQkleG1tMCwoJXJkaSkKIAlsZWFxCTgoJXJkaSksJXJkaQogCXN1YmwJJDEsJWVzaQogCWpuegkuTGdhdGhlcgorCisJbGVhcQkoJXIxMCksJXJzcAogCS5ieXRlCTB4ZjMsMHhjMwogLkxTRUhfZW5kX2JuX2dhdGhlcjU6CiAuc2l6ZQlibl9nYXRoZXI1LC4tYm5fZ2F0aGVyNQogLmFsaWduCTY0Ci0uTG1hZ2ljX21hc2tzOgotLmxvbmcJMCwwLCAwLDAsIDAsMCwgLTEsLTEKLS5sb25nCTAsMCwgMCwwLCAwLDAsICAwLDAKKy5MaW5jOgorLmxvbmcJMCwwLCAxLDEKKy5sb25nCTIsMiwgMiwyCiAuYnl0ZQk3NywxMTEsMTEwLDExNiwxMDMsMTExLDEwOSwxMDEsMTE0LDEyMSwzMiw3NywxMTcsMTA4LDExNiwxMDUsMTEyLDEwOCwxMDUsOTksOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExOSwxMDUsMTE2LDEwNCwzMiwxMTUsOTksOTcsMTE2LDExNiwxMDEsMTE0LDQ3LDEwMyw5NywxMTYsMTA0LDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0LDUyLDQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMSwzMiw2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk5NDk0MAotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LlMKQEAgLTAsMCArMSwxNTg1IEBACisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorLnRleHQJCisKKy5leHRlcm4JT1BFTlNTTF9pYTMyY2FwX1AKKy5oaWRkZW4gT1BFTlNTTF9pYTMyY2FwX1AKKworLmFsaWduCTY0CisuTHplcm86CisubG9uZwkwLDAsMCwwCisuTG9uZToKKy5sb25nCTEsMCwwLDAKKy5MaW5jOgorLmxvbmcJMCwxLDIsMworLkxmb3VyOgorLmxvbmcJNCw0LDQsNAorLkxpbmN5OgorLmxvbmcJMCwyLDQsNiwxLDMsNSw3CisuTGVpZ2h0OgorLmxvbmcJOCw4LDgsOCw4LDgsOCw4CisuTHJvdDE2OgorLmJ5dGUJMHgyLDB4MywweDAsMHgxLCAweDYsMHg3LDB4NCwweDUsIDB4YSwweGIsMHg4LDB4OSwgMHhlLDB4ZiwweGMsMHhkCisuTHJvdDI0OgorLmJ5dGUJMHgzLDB4MCwweDEsMHgyLCAweDcsMHg0LDB4NSwweDYsIDB4YiwweDgsMHg5LDB4YSwgMHhmLDB4YywweGQsMHhlCisuTHNpZ21hOgorLmJ5dGUJMTAxLDEyMCwxMTIsOTcsMTEwLDEwMCwzMiw1MSw1MCw0NSw5OCwxMjEsMTE2LDEwMSwzMiwxMDcsMAorLmJ5dGUJNjcsMTA0LDk3LDY3LDEwNCw5Nyw1MCw0OCwzMiwxMDIsMTExLDExNCwzMiwxMjAsNTYsNTQsOTUsNTQsNTIsNDQsMzIsNjcsODIsODksODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0LDExMSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYsMTExLDExNCwxMDMsNjIsMAorLmdsb2JsCUNoYUNoYTIwX2N0cjMyCisuaGlkZGVuIENoYUNoYTIwX2N0cjMyCisudHlwZQlDaGFDaGEyMF9jdHIzMixAZnVuY3Rpb24KKy5hbGlnbgk2NAorQ2hhQ2hhMjBfY3RyMzI6CisJY21wcQkkMCwlcmR4CisJamUJLkxub19kYXRhCisJbW92cQlPUEVOU1NMX2lhMzJjYXBfUCs0KCVyaXApLCVyMTAKKwl0ZXN0bAkkNTEyLCVyMTBkCisJam56CS5MQ2hhQ2hhMjBfc3NzZTMKKworCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCXN1YnEJJDY0KzI0LCVyc3AKKworCisJbW92ZHF1CSglcmN4KSwleG1tMQorCW1vdmRxdQkxNiglcmN4KSwleG1tMgorCW1vdmRxdQkoJXI4KSwleG1tMworCW1vdmRxYQkuTG9uZSglcmlwKSwleG1tNAorCisKKwltb3ZkcWEJJXhtbTEsMTYoJXJzcCkKKwltb3ZkcWEJJXhtbTIsMzIoJXJzcCkKKwltb3ZkcWEJJXhtbTMsNDgoJXJzcCkKKwltb3ZxCSVyZHgsJXJicAorCWptcAkuTG9vcF9vdXRlcgorCisuYWxpZ24JMzIKKy5Mb29wX291dGVyOgorCW1vdmwJJDB4NjE3MDc4NjUsJWVheAorCW1vdmwJJDB4MzMyMDY0NmUsJWVieAorCW1vdmwJJDB4Nzk2MjJkMzIsJWVjeAorCW1vdmwJJDB4NmIyMDY1NzQsJWVkeAorCW1vdmwJMTYoJXJzcCksJXI4ZAorCW1vdmwJMjAoJXJzcCksJXI5ZAorCW1vdmwJMjQoJXJzcCksJXIxMGQKKwltb3ZsCTI4KCVyc3ApLCVyMTFkCisJbW92ZAkleG1tMywlcjEyZAorCW1vdmwJNTIoJXJzcCksJXIxM2QKKwltb3ZsCTU2KCVyc3ApLCVyMTRkCisJbW92bAk2MCglcnNwKSwlcjE1ZAorCisJbW92cQklcmJwLDY0KzAoJXJzcCkKKwltb3ZsCSQxMCwlZWJwCisJbW92cQklcnNpLDY0KzgoJXJzcCkKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMjE0CisJbW92cQklcmRpLDY0KzE2KCVyc3ApCisJbW92cQklcnNpLCVyZGkKKwlzaHJxCSQzMiwlcmRpCisJam1wCS5Mb29wCisKKy5hbGlnbgkzMgorLkxvb3A6CisJYWRkbAklcjhkLCVlYXgKKwl4b3JsCSVlYXgsJXIxMmQKKwlyb2xsCSQxNiwlcjEyZAorCWFkZGwJJXI5ZCwlZWJ4CisJeG9ybAklZWJ4LCVyMTNkCisJcm9sbAkkMTYsJXIxM2QKKwlhZGRsCSVyMTJkLCVlc2kKKwl4b3JsCSVlc2ksJXI4ZAorCXJvbGwJJDEyLCVyOGQKKwlhZGRsCSVyMTNkLCVlZGkKKwl4b3JsCSVlZGksJXI5ZAorCXJvbGwJJDEyLCVyOWQKKwlhZGRsCSVyOGQsJWVheAorCXhvcmwJJWVheCwlcjEyZAorCXJvbGwJJDgsJXIxMmQKKwlhZGRsCSVyOWQsJWVieAorCXhvcmwJJWVieCwlcjEzZAorCXJvbGwJJDgsJXIxM2QKKwlhZGRsCSVyMTJkLCVlc2kKKwl4b3JsCSVlc2ksJXI4ZAorCXJvbGwJJDcsJXI4ZAorCWFkZGwJJXIxM2QsJWVkaQorCXhvcmwJJWVkaSwlcjlkCisJcm9sbAkkNywlcjlkCisJbW92bAklZXNpLDMyKCVyc3ApCisJbW92bAklZWRpLDM2KCVyc3ApCisJbW92bAk0MCglcnNwKSwlZXNpCisJbW92bAk0NCglcnNwKSwlZWRpCisJYWRkbAklcjEwZCwlZWN4CisJeG9ybAklZWN4LCVyMTRkCisJcm9sbAkkMTYsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwl4b3JsCSVlZHgsJXIxNWQKKwlyb2xsCSQxNiwlcjE1ZAorCWFkZGwJJXIxNGQsJWVzaQorCXhvcmwJJWVzaSwlcjEwZAorCXJvbGwJJDEyLCVyMTBkCisJYWRkbAklcjE1ZCwlZWRpCisJeG9ybAklZWRpLCVyMTFkCisJcm9sbAkkMTIsJXIxMWQKKwlhZGRsCSVyMTBkLCVlY3gKKwl4b3JsCSVlY3gsJXIxNGQKKwlyb2xsCSQ4LCVyMTRkCisJYWRkbAklcjExZCwlZWR4CisJeG9ybAklZWR4LCVyMTVkCisJcm9sbAkkOCwlcjE1ZAorCWFkZGwJJXIxNGQsJWVzaQorCXhvcmwJJWVzaSwlcjEwZAorCXJvbGwJJDcsJXIxMGQKKwlhZGRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlZGksJXIxMWQKKwlyb2xsCSQ3LCVyMTFkCisJYWRkbAklcjlkLCVlYXgKKwl4b3JsCSVlYXgsJXIxNWQKKwlyb2xsCSQxNiwlcjE1ZAorCWFkZGwJJXIxMGQsJWVieAorCXhvcmwJJWVieCwlcjEyZAorCXJvbGwJJDE2LCVyMTJkCisJYWRkbAklcjE1ZCwlZXNpCisJeG9ybAklZXNpLCVyOWQKKwlyb2xsCSQxMiwlcjlkCisJYWRkbAklcjEyZCwlZWRpCisJeG9ybAklZWRpLCVyMTBkCisJcm9sbAkkMTIsJXIxMGQKKwlhZGRsCSVyOWQsJWVheAorCXhvcmwJJWVheCwlcjE1ZAorCXJvbGwJJDgsJXIxNWQKKwlhZGRsCSVyMTBkLCVlYngKKwl4b3JsCSVlYngsJXIxMmQKKwlyb2xsCSQ4LCVyMTJkCisJYWRkbAklcjE1ZCwlZXNpCisJeG9ybAklZXNpLCVyOWQKKwlyb2xsCSQ3LCVyOWQKKwlhZGRsCSVyMTJkLCVlZGkKKwl4b3JsCSVlZGksJXIxMGQKKwlyb2xsCSQ3LCVyMTBkCisJbW92bAklZXNpLDQwKCVyc3ApCisJbW92bAklZWRpLDQ0KCVyc3ApCisJbW92bAkzMiglcnNwKSwlZXNpCisJbW92bAkzNiglcnNwKSwlZWRpCisJYWRkbAklcjExZCwlZWN4CisJeG9ybAklZWN4LCVyMTNkCisJcm9sbAkkMTYsJXIxM2QKKwlhZGRsCSVyOGQsJWVkeAorCXhvcmwJJWVkeCwlcjE0ZAorCXJvbGwJJDE2LCVyMTRkCisJYWRkbAklcjEzZCwlZXNpCisJeG9ybAklZXNpLCVyMTFkCisJcm9sbAkkMTIsJXIxMWQKKwlhZGRsCSVyMTRkLCVlZGkKKwl4b3JsCSVlZGksJXI4ZAorCXJvbGwJJDEyLCVyOGQKKwlhZGRsCSVyMTFkLCVlY3gKKwl4b3JsCSVlY3gsJXIxM2QKKwlyb2xsCSQ4LCVyMTNkCisJYWRkbAklcjhkLCVlZHgKKwl4b3JsCSVlZHgsJXIxNGQKKwlyb2xsCSQ4LCVyMTRkCisJYWRkbAklcjEzZCwlZXNpCisJeG9ybAklZXNpLCVyMTFkCisJcm9sbAkkNywlcjExZAorCWFkZGwJJXIxNGQsJWVkaQorCXhvcmwJJWVkaSwlcjhkCisJcm9sbAkkNywlcjhkCisJZGVjbAklZWJwCisJam56CS5Mb29wCisJbW92bAklZWRpLDM2KCVyc3ApCisJbW92bAklZXNpLDMyKCVyc3ApCisJbW92cQk2NCglcnNwKSwlcmJwCisJbW92ZHFhCSV4bW0yLCV4bW0xCisJbW92cQk2NCs4KCVyc3ApLCVyc2kKKwlwYWRkZAkleG1tNCwleG1tMworCW1vdnEJNjQrMTYoJXJzcCksJXJkaQorCisJYWRkbAkkMHg2MTcwNzg2NSwlZWF4CisJYWRkbAkkMHgzMzIwNjQ2ZSwlZWJ4CisJYWRkbAkkMHg3OTYyMmQzMiwlZWN4CisJYWRkbAkkMHg2YjIwNjU3NCwlZWR4CisJYWRkbAkxNiglcnNwKSwlcjhkCisJYWRkbAkyMCglcnNwKSwlcjlkCisJYWRkbAkyNCglcnNwKSwlcjEwZAorCWFkZGwJMjgoJXJzcCksJXIxMWQKKwlhZGRsCTQ4KCVyc3ApLCVyMTJkCisJYWRkbAk1MiglcnNwKSwlcjEzZAorCWFkZGwJNTYoJXJzcCksJXIxNGQKKwlhZGRsCTYwKCVyc3ApLCVyMTVkCisJcGFkZGQJMzIoJXJzcCksJXhtbTEKKworCWNtcHEJJDY0LCVyYnAKKwlqYgkuTHRhaWwKKworCXhvcmwJMCglcnNpKSwlZWF4CisJeG9ybAk0KCVyc2kpLCVlYngKKwl4b3JsCTgoJXJzaSksJWVjeAorCXhvcmwJMTIoJXJzaSksJWVkeAorCXhvcmwJMTYoJXJzaSksJXI4ZAorCXhvcmwJMjAoJXJzaSksJXI5ZAorCXhvcmwJMjQoJXJzaSksJXIxMGQKKwl4b3JsCTI4KCVyc2kpLCVyMTFkCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0wCisJeG9ybAk0OCglcnNpKSwlcjEyZAorCXhvcmwJNTIoJXJzaSksJXIxM2QKKwl4b3JsCTU2KCVyc2kpLCVyMTRkCisJeG9ybAk2MCglcnNpKSwlcjE1ZAorCWxlYXEJNjQoJXJzaSksJXJzaQorCXB4b3IJJXhtbTEsJXhtbTAKKworCW1vdmRxYQkleG1tMiwzMiglcnNwKQorCW1vdmQJJXhtbTMsNDgoJXJzcCkKKworCW1vdmwJJWVheCwwKCVyZGkpCisJbW92bAklZWJ4LDQoJXJkaSkKKwltb3ZsCSVlY3gsOCglcmRpKQorCW1vdmwJJWVkeCwxMiglcmRpKQorCW1vdmwJJXI4ZCwxNiglcmRpKQorCW1vdmwJJXI5ZCwyMCglcmRpKQorCW1vdmwJJXIxMGQsMjQoJXJkaSkKKwltb3ZsCSVyMTFkLDI4KCVyZGkpCisJbW92ZHF1CSV4bW0wLDMyKCVyZGkpCisJbW92bAklcjEyZCw0OCglcmRpKQorCW1vdmwJJXIxM2QsNTIoJXJkaSkKKwltb3ZsCSVyMTRkLDU2KCVyZGkpCisJbW92bAklcjE1ZCw2MCglcmRpKQorCWxlYXEJNjQoJXJkaSksJXJkaQorCisJc3VicQkkNjQsJXJicAorCWpuegkuTG9vcF9vdXRlcgorCisJam1wCS5MZG9uZQorCisuYWxpZ24JMTYKKy5MdGFpbDoKKwltb3ZsCSVlYXgsMCglcnNwKQorCW1vdmwJJWVieCw0KCVyc3ApCisJeG9ycQklcmJ4LCVyYngKKwltb3ZsCSVlY3gsOCglcnNwKQorCW1vdmwJJWVkeCwxMiglcnNwKQorCW1vdmwJJXI4ZCwxNiglcnNwKQorCW1vdmwJJXI5ZCwyMCglcnNwKQorCW1vdmwJJXIxMGQsMjQoJXJzcCkKKwltb3ZsCSVyMTFkLDI4KCVyc3ApCisJbW92ZHFhCSV4bW0xLDMyKCVyc3ApCisJbW92bAklcjEyZCw0OCglcnNwKQorCW1vdmwJJXIxM2QsNTIoJXJzcCkKKwltb3ZsCSVyMTRkLDU2KCVyc3ApCisJbW92bAklcjE1ZCw2MCglcnNwKQorCisuTG9vcF90YWlsOgorCW1vdnpibAkoJXJzaSwlcmJ4LDEpLCVlYXgKKwltb3Z6YmwJKCVyc3AsJXJieCwxKSwlZWR4CisJbGVhcQkxKCVyYngpLCVyYngKKwl4b3JsCSVlZHgsJWVheAorCW1vdmIJJWFsLC0xKCVyZGksJXJieCwxKQorCWRlY3EJJXJicAorCWpuegkuTG9vcF90YWlsCisKKy5MZG9uZToKKwlhZGRxCSQ2NCsyNCwlcnNwCisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcmJwCisJcG9wcQklcmJ4CisuTG5vX2RhdGE6CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlDaGFDaGEyMF9jdHIzMiwuLUNoYUNoYTIwX2N0cjMyCisudHlwZQlDaGFDaGEyMF9zc3NlMyxAZnVuY3Rpb24KKy5hbGlnbgkzMgorQ2hhQ2hhMjBfc3NzZTM6CisuTENoYUNoYTIwX3Nzc2UzOgorCWNtcHEJJDEyOCwlcmR4CisJamEJLkxDaGFDaGEyMF80eAorCisuTGRvX3NzZTNfYWZ0ZXJfYWxsOgorCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCisJc3VicQkkNjQrMjQsJXJzcAorCW1vdmRxYQkuTHNpZ21hKCVyaXApLCV4bW0wCisJbW92ZHF1CSglcmN4KSwleG1tMQorCW1vdmRxdQkxNiglcmN4KSwleG1tMgorCW1vdmRxdQkoJXI4KSwleG1tMworCW1vdmRxYQkuTHJvdDE2KCVyaXApLCV4bW02CisJbW92ZHFhCS5Mcm90MjQoJXJpcCksJXhtbTcKKworCW1vdmRxYQkleG1tMCwwKCVyc3ApCisJbW92ZHFhCSV4bW0xLDE2KCVyc3ApCisJbW92ZHFhCSV4bW0yLDMyKCVyc3ApCisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisJbW92bAkkMTAsJWVicAorCWptcAkuTG9vcF9zc3NlMworCisuYWxpZ24JMzIKKy5Mb29wX291dGVyX3Nzc2UzOgorCW1vdmRxYQkuTG9uZSglcmlwKSwleG1tMworCW1vdmRxYQkwKCVyc3ApLCV4bW0wCisJbW92ZHFhCTE2KCVyc3ApLCV4bW0xCisJbW92ZHFhCTMyKCVyc3ApLCV4bW0yCisJcGFkZGQJNDgoJXJzcCksJXhtbTMKKwltb3ZsCSQxMCwlZWJwCisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisJam1wCS5Mb29wX3Nzc2UzCisKKy5hbGlnbgkzMgorLkxvb3Bfc3NzZTM6CisJcGFkZGQJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW0wLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjIKKwlwYWRkZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwlwc3JsZAkkMjAsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMworCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyNSwleG1tMQorCXBzbGxkCSQ3LCV4bW00CisJcG9yCSV4bW00LCV4bW0xCisJcHNodWZkCSQ3OCwleG1tMiwleG1tMgorCXBzaHVmZAkkNTcsJXhtbTEsJXhtbTEKKwlwc2h1ZmQJJDE0NywleG1tMywleG1tMworCW5vcAorCXBhZGRkCSV4bW0xLCV4bW0wCisJcHhvcgkleG1tMCwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjIyCisJcGFkZGQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW00CisJcHNybGQJJDIwLCV4bW0xCisJcHNsbGQJJDEyLCV4bW00CisJcG9yCSV4bW00LCV4bW0xCisJcGFkZGQJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW0wLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjMKKwlwYWRkZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwlwc3JsZAkkMjUsJXhtbTEKKwlwc2xsZAkkNywleG1tNAorCXBvcgkleG1tNCwleG1tMQorCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTIKKwlwc2h1ZmQJJDE0NywleG1tMSwleG1tMQorCXBzaHVmZAkkNTcsJXhtbTMsJXhtbTMKKwlkZWNsCSVlYnAKKwlqbnoJLkxvb3Bfc3NzZTMKKwlwYWRkZAkwKCVyc3ApLCV4bW0wCisJcGFkZGQJMTYoJXJzcCksJXhtbTEKKwlwYWRkZAkzMiglcnNwKSwleG1tMgorCXBhZGRkCTQ4KCVyc3ApLCV4bW0zCisKKwljbXBxCSQ2NCwlcmR4CisJamIJLkx0YWlsX3Nzc2UzCisKKwltb3ZkcXUJMCglcnNpKSwleG1tNAorCW1vdmRxdQkxNiglcnNpKSwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTAKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTQKKwlweG9yCSV4bW01LCV4bW0xCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW01CisJbGVhcQk2NCglcnNpKSwlcnNpCisJcHhvcgkleG1tNCwleG1tMgorCXB4b3IJJXhtbTUsJXhtbTMKKworCW1vdmRxdQkleG1tMCwwKCVyZGkpCisJbW92ZHF1CSV4bW0xLDE2KCVyZGkpCisJbW92ZHF1CSV4bW0yLDMyKCVyZGkpCisJbW92ZHF1CSV4bW0zLDQ4KCVyZGkpCisJbGVhcQk2NCglcmRpKSwlcmRpCisKKwlzdWJxCSQ2NCwlcmR4CisJam56CS5Mb29wX291dGVyX3Nzc2UzCisKKwlqbXAJLkxkb25lX3Nzc2UzCisKKy5hbGlnbgkxNgorLkx0YWlsX3Nzc2UzOgorCW1vdmRxYQkleG1tMCwwKCVyc3ApCisJbW92ZHFhCSV4bW0xLDE2KCVyc3ApCisJbW92ZHFhCSV4bW0yLDMyKCVyc3ApCisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisJeG9ycQklcmJ4LCVyYngKKworLkxvb3BfdGFpbF9zc3NlMzoKKwltb3Z6YmwJKCVyc2ksJXJieCwxKSwlZWF4CisJbW92emJsCSglcnNwLCVyYngsMSksJWVjeAorCWxlYXEJMSglcmJ4KSwlcmJ4CisJeG9ybAklZWN4LCVlYXgKKwltb3ZiCSVhbCwtMSglcmRpLCVyYngsMSkKKwlkZWNxCSVyZHgKKwlqbnoJLkxvb3BfdGFpbF9zc3NlMworCisuTGRvbmVfc3NzZTM6CisJYWRkcQkkNjQrMjQsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJicAorCXBvcHEJJXJieAorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJQ2hhQ2hhMjBfc3NzZTMsLi1DaGFDaGEyMF9zc3NlMworLnR5cGUJQ2hhQ2hhMjBfNHgsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK0NoYUNoYTIwXzR4OgorLkxDaGFDaGEyMF80eDoKKwltb3ZxCSVyMTAsJXIxMQorCXNocnEJJDMyLCVyMTAKKwl0ZXN0cQkkMzIsJXIxMAorCWpuegkuTENoYUNoYTIwXzh4CisJY21wcQkkMTkyLCVyZHgKKwlqYQkuTHByb2NlZWQ0eAorCisJYW5kcQkkNzEzMDMxNjgsJXIxMQorCWNtcHEJJDQxOTQzMDQsJXIxMQorCWplCS5MZG9fc3NlM19hZnRlcl9hbGwKKworLkxwcm9jZWVkNHg6CisJbGVhcQktMTIwKCVyc3ApLCVyMTEKKwlzdWJxCSQweDE0OCswLCVyc3AKKwltb3ZkcWEJLkxzaWdtYSglcmlwKSwleG1tMTEKKwltb3ZkcXUJKCVyY3gpLCV4bW0xNQorCW1vdmRxdQkxNiglcmN4KSwleG1tNworCW1vdmRxdQkoJXI4KSwleG1tMworCWxlYXEJMjU2KCVyc3ApLCVyY3gKKwlsZWFxCS5Mcm90MTYoJXJpcCksJXIxMAorCWxlYXEJLkxyb3QyNCglcmlwKSwlcjExCisKKwlwc2h1ZmQJJDB4MDAsJXhtbTExLCV4bW04CisJcHNodWZkCSQweDU1LCV4bW0xMSwleG1tOQorCW1vdmRxYQkleG1tOCw2NCglcnNwKQorCXBzaHVmZAkkMHhhYSwleG1tMTEsJXhtbTEwCisJbW92ZHFhCSV4bW05LDgwKCVyc3ApCisJcHNodWZkCSQweGZmLCV4bW0xMSwleG1tMTEKKwltb3ZkcWEJJXhtbTEwLDk2KCVyc3ApCisJbW92ZHFhCSV4bW0xMSwxMTIoJXJzcCkKKworCXBzaHVmZAkkMHgwMCwleG1tMTUsJXhtbTEyCisJcHNodWZkCSQweDU1LCV4bW0xNSwleG1tMTMKKwltb3ZkcWEJJXhtbTEyLDEyOC0yNTYoJXJjeCkKKwlwc2h1ZmQJJDB4YWEsJXhtbTE1LCV4bW0xNAorCW1vdmRxYQkleG1tMTMsMTQ0LTI1NiglcmN4KQorCXBzaHVmZAkkMHhmZiwleG1tMTUsJXhtbTE1CisJbW92ZHFhCSV4bW0xNCwxNjAtMjU2KCVyY3gpCisJbW92ZHFhCSV4bW0xNSwxNzYtMjU2KCVyY3gpCisKKwlwc2h1ZmQJJDB4MDAsJXhtbTcsJXhtbTQKKwlwc2h1ZmQJJDB4NTUsJXhtbTcsJXhtbTUKKwltb3ZkcWEJJXhtbTQsMTkyLTI1NiglcmN4KQorCXBzaHVmZAkkMHhhYSwleG1tNywleG1tNgorCW1vdmRxYQkleG1tNSwyMDgtMjU2KCVyY3gpCisJcHNodWZkCSQweGZmLCV4bW03LCV4bW03CisJbW92ZHFhCSV4bW02LDIyNC0yNTYoJXJjeCkKKwltb3ZkcWEJJXhtbTcsMjQwLTI1NiglcmN4KQorCisJcHNodWZkCSQweDAwLCV4bW0zLCV4bW0wCisJcHNodWZkCSQweDU1LCV4bW0zLCV4bW0xCisJcGFkZGQJLkxpbmMoJXJpcCksJXhtbTAKKwlwc2h1ZmQJJDB4YWEsJXhtbTMsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMjcyLTI1NiglcmN4KQorCXBzaHVmZAkkMHhmZiwleG1tMywleG1tMworCW1vdmRxYQkleG1tMiwyODgtMjU2KCVyY3gpCisJbW92ZHFhCSV4bW0zLDMwNC0yNTYoJXJjeCkKKworCWptcAkuTG9vcF9lbnRlcjR4CisKKy5hbGlnbgkzMgorLkxvb3Bfb3V0ZXI0eDoKKwltb3ZkcWEJNjQoJXJzcCksJXhtbTgKKwltb3ZkcWEJODAoJXJzcCksJXhtbTkKKwltb3ZkcWEJOTYoJXJzcCksJXhtbTEwCisJbW92ZHFhCTExMiglcnNwKSwleG1tMTEKKwltb3ZkcWEJMTI4LTI1NiglcmN4KSwleG1tMTIKKwltb3ZkcWEJMTQ0LTI1NiglcmN4KSwleG1tMTMKKwltb3ZkcWEJMTYwLTI1NiglcmN4KSwleG1tMTQKKwltb3ZkcWEJMTc2LTI1NiglcmN4KSwleG1tMTUKKwltb3ZkcWEJMTkyLTI1NiglcmN4KSwleG1tNAorCW1vdmRxYQkyMDgtMjU2KCVyY3gpLCV4bW01CisJbW92ZHFhCTIyNC0yNTYoJXJjeCksJXhtbTYKKwltb3ZkcWEJMjQwLTI1NiglcmN4KSwleG1tNworCW1vdmRxYQkyNTYtMjU2KCVyY3gpLCV4bW0wCisJbW92ZHFhCTI3Mi0yNTYoJXJjeCksJXhtbTEKKwltb3ZkcWEJMjg4LTI1NiglcmN4KSwleG1tMgorCW1vdmRxYQkzMDQtMjU2KCVyY3gpLCV4bW0zCisJcGFkZGQJLkxmb3VyKCVyaXApLCV4bW0wCisKKy5Mb29wX2VudGVyNHg6CisJbW92ZHFhCSV4bW02LDMyKCVyc3ApCisJbW92ZHFhCSV4bW03LDQ4KCVyc3ApCisJbW92ZHFhCSglcjEwKSwleG1tNworCW1vdmwJJDEwLCVlYXgKKwltb3ZkcWEJJXhtbTAsMjU2LTI1NiglcmN4KQorCWptcAkuTG9vcDR4CisKKy5hbGlnbgkzMgorLkxvb3A0eDoKKwlwYWRkZAkleG1tMTIsJXhtbTgKKwlwYWRkZAkleG1tMTMsJXhtbTkKKwlweG9yCSV4bW04LCV4bW0wCisJcHhvcgkleG1tOSwleG1tMQorLmJ5dGUJMTAyLDE1LDU2LDAsMTk5CisuYnl0ZQkxMDIsMTUsNTYsMCwyMDcKKwlwYWRkZAkleG1tMCwleG1tNAorCXBhZGRkCSV4bW0xLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTIKKwlweG9yCSV4bW01LCV4bW0xMworCW1vdmRxYQkleG1tMTIsJXhtbTYKKwlwc2xsZAkkMTIsJXhtbTEyCisJcHNybGQJJDIwLCV4bW02CisJbW92ZHFhCSV4bW0xMywleG1tNworCXBzbGxkCSQxMiwleG1tMTMKKwlwb3IJJXhtbTYsJXhtbTEyCisJcHNybGQJJDIwLCV4bW03CisJbW92ZHFhCSglcjExKSwleG1tNgorCXBvcgkleG1tNywleG1tMTMKKwlwYWRkZAkleG1tMTIsJXhtbTgKKwlwYWRkZAkleG1tMTMsJXhtbTkKKwlweG9yCSV4bW04LCV4bW0wCisJcHhvcgkleG1tOSwleG1tMQorLmJ5dGUJMTAyLDE1LDU2LDAsMTk4CisuYnl0ZQkxMDIsMTUsNTYsMCwyMDYKKwlwYWRkZAkleG1tMCwleG1tNAorCXBhZGRkCSV4bW0xLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTIKKwlweG9yCSV4bW01LCV4bW0xMworCW1vdmRxYQkleG1tMTIsJXhtbTcKKwlwc2xsZAkkNywleG1tMTIKKwlwc3JsZAkkMjUsJXhtbTcKKwltb3ZkcWEJJXhtbTEzLCV4bW02CisJcHNsbGQJJDcsJXhtbTEzCisJcG9yCSV4bW03LCV4bW0xMgorCXBzcmxkCSQyNSwleG1tNgorCW1vdmRxYQkoJXIxMCksJXhtbTcKKwlwb3IJJXhtbTYsJXhtbTEzCisJbW92ZHFhCSV4bW00LDAoJXJzcCkKKwltb3ZkcWEJJXhtbTUsMTYoJXJzcCkKKwltb3ZkcWEJMzIoJXJzcCksJXhtbTQKKwltb3ZkcWEJNDgoJXJzcCksJXhtbTUKKwlwYWRkZAkleG1tMTQsJXhtbTEwCisJcGFkZGQJJXhtbTE1LCV4bW0xMQorCXB4b3IJJXhtbTEwLCV4bW0yCisJcHhvcgkleG1tMTEsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIxNQorLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJJXhtbTIsJXhtbTQKKwlwYWRkZAkleG1tMywleG1tNQorCXB4b3IJJXhtbTQsJXhtbTE0CisJcHhvcgkleG1tNSwleG1tMTUKKwltb3ZkcWEJJXhtbTE0LCV4bW02CisJcHNsbGQJJDEyLCV4bW0xNAorCXBzcmxkCSQyMCwleG1tNgorCW1vdmRxYQkleG1tMTUsJXhtbTcKKwlwc2xsZAkkMTIsJXhtbTE1CisJcG9yCSV4bW02LCV4bW0xNAorCXBzcmxkCSQyMCwleG1tNworCW1vdmRxYQkoJXIxMSksJXhtbTYKKwlwb3IJJXhtbTcsJXhtbTE1CisJcGFkZGQJJXhtbTE0LCV4bW0xMAorCXBhZGRkCSV4bW0xNSwleG1tMTEKKwlweG9yCSV4bW0xMCwleG1tMgorCXB4b3IJJXhtbTExLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMTQKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCSV4bW0yLCV4bW00CisJcGFkZGQJJXhtbTMsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xNAorCXB4b3IJJXhtbTUsJXhtbTE1CisJbW92ZHFhCSV4bW0xNCwleG1tNworCXBzbGxkCSQ3LCV4bW0xNAorCXBzcmxkCSQyNSwleG1tNworCW1vdmRxYQkleG1tMTUsJXhtbTYKKwlwc2xsZAkkNywleG1tMTUKKwlwb3IJJXhtbTcsJXhtbTE0CisJcHNybGQJJDI1LCV4bW02CisJbW92ZHFhCSglcjEwKSwleG1tNworCXBvcgkleG1tNiwleG1tMTUKKwlwYWRkZAkleG1tMTMsJXhtbTgKKwlwYWRkZAkleG1tMTQsJXhtbTkKKwlweG9yCSV4bW04LCV4bW0zCisJcHhvcgkleG1tOSwleG1tMAorLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCisuYnl0ZQkxMDIsMTUsNTYsMCwxOTkKKwlwYWRkZAkleG1tMywleG1tNAorCXBhZGRkCSV4bW0wLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTMKKwlweG9yCSV4bW01LCV4bW0xNAorCW1vdmRxYQkleG1tMTMsJXhtbTYKKwlwc2xsZAkkMTIsJXhtbTEzCisJcHNybGQJJDIwLCV4bW02CisJbW92ZHFhCSV4bW0xNCwleG1tNworCXBzbGxkCSQxMiwleG1tMTQKKwlwb3IJJXhtbTYsJXhtbTEzCisJcHNybGQJJDIwLCV4bW03CisJbW92ZHFhCSglcjExKSwleG1tNgorCXBvcgkleG1tNywleG1tMTQKKwlwYWRkZAkleG1tMTMsJXhtbTgKKwlwYWRkZAkleG1tMTQsJXhtbTkKKwlweG9yCSV4bW04LCV4bW0zCisJcHhvcgkleG1tOSwleG1tMAorLmJ5dGUJMTAyLDE1LDU2LDAsMjIyCisuYnl0ZQkxMDIsMTUsNTYsMCwxOTgKKwlwYWRkZAkleG1tMywleG1tNAorCXBhZGRkCSV4bW0wLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTMKKwlweG9yCSV4bW01LCV4bW0xNAorCW1vdmRxYQkleG1tMTMsJXhtbTcKKwlwc2xsZAkkNywleG1tMTMKKwlwc3JsZAkkMjUsJXhtbTcKKwltb3ZkcWEJJXhtbTE0LCV4bW02CisJcHNsbGQJJDcsJXhtbTE0CisJcG9yCSV4bW03LCV4bW0xMworCXBzcmxkCSQyNSwleG1tNgorCW1vdmRxYQkoJXIxMCksJXhtbTcKKwlwb3IJJXhtbTYsJXhtbTE0CisJbW92ZHFhCSV4bW00LDMyKCVyc3ApCisJbW92ZHFhCSV4bW01LDQ4KCVyc3ApCisJbW92ZHFhCTAoJXJzcCksJXhtbTQKKwltb3ZkcWEJMTYoJXJzcCksJXhtbTUKKwlwYWRkZAkleG1tMTUsJXhtbTEwCisJcGFkZGQJJXhtbTEyLCV4bW0xMQorCXB4b3IJJXhtbTEwLCV4bW0xCisJcHhvcgkleG1tMTEsJXhtbTIKKy5ieXRlCTEwMiwxNSw1NiwwLDIwNworLmJ5dGUJMTAyLDE1LDU2LDAsMjE1CisJcGFkZGQJJXhtbTEsJXhtbTQKKwlwYWRkZAkleG1tMiwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTE1CisJcHhvcgkleG1tNSwleG1tMTIKKwltb3ZkcWEJJXhtbTE1LCV4bW02CisJcHNsbGQJJDEyLCV4bW0xNQorCXBzcmxkCSQyMCwleG1tNgorCW1vdmRxYQkleG1tMTIsJXhtbTcKKwlwc2xsZAkkMTIsJXhtbTEyCisJcG9yCSV4bW02LCV4bW0xNQorCXBzcmxkCSQyMCwleG1tNworCW1vdmRxYQkoJXIxMSksJXhtbTYKKwlwb3IJJXhtbTcsJXhtbTEyCisJcGFkZGQJJXhtbTE1LCV4bW0xMAorCXBhZGRkCSV4bW0xMiwleG1tMTEKKwlweG9yCSV4bW0xMCwleG1tMQorCXB4b3IJJXhtbTExLCV4bW0yCisuYnl0ZQkxMDIsMTUsNTYsMCwyMDYKKy5ieXRlCTEwMiwxNSw1NiwwLDIxNAorCXBhZGRkCSV4bW0xLCV4bW00CisJcGFkZGQJJXhtbTIsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xNQorCXB4b3IJJXhtbTUsJXhtbTEyCisJbW92ZHFhCSV4bW0xNSwleG1tNworCXBzbGxkCSQ3LCV4bW0xNQorCXBzcmxkCSQyNSwleG1tNworCW1vdmRxYQkleG1tMTIsJXhtbTYKKwlwc2xsZAkkNywleG1tMTIKKwlwb3IJJXhtbTcsJXhtbTE1CisJcHNybGQJJDI1LCV4bW02CisJbW92ZHFhCSglcjEwKSwleG1tNworCXBvcgkleG1tNiwleG1tMTIKKwlkZWNsCSVlYXgKKwlqbnoJLkxvb3A0eAorCisJcGFkZGQJNjQoJXJzcCksJXhtbTgKKwlwYWRkZAk4MCglcnNwKSwleG1tOQorCXBhZGRkCTk2KCVyc3ApLCV4bW0xMAorCXBhZGRkCTExMiglcnNwKSwleG1tMTEKKworCW1vdmRxYQkleG1tOCwleG1tNgorCXB1bnBja2xkcQkleG1tOSwleG1tOAorCW1vdmRxYQkleG1tMTAsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTExLCV4bW0xMAorCXB1bnBja2hkcQkleG1tOSwleG1tNgorCXB1bnBja2hkcQkleG1tMTEsJXhtbTcKKwltb3ZkcWEJJXhtbTgsJXhtbTkKKwlwdW5wY2tscWRxCSV4bW0xMCwleG1tOAorCW1vdmRxYQkleG1tNiwleG1tMTEKKwlwdW5wY2tscWRxCSV4bW03LCV4bW02CisJcHVucGNraHFkcQkleG1tMTAsJXhtbTkKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0xMQorCXBhZGRkCTEyOC0yNTYoJXJjeCksJXhtbTEyCisJcGFkZGQJMTQ0LTI1NiglcmN4KSwleG1tMTMKKwlwYWRkZAkxNjAtMjU2KCVyY3gpLCV4bW0xNAorCXBhZGRkCTE3Ni0yNTYoJXJjeCksJXhtbTE1CisKKwltb3ZkcWEJJXhtbTgsMCglcnNwKQorCW1vdmRxYQkleG1tOSwxNiglcnNwKQorCW1vdmRxYQkzMiglcnNwKSwleG1tOAorCW1vdmRxYQk0OCglcnNwKSwleG1tOQorCisJbW92ZHFhCSV4bW0xMiwleG1tMTAKKwlwdW5wY2tsZHEJJXhtbTEzLCV4bW0xMgorCW1vdmRxYQkleG1tMTQsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTE1LCV4bW0xNAorCXB1bnBja2hkcQkleG1tMTMsJXhtbTEwCisJcHVucGNraGRxCSV4bW0xNSwleG1tNworCW1vdmRxYQkleG1tMTIsJXhtbTEzCisJcHVucGNrbHFkcQkleG1tMTQsJXhtbTEyCisJbW92ZHFhCSV4bW0xMCwleG1tMTUKKwlwdW5wY2tscWRxCSV4bW03LCV4bW0xMAorCXB1bnBja2hxZHEJJXhtbTE0LCV4bW0xMworCXB1bnBja2hxZHEJJXhtbTcsJXhtbTE1CisJcGFkZGQJMTkyLTI1NiglcmN4KSwleG1tNAorCXBhZGRkCTIwOC0yNTYoJXJjeCksJXhtbTUKKwlwYWRkZAkyMjQtMjU2KCVyY3gpLCV4bW04CisJcGFkZGQJMjQwLTI1NiglcmN4KSwleG1tOQorCisJbW92ZHFhCSV4bW02LDMyKCVyc3ApCisJbW92ZHFhCSV4bW0xMSw0OCglcnNwKQorCisJbW92ZHFhCSV4bW00LCV4bW0xNAorCXB1bnBja2xkcQkleG1tNSwleG1tNAorCW1vdmRxYQkleG1tOCwleG1tNworCXB1bnBja2xkcQkleG1tOSwleG1tOAorCXB1bnBja2hkcQkleG1tNSwleG1tMTQKKwlwdW5wY2toZHEJJXhtbTksJXhtbTcKKwltb3ZkcWEJJXhtbTQsJXhtbTUKKwlwdW5wY2tscWRxCSV4bW04LCV4bW00CisJbW92ZHFhCSV4bW0xNCwleG1tOQorCXB1bnBja2xxZHEJJXhtbTcsJXhtbTE0CisJcHVucGNraHFkcQkleG1tOCwleG1tNQorCXB1bnBja2hxZHEJJXhtbTcsJXhtbTkKKwlwYWRkZAkyNTYtMjU2KCVyY3gpLCV4bW0wCisJcGFkZGQJMjcyLTI1NiglcmN4KSwleG1tMQorCXBhZGRkCTI4OC0yNTYoJXJjeCksJXhtbTIKKwlwYWRkZAkzMDQtMjU2KCVyY3gpLCV4bW0zCisKKwltb3ZkcWEJJXhtbTAsJXhtbTgKKwlwdW5wY2tsZHEJJXhtbTEsJXhtbTAKKwltb3ZkcWEJJXhtbTIsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTMsJXhtbTIKKwlwdW5wY2toZHEJJXhtbTEsJXhtbTgKKwlwdW5wY2toZHEJJXhtbTMsJXhtbTcKKwltb3ZkcWEJJXhtbTAsJXhtbTEKKwlwdW5wY2tscWRxCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW04LCV4bW0zCisJcHVucGNrbHFkcQkleG1tNywleG1tOAorCXB1bnBja2hxZHEJJXhtbTIsJXhtbTEKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0zCisJY21wcQkkMjU2LCVyZHgKKwlqYgkuTHRhaWw0eAorCisJbW92ZHF1CTAoJXJzaSksJXhtbTYKKwltb3ZkcXUJMTYoJXJzaSksJXhtbTExCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW03CisJcHhvcgkwKCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTIsJXhtbTExCisJcHhvcgkleG1tNCwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTcKKworCW1vdmRxdQkleG1tNiwwKCVyZGkpCisJbW92ZHF1CTY0KCVyc2kpLCV4bW02CisJbW92ZHF1CSV4bW0xMSwxNiglcmRpKQorCW1vdmRxdQk4MCglcnNpKSwleG1tMTEKKwltb3ZkcXUJJXhtbTIsMzIoJXJkaSkKKwltb3ZkcXUJOTYoJXJzaSksJXhtbTIKKwltb3ZkcXUJJXhtbTcsNDgoJXJkaSkKKwltb3ZkcXUJMTEyKCVyc2kpLCV4bW03CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCXB4b3IJMTYoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMywleG1tMTEKKwlweG9yCSV4bW01LCV4bW0yCisJcHhvcgkleG1tMSwleG1tNworCisJbW92ZHF1CSV4bW02LDY0KCVyZGkpCisJbW92ZHF1CTAoJXJzaSksJXhtbTYKKwltb3ZkcXUJJXhtbTExLDgwKCVyZGkpCisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xMQorCW1vdmRxdQkleG1tMiw5NiglcmRpKQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQkleG1tNywxMTIoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW03CisJcHhvcgkzMiglcnNwKSwleG1tNgorCXB4b3IJJXhtbTEwLCV4bW0xMQorCXB4b3IJJXhtbTE0LCV4bW0yCisJcHhvcgkleG1tOCwleG1tNworCisJbW92ZHF1CSV4bW02LDAoJXJkaSkKKwltb3ZkcXUJNjQoJXJzaSksJXhtbTYKKwltb3ZkcXUJJXhtbTExLDE2KCVyZGkpCisJbW92ZHF1CTgwKCVyc2kpLCV4bW0xMQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQk5NiglcnNpKSwleG1tMgorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCW1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJcHhvcgk0OCglcnNwKSwleG1tNgorCXB4b3IJJXhtbTE1LCV4bW0xMQorCXB4b3IJJXhtbTksJXhtbTIKKwlweG9yCSV4bW0zLCV4bW03CisJbW92ZHF1CSV4bW02LDY0KCVyZGkpCisJbW92ZHF1CSV4bW0xMSw4MCglcmRpKQorCW1vdmRxdQkleG1tMiw5NiglcmRpKQorCW1vdmRxdQkleG1tNywxMTIoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisKKwlzdWJxCSQyNTYsJXJkeAorCWpuegkuTG9vcF9vdXRlcjR4CisKKwlqbXAJLkxkb25lNHgKKworLkx0YWlsNHg6CisJY21wcQkkMTkyLCVyZHgKKwlqYWUJLkwxOTJfb3JfbW9yZTR4CisJY21wcQkkMTI4LCVyZHgKKwlqYWUJLkwxMjhfb3JfbW9yZTR4CisJY21wcQkkNjQsJXJkeAorCWphZQkuTDY0X29yX21vcmU0eAorCisKKwl4b3JxCSVyMTAsJXIxMAorCisJbW92ZHFhCSV4bW0xMiwxNiglcnNwKQorCW1vdmRxYQkleG1tNCwzMiglcnNwKQorCW1vdmRxYQkleG1tMCw0OCglcnNwKQorCWptcAkuTG9vcF90YWlsNHgKKworLmFsaWduCTMyCisuTDY0X29yX21vcmU0eDoKKwltb3ZkcXUJMCglcnNpKSwleG1tNgorCW1vdmRxdQkxNiglcnNpKSwleG1tMTEKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTcKKwlweG9yCTAoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMiwleG1tMTEKKwlweG9yCSV4bW00LCV4bW0yCisJcHhvcgkleG1tMCwleG1tNworCW1vdmRxdQkleG1tNiwwKCVyZGkpCisJbW92ZHF1CSV4bW0xMSwxNiglcmRpKQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCWplCS5MZG9uZTR4CisKKwltb3ZkcWEJMTYoJXJzcCksJXhtbTYKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCW1vdmRxYQkleG1tNiwwKCVyc3ApCisJbW92ZHFhCSV4bW0xMywxNiglcnNwKQorCWxlYXEJNjQoJXJkaSksJXJkaQorCW1vdmRxYQkleG1tNSwzMiglcnNwKQorCXN1YnEJJDY0LCVyZHgKKwltb3ZkcWEJJXhtbTEsNDgoJXJzcCkKKwlqbXAJLkxvb3BfdGFpbDR4CisKKy5hbGlnbgkzMgorLkwxMjhfb3JfbW9yZTR4OgorCW1vdmRxdQkwKCVyc2kpLCV4bW02CisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xMQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQk0OCglcnNpKSwleG1tNworCXB4b3IJMCglcnNwKSwleG1tNgorCXB4b3IJJXhtbTEyLCV4bW0xMQorCXB4b3IJJXhtbTQsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW03CisKKwltb3ZkcXUJJXhtbTYsMCglcmRpKQorCW1vdmRxdQk2NCglcnNpKSwleG1tNgorCW1vdmRxdQkleG1tMTEsMTYoJXJkaSkKKwltb3ZkcXUJODAoJXJzaSksJXhtbTExCisJbW92ZHF1CSV4bW0yLDMyKCVyZGkpCisJbW92ZHF1CTk2KCVyc2kpLCV4bW0yCisJbW92ZHF1CSV4bW03LDQ4KCVyZGkpCisJbW92ZHF1CTExMiglcnNpKSwleG1tNworCXB4b3IJMTYoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMywleG1tMTEKKwlweG9yCSV4bW01LCV4bW0yCisJcHhvcgkleG1tMSwleG1tNworCW1vdmRxdQkleG1tNiw2NCglcmRpKQorCW1vdmRxdQkleG1tMTEsODAoJXJkaSkKKwltb3ZkcXUJJXhtbTIsOTYoJXJkaSkKKwltb3ZkcXUJJXhtbTcsMTEyKCVyZGkpCisJamUJLkxkb25lNHgKKworCW1vdmRxYQkzMiglcnNwKSwleG1tNgorCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCW1vdmRxYQkleG1tNiwwKCVyc3ApCisJbW92ZHFhCSV4bW0xMCwxNiglcnNwKQorCWxlYXEJMTI4KCVyZGkpLCVyZGkKKwltb3ZkcWEJJXhtbTE0LDMyKCVyc3ApCisJc3VicQkkMTI4LCVyZHgKKwltb3ZkcWEJJXhtbTgsNDgoJXJzcCkKKwlqbXAJLkxvb3BfdGFpbDR4CisKKy5hbGlnbgkzMgorLkwxOTJfb3JfbW9yZTR4OgorCW1vdmRxdQkwKCVyc2kpLCV4bW02CisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xMQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQk0OCglcnNpKSwleG1tNworCXB4b3IJMCglcnNwKSwleG1tNgorCXB4b3IJJXhtbTEyLCV4bW0xMQorCXB4b3IJJXhtbTQsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW03CisKKwltb3ZkcXUJJXhtbTYsMCglcmRpKQorCW1vdmRxdQk2NCglcnNpKSwleG1tNgorCW1vdmRxdQkleG1tMTEsMTYoJXJkaSkKKwltb3ZkcXUJODAoJXJzaSksJXhtbTExCisJbW92ZHF1CSV4bW0yLDMyKCVyZGkpCisJbW92ZHF1CTk2KCVyc2kpLCV4bW0yCisJbW92ZHF1CSV4bW03LDQ4KCVyZGkpCisJbW92ZHF1CTExMiglcnNpKSwleG1tNworCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwlweG9yCTE2KCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTMsJXhtbTExCisJcHhvcgkleG1tNSwleG1tMgorCXB4b3IJJXhtbTEsJXhtbTcKKworCW1vdmRxdQkleG1tNiw2NCglcmRpKQorCW1vdmRxdQkwKCVyc2kpLCV4bW02CisJbW92ZHF1CSV4bW0xMSw4MCglcmRpKQorCW1vdmRxdQkxNiglcnNpKSwleG1tMTEKKwltb3ZkcXUJJXhtbTIsOTYoJXJkaSkKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJJXhtbTcsMTEyKCVyZGkpCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCW1vdmRxdQk0OCglcnNpKSwleG1tNworCXB4b3IJMzIoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMCwleG1tMTEKKwlweG9yCSV4bW0xNCwleG1tMgorCXB4b3IJJXhtbTgsJXhtbTcKKwltb3ZkcXUJJXhtbTYsMCglcmRpKQorCW1vdmRxdQkleG1tMTEsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTIsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTcsNDgoJXJkaSkKKwlqZQkuTGRvbmU0eAorCisJbW92ZHFhCTQ4KCVyc3ApLCV4bW02CisJbGVhcQk2NCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwltb3ZkcWEJJXhtbTYsMCglcnNwKQorCW1vdmRxYQkleG1tMTUsMTYoJXJzcCkKKwlsZWFxCTY0KCVyZGkpLCVyZGkKKwltb3ZkcWEJJXhtbTksMzIoJXJzcCkKKwlzdWJxCSQxOTIsJXJkeAorCW1vdmRxYQkleG1tMyw0OCglcnNwKQorCisuTG9vcF90YWlsNHg6CisJbW92emJsCSglcnNpLCVyMTAsMSksJWVheAorCW1vdnpibAkoJXJzcCwlcjEwLDEpLCVlY3gKKwlsZWFxCTEoJXIxMCksJXIxMAorCXhvcmwJJWVjeCwlZWF4CisJbW92YgklYWwsLTEoJXJkaSwlcjEwLDEpCisJZGVjcQklcmR4CisJam56CS5Mb29wX3RhaWw0eAorCisuTGRvbmU0eDoKKwlhZGRxCSQweDE0OCswLCVyc3AKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCUNoYUNoYTIwXzR4LC4tQ2hhQ2hhMjBfNHgKKy50eXBlCUNoYUNoYTIwXzh4LEBmdW5jdGlvbgorLmFsaWduCTMyCitDaGFDaGEyMF84eDoKKy5MQ2hhQ2hhMjBfOHg6CisJbW92cQklcnNwLCVyMTAKKwlzdWJxCSQweDI4MCs4LCVyc3AKKwlhbmRxCSQtMzIsJXJzcAorCXZ6ZXJvdXBwZXIKKwltb3ZxCSVyMTAsNjQwKCVyc3ApCisKKworCisKKworCisKKworCisKKwl2YnJvYWRjYXN0aTEyOAkuTHNpZ21hKCVyaXApLCV5bW0xMQorCXZicm9hZGNhc3RpMTI4CSglcmN4KSwleW1tMworCXZicm9hZGNhc3RpMTI4CTE2KCVyY3gpLCV5bW0xNQorCXZicm9hZGNhc3RpMTI4CSglcjgpLCV5bW03CisJbGVhcQkyNTYoJXJzcCksJXJjeAorCWxlYXEJNTEyKCVyc3ApLCVyYXgKKwlsZWFxCS5Mcm90MTYoJXJpcCksJXIxMAorCWxlYXEJLkxyb3QyNCglcmlwKSwlcjExCisKKwl2cHNodWZkCSQweDAwLCV5bW0xMSwleW1tOAorCXZwc2h1ZmQJJDB4NTUsJXltbTExLCV5bW05CisJdm1vdmRxYQkleW1tOCwxMjgtMjU2KCVyY3gpCisJdnBzaHVmZAkkMHhhYSwleW1tMTEsJXltbTEwCisJdm1vdmRxYQkleW1tOSwxNjAtMjU2KCVyY3gpCisJdnBzaHVmZAkkMHhmZiwleW1tMTEsJXltbTExCisJdm1vdmRxYQkleW1tMTAsMTkyLTI1NiglcmN4KQorCXZtb3ZkcWEJJXltbTExLDIyNC0yNTYoJXJjeCkKKworCXZwc2h1ZmQJJDB4MDAsJXltbTMsJXltbTAKKwl2cHNodWZkCSQweDU1LCV5bW0zLCV5bW0xCisJdm1vdmRxYQkleW1tMCwyNTYtMjU2KCVyY3gpCisJdnBzaHVmZAkkMHhhYSwleW1tMywleW1tMgorCXZtb3ZkcWEJJXltbTEsMjg4LTI1NiglcmN4KQorCXZwc2h1ZmQJJDB4ZmYsJXltbTMsJXltbTMKKwl2bW92ZHFhCSV5bW0yLDMyMC0yNTYoJXJjeCkKKwl2bW92ZHFhCSV5bW0zLDM1Mi0yNTYoJXJjeCkKKworCXZwc2h1ZmQJJDB4MDAsJXltbTE1LCV5bW0xMgorCXZwc2h1ZmQJJDB4NTUsJXltbTE1LCV5bW0xMworCXZtb3ZkcWEJJXltbTEyLDM4NC01MTIoJXJheCkKKwl2cHNodWZkCSQweGFhLCV5bW0xNSwleW1tMTQKKwl2bW92ZHFhCSV5bW0xMyw0MTYtNTEyKCVyYXgpCisJdnBzaHVmZAkkMHhmZiwleW1tMTUsJXltbTE1CisJdm1vdmRxYQkleW1tMTQsNDQ4LTUxMiglcmF4KQorCXZtb3ZkcWEJJXltbTE1LDQ4MC01MTIoJXJheCkKKworCXZwc2h1ZmQJJDB4MDAsJXltbTcsJXltbTQKKwl2cHNodWZkCSQweDU1LCV5bW03LCV5bW01CisJdnBhZGRkCS5MaW5jeSglcmlwKSwleW1tNCwleW1tNAorCXZwc2h1ZmQJJDB4YWEsJXltbTcsJXltbTYKKwl2bW92ZHFhCSV5bW01LDU0NC01MTIoJXJheCkKKwl2cHNodWZkCSQweGZmLCV5bW03LCV5bW03CisJdm1vdmRxYQkleW1tNiw1NzYtNTEyKCVyYXgpCisJdm1vdmRxYQkleW1tNyw2MDgtNTEyKCVyYXgpCisKKwlqbXAJLkxvb3BfZW50ZXI4eAorCisuYWxpZ24JMzIKKy5Mb29wX291dGVyOHg6CisJdm1vdmRxYQkxMjgtMjU2KCVyY3gpLCV5bW04CisJdm1vdmRxYQkxNjAtMjU2KCVyY3gpLCV5bW05CisJdm1vdmRxYQkxOTItMjU2KCVyY3gpLCV5bW0xMAorCXZtb3ZkcWEJMjI0LTI1NiglcmN4KSwleW1tMTEKKwl2bW92ZHFhCTI1Ni0yNTYoJXJjeCksJXltbTAKKwl2bW92ZHFhCTI4OC0yNTYoJXJjeCksJXltbTEKKwl2bW92ZHFhCTMyMC0yNTYoJXJjeCksJXltbTIKKwl2bW92ZHFhCTM1Mi0yNTYoJXJjeCksJXltbTMKKwl2bW92ZHFhCTM4NC01MTIoJXJheCksJXltbTEyCisJdm1vdmRxYQk0MTYtNTEyKCVyYXgpLCV5bW0xMworCXZtb3ZkcWEJNDQ4LTUxMiglcmF4KSwleW1tMTQKKwl2bW92ZHFhCTQ4MC01MTIoJXJheCksJXltbTE1CisJdm1vdmRxYQk1MTItNTEyKCVyYXgpLCV5bW00CisJdm1vdmRxYQk1NDQtNTEyKCVyYXgpLCV5bW01CisJdm1vdmRxYQk1NzYtNTEyKCVyYXgpLCV5bW02CisJdm1vdmRxYQk2MDgtNTEyKCVyYXgpLCV5bW03CisJdnBhZGRkCS5MZWlnaHQoJXJpcCksJXltbTQsJXltbTQKKworLkxvb3BfZW50ZXI4eDoKKwl2bW92ZHFhCSV5bW0xNCw2NCglcnNwKQorCXZtb3ZkcWEJJXltbTE1LDk2KCVyc3ApCisJdmJyb2FkY2FzdGkxMjgJKCVyMTApLCV5bW0xNQorCXZtb3ZkcWEJJXltbTQsNTEyLTUxMiglcmF4KQorCW1vdmwJJDEwLCVlYXgKKwlqbXAJLkxvb3A4eAorCisuYWxpZ24JMzIKKy5Mb29wOHg6CisJdnBhZGRkCSV5bW0wLCV5bW04LCV5bW04CisJdnB4b3IJJXltbTQsJXltbTgsJXltbTQKKwl2cHNodWZiCSV5bW0xNSwleW1tNCwleW1tNAorCXZwYWRkZAkleW1tMSwleW1tOSwleW1tOQorCXZweG9yCSV5bW01LCV5bW05LCV5bW01CisJdnBzaHVmYgkleW1tMTUsJXltbTUsJXltbTUKKwl2cGFkZGQJJXltbTQsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0wLCV5bW0xMiwleW1tMAorCXZwc2xsZAkkMTIsJXltbTAsJXltbTE0CisJdnBzcmxkCSQyMCwleW1tMCwleW1tMAorCXZwb3IJJXltbTAsJXltbTE0LCV5bW0wCisJdmJyb2FkY2FzdGkxMjgJKCVyMTEpLCV5bW0xNAorCXZwYWRkZAkleW1tNSwleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTEsJXltbTEzLCV5bW0xCisJdnBzbGxkCSQxMiwleW1tMSwleW1tMTUKKwl2cHNybGQJJDIwLCV5bW0xLCV5bW0xCisJdnBvcgkleW1tMSwleW1tMTUsJXltbTEKKwl2cGFkZGQJJXltbTAsJXltbTgsJXltbTgKKwl2cHhvcgkleW1tNCwleW1tOCwleW1tNAorCXZwc2h1ZmIJJXltbTE0LCV5bW00LCV5bW00CisJdnBhZGRkCSV5bW0xLCV5bW05LCV5bW05CisJdnB4b3IJJXltbTUsJXltbTksJXltbTUKKwl2cHNodWZiCSV5bW0xNCwleW1tNSwleW1tNQorCXZwYWRkZAkleW1tNCwleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTAsJXltbTEyLCV5bW0wCisJdnBzbGxkCSQ3LCV5bW0wLCV5bW0xNQorCXZwc3JsZAkkMjUsJXltbTAsJXltbTAKKwl2cG9yCSV5bW0wLCV5bW0xNSwleW1tMAorCXZicm9hZGNhc3RpMTI4CSglcjEwKSwleW1tMTUKKwl2cGFkZGQJJXltbTUsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0xLCV5bW0xMywleW1tMQorCXZwc2xsZAkkNywleW1tMSwleW1tMTQKKwl2cHNybGQJJDI1LCV5bW0xLCV5bW0xCisJdnBvcgkleW1tMSwleW1tMTQsJXltbTEKKwl2bW92ZHFhCSV5bW0xMiwwKCVyc3ApCisJdm1vdmRxYQkleW1tMTMsMzIoJXJzcCkKKwl2bW92ZHFhCTY0KCVyc3ApLCV5bW0xMgorCXZtb3ZkcWEJOTYoJXJzcCksJXltbTEzCisJdnBhZGRkCSV5bW0yLCV5bW0xMCwleW1tMTAKKwl2cHhvcgkleW1tNiwleW1tMTAsJXltbTYKKwl2cHNodWZiCSV5bW0xNSwleW1tNiwleW1tNgorCXZwYWRkZAkleW1tMywleW1tMTEsJXltbTExCisJdnB4b3IJJXltbTcsJXltbTExLCV5bW03CisJdnBzaHVmYgkleW1tMTUsJXltbTcsJXltbTcKKwl2cGFkZGQJJXltbTYsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0yLCV5bW0xMiwleW1tMgorCXZwc2xsZAkkMTIsJXltbTIsJXltbTE0CisJdnBzcmxkCSQyMCwleW1tMiwleW1tMgorCXZwb3IJJXltbTIsJXltbTE0LCV5bW0yCisJdmJyb2FkY2FzdGkxMjgJKCVyMTEpLCV5bW0xNAorCXZwYWRkZAkleW1tNywleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTMsJXltbTEzLCV5bW0zCisJdnBzbGxkCSQxMiwleW1tMywleW1tMTUKKwl2cHNybGQJJDIwLCV5bW0zLCV5bW0zCisJdnBvcgkleW1tMywleW1tMTUsJXltbTMKKwl2cGFkZGQJJXltbTIsJXltbTEwLCV5bW0xMAorCXZweG9yCSV5bW02LCV5bW0xMCwleW1tNgorCXZwc2h1ZmIJJXltbTE0LCV5bW02LCV5bW02CisJdnBhZGRkCSV5bW0zLCV5bW0xMSwleW1tMTEKKwl2cHhvcgkleW1tNywleW1tMTEsJXltbTcKKwl2cHNodWZiCSV5bW0xNCwleW1tNywleW1tNworCXZwYWRkZAkleW1tNiwleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTIsJXltbTEyLCV5bW0yCisJdnBzbGxkCSQ3LCV5bW0yLCV5bW0xNQorCXZwc3JsZAkkMjUsJXltbTIsJXltbTIKKwl2cG9yCSV5bW0yLCV5bW0xNSwleW1tMgorCXZicm9hZGNhc3RpMTI4CSglcjEwKSwleW1tMTUKKwl2cGFkZGQJJXltbTcsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0zLCV5bW0xMywleW1tMworCXZwc2xsZAkkNywleW1tMywleW1tMTQKKwl2cHNybGQJJDI1LCV5bW0zLCV5bW0zCisJdnBvcgkleW1tMywleW1tMTQsJXltbTMKKwl2cGFkZGQJJXltbTEsJXltbTgsJXltbTgKKwl2cHhvcgkleW1tNywleW1tOCwleW1tNworCXZwc2h1ZmIJJXltbTE1LCV5bW03LCV5bW03CisJdnBhZGRkCSV5bW0yLCV5bW05LCV5bW05CisJdnB4b3IJJXltbTQsJXltbTksJXltbTQKKwl2cHNodWZiCSV5bW0xNSwleW1tNCwleW1tNAorCXZwYWRkZAkleW1tNywleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTEsJXltbTEyLCV5bW0xCisJdnBzbGxkCSQxMiwleW1tMSwleW1tMTQKKwl2cHNybGQJJDIwLCV5bW0xLCV5bW0xCisJdnBvcgkleW1tMSwleW1tMTQsJXltbTEKKwl2YnJvYWRjYXN0aTEyOAkoJXIxMSksJXltbTE0CisJdnBhZGRkCSV5bW00LCV5bW0xMywleW1tMTMKKwl2cHhvcgkleW1tMiwleW1tMTMsJXltbTIKKwl2cHNsbGQJJDEyLCV5bW0yLCV5bW0xNQorCXZwc3JsZAkkMjAsJXltbTIsJXltbTIKKwl2cG9yCSV5bW0yLCV5bW0xNSwleW1tMgorCXZwYWRkZAkleW1tMSwleW1tOCwleW1tOAorCXZweG9yCSV5bW03LCV5bW04LCV5bW03CisJdnBzaHVmYgkleW1tMTQsJXltbTcsJXltbTcKKwl2cGFkZGQJJXltbTIsJXltbTksJXltbTkKKwl2cHhvcgkleW1tNCwleW1tOSwleW1tNAorCXZwc2h1ZmIJJXltbTE0LCV5bW00LCV5bW00CisJdnBhZGRkCSV5bW03LCV5bW0xMiwleW1tMTIKKwl2cHhvcgkleW1tMSwleW1tMTIsJXltbTEKKwl2cHNsbGQJJDcsJXltbTEsJXltbTE1CisJdnBzcmxkCSQyNSwleW1tMSwleW1tMQorCXZwb3IJJXltbTEsJXltbTE1LCV5bW0xCisJdmJyb2FkY2FzdGkxMjgJKCVyMTApLCV5bW0xNQorCXZwYWRkZAkleW1tNCwleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTIsJXltbTEzLCV5bW0yCisJdnBzbGxkCSQ3LCV5bW0yLCV5bW0xNAorCXZwc3JsZAkkMjUsJXltbTIsJXltbTIKKwl2cG9yCSV5bW0yLCV5bW0xNCwleW1tMgorCXZtb3ZkcWEJJXltbTEyLDY0KCVyc3ApCisJdm1vdmRxYQkleW1tMTMsOTYoJXJzcCkKKwl2bW92ZHFhCTAoJXJzcCksJXltbTEyCisJdm1vdmRxYQkzMiglcnNwKSwleW1tMTMKKwl2cGFkZGQJJXltbTMsJXltbTEwLCV5bW0xMAorCXZweG9yCSV5bW01LCV5bW0xMCwleW1tNQorCXZwc2h1ZmIJJXltbTE1LCV5bW01LCV5bW01CisJdnBhZGRkCSV5bW0wLCV5bW0xMSwleW1tMTEKKwl2cHhvcgkleW1tNiwleW1tMTEsJXltbTYKKwl2cHNodWZiCSV5bW0xNSwleW1tNiwleW1tNgorCXZwYWRkZAkleW1tNSwleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTMsJXltbTEyLCV5bW0zCisJdnBzbGxkCSQxMiwleW1tMywleW1tMTQKKwl2cHNybGQJJDIwLCV5bW0zLCV5bW0zCisJdnBvcgkleW1tMywleW1tMTQsJXltbTMKKwl2YnJvYWRjYXN0aTEyOAkoJXIxMSksJXltbTE0CisJdnBhZGRkCSV5bW02LCV5bW0xMywleW1tMTMKKwl2cHhvcgkleW1tMCwleW1tMTMsJXltbTAKKwl2cHNsbGQJJDEyLCV5bW0wLCV5bW0xNQorCXZwc3JsZAkkMjAsJXltbTAsJXltbTAKKwl2cG9yCSV5bW0wLCV5bW0xNSwleW1tMAorCXZwYWRkZAkleW1tMywleW1tMTAsJXltbTEwCisJdnB4b3IJJXltbTUsJXltbTEwLCV5bW01CisJdnBzaHVmYgkleW1tMTQsJXltbTUsJXltbTUKKwl2cGFkZGQJJXltbTAsJXltbTExLCV5bW0xMQorCXZweG9yCSV5bW02LCV5bW0xMSwleW1tNgorCXZwc2h1ZmIJJXltbTE0LCV5bW02LCV5bW02CisJdnBhZGRkCSV5bW01LCV5bW0xMiwleW1tMTIKKwl2cHhvcgkleW1tMywleW1tMTIsJXltbTMKKwl2cHNsbGQJJDcsJXltbTMsJXltbTE1CisJdnBzcmxkCSQyNSwleW1tMywleW1tMworCXZwb3IJJXltbTMsJXltbTE1LCV5bW0zCisJdmJyb2FkY2FzdGkxMjgJKCVyMTApLCV5bW0xNQorCXZwYWRkZAkleW1tNiwleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTAsJXltbTEzLCV5bW0wCisJdnBzbGxkCSQ3LCV5bW0wLCV5bW0xNAorCXZwc3JsZAkkMjUsJXltbTAsJXltbTAKKwl2cG9yCSV5bW0wLCV5bW0xNCwleW1tMAorCWRlY2wJJWVheAorCWpuegkuTG9vcDh4CisKKwlsZWFxCTUxMiglcnNwKSwlcmF4CisJdnBhZGRkCTEyOC0yNTYoJXJjeCksJXltbTgsJXltbTgKKwl2cGFkZGQJMTYwLTI1NiglcmN4KSwleW1tOSwleW1tOQorCXZwYWRkZAkxOTItMjU2KCVyY3gpLCV5bW0xMCwleW1tMTAKKwl2cGFkZGQJMjI0LTI1NiglcmN4KSwleW1tMTEsJXltbTExCisKKwl2cHVucGNrbGRxCSV5bW05LCV5bW04LCV5bW0xNAorCXZwdW5wY2tsZHEJJXltbTExLCV5bW0xMCwleW1tMTUKKwl2cHVucGNraGRxCSV5bW05LCV5bW04LCV5bW04CisJdnB1bnBja2hkcQkleW1tMTEsJXltbTEwLCV5bW0xMAorCXZwdW5wY2tscWRxCSV5bW0xNSwleW1tMTQsJXltbTkKKwl2cHVucGNraHFkcQkleW1tMTUsJXltbTE0LCV5bW0xNAorCXZwdW5wY2tscWRxCSV5bW0xMCwleW1tOCwleW1tMTEKKwl2cHVucGNraHFkcQkleW1tMTAsJXltbTgsJXltbTgKKwl2cGFkZGQJMjU2LTI1NiglcmN4KSwleW1tMCwleW1tMAorCXZwYWRkZAkyODgtMjU2KCVyY3gpLCV5bW0xLCV5bW0xCisJdnBhZGRkCTMyMC0yNTYoJXJjeCksJXltbTIsJXltbTIKKwl2cGFkZGQJMzUyLTI1NiglcmN4KSwleW1tMywleW1tMworCisJdnB1bnBja2xkcQkleW1tMSwleW1tMCwleW1tMTAKKwl2cHVucGNrbGRxCSV5bW0zLCV5bW0yLCV5bW0xNQorCXZwdW5wY2toZHEJJXltbTEsJXltbTAsJXltbTAKKwl2cHVucGNraGRxCSV5bW0zLCV5bW0yLCV5bW0yCisJdnB1bnBja2xxZHEJJXltbTE1LCV5bW0xMCwleW1tMQorCXZwdW5wY2tocWRxCSV5bW0xNSwleW1tMTAsJXltbTEwCisJdnB1bnBja2xxZHEJJXltbTIsJXltbTAsJXltbTMKKwl2cHVucGNraHFkcQkleW1tMiwleW1tMCwleW1tMAorCXZwZXJtMmkxMjgJJDB4MjAsJXltbTEsJXltbTksJXltbTE1CisJdnBlcm0yaTEyOAkkMHgzMSwleW1tMSwleW1tOSwleW1tMQorCXZwZXJtMmkxMjgJJDB4MjAsJXltbTEwLCV5bW0xNCwleW1tOQorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTEwLCV5bW0xNCwleW1tMTAKKwl2cGVybTJpMTI4CSQweDIwLCV5bW0zLCV5bW0xMSwleW1tMTQKKwl2cGVybTJpMTI4CSQweDMxLCV5bW0zLCV5bW0xMSwleW1tMworCXZwZXJtMmkxMjgJJDB4MjAsJXltbTAsJXltbTgsJXltbTExCisJdnBlcm0yaTEyOAkkMHgzMSwleW1tMCwleW1tOCwleW1tMAorCXZtb3ZkcWEJJXltbTE1LDAoJXJzcCkKKwl2bW92ZHFhCSV5bW05LDMyKCVyc3ApCisJdm1vdmRxYQk2NCglcnNwKSwleW1tMTUKKwl2bW92ZHFhCTk2KCVyc3ApLCV5bW05CisKKwl2cGFkZGQJMzg0LTUxMiglcmF4KSwleW1tMTIsJXltbTEyCisJdnBhZGRkCTQxNi01MTIoJXJheCksJXltbTEzLCV5bW0xMworCXZwYWRkZAk0NDgtNTEyKCVyYXgpLCV5bW0xNSwleW1tMTUKKwl2cGFkZGQJNDgwLTUxMiglcmF4KSwleW1tOSwleW1tOQorCisJdnB1bnBja2xkcQkleW1tMTMsJXltbTEyLCV5bW0yCisJdnB1bnBja2xkcQkleW1tOSwleW1tMTUsJXltbTgKKwl2cHVucGNraGRxCSV5bW0xMywleW1tMTIsJXltbTEyCisJdnB1bnBja2hkcQkleW1tOSwleW1tMTUsJXltbTE1CisJdnB1bnBja2xxZHEJJXltbTgsJXltbTIsJXltbTEzCisJdnB1bnBja2hxZHEJJXltbTgsJXltbTIsJXltbTIKKwl2cHVucGNrbHFkcQkleW1tMTUsJXltbTEyLCV5bW05CisJdnB1bnBja2hxZHEJJXltbTE1LCV5bW0xMiwleW1tMTIKKwl2cGFkZGQJNTEyLTUxMiglcmF4KSwleW1tNCwleW1tNAorCXZwYWRkZAk1NDQtNTEyKCVyYXgpLCV5bW01LCV5bW01CisJdnBhZGRkCTU3Ni01MTIoJXJheCksJXltbTYsJXltbTYKKwl2cGFkZGQJNjA4LTUxMiglcmF4KSwleW1tNywleW1tNworCisJdnB1bnBja2xkcQkleW1tNSwleW1tNCwleW1tMTUKKwl2cHVucGNrbGRxCSV5bW03LCV5bW02LCV5bW04CisJdnB1bnBja2hkcQkleW1tNSwleW1tNCwleW1tNAorCXZwdW5wY2toZHEJJXltbTcsJXltbTYsJXltbTYKKwl2cHVucGNrbHFkcQkleW1tOCwleW1tMTUsJXltbTUKKwl2cHVucGNraHFkcQkleW1tOCwleW1tMTUsJXltbTE1CisJdnB1bnBja2xxZHEJJXltbTYsJXltbTQsJXltbTcKKwl2cHVucGNraHFkcQkleW1tNiwleW1tNCwleW1tNAorCXZwZXJtMmkxMjgJJDB4MjAsJXltbTUsJXltbTEzLCV5bW04CisJdnBlcm0yaTEyOAkkMHgzMSwleW1tNSwleW1tMTMsJXltbTUKKwl2cGVybTJpMTI4CSQweDIwLCV5bW0xNSwleW1tMiwleW1tMTMKKwl2cGVybTJpMTI4CSQweDMxLCV5bW0xNSwleW1tMiwleW1tMTUKKwl2cGVybTJpMTI4CSQweDIwLCV5bW03LCV5bW05LCV5bW0yCisJdnBlcm0yaTEyOAkkMHgzMSwleW1tNywleW1tOSwleW1tNworCXZwZXJtMmkxMjgJJDB4MjAsJXltbTQsJXltbTEyLCV5bW05CisJdnBlcm0yaTEyOAkkMHgzMSwleW1tNCwleW1tMTIsJXltbTQKKwl2bW92ZHFhCTAoJXJzcCksJXltbTYKKwl2bW92ZHFhCTMyKCVyc3ApLCV5bW0xMgorCisJY21wcQkkNTEyLCVyZHgKKwlqYgkuTHRhaWw4eAorCisJdnB4b3IJMCglcnNpKSwleW1tNiwleW1tNgorCXZweG9yCTMyKCVyc2kpLCV5bW04LCV5bW04CisJdnB4b3IJNjQoJXJzaSksJXltbTEsJXltbTEKKwl2cHhvcgk5NiglcnNpKSwleW1tNSwleW1tNQorCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwl2bW92ZHF1CSV5bW02LDAoJXJkaSkKKwl2bW92ZHF1CSV5bW04LDMyKCVyZGkpCisJdm1vdmRxdQkleW1tMSw2NCglcmRpKQorCXZtb3ZkcXUJJXltbTUsOTYoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisKKwl2cHhvcgkwKCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkzMiglcnNpKSwleW1tMTMsJXltbTEzCisJdnB4b3IJNjQoJXJzaSksJXltbTEwLCV5bW0xMAorCXZweG9yCTk2KCVyc2kpLCV5bW0xNSwleW1tMTUKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJdm1vdmRxdQkleW1tMTIsMCglcmRpKQorCXZtb3ZkcXUJJXltbTEzLDMyKCVyZGkpCisJdm1vdmRxdQkleW1tMTAsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW0xNSw5NiglcmRpKQorCWxlYXEJMTI4KCVyZGkpLCVyZGkKKworCXZweG9yCTAoJXJzaSksJXltbTE0LCV5bW0xNAorCXZweG9yCTMyKCVyc2kpLCV5bW0yLCV5bW0yCisJdnB4b3IJNjQoJXJzaSksJXltbTMsJXltbTMKKwl2cHhvcgk5NiglcnNpKSwleW1tNywleW1tNworCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwl2bW92ZHF1CSV5bW0xNCwwKCVyZGkpCisJdm1vdmRxdQkleW1tMiwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTMsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW03LDk2KCVyZGkpCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCisJdnB4b3IJMCglcnNpKSwleW1tMTEsJXltbTExCisJdnB4b3IJMzIoJXJzaSksJXltbTksJXltbTkKKwl2cHhvcgk2NCglcnNpKSwleW1tMCwleW1tMAorCXZweG9yCTk2KCVyc2kpLCV5bW00LCV5bW00CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCXZtb3ZkcXUJJXltbTExLDAoJXJkaSkKKwl2bW92ZHF1CSV5bW05LDMyKCVyZGkpCisJdm1vdmRxdQkleW1tMCw2NCglcmRpKQorCXZtb3ZkcXUJJXltbTQsOTYoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisKKwlzdWJxCSQ1MTIsJXJkeAorCWpuegkuTG9vcF9vdXRlcjh4CisKKwlqbXAJLkxkb25lOHgKKworLkx0YWlsOHg6CisJY21wcQkkNDQ4LCVyZHgKKwlqYWUJLkw0NDhfb3JfbW9yZTh4CisJY21wcQkkMzg0LCVyZHgKKwlqYWUJLkwzODRfb3JfbW9yZTh4CisJY21wcQkkMzIwLCVyZHgKKwlqYWUJLkwzMjBfb3JfbW9yZTh4CisJY21wcQkkMjU2LCVyZHgKKwlqYWUJLkwyNTZfb3JfbW9yZTh4CisJY21wcQkkMTkyLCVyZHgKKwlqYWUJLkwxOTJfb3JfbW9yZTh4CisJY21wcQkkMTI4LCVyZHgKKwlqYWUJLkwxMjhfb3JfbW9yZTh4CisJY21wcQkkNjQsJXJkeAorCWphZQkuTDY0X29yX21vcmU4eAorCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW02LDAoJXJzcCkKKwl2bW92ZHFhCSV5bW04LDMyKCVyc3ApCisJam1wCS5Mb29wX3RhaWw4eAorCisuYWxpZ24JMzIKKy5MNjRfb3JfbW9yZTh4OgorCXZweG9yCTAoJXJzaSksJXltbTYsJXltbTYKKwl2cHhvcgkzMiglcnNpKSwleW1tOCwleW1tOAorCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwlqZQkuTGRvbmU4eAorCisJbGVhcQk2NCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0xLDAoJXJzcCkKKwlsZWFxCTY0KCVyZGkpLCVyZGkKKwlzdWJxCSQ2NCwlcmR4CisJdm1vdmRxYQkleW1tNSwzMiglcnNwKQorCWptcAkuTG9vcF90YWlsOHgKKworLmFsaWduCTMyCisuTDEyOF9vcl9tb3JlOHg6CisJdnB4b3IJMCglcnNpKSwleW1tNiwleW1tNgorCXZweG9yCTMyKCVyc2kpLCV5bW04LCV5bW04CisJdnB4b3IJNjQoJXJzaSksJXltbTEsJXltbTEKKwl2cHhvcgk5NiglcnNpKSwleW1tNSwleW1tNQorCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCWplCS5MZG9uZTh4CisKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0xMiwwKCVyc3ApCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCXN1YnEJJDEyOCwlcmR4CisJdm1vdmRxYQkleW1tMTMsMzIoJXJzcCkKKwlqbXAJLkxvb3BfdGFpbDh4CisKKy5hbGlnbgkzMgorLkwxOTJfb3JfbW9yZTh4OgorCXZweG9yCTAoJXJzaSksJXltbTYsJXltbTYKKwl2cHhvcgkzMiglcnNpKSwleW1tOCwleW1tOAorCXZweG9yCTY0KCVyc2kpLCV5bW0xLCV5bW0xCisJdnB4b3IJOTYoJXJzaSksJXltbTUsJXltbTUKKwl2cHhvcgkxMjgoJXJzaSksJXltbTEyLCV5bW0xMgorCXZweG9yCTE2MCglcnNpKSwleW1tMTMsJXltbTEzCisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW01LDk2KCVyZGkpCisJdm1vdmRxdQkleW1tMTIsMTI4KCVyZGkpCisJdm1vdmRxdQkleW1tMTMsMTYwKCVyZGkpCisJamUJLkxkb25lOHgKKworCWxlYXEJMTkyKCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTEwLDAoJXJzcCkKKwlsZWFxCTE5MiglcmRpKSwlcmRpCisJc3VicQkkMTkyLCVyZHgKKwl2bW92ZHFhCSV5bW0xNSwzMiglcnNwKQorCWptcAkuTG9vcF90YWlsOHgKKworLmFsaWduCTMyCisuTDI1Nl9vcl9tb3JlOHg6CisJdnB4b3IJMCglcnNpKSwleW1tNiwleW1tNgorCXZweG9yCTMyKCVyc2kpLCV5bW04LCV5bW04CisJdnB4b3IJNjQoJXJzaSksJXltbTEsJXltbTEKKwl2cHhvcgk5NiglcnNpKSwleW1tNSwleW1tNQorCXZweG9yCTEyOCglcnNpKSwleW1tMTIsJXltbTEyCisJdnB4b3IJMTYwKCVyc2kpLCV5bW0xMywleW1tMTMKKwl2cHhvcgkxOTIoJXJzaSksJXltbTEwLCV5bW0xMAorCXZweG9yCTIyNCglcnNpKSwleW1tMTUsJXltbTE1CisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW01LDk2KCVyZGkpCisJdm1vdmRxdQkleW1tMTIsMTI4KCVyZGkpCisJdm1vdmRxdQkleW1tMTMsMTYwKCVyZGkpCisJdm1vdmRxdQkleW1tMTAsMTkyKCVyZGkpCisJdm1vdmRxdQkleW1tMTUsMjI0KCVyZGkpCisJamUJLkxkb25lOHgKKworCWxlYXEJMjU2KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTE0LDAoJXJzcCkKKwlsZWFxCTI1NiglcmRpKSwlcmRpCisJc3VicQkkMjU2LCVyZHgKKwl2bW92ZHFhCSV5bW0yLDMyKCVyc3ApCisJam1wCS5Mb29wX3RhaWw4eAorCisuYWxpZ24JMzIKKy5MMzIwX29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTE5MiglcnNpKSwleW1tMTAsJXltbTEwCisJdnB4b3IJMjI0KCVyc2kpLCV5bW0xNSwleW1tMTUKKwl2cHhvcgkyNTYoJXJzaSksJXltbTE0LCV5bW0xNAorCXZweG9yCTI4OCglcnNpKSwleW1tMiwleW1tMgorCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCXZtb3ZkcXUJJXltbTEyLDEyOCglcmRpKQorCXZtb3ZkcXUJJXltbTEzLDE2MCglcmRpKQorCXZtb3ZkcXUJJXltbTEwLDE5MiglcmRpKQorCXZtb3ZkcXUJJXltbTE1LDIyNCglcmRpKQorCXZtb3ZkcXUJJXltbTE0LDI1NiglcmRpKQorCXZtb3ZkcXUJJXltbTIsMjg4KCVyZGkpCisJamUJLkxkb25lOHgKKworCWxlYXEJMzIwKCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTMsMCglcnNwKQorCWxlYXEJMzIwKCVyZGkpLCVyZGkKKwlzdWJxCSQzMjAsJXJkeAorCXZtb3ZkcWEJJXltbTcsMzIoJXJzcCkKKwlqbXAJLkxvb3BfdGFpbDh4CisKKy5hbGlnbgkzMgorLkwzODRfb3JfbW9yZTh4OgorCXZweG9yCTAoJXJzaSksJXltbTYsJXltbTYKKwl2cHhvcgkzMiglcnNpKSwleW1tOCwleW1tOAorCXZweG9yCTY0KCVyc2kpLCV5bW0xLCV5bW0xCisJdnB4b3IJOTYoJXJzaSksJXltbTUsJXltbTUKKwl2cHhvcgkxMjgoJXJzaSksJXltbTEyLCV5bW0xMgorCXZweG9yCTE2MCglcnNpKSwleW1tMTMsJXltbTEzCisJdnB4b3IJMTkyKCVyc2kpLCV5bW0xMCwleW1tMTAKKwl2cHhvcgkyMjQoJXJzaSksJXltbTE1LCV5bW0xNQorCXZweG9yCTI1NiglcnNpKSwleW1tMTQsJXltbTE0CisJdnB4b3IJMjg4KCVyc2kpLCV5bW0yLCV5bW0yCisJdnB4b3IJMzIwKCVyc2kpLCV5bW0zLCV5bW0zCisJdnB4b3IJMzUyKCVyc2kpLCV5bW03LCV5bW03CisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW01LDk2KCVyZGkpCisJdm1vdmRxdQkleW1tMTIsMTI4KCVyZGkpCisJdm1vdmRxdQkleW1tMTMsMTYwKCVyZGkpCisJdm1vdmRxdQkleW1tMTAsMTkyKCVyZGkpCisJdm1vdmRxdQkleW1tMTUsMjI0KCVyZGkpCisJdm1vdmRxdQkleW1tMTQsMjU2KCVyZGkpCisJdm1vdmRxdQkleW1tMiwyODgoJXJkaSkKKwl2bW92ZHF1CSV5bW0zLDMyMCglcmRpKQorCXZtb3ZkcXUJJXltbTcsMzUyKCVyZGkpCisJamUJLkxkb25lOHgKKworCWxlYXEJMzg0KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTExLDAoJXJzcCkKKwlsZWFxCTM4NCglcmRpKSwlcmRpCisJc3VicQkkMzg0LCVyZHgKKwl2bW92ZHFhCSV5bW05LDMyKCVyc3ApCisJam1wCS5Mb29wX3RhaWw4eAorCisuYWxpZ24JMzIKKy5MNDQ4X29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTE5MiglcnNpKSwleW1tMTAsJXltbTEwCisJdnB4b3IJMjI0KCVyc2kpLCV5bW0xNSwleW1tMTUKKwl2cHhvcgkyNTYoJXJzaSksJXltbTE0LCV5bW0xNAorCXZweG9yCTI4OCglcnNpKSwleW1tMiwleW1tMgorCXZweG9yCTMyMCglcnNpKSwleW1tMywleW1tMworCXZweG9yCTM1MiglcnNpKSwleW1tNywleW1tNworCXZweG9yCTM4NCglcnNpKSwleW1tMTEsJXltbTExCisJdnB4b3IJNDE2KCVyc2kpLCV5bW05LCV5bW05CisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW01LDk2KCVyZGkpCisJdm1vdmRxdQkleW1tMTIsMTI4KCVyZGkpCisJdm1vdmRxdQkleW1tMTMsMTYwKCVyZGkpCisJdm1vdmRxdQkleW1tMTAsMTkyKCVyZGkpCisJdm1vdmRxdQkleW1tMTUsMjI0KCVyZGkpCisJdm1vdmRxdQkleW1tMTQsMjU2KCVyZGkpCisJdm1vdmRxdQkleW1tMiwyODgoJXJkaSkKKwl2bW92ZHF1CSV5bW0zLDMyMCglcmRpKQorCXZtb3ZkcXUJJXltbTcsMzUyKCVyZGkpCisJdm1vdmRxdQkleW1tMTEsMzg0KCVyZGkpCisJdm1vdmRxdQkleW1tOSw0MTYoJXJkaSkKKwlqZQkuTGRvbmU4eAorCisJbGVhcQk0NDgoJXJzaSksJXJzaQorCXhvcnEJJXIxMCwlcjEwCisJdm1vdmRxYQkleW1tMCwwKCVyc3ApCisJbGVhcQk0NDgoJXJkaSksJXJkaQorCXN1YnEJJDQ0OCwlcmR4CisJdm1vdmRxYQkleW1tNCwzMiglcnNwKQorCisuTG9vcF90YWlsOHg6CisJbW92emJsCSglcnNpLCVyMTAsMSksJWVheAorCW1vdnpibAkoJXJzcCwlcjEwLDEpLCVlY3gKKwlsZWFxCTEoJXIxMCksJXIxMAorCXhvcmwJJWVjeCwlZWF4CisJbW92YgklYWwsLTEoJXJkaSwlcjEwLDEpCisJZGVjcQklcmR4CisJam56CS5Mb29wX3RhaWw4eAorCisuTGRvbmU4eDoKKwl2emVyb2FsbAorCW1vdnEJNjQwKCVyc3ApLCVyc3AKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCUNoYUNoYTIwXzh4LC4tQ2hhQ2hhMjBfOHgKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vY3B1LXg4Nl82NC1hc20uUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL2NwdS14ODZfNjQtYXNtLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZWYxNTQuLjAwMDAwMDAKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vY3B1LXg4Nl82NC1hc20uUworKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotLnRleHQJCi0KLS5nbG9ibAlPUEVOU1NMX2lhMzJfY3B1aWQKLS5oaWRkZW4gT1BFTlNTTF9pYTMyX2NwdWlkCi0udHlwZQlPUEVOU1NMX2lhMzJfY3B1aWQsQGZ1bmN0aW9uCi0uYWxpZ24JMTYKLU9QRU5TU0xfaWEzMl9jcHVpZDoKLQotCi0JbW92cQklcmRpLCVyZGkKLQltb3ZxCSVyYngsJXI4Ci0KLQl4b3JsCSVlYXgsJWVheAotCW1vdmwJJWVheCw4KCVyZGkpCi0JY3B1aWQKLQltb3ZsCSVlYXgsJXIxMWQKLQotCXhvcmwJJWVheCwlZWF4Ci0JY21wbAkkMTk3MDE2OTE1OSwlZWJ4Ci0Jc2V0bmUJJWFsCi0JbW92bAklZWF4LCVyOWQKLQljbXBsCSQxMjMxMzg0MTY5LCVlZHgKLQlzZXRuZQklYWwKLQlvcmwJJWVheCwlcjlkCi0JY21wbAkkMTgxODU4ODI3MCwlZWN4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJXI5ZAotCWp6CS5MaW50ZWwKLQotCWNtcGwJJDE3NTI0NjI2NTcsJWVieAotCXNldG5lCSVhbAotCW1vdmwJJWVheCwlcjEwZAotCWNtcGwJJDE3NjkyMzgxMTcsJWVkeAotCXNldG5lCSVhbAotCW9ybAklZWF4LCVyMTBkCi0JY21wbAkkMTE0NTkxMzY5OSwlZWN4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJXIxMGQKLQlqbnoJLkxpbnRlbAotCi0KLQotCi0JbW92bAkkMjE0NzQ4MzY0OCwlZWF4Ci0JY3B1aWQKLQotCi0JY21wbAkkMjE0NzQ4MzY0OSwlZWF4Ci0JamIJLkxpbnRlbAotCW1vdmwJJWVheCwlcjEwZAotCW1vdmwJJDIxNDc0ODM2NDksJWVheAotCWNwdWlkCi0KLQotCW9ybAklZWN4LCVyOWQKLQlhbmRsCSQyMDQ5LCVyOWQKLQotCWNtcGwJJDIxNDc0ODM2NTYsJXIxMGQKLQlqYgkuTGludGVsCi0KLQltb3ZsCSQyMTQ3NDgzNjU2LCVlYXgKLQljcHVpZAotCi0JbW92emJxCSVjbCwlcjEwCi0JaW5jcQklcjEwCi0KLQltb3ZsCSQxLCVlYXgKLQljcHVpZAotCi0JYnRsCSQyOCwlZWR4Ci0Jam5jCS5MZ2VuZXJpYwotCXNocmwJJDE2LCVlYngKLQljbXBiCSVyMTBiLCVibAotCWphCS5MZ2VuZXJpYwotCWFuZGwJJDQwMjY1MzE4MzksJWVkeAotCWptcAkuTGdlbmVyaWMKLQotLkxpbnRlbDoKLQljbXBsCSQ0LCVyMTFkCi0JbW92bAkkLTEsJXIxMGQKLQlqYgkuTG5vY2FjaGVpbmZvCi0KLQltb3ZsCSQ0LCVlYXgKLQltb3ZsCSQwLCVlY3gKLQljcHVpZAotCW1vdmwJJWVheCwlcjEwZAotCXNocmwJJDE0LCVyMTBkCi0JYW5kbAkkNDA5NSwlcjEwZAotCi0JY21wbAkkNywlcjExZAotCWpiCS5Mbm9jYWNoZWluZm8KLQotCW1vdmwJJDcsJWVheAotCXhvcmwJJWVjeCwlZWN4Ci0JY3B1aWQKLQltb3ZsCSVlYngsOCglcmRpKQotCi0uTG5vY2FjaGVpbmZvOgotCW1vdmwJJDEsJWVheAotCWNwdWlkCi0KLQlhbmRsCSQzMjIwMTc2ODk1LCVlZHgKLQljbXBsCSQwLCVyOWQKLQlqbmUJLkxub3RpbnRlbAotCW9ybAkkMTA3Mzc0MTgyNCwlZWR4Ci0uTG5vdGludGVsOgotCWJ0bAkkMjgsJWVkeAotCWpuYwkuTGdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQljbXBsCSQwLCVyMTBkCi0JamUJLkxnZW5lcmljCi0KLQlvcmwJJDI2ODQzNTQ1NiwlZWR4Ci0Jc2hybAkkMTYsJWVieAotCWNtcGIJJDEsJWJsCi0JamEJLkxnZW5lcmljCi0JYW5kbAkkNDAyNjUzMTgzOSwlZWR4Ci0uTGdlbmVyaWM6Ci0JYW5kbAkkMjA0OCwlcjlkCi0JYW5kbAkkNDI5NDk2NTI0NywlZWN4Ci0Jb3JsCSVlY3gsJXI5ZAotCi0JbW92bAklZWR4LCVyMTBkCi0JYnRsCSQyNywlcjlkCi0Jam5jCS5MY2xlYXJfYXZ4Ci0JeG9ybAklZWN4LCVlY3gKLS5ieXRlCTB4MGYsMHgwMSwweGQwCi0JYW5kbAkkNiwlZWF4Ci0JY21wbAkkNiwlZWF4Ci0JamUJLkxkb25lCi0uTGNsZWFyX2F2eDoKLQltb3ZsCSQ0MDI2NTI1Njk1LCVlYXgKLQlhbmRsCSVlYXgsJXI5ZAotCWFuZGwJJDQyOTQ5NjcyNjMsOCglcmRpKQotLkxkb25lOgotCW1vdmwJJXI5ZCw0KCVyZGkpCi0JbW92bAklcjEwZCwwKCVyZGkpCi0JbW92cQklcjgsJXJieAotCS5ieXRlCTB4ZjMsMHhjMwotLnNpemUJT1BFTlNTTF9pYTMyX2NwdWlkLC4tT1BFTlNTTF9pYTMyX2NwdWlkCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9lYy9wMjU2LXg4Nl82NC1hc20uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWJjZTZmCi0tLSAvZGV2L251bGwKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMKQEAgLTAsMCArMSwxNzg5IEBACisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorLnRleHQJCisuZXh0ZXJuCU9QRU5TU0xfaWEzMmNhcF9QCisuaGlkZGVuIE9QRU5TU0xfaWEzMmNhcF9QCisKKworLmFsaWduCTY0CisuTHBvbHk6CisucXVhZAkweGZmZmZmZmZmZmZmZmZmZmYsIDB4MDAwMDAwMDBmZmZmZmZmZiwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweGZmZmZmZmZmMDAwMDAwMDEKKworLkxPbmU6CisubG9uZwkxLDEsMSwxLDEsMSwxLDEKKy5MVHdvOgorLmxvbmcJMiwyLDIsMiwyLDIsMiwyCisuTFRocmVlOgorLmxvbmcJMywzLDMsMywzLDMsMywzCisuTE9ORV9tb250OgorLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAxLCAweGZmZmZmZmZmMDAwMDAwMDAsIDB4ZmZmZmZmZmZmZmZmZmZmZiwgMHgwMDAwMDAwMGZmZmZmZmZlCisKKy50eXBlCWVjcF9uaXN0ejI1Nl9tdWxfYnlfMixAZnVuY3Rpb24KKy5hbGlnbgk2NAorZWNwX25pc3R6MjU2X211bF9ieV8yOgorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisKKwltb3ZxCTAoJXJzaSksJXI4CisJbW92cQk4KCVyc2kpLCVyOQorCWFkZHEJJXI4LCVyOAorCW1vdnEJMTYoJXJzaSksJXIxMAorCWFkY3EJJXI5LCVyOQorCW1vdnEJMjQoJXJzaSksJXIxMQorCWxlYXEJLkxwb2x5KCVyaXApLCVyc2kKKwltb3ZxCSVyOCwlcmF4CisJYWRjcQklcjEwLCVyMTAKKwlhZGNxCSVyMTEsJXIxMQorCW1vdnEJJXI5LCVyZHgKKwlzYmJxCSVyMTMsJXIxMworCisJc3VicQkwKCVyc2kpLCVyOAorCW1vdnEJJXIxMCwlcmN4CisJc2JicQk4KCVyc2kpLCVyOQorCXNiYnEJMTYoJXJzaSksJXIxMAorCW1vdnEJJXIxMSwlcjEyCisJc2JicQkyNCglcnNpKSwlcjExCisJdGVzdHEJJXIxMywlcjEzCisKKwljbW92enEJJXJheCwlcjgKKwljbW92enEJJXJkeCwlcjkKKwltb3ZxCSVyOCwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXIxMAorCW1vdnEJJXI5LDgoJXJkaSkKKwljbW92enEJJXIxMiwlcjExCisJbW92cQklcjEwLDE2KCVyZGkpCisJbW92cQklcjExLDI0KCVyZGkpCisKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWVjcF9uaXN0ejI1Nl9tdWxfYnlfMiwuLWVjcF9uaXN0ejI1Nl9tdWxfYnlfMgorCisKKworLmdsb2JsCWVjcF9uaXN0ejI1Nl9uZWcKKy5oaWRkZW4gZWNwX25pc3R6MjU2X25lZworLnR5cGUJZWNwX25pc3R6MjU2X25lZyxAZnVuY3Rpb24KKy5hbGlnbgkzMgorZWNwX25pc3R6MjU2X25lZzoKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCisJeG9ycQklcjgsJXI4CisJeG9ycQklcjksJXI5CisJeG9ycQklcjEwLCVyMTAKKwl4b3JxCSVyMTEsJXIxMQorCXhvcnEJJXIxMywlcjEzCisKKwlzdWJxCTAoJXJzaSksJXI4CisJc2JicQk4KCVyc2kpLCVyOQorCXNiYnEJMTYoJXJzaSksJXIxMAorCW1vdnEJJXI4LCVyYXgKKwlzYmJxCTI0KCVyc2kpLCVyMTEKKwlsZWFxCS5McG9seSglcmlwKSwlcnNpCisJbW92cQklcjksJXJkeAorCXNiYnEJJDAsJXIxMworCisJYWRkcQkwKCVyc2kpLCVyOAorCW1vdnEJJXIxMCwlcmN4CisJYWRjcQk4KCVyc2kpLCVyOQorCWFkY3EJMTYoJXJzaSksJXIxMAorCW1vdnEJJXIxMSwlcjEyCisJYWRjcQkyNCglcnNpKSwlcjExCisJdGVzdHEJJXIxMywlcjEzCisKKwljbW92enEJJXJheCwlcjgKKwljbW92enEJJXJkeCwlcjkKKwltb3ZxCSVyOCwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXIxMAorCW1vdnEJJXI5LDgoJXJkaSkKKwljbW92enEJJXIxMiwlcjExCisJbW92cQklcjEwLDE2KCVyZGkpCisJbW92cQklcjExLDI0KCVyZGkpCisKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWVjcF9uaXN0ejI1Nl9uZWcsLi1lY3BfbmlzdHoyNTZfbmVnCisKKworCisKKworCisuZ2xvYmwJZWNwX25pc3R6MjU2X211bF9tb250CisuaGlkZGVuIGVjcF9uaXN0ejI1Nl9tdWxfbW9udAorLnR5cGUJZWNwX25pc3R6MjU2X211bF9tb250LEBmdW5jdGlvbgorLmFsaWduCTMyCitlY3BfbmlzdHoyNTZfbXVsX21vbnQ6CisuTG11bF9tb250OgorCXB1c2hxCSVyYnAKKwlwdXNocQklcmJ4CisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCW1vdnEJJXJkeCwlcmJ4CisJbW92cQkwKCVyZHgpLCVyYXgKKwltb3ZxCTAoJXJzaSksJXI5CisJbW92cQk4KCVyc2kpLCVyMTAKKwltb3ZxCTE2KCVyc2kpLCVyMTEKKwltb3ZxCTI0KCVyc2kpLCVyMTIKKworCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisuTG11bF9tb250X2RvbmU6CisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcmJ4CisJcG9wcQklcmJwCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQllY3BfbmlzdHoyNTZfbXVsX21vbnQsLi1lY3BfbmlzdHoyNTZfbXVsX21vbnQKKworLnR5cGUJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxLEBmdW5jdGlvbgorLmFsaWduCTMyCitfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHE6CisKKworCW1vdnEJJXJheCwlcmJwCisJbXVscQklcjkKKwltb3ZxCS5McG9seSs4KCVyaXApLCVyMTQKKwltb3ZxCSVyYXgsJXI4CisJbW92cQklcmJwLCVyYXgKKwltb3ZxCSVyZHgsJXI5CisKKwltdWxxCSVyMTAKKwltb3ZxCS5McG9seSsyNCglcmlwKSwlcjE1CisJYWRkcQklcmF4LCVyOQorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyMTAKKworCW11bHEJJXIxMQorCWFkZHEJJXJheCwlcjEwCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXIxMQorCisJbXVscQklcjEyCisJYWRkcQklcmF4LCVyMTEKKwltb3ZxCSVyOCwlcmF4CisJYWRjcQkkMCwlcmR4CisJeG9ycQklcjEzLCVyMTMKKwltb3ZxCSVyZHgsJXIxMgorCisKKworCisKKworCisKKworCisJbW92cQklcjgsJXJicAorCXNobHEJJDMyLCVyOAorCW11bHEJJXIxNQorCXNocnEJJDMyLCVyYnAKKwlhZGRxCSVyOCwlcjkKKwlhZGNxCSVyYnAsJXIxMAorCWFkY3EJJXJheCwlcjExCisJbW92cQk4KCVyYngpLCVyYXgKKwlhZGNxCSVyZHgsJXIxMgorCWFkY3EJJDAsJXIxMworCXhvcnEJJXI4LCVyOAorCisKKworCW1vdnEJJXJheCwlcmJwCisJbXVscQkwKCVyc2kpCisJYWRkcQklcmF4LCVyOQorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJOCglcnNpKQorCWFkZHEJJXJjeCwlcjEwCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTAKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTE2KCVyc2kpCisJYWRkcQklcmN4LCVyMTEKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYXgsJXIxMQorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJMjQoJXJzaSkKKwlhZGRxCSVyY3gsJXIxMgorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjEyCisJbW92cQklcjksJXJheAorCWFkY3EJJXJkeCwlcjEzCisJYWRjcQkkMCwlcjgKKworCisKKwltb3ZxCSVyOSwlcmJwCisJc2hscQkkMzIsJXI5CisJbXVscQklcjE1CisJc2hycQkkMzIsJXJicAorCWFkZHEJJXI5LCVyMTAKKwlhZGNxCSVyYnAsJXIxMQorCWFkY3EJJXJheCwlcjEyCisJbW92cQkxNiglcmJ4KSwlcmF4CisJYWRjcQklcmR4LCVyMTMKKwlhZGNxCSQwLCVyOAorCXhvcnEJJXI5LCVyOQorCisKKworCW1vdnEJJXJheCwlcmJwCisJbXVscQkwKCVyc2kpCisJYWRkcQklcmF4LCVyMTAKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTgoJXJzaSkKKwlhZGRxCSVyY3gsJXIxMQorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjExCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQkxNiglcnNpKQorCWFkZHEJJXJjeCwlcjEyCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTIKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTI0KCVyc2kpCisJYWRkcQklcmN4LCVyMTMKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYXgsJXIxMworCW1vdnEJJXIxMCwlcmF4CisJYWRjcQklcmR4LCVyOAorCWFkY3EJJDAsJXI5CisKKworCisJbW92cQklcjEwLCVyYnAKKwlzaGxxCSQzMiwlcjEwCisJbXVscQklcjE1CisJc2hycQkkMzIsJXJicAorCWFkZHEJJXIxMCwlcjExCisJYWRjcQklcmJwLCVyMTIKKwlhZGNxCSVyYXgsJXIxMworCW1vdnEJMjQoJXJieCksJXJheAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQwLCVyOQorCXhvcnEJJXIxMCwlcjEwCisKKworCisJbW92cQklcmF4LCVyYnAKKwltdWxxCTAoJXJzaSkKKwlhZGRxCSVyYXgsJXIxMQorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJOCglcnNpKQorCWFkZHEJJXJjeCwlcjEyCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTIKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTE2KCVyc2kpCisJYWRkcQklcmN4LCVyMTMKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYXgsJXIxMworCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJMjQoJXJzaSkKKwlhZGRxCSVyY3gsJXI4CisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyOAorCW1vdnEJJXIxMSwlcmF4CisJYWRjcQklcmR4LCVyOQorCWFkY3EJJDAsJXIxMAorCisKKworCW1vdnEJJXIxMSwlcmJwCisJc2hscQkkMzIsJXIxMQorCW11bHEJJXIxNQorCXNocnEJJDMyLCVyYnAKKwlhZGRxCSVyMTEsJXIxMgorCWFkY3EJJXJicCwlcjEzCisJbW92cQklcjEyLCVyY3gKKwlhZGNxCSVyYXgsJXI4CisJYWRjcQklcmR4LCVyOQorCW1vdnEJJXIxMywlcmJwCisJYWRjcQkkMCwlcjEwCisKKworCisJc3VicQkkLTEsJXIxMgorCW1vdnEJJXI4LCVyYngKKwlzYmJxCSVyMTQsJXIxMworCXNiYnEJJDAsJXI4CisJbW92cQklcjksJXJkeAorCXNiYnEJJXIxNSwlcjkKKwlzYmJxCSQwLCVyMTAKKworCWNtb3ZjcQklcmN4LCVyMTIKKwljbW92Y3EJJXJicCwlcjEzCisJbW92cQklcjEyLDAoJXJkaSkKKwljbW92Y3EJJXJieCwlcjgKKwltb3ZxCSVyMTMsOCglcmRpKQorCWNtb3ZjcQklcmR4LCVyOQorCW1vdnEJJXI4LDE2KCVyZGkpCisJbW92cQklcjksMjQoJXJkaSkKKworCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxLC4tX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKworCisKKworCisKKworLmdsb2JsCWVjcF9uaXN0ejI1Nl9zcXJfbW9udAorLmhpZGRlbiBlY3BfbmlzdHoyNTZfc3FyX21vbnQKKy50eXBlCWVjcF9uaXN0ejI1Nl9zcXJfbW9udCxAZnVuY3Rpb24KKy5hbGlnbgkzMgorZWNwX25pc3R6MjU2X3Nxcl9tb250OgorCXB1c2hxCSVyYnAKKwlwdXNocQklcmJ4CisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCW1vdnEJMCglcnNpKSwlcmF4CisJbW92cQk4KCVyc2kpLCVyMTQKKwltb3ZxCTE2KCVyc2kpLCVyMTUKKwltb3ZxCTI0KCVyc2kpLCVyOAorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKy5Mc3FyX21vbnRfZG9uZToKKwlwb3BxCSVyMTUKKwlwb3BxCSVyMTQKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwlwb3BxCSVyYngKKwlwb3BxCSVyYnAKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWVjcF9uaXN0ejI1Nl9zcXJfbW9udCwuLWVjcF9uaXN0ejI1Nl9zcXJfbW9udAorCisudHlwZQlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK19fZWNwX25pc3R6MjU2X3Nxcl9tb250cToKKwltb3ZxCSVyYXgsJXIxMworCW11bHEJJXIxNAorCW1vdnEJJXJheCwlcjkKKwltb3ZxCSVyMTUsJXJheAorCW1vdnEJJXJkeCwlcjEwCisKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXIxMQorCisJbXVscQklcjEzCisJYWRkcQklcmF4LCVyMTEKKwltb3ZxCSVyMTUsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcjEyCisKKworCW11bHEJJXIxNAorCWFkZHEJJXJheCwlcjExCisJbW92cQklcjgsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmJwCisKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXIxMgorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYnAsJXIxMgorCW1vdnEJJXJkeCwlcjEzCisJYWRjcQkkMCwlcjEzCisKKworCW11bHEJJXIxNQorCXhvcnEJJXIxNSwlcjE1CisJYWRkcQklcmF4LCVyMTMKKwltb3ZxCTAoJXJzaSksJXJheAorCW1vdnEJJXJkeCwlcjE0CisJYWRjcQkkMCwlcjE0CisKKwlhZGRxCSVyOSwlcjkKKwlhZGNxCSVyMTAsJXIxMAorCWFkY3EJJXIxMSwlcjExCisJYWRjcQklcjEyLCVyMTIKKwlhZGNxCSVyMTMsJXIxMworCWFkY3EJJXIxNCwlcjE0CisJYWRjcQkkMCwlcjE1CisKKwltdWxxCSVyYXgKKwltb3ZxCSVyYXgsJXI4CisJbW92cQk4KCVyc2kpLCVyYXgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQklcmF4CisJYWRkcQklcmN4LCVyOQorCWFkY3EJJXJheCwlcjEwCisJbW92cQkxNiglcnNpKSwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJJXJheAorCWFkZHEJJXJjeCwlcjExCisJYWRjcQklcmF4LCVyMTIKKwltb3ZxCTI0KCVyc2kpLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQklcmF4CisJYWRkcQklcmN4LCVyMTMKKwlhZGNxCSVyYXgsJXIxNAorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSVyZHgsJXIxNQorCisJbW92cQkuTHBvbHkrOCglcmlwKSwlcnNpCisJbW92cQkuTHBvbHkrMjQoJXJpcCksJXJicAorCisKKworCisJbW92cQklcjgsJXJjeAorCXNobHEJJDMyLCVyOAorCW11bHEJJXJicAorCXNocnEJJDMyLCVyY3gKKwlhZGRxCSVyOCwlcjkKKwlhZGNxCSVyY3gsJXIxMAorCWFkY3EJJXJheCwlcjExCisJbW92cQklcjksJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXI5LCVyY3gKKwlzaGxxCSQzMiwlcjkKKwltb3ZxCSVyZHgsJXI4CisJbXVscQklcmJwCisJc2hycQkkMzIsJXJjeAorCWFkZHEJJXI5LCVyMTAKKwlhZGNxCSVyY3gsJXIxMQorCWFkY3EJJXJheCwlcjgKKwltb3ZxCSVyMTAsJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXIxMCwlcmN4CisJc2hscQkkMzIsJXIxMAorCW1vdnEJJXJkeCwlcjkKKwltdWxxCSVyYnAKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjEwLCVyMTEKKwlhZGNxCSVyY3gsJXI4CisJYWRjcQklcmF4LCVyOQorCW1vdnEJJXIxMSwlcmF4CisJYWRjcQkkMCwlcmR4CisKKworCisJbW92cQklcjExLCVyY3gKKwlzaGxxCSQzMiwlcjExCisJbW92cQklcmR4LCVyMTAKKwltdWxxCSVyYnAKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjExLCVyOAorCWFkY3EJJXJjeCwlcjkKKwlhZGNxCSVyYXgsJXIxMAorCWFkY3EJJDAsJXJkeAorCXhvcnEJJXIxMSwlcjExCisKKworCisJYWRkcQklcjgsJXIxMgorCWFkY3EJJXI5LCVyMTMKKwltb3ZxCSVyMTIsJXI4CisJYWRjcQklcjEwLCVyMTQKKwlhZGNxCSVyZHgsJXIxNQorCW1vdnEJJXIxMywlcjkKKwlhZGNxCSQwLCVyMTEKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyMTQsJXIxMAorCXNiYnEJJXJzaSwlcjEzCisJc2JicQkkMCwlcjE0CisJbW92cQklcjE1LCVyY3gKKwlzYmJxCSVyYnAsJXIxNQorCXNiYnEJJDAsJXIxMQorCisJY21vdmNxCSVyOCwlcjEyCisJY21vdmNxCSVyOSwlcjEzCisJbW92cQklcjEyLDAoJXJkaSkKKwljbW92Y3EJJXIxMCwlcjE0CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92Y3EJJXJjeCwlcjE1CisJbW92cQklcjE0LDE2KCVyZGkpCisJbW92cQklcjE1LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cSwuLV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisKKworCisKKworLmdsb2JsCWVjcF9uaXN0ejI1Nl9mcm9tX21vbnQKKy5oaWRkZW4gZWNwX25pc3R6MjU2X2Zyb21fbW9udAorLnR5cGUJZWNwX25pc3R6MjU2X2Zyb21fbW9udCxAZnVuY3Rpb24KKy5hbGlnbgkzMgorZWNwX25pc3R6MjU2X2Zyb21fbW9udDoKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCisJbW92cQkwKCVyc2kpLCVyYXgKKwltb3ZxCS5McG9seSsyNCglcmlwKSwlcjEzCisJbW92cQk4KCVyc2kpLCVyOQorCW1vdnEJMTYoJXJzaSksJXIxMAorCW1vdnEJMjQoJXJzaSksJXIxMQorCW1vdnEJJXJheCwlcjgKKwltb3ZxCS5McG9seSs4KCVyaXApLCVyMTIKKworCisKKwltb3ZxCSVyYXgsJXJjeAorCXNobHEJJDMyLCVyOAorCW11bHEJJXIxMworCXNocnEJJDMyLCVyY3gKKwlhZGRxCSVyOCwlcjkKKwlhZGNxCSVyY3gsJXIxMAorCWFkY3EJJXJheCwlcjExCisJbW92cQklcjksJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXI5LCVyY3gKKwlzaGxxCSQzMiwlcjkKKwltb3ZxCSVyZHgsJXI4CisJbXVscQklcjEzCisJc2hycQkkMzIsJXJjeAorCWFkZHEJJXI5LCVyMTAKKwlhZGNxCSVyY3gsJXIxMQorCWFkY3EJJXJheCwlcjgKKwltb3ZxCSVyMTAsJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXIxMCwlcmN4CisJc2hscQkkMzIsJXIxMAorCW1vdnEJJXJkeCwlcjkKKwltdWxxCSVyMTMKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjEwLCVyMTEKKwlhZGNxCSVyY3gsJXI4CisJYWRjcQklcmF4LCVyOQorCW1vdnEJJXIxMSwlcmF4CisJYWRjcQkkMCwlcmR4CisKKworCisJbW92cQklcjExLCVyY3gKKwlzaGxxCSQzMiwlcjExCisJbW92cQklcmR4LCVyMTAKKwltdWxxCSVyMTMKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjExLCVyOAorCWFkY3EJJXJjeCwlcjkKKwltb3ZxCSVyOCwlcmN4CisJYWRjcQklcmF4LCVyMTAKKwltb3ZxCSVyOSwlcnNpCisJYWRjcQkkMCwlcmR4CisKKwlzdWJxCSQtMSwlcjgKKwltb3ZxCSVyMTAsJXJheAorCXNiYnEJJXIxMiwlcjkKKwlzYmJxCSQwLCVyMTAKKwltb3ZxCSVyZHgsJXIxMQorCXNiYnEJJXIxMywlcmR4CisJc2JicQklcjEzLCVyMTMKKworCWNtb3ZuenEJJXJjeCwlcjgKKwljbW92bnpxCSVyc2ksJXI5CisJbW92cQklcjgsMCglcmRpKQorCWNtb3ZuenEJJXJheCwlcjEwCisJbW92cQklcjksOCglcmRpKQorCWNtb3Z6cQklcmR4LCVyMTEKKwltb3ZxCSVyMTAsMTYoJXJkaSkKKwltb3ZxCSVyMTEsMjQoJXJkaSkKKworCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJZWNwX25pc3R6MjU2X2Zyb21fbW9udCwuLWVjcF9uaXN0ejI1Nl9mcm9tX21vbnQKKworCisuZ2xvYmwJZWNwX25pc3R6MjU2X3NlbGVjdF93NQorLmhpZGRlbiBlY3BfbmlzdHoyNTZfc2VsZWN0X3c1CisudHlwZQllY3BfbmlzdHoyNTZfc2VsZWN0X3c1LEBmdW5jdGlvbgorLmFsaWduCTMyCitlY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgorCW1vdmRxYQkuTE9uZSglcmlwKSwleG1tMAorCW1vdmQJJWVkeCwleG1tMQorCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCXB4b3IJJXhtbTYsJXhtbTYKKwlweG9yCSV4bW03LCV4bW03CisKKwltb3ZkcWEJJXhtbTAsJXhtbTgKKwlwc2h1ZmQJJDAsJXhtbTEsJXhtbTEKKworCW1vdnEJJDE2LCVyYXgKKy5Mc2VsZWN0X2xvb3Bfc3NlX3c1OgorCisJbW92ZHFhCSV4bW04LCV4bW0xNQorCXBhZGRkCSV4bW0wLCV4bW04CisJcGNtcGVxZAkleG1tMSwleG1tMTUKKworCW1vdmRxYQkwKCVyc2kpLCV4bW05CisJbW92ZHFhCTE2KCVyc2kpLCV4bW0xMAorCW1vdmRxYQkzMiglcnNpKSwleG1tMTEKKwltb3ZkcWEJNDgoJXJzaSksJXhtbTEyCisJbW92ZHFhCTY0KCVyc2kpLCV4bW0xMworCW1vdmRxYQk4MCglcnNpKSwleG1tMTQKKwlsZWFxCTk2KCVyc2kpLCVyc2kKKworCXBhbmQJJXhtbTE1LCV4bW05CisJcGFuZAkleG1tMTUsJXhtbTEwCisJcG9yCSV4bW05LCV4bW0yCisJcGFuZAkleG1tMTUsJXhtbTExCisJcG9yCSV4bW0xMCwleG1tMworCXBhbmQJJXhtbTE1LCV4bW0xMgorCXBvcgkleG1tMTEsJXhtbTQKKwlwYW5kCSV4bW0xNSwleG1tMTMKKwlwb3IJJXhtbTEyLCV4bW01CisJcGFuZAkleG1tMTUsJXhtbTE0CisJcG9yCSV4bW0xMywleG1tNgorCXBvcgkleG1tMTQsJXhtbTcKKworCWRlY3EJJXJheAorCWpuegkuTHNlbGVjdF9sb29wX3NzZV93NQorCisJbW92ZHF1CSV4bW0yLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTMsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTQsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTUsNDgoJXJkaSkKKwltb3ZkcXUJJXhtbTYsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTcsODAoJXJkaSkKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCWVjcF9uaXN0ejI1Nl9zZWxlY3RfdzUsLi1lY3BfbmlzdHoyNTZfc2VsZWN0X3c1CisKKworCisuZ2xvYmwJZWNwX25pc3R6MjU2X3NlbGVjdF93NworLmhpZGRlbiBlY3BfbmlzdHoyNTZfc2VsZWN0X3c3CisudHlwZQllY3BfbmlzdHoyNTZfc2VsZWN0X3c3LEBmdW5jdGlvbgorLmFsaWduCTMyCitlY3BfbmlzdHoyNTZfc2VsZWN0X3c3OgorCW1vdmRxYQkuTE9uZSglcmlwKSwleG1tOAorCW1vdmQJJWVkeCwleG1tMQorCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCisJbW92ZHFhCSV4bW04LCV4bW0wCisJcHNodWZkCSQwLCV4bW0xLCV4bW0xCisJbW92cQkkNjQsJXJheAorCisuTHNlbGVjdF9sb29wX3NzZV93NzoKKwltb3ZkcWEJJXhtbTgsJXhtbTE1CisJcGFkZGQJJXhtbTAsJXhtbTgKKwltb3ZkcWEJMCglcnNpKSwleG1tOQorCW1vdmRxYQkxNiglcnNpKSwleG1tMTAKKwlwY21wZXFkCSV4bW0xLCV4bW0xNQorCW1vdmRxYQkzMiglcnNpKSwleG1tMTEKKwltb3ZkcWEJNDgoJXJzaSksJXhtbTEyCisJbGVhcQk2NCglcnNpKSwlcnNpCisKKwlwYW5kCSV4bW0xNSwleG1tOQorCXBhbmQJJXhtbTE1LCV4bW0xMAorCXBvcgkleG1tOSwleG1tMgorCXBhbmQJJXhtbTE1LCV4bW0xMQorCXBvcgkleG1tMTAsJXhtbTMKKwlwYW5kCSV4bW0xNSwleG1tMTIKKwlwb3IJJXhtbTExLCV4bW00CisJcHJlZmV0Y2h0MAkyNTUoJXJzaSkKKwlwb3IJJXhtbTEyLCV4bW01CisKKwlkZWNxCSVyYXgKKwlqbnoJLkxzZWxlY3RfbG9vcF9zc2VfdzcKKworCW1vdmRxdQkleG1tMiwwKCVyZGkpCisJbW92ZHF1CSV4bW0zLDE2KCVyZGkpCisJbW92ZHF1CSV4bW00LDMyKCVyZGkpCisJbW92ZHF1CSV4bW01LDQ4KCVyZGkpCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQllY3BfbmlzdHoyNTZfc2VsZWN0X3c3LC4tZWNwX25pc3R6MjU2X3NlbGVjdF93NworLmdsb2JsCWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NworLmhpZGRlbiBlY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcKKy50eXBlCWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NyxAZnVuY3Rpb24KKy5hbGlnbgkzMgorZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3OgorLmJ5dGUJMHgwZiwweDBiCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQllY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcsLi1lY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcKKy50eXBlCV9fZWNwX25pc3R6MjU2X2FkZF90b3EsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK19fZWNwX25pc3R6MjU2X2FkZF90b3E6CisJYWRkcQkwKCVyYngpLCVyMTIKKwlhZGNxCTgoJXJieCksJXIxMworCW1vdnEJJXIxMiwlcmF4CisJYWRjcQkxNiglcmJ4KSwlcjgKKwlhZGNxCTI0KCVyYngpLCVyOQorCW1vdnEJJXIxMywlcmJwCisJc2JicQklcjExLCVyMTEKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyOCwlcmN4CisJc2JicQklcjE0LCVyMTMKKwlzYmJxCSQwLCVyOAorCW1vdnEJJXI5LCVyMTAKKwlzYmJxCSVyMTUsJXI5CisJdGVzdHEJJXIxMSwlcjExCisKKwljbW92enEJJXJheCwlcjEyCisJY21vdnpxCSVyYnAsJXIxMworCW1vdnEJJXIxMiwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXI4CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92enEJJXIxMCwlcjkKKwltb3ZxCSVyOCwxNiglcmRpKQorCW1vdnEJJXI5LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKy5zaXplCV9fZWNwX25pc3R6MjU2X2FkZF90b3EsLi1fX2VjcF9uaXN0ejI1Nl9hZGRfdG9xCisKKy50eXBlCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcSxAZnVuY3Rpb24KKy5hbGlnbgkzMgorX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xOgorCXN1YnEJMCglcmJ4KSwlcjEyCisJc2JicQk4KCVyYngpLCVyMTMKKwltb3ZxCSVyMTIsJXJheAorCXNiYnEJMTYoJXJieCksJXI4CisJc2JicQkyNCglcmJ4KSwlcjkKKwltb3ZxCSVyMTMsJXJicAorCXNiYnEJJXIxMSwlcjExCisKKwlhZGRxCSQtMSwlcjEyCisJbW92cQklcjgsJXJjeAorCWFkY3EJJXIxNCwlcjEzCisJYWRjcQkkMCwlcjgKKwltb3ZxCSVyOSwlcjEwCisJYWRjcQklcjE1LCVyOQorCXRlc3RxCSVyMTEsJXIxMQorCisJY21vdnpxCSVyYXgsJXIxMgorCWNtb3Z6cQklcmJwLCVyMTMKKwltb3ZxCSVyMTIsMCglcmRpKQorCWNtb3Z6cQklcmN4LCVyOAorCW1vdnEJJXIxMyw4KCVyZGkpCisJY21vdnpxCSVyMTAsJXI5CisJbW92cQklcjgsMTYoJXJkaSkKKwltb3ZxCSVyOSwyNCglcmRpKQorCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEsLi1fX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworLnR5cGUJX19lY3BfbmlzdHoyNTZfc3VicSxAZnVuY3Rpb24KKy5hbGlnbgkzMgorX19lY3BfbmlzdHoyNTZfc3VicToKKwlzdWJxCSVyMTIsJXJheAorCXNiYnEJJXIxMywlcmJwCisJbW92cQklcmF4LCVyMTIKKwlzYmJxCSVyOCwlcmN4CisJc2JicQklcjksJXIxMAorCW1vdnEJJXJicCwlcjEzCisJc2JicQklcjExLCVyMTEKKworCWFkZHEJJC0xLCVyYXgKKwltb3ZxCSVyY3gsJXI4CisJYWRjcQklcjE0LCVyYnAKKwlhZGNxCSQwLCVyY3gKKwltb3ZxCSVyMTAsJXI5CisJYWRjcQklcjE1LCVyMTAKKwl0ZXN0cQklcjExLCVyMTEKKworCWNtb3ZuenEJJXJheCwlcjEyCisJY21vdm56cQklcmJwLCVyMTMKKwljbW92bnpxCSVyY3gsJXI4CisJY21vdm56cQklcjEwLCVyOQorCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9zdWJxLC4tX19lY3BfbmlzdHoyNTZfc3VicQorCisudHlwZQlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK19fZWNwX25pc3R6MjU2X211bF9ieV8ycToKKwlhZGRxCSVyMTIsJXIxMgorCWFkY3EJJXIxMywlcjEzCisJbW92cQklcjEyLCVyYXgKKwlhZGNxCSVyOCwlcjgKKwlhZGNxCSVyOSwlcjkKKwltb3ZxCSVyMTMsJXJicAorCXNiYnEJJXIxMSwlcjExCisKKwlzdWJxCSQtMSwlcjEyCisJbW92cQklcjgsJXJjeAorCXNiYnEJJXIxNCwlcjEzCisJc2JicQkkMCwlcjgKKwltb3ZxCSVyOSwlcjEwCisJc2JicQklcjE1LCVyOQorCXRlc3RxCSVyMTEsJXIxMQorCisJY21vdnpxCSVyYXgsJXIxMgorCWNtb3Z6cQklcmJwLCVyMTMKKwltb3ZxCSVyMTIsMCglcmRpKQorCWNtb3Z6cQklcmN4LCVyOAorCW1vdnEJJXIxMyw4KCVyZGkpCisJY21vdnpxCSVyMTAsJXI5CisJbW92cQklcjgsMTYoJXJkaSkKKwltb3ZxCSVyOSwyNCglcmRpKQorCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEsLi1fX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKKy5nbG9ibAllY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlCisuaGlkZGVuIGVjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUKKy50eXBlCWVjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK2VjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGU6CisJcHVzaHEJJXJicAorCXB1c2hxCSVyYngKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJc3VicQkkMTYwKzgsJXJzcAorCisuTHBvaW50X2RvdWJsZV9zaG9ydGN1dHE6CisJbW92ZHF1CTAoJXJzaSksJXhtbTAKKwltb3ZxCSVyc2ksJXJieAorCW1vdmRxdQkxNiglcnNpKSwleG1tMQorCW1vdnEJMzIrMCglcnNpKSwlcjEyCisJbW92cQkzMis4KCVyc2kpLCVyMTMKKwltb3ZxCTMyKzE2KCVyc2kpLCVyOAorCW1vdnEJMzIrMjQoJXJzaSksJXI5CisJbW92cQkuTHBvbHkrOCglcmlwKSwlcjE0CisJbW92cQkuTHBvbHkrMjQoJXJpcCksJXIxNQorCW1vdmRxYQkleG1tMCw5NiglcnNwKQorCW1vdmRxYQkleG1tMSw5NisxNiglcnNwKQorCWxlYXEJMzIoJXJkaSksJXIxMAorCWxlYXEJNjQoJXJkaSksJXIxMQorLmJ5dGUJMTAyLDcyLDE1LDExMCwxOTkKKy5ieXRlCTEwMiw3MywxNSwxMTAsMjAyCisuYnl0ZQkxMDIsNzMsMTUsMTEwLDIxMQorCisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9ieV8ycQorCisJbW92cQk2NCswKCVyc2kpLCVyYXgKKwltb3ZxCTY0KzgoJXJzaSksJXIxNAorCW1vdnEJNjQrMTYoJXJzaSksJXIxNQorCW1vdnEJNjQrMjQoJXJzaSksJXI4CisJbGVhcQk2NC0wKCVyc2kpLCVyc2kKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQkwKzAoJXJzcCksJXJheAorCW1vdnEJOCswKCVyc3ApLCVyMTQKKwlsZWFxCTArMCglcnNwKSwlcnNpCisJbW92cQkxNiswKCVyc3ApLCVyMTUKKwltb3ZxCTI0KzAoJXJzcCksJXI4CisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQkzMiglcmJ4KSwlcmF4CisJbW92cQk2NCswKCVyYngpLCVyOQorCW1vdnEJNjQrOCglcmJ4KSwlcjEwCisJbW92cQk2NCsxNiglcmJ4KSwlcjExCisJbW92cQk2NCsyNCglcmJ4KSwlcjEyCisJbGVhcQk2NC0wKCVyYngpLCVyc2kKKwlsZWFxCTMyKCVyYngpLCVyYngKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMjE1CisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9ieV8ycQorCisJbW92cQk5NiswKCVyc3ApLCVyMTIKKwltb3ZxCTk2KzgoJXJzcCksJXIxMworCWxlYXEJNjQoJXJzcCksJXJieAorCW1vdnEJOTYrMTYoJXJzcCksJXI4CisJbW92cQk5NisyNCglcnNwKSwlcjkKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X2FkZF90b3EKKworCW1vdnEJOTYrMCglcnNwKSwlcjEyCisJbW92cQk5Nis4KCVyc3ApLCVyMTMKKwlsZWFxCTY0KCVyc3ApLCVyYngKKwltb3ZxCTk2KzE2KCVyc3ApLCVyOAorCW1vdnEJOTYrMjQoJXJzcCksJXI5CisJbGVhcQk2NCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCW1vdnEJMCswKCVyc3ApLCVyYXgKKwltb3ZxCTgrMCglcnNwKSwlcjE0CisJbGVhcQkwKzAoJXJzcCksJXJzaQorCW1vdnEJMTYrMCglcnNwKSwlcjE1CisJbW92cQkyNCswKCVyc3ApLCVyOAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCXhvcnEJJXI5LCVyOQorCW1vdnEJJXIxMiwlcmF4CisJYWRkcQkkLTEsJXIxMgorCW1vdnEJJXIxMywlcjEwCisJYWRjcQklcnNpLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCWFkY3EJJDAsJXIxNAorCW1vdnEJJXIxNSwlcjgKKwlhZGNxCSVyYnAsJXIxNQorCWFkY3EJJDAsJXI5CisJeG9ycQklcnNpLCVyc2kKKwl0ZXN0cQkkMSwlcmF4CisKKwljbW92enEJJXJheCwlcjEyCisJY21vdnpxCSVyMTAsJXIxMworCWNtb3Z6cQklcmN4LCVyMTQKKwljbW92enEJJXI4LCVyMTUKKwljbW92enEJJXJzaSwlcjkKKworCW1vdnEJJXIxMywlcmF4CisJc2hycQkkMSwlcjEyCisJc2hscQkkNjMsJXJheAorCW1vdnEJJXIxNCwlcjEwCisJc2hycQkkMSwlcjEzCisJb3JxCSVyYXgsJXIxMgorCXNobHEJJDYzLCVyMTAKKwltb3ZxCSVyMTUsJXJjeAorCXNocnEJJDEsJXIxNAorCW9ycQklcjEwLCVyMTMKKwlzaGxxCSQ2MywlcmN4CisJbW92cQklcjEyLDAoJXJkaSkKKwlzaHJxCSQxLCVyMTUKKwltb3ZxCSVyMTMsOCglcmRpKQorCXNobHEJJDYzLCVyOQorCW9ycQklcmN4LCVyMTQKKwlvcnEJJXI5LCVyMTUKKwltb3ZxCSVyMTQsMTYoJXJkaSkKKwltb3ZxCSVyMTUsMjQoJXJkaSkKKwltb3ZxCTY0KCVyc3ApLCVyYXgKKwlsZWFxCTY0KCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTEyOCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKKworCWxlYXEJMzIoJXJzcCksJXJieAorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfYWRkX3RvcQorCisJbW92cQk5NiglcnNwKSwlcmF4CisJbGVhcQk5NiglcnNwKSwlcmJ4CisJbW92cQkwKzAoJXJzcCksJXI5CisJbW92cQk4KzAoJXJzcCksJXIxMAorCWxlYXEJMCswKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzAoJXJzcCksJXIxMQorCW1vdnEJMjQrMCglcnNwKSwlcjEyCisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbGVhcQkxMjgoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxCisKKwltb3ZxCTArMzIoJXJzcCksJXJheAorCW1vdnEJOCszMiglcnNwKSwlcjE0CisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTUKKwltb3ZxCTI0KzMyKCVyc3ApLCVyOAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbGVhcQkxMjgoJXJzcCksJXJieAorCW1vdnEJJXIxNCwlcjgKKwltb3ZxCSVyMTUsJXI5CisJbW92cQklcnNpLCVyMTQKKwltb3ZxCSVyYnAsJXIxNQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTArMCglcnNwKSwlcmF4CisJbW92cQkwKzgoJXJzcCksJXJicAorCW1vdnEJMCsxNiglcnNwKSwlcmN4CisJbW92cQkwKzI0KCVyc3ApLCVyMTAKKwlsZWFxCTAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbW92cQkzMiglcnNwKSwlcmF4CisJbGVhcQkzMiglcnNwKSwlcmJ4CisJbW92cQklcjEyLCVyMTQKKwl4b3JsCSVlY3gsJWVjeAorCW1vdnEJJXIxMiwwKzAoJXJzcCkKKwltb3ZxCSVyMTMsJXIxMAorCW1vdnEJJXIxMywwKzgoJXJzcCkKKwljbW92enEJJXI4LCVyMTEKKwltb3ZxCSVyOCwwKzE2KCVyc3ApCisJbGVhcQkwLTAoJXJzcCksJXJzaQorCWNtb3Z6cQklcjksJXIxMgorCW1vdnEJJXI5LDArMjQoJXJzcCkKKwltb3ZxCSVyMTQsJXI5CisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisuYnl0ZQkxMDIsNzIsMTUsMTI2LDIwMworLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJYWRkcQkkMTYwKzgsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJieAorCXBvcHEJJXJicAorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJZWNwX25pc3R6MjU2X3BvaW50X2RvdWJsZSwuLWVjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUKKy5nbG9ibAllY3BfbmlzdHoyNTZfcG9pbnRfYWRkCisuaGlkZGVuIGVjcF9uaXN0ejI1Nl9wb2ludF9hZGQKKy50eXBlCWVjcF9uaXN0ejI1Nl9wb2ludF9hZGQsQGZ1bmN0aW9uCisuYWxpZ24JMzIKK2VjcF9uaXN0ejI1Nl9wb2ludF9hZGQ6CisJcHVzaHEJJXJicAorCXB1c2hxCSVyYngKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJc3VicQkkNTc2KzgsJXJzcAorCisJbW92ZHF1CTAoJXJzaSksJXhtbTAKKwltb3ZkcXUJMTYoJXJzaSksJXhtbTEKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTMKKwltb3ZkcXUJNjQoJXJzaSksJXhtbTQKKwltb3ZkcXUJODAoJXJzaSksJXhtbTUKKwltb3ZxCSVyc2ksJXJieAorCW1vdnEJJXJkeCwlcnNpCisJbW92ZHFhCSV4bW0wLDM4NCglcnNwKQorCW1vdmRxYQkleG1tMSwzODQrMTYoJXJzcCkKKwlwb3IJJXhtbTAsJXhtbTEKKwltb3ZkcWEJJXhtbTIsNDE2KCVyc3ApCisJbW92ZHFhCSV4bW0zLDQxNisxNiglcnNwKQorCXBvcgkleG1tMiwleG1tMworCW1vdmRxYQkleG1tNCw0NDgoJXJzcCkKKwltb3ZkcWEJJXhtbTUsNDQ4KzE2KCVyc3ApCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcXUJMCglcnNpKSwleG1tMAorCXBzaHVmZAkkMHhiMSwleG1tMywleG1tNQorCW1vdmRxdQkxNiglcnNpKSwleG1tMQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCXBvcgkleG1tMywleG1tNQorCW1vdmRxdQk0OCglcnNpKSwleG1tMworCW1vdnEJNjQrMCglcnNpKSwlcmF4CisJbW92cQk2NCs4KCVyc2kpLCVyMTQKKwltb3ZxCTY0KzE2KCVyc2kpLCVyMTUKKwltb3ZxCTY0KzI0KCVyc2kpLCVyOAorCW1vdmRxYQkleG1tMCw0ODAoJXJzcCkKKwlwc2h1ZmQJJDB4MWUsJXhtbTUsJXhtbTQKKwltb3ZkcWEJJXhtbTEsNDgwKzE2KCVyc3ApCisJcG9yCSV4bW0wLCV4bW0xCisuYnl0ZQkxMDIsNzIsMTUsMTEwLDE5OQorCW1vdmRxYQkleG1tMiw1MTIoJXJzcCkKKwltb3ZkcWEJJXhtbTMsNTEyKzE2KCVyc3ApCisJcG9yCSV4bW0yLCV4bW0zCisJcG9yCSV4bW00LCV4bW01CisJcHhvcgkleG1tNCwleG1tNAorCXBvcgkleG1tMSwleG1tMworCisJbGVhcQk2NC0wKCVyc2kpLCVyc2kKKwltb3ZxCSVyYXgsNTQ0KzAoJXJzcCkKKwltb3ZxCSVyMTQsNTQ0KzgoJXJzcCkKKwltb3ZxCSVyMTUsNTQ0KzE2KCVyc3ApCisJbW92cQklcjgsNTQ0KzI0KCVyc3ApCisJbGVhcQk5NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCXBjbXBlcWQJJXhtbTQsJXhtbTUKKwlwc2h1ZmQJJDB4YjEsJXhtbTMsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTQKKwlwc2h1ZmQJJDAsJXhtbTUsJXhtbTUKKwlwc2h1ZmQJJDB4MWUsJXhtbTQsJXhtbTMKKwlwb3IJJXhtbTMsJXhtbTQKKwlweG9yCSV4bW0zLCV4bW0zCisJcGNtcGVxZAkleG1tMywleG1tNAorCXBzaHVmZAkkMCwleG1tNCwleG1tNAorCW1vdnEJNjQrMCglcmJ4KSwlcmF4CisJbW92cQk2NCs4KCVyYngpLCVyMTQKKwltb3ZxCTY0KzE2KCVyYngpLCVyMTUKKwltb3ZxCTY0KzI0KCVyYngpLCVyOAorLmJ5dGUJMTAyLDcyLDE1LDExMCwyMDMKKworCWxlYXEJNjQtMCglcmJ4KSwlcnNpCisJbGVhcQkzMiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdnEJNTQ0KCVyc3ApLCVyYXgKKwlsZWFxCTU0NCglcnNwKSwlcmJ4CisJbW92cQkwKzk2KCVyc3ApLCVyOQorCW1vdnEJOCs5NiglcnNwKSwlcjEwCisJbGVhcQkwKzk2KCVyc3ApLCVyc2kKKwltb3ZxCTE2Kzk2KCVyc3ApLCVyMTEKKwltb3ZxCTI0Kzk2KCVyc3ApLCVyMTIKKwlsZWFxCTIyNCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJNDQ4KCVyc3ApLCVyYXgKKwlsZWFxCTQ0OCglcnNwKSwlcmJ4CisJbW92cQkwKzMyKCVyc3ApLCVyOQorCW1vdnEJOCszMiglcnNwKSwlcjEwCisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzMyKCVyc3ApLCVyMTIKKwlsZWFxCTI1NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJNDE2KCVyc3ApLCVyYXgKKwlsZWFxCTQxNiglcnNwKSwlcmJ4CisJbW92cQkwKzIyNCglcnNwKSwlcjkKKwltb3ZxCTgrMjI0KCVyc3ApLCVyMTAKKwlsZWFxCTArMjI0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzIyNCglcnNwKSwlcjExCisJbW92cQkyNCsyMjQoJXJzcCksJXIxMgorCWxlYXEJMjI0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92cQk1MTIoJXJzcCksJXJheAorCWxlYXEJNTEyKCVyc3ApLCVyYngKKwltb3ZxCTArMjU2KCVyc3ApLCVyOQorCW1vdnEJOCsyNTYoJXJzcCksJXIxMAorCWxlYXEJMCsyNTYoJXJzcCksJXJzaQorCW1vdnEJMTYrMjU2KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzI1NiglcnNwKSwlcjEyCisJbGVhcQkyNTYoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTIyNCglcnNwKSwlcmJ4CisJbGVhcQk2NCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCW9ycQklcjEzLCVyMTIKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlvcnEJJXI4LCVyMTIKKwlvcnEJJXI5LCVyMTIKKwlwb3IJJXhtbTUsJXhtbTIKKy5ieXRlCTEwMiw3MywxNSwxMTAsMjIwCisKKwltb3ZxCTM4NCglcnNwKSwlcmF4CisJbGVhcQkzODQoJXJzcCksJXJieAorCW1vdnEJMCs5NiglcnNwKSwlcjkKKwltb3ZxCTgrOTYoJXJzcCksJXIxMAorCWxlYXEJMCs5NiglcnNwKSwlcnNpCisJbW92cQkxNis5NiglcnNwKSwlcjExCisJbW92cQkyNCs5NiglcnNwKSwlcjEyCisJbGVhcQkxNjAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTQ4MCglcnNwKSwlcmF4CisJbGVhcQk0ODAoJXJzcCksJXJieAorCW1vdnEJMCszMiglcnNwKSwlcjkKKwltb3ZxCTgrMzIoJXJzcCksJXIxMAorCWxlYXEJMCszMiglcnNwKSwlcnNpCisJbW92cQkxNiszMiglcnNwKSwlcjExCisJbW92cQkyNCszMiglcnNwKSwlcjEyCisJbGVhcQkxOTIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTE2MCglcnNwKSwlcmJ4CisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJb3JxCSVyMTMsJXIxMgorCW9ycQklcjgsJXIxMgorCW9ycQklcjksJXIxMgorCisuYnl0ZQkweDNlCisJam56CS5MYWRkX3Byb2NlZWRxCisuYnl0ZQkxMDIsNzMsMTUsMTI2LDIwOAorLmJ5dGUJMTAyLDczLDE1LDEyNiwyMTcKKwl0ZXN0cQklcjgsJXI4CisJam56CS5MYWRkX3Byb2NlZWRxCisJdGVzdHEJJXI5LCVyOQorCWp6CS5MYWRkX2RvdWJsZXEKKworLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKKwlweG9yCSV4bW0wLCV4bW0wCisJbW92ZHF1CSV4bW0wLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTAsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTAsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTAsNDgoJXJkaSkKKwltb3ZkcXUJJXhtbTAsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTAsODAoJXJkaSkKKwlqbXAJLkxhZGRfZG9uZXEKKworLmFsaWduCTMyCisuTGFkZF9kb3VibGVxOgorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDYKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5CisJYWRkcQkkNDE2LCVyc3AKKwlqbXAJLkxwb2ludF9kb3VibGVfc2hvcnRjdXRxCisKKy5hbGlnbgkzMgorLkxhZGRfcHJvY2VlZHE6CisJbW92cQkwKzY0KCVyc3ApLCVyYXgKKwltb3ZxCTgrNjQoJXJzcCksJXIxNAorCWxlYXEJMCs2NCglcnNwKSwlcnNpCisJbW92cQkxNis2NCglcnNwKSwlcjE1CisJbW92cQkyNCs2NCglcnNwKSwlcjgKKwlsZWFxCTk2KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQk0NDgoJXJzcCksJXJheAorCWxlYXEJNDQ4KCVyc3ApLCVyYngKKwltb3ZxCTArMCglcnNwKSwlcjkKKwltb3ZxCTgrMCglcnNwKSwlcjEwCisJbGVhcQkwKzAoJXJzcCksJXJzaQorCW1vdnEJMTYrMCglcnNwKSwlcjExCisJbW92cQkyNCswKCVyc3ApLCVyMTIKKwlsZWFxCTM1MiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMCswKCVyc3ApLCVyYXgKKwltb3ZxCTgrMCglcnNwKSwlcjE0CisJbGVhcQkwKzAoJXJzcCksJXJzaQorCW1vdnEJMTYrMCglcnNwKSwlcjE1CisJbW92cQkyNCswKCVyc3ApLCVyOAorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwltb3ZxCTU0NCglcnNwKSwlcmF4CisJbGVhcQk1NDQoJXJzcCksJXJieAorCW1vdnEJMCszNTIoJXJzcCksJXI5CisJbW92cQk4KzM1MiglcnNwKSwlcjEwCisJbGVhcQkwKzM1MiglcnNwKSwlcnNpCisJbW92cQkxNiszNTIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzUyKCVyc3ApLCVyMTIKKwlsZWFxCTM1MiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMCglcnNwKSwlcmF4CisJbGVhcQkwKCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMTI4KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92cQkxNjAoJXJzcCksJXJheAorCWxlYXEJMTYwKCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMTkyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisKKworCisJYWRkcQklcjEyLCVyMTIKKwlsZWFxCTk2KCVyc3ApLCVyc2kKKwlhZGNxCSVyMTMsJXIxMworCW1vdnEJJXIxMiwlcmF4CisJYWRjcQklcjgsJXI4CisJYWRjcQklcjksJXI5CisJbW92cQklcjEzLCVyYnAKKwlzYmJxCSVyMTEsJXIxMQorCisJc3VicQkkLTEsJXIxMgorCW1vdnEJJXI4LCVyY3gKKwlzYmJxCSVyMTQsJXIxMworCXNiYnEJJDAsJXI4CisJbW92cQklcjksJXIxMAorCXNiYnEJJXIxNSwlcjkKKwl0ZXN0cQklcjExLCVyMTEKKworCWNtb3Z6cQklcmF4LCVyMTIKKwltb3ZxCTAoJXJzaSksJXJheAorCWNtb3Z6cQklcmJwLCVyMTMKKwltb3ZxCTgoJXJzaSksJXJicAorCWNtb3Z6cQklcmN4LCVyOAorCW1vdnEJMTYoJXJzaSksJXJjeAorCWNtb3Z6cQklcjEwLCVyOQorCW1vdnEJMjQoJXJzaSksJXIxMAorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJxCisKKwlsZWFxCTEyOCglcnNwKSwlcmJ4CisJbGVhcQkyODgoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTE5MiswKCVyc3ApLCVyYXgKKwltb3ZxCTE5Mis4KCVyc3ApLCVyYnAKKwltb3ZxCTE5MisxNiglcnNwKSwlcmN4CisJbW92cQkxOTIrMjQoJXJzcCksJXIxMAorCWxlYXEJMzIwKCVyc3ApLCVyZGkKKworCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbW92cQklcjEyLDAoJXJkaSkKKwltb3ZxCSVyMTMsOCglcmRpKQorCW1vdnEJJXI4LDE2KCVyZGkpCisJbW92cQklcjksMjQoJXJkaSkKKwltb3ZxCTEyOCglcnNwKSwlcmF4CisJbGVhcQkxMjgoJXJzcCksJXJieAorCW1vdnEJMCsyMjQoJXJzcCksJXI5CisJbW92cQk4KzIyNCglcnNwKSwlcjEwCisJbGVhcQkwKzIyNCglcnNwKSwlcnNpCisJbW92cQkxNisyMjQoJXJzcCksJXIxMQorCW1vdnEJMjQrMjI0KCVyc3ApLCVyMTIKKwlsZWFxCTI1NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMzIwKCVyc3ApLCVyYXgKKwlsZWFxCTMyMCglcnNwKSwlcmJ4CisJbW92cQkwKzY0KCVyc3ApLCVyOQorCW1vdnEJOCs2NCglcnNwKSwlcjEwCisJbGVhcQkwKzY0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzY0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzY0KCVyc3ApLCVyMTIKKwlsZWFxCTMyMCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYXEJMjU2KCVyc3ApLCVyYngKKwlsZWFxCTMyMCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKKworCW1vdmRxYQkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMQorCXBhbmRuCTM1MiglcnNwKSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMgorCXBhbmRuCTM1MisxNiglcnNwKSwleG1tMQorCW1vdmRxYQkleG1tNSwleG1tMworCXBhbmQJNTQ0KCVyc3ApLCV4bW0yCisJcGFuZAk1NDQrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKworCW1vdmRxYQkleG1tNCwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMQorCXBhbmRuCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0yCisJcGFuZG4JJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYW5kCTQ0OCglcnNwKSwleG1tMgorCXBhbmQJNDQ4KzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisJbW92ZHF1CSV4bW0yLDY0KCVyZGkpCisJbW92ZHF1CSV4bW0zLDgwKCVyZGkpCisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkyODgoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkyODgrMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCTQ4MCglcnNwKSwleG1tMgorCXBhbmQJNDgwKzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKwlwYW5kbgkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhbmRuCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFuZAkzODQoJXJzcCksJXhtbTIKKwlwYW5kCTM4NCsxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxdQkleG1tMiwwKCVyZGkpCisJbW92ZHF1CSV4bW0zLDE2KCVyZGkpCisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkzMjAoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkzMjArMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCTUxMiglcnNwKSwleG1tMgorCXBhbmQJNTEyKzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKwlwYW5kbgkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhbmRuCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFuZAk0MTYoJXJzcCksJXhtbTIKKwlwYW5kCTQxNisxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQkleG1tMyw0OCglcmRpKQorCisuTGFkZF9kb25lcToKKwlhZGRxCSQ1NzYrOCwlcnNwCisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcmJ4CisJcG9wcQklcmJwCisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQllY3BfbmlzdHoyNTZfcG9pbnRfYWRkLC4tZWNwX25pc3R6MjU2X3BvaW50X2FkZAorLmdsb2JsCWVjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lCisuaGlkZGVuIGVjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lCisudHlwZQllY3BfbmlzdHoyNTZfcG9pbnRfYWRkX2FmZmluZSxAZnVuY3Rpb24KKy5hbGlnbgkzMgorZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmU6CisJcHVzaHEJJXJicAorCXB1c2hxCSVyYngKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJc3VicQkkNDgwKzgsJXJzcAorCisJbW92ZHF1CTAoJXJzaSksJXhtbTAKKwltb3ZxCSVyZHgsJXJieAorCW1vdmRxdQkxNiglcnNpKSwleG1tMQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQk0OCglcnNpKSwleG1tMworCW1vdmRxdQk2NCglcnNpKSwleG1tNAorCW1vdmRxdQk4MCglcnNpKSwleG1tNQorCW1vdnEJNjQrMCglcnNpKSwlcmF4CisJbW92cQk2NCs4KCVyc2kpLCVyMTQKKwltb3ZxCTY0KzE2KCVyc2kpLCVyMTUKKwltb3ZxCTY0KzI0KCVyc2kpLCVyOAorCW1vdmRxYQkleG1tMCwzMjAoJXJzcCkKKwltb3ZkcWEJJXhtbTEsMzIwKzE2KCVyc3ApCisJcG9yCSV4bW0wLCV4bW0xCisJbW92ZHFhCSV4bW0yLDM1MiglcnNwKQorCW1vdmRxYQkleG1tMywzNTIrMTYoJXJzcCkKKwlwb3IJJXhtbTIsJXhtbTMKKwltb3ZkcWEJJXhtbTQsMzg0KCVyc3ApCisJbW92ZHFhCSV4bW01LDM4NCsxNiglcnNwKQorCXBvcgkleG1tMSwleG1tMworCisJbW92ZHF1CTAoJXJieCksJXhtbTAKKwlwc2h1ZmQJJDB4YjEsJXhtbTMsJXhtbTUKKwltb3ZkcXUJMTYoJXJieCksJXhtbTEKKwltb3ZkcXUJMzIoJXJieCksJXhtbTIKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcXUJNDgoJXJieCksJXhtbTMKKwltb3ZkcWEJJXhtbTAsNDE2KCVyc3ApCisJcHNodWZkCSQweDFlLCV4bW01LCV4bW00CisJbW92ZHFhCSV4bW0xLDQxNisxNiglcnNwKQorCXBvcgkleG1tMCwleG1tMQorLmJ5dGUJMTAyLDcyLDE1LDExMCwxOTkKKwltb3ZkcWEJJXhtbTIsNDQ4KCVyc3ApCisJbW92ZHFhCSV4bW0zLDQ0OCsxNiglcnNwKQorCXBvcgkleG1tMiwleG1tMworCXBvcgkleG1tNCwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTQKKwlwb3IJJXhtbTEsJXhtbTMKKworCWxlYXEJNjQtMCglcnNpKSwlcnNpCisJbGVhcQkzMiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCXBjbXBlcWQJJXhtbTQsJXhtbTUKKwlwc2h1ZmQJJDB4YjEsJXhtbTMsJXhtbTQKKwltb3ZxCTAoJXJieCksJXJheAorCisJbW92cQklcjEyLCVyOQorCXBvcgkleG1tMywleG1tNAorCXBzaHVmZAkkMCwleG1tNSwleG1tNQorCXBzaHVmZAkkMHgxZSwleG1tNCwleG1tMworCW1vdnEJJXIxMywlcjEwCisJcG9yCSV4bW0zLCV4bW00CisJcHhvcgkleG1tMywleG1tMworCW1vdnEJJXIxNCwlcjExCisJcGNtcGVxZAkleG1tMywleG1tNAorCXBzaHVmZAkkMCwleG1tNCwleG1tNAorCisJbGVhcQkzMi0wKCVyc3ApLCVyc2kKKwltb3ZxCSVyMTUsJXIxMgorCWxlYXEJMCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYXEJMzIwKCVyc3ApLCVyYngKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92cQkzODQoJXJzcCksJXJheAorCWxlYXEJMzg0KCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTM4NCglcnNwKSwlcmF4CisJbGVhcQkzODQoJXJzcCksJXJieAorCW1vdnEJMCs2NCglcnNwKSwlcjkKKwltb3ZxCTgrNjQoJXJzcCksJXIxMAorCWxlYXEJMCs2NCglcnNwKSwlcnNpCisJbW92cQkxNis2NCglcnNwKSwlcjExCisJbW92cQkyNCs2NCglcnNwKSwlcjEyCisJbGVhcQkyODgoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTQ0OCglcnNwKSwlcmF4CisJbGVhcQk0NDgoJXJzcCksJXJieAorCW1vdnEJMCszMiglcnNwKSwlcjkKKwltb3ZxCTgrMzIoJXJzcCksJXIxMAorCWxlYXEJMCszMiglcnNwKSwlcnNpCisJbW92cQkxNiszMiglcnNwKSwlcjExCisJbW92cQkyNCszMiglcnNwKSwlcjEyCisJbGVhcQkzMiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYXEJMzUyKCVyc3ApLCVyYngKKwlsZWFxCTk2KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92cQkwKzY0KCVyc3ApLCVyYXgKKwltb3ZxCTgrNjQoJXJzcCksJXIxNAorCWxlYXEJMCs2NCglcnNwKSwlcnNpCisJbW92cQkxNis2NCglcnNwKSwlcjE1CisJbW92cQkyNCs2NCglcnNwKSwlcjgKKwlsZWFxCTEyOCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdnEJMCs5NiglcnNwKSwlcmF4CisJbW92cQk4Kzk2KCVyc3ApLCVyMTQKKwlsZWFxCTArOTYoJXJzcCksJXJzaQorCW1vdnEJMTYrOTYoJXJzcCksJXIxNQorCW1vdnEJMjQrOTYoJXJzcCksJXI4CisJbGVhcQkxOTIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwltb3ZxCTEyOCglcnNwKSwlcmF4CisJbGVhcQkxMjgoJXJzcCksJXJieAorCW1vdnEJMCs2NCglcnNwKSwlcjkKKwltb3ZxCTgrNjQoJXJzcCksJXIxMAorCWxlYXEJMCs2NCglcnNwKSwlcnNpCisJbW92cQkxNis2NCglcnNwKSwlcjExCisJbW92cQkyNCs2NCglcnNwKSwlcjEyCisJbGVhcQkxNjAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTMyMCglcnNwKSwlcmF4CisJbGVhcQkzMjAoJXJzcCksJXJieAorCW1vdnEJMCsxMjgoJXJzcCksJXI5CisJbW92cQk4KzEyOCglcnNwKSwlcjEwCisJbGVhcQkwKzEyOCglcnNwKSwlcnNpCisJbW92cQkxNisxMjgoJXJzcCksJXIxMQorCW1vdnEJMjQrMTI4KCVyc3ApLCVyMTIKKwlsZWFxCTAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKworCisKKwlhZGRxCSVyMTIsJXIxMgorCWxlYXEJMTkyKCVyc3ApLCVyc2kKKwlhZGNxCSVyMTMsJXIxMworCW1vdnEJJXIxMiwlcmF4CisJYWRjcQklcjgsJXI4CisJYWRjcQklcjksJXI5CisJbW92cQklcjEzLCVyYnAKKwlzYmJxCSVyMTEsJXIxMQorCisJc3VicQkkLTEsJXIxMgorCW1vdnEJJXI4LCVyY3gKKwlzYmJxCSVyMTQsJXIxMworCXNiYnEJJDAsJXI4CisJbW92cQklcjksJXIxMAorCXNiYnEJJXIxNSwlcjkKKwl0ZXN0cQklcjExLCVyMTEKKworCWNtb3Z6cQklcmF4LCVyMTIKKwltb3ZxCTAoJXJzaSksJXJheAorCWNtb3Z6cQklcmJwLCVyMTMKKwltb3ZxCTgoJXJzaSksJXJicAorCWNtb3Z6cQklcmN4LCVyOAorCW1vdnEJMTYoJXJzaSksJXJjeAorCWNtb3Z6cQklcjEwLCVyOQorCW1vdnEJMjQoJXJzaSksJXIxMAorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJxCisKKwlsZWFxCTE2MCglcnNwKSwlcmJ4CisJbGVhcQkyMjQoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTArMCglcnNwKSwlcmF4CisJbW92cQkwKzgoJXJzcCksJXJicAorCW1vdnEJMCsxNiglcnNwKSwlcmN4CisJbW92cQkwKzI0KCVyc3ApLCVyMTAKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKworCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbW92cQklcjEyLDAoJXJkaSkKKwltb3ZxCSVyMTMsOCglcmRpKQorCW1vdnEJJXI4LDE2KCVyZGkpCisJbW92cQklcjksMjQoJXJkaSkKKwltb3ZxCTM1MiglcnNwKSwlcmF4CisJbGVhcQkzNTIoJXJzcCksJXJieAorCW1vdnEJMCsxNjAoJXJzcCksJXI5CisJbW92cQk4KzE2MCglcnNwKSwlcjEwCisJbGVhcQkwKzE2MCglcnNwKSwlcnNpCisJbW92cQkxNisxNjAoJXJzcCksJXIxMQorCW1vdnEJMjQrMTYwKCVyc3ApLCVyMTIKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92cQk5NiglcnNwKSwlcmF4CisJbGVhcQk5NiglcnNwKSwlcmJ4CisJbW92cQkwKzY0KCVyc3ApLCVyOQorCW1vdnEJOCs2NCglcnNwKSwlcjEwCisJbGVhcQkwKzY0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzY0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzY0KCVyc3ApLCVyMTIKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbGVhcQkzMiglcnNwKSwlcmJ4CisJbGVhcQkyNTYoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5CisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkyODgoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkyODgrMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCS5MT05FX21vbnQoJXJpcCksJXhtbTIKKwlwYW5kCS5MT05FX21vbnQrMTYoJXJpcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKworCW1vdmRxYQkleG1tNCwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMQorCXBhbmRuCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0yCisJcGFuZG4JJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYW5kCTM4NCglcnNwKSwleG1tMgorCXBhbmQJMzg0KzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisJbW92ZHF1CSV4bW0yLDY0KCVyZGkpCisJbW92ZHF1CSV4bW0zLDgwKCVyZGkpCisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkyMjQoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkyMjQrMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCTQxNiglcnNwKSwleG1tMgorCXBhbmQJNDE2KzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKwlwYW5kbgkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhbmRuCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFuZAkzMjAoJXJzcCksJXhtbTIKKwlwYW5kCTMyMCsxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxdQkleG1tMiwwKCVyZGkpCisJbW92ZHF1CSV4bW0zLDE2KCVyZGkpCisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkyNTYoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkyNTYrMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCTQ0OCglcnNwKSwleG1tMgorCXBhbmQJNDQ4KzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKwlwYW5kbgkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhbmRuCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFuZAkzNTIoJXJzcCksJXhtbTIKKwlwYW5kCTM1MisxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQkleG1tMyw0OCglcmRpKQorCisJYWRkcQkkNDgwKzgsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJieAorCXBvcHEJJXJicAorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmUsLi1lY3BfbmlzdHoyNTZfcG9pbnRfYWRkX2FmZmluZQorI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9tZDUvbWQ1LXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUwppbmRleCA3NjQ0Njg5Li4wNTM2OWUyIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9tZDUvbWQ1LXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL21kNS9tZDUteDg2XzY0LlMKQEAgLTQ5NSwxNCArNDk1LDE0IEBACiAJbW92bAklZWN4LCVyMTFkCiAJYWRkbAklZWN4LCVlYngKIAltb3ZsCTAoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXhvcmwJJWVkeCwlcjExZAogCWxlYWwJLTE5ODYzMDg0NCglcmF4LCVyMTAsMSksJWVheAogCW9ybAklZWJ4LCVyMTFkCiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklcjExZCwlZWF4CiAJbW92bAkyOCglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkNiwlZWF4CiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklZWJ4LCVlYXgKQEAgLTUxMSw3ICs1MTEsNyBAQAogCXhvcmwJJWVieCwlcjExZAogCWFkZGwJJXIxMWQsJWVkeAogCW1vdmwJNTYoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDEwLCVlZHgKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVlYXgsJWVkeApAQCAtNTIwLDcgKzUyMCw3IEBACiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklcjExZCwlZWN4CiAJbW92bAkyMCglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMTUsJWVjeAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJWVkeCwlZWN4CkBAIC01MjksNyArNTI5LDcgQEAKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYngKIAltb3ZsCTQ4KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQyMSwlZWJ4CiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklZWN4LCVlYngKQEAgLTUzOCw3ICs1MzgsNyBAQAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJXIxMWQsJWVheAogCW1vdmwJMTIoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDYsJWVheAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJWVieCwlZWF4CkBAIC01NDcsNyArNTQ3LDcgQEAKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVyMTFkLCVlZHgKIAltb3ZsCTQwKCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQxMCwlZWR4CiAJeG9ybAklZWJ4LCVyMTFkCiAJYWRkbAklZWF4LCVlZHgKQEAgLTU1Niw3ICs1NTYsNyBAQAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJXIxMWQsJWVjeAogCW1vdmwJNCglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMTUsJWVjeAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJWVkeCwlZWN4CkBAIC01NjUsNyArNTY1LDcgQEAKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYngKIAltb3ZsCTMyKCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQyMSwlZWJ4CiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklZWN4LCVlYngKQEAgLTU3NCw3ICs1NzQsNyBAQAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJXIxMWQsJWVheAogCW1vdmwJNjAoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDYsJWVheAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJWVieCwlZWF4CkBAIC01ODMsNyArNTgzLDcgQEAKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVyMTFkLCVlZHgKIAltb3ZsCTI0KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQxMCwlZWR4CiAJeG9ybAklZWJ4LCVyMTFkCiAJYWRkbAklZWF4LCVlZHgKQEAgLTU5Miw3ICs1OTIsNyBAQAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJXIxMWQsJWVjeAogCW1vdmwJNTIoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDE1LCVlY3gKIAl4b3JsCSVlYXgsJXIxMWQKIAlhZGRsCSVlZHgsJWVjeApAQCAtNjAxLDcgKzYwMSw3IEBACiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklcjExZCwlZWJ4CiAJbW92bAkxNiglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMjEsJWVieAogCXhvcmwJJWVkeCwlcjExZAogCWFkZGwJJWVjeCwlZWJ4CkBAIC02MTAsNyArNjEwLDcgQEAKIAl4b3JsCSVlY3gsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYXgKIAltb3ZsCTQ0KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQ2LCVlYXgKIAl4b3JsCSVlY3gsJXIxMWQKIAlhZGRsCSVlYngsJWVheApAQCAtNjE5LDcgKzYxOSw3IEBACiAJeG9ybAklZWJ4LCVyMTFkCiAJYWRkbAklcjExZCwlZWR4CiAJbW92bAk4KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQxMCwlZWR4CiAJeG9ybAklZWJ4LCVyMTFkCiAJYWRkbAklZWF4LCVlZHgKQEAgLTYyOCw3ICs2MjgsNyBAQAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJXIxMWQsJWVjeAogCW1vdmwJMzYoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDE1LCVlY3gKIAl4b3JsCSVlYXgsJXIxMWQKIAlhZGRsCSVlZHgsJWVjeApAQCAtNjM3LDcgKzYzNyw3IEBACiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklcjExZCwlZWJ4CiAJbW92bAkwKCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQyMSwlZWJ4CiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklZWN4LCVlYngKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LlMKaW5kZXggMWRiN2Q2OS4uYjQ3YmRjOWIgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TCkBAIC0yMywxNCArMjMsMTQgQEAKIAltb3ZxCSQxNCwlcmN4CiAJbW92cQk4KCVyc2ksJXJheCwxKSwlcjgKIAltb3ZxCSglcnNpLCVyYXgsMSksJXI5Ci0JYW5kYgkkMjQwLCVibAorCWFuZGIJJDB4ZjAsJWJsCiAJbW92cQklcjgsJXJkeAogCWptcAkuTG9vcDEKIAogLmFsaWduCTE2CiAuTG9vcDE6CiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJbW92YgkoJXJkaSwlcmN4LDEpLCVhbAogCXNocnEJJDQsJXI5CkBAIC00NiwxMyArNDYsMTMgQEAKIAlqcwkuTGJyZWFrMQogCiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJc2hycQkkNCwlcjkKIAl4b3JxCTgoJXJzaSwlcmF4LDEpLCVyOAogCXNobHEJJDYwLCVyMTAKIAl4b3JxCSglcnNpLCVyYXgsMSksJXI5Ci0JYW5kYgkkMjQwLCVibAorCWFuZGIJJDB4ZjAsJWJsCiAJeG9ycQkoJXIxMSwlcmR4LDgpLCVyOQogCW1vdnEJJXI4LCVyZHgKIAl4b3JxCSVyMTAsJXI4CkBAIC02MSwxOSArNjEsMTkgQEAKIC5hbGlnbgkxNgogLkxicmVhazE6CiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJc2hycQkkNCwlcjkKIAl4b3JxCTgoJXJzaSwlcmF4LDEpLCVyOAogCXNobHEJJDYwLCVyMTAKIAl4b3JxCSglcnNpLCVyYXgsMSksJXI5Ci0JYW5kYgkkMjQwLCVibAorCWFuZGIJJDB4ZjAsJWJsCiAJeG9ycQkoJXIxMSwlcmR4LDgpLCVyOQogCW1vdnEJJXI4LCVyZHgKIAl4b3JxCSVyMTAsJXI4CiAKIAlzaHJxCSQ0LCVyOAotCWFuZHEJJDE1LCVyZHgKKwlhbmRxCSQweGYsJXJkeAogCW1vdnEJJXI5LCVyMTAKIAlzaHJxCSQ0LCVyOQogCXhvcnEJOCglcnNpLCVyYngsMSksJXI4CkBAIC04ODEsMjAgKzg4MSwyMCBAQAogCW1vdmRxdQkzMiglcnNpKSwleG1tNwogLmJ5dGUJMTAyLDY1LDE1LDU2LDAsMTk0CiAKLQlzdWJxCSQxNiwlcmN4CisJc3VicQkkMHgxMCwlcmN4CiAJanoJLkxvZGRfdGFpbAogCiAJbW92ZHF1CTE2KCVyc2kpLCV4bW02CiAJbW92bAlPUEVOU1NMX2lhMzJjYXBfUCs0KCVyaXApLCVlYXgKLQljbXBxCSQ0OCwlcmN4CisJY21wcQkkMHgzMCwlcmN4CiAJamIJLkxza2lwNHgKIAogCWFuZGwJJDcxMzAzMTY4LCVlYXgKIAljbXBsCSQ0MTk0MzA0LCVlYXgKIAlqZQkuTHNraXA0eAogCi0Jc3VicQkkNDgsJXJjeAotCW1vdnEJJDExNTQ3MzM1NTQ3OTk5NTQzMjk2LCVyYXgKKwlzdWJxCSQweDMwLCVyY3gKKwltb3ZxCSQweEEwNDA2MDgwMjBDMEUwMDAsJXJheAogCW1vdmRxdQk0OCglcnNpKSwleG1tMTQKIAltb3ZkcXUJNjQoJXJzaSksJXhtbTE1CiAKQEAgLTk0MSw3ICs5NDEsNyBAQAogCXhvcnBzCSV4bW0xMywleG1tNQogCiAJbGVhcQk2NCglcmR4KSwlcmR4Ci0Jc3VicQkkNjQsJXJjeAorCXN1YnEJJDB4NDAsJXJjeAogCWpjCS5MdGFpbDR4CiAKIAlqbXAJLkxtb2Q0X2xvb3AKQEAgLTEwMjQsNyArMTAyNCw3IEBACiAJeG9ycHMJJXhtbTEzLCV4bW01CiAKIAlsZWFxCTY0KCVyZHgpLCVyZHgKLQlzdWJxCSQ2NCwlcmN4CisJc3VicQkkMHg0MCwlcmN4CiAJam5jCS5MbW9kNF9sb29wCiAKIC5MdGFpbDR4OgpAQCAtMTA2OCwxMCArMTA2OCwxMCBAQAogCXB4b3IJJXhtbTQsJXhtbTAKIAlwc3JscQkkMSwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTAKLQlhZGRxCSQ2NCwlcmN4CisJYWRkcQkkMHg0MCwlcmN4CiAJanoJLkxkb25lCiAJbW92ZHF1CTMyKCVyc2kpLCV4bW03Ci0Jc3VicQkkMTYsJXJjeAorCXN1YnEJJDB4MTAsJXJjeAogCWp6CS5Mb2RkX3RhaWwKIC5Mc2tpcDR4OgogCkBAIC0xMDk0LDcgKzEwOTQsNyBAQAogCiAJbGVhcQkzMiglcmR4KSwlcmR4CiAJbm9wCi0Jc3VicQkkMzIsJXJjeAorCXN1YnEJJDB4MjAsJXJjeAogCWpiZQkuTGV2ZW5fdGFpbAogCW5vcAogCWptcAkuTG1vZF9sb29wCkBAIC0xMTU3LDcgKzExNTcsNyBAQAogLmJ5dGUJMTAyLDE1LDU4LDY4LDIzMSwwCiAJcHhvcgkleG1tMSwleG1tMAogCi0Jc3VicQkkMzIsJXJjeAorCXN1YnEJJDB4MjAsJXJjeAogCWphCS5MbW9kX2xvb3AKIAogLkxldmVuX3RhaWw6CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3JjNC9yYzQtbWQ1LXg4Nl82NC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNmM4ZDY3Li4wMDAwMDAwCi0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3JjNC9yYzQtbWQ1LXg4Nl82NC5TCisrKyAvZGV2L251bGwKQEAgLTEsMTI2MiArMCwwIEBACi0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotLnRleHQJCi0uYWxpZ24JMTYKLQotLmdsb2JsCXJjNF9tZDVfZW5jCi0uaGlkZGVuIHJjNF9tZDVfZW5jCi0udHlwZQlyYzRfbWQ1X2VuYyxAZnVuY3Rpb24KLXJjNF9tZDVfZW5jOgotCWNtcHEJJDAsJXI5Ci0JamUJLkxhYm9ydAotCXB1c2hxCSVyYngKLQlwdXNocQklcmJwCi0JcHVzaHEJJXIxMgotCXB1c2hxCSVyMTMKLQlwdXNocQklcjE0Ci0JcHVzaHEJJXIxNQotCXN1YnEJJDQwLCVyc3AKLS5MYm9keToKLQltb3ZxCSVyY3gsJXIxMQotCW1vdnEJJXI5LCVyMTIKLQltb3ZxCSVyc2ksJXIxMwotCW1vdnEJJXJkeCwlcjE0Ci0JbW92cQklcjgsJXIxNQotCXhvcnEJJXJicCwlcmJwCi0JeG9ycQklcmN4LCVyY3gKLQotCWxlYXEJOCglcmRpKSwlcmRpCi0JbW92YgktOCglcmRpKSwlYnBsCi0JbW92YgktNCglcmRpKSwlY2wKLQotCWluY2IJJWJwbAotCXN1YnEJJXIxMywlcjE0Ci0JbW92bAkoJXJkaSwlcmJwLDQpLCVlYXgKLQlhZGRiCSVhbCwlY2wKLQlsZWFxCSglcmRpLCVyYnAsNCksJXJzaQotCXNobHEJJDYsJXIxMgotCWFkZHEJJXIxNSwlcjEyCi0JbW92cQklcjEyLDE2KCVyc3ApCi0KLQltb3ZxCSVyMTEsMjQoJXJzcCkKLQltb3ZsCTAoJXIxMSksJXI4ZAotCW1vdmwJNCglcjExKSwlcjlkCi0JbW92bAk4KCVyMTEpLCVyMTBkCi0JbW92bAkxMiglcjExKSwlcjExZAotCWptcAkuTG9vcAotCi0uYWxpZ24JMTYKLS5Mb29wOgotCW1vdmwJJXI4ZCwwKCVyc3ApCi0JbW92bAklcjlkLDQoJXJzcCkKLQltb3ZsCSVyMTBkLDgoJXJzcCkKLQltb3ZsCSVyMTFkLCVyMTJkCi0JbW92bAklcjExZCwxMiglcnNwKQotCXB4b3IJJXhtbTAsJXhtbTAKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk0KCVyc2kpLCVlYngKLQlhZGRsCSQzNjE0MDkwMzYwLCVyOGQKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDAoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCXB4b3IJJXhtbTEsJXhtbTEKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAk0KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4KCVyc2kpLCVlYXgKLQlhZGRsCSQzOTA1NDAyNzEwLCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEyLCVyMTFkCi0JbW92bAklcjlkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJOCglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTIoJXJzaSksJWVieAotCWFkZGwJJDYwNjEwNTgxOSwlcjEwZAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTEyKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTE2KCVyc2kpLCVlYXgKLQlhZGRsCSQzMjUwNDQxOTY2LCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMTYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMjAoJXJzaSksJWVieAotCWFkZGwJJDQxMTg1NDgzOTksJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsMTYoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQyLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMjAoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTI0KCVyc2kpLCVlYXgKLQlhZGRsCSQxMjAwMDgwNDI2LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCwyMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJMjQoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTI4KCVyc2kpLCVlYngKLQlhZGRsCSQyODIxNzM1OTU1LCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDI0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTI4KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTMyKCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjQ5MjYxMzEzLCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMjgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMzYoJXJzaSksJWVieAotCWFkZGwJJDE3NzAwMzU0MTYsJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsMzIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMzYoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQwKCVyc2kpLCVlYXgKLQlhZGRsCSQyMzM2NTUyODc5LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCwzNiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNDAoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTQ0KCVyc2kpLCVlYngKLQlhZGRsCSQ0Mjk0OTI1MjMzLCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDQwKCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ1LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTQ0KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQ4KCVyc2kpLCVlYXgKLQlhZGRsCSQyMzA0NTYzMTM0LCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsNDQoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkNSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJNDgoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNTIoJXJzaSksJWVieAotCWFkZGwJJDE4MDQ2MDM2ODIsJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsNDgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJNTIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTU2KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjU0NjI2MTk1LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw1MiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNTYoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTYwKCVyc2kpLCVlYngKLQlhZGRsCSQyNzkyOTY1MDA2LCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDU2KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ3LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZkcXUJKCVyMTMpLCV4bW0yCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk2MCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk2NCglcnNpKSwlZWF4Ci0JYWRkbAkkMTIzNjUzNTMyOSwlcjlkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDYwKCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjIsJXI5ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JcHNsbHEJJDgsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW0yCi0JcHhvcgkleG1tMSwleG1tMgotCXB4b3IJJXhtbTAsJXhtbTAKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk2OCglcnNpKSwlZWJ4Ci0JYWRkbAkkNDEyOTE3MDc4NiwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw2NCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTI0KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk3MiglcnNpKSwlZWF4Ci0JYWRkbAkkMzIyNTQ2NTY2NCwlcjExZAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw2OCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJNDQoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTc2KCVyc2kpLCVlYngKLQlhZGRsCSQ2NDM3MTc3MTMsJXIxMGQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsNzIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTBkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTQsJXIxMGQKLQltb3ZsCSVyMTFkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4MCglcnNpKSwlZWF4Ci0JYWRkbAkkMzkyMTA2OTk5NCwlcjlkCi0JeG9ybAklcjExZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw3NiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIwLCVyOWQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXIxMGQsJXI5ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTFkLCVyMTJkCi0JYWRkbAkyMCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk4NCglcnNpKSwlZWJ4Ci0JYWRkbAkkMzU5MzQwODYwNSwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4MCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk0MCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJODgoJXJzaSksJWVheAotCWFkZGwJJDM4MDE2MDgzLCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDg0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDksJXIxMWQKLQltb3ZsCSVyOGQsJXIxMmQKLQlwaW5zcncJJDIsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyOWQsJXIxMmQKLQlhZGRsCTYwKCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk5MiglcnNpKSwlZWJ4Ci0JYWRkbAkkMzYzNDQ4ODk2MSwlcjEwZAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4OCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAkxNiglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk5NiglcnNpKSwlZWF4Ci0JYWRkbAkkMzg4OTQyOTQ0OCwlcjlkCi0JeG9ybAklcjExZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw5MiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIwLCVyOWQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXIxMGQsJXI5ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTFkLCVyMTJkCi0JYWRkbAkzNiglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMDAoJXJzaSksJWVieAotCWFkZGwJJDU2ODQ0NjQzOCwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw5NiglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk1NiglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTA0KCVyc2kpLCVlYXgKLQlhZGRsCSQzMjc1MTYzNjA2LCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDEwMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjlkLCVyMTJkCi0JYWRkbAkxMiglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTA4KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTA3NjAzMzM1LCVyMTBkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDEwNCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAkzMiglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAkxMTIoJXJzaSksJWVheAotCWFkZGwJJDExNjM1MzE1MDEsJXI5ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTA4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjAsJXI5ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMWQsJXIxMmQKLQlhZGRsCTUyKCVyMTUpLCVyOGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTExNiglcnNpKSwlZWJ4Ci0JYWRkbAkkMjg1MDI4NTgyOSwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCwxMTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ1LCVyOGQKLQltb3ZsCSVyOWQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjEwZCwlcjEyZAotCWFkZGwJOCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTIwKCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjQzNTYzNTEyLCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDExNiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjlkLCVyMTJkCi0JYWRkbAkyOCglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTI0KCVyc2kpLCVlYngKLQlhZGRsCSQxNzM1MzI4NDczLCVyMTBkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDEyMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmRxdQkxNiglcjEzKSwleG1tMwotCWFkZGIJJDMyLCVicGwKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJNDgoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMCglcmRpLCVyYnAsNCksJWVheAotCWFkZGwJJDIzNjgzNTk1NjIsJXI5ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTI0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjAsJXI5ZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92cQklcmN4LCVyc2kKLQl4b3JxCSVyY3gsJXJjeAotCW1vdmIJJXNpbCwlY2wKLQlsZWFxCSglcmRpLCVyYnAsNCksJXJzaQotCXBzbGxxCSQ4LCV4bW0xCi0JcHhvcgkleG1tMCwleG1tMwotCXB4b3IJJXhtbTEsJXhtbTMKLQlweG9yCSV4bW0wLCV4bW0wCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOWQsJXIxMmQKLQlhZGRsCTIwKCVyMTUpLCVyOGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTQoJXJzaSksJWVieAotCWFkZGwJJDQyOTQ1ODg3MzgsJXI4ZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXI4ZAotCW1vdmwJJWVkeCwwKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTgoJXJzaSksJWVheAotCWFkZGwJJDIyNzIzOTI4MzMsJXIxMWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyMTFkCi0JbW92bAklZWR4LDQoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMSwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCW1vdmQJKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTQ0KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMiglcnNpKSwlZWJ4Ci0JYWRkbAkkMTgzOTAzMDU2MiwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXIxMGQKLQltb3ZsCSVlZHgsOCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTU2KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTE2KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjU5NjU3NzQwLCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsMTIoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJNCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkyMCglcnNpKSwlZWJ4Ci0JYWRkbAkkMjc2Mzk3NTIzNiwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjhkCi0JbW92bAklZWR4LDE2KCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOGQsJXIxMmQKLQlhZGRsCTE2KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAkyNCglcnNpKSwlZWF4Ci0JYWRkbAkkMTI3Mjg5MzM1MywlcjExZAotCW1vdnpibAklYmwsJWVieAotCWFkZGwJJXIxMmQsJXIxMWQKLQltb3ZsCSVlZHgsMjAoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMSwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjExZCwlcjEyZAotCWFkZGwJMjgoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTI4KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTM5NDY5NjY0LCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjEwZAotCW1vdmwJJWVkeCwyNCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTQwKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTMyKCVyc2kpLCVlYXgKLQlhZGRsCSQzMjAwMjM2NjU2LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsMjgoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJNTIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMzYoJXJzaSksJWVieAotCWFkZGwJJDY4MTI3OTE3NCwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjhkCi0JbW92bAklZWR4LDMyKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOGQsJXIxMmQKLQlhZGRsCTAoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQwKCVyc2kpLCVlYXgKLQlhZGRsCSQzOTM2NDMwMDc0LCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JYWRkbAklcjEyZCwlcjExZAotCW1vdmwJJWVkeCwzNiglcnNpKQotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDExLCVyMTFkCi0JbW92bAklcjlkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyMTFkLCVyMTJkCi0JYWRkbAkxMiglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNDQoJXJzaSksJWVieAotCWFkZGwJJDM1NzI0NDUzMTcsJXIxMGQKLQltb3Z6YmwJJWFsLCVlYXgKLQlhZGRsCSVyMTJkLCVyMTBkCi0JbW92bAklZWR4LDQwKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTYsJXIxMGQKLQltb3ZsCSVyOGQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjEwZCwlcjEyZAotCWFkZGwJMjQoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNDgoJXJzaSksJWVheAotCWFkZGwJJDc2MDI5MTg5LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsNDQoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkNSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMzYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNTIoJXJzaSksJWVieAotCWFkZGwJJDM2NTQ2MDI4MDksJXI4ZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXI4ZAotCW1vdmwJJWVkeCw0OCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDQsJXI4ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjhkLCVyMTJkCi0JYWRkbAk0OCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNTYoJXJzaSksJWVheAotCWFkZGwJJDM4NzMxNTE0NjEsJXIxMWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyMTFkCi0JbW92bAklZWR4LDUyKCVyc2kpCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMTEsJXIxMWQKLQltb3ZsCSVyOWQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTYwKCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk2MCglcnNpKSwlZWJ4Ci0JYWRkbAkkNTMwNzQyNTIwLCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjEwZAotCW1vdmwJJWVkeCw1NiglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ3LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZkcXUJMzIoJXIxMyksJXhtbTQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTgoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNjQoJXJzaSksJWVheAotCWFkZGwJJDMyOTk2Mjg2NDUsJXI5ZAotCW1vdnpibAklYmwsJWVieAotCWFkZGwJJXIxMmQsJXI5ZAotCW1vdmwJJWVkeCw2MCglcnNpKQotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIzLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQlwc2xscQkkOCwleG1tMQotCXB4b3IJJXhtbTAsJXhtbTQKLQlweG9yCSV4bW0xLCV4bW00Ci0JcHhvcgkleG1tMCwleG1tMAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyOWQsJXIxMmQKLQlhZGRsCTAoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNjgoJXJzaSksJWVieAotCWFkZGwJJDQwOTYzMzY0NTIsJXI4ZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlZHgsNjQoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ2LCVyOGQKLQltb3ZsCSQtMSwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMjgoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTcyKCVyc2kpLCVlYXgKLQlhZGRsCSQxMTI2ODkxNDE1LCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDY4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEwLCVyMTFkCi0JbW92bAkkLTEsJXIxMmQKLQltb3ZkCSglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTU2KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk3NiglcnNpKSwlZWJ4Ci0JYWRkbAkkMjg3ODYxMjM5MSwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVkeCw3MiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNSwlcjEwZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyMTBkLCVyMTJkCi0JYWRkbAkyMCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4MCglcnNpKSwlZWF4Ci0JYWRkbAkkNDIzNzUzMzI0MSwlcjlkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVkeCw3NiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIxLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCW9ybAklcjlkLCVyMTJkCi0JYWRkbAk0OCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk4NCglcnNpKSwlZWJ4Ci0JYWRkbAkkMTcwMDQ4NTU3MSwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVkeCw4MCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDYsJXI4ZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQyLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMTIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTg4KCVyc2kpLCVlYXgKLQlhZGRsCSQyMzk5OTgwNjkwLCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDg0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEwLCVyMTFkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDIsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCW9ybAklcjExZCwlcjEyZAotCWFkZGwJNDAoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTkyKCVyc2kpLCVlYngKLQlhZGRsCSQ0MjkzOTE1NzczLCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWR4LDg4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE1LCVyMTBkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTQoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJOTYoJXJzaSksJWVheAotCWFkZGwJJDIyNDAwNDQ0OTcsJXI5ZAotCW1vdnpibAklYmwsJWVieAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlZHgsOTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMSwlcjlkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTAwKCVyc2kpLCVlYngKLQlhZGRsCSQxODczMzEzMzU5LCVyOGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWR4LDk2KCVyc2kpCi0JYWRkbAklcjEyZCwlcjhkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNiwlcjhkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDQsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCW9ybAklcjhkLCVyMTJkCi0JYWRkbAk2MCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTA0KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjY0MzU1NTUyLCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDEwMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMCwlcjExZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTI0KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMDgoJXJzaSksJWVieAotCWFkZGwJJDI3MzQ3Njg5MTYsJXIxMGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlZHgsMTA0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE1LCVyMTBkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTUyKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTExMiglcnNpKSwlZWF4Ci0JYWRkbAkkMTMwOTE1MTY0OSwlcjlkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVkeCwxMDgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMSwlcjlkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMTYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTE2KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTQ5NDQ0MjI2LCVyOGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWR4LDExMiglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDYsJXI4ZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJNDQoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTEyMCglcnNpKSwlZWF4Ci0JYWRkbAkkMzE3NDc1NjkxNywlcjExZAotCW1vdnpibAklYmwsJWVieAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVkeCwxMTYoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTFkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMTAsJXIxMWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyMTFkLCVyMTJkCi0JYWRkbAk4KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMjQoJXJzaSksJWVieAotCWFkZGwJJDcxODc4NzI1OSwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVkeCwxMjAoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTBkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTUsJXIxMGQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyMTFkLCVyMTBkCi0JbW92ZHF1CTQ4KCVyMTMpLCV4bW01Ci0JYWRkYgkkMzIsJWJwbAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTM2KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTAoJXJkaSwlcmJwLDQpLCVlYXgKLQlhZGRsCSQzOTUxNDgxNzQ1LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWR4LDEyNCglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIxLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZxCSVyYnAsJXJzaQotCXhvcnEJJXJicCwlcmJwCi0JbW92Ygklc2lsLCVicGwKLQltb3ZxCSVyY3gsJXJzaQotCXhvcnEJJXJjeCwlcmN4Ci0JbW92Ygklc2lsLCVjbAotCWxlYXEJKCVyZGksJXJicCw0KSwlcnNpCi0JcHNsbHEJJDgsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW01Ci0JcHhvcgkleG1tMSwleG1tNQotCWFkZGwJMCglcnNwKSwlcjhkCi0JYWRkbAk0KCVyc3ApLCVyOWQKLQlhZGRsCTgoJXJzcCksJXIxMGQKLQlhZGRsCTEyKCVyc3ApLCVyMTFkCi0KLQltb3ZkcXUJJXhtbTIsKCVyMTQsJXIxMywxKQotCW1vdmRxdQkleG1tMywxNiglcjE0LCVyMTMsMSkKLQltb3ZkcXUJJXhtbTQsMzIoJXIxNCwlcjEzLDEpCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTQsJXIxMywxKQotCWxlYXEJNjQoJXIxNSksJXIxNQotCWxlYXEJNjQoJXIxMyksJXIxMwotCWNtcHEJMTYoJXJzcCksJXIxNQotCWpiCS5Mb29wCi0KLQltb3ZxCTI0KCVyc3ApLCVyMTIKLQlzdWJiCSVhbCwlY2wKLQltb3ZsCSVyOGQsMCglcjEyKQotCW1vdmwJJXI5ZCw0KCVyMTIpCi0JbW92bAklcjEwZCw4KCVyMTIpCi0JbW92bAklcjExZCwxMiglcjEyKQotCXN1YmIJJDEsJWJwbAotCW1vdmwJJWVicCwtOCglcmRpKQotCW1vdmwJJWVjeCwtNCglcmRpKQotCi0JbW92cQk0MCglcnNwKSwlcjE1Ci0JbW92cQk0OCglcnNwKSwlcjE0Ci0JbW92cQk1NiglcnNwKSwlcjEzCi0JbW92cQk2NCglcnNwKSwlcjEyCi0JbW92cQk3MiglcnNwKSwlcmJwCi0JbW92cQk4MCglcnNwKSwlcmJ4Ci0JbGVhcQk4OCglcnNwKSwlcnNwCi0uTGVwaWxvZ3VlOgotLkxhYm9ydDoKLQkuYnl0ZQkweGYzLDB4YzMKLS5zaXplCXJjNF9tZDVfZW5jLC4tcmM0X21kNV9lbmMKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUwppbmRleCA3NjY4YzJiLi5kODMwYjUzIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUwpAQCAtMTMsNiArMTMsMTEgQEAKIAltb3ZsCU9QRU5TU0xfaWEzMmNhcF9QKzgoJXJpcCksJXIxMGQKIAl0ZXN0bAkkNTEyLCVyOGQKIAlqegkuTGlhbHUKKwlhbmRsCSQyNjg0MzU0NTYsJXI4ZAorCWFuZGwJJDEwNzM3NDE4MjQsJXI5ZAorCW9ybAklcjlkLCVyOGQKKwljbXBsCSQxMzQyMTc3MjgwLCVyOGQKKwlqZQlfYXZ4X3Nob3J0Y3V0CiAJam1wCV9zc3NlM19zaG9ydGN1dAogCiAuYWxpZ24JMTYKQEAgLTI0MDgsNiArMjQxMywxMTIyIEBACiAuTGVwaWxvZ3VlX3Nzc2UzOgogCS5ieXRlCTB4ZjMsMHhjMwogLnNpemUJc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzLC4tc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzCisudHlwZQlzaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4LEBmdW5jdGlvbgorLmFsaWduCTE2CitzaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorX2F2eF9zaG9ydGN1dDoKKwltb3ZxCSVyc3AsJXJheAorCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJbGVhcQktNjQoJXJzcCksJXJzcAorCXZ6ZXJvdXBwZXIKKwltb3ZxCSVyYXgsJXIxNAorCWFuZHEJJC02NCwlcnNwCisJbW92cQklcmRpLCVyOAorCW1vdnEJJXJzaSwlcjkKKwltb3ZxCSVyZHgsJXIxMAorCisJc2hscQkkNiwlcjEwCisJYWRkcQklcjksJXIxMAorCWxlYXEJS19YWF9YWCs2NCglcmlwKSwlcjExCisKKwltb3ZsCTAoJXI4KSwlZWF4CisJbW92bAk0KCVyOCksJWVieAorCW1vdmwJOCglcjgpLCVlY3gKKwltb3ZsCTEyKCVyOCksJWVkeAorCW1vdmwJJWVieCwlZXNpCisJbW92bAkxNiglcjgpLCVlYnAKKwltb3ZsCSVlY3gsJWVkaQorCXhvcmwJJWVkeCwlZWRpCisJYW5kbAklZWRpLCVlc2kKKworCXZtb3ZkcWEJNjQoJXIxMSksJXhtbTYKKwl2bW92ZHFhCS02NCglcjExKSwleG1tMTEKKwl2bW92ZHF1CTAoJXI5KSwleG1tMAorCXZtb3ZkcXUJMTYoJXI5KSwleG1tMQorCXZtb3ZkcXUJMzIoJXI5KSwleG1tMgorCXZtb3ZkcXUJNDgoJXI5KSwleG1tMworCXZwc2h1ZmIJJXhtbTYsJXhtbTAsJXhtbTAKKwlhZGRxCSQ2NCwlcjkKKwl2cHNodWZiCSV4bW02LCV4bW0xLCV4bW0xCisJdnBzaHVmYgkleG1tNiwleG1tMiwleG1tMgorCXZwc2h1ZmIJJXhtbTYsJXhtbTMsJXhtbTMKKwl2cGFkZGQJJXhtbTExLCV4bW0wLCV4bW00CisJdnBhZGRkCSV4bW0xMSwleG1tMSwleG1tNQorCXZwYWRkZAkleG1tMTEsJXhtbTIsJXhtbTYKKwl2bW92ZHFhCSV4bW00LDAoJXJzcCkKKwl2bW92ZHFhCSV4bW01LDE2KCVyc3ApCisJdm1vdmRxYQkleG1tNiwzMiglcnNwKQorCWptcAkuTG9vcF9hdngKKy5hbGlnbgkxNgorLkxvb3BfYXZ4OgorCXNocmRsCSQyLCVlYngsJWVieAorCXhvcmwJJWVkeCwlZXNpCisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTQKKwltb3ZsCSVlYXgsJWVkaQorCWFkZGwJMCglcnNwKSwlZWJwCisJdnBhZGRkCSV4bW0zLCV4bW0xMSwleG1tOQorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkcQkkNCwleG1tMywleG1tOAorCWFkZGwJJWVzaSwlZWJwCisJYW5kbAklZWJ4LCVlZGkKKwl2cHhvcgkleG1tMCwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cHhvcgkleG1tMiwleG1tOCwleG1tOAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlhZGRsCTQoJXJzcCksJWVkeAorCXZweG9yCSV4bW04LCV4bW00LCV4bW00CisJeG9ybAklZWJ4LCVlYXgKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwl2bW92ZHFhCSV4bW05LDQ4KCVyc3ApCisJYWRkbAklZWRpLCVlZHgKKwlhbmRsCSVlYXgsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTQsJXhtbTgKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVicCwlZWJwCisJeG9ybAklZWJ4LCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNCwleG1tMTAKKwl2cGFkZGQJJXhtbTQsJXhtbTQsJXhtbTQKKwltb3ZsCSVlZHgsJWVkaQorCWFkZGwJOCglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNybGQJJDMwLCV4bW0xMCwleG1tOQorCXZwb3IJJXhtbTgsJXhtbTQsJXhtbTQKKwlhZGRsCSVlc2ksJWVjeAorCWFuZGwJJWVicCwlZWRpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZwc2xsZAkkMiwleG1tMTAsJXhtbTEwCisJdnB4b3IJJXhtbTksJXhtbTQsJXhtbTQKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVjeCwlZXNpCisJYWRkbAkxMiglcnNwKSwlZWJ4CisJdnB4b3IJJXhtbTEwLCV4bW00LCV4bW00CisJeG9ybAklZWJwLCVlZHgKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlZGksJWVieAorCWFuZGwJJWVkeCwlZXNpCisJeG9ybAklZWJwLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXhvcmwJJWVicCwlZXNpCisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTUKKwltb3ZsCSVlYngsJWVkaQorCWFkZGwJMTYoJXJzcCksJWVheAorCXZwYWRkZAkleG1tNCwleG1tMTEsJXhtbTkKKwl4b3JsCSVlZHgsJWVjeAorCXNobGRsCSQ1LCVlYngsJWVieAorCXZwc3JsZHEJJDQsJXhtbTQsJXhtbTgKKwlhZGRsCSVlc2ksJWVheAorCWFuZGwJJWVjeCwlZWRpCisJdnB4b3IJJXhtbTEsJXhtbTUsJXhtbTUKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnB4b3IJJXhtbTMsJXhtbTgsJXhtbTgKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwl4b3JsCSVlZHgsJWVkaQorCW1vdmwJJWVheCwlZXNpCisJYWRkbAkyMCglcnNwKSwlZWJwCisJdnB4b3IJJXhtbTgsJXhtbTUsJXhtbTUKKwl4b3JsCSVlY3gsJWVieAorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZtb3ZkcWEJJXhtbTksMCglcnNwKQorCWFkZGwJJWVkaSwlZWJwCisJYW5kbAklZWJ4LCVlc2kKKwl2cHNybGQJJDMxLCV4bW01LCV4bW04CisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZXNpCisJdnBzbGxkcQkkMTIsJXhtbTUsJXhtbTEwCisJdnBhZGRkCSV4bW01LCV4bW01LCV4bW01CisJbW92bAklZWJwLCVlZGkKKwlhZGRsCTI0KCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlYnAsJWVicAorCXZwc3JsZAkkMzAsJXhtbTEwLCV4bW05CisJdnBvcgkleG1tOCwleG1tNSwleG1tNQorCWFkZGwJJWVzaSwlZWR4CisJYW5kbAklZWF4LCVlZGkKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBzbGxkCSQyLCV4bW0xMCwleG1tMTAKKwl2cHhvcgkleG1tOSwleG1tNSwleG1tNQorCXNocmRsCSQ3LCVlYnAsJWVicAorCXhvcmwJJWVieCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlhZGRsCTI4KCVyc3ApLCVlY3gKKwl2cHhvcgkleG1tMTAsJXhtbTUsJXhtbTUKKwl4b3JsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZtb3ZkcWEJLTMyKCVyMTEpLCV4bW0xMQorCWFkZGwJJWVkaSwlZWN4CisJYW5kbAklZWJwLCVlc2kKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tNgorCW1vdmwJJWVjeCwlZWRpCisJYWRkbAkzMiglcnNwKSwlZWJ4CisJdnBhZGRkCSV4bW01LCV4bW0xMSwleG1tOQorCXhvcmwJJWVicCwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnBzcmxkcQkkNCwleG1tNSwleG1tOAorCWFkZGwJJWVzaSwlZWJ4CisJYW5kbAklZWR4LCVlZGkKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHhvcgkleG1tNCwleG1tOCwleG1tOAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXhvcmwJJWVicCwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlhZGRsCTM2KCVyc3ApLCVlYXgKKwl2cHhvcgkleG1tOCwleG1tNiwleG1tNgorCXhvcmwJJWVkeCwlZWN4CisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdm1vdmRxYQkleG1tOSwxNiglcnNwKQorCWFkZGwJJWVkaSwlZWF4CisJYW5kbAklZWN4LCVlc2kKKwl2cHNybGQJJDMxLCV4bW02LCV4bW04CisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZXNpCisJdnBzbGxkcQkkMTIsJXhtbTYsJXhtbTEwCisJdnBhZGRkCSV4bW02LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlZGkKKwlhZGRsCTQwKCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVieAorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZwc3JsZAkkMzAsJXhtbTEwLCV4bW05CisJdnBvcgkleG1tOCwleG1tNiwleG1tNgorCWFkZGwJJWVzaSwlZWJwCisJYW5kbAklZWJ4LCVlZGkKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnBzbGxkCSQyLCV4bW0xMCwleG1tMTAKKwl2cHhvcgkleG1tOSwleG1tNiwleG1tNgorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlhZGRsCTQ0KCVyc3ApLCVlZHgKKwl2cHhvcgkleG1tMTAsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVkaSwlZWR4CisJYW5kbAklZWF4LCVlc2kKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVicCwlZWJwCisJeG9ybAklZWJ4LCVlc2kKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tNworCW1vdmwJJWVkeCwlZWRpCisJYWRkbAk0OCglcnNwKSwlZWN4CisJdnBhZGRkCSV4bW02LCV4bW0xMSwleG1tOQorCXhvcmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnBzcmxkcQkkNCwleG1tNiwleG1tOAorCWFkZGwJJWVzaSwlZWN4CisJYW5kbAklZWJwLCVlZGkKKwl2cHhvcgkleG1tMywleG1tNywleG1tNworCXhvcmwJJWVheCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cHhvcgkleG1tNSwleG1tOCwleG1tOAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWN4LCVlc2kKKwlhZGRsCTUyKCVyc3ApLCVlYngKKwl2cHhvcgkleG1tOCwleG1tNywleG1tNworCXhvcmwJJWVicCwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdm1vdmRxYQkleG1tOSwzMiglcnNwKQorCWFkZGwJJWVkaSwlZWJ4CisJYW5kbAklZWR4LCVlc2kKKwl2cHNybGQJJDMxLCV4bW03LCV4bW04CisJeG9ybAklZWJwLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXhvcmwJJWVicCwlZXNpCisJdnBzbGxkcQkkMTIsJXhtbTcsJXhtbTEwCisJdnBhZGRkCSV4bW03LCV4bW03LCV4bW03CisJbW92bAklZWJ4LCVlZGkKKwlhZGRsCTU2KCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVjeAorCXNobGRsCSQ1LCVlYngsJWVieAorCXZwc3JsZAkkMzAsJXhtbTEwLCV4bW05CisJdnBvcgkleG1tOCwleG1tNywleG1tNworCWFkZGwJJWVzaSwlZWF4CisJYW5kbAklZWN4LCVlZGkKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBzbGxkCSQyLCV4bW0xMCwleG1tMTAKKwl2cHhvcgkleG1tOSwleG1tNywleG1tNworCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlhZGRsCTYwKCVyc3ApLCVlYnAKKwl2cHhvcgkleG1tMTAsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVieAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWJwCisJYW5kbAklZWJ4LCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTgKKwl2cHhvcgkleG1tNCwleG1tMCwleG1tMAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWJwLCVlZGkKKwlhZGRsCTAoJXJzcCksJWVkeAorCXZweG9yCSV4bW0xLCV4bW0wLCV4bW0wCisJeG9ybAklZWJ4LCVlYXgKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwl2cGFkZGQJJXhtbTcsJXhtbTExLCV4bW05CisJYWRkbAklZXNpLCVlZHgKKwlhbmRsCSVlYXgsJWVkaQorCXZweG9yCSV4bW04LCV4bW0wLCV4bW0wCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXNocmRsCSQ3LCVlYnAsJWVicAorCXhvcmwJJWVieCwlZWRpCisJdnBzcmxkCSQzMCwleG1tMCwleG1tOAorCXZtb3ZkcWEJJXhtbTksNDgoJXJzcCkKKwltb3ZsCSVlZHgsJWVzaQorCWFkZGwJNCglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNsbGQJJDIsJXhtbTAsJXhtbTAKKwlhZGRsCSVlZGksJWVjeAorCWFuZGwJJWVicCwlZXNpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWN4LCVlZGkKKwlhZGRsCTgoJXJzcCksJWVieAorCXZwb3IJJXhtbTgsJXhtbTAsJXhtbTAKKwl4b3JsCSVlYnAsJWVkeAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJYW5kbAklZWR4LCVlZGkKKwl4b3JsCSVlYnAsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkxMiglcnNwKSwlZWF4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW04CisJdnB4b3IJJXhtbTUsJXhtbTEsJXhtbTEKKwlhZGRsCTE2KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWRpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnB4b3IJJXhtbTIsJXhtbTEsJXhtbTEKKwlhZGRsCSVlc2ksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJdnBhZGRkCSV4bW0wLCV4bW0xMSwleG1tOQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnB4b3IJJXhtbTgsJXhtbTEsJXhtbTEKKwlhZGRsCTIwKCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCW1vdmwJJWVicCwlZXNpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJdnBzcmxkCSQzMCwleG1tMSwleG1tOAorCXZtb3ZkcWEJJXhtbTksMCglcnNwKQorCWFkZGwJJWVkaSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXZwc2xsZAkkMiwleG1tMSwleG1tMQorCWFkZGwJMjQoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cG9yCSV4bW04LCV4bW0xLCV4bW0xCisJYWRkbAkyOCglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW04CisJdnB4b3IJJXhtbTYsJXhtbTIsJXhtbTIKKwlhZGRsCTMyKCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdnB4b3IJJXhtbTMsJXhtbTIsJXhtbTIKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJdnBhZGRkCSV4bW0xLCV4bW0xMSwleG1tOQorCXZtb3ZkcWEJMCglcjExKSwleG1tMTEKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZweG9yCSV4bW04LCV4bW0yLCV4bW0yCisJYWRkbAkzNiglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZwc3JsZAkkMzAsJXhtbTIsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnBzbGxkCSQyLCV4bW0yLCV4bW0yCisJYWRkbAk0MCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXZwb3IJJXhtbTgsJXhtbTIsJXhtbTIKKwlhZGRsCTQ0KCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWRpLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTgKKwl2cHhvcgkleG1tNywleG1tMywleG1tMworCWFkZGwJNDgoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZXNpCisJbW92bAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNCwleG1tMywleG1tMworCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwl2cGFkZGQJJXhtbTIsJXhtbTExLCV4bW05CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHhvcgkleG1tOCwleG1tMywleG1tMworCWFkZGwJNTIoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2cHNybGQJJDMwLCV4bW0zLCV4bW04CisJdm1vdmRxYQkleG1tOSwzMiglcnNwKQorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZwc2xsZAkkMiwleG1tMywleG1tMworCWFkZGwJNTYoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlc2ksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cG9yCSV4bW04LCV4bW0zLCV4bW0zCisJYWRkbAk2MCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwltb3ZsCSVlYnAsJWVzaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVkaSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW04CisJdnB4b3IJJXhtbTAsJXhtbTQsJXhtbTQKKwlhZGRsCTAoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWF4LCVlZGkKKwl2cGFkZGQJJXhtbTMsJXhtbTExLCV4bW05CisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cHhvcgkleG1tOCwleG1tNCwleG1tNAorCWFkZGwJNCglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZwc3JsZAkkMzAsJXhtbTQsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDQ4KCVyc3ApCisJYWRkbAklZWRpLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBzbGxkCSQyLCV4bW00LCV4bW00CisJYWRkbAk4KCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlZHgsJWVkaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBvcgkleG1tOCwleG1tNCwleG1tNAorCWFkZGwJMTIoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tOAorCXZweG9yCSV4bW0xLCV4bW01LCV4bW01CisJYWRkbAkxNiglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCXZweG9yCSV4bW02LCV4bW01LCV4bW01CisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCXZwYWRkZAkleG1tNCwleG1tMTEsJXhtbTkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXZweG9yCSV4bW04LCV4bW01LCV4bW01CisJYWRkbAkyMCglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlZHgsJWVzaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc3JsZAkkMzAsJXhtbTUsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDAoJXJzcCkKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cHNsbGQJJDIsJXhtbTUsJXhtbTUKKwlhZGRsCTI0KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCW1vdmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBvcgkleG1tOCwleG1tNSwleG1tNQorCWFkZGwJMjgoJXJzcCksJWVheAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCW1vdmwJJWVieCwlZXNpCisJeG9ybAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlZGksJWVheAorCXhvcmwJJWVjeCwlZXNpCisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZwYWxpZ25yCSQ4LCV4bW00LCV4bW01LCV4bW04CisJdnB4b3IJJXhtbTIsJXhtbTYsJXhtbTYKKwlhZGRsCTMyKCVyc3ApLCVlYnAKKwlhbmRsCSVlY3gsJWVzaQorCXhvcmwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwltb3ZsCSVlYXgsJWVkaQorCXhvcmwJJWVjeCwlZXNpCisJdnBhZGRkCSV4bW01LCV4bW0xMSwleG1tOQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWJwCisJdnB4b3IJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwlhZGRsCTM2KCVyc3ApLCVlZHgKKwl2cHNybGQJJDMwLCV4bW02LCV4bW04CisJdm1vdmRxYQkleG1tOSwxNiglcnNwKQorCWFuZGwJJWVieCwlZWRpCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwltb3ZsCSVlYnAsJWVzaQorCXZwc2xsZAkkMiwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYXgsJWVzaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlhZGRsCTQwKCVyc3ApLCVlY3gKKwlhbmRsCSVlYXgsJWVzaQorCXZwb3IJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYnAsJWVicAorCW1vdmwJJWVkeCwlZWRpCisJeG9ybAklZWF4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVicCwlZWRpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJNDQoJXJzcCksJWVieAorCWFuZGwJJWVicCwlZWRpCisJeG9ybAklZWF4LCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwltb3ZsCSVlY3gsJWVzaQorCXhvcmwJJWVicCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWRpLCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tOAorCXZweG9yCSV4bW0zLCV4bW03LCV4bW03CisJYWRkbAk0OCglcnNwKSwlZWF4CisJYW5kbAklZWR4LCVlc2kKKwl4b3JsCSVlYnAsJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXZweG9yCSV4bW0wLCV4bW03LCV4bW03CisJbW92bAklZWJ4LCVlZGkKKwl4b3JsCSVlZHgsJWVzaQorCXZwYWRkZAkleG1tNiwleG1tMTEsJXhtbTkKKwl2bW92ZHFhCTMyKCVyMTEpLCV4bW0xMQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVzaSwlZWF4CisJdnB4b3IJJXhtbTgsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVkaQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTUyKCVyc3ApLCVlYnAKKwl2cHNybGQJJDMwLCV4bW03LCV4bW04CisJdm1vdmRxYQkleG1tOSwzMiglcnNwKQorCWFuZGwJJWVjeCwlZWRpCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwltb3ZsCSVlYXgsJWVzaQorCXZwc2xsZAkkMiwleG1tNywleG1tNworCXhvcmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwlhZGRsCTU2KCVyc3ApLCVlZHgKKwlhbmRsCSVlYngsJWVzaQorCXZwb3IJJXhtbTgsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlYXgsJWVheAorCW1vdmwJJWVicCwlZWRpCisJeG9ybAklZWJ4LCVlc2kKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlc2ksJWVkeAorCXhvcmwJJWVheCwlZWRpCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJNjAoJXJzcCksJWVjeAorCWFuZGwJJWVheCwlZWRpCisJeG9ybAklZWJ4LCVlYXgKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwltb3ZsCSVlZHgsJWVzaQorCXhvcmwJJWVheCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWRpLCVlY3gKKwl4b3JsCSVlYnAsJWVzaQorCXhvcmwJJWVheCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cGFsaWducgkkOCwleG1tNiwleG1tNywleG1tOAorCXZweG9yCSV4bW00LCV4bW0wLCV4bW0wCisJYWRkbAkwKCVyc3ApLCVlYngKKwlhbmRsCSVlYnAsJWVzaQorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJdnB4b3IJJXhtbTEsJXhtbTAsJXhtbTAKKwltb3ZsCSVlY3gsJWVkaQorCXhvcmwJJWVicCwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0xMSwleG1tOQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJdnB4b3IJJXhtbTgsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZHgsJWVkaQorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTQoJXJzcCksJWVheAorCXZwc3JsZAkkMzAsJXhtbTAsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDQ4KCVyc3ApCisJYW5kbAklZWR4LCVlZGkKKwl4b3JsCSVlYnAsJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCW1vdmwJJWVieCwlZXNpCisJdnBzbGxkCSQyLCV4bW0wLCV4bW0wCisJeG9ybAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlZGksJWVheAorCXhvcmwJJWVjeCwlZXNpCisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJOCglcnNwKSwlZWJwCisJYW5kbAklZWN4LCVlc2kKKwl2cG9yCSV4bW04LCV4bW0wLCV4bW0wCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwltb3ZsCSVlYXgsJWVkaQorCXhvcmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlYnAKKwl4b3JsCSVlYngsJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwlhZGRsCTEyKCVyc3ApLCVlZHgKKwlhbmRsCSVlYngsJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVheCwlZWF4CisJbW92bAklZWJwLCVlc2kKKwl4b3JsCSVlYngsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVkaSwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTgKKwl2cHhvcgkleG1tNSwleG1tMSwleG1tMQorCWFkZGwJMTYoJXJzcCksJWVjeAorCWFuZGwJJWVheCwlZXNpCisJeG9ybAklZWJ4LCVlYXgKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwl2cHhvcgkleG1tMiwleG1tMSwleG1tMQorCW1vdmwJJWVkeCwlZWRpCisJeG9ybAklZWF4LCVlc2kKKwl2cGFkZGQJJXhtbTAsJXhtbTExLCV4bW05CisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl2cHhvcgkleG1tOCwleG1tMSwleG1tMQorCXhvcmwJJWVicCwlZWRpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJMjAoJXJzcCksJWVieAorCXZwc3JsZAkkMzAsJXhtbTEsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDAoJXJzcCkKKwlhbmRsCSVlYnAsJWVkaQorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJbW92bAklZWN4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTEsJXhtbTEKKwl4b3JsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJeG9ybAklZWR4LCVlc2kKKwl4b3JsCSVlYnAsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkyNCglcnNwKSwlZWF4CisJYW5kbAklZWR4LCVlc2kKKwl2cG9yCSV4bW04LCV4bW0xLCV4bW0xCisJeG9ybAklZWJwLCVlZHgKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwltb3ZsCSVlYngsJWVkaQorCXhvcmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlY3gsJWVkaQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTI4KCVyc3ApLCVlYnAKKwlhbmRsCSVlY3gsJWVkaQorCXhvcmwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJbW92bAklZWF4LCVlc2kKKwl4b3JsCSVlY3gsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWJwCisJeG9ybAklZWJ4LCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTgKKwl2cHhvcgkleG1tNiwleG1tMiwleG1tMgorCWFkZGwJMzIoJXJzcCksJWVkeAorCWFuZGwJJWVieCwlZXNpCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwl2cHhvcgkleG1tMywleG1tMiwleG1tMgorCW1vdmwJJWVicCwlZWRpCisJeG9ybAklZWJ4LCVlc2kKKwl2cGFkZGQJJXhtbTEsJXhtbTExLCV4bW05CisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZXNpLCVlZHgKKwl2cHhvcgkleG1tOCwleG1tMiwleG1tMgorCXhvcmwJJWVheCwlZWRpCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJMzYoJXJzcCksJWVjeAorCXZwc3JsZAkkMzAsJXhtbTIsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJYW5kbAklZWF4LCVlZGkKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYnAsJWVicAorCW1vdmwJJWVkeCwlZXNpCisJdnBzbGxkCSQyLCV4bW0yLCV4bW0yCisJeG9ybAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVicCwlZXNpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJNDAoJXJzcCksJWVieAorCWFuZGwJJWVicCwlZXNpCisJdnBvcgkleG1tOCwleG1tMiwleG1tMgorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJbW92bAklZWN4LCVlZGkKKwl4b3JsCSVlYnAsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWR4LCVlZGkKKwl4b3JsCSVlYnAsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk0NCglcnNwKSwlZWF4CisJYW5kbAklZWR4LCVlZGkKKwl4b3JsCSVlYnAsJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCW1vdmwJJWVieCwlZXNpCisJeG9ybAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlZGksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJYWRkbAklZWJ4LCVlYXgKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tOAorCXZweG9yCSV4bW03LCV4bW0zLCV4bW0zCisJYWRkbAk0OCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCXZweG9yCSV4bW00LCV4bW0zLCV4bW0zCisJYWRkbAklZXNpLCVlYnAKKwl4b3JsCSVlY3gsJWVkaQorCXZwYWRkZAkleG1tMiwleG1tMTEsJXhtbTkKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCXZweG9yCSV4bW04LCV4bW0zLCV4bW0zCisJYWRkbAk1MiglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwltb3ZsCSVlYnAsJWVzaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCXZwc3JsZAkkMzAsJXhtbTMsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDMyKCVyc3ApCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBzbGxkCSQyLCV4bW0zLCV4bW0zCisJYWRkbAk1NiglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZwb3IJJXhtbTgsJXhtbTMsJXhtbTMKKwlhZGRsCTYwKCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWRpLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkwKCVyc3ApLCVlYXgKKwl2cGFkZGQJJXhtbTMsJXhtbTExLCV4bW05CisJeG9ybAklZWR4LCVlc2kKKwltb3ZsCSVlYngsJWVkaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVzaSwlZWF4CisJdm1vdmRxYQkleG1tOSw0OCglcnNwKQorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwlhZGRsCTgoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJbW92bAklZWJwLCVlZGkKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlc2ksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlhZGRsCTEyKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWRpLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJY21wcQklcjEwLCVyOQorCWplCS5MZG9uZV9hdngKKwl2bW92ZHFhCTY0KCVyMTEpLCV4bW02CisJdm1vdmRxYQktNjQoJXIxMSksJXhtbTExCisJdm1vdmRxdQkwKCVyOSksJXhtbTAKKwl2bW92ZHF1CTE2KCVyOSksJXhtbTEKKwl2bW92ZHF1CTMyKCVyOSksJXhtbTIKKwl2bW92ZHF1CTQ4KCVyOSksJXhtbTMKKwl2cHNodWZiCSV4bW02LCV4bW0wLCV4bW0wCisJYWRkcQkkNjQsJXI5CisJYWRkbAkxNiglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0xLCV4bW0xCisJbW92bAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2cGFkZGQJJXhtbTExLCV4bW0wLCV4bW00CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdm1vdmRxYQkleG1tNCwwKCVyc3ApCisJYWRkbAkyMCglcnNwKSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJMjQoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlc2ksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwlhZGRsCTI4KCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCW1vdmwJJWVicCwlZXNpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJYWRkbAkzMiglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0yLCV4bW0yCisJbW92bAklZWR4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cGFkZGQJJXhtbTExLCV4bW0xLCV4bW01CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJdm1vdmRxYQkleG1tNSwxNiglcnNwKQorCWFkZGwJMzYoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZWRpCisJbW92bAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlZGksJWVieAorCXhvcmwJJWVicCwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTQwKCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlZHgsJWVkaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk0NCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJNDgoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJdnBzaHVmYgkleG1tNiwleG1tMywleG1tMworCW1vdmwJJWVicCwlZWRpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJdnBhZGRkCSV4bW0xMSwleG1tMiwleG1tNgorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCXZtb3ZkcWEJJXhtbTYsMzIoJXJzcCkKKwlhZGRsCTUyKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWRpLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAk1NiglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwltb3ZsCSVlY3gsJWVkaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVzaSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNjAoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlZGksJWVheAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkwKCVyOCksJWVheAorCWFkZGwJNCglcjgpLCVlc2kKKwlhZGRsCTgoJXI4KSwlZWN4CisJYWRkbAkxMiglcjgpLCVlZHgKKwltb3ZsCSVlYXgsMCglcjgpCisJYWRkbAkxNiglcjgpLCVlYnAKKwltb3ZsCSVlc2ksNCglcjgpCisJbW92bAklZXNpLCVlYngKKwltb3ZsCSVlY3gsOCglcjgpCisJbW92bAklZWN4LCVlZGkKKwltb3ZsCSVlZHgsMTIoJXI4KQorCXhvcmwJJWVkeCwlZWRpCisJbW92bAklZWJwLDE2KCVyOCkKKwlhbmRsCSVlZGksJWVzaQorCWptcAkuTG9vcF9hdngKKworLmFsaWduCTE2CisuTGRvbmVfYXZ4OgorCWFkZGwJMTYoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZXNpCisJbW92bAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVicCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTIwKCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWRpLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyNCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJMjgoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlZGksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlhZGRsCTMyKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAkzNiglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJYWRkbAk0OCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJNTIoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCW1vdmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglcnNwKSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2emVyb3VwcGVyCisKKwlhZGRsCTAoJXI4KSwlZWF4CisJYWRkbAk0KCVyOCksJWVzaQorCWFkZGwJOCglcjgpLCVlY3gKKwltb3ZsCSVlYXgsMCglcjgpCisJYWRkbAkxMiglcjgpLCVlZHgKKwltb3ZsCSVlc2ksNCglcjgpCisJYWRkbAkxNiglcjgpLCVlYnAKKwltb3ZsCSVlY3gsOCglcjgpCisJbW92bAklZWR4LDEyKCVyOCkKKwltb3ZsCSVlYnAsMTYoJXI4KQorCWxlYXEJKCVyMTQpLCVyc2kKKwltb3ZxCS00MCglcnNpKSwlcjE0CisJbW92cQktMzIoJXJzaSksJXIxMworCW1vdnEJLTI0KCVyc2kpLCVyMTIKKwltb3ZxCS0xNiglcnNpKSwlcmJwCisJbW92cQktOCglcnNpKSwlcmJ4CisJbGVhcQkoJXJzaSksJXJzcAorLkxlcGlsb2d1ZV9hdng6CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlzaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4LC4tc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eAogLmFsaWduCTY0CiBLX1hYX1hYOgogLmxvbmcJMHg1YTgyNzk5OSwweDVhODI3OTk5LDB4NWE4Mjc5OTksMHg1YTgyNzk5OQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTI1Ni14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3NoYS9zaGEyNTYteDg2XzY0LlMKaW5kZXggZjUyNmRlNS4uNDQ1YjQ5NyAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTI1Ni14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TCkBAIC0xMiw2ICsxMiwxMSBAQAogCW1vdmwJMCglcjExKSwlcjlkCiAJbW92bAk0KCVyMTEpLCVyMTBkCiAJbW92bAk4KCVyMTEpLCVyMTFkCisJYW5kbAkkMTA3Mzc0MTgyNCwlcjlkCisJYW5kbAkkMjY4NDM1OTY4LCVyMTBkCisJb3JsCSVyOWQsJXIxMGQKKwljbXBsCSQxMzQyMTc3NzkyLCVyMTBkCisJamUJLkxhdnhfc2hvcnRjdXQKIAl0ZXN0bAkkNTEyLCVyMTBkCiAJam56CS5Mc3NzZTNfc2hvcnRjdXQKIAlwdXNocQklcmJ4CkBAIC0yODQxLDQgKzI4NDYsMTA2MSBAQAogLkxlcGlsb2d1ZV9zc3NlMzoKIAkuYnl0ZQkweGYzLDB4YzMKIC5zaXplCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyX3Nzc2UzLC4tc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTMKKy50eXBlCXNoYTI1Nl9ibG9ja19kYXRhX29yZGVyX2F2eCxAZnVuY3Rpb24KKy5hbGlnbgk2NAorc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorLkxhdnhfc2hvcnRjdXQ6CisJcHVzaHEJJXJieAorCXB1c2hxCSVyYnAKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJbW92cQklcnNwLCVyMTEKKwlzaGxxCSQ0LCVyZHgKKwlzdWJxCSQ5NiwlcnNwCisJbGVhcQkoJXJzaSwlcmR4LDQpLCVyZHgKKwlhbmRxCSQtNjQsJXJzcAorCW1vdnEJJXJkaSw2NCswKCVyc3ApCisJbW92cQklcnNpLDY0KzgoJXJzcCkKKwltb3ZxCSVyZHgsNjQrMTYoJXJzcCkKKwltb3ZxCSVyMTEsNjQrMjQoJXJzcCkKKy5McHJvbG9ndWVfYXZ4OgorCisJdnplcm91cHBlcgorCW1vdmwJMCglcmRpKSwlZWF4CisJbW92bAk0KCVyZGkpLCVlYngKKwltb3ZsCTgoJXJkaSksJWVjeAorCW1vdmwJMTIoJXJkaSksJWVkeAorCW1vdmwJMTYoJXJkaSksJXI4ZAorCW1vdmwJMjAoJXJkaSksJXI5ZAorCW1vdmwJMjQoJXJkaSksJXIxMGQKKwltb3ZsCTI4KCVyZGkpLCVyMTFkCisJdm1vdmRxYQlLMjU2KzUxMiszMiglcmlwKSwleG1tOAorCXZtb3ZkcWEJSzI1Nis1MTIrNjQoJXJpcCksJXhtbTkKKwlqbXAJLkxsb29wX2F2eAorLmFsaWduCTE2CisuTGxvb3BfYXZ4OgorCXZtb3ZkcWEJSzI1Nis1MTIoJXJpcCksJXhtbTcKKwl2bW92ZHF1CTAoJXJzaSksJXhtbTAKKwl2bW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJdm1vdmRxdQkzMiglcnNpKSwleG1tMgorCXZtb3ZkcXUJNDgoJXJzaSksJXhtbTMKKwl2cHNodWZiCSV4bW03LCV4bW0wLCV4bW0wCisJbGVhcQlLMjU2KCVyaXApLCVyYnAKKwl2cHNodWZiCSV4bW03LCV4bW0xLCV4bW0xCisJdnBzaHVmYgkleG1tNywleG1tMiwleG1tMgorCXZwYWRkZAkwKCVyYnApLCV4bW0wLCV4bW00CisJdnBzaHVmYgkleG1tNywleG1tMywleG1tMworCXZwYWRkZAkzMiglcmJwKSwleG1tMSwleG1tNQorCXZwYWRkZAk2NCglcmJwKSwleG1tMiwleG1tNgorCXZwYWRkZAk5NiglcmJwKSwleG1tMywleG1tNworCXZtb3ZkcWEJJXhtbTQsMCglcnNwKQorCW1vdmwJJWVheCwlcjE0ZAorCXZtb3ZkcWEJJXhtbTUsMTYoJXJzcCkKKwltb3ZsCSVlYngsJWVkaQorCXZtb3ZkcWEJJXhtbTYsMzIoJXJzcCkKKwl4b3JsCSVlY3gsJWVkaQorCXZtb3ZkcWEJJXhtbTcsNDgoJXJzcCkKKwltb3ZsCSVyOGQsJXIxM2QKKwlqbXAJLkxhdnhfMDBfNDcKKworLmFsaWduCTE2CisuTGF2eF8wMF80NzoKKwlzdWJxCSQtMTI4LCVyYnAKKwl2cGFsaWducgkkNCwleG1tMCwleG1tMSwleG1tNAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVheAorCW1vdmwJJXI5ZCwlcjEyZAorCXZwYWxpZ25yCSQ0LCV4bW0yLCV4bW0zLCV4bW03CisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyOGQsJXIxM2QKKwl4b3JsCSVyMTBkLCVyMTJkCisJdnBzcmxkCSQ3LCV4bW00LCV4bW02CisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlYXgsJXIxNGQKKwlhbmRsCSVyOGQsJXIxMmQKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwl4b3JsCSVyOGQsJXIxM2QKKwlhZGRsCTAoJXJzcCksJXIxMWQKKwltb3ZsCSVlYXgsJXIxNWQKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwl4b3JsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTVkCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCWFkZGwJJXIxMmQsJXIxMWQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXZweG9yCSV4bW02LCV4bW03LCV4bW00CisJeG9ybAklZWF4LCVyMTRkCisJYWRkbAklcjEzZCwlcjExZAorCXhvcmwJJWVieCwlZWRpCisJdnBzaHVmZAkkMjUwLCV4bW0zLCV4bW03CisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwlhZGRsCSVlZGksJXIxMWQKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJbW92bAklZWR4LCVyMTNkCisJYWRkbAklcjExZCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJbW92bAklcjE0ZCwlcjExZAorCW1vdmwJJXI4ZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJdnBzbGxkCSQxMSwleG1tNSwleG1tNQorCXhvcmwJJWVkeCwlcjEzZAorCXhvcmwJJXI5ZCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTYsJXhtbTQsJXhtbTQKKwl4b3JsCSVyMTFkLCVyMTRkCisJYW5kbAklZWR4LCVyMTJkCisJeG9ybAklZWR4LCVyMTNkCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCWFkZGwJNCglcnNwKSwlcjEwZAorCW1vdmwJJXIxMWQsJWVkaQorCXhvcmwJJXI5ZCwlcjEyZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVyMTJkLCVyMTBkCisJdnBzcmxxCSQxNywleG1tNywleG1tNworCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklcjExZCwlcjE0ZAorCXZwYWRkZAkleG1tNCwleG1tMCwleG1tMAorCWFkZGwJJXIxM2QsJXIxMGQKKwl4b3JsCSVlYXgsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAklcjEwZCwlZWN4CisJYWRkbAklcjE1ZCwlcjEwZAorCW1vdmwJJWVjeCwlcjEzZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJXIxMGQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTBkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwltb3ZsCSVlZHgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlcjEzZAorCXZwc2h1ZmIJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxNGQKKwl2cGFkZGQJJXhtbTYsJXhtbTAsJXhtbTAKKwlhbmRsCSVlY3gsJXIxMmQKKwl4b3JsCSVlY3gsJXIxM2QKKwlhZGRsCTgoJXJzcCksJXI5ZAorCXZwc2h1ZmQJJDgwLCV4bW0wLCV4bW03CisJbW92bAklcjEwZCwlcjE1ZAorCXhvcmwJJXI4ZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwl4b3JsCSVyMTFkLCVyMTVkCisJYWRkbAklcjEyZCwlcjlkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwl2cHNybHEJJDE3LCV4bW03LCV4bW03CisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklcjEwZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI5ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJeG9ybAklcjExZCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyOWQsJWVieAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJWVkaSwlcjlkCisJbW92bAklZWJ4LCVyMTNkCisJYWRkbAklcjlkLCVyMTRkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOWQKKwltb3ZsCSVlY3gsJXIxMmQKKwl2cHNodWZiCSV4bW05LCV4bW02LCV4bW02CisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlYngsJXIxM2QKKwl4b3JsCSVlZHgsJXIxMmQKKwl2cGFkZGQJJXhtbTYsJXhtbTAsJXhtbTAKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFuZGwJJWVieCwlcjEyZAorCXZwYWRkZAkwKCVyYnApLCV4bW0wLCV4bW02CisJeG9ybAklZWJ4LCVyMTNkCisJYWRkbAkxMiglcnNwKSwlcjhkCisJbW92bAklcjlkLCVlZGkKKwl4b3JsCSVlZHgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVlZGkKKwlhZGRsCSVyMTJkLCVyOGQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI4ZAorCXhvcmwJJXIxMGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI4ZCwlZWF4CisJYWRkbAklcjE1ZCwlcjhkCisJbW92bAklZWF4LCVyMTNkCisJYWRkbAklcjhkLCVyMTRkCisJdm1vdmRxYQkleG1tNiwwKCVyc3ApCisJdnBhbGlnbnIJJDQsJXhtbTEsJXhtbTIsJXhtbTQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOGQKKwltb3ZsCSVlYngsJXIxMmQKKwl2cGFsaWducgkkNCwleG1tMywleG1tMCwleG1tNworCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVyMTNkCisJeG9ybAklZWN4LCVyMTJkCisJdnBzcmxkCSQ3LCV4bW00LCV4bW02CisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOGQsJXIxNGQKKwlhbmRsCSVlYXgsJXIxMmQKKwl2cGFkZGQJJXhtbTcsJXhtbTEsJXhtbTEKKwl4b3JsCSVlYXgsJXIxM2QKKwlhZGRsCTE2KCVyc3ApLCVlZHgKKwltb3ZsCSVyOGQsJXIxNWQKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwl4b3JsCSVlY3gsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOWQsJXIxNWQKKwl2cHNsbGQJJDE0LCV4bW00LCV4bW01CisJYWRkbAklcjEyZCwlZWR4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl2cHhvcgkleG1tNiwleG1tNywleG1tNAorCXhvcmwJJXI4ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVkeAorCXhvcmwJJXI5ZCwlZWRpCisJdnBzaHVmZAkkMjUwLCV4bW0wLCV4bW03CisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlZHgsJXIxMWQKKwlhZGRsCSVlZGksJWVkeAorCXZwc3JsZAkkMTEsJXhtbTYsJXhtbTYKKwltb3ZsCSVyMTFkLCVyMTNkCisJYWRkbAklZWR4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwltb3ZsCSVyMTRkLCVlZHgKKwltb3ZsCSVlYXgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXZwc2xsZAkkMTEsJXhtbTUsJXhtbTUKKwl4b3JsCSVyMTFkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJWVkeCwlcjE0ZAorCWFuZGwJJXIxMWQsJXIxMmQKKwl4b3JsCSVyMTFkLCVyMTNkCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCWFkZGwJMjAoJXJzcCksJWVjeAorCW1vdmwJJWVkeCwlZWRpCisJeG9ybAklZWJ4LCVyMTJkCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOGQsJWVkaQorCWFkZGwJJXIxMmQsJWVjeAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVkeCwlcjE0ZAorCXZwYWRkZAkleG1tNCwleG1tMSwleG1tMQorCWFkZGwJJXIxM2QsJWVjeAorCXhvcmwJJXI4ZCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCSVlY3gsJXIxMGQKKwlhZGRsCSVyMTVkLCVlY3gKKwltb3ZsCSVyMTBkLCVyMTNkCisJdnBzcmxxCSQyLCV4bW03LCV4bW03CisJYWRkbAklZWN4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwltb3ZsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVyMTNkCisJdnBzaHVmYgkleG1tOCwleG1tNiwleG1tNgorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWN4LCVyMTRkCisJdnBhZGRkCSV4bW02LCV4bW0xLCV4bW0xCisJYW5kbAklcjEwZCwlcjEyZAorCXhvcmwJJXIxMGQsJXIxM2QKKwlhZGRsCTI0KCVyc3ApLCVlYngKKwl2cHNodWZkCSQ4MCwleG1tMSwleG1tNworCW1vdmwJJWVjeCwlcjE1ZAorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwl4b3JsCSVlZHgsJXIxNWQKKwlhZGRsCSVyMTJkLCVlYngKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlY3gsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYngKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlYngsJXI5ZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJWVkaSwlZWJ4CisJbW92bAklcjlkLCVyMTNkCisJYWRkbAklZWJ4LCVyMTRkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYngKKwltb3ZsCSVyMTBkLCVyMTJkCisJdnBzaHVmYgkleG1tOSwleG1tNiwleG1tNgorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTNkCisJeG9ybAklcjExZCwlcjEyZAorCXZwYWRkZAkleG1tNiwleG1tMSwleG1tMQorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTRkCisJYW5kbAklcjlkLCVyMTJkCisJdnBhZGRkCTMyKCVyYnApLCV4bW0xLCV4bW02CisJeG9ybAklcjlkLCVyMTNkCisJYWRkbAkyOCglcnNwKSwlZWF4CisJbW92bAklZWJ4LCVlZGkKKwl4b3JsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWN4LCVlZGkKKwlhZGRsCSVyMTJkLCVlYXgKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVieCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVheAorCXhvcmwJJWVjeCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWF4LCVyOGQKKwlhZGRsCSVyMTVkLCVlYXgKKwltb3ZsCSVyOGQsJXIxM2QKKwlhZGRsCSVlYXgsJXIxNGQKKwl2bW92ZHFhCSV4bW02LDE2KCVyc3ApCisJdnBhbGlnbnIJJDQsJXhtbTIsJXhtbTMsJXhtbTQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYXgKKwltb3ZsCSVyOWQsJXIxMmQKKwl2cGFsaWducgkkNCwleG1tMCwleG1tMSwleG1tNworCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVyMTNkCisJeG9ybAklcjEwZCwlcjEyZAorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWF4LCVyMTRkCisJYW5kbAklcjhkLCVyMTJkCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJeG9ybAklcjhkLCVyMTNkCisJYWRkbAkzMiglcnNwKSwlcjExZAorCW1vdmwJJWVheCwlcjE1ZAorCXZwc3JsZAkkMywleG1tNCwleG1tNworCXhvcmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlYngsJXIxNWQKKwl2cHNsbGQJJDE0LCV4bW00LCV4bW01CisJYWRkbAklcjEyZCwlcjExZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVlYXgsJXIxNGQKKwlhZGRsCSVyMTNkLCVyMTFkCisJeG9ybAklZWJ4LCVlZGkKKwl2cHNodWZkCSQyNTAsJXhtbTEsJXhtbTcKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXIxMWQsJWVkeAorCWFkZGwJJWVkaSwlcjExZAorCXZwc3JsZAkkMTEsJXhtbTYsJXhtbTYKKwltb3ZsCSVlZHgsJXIxM2QKKwlhZGRsCSVyMTFkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwltb3ZsCSVyMTRkLCVyMTFkCisJbW92bAklcjhkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJeG9ybAklZWR4LCVyMTNkCisJeG9ybAklcjlkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJXIxMWQsJXIxNGQKKwlhbmRsCSVlZHgsJXIxMmQKKwl4b3JsCSVlZHgsJXIxM2QKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJYWRkbAkzNiglcnNwKSwlcjEwZAorCW1vdmwJJXIxMWQsJWVkaQorCXhvcmwJJXI5ZCwlcjEyZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVyMTJkLCVyMTBkCisJdnBzcmxxCSQxNywleG1tNywleG1tNworCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklcjExZCwlcjE0ZAorCXZwYWRkZAkleG1tNCwleG1tMiwleG1tMgorCWFkZGwJJXIxM2QsJXIxMGQKKwl4b3JsCSVlYXgsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAklcjEwZCwlZWN4CisJYWRkbAklcjE1ZCwlcjEwZAorCW1vdmwJJWVjeCwlcjEzZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJXIxMGQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTBkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwltb3ZsCSVlZHgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlcjEzZAorCXZwc2h1ZmIJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxNGQKKwl2cGFkZGQJJXhtbTYsJXhtbTIsJXhtbTIKKwlhbmRsCSVlY3gsJXIxMmQKKwl4b3JsCSVlY3gsJXIxM2QKKwlhZGRsCTQwKCVyc3ApLCVyOWQKKwl2cHNodWZkCSQ4MCwleG1tMiwleG1tNworCW1vdmwJJXIxMGQsJXIxNWQKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJeG9ybAklcjExZCwlcjE1ZAorCWFkZGwJJXIxMmQsJXI5ZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJdnBzcmxxCSQxNywleG1tNywleG1tNworCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJXIxMGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOWQKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXhvcmwJJXIxMWQsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjlkLCVlYngKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZGksJXI5ZAorCW1vdmwJJWVieCwlcjEzZAorCWFkZGwJJXI5ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjlkCisJbW92bAklZWN4LCVyMTJkCisJdnBzaHVmYgkleG1tOSwleG1tNiwleG1tNgorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTNkCisJeG9ybAklZWR4LCVyMTJkCisJdnBhZGRkCSV4bW02LCV4bW0yLCV4bW0yCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOWQsJXIxNGQKKwlhbmRsCSVlYngsJXIxMmQKKwl2cGFkZGQJNjQoJXJicCksJXhtbTIsJXhtbTYKKwl4b3JsCSVlYngsJXIxM2QKKwlhZGRsCTQ0KCVyc3ApLCVyOGQKKwltb3ZsCSVyOWQsJWVkaQorCXhvcmwJJWVkeCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMGQsJWVkaQorCWFkZGwJJXIxMmQsJXI4ZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklcjlkLCVyMTRkCisJYWRkbAklcjEzZCwlcjhkCisJeG9ybAklcjEwZCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjhkLCVlYXgKKwlhZGRsCSVyMTVkLCVyOGQKKwltb3ZsCSVlYXgsJXIxM2QKKwlhZGRsCSVyOGQsJXIxNGQKKwl2bW92ZHFhCSV4bW02LDMyKCVyc3ApCisJdnBhbGlnbnIJJDQsJXhtbTMsJXhtbTAsJXhtbTQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOGQKKwltb3ZsCSVlYngsJXIxMmQKKwl2cGFsaWducgkkNCwleG1tMSwleG1tMiwleG1tNworCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVyMTNkCisJeG9ybAklZWN4LCVyMTJkCisJdnBzcmxkCSQ3LCV4bW00LCV4bW02CisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOGQsJXIxNGQKKwlhbmRsCSVlYXgsJXIxMmQKKwl2cGFkZGQJJXhtbTcsJXhtbTMsJXhtbTMKKwl4b3JsCSVlYXgsJXIxM2QKKwlhZGRsCTQ4KCVyc3ApLCVlZHgKKwltb3ZsCSVyOGQsJXIxNWQKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwl4b3JsCSVlY3gsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOWQsJXIxNWQKKwl2cHNsbGQJJDE0LCV4bW00LCV4bW01CisJYWRkbAklcjEyZCwlZWR4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl2cHhvcgkleG1tNiwleG1tNywleG1tNAorCXhvcmwJJXI4ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVkeAorCXhvcmwJJXI5ZCwlZWRpCisJdnBzaHVmZAkkMjUwLCV4bW0yLCV4bW03CisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlZHgsJXIxMWQKKwlhZGRsCSVlZGksJWVkeAorCXZwc3JsZAkkMTEsJXhtbTYsJXhtbTYKKwltb3ZsCSVyMTFkLCVyMTNkCisJYWRkbAklZWR4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwltb3ZsCSVyMTRkLCVlZHgKKwltb3ZsCSVlYXgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXZwc2xsZAkkMTEsJXhtbTUsJXhtbTUKKwl4b3JsCSVyMTFkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJWVkeCwlcjE0ZAorCWFuZGwJJXIxMWQsJXIxMmQKKwl4b3JsCSVyMTFkLCVyMTNkCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCWFkZGwJNTIoJXJzcCksJWVjeAorCW1vdmwJJWVkeCwlZWRpCisJeG9ybAklZWJ4LCVyMTJkCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOGQsJWVkaQorCWFkZGwJJXIxMmQsJWVjeAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVkeCwlcjE0ZAorCXZwYWRkZAkleG1tNCwleG1tMywleG1tMworCWFkZGwJJXIxM2QsJWVjeAorCXhvcmwJJXI4ZCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCSVlY3gsJXIxMGQKKwlhZGRsCSVyMTVkLCVlY3gKKwltb3ZsCSVyMTBkLCVyMTNkCisJdnBzcmxxCSQyLCV4bW03LCV4bW03CisJYWRkbAklZWN4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwltb3ZsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVyMTNkCisJdnBzaHVmYgkleG1tOCwleG1tNiwleG1tNgorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWN4LCVyMTRkCisJdnBhZGRkCSV4bW02LCV4bW0zLCV4bW0zCisJYW5kbAklcjEwZCwlcjEyZAorCXhvcmwJJXIxMGQsJXIxM2QKKwlhZGRsCTU2KCVyc3ApLCVlYngKKwl2cHNodWZkCSQ4MCwleG1tMywleG1tNworCW1vdmwJJWVjeCwlcjE1ZAorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwl4b3JsCSVlZHgsJXIxNWQKKwlhZGRsCSVyMTJkLCVlYngKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlY3gsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYngKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlYngsJXI5ZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJWVkaSwlZWJ4CisJbW92bAklcjlkLCVyMTNkCisJYWRkbAklZWJ4LCVyMTRkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYngKKwltb3ZsCSVyMTBkLCVyMTJkCisJdnBzaHVmYgkleG1tOSwleG1tNiwleG1tNgorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTNkCisJeG9ybAklcjExZCwlcjEyZAorCXZwYWRkZAkleG1tNiwleG1tMywleG1tMworCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTRkCisJYW5kbAklcjlkLCVyMTJkCisJdnBhZGRkCTk2KCVyYnApLCV4bW0zLCV4bW02CisJeG9ybAklcjlkLCVyMTNkCisJYWRkbAk2MCglcnNwKSwlZWF4CisJbW92bAklZWJ4LCVlZGkKKwl4b3JsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWN4LCVlZGkKKwlhZGRsCSVyMTJkLCVlYXgKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVieCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVheAorCXhvcmwJJWVjeCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWF4LCVyOGQKKwlhZGRsCSVyMTVkLCVlYXgKKwltb3ZsCSVyOGQsJXIxM2QKKwlhZGRsCSVlYXgsJXIxNGQKKwl2bW92ZHFhCSV4bW02LDQ4KCVyc3ApCisJY21wYgkkMCwxMzEoJXJicCkKKwlqbmUJLkxhdnhfMDBfNDcKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYXgKKwltb3ZsCSVyOWQsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI4ZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVheCwlcjE0ZAorCWFuZGwJJXI4ZCwlcjEyZAorCXhvcmwJJXI4ZCwlcjEzZAorCWFkZGwJMCglcnNwKSwlcjExZAorCW1vdmwJJWVheCwlcjE1ZAorCXhvcmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlYngsJXIxNWQKKwlhZGRsCSVyMTJkLCVyMTFkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlYXgsJXIxNGQKKwlhZGRsCSVyMTNkLCVyMTFkCisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXIxMWQsJWVkeAorCWFkZGwJJWVkaSwlcjExZAorCW1vdmwJJWVkeCwlcjEzZAorCWFkZGwJJXIxMWQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTFkCisJbW92bAklcjhkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlZHgsJXIxM2QKKwl4b3JsCSVyOWQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMWQsJXIxNGQKKwlhbmRsCSVlZHgsJXIxMmQKKwl4b3JsCSVlZHgsJXIxM2QKKwlhZGRsCTQoJXJzcCksJXIxMGQKKwltb3ZsCSVyMTFkLCVlZGkKKwl4b3JsCSVyOWQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJXIxMmQsJXIxMGQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXIxMWQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyMTBkCisJeG9ybAklZWF4LCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyMTBkLCVlY3gKKwlhZGRsCSVyMTVkLCVyMTBkCisJbW92bAklZWN4LCVyMTNkCisJYWRkbAklcjEwZCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJXIxMGQKKwltb3ZsCSVlZHgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlcjEzZAorCXhvcmwJJXI4ZCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjEwZCwlcjE0ZAorCWFuZGwJJWVjeCwlcjEyZAorCXhvcmwJJWVjeCwlcjEzZAorCWFkZGwJOCglcnNwKSwlcjlkCisJbW92bAklcjEwZCwlcjE1ZAorCXhvcmwJJXI4ZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMWQsJXIxNWQKKwlhZGRsCSVyMTJkLCVyOWQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJXIxMGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOWQKKwl4b3JsCSVyMTFkLCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI5ZCwlZWJ4CisJYWRkbAklZWRpLCVyOWQKKwltb3ZsCSVlYngsJXIxM2QKKwlhZGRsCSVyOWQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOWQKKwltb3ZsCSVlY3gsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVieCwlcjEzZAorCXhvcmwJJWVkeCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjlkLCVyMTRkCisJYW5kbAklZWJ4LCVyMTJkCisJeG9ybAklZWJ4LCVyMTNkCisJYWRkbAkxMiglcnNwKSwlcjhkCisJbW92bAklcjlkLCVlZGkKKwl4b3JsCSVlZHgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVlZGkKKwlhZGRsCSVyMTJkLCVyOGQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI4ZAorCXhvcmwJJXIxMGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI4ZCwlZWF4CisJYWRkbAklcjE1ZCwlcjhkCisJbW92bAklZWF4LCVyMTNkCisJYWRkbAklcjhkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjhkCisJbW92bAklZWJ4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlYXgsJXIxM2QKKwl4b3JsCSVlY3gsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXI4ZCwlcjE0ZAorCWFuZGwJJWVheCwlcjEyZAorCXhvcmwJJWVheCwlcjEzZAorCWFkZGwJMTYoJXJzcCksJWVkeAorCW1vdmwJJXI4ZCwlcjE1ZAorCXhvcmwJJWVjeCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI5ZCwlcjE1ZAorCWFkZGwJJXIxMmQsJWVkeAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklcjhkLCVyMTRkCisJYWRkbAklcjEzZCwlZWR4CisJeG9ybAklcjlkLCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVkeCwlcjExZAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAklcjExZCwlcjEzZAorCWFkZGwJJWVkeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVkeAorCW1vdmwJJWVheCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjExZCwlcjEzZAorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWR4LCVyMTRkCisJYW5kbAklcjExZCwlcjEyZAorCXhvcmwJJXIxMWQsJXIxM2QKKwlhZGRsCTIwKCVyc3ApLCVlY3gKKwltb3ZsCSVlZHgsJWVkaQorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI4ZCwlZWRpCisJYWRkbAklcjEyZCwlZWN4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlZHgsJXIxNGQKKwlhZGRsCSVyMTNkLCVlY3gKKwl4b3JsCSVyOGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVjeCwlcjEwZAorCWFkZGwJJXIxNWQsJWVjeAorCW1vdmwJJXIxMGQsJXIxM2QKKwlhZGRsCSVlY3gsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlY3gKKwltb3ZsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVyMTNkCisJeG9ybAklZWF4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlY3gsJXIxNGQKKwlhbmRsCSVyMTBkLCVyMTJkCisJeG9ybAklcjEwZCwlcjEzZAorCWFkZGwJMjQoJXJzcCksJWVieAorCW1vdmwJJWVjeCwlcjE1ZAorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVkeCwlcjE1ZAorCWFkZGwJJXIxMmQsJWVieAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWN4LCVyMTRkCisJYWRkbAklcjEzZCwlZWJ4CisJeG9ybAklZWR4LCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVieCwlcjlkCisJYWRkbAklZWRpLCVlYngKKwltb3ZsCSVyOWQsJXIxM2QKKwlhZGRsCSVlYngsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYngKKwltb3ZsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyOWQsJXIxM2QKKwl4b3JsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlYngsJXIxNGQKKwlhbmRsCSVyOWQsJXIxMmQKKwl4b3JsCSVyOWQsJXIxM2QKKwlhZGRsCTI4KCVyc3ApLCVlYXgKKwltb3ZsCSVlYngsJWVkaQorCXhvcmwJJXIxMWQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJWVkaQorCWFkZGwJJXIxMmQsJWVheAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklZWJ4LCVyMTRkCisJYWRkbAklcjEzZCwlZWF4CisJeG9ybAklZWN4LCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlYXgsJXI4ZAorCWFkZGwJJXIxNWQsJWVheAorCW1vdmwJJXI4ZCwlcjEzZAorCWFkZGwJJWVheCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVheAorCW1vdmwJJXI5ZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVyMTNkCisJeG9ybAklcjEwZCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWF4LCVyMTRkCisJYW5kbAklcjhkLCVyMTJkCisJeG9ybAklcjhkLCVyMTNkCisJYWRkbAkzMiglcnNwKSwlcjExZAorCW1vdmwJJWVheCwlcjE1ZAorCXhvcmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlYngsJXIxNWQKKwlhZGRsCSVyMTJkLCVyMTFkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlYXgsJXIxNGQKKwlhZGRsCSVyMTNkLCVyMTFkCisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXIxMWQsJWVkeAorCWFkZGwJJWVkaSwlcjExZAorCW1vdmwJJWVkeCwlcjEzZAorCWFkZGwJJXIxMWQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTFkCisJbW92bAklcjhkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlZHgsJXIxM2QKKwl4b3JsCSVyOWQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMWQsJXIxNGQKKwlhbmRsCSVlZHgsJXIxMmQKKwl4b3JsCSVlZHgsJXIxM2QKKwlhZGRsCTM2KCVyc3ApLCVyMTBkCisJbW92bAklcjExZCwlZWRpCisJeG9ybAklcjlkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVyMTJkLCVyMTBkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVyMTFkLCVyMTRkCisJYWRkbAklcjEzZCwlcjEwZAorCXhvcmwJJWVheCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjEwZCwlZWN4CisJYWRkbAklcjE1ZCwlcjEwZAorCW1vdmwJJWVjeCwlcjEzZAorCWFkZGwJJXIxMGQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTBkCisJbW92bAklZWR4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJXIxM2QKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxNGQKKwlhbmRsCSVlY3gsJXIxMmQKKwl4b3JsCSVlY3gsJXIxM2QKKwlhZGRsCTQwKCVyc3ApLCVyOWQKKwltb3ZsCSVyMTBkLCVyMTVkCisJeG9ybAklcjhkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjExZCwlcjE1ZAorCWFkZGwJJXIxMmQsJXI5ZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklcjEwZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI5ZAorCXhvcmwJJXIxMWQsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjlkLCVlYngKKwlhZGRsCSVlZGksJXI5ZAorCW1vdmwJJWVieCwlcjEzZAorCWFkZGwJJXI5ZCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJXI5ZAorCW1vdmwJJWVjeCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTNkCisJeG9ybAklZWR4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOWQsJXIxNGQKKwlhbmRsCSVlYngsJXIxMmQKKwl4b3JsCSVlYngsJXIxM2QKKwlhZGRsCTQ0KCVyc3ApLCVyOGQKKwltb3ZsCSVyOWQsJWVkaQorCXhvcmwJJWVkeCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMGQsJWVkaQorCWFkZGwJJXIxMmQsJXI4ZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklcjlkLCVyMTRkCisJYWRkbAklcjEzZCwlcjhkCisJeG9ybAklcjEwZCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjhkLCVlYXgKKwlhZGRsCSVyMTVkLCVyOGQKKwltb3ZsCSVlYXgsJXIxM2QKKwlhZGRsCSVyOGQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOGQKKwltb3ZsCSVlYngsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlcjEzZAorCXhvcmwJJWVjeCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjhkLCVyMTRkCisJYW5kbAklZWF4LCVyMTJkCisJeG9ybAklZWF4LCVyMTNkCisJYWRkbAk0OCglcnNwKSwlZWR4CisJbW92bAklcjhkLCVyMTVkCisJeG9ybAklZWN4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTVkCisJYWRkbAklcjEyZCwlZWR4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVyOGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVlZHgKKwl4b3JsCSVyOWQsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWR4LCVyMTFkCisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCSVyMTFkLCVyMTNkCisJYWRkbAklZWR4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWR4CisJbW92bAklZWF4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTFkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlZHgsJXIxNGQKKwlhbmRsCSVyMTFkLCVyMTJkCisJeG9ybAklcjExZCwlcjEzZAorCWFkZGwJNTIoJXJzcCksJWVjeAorCW1vdmwJJWVkeCwlZWRpCisJeG9ybAklZWJ4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVlZGkKKwlhZGRsCSVyMTJkLCVlY3gKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVkeCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVjeAorCXhvcmwJJXI4ZCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWN4LCVyMTBkCisJYWRkbAklcjE1ZCwlZWN4CisJbW92bAklcjEwZCwlcjEzZAorCWFkZGwJJWVjeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVjeAorCW1vdmwJJXIxMWQsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMGQsJXIxM2QKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVjeCwlcjE0ZAorCWFuZGwJJXIxMGQsJXIxMmQKKwl4b3JsCSVyMTBkLCVyMTNkCisJYWRkbAk1NiglcnNwKSwlZWJ4CisJbW92bAklZWN4LCVyMTVkCisJeG9ybAklZWF4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWR4LCVyMTVkCisJYWRkbAklcjEyZCwlZWJ4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlY3gsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYngKKwl4b3JsCSVlZHgsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWJ4LCVyOWQKKwlhZGRsCSVlZGksJWVieAorCW1vdmwJJXI5ZCwlcjEzZAorCWFkZGwJJWVieCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVieAorCW1vdmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI5ZCwlcjEzZAorCXhvcmwJJXIxMWQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVieCwlcjE0ZAorCWFuZGwJJXI5ZCwlcjEyZAorCXhvcmwJJXI5ZCwlcjEzZAorCWFkZGwJNjAoJXJzcCksJWVheAorCW1vdmwJJWVieCwlZWRpCisJeG9ybAklcjExZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlZWRpCisJYWRkbAklcjEyZCwlZWF4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlYngsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYXgKKwl4b3JsCSVlY3gsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVheCwlcjhkCisJYWRkbAklcjE1ZCwlZWF4CisJbW92bAklcjhkLCVyMTNkCisJYWRkbAklZWF4LCVyMTRkCisJbW92cQk2NCswKCVyc3ApLCVyZGkKKwltb3ZsCSVyMTRkLCVlYXgKKworCWFkZGwJMCglcmRpKSwlZWF4CisJbGVhcQk2NCglcnNpKSwlcnNpCisJYWRkbAk0KCVyZGkpLCVlYngKKwlhZGRsCTgoJXJkaSksJWVjeAorCWFkZGwJMTIoJXJkaSksJWVkeAorCWFkZGwJMTYoJXJkaSksJXI4ZAorCWFkZGwJMjAoJXJkaSksJXI5ZAorCWFkZGwJMjQoJXJkaSksJXIxMGQKKwlhZGRsCTI4KCVyZGkpLCVyMTFkCisKKwljbXBxCTY0KzE2KCVyc3ApLCVyc2kKKworCW1vdmwJJWVheCwwKCVyZGkpCisJbW92bAklZWJ4LDQoJXJkaSkKKwltb3ZsCSVlY3gsOCglcmRpKQorCW1vdmwJJWVkeCwxMiglcmRpKQorCW1vdmwJJXI4ZCwxNiglcmRpKQorCW1vdmwJJXI5ZCwyMCglcmRpKQorCW1vdmwJJXIxMGQsMjQoJXJkaSkKKwltb3ZsCSVyMTFkLDI4KCVyZGkpCisJamIJLkxsb29wX2F2eAorCisJbW92cQk2NCsyNCglcnNwKSwlcnNpCisJdnplcm91cHBlcgorCW1vdnEJKCVyc2kpLCVyMTUKKwltb3ZxCTgoJXJzaSksJXIxNAorCW1vdnEJMTYoJXJzaSksJXIxMworCW1vdnEJMjQoJXJzaSksJXIxMgorCW1vdnEJMzIoJXJzaSksJXJicAorCW1vdnEJNDAoJXJzaSksJXJieAorCWxlYXEJNDgoJXJzaSksJXJzcAorLkxlcGlsb2d1ZV9hdng6CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlzaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9hdngsLi1zaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9hdngKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTUxMi14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9saW51eC14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMKaW5kZXggY2EzYTNhMS4uZDY1NzQzZiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL2xpbnV4LXg4Nl82NC9jcnlwdG8vc2hhL3NoYTUxMi14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbGludXgteDg2XzY0L2NyeXB0by9zaGEvc2hhNTEyLXg4Nl82NC5TCkBAIC04LDYgKzgsMTcgQEAKIC50eXBlCXNoYTUxMl9ibG9ja19kYXRhX29yZGVyLEBmdW5jdGlvbgogLmFsaWduCTE2CiBzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcjoKKwlsZWFxCU9QRU5TU0xfaWEzMmNhcF9QKCVyaXApLCVyMTEKKwltb3ZsCTAoJXIxMSksJXI5ZAorCW1vdmwJNCglcjExKSwlcjEwZAorCW1vdmwJOCglcjExKSwlcjExZAorCXRlc3RsCSQyMDQ4LCVyMTBkCisJam56CS5MeG9wX3Nob3J0Y3V0CisJYW5kbAkkMTA3Mzc0MTgyNCwlcjlkCisJYW5kbAkkMjY4NDM1OTY4LCVyMTBkCisJb3JsCSVyOWQsJXIxMGQKKwljbXBsCSQxMzQyMTc3NzkyLCVyMTBkCisJamUJLkxhdnhfc2hvcnRjdXQKIAlwdXNocQklcmJ4CiAJcHVzaHEJJXJicAogCXB1c2hxCSVyMTIKQEAgLTE3ODQsNCArMTc5NSwyMjM0IEBACiAucXVhZAkweDAwMDEwMjAzMDQwNTA2MDcsMHgwODA5MGEwYjBjMGQwZTBmCiAucXVhZAkweDAwMDEwMjAzMDQwNTA2MDcsMHgwODA5MGEwYjBjMGQwZTBmCiAuYnl0ZQk4Myw3Miw2NSw1Myw0OSw1MCwzMiw5OCwxMDgsMTExLDk5LDEwNywzMiwxMTYsMTE0LDk3LDExMCwxMTUsMTAyLDExMSwxMTQsMTA5LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw5NSw1NCw1Miw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCisudHlwZQlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl94b3AsQGZ1bmN0aW9uCisuYWxpZ24JNjQKK3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcDoKKy5MeG9wX3Nob3J0Y3V0OgorCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCW1vdnEJJXJzcCwlcjExCisJc2hscQkkNCwlcmR4CisJc3VicQkkMTYwLCVyc3AKKwlsZWFxCSglcnNpLCVyZHgsOCksJXJkeAorCWFuZHEJJC02NCwlcnNwCisJbW92cQklcmRpLDEyOCswKCVyc3ApCisJbW92cQklcnNpLDEyOCs4KCVyc3ApCisJbW92cQklcmR4LDEyOCsxNiglcnNwKQorCW1vdnEJJXIxMSwxMjgrMjQoJXJzcCkKKy5McHJvbG9ndWVfeG9wOgorCisJdnplcm91cHBlcgorCW1vdnEJMCglcmRpKSwlcmF4CisJbW92cQk4KCVyZGkpLCVyYngKKwltb3ZxCTE2KCVyZGkpLCVyY3gKKwltb3ZxCTI0KCVyZGkpLCVyZHgKKwltb3ZxCTMyKCVyZGkpLCVyOAorCW1vdnEJNDAoJXJkaSksJXI5CisJbW92cQk0OCglcmRpKSwlcjEwCisJbW92cQk1NiglcmRpKSwlcjExCisJam1wCS5MbG9vcF94b3AKKy5hbGlnbgkxNgorLkxsb29wX3hvcDoKKwl2bW92ZHFhCUs1MTIrMTI4MCglcmlwKSwleG1tMTEKKwl2bW92ZHF1CTAoJXJzaSksJXhtbTAKKwlsZWFxCUs1MTIrMTI4KCVyaXApLCVyYnAKKwl2bW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJdm1vdmRxdQkzMiglcnNpKSwleG1tMgorCXZwc2h1ZmIJJXhtbTExLCV4bW0wLCV4bW0wCisJdm1vdmRxdQk0OCglcnNpKSwleG1tMworCXZwc2h1ZmIJJXhtbTExLCV4bW0xLCV4bW0xCisJdm1vdmRxdQk2NCglcnNpKSwleG1tNAorCXZwc2h1ZmIJJXhtbTExLCV4bW0yLCV4bW0yCisJdm1vdmRxdQk4MCglcnNpKSwleG1tNQorCXZwc2h1ZmIJJXhtbTExLCV4bW0zLCV4bW0zCisJdm1vdmRxdQk5NiglcnNpKSwleG1tNgorCXZwc2h1ZmIJJXhtbTExLCV4bW00LCV4bW00CisJdm1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwl2cHNodWZiCSV4bW0xMSwleG1tNSwleG1tNQorCXZwYWRkcQktMTI4KCVyYnApLCV4bW0wLCV4bW04CisJdnBzaHVmYgkleG1tMTEsJXhtbTYsJXhtbTYKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW05CisJdnBzaHVmYgkleG1tMTEsJXhtbTcsJXhtbTcKKwl2cGFkZHEJLTY0KCVyYnApLCV4bW0yLCV4bW0xMAorCXZwYWRkcQktMzIoJXJicCksJXhtbTMsJXhtbTExCisJdm1vdmRxYQkleG1tOCwwKCVyc3ApCisJdnBhZGRxCTAoJXJicCksJXhtbTQsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJdnBhZGRxCTMyKCVyYnApLCV4bW01LCV4bW05CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCisJdm1vdmRxYQkleG1tMTEsNDgoJXJzcCkKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTExCisJdm1vdmRxYQkleG1tOCw2NCglcnNwKQorCW1vdnEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tOSw4MCglcnNwKQorCW1vdnEJJXJieCwlcmRpCisJdm1vdmRxYQkleG1tMTAsOTYoJXJzcCkKKwl4b3JxCSVyY3gsJXJkaQorCXZtb3ZkcWEJJXhtbTExLDExMiglcnNwKQorCW1vdnEJJXI4LCVyMTMKKwlqbXAJLkx4b3BfMDBfNDcKKworLmFsaWduCTE2CisuTHhvcF8wMF80NzoKKwlhZGRxCSQyNTYsJXJicAorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW04CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTExCisJbW92cQklcjksJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcjgsJXIxMworCXhvcnEJJXIxMCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmF4LCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW0wLCV4bW0wCisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwlhZGRxCTAoJXJzcCksJXIxMQorCW1vdnEJJXJheCwlcjE1CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNworCXhvcnEJJXIxMCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwl4b3JxCSVyYngsJXIxNQorCWFkZHEJJXIxMiwlcjExCisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjIzLDMKKwl4b3JxCSVyYXgsJXIxNAorCWFkZHEJJXIxMywlcjExCisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcmJ4LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJdnBzcmxxCSQ2LCV4bW03LCV4bW0xMAorCWFkZHEJJXIxMSwlcmR4CisJYWRkcQklcmRpLCVyMTEKKwl2cGFkZHEJJXhtbTgsJXhtbTAsJXhtbTAKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTEKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCW1vdnEJJXI4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyZHgsJXIxMworCXhvcnEJJXI5LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjExLCVyMTQKKwlhbmRxCSVyZHgsJXIxMgorCXhvcnEJJXJkeCwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tMCwleG1tMAorCWFkZHEJOCglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl4b3JxCSVyOSwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCS0xMjgoJXJicCksJXhtbTAsJXhtbTEwCisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXIxMSwlcjE0CisJYWRkcQklcjEzLCVyMTAKKwl4b3JxCSVyYXgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyMTAsJXJjeAorCWFkZHEJJXIxNSwlcjEwCisJbW92cQklcmN4LCVyMTMKKwlhZGRxCSVyMTAsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDAoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tOAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMAorCXZwYWxpZ25yCSQ4LCV4bW01LCV4bW02LCV4bW0xMQorCW1vdnEJJXJkeCwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTgKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCXZwYWRkcQkleG1tMTEsJXhtbTEsJXhtbTEKKwlhbmRxCSVyY3gsJXIxMgorCXhvcnEJJXJjeCwlcjEzCisJYWRkcQkxNiglcnNwKSwlcjkKKwltb3ZxCSVyMTAsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyOCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwl4b3JxCSVyMTEsJXIxNQorCWFkZHEJJXIxMiwlcjkKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKy5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMTYsMworCXhvcnEJJXIxMCwlcjE0CisJYWRkcQklcjEzLCVyOQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXIxMSwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tMCwleG1tMTAKKwlhZGRxCSVyOSwlcmJ4CisJYWRkcQklcmRpLCVyOQorCXZwYWRkcQkleG1tOCwleG1tMSwleG1tMQorCW1vdnEJJXJieCwlcjEzCisJYWRkcQklcjksJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCW1vdnEJJXJjeCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmJ4LCVyMTMKKwl4b3JxCSVyZHgsJXIxMgorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTEsJXhtbTEKKwlhZGRxCTI0KCVyc3ApLCVyOAorCW1vdnEJJXI5LCVyZGkKKwl4b3JxCSVyZHgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZwYWRkcQktOTYoJXJicCksJXhtbTEsJXhtbTEwCisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDE2KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTIsJXhtbTMsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOAorCXZwYWxpZ25yCSQ4LCV4bW02LCV4bW03LCV4bW0xMQorCW1vdnEJJXJieCwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjgsJXIxNAorCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJYWRkcQkzMiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjE3LDMKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyOSwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tMSwleG1tMTAKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJdnBhZGRxCSV4bW04LCV4bW0yLCV4bW0yCisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyYXgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tMiwleG1tMgorCWFkZHEJNDAoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJeG9ycQklcmJ4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cGFkZHEJLTY0KCVyYnApLCV4bW0yLCV4bW0xMAorCXhvcnEJJXI4LCVyZGkKKwlhZGRxCSVyMTIsJXJjeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl4b3JxCSVyOCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tOAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW0xMQorCW1vdnEJJXIxMSwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmN4LCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW0zLCV4bW0zCisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCWFkZHEJNDgoJXJzcCksJXJieAorCW1vdnEJJXJjeCwlcjE1CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNworCXhvcnEJJXJheCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwl4b3JxCSVyZHgsJXIxNQorCWFkZHEJJXIxMiwlcmJ4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjE4LDMKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcmR4LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJdnBzcmxxCSQ2LCV4bW0yLCV4bW0xMAorCWFkZHEJJXJieCwlcjkKKwlhZGRxCSVyZGksJXJieAorCXZwYWRkcQkleG1tOCwleG1tMywleG1tMworCW1vdnEJJXI5LCVyMTMKKwlhZGRxCSVyYngsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmJ4CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyMTAsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyYngsJXIxNAorCWFuZHEJJXI5LCVyMTIKKwl4b3JxCSVyOSwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tMywleG1tMworCWFkZHEJNTYoJXJzcCksJXJheAorCW1vdnEJJXJieCwlcmRpCisJeG9ycQklcjExLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cGFkZHEJLTMyKCVyYnApLCV4bW0zLCV4bW0xMAorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyYngsJXIxNAorCWFkZHEJJXIxMywlcmF4CisJeG9ycQklcmN4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tMTAsNDgoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tNCwleG1tNSwleG1tOAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJheAorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW0xMQorCW1vdnEJJXI5LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJheCwlcjE0CisJdnBhZGRxCSV4bW0xMSwleG1tNCwleG1tNAorCWFuZHEJJXI4LCVyMTIKKwl4b3JxCSVyOCwlcjEzCisJYWRkcQk2NCglcnNwKSwlcjExCisJbW92cQklcmF4LCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcjEwLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcjE1CisJYWRkcQklcjEyLCVyMTEKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKy5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMTksMworCXhvcnEJJXJheCwlcjE0CisJYWRkcQklcjEzLCVyMTEKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyYngsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTMsJXhtbTEwCisJYWRkcQklcjExLCVyZHgKKwlhZGRxCSVyZGksJXIxMQorCXZwYWRkcQkleG1tOCwleG1tNCwleG1tNAorCW1vdnEJJXJkeCwlcjEzCisJYWRkcQklcjExLCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcjgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJkeCwlcjEzCisJeG9ycQklcjksJXIxMgorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwl2cGFkZHEJJXhtbTExLCV4bW00LCV4bW00CisJYWRkcQk3MiglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl4b3JxCSVyOSwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCTAoJXJicCksJXhtbTQsJXhtbTEwCisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXIxMSwlcjE0CisJYWRkcQklcjEzLCVyMTAKKwl4b3JxCSVyYXgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyMTAsJXJjeAorCWFkZHEJJXIxNSwlcjEwCisJbW92cQklcmN4LCVyMTMKKwlhZGRxCSVyMTAsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDY0KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTUsJXhtbTYsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tMTEKKwltb3ZxCSVyZHgsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcmN4LCVyMTMKKwl4b3JxCSVyOCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjEwLCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW01LCV4bW01CisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCWFkZHEJODAoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcjgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjIwLDMKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyMTEsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTQsJXhtbTEwCisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwl2cGFkZHEJJXhtbTgsJXhtbTUsJXhtbTUKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXI5CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyY3gsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjksJXIxNAorCWFuZHEJJXJieCwlcjEyCisJeG9ycQklcmJ4LCVyMTMKKwl2cGFkZHEJJXhtbTExLCV4bW01LCV4bW01CisJYWRkcQk4OCglcnNwKSwlcjgKKwltb3ZxCSVyOSwlcmRpCisJeG9ycQklcmR4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cGFkZHEJMzIoJXJicCksJXhtbTUsJXhtbTEwCisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDgwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOAorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW0xMQorCW1vdnEJJXJieCwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjgsJXIxNAorCXZwYWRkcQkleG1tMTEsJXhtbTYsJXhtbTYKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJYWRkcQk5NiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjIxLDMKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyOSwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tNSwleG1tMTAKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJdnBhZGRxCSV4bW04LCV4bW02LCV4bW02CisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyYXgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tNiwleG1tNgorCWFkZHEJMTA0KCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXhvcnEJJXJieCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCTY0KCVyYnApLCV4bW02LCV4bW0xMAorCXhvcnEJJXI4LCVyZGkKKwlhZGRxCSVyMTIsJXJjeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl4b3JxCSVyOCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJdm1vdmRxYQkleG1tMTAsOTYoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tNywleG1tMCwleG1tOAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW0xMQorCW1vdnEJJXIxMSwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmN4LCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW03LCV4bW03CisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCWFkZHEJMTEyKCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyYXgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIyMiwzCisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJkeCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tNiwleG1tMTAKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwl2cGFkZHEJJXhtbTgsJXhtbTcsJXhtbTcKKwltb3ZxCSVyOSwlcjEzCisJYWRkcQklcmJ4LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcjEwLCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTcsJXhtbTcKKwlhZGRxCTEyMCglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl4b3JxCSVyMTEsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZwYWRkcQk5NiglcmJwKSwleG1tNywleG1tMTAKKwl4b3JxCSVyY3gsJXJkaQorCWFkZHEJJXIxMiwlcmF4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmJ4LCVyMTQKKwlhZGRxCSVyMTMsJXJheAorCXhvcnEJJXJjeCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDExMiglcnNwKQorCWNtcGIJJDAsMTM1KCVyYnApCisJam5lCS5MeG9wXzAwXzQ3CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJbW92cQklcjksJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJheCwlcjE0CisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwlhZGRxCTAoJXJzcCksJXIxMQorCW1vdnEJJXJheCwlcjE1CisJeG9ycQklcjEwLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyYngsJXIxNQorCWFkZHEJJXIxMiwlcjExCisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXhvcnEJJXJieCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXIxMSwlcmR4CisJYWRkcQklcmRpLCVyMTEKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjExCisJbW92cQklcjgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJkeCwlcjEzCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMSwlcjE0CisJYW5kcQklcmR4LCVyMTIKKwl4b3JxCSVyZHgsJXIxMworCWFkZHEJOCglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl4b3JxCSVyOSwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXIxMSwlcjE0CisJYWRkcQklcjEzLCVyMTAKKwl4b3JxCSVyYXgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyMTAsJXJjeAorCWFkZHEJJXIxNSwlcjEwCisJbW92cQklcmN4LCVyMTMKKwlhZGRxCSVyMTAsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMAorCW1vdnEJJXJkeCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmN4LCVyMTMKKwl4b3JxCSVyOCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjEwLCVyMTQKKwlhbmRxCSVyY3gsJXIxMgorCXhvcnEJJXJjeCwlcjEzCisJYWRkcQkxNiglcnNwKSwlcjkKKwltb3ZxCSVyMTAsJXIxNQorCXhvcnEJJXI4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyMTEsJXIxNQorCWFkZHEJJXIxMiwlcjkKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl4b3JxCSVyMTEsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyOSwlcmJ4CisJYWRkcQklcmRpLCVyOQorCW1vdnEJJXJieCwlcjEzCisJYWRkcQklcjksJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXI5CisJbW92cQklcmN4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyYngsJXIxMworCXhvcnEJJXJkeCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjksJXIxNAorCWFuZHEJJXJieCwlcjEyCisJeG9ycQklcmJ4LCVyMTMKKwlhZGRxCTI0KCVyc3ApLCVyOAorCW1vdnEJJXI5LCVyZGkKKwl4b3JxCSVyZHgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXI5LCVyMTQKKwlhZGRxCSVyMTMsJXI4CisJeG9ycQklcjEwLCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjgsJXJheAorCWFkZHEJJXIxNSwlcjgKKwltb3ZxCSVyYXgsJXIxMworCWFkZHEJJXI4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOAorCW1vdnEJJXJieCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI4LCVyMTQKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJYWRkcQkzMiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorCXhvcnEJJXJjeCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJeG9ycQklcjksJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCW1vdnEJJXJheCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjExLCVyMTMKKwl4b3JxCSVyYngsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCWFkZHEJNDAoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJeG9ycQklcmJ4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJeG9ycQklcjgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCW1vdnEJJXIxMSwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjEwLCVyMTMKKwl4b3JxCSVyYXgsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCWFkZHEJNDgoJXJzcCksJXJieAorCW1vdnEJJXJjeCwlcjE1CisJeG9ycQklcmF4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyZHgsJXIxNQorCWFkZHEJJXIxMiwlcmJ4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXhvcnEJJXJkeCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJieCwlcjkKKwlhZGRxCSVyZGksJXJieAorCW1vdnEJJXI5LCVyMTMKKwlhZGRxCSVyYngsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCW1vdnEJJXIxMCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjksJXIxMworCXhvcnEJJXIxMSwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCWFkZHEJNTYoJXJzcCksJXJheAorCW1vdnEJJXJieCwlcmRpCisJeG9ycQklcjExLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyY3gsJXJkaQorCWFkZHEJJXIxMiwlcmF4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmJ4LCVyMTQKKwlhZGRxCSVyMTMsJXJheAorCXhvcnEJJXJjeCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJheAorCW1vdnEJJXI5LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyOCwlcjEzCisJeG9ycQklcjEwLCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyYXgsJXIxNAorCWFuZHEJJXI4LCVyMTIKKwl4b3JxCSVyOCwlcjEzCisJYWRkcQk2NCglcnNwKSwlcjExCisJbW92cQklcmF4LCVyMTUKKwl4b3JxCSVyMTAsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXJieCwlcjE1CisJYWRkcQklcjEyLCVyMTEKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyYXgsJXIxNAorCWFkZHEJJXIxMywlcjExCisJeG9ycQklcmJ4LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjExLCVyZHgKKwlhZGRxCSVyZGksJXIxMQorCW1vdnEJJXJkeCwlcjEzCisJYWRkcQklcjExLCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTEKKwltb3ZxCSVyOCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjExLCVyMTQKKwlhbmRxCSVyZHgsJXIxMgorCXhvcnEJJXJkeCwlcjEzCisJYWRkcQk3MiglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl4b3JxCSVyOSwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXIxMSwlcjE0CisJYWRkcQklcjEzLCVyMTAKKwl4b3JxCSVyYXgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyMTAsJXJjeAorCWFkZHEJJXIxNSwlcjEwCisJbW92cQklcmN4LCVyMTMKKwlhZGRxCSVyMTAsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMAorCW1vdnEJJXJkeCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmN4LCVyMTMKKwl4b3JxCSVyOCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjEwLCVyMTQKKwlhbmRxCSVyY3gsJXIxMgorCXhvcnEJJXJjeCwlcjEzCisJYWRkcQk4MCglcnNwKSwlcjkKKwltb3ZxCSVyMTAsJXIxNQorCXhvcnEJJXI4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyMTEsJXIxNQorCWFkZHEJJXIxMiwlcjkKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl4b3JxCSVyMTEsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyOSwlcmJ4CisJYWRkcQklcmRpLCVyOQorCW1vdnEJJXJieCwlcjEzCisJYWRkcQklcjksJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXI5CisJbW92cQklcmN4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyYngsJXIxMworCXhvcnEJJXJkeCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjksJXIxNAorCWFuZHEJJXJieCwlcjEyCisJeG9ycQklcmJ4LCVyMTMKKwlhZGRxCTg4KCVyc3ApLCVyOAorCW1vdnEJJXI5LCVyZGkKKwl4b3JxCSVyZHgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXI5LCVyMTQKKwlhZGRxCSVyMTMsJXI4CisJeG9ycQklcjEwLCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjgsJXJheAorCWFkZHEJJXIxNSwlcjgKKwltb3ZxCSVyYXgsJXIxMworCWFkZHEJJXI4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOAorCW1vdnEJJXJieCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI4LCVyMTQKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJYWRkcQk5NiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorCXhvcnEJJXJjeCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJeG9ycQklcjksJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCW1vdnEJJXJheCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjExLCVyMTMKKwl4b3JxCSVyYngsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCWFkZHEJMTA0KCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXhvcnEJJXJieCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjgsJXJkaQorCWFkZHEJJXIxMiwlcmN4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmR4LCVyMTQKKwlhZGRxCSVyMTMsJXJjeAorCXhvcnEJJXI4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmN4LCVyMTAKKwlhZGRxCSVyMTUsJXJjeAorCW1vdnEJJXIxMCwlcjEzCisJYWRkcQklcmN4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwltb3ZxCSVyMTEsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMCwlcjEzCisJeG9ycQklcmF4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyY3gsJXIxNAorCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwlhZGRxCTExMiglcnNwKSwlcmJ4CisJbW92cQklcmN4LCVyMTUKKwl4b3JxCSVyYXgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXJkeCwlcjE1CisJYWRkcQklcjEyLCVyYngKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJeG9ycQklcmR4LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmJ4LCVyOQorCWFkZHEJJXJkaSwlcmJ4CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmJ4CisJbW92cQklcjEwLCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyYngsJXIxNAorCWFuZHEJJXI5LCVyMTIKKwl4b3JxCSVyOSwlcjEzCisJYWRkcQkxMjAoJXJzcCksJXJheAorCW1vdnEJJXJieCwlcmRpCisJeG9ycQklcjExLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyY3gsJXJkaQorCWFkZHEJJXIxMiwlcmF4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmJ4LCVyMTQKKwlhZGRxCSVyMTMsJXJheAorCXhvcnEJJXJjeCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCW1vdnEJMTI4KzAoJXJzcCksJXJkaQorCW1vdnEJJXIxNCwlcmF4CisKKwlhZGRxCTAoJXJkaSksJXJheAorCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwlhZGRxCTgoJXJkaSksJXJieAorCWFkZHEJMTYoJXJkaSksJXJjeAorCWFkZHEJMjQoJXJkaSksJXJkeAorCWFkZHEJMzIoJXJkaSksJXI4CisJYWRkcQk0MCglcmRpKSwlcjkKKwlhZGRxCTQ4KCVyZGkpLCVyMTAKKwlhZGRxCTU2KCVyZGkpLCVyMTEKKworCWNtcHEJMTI4KzE2KCVyc3ApLCVyc2kKKworCW1vdnEJJXJheCwwKCVyZGkpCisJbW92cQklcmJ4LDgoJXJkaSkKKwltb3ZxCSVyY3gsMTYoJXJkaSkKKwltb3ZxCSVyZHgsMjQoJXJkaSkKKwltb3ZxCSVyOCwzMiglcmRpKQorCW1vdnEJJXI5LDQwKCVyZGkpCisJbW92cQklcjEwLDQ4KCVyZGkpCisJbW92cQklcjExLDU2KCVyZGkpCisJamIJLkxsb29wX3hvcAorCisJbW92cQkxMjgrMjQoJXJzcCksJXJzaQorCXZ6ZXJvdXBwZXIKKwltb3ZxCSglcnNpKSwlcjE1CisJbW92cQk4KCVyc2kpLCVyMTQKKwltb3ZxCTE2KCVyc2kpLCVyMTMKKwltb3ZxCTI0KCVyc2kpLCVyMTIKKwltb3ZxCTMyKCVyc2kpLCVyYnAKKwltb3ZxCTQwKCVyc2kpLCVyYngKKwlsZWFxCTQ4KCVyc2kpLCVyc3AKKy5MZXBpbG9ndWVfeG9wOgorCS5ieXRlCTB4ZjMsMHhjMworLnNpemUJc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wLC4tc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wCisudHlwZQlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdngsQGZ1bmN0aW9uCisuYWxpZ24JNjQKK3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX2F2eDoKKy5MYXZ4X3Nob3J0Y3V0OgorCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCW1vdnEJJXJzcCwlcjExCisJc2hscQkkNCwlcmR4CisJc3VicQkkMTYwLCVyc3AKKwlsZWFxCSglcnNpLCVyZHgsOCksJXJkeAorCWFuZHEJJC02NCwlcnNwCisJbW92cQklcmRpLDEyOCswKCVyc3ApCisJbW92cQklcnNpLDEyOCs4KCVyc3ApCisJbW92cQklcmR4LDEyOCsxNiglcnNwKQorCW1vdnEJJXIxMSwxMjgrMjQoJXJzcCkKKy5McHJvbG9ndWVfYXZ4OgorCisJdnplcm91cHBlcgorCW1vdnEJMCglcmRpKSwlcmF4CisJbW92cQk4KCVyZGkpLCVyYngKKwltb3ZxCTE2KCVyZGkpLCVyY3gKKwltb3ZxCTI0KCVyZGkpLCVyZHgKKwltb3ZxCTMyKCVyZGkpLCVyOAorCW1vdnEJNDAoJXJkaSksJXI5CisJbW92cQk0OCglcmRpKSwlcjEwCisJbW92cQk1NiglcmRpKSwlcjExCisJam1wCS5MbG9vcF9hdngKKy5hbGlnbgkxNgorLkxsb29wX2F2eDoKKwl2bW92ZHFhCUs1MTIrMTI4MCglcmlwKSwleG1tMTEKKwl2bW92ZHF1CTAoJXJzaSksJXhtbTAKKwlsZWFxCUs1MTIrMTI4KCVyaXApLCVyYnAKKwl2bW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJdm1vdmRxdQkzMiglcnNpKSwleG1tMgorCXZwc2h1ZmIJJXhtbTExLCV4bW0wLCV4bW0wCisJdm1vdmRxdQk0OCglcnNpKSwleG1tMworCXZwc2h1ZmIJJXhtbTExLCV4bW0xLCV4bW0xCisJdm1vdmRxdQk2NCglcnNpKSwleG1tNAorCXZwc2h1ZmIJJXhtbTExLCV4bW0yLCV4bW0yCisJdm1vdmRxdQk4MCglcnNpKSwleG1tNQorCXZwc2h1ZmIJJXhtbTExLCV4bW0zLCV4bW0zCisJdm1vdmRxdQk5NiglcnNpKSwleG1tNgorCXZwc2h1ZmIJJXhtbTExLCV4bW00LCV4bW00CisJdm1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwl2cHNodWZiCSV4bW0xMSwleG1tNSwleG1tNQorCXZwYWRkcQktMTI4KCVyYnApLCV4bW0wLCV4bW04CisJdnBzaHVmYgkleG1tMTEsJXhtbTYsJXhtbTYKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW05CisJdnBzaHVmYgkleG1tMTEsJXhtbTcsJXhtbTcKKwl2cGFkZHEJLTY0KCVyYnApLCV4bW0yLCV4bW0xMAorCXZwYWRkcQktMzIoJXJicCksJXhtbTMsJXhtbTExCisJdm1vdmRxYQkleG1tOCwwKCVyc3ApCisJdnBhZGRxCTAoJXJicCksJXhtbTQsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJdnBhZGRxCTMyKCVyYnApLCV4bW01LCV4bW05CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCisJdm1vdmRxYQkleG1tMTEsNDgoJXJzcCkKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTExCisJdm1vdmRxYQkleG1tOCw2NCglcnNwKQorCW1vdnEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tOSw4MCglcnNwKQorCW1vdnEJJXJieCwlcmRpCisJdm1vdmRxYQkleG1tMTAsOTYoJXJzcCkKKwl4b3JxCSVyY3gsJXJkaQorCXZtb3ZkcWEJJXhtbTExLDExMiglcnNwKQorCW1vdnEJJXI4LCVyMTMKKwlqbXAJLkxhdnhfMDBfNDcKKworLmFsaWduCTE2CisuTGF2eF8wMF80NzoKKwlhZGRxCSQyNTYsJXJicAorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW04CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTExCisJbW92cQklcjksJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyOCwlcjEzCisJeG9ycQklcjEwLCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0wLCV4bW0wCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmF4LCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkwKCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tNywleG1tMTEKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJdnBzbGxxCSQzLCV4bW03LCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCXZwYWRkcQkleG1tOCwleG1tMCwleG1tMAorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDE5LCV4bW03LCV4bW05CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk4KCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyOSwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTAsJXhtbTAKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJdnBhZGRxCS0xMjgoJXJicCksJXhtbTAsJXhtbTEwCisJeG9ycQklcmF4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwl2bW92ZHFhCSV4bW0xMCwwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tMTEKKwltb3ZxCSVyZHgsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjEwLCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTE2KCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tOAorCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHNybHEJJDcsJXhtbTEwLCV4bW0xMAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcjEwLCVyMTQKKwlhZGRxCSVyMTMsJXI5CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjExLCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJdnBzcmxxCSQ2LCV4bW0wLCV4bW0xMQorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKwl2cHNsbHEJJDMsJXhtbTAsJXhtbTEwCisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwl2cGFkZHEJJXhtbTgsJXhtbTEsJXhtbTEKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTAsJXhtbTkKKwl4b3JxCSVyYngsJXIxMworCXhvcnEJJXJkeCwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTI0KCVyc3ApLCVyOAorCW1vdnEJJXI5LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW0xMAorCXhvcnEJJXIxMCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI4LCVyYXgKKwlhZGRxCSVyMTUsJXI4CisJbW92cQklcmF4LCVyMTMKKwlhZGRxCSVyOCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMTYoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTExCisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDEsJXhtbTgsJXhtbTEwCisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOCwlcjE0CisJdnBzcmxxCSQ3LCV4bW04LCV4bW0xMQorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkzMiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyY3gsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMSwleG1tMTEKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJdnBzbGxxCSQzLCV4bW0xLCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCXZwYWRkcQkleG1tOCwleG1tMiwleG1tMgorCW1vdnEJJXJheCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tMSwleG1tOQorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTQwKCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyYngsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcjgsJXJkaQorCWFkZHEJJXIxMiwlcmN4CisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJdnBhZGRxCS02NCglcmJwKSwleG1tMiwleG1tMTAKKwl4b3JxCSVyOCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW0xMQorCW1vdnEJJXIxMSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXIxMCwlcjEzCisJeG9ycQklcmF4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0zLCV4bW0zCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmN4LCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTQ4KCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJkeCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMiwleG1tMTEKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCW1vdnEJJXI5LCVyMTMKKwlhZGRxCSVyYngsJXIxNAorCXZwc2xscQkkMywleG1tMiwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYngKKwl2cGFkZHEJJXhtbTgsJXhtbTMsJXhtbTMKKwltb3ZxCSVyMTAsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTIsJXhtbTkKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJieCwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk1NiglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tMywleG1tMworCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl2cGFkZHEJLTMyKCVyYnApLCV4bW0zLCV4bW0xMAorCXhvcnEJJXJjeCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDQ4KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tMTEKKwltb3ZxCSVyOSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTQsJXhtbTQKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyYXgsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTY0KCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMywleG1tMTEKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJdnBzbGxxCSQzLCV4bW0zLCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCXZwYWRkcQkleG1tOCwleG1tNCwleG1tNAorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDE5LCV4bW0zLCV4bW05CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk3MiglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjksJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl2cGFkZHEJJXhtbTExLCV4bW00LCV4bW00CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXZwYWRkcQkwKCVyYnApLCV4bW00LCV4bW0xMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJdm1vdmRxYQkleG1tMTAsNjQoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMAorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW0xMQorCW1vdnEJJXJkeCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXJjeCwlcjEzCisJeG9ycQklcjgsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTUsJXhtbTUKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyY3gsJXIxMgorCXhvcnEJJXJjeCwlcjEzCisJdnBzbGxxCSQ1NiwleG1tOCwleG1tOQorCWFkZHEJODAoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW04CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyMTEsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwl2cHNybHEJJDYsJXhtbTQsJXhtbTExCisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCW1vdnEJJXJieCwlcjEzCisJYWRkcQklcjksJXIxNAorCXZwc2xscQkkMywleG1tNCwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyOQorCXZwYWRkcQkleG1tOCwleG1tNSwleG1tNQorCW1vdnEJJXJjeCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tNCwleG1tOQorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXI5LCVyMTQKKwl2cHNsbHEJJDQyLCV4bW0xMCwleG1tMTAKKwlhbmRxCSVyYngsJXIxMgorCXhvcnEJJXJieCwlcjEzCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCWFkZHEJODgoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyZHgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTUsJXhtbTUKKwl4b3JxCSVyOSwlcjE0CisJYWRkcQklcjEzLCVyOAorCXZwYWRkcQkzMiglcmJwKSwleG1tNSwleG1tMTAKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDgwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyOAorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW0xMQorCW1vdnEJJXJieCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXJheCwlcjEzCisJeG9ycQklcmN4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW02LCV4bW02CisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJdnBzbGxxCSQ1NiwleG1tOCwleG1tOQorCWFkZHEJOTYoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW04CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHNybHEJJDcsJXhtbTEwLCV4bW0xMAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjksJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwl2cHNybHEJJDYsJXhtbTUsJXhtbTExCisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorCXZwc2xscQkkMywleG1tNSwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyZHgKKwl2cGFkZHEJJXhtbTgsJXhtbTYsJXhtbTYKKwltb3ZxCSVyYXgsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTUsJXhtbTkKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyZHgsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXIxMSwlcjEyCisJeG9ycQklcjExLCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQkxMDQoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJdnBzcmxxCSQ0MiwleG1tOSwleG1tOQorCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tNiwleG1tNgorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCisJeG9ycQklcjgsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDk2KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tMTEKKwltb3ZxCSVyMTEsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNworCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJdnBzcmxxCSQ3LCV4bW04LCV4bW0xMQorCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkxMTIoJXJzcCksJXJieAorCW1vdnEJJXJjeCwlcjE1CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tOAorCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnBzcmxxCSQ3LCV4bW0xMCwleG1tMTAKKwl4b3JxCSVyZHgsJXIxNQorCWFkZHEJJXIxMiwlcmJ4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcmR4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJdnBzcmxxCSQ2LCV4bW02LCV4bW0xMQorCWFkZHEJJXJieCwlcjkKKwlhZGRxCSVyZGksJXJieAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisJdnBzbGxxCSQzLCV4bW02LCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCXZwYWRkcQkleG1tOCwleG1tNywleG1tNworCW1vdnEJJXIxMCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tNiwleG1tOQorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwl2cHNsbHEJJDQyLCV4bW0xMCwleG1tMTAKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTEyMCglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNworCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTEwCisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMTEyKCVyc3ApCisJY21wYgkkMCwxMzUoJXJicCkKKwlqbmUJLkxhdnhfMDBfNDcKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwltb3ZxCSVyOSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcjgsJXIxMworCXhvcnEJJXIxMCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmF4LCVyMTQKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCWFkZHEJMCglcnNwKSwlcjExCisJbW92cQklcmF4LCVyMTUKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjE1CisJYWRkcQklcjEyLCVyMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyYXgsJXIxNAorCWFkZHEJJXIxMywlcjExCisJeG9ycQklcmJ4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcjExLCVyZHgKKwlhZGRxCSVyZGksJXIxMQorCW1vdnEJJXJkeCwlcjEzCisJYWRkcQklcjExLCVyMTQKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyMTEKKwltb3ZxCSVyOCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjExLCVyMTQKKwlhbmRxCSVyZHgsJXIxMgorCXhvcnEJJXJkeCwlcjEzCisJYWRkcQk4KCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjEwCisJbW92cQklcmR4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCWFuZHEJJXJjeCwlcjEyCisJeG9ycQklcmN4LCVyMTMKKwlhZGRxCTE2KCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXIxMCwlcjE0CisJYWRkcQklcjEzLCVyOQorCXhvcnEJJXIxMSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJbW92cQklcmJ4LCVyMTMKKwlhZGRxCSVyOSwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCWFkZHEJMjQoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXhvcnEJJXJkeCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwlhZGRxCTMyKCVyc3ApLCVyZHgKKwltb3ZxCSVyOCwlcjE1CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjE1CisJYWRkcQklcjEyLCVyZHgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJkeCwlcjExCisJYWRkcQklcmRpLCVyZHgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJbW92cQklcmF4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJYWRkcQk0MCglcnNwKSwlcmN4CisJbW92cQklcmR4LCVyZGkKKwl4b3JxCSVyYngsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXI4LCVyZGkKKwlhZGRxCSVyMTIsJXJjeAorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl4b3JxCSVyOCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmN4CisJbW92cQklcjExLCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmN4LCVyMTQKKwlhbmRxCSVyMTAsJXIxMgorCXhvcnEJJXIxMCwlcjEzCisJYWRkcQk0OCglcnNwKSwlcmJ4CisJbW92cQklcmN4LCVyMTUKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJkeCwlcjE1CisJYWRkcQklcjEyLCVyYngKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJeG9ycQklcmR4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmJ4LCVyOQorCWFkZHEJJXJkaSwlcmJ4CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmJ4CisJbW92cQklcjEwLCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyYngsJXIxNAorCWFuZHEJJXI5LCVyMTIKKwl4b3JxCSVyOSwlcjEzCisJYWRkcQk1NiglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyYngsJXIxNAorCWFkZHEJJXIxMywlcmF4CisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJbW92cQklcjksJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJheCwlcjE0CisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwlhZGRxCTY0KCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXhvcnEJJXIxMCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJheCwlcjE0CisJYWRkcQklcjEzLCVyMTEKKwl4b3JxCSVyYngsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJbW92cQklcmR4LCVyMTMKKwlhZGRxCSVyMTEsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyZHgsJXIxMworCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwlhZGRxCTcyKCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjEwCisJbW92cQklcmR4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCWFuZHEJJXJjeCwlcjEyCisJeG9ycQklcmN4LCVyMTMKKwlhZGRxCTgwKCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXIxMCwlcjE0CisJYWRkcQklcjEzLCVyOQorCXhvcnEJJXIxMSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJbW92cQklcmJ4LCVyMTMKKwlhZGRxCSVyOSwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCWFkZHEJODgoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXhvcnEJJXJkeCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwlhZGRxCTk2KCVyc3ApLCVyZHgKKwltb3ZxCSVyOCwlcjE1CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjE1CisJYWRkcQklcjEyLCVyZHgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJkeCwlcjExCisJYWRkcQklcmRpLCVyZHgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJbW92cQklcmF4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJYWRkcQkxMDQoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJeG9ycQklcmJ4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJeG9ycQklcjgsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCW1vdnEJJXIxMSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyMTMKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCWFkZHEJMTEyKCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJjeCwlcjE0CisJYWRkcQklcjEzLCVyYngKKwl4b3JxCSVyZHgsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwltb3ZxCSVyOSwlcjEzCisJYWRkcQklcmJ4LCVyMTQKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYngKKwltb3ZxCSVyMTAsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJieCwlcjE0CisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwlhZGRxCTEyMCglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyYngsJXIxNAorCWFkZHEJJXIxMywlcmF4CisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJbW92cQkxMjgrMCglcnNwKSwlcmRpCisJbW92cQklcjE0LCVyYXgKKworCWFkZHEJMCglcmRpKSwlcmF4CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCWFkZHEJOCglcmRpKSwlcmJ4CisJYWRkcQkxNiglcmRpKSwlcmN4CisJYWRkcQkyNCglcmRpKSwlcmR4CisJYWRkcQkzMiglcmRpKSwlcjgKKwlhZGRxCTQwKCVyZGkpLCVyOQorCWFkZHEJNDgoJXJkaSksJXIxMAorCWFkZHEJNTYoJXJkaSksJXIxMQorCisJY21wcQkxMjgrMTYoJXJzcCksJXJzaQorCisJbW92cQklcmF4LDAoJXJkaSkKKwltb3ZxCSVyYngsOCglcmRpKQorCW1vdnEJJXJjeCwxNiglcmRpKQorCW1vdnEJJXJkeCwyNCglcmRpKQorCW1vdnEJJXI4LDMyKCVyZGkpCisJbW92cQklcjksNDAoJXJkaSkKKwltb3ZxCSVyMTAsNDgoJXJkaSkKKwltb3ZxCSVyMTEsNTYoJXJkaSkKKwlqYgkuTGxvb3BfYXZ4CisKKwltb3ZxCTEyOCsyNCglcnNwKSwlcnNpCisJdnplcm91cHBlcgorCW1vdnEJKCVyc2kpLCVyMTUKKwltb3ZxCTgoJXJzaSksJXIxNAorCW1vdnEJMTYoJXJzaSksJXIxMworCW1vdnEJMjQoJXJzaSksJXIxMgorCW1vdnEJMzIoJXJzaSksJXJicAorCW1vdnEJNDAoJXJzaSksJXJieAorCWxlYXEJNDgoJXJzaSksJXJzcAorLkxlcGlsb2d1ZV9hdng6CisJLmJ5dGUJMHhmMywweGMzCisuc2l6ZQlzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdngsLi1zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdngKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGU5OGEzCi0tLSAvZGV2L251bGwKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LlMKQEAgLTAsMCArMSw5NjkgQEAKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorLmZpbGUJImNoYWNoYS14ODYuUyIKKy50ZXh0CisuZ2xvYmwJX0NoYUNoYTIwX2N0cjMyCisucHJpdmF0ZV9leHRlcm4JX0NoYUNoYTIwX2N0cjMyCisuYWxpZ24JNAorX0NoYUNoYTIwX2N0cjMyOgorTF9DaGFDaGEyMF9jdHIzMl9iZWdpbjoKKwlwdXNobAklZWJwCisJcHVzaGwJJWVieAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCisJeG9ybAklZWF4LCVlYXgKKwljbXBsCTI4KCVlc3ApLCVlYXgKKwlqZQlMMDAwbm9fZGF0YQorCWNhbGwJTHBpY19wb2ludAorTHBpY19wb2ludDoKKwlwb3BsCSVlYXgKKwltb3ZsCUxfT1BFTlNTTF9pYTMyY2FwX1Akbm9uX2xhenlfcHRyLUxwaWNfcG9pbnQoJWVheCksJWVicAorCXRlc3RsCSQxNjc3NzIxNiwoJWVicCkKKwlqeglMMDAxeDg2CisJdGVzdGwJJDUxMiw0KCVlYnApCisJanoJTDAwMXg4NgorCWptcAlMc3NzZTNfc2hvcnRjdXQKK0wwMDF4ODY6CisJbW92bAkzMiglZXNwKSwlZXNpCisJbW92bAkzNiglZXNwKSwlZWRpCisJc3VibAkkMTMyLCVlc3AKKwltb3ZsCSglZXNpKSwlZWF4CisJbW92bAk0KCVlc2kpLCVlYngKKwltb3ZsCTgoJWVzaSksJWVjeAorCW1vdmwJMTIoJWVzaSksJWVkeAorCW1vdmwJJWVheCw4MCglZXNwKQorCW1vdmwJJWVieCw4NCglZXNwKQorCW1vdmwJJWVjeCw4OCglZXNwKQorCW1vdmwJJWVkeCw5MiglZXNwKQorCW1vdmwJMTYoJWVzaSksJWVheAorCW1vdmwJMjAoJWVzaSksJWVieAorCW1vdmwJMjQoJWVzaSksJWVjeAorCW1vdmwJMjgoJWVzaSksJWVkeAorCW1vdmwJJWVheCw5NiglZXNwKQorCW1vdmwJJWVieCwxMDAoJWVzcCkKKwltb3ZsCSVlY3gsMTA0KCVlc3ApCisJbW92bAklZWR4LDEwOCglZXNwKQorCW1vdmwJKCVlZGkpLCVlYXgKKwltb3ZsCTQoJWVkaSksJWVieAorCW1vdmwJOCglZWRpKSwlZWN4CisJbW92bAkxMiglZWRpKSwlZWR4CisJc3VibAkkMSwlZWF4CisJbW92bAklZWF4LDExMiglZXNwKQorCW1vdmwJJWVieCwxMTYoJWVzcCkKKwltb3ZsCSVlY3gsMTIwKCVlc3ApCisJbW92bAklZWR4LDEyNCglZXNwKQorCWptcAlMMDAyZW50cnkKKy5hbGlnbgk0LDB4OTAKK0wwMDNvdXRlcl9sb29wOgorCW1vdmwJJWVieCwxNTYoJWVzcCkKKwltb3ZsCSVlYXgsMTUyKCVlc3ApCisJbW92bAklZWN4LDE2MCglZXNwKQorTDAwMmVudHJ5OgorCW1vdmwJJDE2MzQ3NjA4MDUsJWVheAorCW1vdmwJJDg1Nzc2MDg3OCw0KCVlc3ApCisJbW92bAkkMjAzNjQ3NzIzNCw4KCVlc3ApCisJbW92bAkkMTc5NzI4NTIzNiwxMiglZXNwKQorCW1vdmwJODQoJWVzcCksJWVieAorCW1vdmwJODgoJWVzcCksJWVicAorCW1vdmwJMTA0KCVlc3ApLCVlY3gKKwltb3ZsCTEwOCglZXNwKSwlZXNpCisJbW92bAkxMTYoJWVzcCksJWVkeAorCW1vdmwJMTIwKCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwltb3ZsCSVlYnAsMjQoJWVzcCkKKwltb3ZsCSVlY3gsNDAoJWVzcCkKKwltb3ZsCSVlc2ksNDQoJWVzcCkKKwltb3ZsCSVlZHgsNTIoJWVzcCkKKwltb3ZsCSVlZGksNTYoJWVzcCkKKwltb3ZsCTkyKCVlc3ApLCVlYngKKwltb3ZsCTEyNCglZXNwKSwlZWRpCisJbW92bAkxMTIoJWVzcCksJWVkeAorCW1vdmwJODAoJWVzcCksJWVicAorCW1vdmwJOTYoJWVzcCksJWVjeAorCW1vdmwJMTAwKCVlc3ApLCVlc2kKKwlhZGRsCSQxLCVlZHgKKwltb3ZsCSVlYngsMjgoJWVzcCkKKwltb3ZsCSVlZGksNjAoJWVzcCkKKwltb3ZsCSVlZHgsMTEyKCVlc3ApCisJbW92bAkkMTAsJWVieAorCWptcAlMMDA0bG9vcAorLmFsaWduCTQsMHg5MAorTDAwNGxvb3A6CisJYWRkbAklZWJwLCVlYXgKKwltb3ZsCSVlYngsMTI4KCVlc3ApCisJbW92bAklZWJwLCVlYngKKwl4b3JsCSVlYXgsJWVkeAorCXJvbGwJJDE2LCVlZHgKKwlhZGRsCSVlZHgsJWVjeAorCXhvcmwJJWVjeCwlZWJ4CisJbW92bAk1MiglZXNwKSwlZWRpCisJcm9sbAkkMTIsJWVieAorCW1vdmwJMjAoJWVzcCksJWVicAorCWFkZGwJJWVieCwlZWF4CisJeG9ybAklZWF4LCVlZHgKKwltb3ZsCSVlYXgsKCVlc3ApCisJcm9sbAkkOCwlZWR4CisJbW92bAk0KCVlc3ApLCVlYXgKKwlhZGRsCSVlZHgsJWVjeAorCW1vdmwJJWVkeCw0OCglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwlyb2xsCSQ3LCVlYngKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVjeCwzMiglZXNwKQorCXJvbGwJJDE2LCVlZGkKKwltb3ZsCSVlYngsMTYoJWVzcCkKKwlhZGRsCSVlZGksJWVzaQorCW1vdmwJNDAoJWVzcCksJWVjeAorCXhvcmwJJWVzaSwlZWJwCisJbW92bAk1NiglZXNwKSwlZWR4CisJcm9sbAkkMTIsJWVicAorCW1vdmwJMjQoJWVzcCksJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlYXgsNCglZXNwKQorCXJvbGwJJDgsJWVkaQorCW1vdmwJOCglZXNwKSwlZWF4CisJYWRkbAklZWRpLCVlc2kKKwltb3ZsCSVlZGksNTIoJWVzcCkKKwl4b3JsCSVlc2ksJWVicAorCWFkZGwJJWVieCwlZWF4CisJcm9sbAkkNywlZWJwCisJeG9ybAklZWF4LCVlZHgKKwltb3ZsCSVlc2ksMzYoJWVzcCkKKwlyb2xsCSQxNiwlZWR4CisJbW92bAklZWJwLDIwKCVlc3ApCisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCTQ0KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCW1vdmwJNjAoJWVzcCksJWVkaQorCXJvbGwJJDEyLCVlYngKKwltb3ZsCTI4KCVlc3ApLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZWF4LDgoJWVzcCkKKwlyb2xsCSQ4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlYXgKKwlhZGRsCSVlZHgsJWVjeAorCW1vdmwJJWVkeCw1NiglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwlyb2xsCSQ3LCVlYngKKwl4b3JsCSVlYXgsJWVkaQorCXJvbGwJJDE2LCVlZGkKKwltb3ZsCSVlYngsMjQoJWVzcCkKKwlhZGRsCSVlZGksJWVzaQorCXhvcmwJJWVzaSwlZWJwCisJcm9sbAkkMTIsJWVicAorCW1vdmwJMjAoJWVzcCksJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlYXgsMTIoJWVzcCkKKwlyb2xsCSQ4LCVlZGkKKwltb3ZsCSglZXNwKSwlZWF4CisJYWRkbAklZWRpLCVlc2kKKwltb3ZsCSVlZGksJWVkeAorCXhvcmwJJWVzaSwlZWJwCisJYWRkbAklZWJ4LCVlYXgKKwlyb2xsCSQ3LCVlYnAKKwl4b3JsCSVlYXgsJWVkeAorCXJvbGwJJDE2LCVlZHgKKwltb3ZsCSVlYnAsMjgoJWVzcCkKKwlhZGRsCSVlZHgsJWVjeAorCXhvcmwJJWVjeCwlZWJ4CisJbW92bAk0OCglZXNwKSwlZWRpCisJcm9sbAkkMTIsJWVieAorCW1vdmwJMjQoJWVzcCksJWVicAorCWFkZGwJJWVieCwlZWF4CisJeG9ybAklZWF4LCVlZHgKKwltb3ZsCSVlYXgsKCVlc3ApCisJcm9sbAkkOCwlZWR4CisJbW92bAk0KCVlc3ApLCVlYXgKKwlhZGRsCSVlZHgsJWVjeAorCW1vdmwJJWVkeCw2MCglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwlyb2xsCSQ3LCVlYngKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVjeCw0MCglZXNwKQorCXJvbGwJJDE2LCVlZGkKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwlhZGRsCSVlZGksJWVzaQorCW1vdmwJMzIoJWVzcCksJWVjeAorCXhvcmwJJWVzaSwlZWJwCisJbW92bAk1MiglZXNwKSwlZWR4CisJcm9sbAkkMTIsJWVicAorCW1vdmwJMjgoJWVzcCksJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlYXgsNCglZXNwKQorCXJvbGwJJDgsJWVkaQorCW1vdmwJOCglZXNwKSwlZWF4CisJYWRkbAklZWRpLCVlc2kKKwltb3ZsCSVlZGksNDgoJWVzcCkKKwl4b3JsCSVlc2ksJWVicAorCWFkZGwJJWVieCwlZWF4CisJcm9sbAkkNywlZWJwCisJeG9ybAklZWF4LCVlZHgKKwltb3ZsCSVlc2ksNDQoJWVzcCkKKwlyb2xsCSQxNiwlZWR4CisJbW92bAklZWJwLDI0KCVlc3ApCisJYWRkbAklZWR4LCVlY3gKKwltb3ZsCTM2KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCW1vdmwJNTYoJWVzcCksJWVkaQorCXJvbGwJJDEyLCVlYngKKwltb3ZsCTE2KCVlc3ApLCVlYnAKKwlhZGRsCSVlYngsJWVheAorCXhvcmwJJWVheCwlZWR4CisJbW92bAklZWF4LDgoJWVzcCkKKwlyb2xsCSQ4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlYXgKKwlhZGRsCSVlZHgsJWVjeAorCW1vdmwJJWVkeCw1MiglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwlyb2xsCSQ3LCVlYngKKwl4b3JsCSVlYXgsJWVkaQorCXJvbGwJJDE2LCVlZGkKKwltb3ZsCSVlYngsMjgoJWVzcCkKKwlhZGRsCSVlZGksJWVzaQorCXhvcmwJJWVzaSwlZWJwCisJbW92bAk0OCglZXNwKSwlZWR4CisJcm9sbAkkMTIsJWVicAorCW1vdmwJMTI4KCVlc3ApLCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWF4LDEyKCVlc3ApCisJcm9sbAkkOCwlZWRpCisJbW92bAkoJWVzcCksJWVheAorCWFkZGwJJWVkaSwlZXNpCisJbW92bAklZWRpLDU2KCVlc3ApCisJeG9ybAklZXNpLCVlYnAKKwlyb2xsCSQ3LCVlYnAKKwlkZWNsCSVlYngKKwlqbnoJTDAwNGxvb3AKKwltb3ZsCTE2MCglZXNwKSwlZWJ4CisJYWRkbAkkMTYzNDc2MDgwNSwlZWF4CisJYWRkbAk4MCglZXNwKSwlZWJwCisJYWRkbAk5NiglZXNwKSwlZWN4CisJYWRkbAkxMDAoJWVzcCksJWVzaQorCWNtcGwJJDY0LCVlYngKKwlqYglMMDA1dGFpbAorCW1vdmwJMTU2KCVlc3ApLCVlYngKKwlhZGRsCTExMiglZXNwKSwlZWR4CisJYWRkbAkxMjAoJWVzcCksJWVkaQorCXhvcmwJKCVlYngpLCVlYXgKKwl4b3JsCTE2KCVlYngpLCVlYnAKKwltb3ZsCSVlYXgsKCVlc3ApCisJbW92bAkxNTIoJWVzcCksJWVheAorCXhvcmwJMzIoJWVieCksJWVjeAorCXhvcmwJMzYoJWVieCksJWVzaQorCXhvcmwJNDgoJWVieCksJWVkeAorCXhvcmwJNTYoJWVieCksJWVkaQorCW1vdmwJJWVicCwxNiglZWF4KQorCW1vdmwJJWVjeCwzMiglZWF4KQorCW1vdmwJJWVzaSwzNiglZWF4KQorCW1vdmwJJWVkeCw0OCglZWF4KQorCW1vdmwJJWVkaSw1NiglZWF4KQorCW1vdmwJNCglZXNwKSwlZWJwCisJbW92bAk4KCVlc3ApLCVlY3gKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwltb3ZsCTIwKCVlc3ApLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwlhZGRsCSQ4NTc3NjA4NzgsJWVicAorCWFkZGwJJDIwMzY0NzcyMzQsJWVjeAorCWFkZGwJJDE3OTcyODUyMzYsJWVzaQorCWFkZGwJODQoJWVzcCksJWVkeAorCWFkZGwJODgoJWVzcCksJWVkaQorCXhvcmwJNCglZWJ4KSwlZWJwCisJeG9ybAk4KCVlYngpLCVlY3gKKwl4b3JsCTEyKCVlYngpLCVlc2kKKwl4b3JsCTIwKCVlYngpLCVlZHgKKwl4b3JsCTI0KCVlYngpLCVlZGkKKwltb3ZsCSVlYnAsNCglZWF4KQorCW1vdmwJJWVjeCw4KCVlYXgpCisJbW92bAklZXNpLDEyKCVlYXgpCisJbW92bAklZWR4LDIwKCVlYXgpCisJbW92bAklZWRpLDI0KCVlYXgpCisJbW92bAkyOCglZXNwKSwlZWJwCisJbW92bAk0MCglZXNwKSwlZWN4CisJbW92bAk0NCglZXNwKSwlZXNpCisJbW92bAk1MiglZXNwKSwlZWR4CisJbW92bAk2MCglZXNwKSwlZWRpCisJYWRkbAk5MiglZXNwKSwlZWJwCisJYWRkbAkxMDQoJWVzcCksJWVjeAorCWFkZGwJMTA4KCVlc3ApLCVlc2kKKwlhZGRsCTExNiglZXNwKSwlZWR4CisJYWRkbAkxMjQoJWVzcCksJWVkaQorCXhvcmwJMjgoJWVieCksJWVicAorCXhvcmwJNDAoJWVieCksJWVjeAorCXhvcmwJNDQoJWVieCksJWVzaQorCXhvcmwJNTIoJWVieCksJWVkeAorCXhvcmwJNjAoJWVieCksJWVkaQorCWxlYWwJNjQoJWVieCksJWVieAorCW1vdmwJJWVicCwyOCglZWF4KQorCW1vdmwJKCVlc3ApLCVlYnAKKwltb3ZsCSVlY3gsNDAoJWVheCkKKwltb3ZsCTE2MCglZXNwKSwlZWN4CisJbW92bAklZXNpLDQ0KCVlYXgpCisJbW92bAklZWR4LDUyKCVlYXgpCisJbW92bAklZWRpLDYwKCVlYXgpCisJbW92bAklZWJwLCglZWF4KQorCWxlYWwJNjQoJWVheCksJWVheAorCXN1YmwJJDY0LCVlY3gKKwlqbnoJTDAwM291dGVyX2xvb3AKKwlqbXAJTDAwNmRvbmUKK0wwMDV0YWlsOgorCWFkZGwJMTEyKCVlc3ApLCVlZHgKKwlhZGRsCTEyMCglZXNwKSwlZWRpCisJbW92bAklZWF4LCglZXNwKQorCW1vdmwJJWVicCwxNiglZXNwKQorCW1vdmwJJWVjeCwzMiglZXNwKQorCW1vdmwJJWVzaSwzNiglZXNwKQorCW1vdmwJJWVkeCw0OCglZXNwKQorCW1vdmwJJWVkaSw1NiglZXNwKQorCW1vdmwJNCglZXNwKSwlZWJwCisJbW92bAk4KCVlc3ApLCVlY3gKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwltb3ZsCTIwKCVlc3ApLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwlhZGRsCSQ4NTc3NjA4NzgsJWVicAorCWFkZGwJJDIwMzY0NzcyMzQsJWVjeAorCWFkZGwJJDE3OTcyODUyMzYsJWVzaQorCWFkZGwJODQoJWVzcCksJWVkeAorCWFkZGwJODgoJWVzcCksJWVkaQorCW1vdmwJJWVicCw0KCVlc3ApCisJbW92bAklZWN4LDgoJWVzcCkKKwltb3ZsCSVlc2ksMTIoJWVzcCkKKwltb3ZsCSVlZHgsMjAoJWVzcCkKKwltb3ZsCSVlZGksMjQoJWVzcCkKKwltb3ZsCTI4KCVlc3ApLCVlYnAKKwltb3ZsCTQwKCVlc3ApLCVlY3gKKwltb3ZsCTQ0KCVlc3ApLCVlc2kKKwltb3ZsCTUyKCVlc3ApLCVlZHgKKwltb3ZsCTYwKCVlc3ApLCVlZGkKKwlhZGRsCTkyKCVlc3ApLCVlYnAKKwlhZGRsCTEwNCglZXNwKSwlZWN4CisJYWRkbAkxMDgoJWVzcCksJWVzaQorCWFkZGwJMTE2KCVlc3ApLCVlZHgKKwlhZGRsCTEyNCglZXNwKSwlZWRpCisJbW92bAklZWJwLDI4KCVlc3ApCisJbW92bAkxNTYoJWVzcCksJWVicAorCW1vdmwJJWVjeCw0MCglZXNwKQorCW1vdmwJMTUyKCVlc3ApLCVlY3gKKwltb3ZsCSVlc2ksNDQoJWVzcCkKKwl4b3JsCSVlc2ksJWVzaQorCW1vdmwJJWVkeCw1MiglZXNwKQorCW1vdmwJJWVkaSw2MCglZXNwKQorCXhvcmwJJWVheCwlZWF4CisJeG9ybAklZWR4LCVlZHgKK0wwMDd0YWlsX2xvb3A6CisJbW92YgkoJWVzaSwlZWJwLDEpLCVhbAorCW1vdmIJKCVlc3AsJWVzaSwxKSwlZGwKKwlsZWFsCTEoJWVzaSksJWVzaQorCXhvcmIJJWRsLCVhbAorCW1vdmIJJWFsLC0xKCVlY3gsJWVzaSwxKQorCWRlY2wJJWVieAorCWpueglMMDA3dGFpbF9sb29wCitMMDA2ZG9uZToKKwlhZGRsCSQxMzIsJWVzcAorTDAwMG5vX2RhdGE6CisJcG9wbAklZWRpCisJcG9wbAklZXNpCisJcG9wbAklZWJ4CisJcG9wbAklZWJwCisJcmV0CisuZ2xvYmwJX0NoYUNoYTIwX3Nzc2UzCisucHJpdmF0ZV9leHRlcm4JX0NoYUNoYTIwX3Nzc2UzCisuYWxpZ24JNAorX0NoYUNoYTIwX3Nzc2UzOgorTF9DaGFDaGEyMF9zc3NlM19iZWdpbjoKKwlwdXNobAklZWJwCisJcHVzaGwJJWVieAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCitMc3NzZTNfc2hvcnRjdXQ6CisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAkyNCglZXNwKSwlZXNpCisJbW92bAkyOCglZXNwKSwlZWN4CisJbW92bAkzMiglZXNwKSwlZWR4CisJbW92bAkzNiglZXNwKSwlZWJ4CisJbW92bAklZXNwLCVlYnAKKwlzdWJsCSQ1MjQsJWVzcAorCWFuZGwJJC02NCwlZXNwCisJbW92bAklZWJwLDUxMiglZXNwKQorCWxlYWwJTHNzc2UzX2RhdGEtTHBpY19wb2ludCglZWF4KSwlZWF4CisJbW92ZHF1CSglZWJ4KSwleG1tMworCWNtcGwJJDI1NiwlZWN4CisJamIJTDAwODF4CisJbW92bAklZWR4LDUxNiglZXNwKQorCW1vdmwJJWVieCw1MjAoJWVzcCkKKwlzdWJsCSQyNTYsJWVjeAorCWxlYWwJMzg0KCVlc3ApLCVlYnAKKwltb3ZkcXUJKCVlZHgpLCV4bW03CisJcHNodWZkCSQwLCV4bW0zLCV4bW0wCisJcHNodWZkCSQ4NSwleG1tMywleG1tMQorCXBzaHVmZAkkMTcwLCV4bW0zLCV4bW0yCisJcHNodWZkCSQyNTUsJXhtbTMsJXhtbTMKKwlwYWRkZAk0OCglZWF4KSwleG1tMAorCXBzaHVmZAkkMCwleG1tNywleG1tNAorCXBzaHVmZAkkODUsJXhtbTcsJXhtbTUKKwlwc3ViZAk2NCglZWF4KSwleG1tMAorCXBzaHVmZAkkMTcwLCV4bW03LCV4bW02CisJcHNodWZkCSQyNTUsJXhtbTcsJXhtbTcKKwltb3ZkcWEJJXhtbTAsNjQoJWVicCkKKwltb3ZkcWEJJXhtbTEsODAoJWVicCkKKwltb3ZkcWEJJXhtbTIsOTYoJWVicCkKKwltb3ZkcWEJJXhtbTMsMTEyKCVlYnApCisJbW92ZHF1CTE2KCVlZHgpLCV4bW0zCisJbW92ZHFhCSV4bW00LC02NCglZWJwKQorCW1vdmRxYQkleG1tNSwtNDgoJWVicCkKKwltb3ZkcWEJJXhtbTYsLTMyKCVlYnApCisJbW92ZHFhCSV4bW03LC0xNiglZWJwKQorCW1vdmRxYQkzMiglZWF4KSwleG1tNworCWxlYWwJMTI4KCVlc3ApLCVlYngKKwlwc2h1ZmQJJDAsJXhtbTMsJXhtbTAKKwlwc2h1ZmQJJDg1LCV4bW0zLCV4bW0xCisJcHNodWZkCSQxNzAsJXhtbTMsJXhtbTIKKwlwc2h1ZmQJJDI1NSwleG1tMywleG1tMworCXBzaHVmZAkkMCwleG1tNywleG1tNAorCXBzaHVmZAkkODUsJXhtbTcsJXhtbTUKKwlwc2h1ZmQJJDE3MCwleG1tNywleG1tNgorCXBzaHVmZAkkMjU1LCV4bW03LCV4bW03CisJbW92ZHFhCSV4bW0wLCglZWJwKQorCW1vdmRxYQkleG1tMSwxNiglZWJwKQorCW1vdmRxYQkleG1tMiwzMiglZWJwKQorCW1vdmRxYQkleG1tMyw0OCglZWJwKQorCW1vdmRxYQkleG1tNCwtMTI4KCVlYnApCisJbW92ZHFhCSV4bW01LC0xMTIoJWVicCkKKwltb3ZkcWEJJXhtbTYsLTk2KCVlYnApCisJbW92ZHFhCSV4bW03LC04MCglZWJwKQorCWxlYWwJMTI4KCVlc2kpLCVlc2kKKwlsZWFsCTEyOCglZWRpKSwlZWRpCisJam1wCUwwMDlvdXRlcl9sb29wCisuYWxpZ24JNCwweDkwCitMMDA5b3V0ZXJfbG9vcDoKKwltb3ZkcWEJLTExMiglZWJwKSwleG1tMQorCW1vdmRxYQktOTYoJWVicCksJXhtbTIKKwltb3ZkcWEJLTgwKCVlYnApLCV4bW0zCisJbW92ZHFhCS00OCglZWJwKSwleG1tNQorCW1vdmRxYQktMzIoJWVicCksJXhtbTYKKwltb3ZkcWEJLTE2KCVlYnApLCV4bW03CisJbW92ZHFhCSV4bW0xLC0xMTIoJWVieCkKKwltb3ZkcWEJJXhtbTIsLTk2KCVlYngpCisJbW92ZHFhCSV4bW0zLC04MCglZWJ4KQorCW1vdmRxYQkleG1tNSwtNDgoJWVieCkKKwltb3ZkcWEJJXhtbTYsLTMyKCVlYngpCisJbW92ZHFhCSV4bW03LC0xNiglZWJ4KQorCW1vdmRxYQkzMiglZWJwKSwleG1tMgorCW1vdmRxYQk0OCglZWJwKSwleG1tMworCW1vdmRxYQk2NCglZWJwKSwleG1tNAorCW1vdmRxYQk4MCglZWJwKSwleG1tNQorCW1vdmRxYQk5NiglZWJwKSwleG1tNgorCW1vdmRxYQkxMTIoJWVicCksJXhtbTcKKwlwYWRkZAk2NCglZWF4KSwleG1tNAorCW1vdmRxYQkleG1tMiwzMiglZWJ4KQorCW1vdmRxYQkleG1tMyw0OCglZWJ4KQorCW1vdmRxYQkleG1tNCw2NCglZWJ4KQorCW1vdmRxYQkleG1tNSw4MCglZWJ4KQorCW1vdmRxYQkleG1tNiw5NiglZWJ4KQorCW1vdmRxYQkleG1tNywxMTIoJWVieCkKKwltb3ZkcWEJJXhtbTQsNjQoJWVicCkKKwltb3ZkcWEJLTEyOCglZWJwKSwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tNgorCW1vdmRxYQktNjQoJWVicCksJXhtbTMKKwltb3ZkcWEJKCVlYnApLCV4bW00CisJbW92ZHFhCTE2KCVlYnApLCV4bW01CisJbW92bAkkMTAsJWVkeAorCW5vcAorLmFsaWduCTQsMHg5MAorTDAxMGxvb3A6CisJcGFkZGQJJXhtbTMsJXhtbTAKKwltb3ZkcWEJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0wLCV4bW02CisJcHNodWZiCSglZWF4KSwleG1tNgorCXBhZGRkCSV4bW02LCV4bW00CisJcHhvcgkleG1tNCwleG1tMgorCW1vdmRxYQktNDgoJWVieCksJXhtbTMKKwltb3ZkcWEJJXhtbTIsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTIKKwlwc3JsZAkkMjAsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTIKKwltb3ZkcWEJLTExMiglZWJ4KSwleG1tMQorCXBhZGRkCSV4bW0yLCV4bW0wCisJbW92ZHFhCTgwKCVlYngpLCV4bW03CisJcHhvcgkleG1tMCwleG1tNgorCW1vdmRxYQkleG1tMCwtMTI4KCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW02CisJcGFkZGQJJXhtbTYsJXhtbTQKKwltb3ZkcWEJJXhtbTYsNjQoJWVieCkKKwlweG9yCSV4bW00LCV4bW0yCisJcGFkZGQJJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTIsJXhtbTAKKwlwc2xsZAkkNywleG1tMgorCXBzcmxkCSQyNSwleG1tMAorCXB4b3IJJXhtbTEsJXhtbTcKKwlwb3IJJXhtbTAsJXhtbTIKKwltb3ZkcWEJJXhtbTQsKCVlYngpCisJcHNodWZiCSglZWF4KSwleG1tNworCW1vdmRxYQkleG1tMiwtNjQoJWVieCkKKwlwYWRkZAkleG1tNywleG1tNQorCW1vdmRxYQkzMiglZWJ4KSwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTMKKwltb3ZkcWEJLTMyKCVlYngpLCV4bW0yCisJbW92ZHFhCSV4bW0zLCV4bW0wCisJcHNsbGQJJDEyLCV4bW0zCisJcHNybGQJJDIwLCV4bW0wCisJcG9yCSV4bW0wLCV4bW0zCisJbW92ZHFhCS05NiglZWJ4KSwleG1tMAorCXBhZGRkCSV4bW0zLCV4bW0xCisJbW92ZHFhCTk2KCVlYngpLCV4bW02CisJcHhvcgkleG1tMSwleG1tNworCW1vdmRxYQkleG1tMSwtMTEyKCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW03CisJcGFkZGQJJXhtbTcsJXhtbTUKKwltb3ZkcWEJJXhtbTcsODAoJWVieCkKKwlweG9yCSV4bW01LCV4bW0zCisJcGFkZGQJJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTMsJXhtbTEKKwlwc2xsZAkkNywleG1tMworCXBzcmxkCSQyNSwleG1tMQorCXB4b3IJJXhtbTAsJXhtbTYKKwlwb3IJJXhtbTEsJXhtbTMKKwltb3ZkcWEJJXhtbTUsMTYoJWVieCkKKwlwc2h1ZmIJKCVlYXgpLCV4bW02CisJbW92ZHFhCSV4bW0zLC00OCglZWJ4KQorCXBhZGRkCSV4bW02LCV4bW00CisJbW92ZHFhCTQ4KCVlYngpLCV4bW01CisJcHhvcgkleG1tNCwleG1tMgorCW1vdmRxYQktMTYoJWVieCksJXhtbTMKKwltb3ZkcWEJJXhtbTIsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTIKKwlwc3JsZAkkMjAsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTIKKwltb3ZkcWEJLTgwKCVlYngpLCV4bW0xCisJcGFkZGQJJXhtbTIsJXhtbTAKKwltb3ZkcWEJMTEyKCVlYngpLCV4bW03CisJcHhvcgkleG1tMCwleG1tNgorCW1vdmRxYQkleG1tMCwtOTYoJWVieCkKKwlwc2h1ZmIJMTYoJWVheCksJXhtbTYKKwlwYWRkZAkleG1tNiwleG1tNAorCW1vdmRxYQkleG1tNiw5NiglZWJ4KQorCXB4b3IJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQkleG1tMiwleG1tMAorCXBzbGxkCSQ3LCV4bW0yCisJcHNybGQJJDI1LCV4bW0wCisJcHhvcgkleG1tMSwleG1tNworCXBvcgkleG1tMCwleG1tMgorCXBzaHVmYgkoJWVheCksJXhtbTcKKwltb3ZkcWEJJXhtbTIsLTMyKCVlYngpCisJcGFkZGQJJXhtbTcsJXhtbTUKKwlweG9yCSV4bW01LCV4bW0zCisJbW92ZHFhCS00OCglZWJ4KSwleG1tMgorCW1vdmRxYQkleG1tMywleG1tMAorCXBzbGxkCSQxMiwleG1tMworCXBzcmxkCSQyMCwleG1tMAorCXBvcgkleG1tMCwleG1tMworCW1vdmRxYQktMTI4KCVlYngpLCV4bW0wCisJcGFkZGQJJXhtbTMsJXhtbTEKKwlweG9yCSV4bW0xLCV4bW03CisJbW92ZHFhCSV4bW0xLC04MCglZWJ4KQorCXBzaHVmYgkxNiglZWF4KSwleG1tNworCXBhZGRkCSV4bW03LCV4bW01CisJbW92ZHFhCSV4bW03LCV4bW02CisJcHhvcgkleG1tNSwleG1tMworCXBhZGRkCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW0zLCV4bW0xCisJcHNsbGQJJDcsJXhtbTMKKwlwc3JsZAkkMjUsJXhtbTEKKwlweG9yCSV4bW0wLCV4bW02CisJcG9yCSV4bW0xLCV4bW0zCisJcHNodWZiCSglZWF4KSwleG1tNgorCW1vdmRxYQkleG1tMywtMTYoJWVieCkKKwlwYWRkZAkleG1tNiwleG1tNAorCXB4b3IJJXhtbTQsJXhtbTIKKwltb3ZkcWEJLTMyKCVlYngpLCV4bW0zCisJbW92ZHFhCSV4bW0yLCV4bW0xCisJcHNsbGQJJDEyLCV4bW0yCisJcHNybGQJJDIwLCV4bW0xCisJcG9yCSV4bW0xLCV4bW0yCisJbW92ZHFhCS0xMTIoJWVieCksJXhtbTEKKwlwYWRkZAkleG1tMiwleG1tMAorCW1vdmRxYQk2NCglZWJ4KSwleG1tNworCXB4b3IJJXhtbTAsJXhtbTYKKwltb3ZkcWEJJXhtbTAsLTEyOCglZWJ4KQorCXBzaHVmYgkxNiglZWF4KSwleG1tNgorCXBhZGRkCSV4bW02LCV4bW00CisJbW92ZHFhCSV4bW02LDExMiglZWJ4KQorCXB4b3IJJXhtbTQsJXhtbTIKKwlwYWRkZAkleG1tMywleG1tMQorCW1vdmRxYQkleG1tMiwleG1tMAorCXBzbGxkCSQ3LCV4bW0yCisJcHNybGQJJDI1LCV4bW0wCisJcHhvcgkleG1tMSwleG1tNworCXBvcgkleG1tMCwleG1tMgorCW1vdmRxYQkleG1tNCwzMiglZWJ4KQorCXBzaHVmYgkoJWVheCksJXhtbTcKKwltb3ZkcWEJJXhtbTIsLTQ4KCVlYngpCisJcGFkZGQJJXhtbTcsJXhtbTUKKwltb3ZkcWEJKCVlYngpLCV4bW00CisJcHhvcgkleG1tNSwleG1tMworCW1vdmRxYQktMTYoJWVieCksJXhtbTIKKwltb3ZkcWEJJXhtbTMsJXhtbTAKKwlwc2xsZAkkMTIsJXhtbTMKKwlwc3JsZAkkMjAsJXhtbTAKKwlwb3IJJXhtbTAsJXhtbTMKKwltb3ZkcWEJLTk2KCVlYngpLCV4bW0wCisJcGFkZGQJJXhtbTMsJXhtbTEKKwltb3ZkcWEJODAoJWVieCksJXhtbTYKKwlweG9yCSV4bW0xLCV4bW03CisJbW92ZHFhCSV4bW0xLC0xMTIoJWVieCkKKwlwc2h1ZmIJMTYoJWVheCksJXhtbTcKKwlwYWRkZAkleG1tNywleG1tNQorCW1vdmRxYQkleG1tNyw2NCglZWJ4KQorCXB4b3IJJXhtbTUsJXhtbTMKKwlwYWRkZAkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tMywleG1tMQorCXBzbGxkCSQ3LCV4bW0zCisJcHNybGQJJDI1LCV4bW0xCisJcHhvcgkleG1tMCwleG1tNgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxYQkleG1tNSw0OCglZWJ4KQorCXBzaHVmYgkoJWVheCksJXhtbTYKKwltb3ZkcWEJJXhtbTMsLTMyKCVlYngpCisJcGFkZGQJJXhtbTYsJXhtbTQKKwltb3ZkcWEJMTYoJWVieCksJXhtbTUKKwlweG9yCSV4bW00LCV4bW0yCisJbW92ZHFhCS02NCglZWJ4KSwleG1tMworCW1vdmRxYQkleG1tMiwleG1tMQorCXBzbGxkCSQxMiwleG1tMgorCXBzcmxkCSQyMCwleG1tMQorCXBvcgkleG1tMSwleG1tMgorCW1vdmRxYQktODAoJWVieCksJXhtbTEKKwlwYWRkZAkleG1tMiwleG1tMAorCW1vdmRxYQk5NiglZWJ4KSwleG1tNworCXB4b3IJJXhtbTAsJXhtbTYKKwltb3ZkcWEJJXhtbTAsLTk2KCVlYngpCisJcHNodWZiCTE2KCVlYXgpLCV4bW02CisJcGFkZGQJJXhtbTYsJXhtbTQKKwltb3ZkcWEJJXhtbTYsODAoJWVieCkKKwlweG9yCSV4bW00LCV4bW0yCisJcGFkZGQJJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTIsJXhtbTAKKwlwc2xsZAkkNywleG1tMgorCXBzcmxkCSQyNSwleG1tMAorCXB4b3IJJXhtbTEsJXhtbTcKKwlwb3IJJXhtbTAsJXhtbTIKKwlwc2h1ZmIJKCVlYXgpLCV4bW03CisJbW92ZHFhCSV4bW0yLC0xNiglZWJ4KQorCXBhZGRkCSV4bW03LCV4bW01CisJcHhvcgkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMywleG1tMAorCXBzbGxkCSQxMiwleG1tMworCXBzcmxkCSQyMCwleG1tMAorCXBvcgkleG1tMCwleG1tMworCW1vdmRxYQktMTI4KCVlYngpLCV4bW0wCisJcGFkZGQJJXhtbTMsJXhtbTEKKwltb3ZkcWEJNjQoJWVieCksJXhtbTYKKwlweG9yCSV4bW0xLCV4bW03CisJbW92ZHFhCSV4bW0xLC04MCglZWJ4KQorCXBzaHVmYgkxNiglZWF4KSwleG1tNworCXBhZGRkCSV4bW03LCV4bW01CisJbW92ZHFhCSV4bW03LDk2KCVlYngpCisJcHhvcgkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMywleG1tMQorCXBzbGxkCSQ3LCV4bW0zCisJcHNybGQJJDI1LCV4bW0xCisJcG9yCSV4bW0xLCV4bW0zCisJZGVjbAklZWR4CisJam56CUwwMTBsb29wCisJbW92ZHFhCSV4bW0zLC02NCglZWJ4KQorCW1vdmRxYQkleG1tNCwoJWVieCkKKwltb3ZkcWEJJXhtbTUsMTYoJWVieCkKKwltb3ZkcWEJJXhtbTYsNjQoJWVieCkKKwltb3ZkcWEJJXhtbTcsOTYoJWVieCkKKwltb3ZkcWEJLTExMiglZWJ4KSwleG1tMQorCW1vdmRxYQktOTYoJWVieCksJXhtbTIKKwltb3ZkcWEJLTgwKCVlYngpLCV4bW0zCisJcGFkZGQJLTEyOCglZWJwKSwleG1tMAorCXBhZGRkCS0xMTIoJWVicCksJXhtbTEKKwlwYWRkZAktOTYoJWVicCksJXhtbTIKKwlwYWRkZAktODAoJWVicCksJXhtbTMKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKwlwdW5wY2tsZHEJJXhtbTEsJXhtbTAKKwltb3ZkcWEJJXhtbTIsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTMsJXhtbTIKKwlwdW5wY2toZHEJJXhtbTEsJXhtbTYKKwlwdW5wY2toZHEJJXhtbTMsJXhtbTcKKwltb3ZkcWEJJXhtbTAsJXhtbTEKKwlwdW5wY2tscWRxCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHVucGNrbHFkcQkleG1tNywleG1tNgorCXB1bnBja2hxZHEJJXhtbTIsJXhtbTEKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0zCisJbW92ZHF1CS0xMjgoJWVzaSksJXhtbTQKKwltb3ZkcXUJLTY0KCVlc2kpLCV4bW01CisJbW92ZHF1CSglZXNpKSwleG1tMgorCW1vdmRxdQk2NCglZXNpKSwleG1tNworCWxlYWwJMTYoJWVzaSksJWVzaQorCXB4b3IJJXhtbTAsJXhtbTQKKwltb3ZkcWEJLTY0KCVlYngpLCV4bW0wCisJcHhvcgkleG1tMSwleG1tNQorCW1vdmRxYQktNDgoJWVieCksJXhtbTEKKwlweG9yCSV4bW0yLCV4bW02CisJbW92ZHFhCS0zMiglZWJ4KSwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTcKKwltb3ZkcWEJLTE2KCVlYngpLCV4bW0zCisJbW92ZHF1CSV4bW00LC0xMjgoJWVkaSkKKwltb3ZkcXUJJXhtbTUsLTY0KCVlZGkpCisJbW92ZHF1CSV4bW02LCglZWRpKQorCW1vdmRxdQkleG1tNyw2NCglZWRpKQorCWxlYWwJMTYoJWVkaSksJWVkaQorCXBhZGRkCS02NCglZWJwKSwleG1tMAorCXBhZGRkCS00OCglZWJwKSwleG1tMQorCXBhZGRkCS0zMiglZWJwKSwleG1tMgorCXBhZGRkCS0xNiglZWJwKSwleG1tMworCW1vdmRxYQkleG1tMCwleG1tNgorCXB1bnBja2xkcQkleG1tMSwleG1tMAorCW1vdmRxYQkleG1tMiwleG1tNworCXB1bnBja2xkcQkleG1tMywleG1tMgorCXB1bnBja2hkcQkleG1tMSwleG1tNgorCXB1bnBja2hkcQkleG1tMywleG1tNworCW1vdmRxYQkleG1tMCwleG1tMQorCXB1bnBja2xxZHEJJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTYsJXhtbTMKKwlwdW5wY2tscWRxCSV4bW03LCV4bW02CisJcHVucGNraHFkcQkleG1tMiwleG1tMQorCXB1bnBja2hxZHEJJXhtbTcsJXhtbTMKKwltb3ZkcXUJLTEyOCglZXNpKSwleG1tNAorCW1vdmRxdQktNjQoJWVzaSksJXhtbTUKKwltb3ZkcXUJKCVlc2kpLCV4bW0yCisJbW92ZHF1CTY0KCVlc2kpLCV4bW03CisJbGVhbAkxNiglZXNpKSwlZXNpCisJcHhvcgkleG1tMCwleG1tNAorCW1vdmRxYQkoJWVieCksJXhtbTAKKwlweG9yCSV4bW0xLCV4bW01CisJbW92ZHFhCTE2KCVlYngpLCV4bW0xCisJcHhvcgkleG1tMiwleG1tNgorCW1vdmRxYQkzMiglZWJ4KSwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTcKKwltb3ZkcWEJNDgoJWVieCksJXhtbTMKKwltb3ZkcXUJJXhtbTQsLTEyOCglZWRpKQorCW1vdmRxdQkleG1tNSwtNjQoJWVkaSkKKwltb3ZkcXUJJXhtbTYsKCVlZGkpCisJbW92ZHF1CSV4bW03LDY0KCVlZGkpCisJbGVhbAkxNiglZWRpKSwlZWRpCisJcGFkZGQJKCVlYnApLCV4bW0wCisJcGFkZGQJMTYoJWVicCksJXhtbTEKKwlwYWRkZAkzMiglZWJwKSwleG1tMgorCXBhZGRkCTQ4KCVlYnApLCV4bW0zCisJbW92ZHFhCSV4bW0wLCV4bW02CisJcHVucGNrbGRxCSV4bW0xLCV4bW0wCisJbW92ZHFhCSV4bW0yLCV4bW03CisJcHVucGNrbGRxCSV4bW0zLCV4bW0yCisJcHVucGNraGRxCSV4bW0xLCV4bW02CisJcHVucGNraGRxCSV4bW0zLCV4bW03CisJbW92ZHFhCSV4bW0wLCV4bW0xCisJcHVucGNrbHFkcQkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNiwleG1tMworCXB1bnBja2xxZHEJJXhtbTcsJXhtbTYKKwlwdW5wY2tocWRxCSV4bW0yLCV4bW0xCisJcHVucGNraHFkcQkleG1tNywleG1tMworCW1vdmRxdQktMTI4KCVlc2kpLCV4bW00CisJbW92ZHF1CS02NCglZXNpKSwleG1tNQorCW1vdmRxdQkoJWVzaSksJXhtbTIKKwltb3ZkcXUJNjQoJWVzaSksJXhtbTcKKwlsZWFsCTE2KCVlc2kpLCVlc2kKKwlweG9yCSV4bW0wLCV4bW00CisJbW92ZHFhCTY0KCVlYngpLCV4bW0wCisJcHhvcgkleG1tMSwleG1tNQorCW1vdmRxYQk4MCglZWJ4KSwleG1tMQorCXB4b3IJJXhtbTIsJXhtbTYKKwltb3ZkcWEJOTYoJWVieCksJXhtbTIKKwlweG9yCSV4bW0zLCV4bW03CisJbW92ZHFhCTExMiglZWJ4KSwleG1tMworCW1vdmRxdQkleG1tNCwtMTI4KCVlZGkpCisJbW92ZHF1CSV4bW01LC02NCglZWRpKQorCW1vdmRxdQkleG1tNiwoJWVkaSkKKwltb3ZkcXUJJXhtbTcsNjQoJWVkaSkKKwlsZWFsCTE2KCVlZGkpLCVlZGkKKwlwYWRkZAk2NCglZWJwKSwleG1tMAorCXBhZGRkCTgwKCVlYnApLCV4bW0xCisJcGFkZGQJOTYoJWVicCksJXhtbTIKKwlwYWRkZAkxMTIoJWVicCksJXhtbTMKKwltb3ZkcWEJJXhtbTAsJXhtbTYKKwlwdW5wY2tsZHEJJXhtbTEsJXhtbTAKKwltb3ZkcWEJJXhtbTIsJXhtbTcKKwlwdW5wY2tsZHEJJXhtbTMsJXhtbTIKKwlwdW5wY2toZHEJJXhtbTEsJXhtbTYKKwlwdW5wY2toZHEJJXhtbTMsJXhtbTcKKwltb3ZkcWEJJXhtbTAsJXhtbTEKKwlwdW5wY2tscWRxCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW02LCV4bW0zCisJcHVucGNrbHFkcQkleG1tNywleG1tNgorCXB1bnBja2hxZHEJJXhtbTIsJXhtbTEKKwlwdW5wY2tocWRxCSV4bW03LCV4bW0zCisJbW92ZHF1CS0xMjgoJWVzaSksJXhtbTQKKwltb3ZkcXUJLTY0KCVlc2kpLCV4bW01CisJbW92ZHF1CSglZXNpKSwleG1tMgorCW1vdmRxdQk2NCglZXNpKSwleG1tNworCWxlYWwJMjA4KCVlc2kpLCVlc2kKKwlweG9yCSV4bW0wLCV4bW00CisJcHhvcgkleG1tMSwleG1tNQorCXB4b3IJJXhtbTIsJXhtbTYKKwlweG9yCSV4bW0zLCV4bW03CisJbW92ZHF1CSV4bW00LC0xMjgoJWVkaSkKKwltb3ZkcXUJJXhtbTUsLTY0KCVlZGkpCisJbW92ZHF1CSV4bW02LCglZWRpKQorCW1vdmRxdQkleG1tNyw2NCglZWRpKQorCWxlYWwJMjA4KCVlZGkpLCVlZGkKKwlzdWJsCSQyNTYsJWVjeAorCWpuYwlMMDA5b3V0ZXJfbG9vcAorCWFkZGwJJDI1NiwlZWN4CisJanoJTDAxMWRvbmUKKwltb3ZsCTUyMCglZXNwKSwlZWJ4CisJbGVhbAktMTI4KCVlc2kpLCVlc2kKKwltb3ZsCTUxNiglZXNwKSwlZWR4CisJbGVhbAktMTI4KCVlZGkpLCVlZGkKKwltb3ZkCTY0KCVlYnApLCV4bW0yCisJbW92ZHF1CSglZWJ4KSwleG1tMworCXBhZGRkCTk2KCVlYXgpLCV4bW0yCisJcGFuZAkxMTIoJWVheCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTMKK0wwMDgxeDoKKwltb3ZkcWEJMzIoJWVheCksJXhtbTAKKwltb3ZkcXUJKCVlZHgpLCV4bW0xCisJbW92ZHF1CTE2KCVlZHgpLCV4bW0yCisJbW92ZHFhCSglZWF4KSwleG1tNgorCW1vdmRxYQkxNiglZWF4KSwleG1tNworCW1vdmwJJWVicCw0OCglZXNwKQorCW1vdmRxYQkleG1tMCwoJWVzcCkKKwltb3ZkcWEJJXhtbTEsMTYoJWVzcCkKKwltb3ZkcWEJJXhtbTIsMzIoJWVzcCkKKwltb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwltb3ZsCSQxMCwlZWR4CisJam1wCUwwMTJsb29wMXgKKy5hbGlnbgk0LDB4OTAKK0wwMTNvdXRlcjF4OgorCW1vdmRxYQk4MCglZWF4KSwleG1tMworCW1vdmRxYQkoJWVzcCksJXhtbTAKKwltb3ZkcWEJMTYoJWVzcCksJXhtbTEKKwltb3ZkcWEJMzIoJWVzcCksJXhtbTIKKwlwYWRkZAk0OCglZXNwKSwleG1tMworCW1vdmwJJDEwLCVlZHgKKwltb3ZkcWEJJXhtbTMsNDgoJWVzcCkKKwlqbXAJTDAxMmxvb3AxeAorLmFsaWduCTQsMHg5MAorTDAxMmxvb3AxeDoKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyMCwleG1tMQorCXBzbGxkCSQxMiwleG1tNAorCXBvcgkleG1tNCwleG1tMQorCXBhZGRkCSV4bW0xLCV4bW0wCisJcHhvcgkleG1tMCwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW00CisJcHNybGQJJDI1LCV4bW0xCisJcHNsbGQJJDcsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwc2h1ZmQJJDc4LCV4bW0yLCV4bW0yCisJcHNodWZkCSQ1NywleG1tMSwleG1tMQorCXBzaHVmZAkkMTQ3LCV4bW0zLCV4bW0zCisJbm9wCisJcGFkZGQJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW0wLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjIKKwlwYWRkZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwlwc3JsZAkkMjAsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMworCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyNSwleG1tMQorCXBzbGxkCSQ3LCV4bW00CisJcG9yCSV4bW00LCV4bW0xCisJcHNodWZkCSQ3OCwleG1tMiwleG1tMgorCXBzaHVmZAkkMTQ3LCV4bW0xLCV4bW0xCisJcHNodWZkCSQ1NywleG1tMywleG1tMworCWRlY2wJJWVkeAorCWpueglMMDEybG9vcDF4CisJcGFkZGQJKCVlc3ApLCV4bW0wCisJcGFkZGQJMTYoJWVzcCksJXhtbTEKKwlwYWRkZAkzMiglZXNwKSwleG1tMgorCXBhZGRkCTQ4KCVlc3ApLCV4bW0zCisJY21wbAkkNjQsJWVjeAorCWpiCUwwMTR0YWlsCisJbW92ZHF1CSglZXNpKSwleG1tNAorCW1vdmRxdQkxNiglZXNpKSwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTAKKwltb3ZkcXUJMzIoJWVzaSksJXhtbTQKKwlweG9yCSV4bW01LCV4bW0xCisJbW92ZHF1CTQ4KCVlc2kpLCV4bW01CisJcHhvcgkleG1tNCwleG1tMgorCXB4b3IJJXhtbTUsJXhtbTMKKwlsZWFsCTY0KCVlc2kpLCVlc2kKKwltb3ZkcXUJJXhtbTAsKCVlZGkpCisJbW92ZHF1CSV4bW0xLDE2KCVlZGkpCisJbW92ZHF1CSV4bW0yLDMyKCVlZGkpCisJbW92ZHF1CSV4bW0zLDQ4KCVlZGkpCisJbGVhbAk2NCglZWRpKSwlZWRpCisJc3VibAkkNjQsJWVjeAorCWpueglMMDEzb3V0ZXIxeAorCWptcAlMMDExZG9uZQorTDAxNHRhaWw6CisJbW92ZHFhCSV4bW0wLCglZXNwKQorCW1vdmRxYQkleG1tMSwxNiglZXNwKQorCW1vdmRxYQkleG1tMiwzMiglZXNwKQorCW1vdmRxYQkleG1tMyw0OCglZXNwKQorCXhvcmwJJWVheCwlZWF4CisJeG9ybAklZWR4LCVlZHgKKwl4b3JsCSVlYnAsJWVicAorTDAxNXRhaWxfbG9vcDoKKwltb3ZiCSglZXNwLCVlYnAsMSksJWFsCisJbW92YgkoJWVzaSwlZWJwLDEpLCVkbAorCWxlYWwJMSglZWJwKSwlZWJwCisJeG9yYgklZGwsJWFsCisJbW92YgklYWwsLTEoJWVkaSwlZWJwLDEpCisJZGVjbAklZWN4CisJam56CUwwMTV0YWlsX2xvb3AKK0wwMTFkb25lOgorCW1vdmwJNTEyKCVlc3ApLCVlc3AKKwlwb3BsCSVlZGkKKwlwb3BsCSVlc2kKKwlwb3BsCSVlYngKKwlwb3BsCSVlYnAKKwlyZXQKKy5hbGlnbgk2LDB4OTAKK0xzc3NlM19kYXRhOgorLmJ5dGUJMiwzLDAsMSw2LDcsNCw1LDEwLDExLDgsOSwxNCwxNSwxMiwxMworLmJ5dGUJMywwLDEsMiw3LDQsNSw2LDExLDgsOSwxMCwxNSwxMiwxMywxNAorLmxvbmcJMTYzNDc2MDgwNSw4NTc3NjA4NzgsMjAzNjQ3NzIzNCwxNzk3Mjg1MjM2CisubG9uZwkwLDEsMiwzCisubG9uZwk0LDQsNCw0CisubG9uZwkxLDAsMCwwCisubG9uZwk0LDAsMCwwCisubG9uZwkwLC0xLC0xLC0xCisuYWxpZ24JNiwweDkwCisuYnl0ZQk2NywxMDQsOTcsNjcsMTA0LDk3LDUwLDQ4LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NAorLmJ5dGUJNDQsMzIsNjcsODIsODksODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyCisuYnl0ZQk2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMQorLmJ5dGUJMTE0LDEwMyw2MiwwCisuc2VjdGlvbiBfX0lNUE9SVCxfX3BvaW50ZXJzLG5vbl9sYXp5X3N5bWJvbF9wb2ludGVycworTF9PUEVOU1NMX2lhMzJjYXBfUCRub25fbGF6eV9wdHI6CisuaW5kaXJlY3Rfc3ltYm9sCV9PUEVOU1NMX2lhMzJjYXBfUAorLmxvbmcJMAorI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vY3B1LXg4Ni1hc20uUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9jcHUteDg2LWFzbS5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmIyOTJjLi4wMDAwMDAwCi0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9jcHUteDg2LWFzbS5TCisrKyAvZGV2L251bGwKQEAgLTEsMzA5ICswLDAgQEAKLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotLmZpbGUJImNyeXB0by9jcHUteDg2LWFzbS5TIgotLnRleHQKLS5nbG9ibAlfT1BFTlNTTF9pYTMyX2NwdWlkCi0ucHJpdmF0ZV9leHRlcm4JX09QRU5TU0xfaWEzMl9jcHVpZAotLmFsaWduCTQKLV9PUEVOU1NMX2lhMzJfY3B1aWQ6Ci1MX09QRU5TU0xfaWEzMl9jcHVpZF9iZWdpbjoKLQlwdXNobAklZWJwCi0JcHVzaGwJJWVieAotCXB1c2hsCSVlc2kKLQlwdXNobAklZWRpCi0JeG9ybAklZWR4LCVlZHgKLQlwdXNoZmwKLQlwb3BsCSVlYXgKLQltb3ZsCSVlYXgsJWVjeAotCXhvcmwJJDIwOTcxNTIsJWVheAotCXB1c2hsCSVlYXgKLQlwb3BmbAotCXB1c2hmbAotCXBvcGwJJWVheAotCXhvcmwJJWVheCwlZWN4Ci0JeG9ybAklZWF4LCVlYXgKLQlidGwJJDIxLCVlY3gKLQlqbmMJTDAwMG5vY3B1aWQKLQltb3ZsCTIwKCVlc3ApLCVlc2kKLQltb3ZsCSVlYXgsOCglZXNpKQotCS5ieXRlCTB4MGYsMHhhMgotCW1vdmwJJWVheCwlZWRpCi0JeG9ybAklZWF4LCVlYXgKLQljbXBsCSQxOTcwMTY5MTU5LCVlYngKLQlzZXRuZQklYWwKLQltb3ZsCSVlYXgsJWVicAotCWNtcGwJJDEyMzEzODQxNjksJWVkeAotCXNldG5lCSVhbAotCW9ybAklZWF4LCVlYnAKLQljbXBsCSQxODE4NTg4MjcwLCVlY3gKLQlzZXRuZQklYWwKLQlvcmwJJWVheCwlZWJwCi0JanoJTDAwMWludGVsCi0JY21wbAkkMTc1MjQ2MjY1NywlZWJ4Ci0Jc2V0bmUJJWFsCi0JbW92bAklZWF4LCVlc2kKLQljbXBsCSQxNzY5MjM4MTE3LCVlZHgKLQlzZXRuZQklYWwKLQlvcmwJJWVheCwlZXNpCi0JY21wbAkkMTE0NTkxMzY5OSwlZWN4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJWVzaQotCWpueglMMDAxaW50ZWwKLQltb3ZsCSQyMTQ3NDgzNjQ4LCVlYXgKLQkuYnl0ZQkweDBmLDB4YTIKLQljbXBsCSQyMTQ3NDgzNjQ5LCVlYXgKLQlqYglMMDAxaW50ZWwKLQltb3ZsCSVlYXgsJWVzaQotCW1vdmwJJDIxNDc0ODM2NDksJWVheAotCS5ieXRlCTB4MGYsMHhhMgotCW9ybAklZWN4LCVlYnAKLQlhbmRsCSQyMDQ5LCVlYnAKLQljbXBsCSQyMTQ3NDgzNjU2LCVlc2kKLQlqYglMMDAxaW50ZWwKLQltb3ZsCSQyMTQ3NDgzNjU2LCVlYXgKLQkuYnl0ZQkweDBmLDB4YTIKLQltb3Z6YmwJJWNsLCVlc2kKLQlpbmNsCSVlc2kKLQltb3ZsCSQxLCVlYXgKLQl4b3JsCSVlY3gsJWVjeAotCS5ieXRlCTB4MGYsMHhhMgotCWJ0bAkkMjgsJWVkeAotCWpuYwlMMDAyZ2VuZXJpYwotCXNocmwJJDE2LCVlYngKLQlhbmRsCSQyNTUsJWVieAotCWNtcGwJJWVzaSwlZWJ4Ci0JamEJTDAwMmdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQlqbXAJTDAwMmdlbmVyaWMKLUwwMDFpbnRlbDoKLQljbXBsCSQ3LCVlZGkKLQlqYglMMDAzY2FjaGVpbmZvCi0JbW92bAkyMCglZXNwKSwlZXNpCi0JbW92bAkkNywlZWF4Ci0JeG9ybAklZWN4LCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQltb3ZsCSVlYngsOCglZXNpKQotTDAwM2NhY2hlaW5mbzoKLQljbXBsCSQ0LCVlZGkKLQltb3ZsCSQtMSwlZWRpCi0JamIJTDAwNG5vY2FjaGVpbmZvCi0JbW92bAkkNCwlZWF4Ci0JbW92bAkkMCwlZWN4Ci0JLmJ5dGUJMHgwZiwweGEyCi0JbW92bAklZWF4LCVlZGkKLQlzaHJsCSQxNCwlZWRpCi0JYW5kbAkkNDA5NSwlZWRpCi1MMDA0bm9jYWNoZWluZm86Ci0JbW92bAkkMSwlZWF4Ci0JeG9ybAklZWN4LCVlY3gKLQkuYnl0ZQkweDBmLDB4YTIKLQlhbmRsCSQzMjIwMTc2ODk1LCVlZHgKLQljbXBsCSQwLCVlYnAKLQlqbmUJTDAwNW5vdGludGVsCi0Jb3JsCSQxMDczNzQxODI0LCVlZHgKLUwwMDVub3RpbnRlbDoKLQlidGwJJDI4LCVlZHgKLQlqbmMJTDAwMmdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQljbXBsCSQwLCVlZGkKLQlqZQlMMDAyZ2VuZXJpYwotCW9ybAkkMjY4NDM1NDU2LCVlZHgKLQlzaHJsCSQxNiwlZWJ4Ci0JY21wYgkkMSwlYmwKLQlqYQlMMDAyZ2VuZXJpYwotCWFuZGwJJDQwMjY1MzE4MzksJWVkeAotTDAwMmdlbmVyaWM6Ci0JYW5kbAkkMjA0OCwlZWJwCi0JYW5kbAkkNDI5NDk2NTI0NywlZWN4Ci0JbW92bAklZWR4LCVlc2kKLQlvcmwJJWVjeCwlZWJwCi0JYnRsCSQyNywlZWN4Ci0Jam5jCUwwMDZjbGVhcl9hdngKLQl4b3JsCSVlY3gsJWVjeAotLmJ5dGUJMTUsMSwyMDgKLQlhbmRsCSQ2LCVlYXgKLQljbXBsCSQ2LCVlYXgKLQlqZQlMMDA3ZG9uZQotCWNtcGwJJDIsJWVheAotCWplCUwwMDZjbGVhcl9hdngKLUwwMDhjbGVhcl94bW06Ci0JYW5kbAkkNDI2MTQxMjg2MSwlZWJwCi0JYW5kbAkkNDI3ODE5MDA3OSwlZXNpCi1MMDA2Y2xlYXJfYXZ4OgotCWFuZGwJJDQwMjY1MjU2OTUsJWVicAotCW1vdmwJMjAoJWVzcCksJWVkaQotCWFuZGwJJDQyOTQ5NjcyNjMsOCglZWRpKQotTDAwN2RvbmU6Ci0JbW92bAklZXNpLCVlYXgKLQltb3ZsCSVlYnAsJWVkeAotTDAwMG5vY3B1aWQ6Ci0JcG9wbAklZWRpCi0JcG9wbAklZXNpCi0JcG9wbAklZWJ4Ci0JcG9wbAklZWJwCi0JcmV0Ci0uZ2xvYmwJX09QRU5TU0xfcmR0c2MKLS5wcml2YXRlX2V4dGVybglfT1BFTlNTTF9yZHRzYwotLmFsaWduCTQKLV9PUEVOU1NMX3JkdHNjOgotTF9PUEVOU1NMX3JkdHNjX2JlZ2luOgotCXhvcmwJJWVheCwlZWF4Ci0JeG9ybAklZWR4LCVlZHgKLQljYWxsCUwwMDlQSUNfbWVfdXAKLUwwMDlQSUNfbWVfdXA6Ci0JcG9wbAklZWN4Ci0JbW92bAlMX09QRU5TU0xfaWEzMmNhcF9QJG5vbl9sYXp5X3B0ci1MMDA5UElDX21lX3VwKCVlY3gpLCVlY3gKLQlidGwJJDQsKCVlY3gpCi0Jam5jCUwwMTBub3RzYwotCS5ieXRlCTB4MGYsMHgzMQotTDAxMG5vdHNjOgotCXJldAotLmdsb2JsCV9PUEVOU1NMX2luc3RydW1lbnRfaGFsdAotLnByaXZhdGVfZXh0ZXJuCV9PUEVOU1NMX2luc3RydW1lbnRfaGFsdAotLmFsaWduCTQKLV9PUEVOU1NMX2luc3RydW1lbnRfaGFsdDoKLUxfT1BFTlNTTF9pbnN0cnVtZW50X2hhbHRfYmVnaW46Ci0JY2FsbAlMMDExUElDX21lX3VwCi1MMDExUElDX21lX3VwOgotCXBvcGwJJWVjeAotCW1vdmwJTF9PUEVOU1NMX2lhMzJjYXBfUCRub25fbGF6eV9wdHItTDAxMVBJQ19tZV91cCglZWN4KSwlZWN4Ci0JYnRsCSQ0LCglZWN4KQotCWpuYwlMMDEybm9oYWx0Ci0ubG9uZwkyNDIxNzIzMTUwCi0JYW5kbAkkMywlZWF4Ci0Jam56CUwwMTJub2hhbHQKLQlwdXNoZmwKLQlwb3BsCSVlYXgKLQlidGwJJDksJWVheAotCWpuYwlMMDEybm9oYWx0Ci0JLmJ5dGUJMHgwZiwweDMxCi0JcHVzaGwJJWVkeAotCXB1c2hsCSVlYXgKLQlobHQKLQkuYnl0ZQkweDBmLDB4MzEKLQlzdWJsCSglZXNwKSwlZWF4Ci0Jc2JibAk0KCVlc3ApLCVlZHgKLQlhZGRsCSQ4LCVlc3AKLQlyZXQKLUwwMTJub2hhbHQ6Ci0JeG9ybAklZWF4LCVlYXgKLQl4b3JsCSVlZHgsJWVkeAotCXJldAotLmdsb2JsCV9PUEVOU1NMX2Zhcl9zcGluCi0ucHJpdmF0ZV9leHRlcm4JX09QRU5TU0xfZmFyX3NwaW4KLS5hbGlnbgk0Ci1fT1BFTlNTTF9mYXJfc3BpbjoKLUxfT1BFTlNTTF9mYXJfc3Bpbl9iZWdpbjoKLQlwdXNoZmwKLQlwb3BsCSVlYXgKLQlidGwJJDksJWVheAotCWpuYwlMMDEzbm9zcGluCi0JbW92bAk0KCVlc3ApLCVlYXgKLQltb3ZsCTgoJWVzcCksJWVjeAotLmxvbmcJMjQzMDExMTI2MgotCXhvcmwJJWVheCwlZWF4Ci0JbW92bAkoJWVjeCksJWVkeAotCWptcAlMMDE0c3BpbgotLmFsaWduCTQsMHg5MAotTDAxNHNwaW46Ci0JaW5jbAklZWF4Ci0JY21wbAkoJWVjeCksJWVkeAotCWplCUwwMTRzcGluCi0ubG9uZwk1Mjk1Njc4ODgKLQlyZXQKLUwwMTNub3NwaW46Ci0JeG9ybAklZWF4LCVlYXgKLQl4b3JsCSVlZHgsJWVkeAotCXJldAotLmdsb2JsCV9PUEVOU1NMX3dpcGVfY3B1Ci0ucHJpdmF0ZV9leHRlcm4JX09QRU5TU0xfd2lwZV9jcHUKLS5hbGlnbgk0Ci1fT1BFTlNTTF93aXBlX2NwdToKLUxfT1BFTlNTTF93aXBlX2NwdV9iZWdpbjoKLQl4b3JsCSVlYXgsJWVheAotCXhvcmwJJWVkeCwlZWR4Ci0JY2FsbAlMMDE1UElDX21lX3VwCi1MMDE1UElDX21lX3VwOgotCXBvcGwJJWVjeAotCW1vdmwJTF9PUEVOU1NMX2lhMzJjYXBfUCRub25fbGF6eV9wdHItTDAxNVBJQ19tZV91cCglZWN4KSwlZWN4Ci0JbW92bAkoJWVjeCksJWVjeAotCWJ0bAkkMSwoJWVjeCkKLQlqbmMJTDAxNm5vX3g4NwotCWFuZGwJJDgzODg2MDgwLCVlY3gKLQljbXBsCSQ4Mzg4NjA4MCwlZWN4Ci0Jam5lCUwwMTdub19zc2UyCi0JcHhvcgkleG1tMCwleG1tMAotCXB4b3IJJXhtbTEsJXhtbTEKLQlweG9yCSV4bW0yLCV4bW0yCi0JcHhvcgkleG1tMywleG1tMwotCXB4b3IJJXhtbTQsJXhtbTQKLQlweG9yCSV4bW01LCV4bW01Ci0JcHhvcgkleG1tNiwleG1tNgotCXB4b3IJJXhtbTcsJXhtbTcKLUwwMTdub19zc2UyOgotLmxvbmcJNDAwNzI1OTg2NSw0MDA3MjU5ODY1LDQwMDcyNTk4NjUsNDAwNzI1OTg2NSwyNDMwODUxOTk1Ci1MMDE2bm9feDg3OgotCWxlYWwJNCglZXNwKSwlZWF4Ci0JcmV0Ci0uZ2xvYmwJX09QRU5TU0xfYXRvbWljX2FkZAotLnByaXZhdGVfZXh0ZXJuCV9PUEVOU1NMX2F0b21pY19hZGQKLS5hbGlnbgk0Ci1fT1BFTlNTTF9hdG9taWNfYWRkOgotTF9PUEVOU1NMX2F0b21pY19hZGRfYmVnaW46Ci0JbW92bAk0KCVlc3ApLCVlZHgKLQltb3ZsCTgoJWVzcCksJWVjeAotCXB1c2hsCSVlYngKLQlub3AKLQltb3ZsCSglZWR4KSwlZWF4Ci1MMDE4c3BpbjoKLQlsZWFsCSglZWF4LCVlY3gsMSksJWVieAotCW5vcAotLmxvbmcJNDQ3ODExNTY4Ci0Jam5lCUwwMThzcGluCi0JbW92bAklZWJ4LCVlYXgKLQlwb3BsCSVlYngKLQlyZXQKLS5nbG9ibAlfT1BFTlNTTF9pbmRpcmVjdF9jYWxsCi0ucHJpdmF0ZV9leHRlcm4JX09QRU5TU0xfaW5kaXJlY3RfY2FsbAotLmFsaWduCTQKLV9PUEVOU1NMX2luZGlyZWN0X2NhbGw6Ci1MX09QRU5TU0xfaW5kaXJlY3RfY2FsbF9iZWdpbjoKLQlwdXNobAklZWJwCi0JbW92bAklZXNwLCVlYnAKLQlzdWJsCSQyOCwlZXNwCi0JbW92bAkxMiglZWJwKSwlZWN4Ci0JbW92bAklZWN4LCglZXNwKQotCW1vdmwJMTYoJWVicCksJWVkeAotCW1vdmwJJWVkeCw0KCVlc3ApCi0JbW92bAkyMCglZWJwKSwlZWF4Ci0JbW92bAklZWF4LDgoJWVzcCkKLQltb3ZsCTI0KCVlYnApLCVlYXgKLQltb3ZsCSVlYXgsMTIoJWVzcCkKLQltb3ZsCTI4KCVlYnApLCVlYXgKLQltb3ZsCSVlYXgsMTYoJWVzcCkKLQltb3ZsCTMyKCVlYnApLCVlYXgKLQltb3ZsCSVlYXgsMjAoJWVzcCkKLQltb3ZsCTM2KCVlYnApLCVlYXgKLQltb3ZsCSVlYXgsMjQoJWVzcCkKLQljYWxsCSo4KCVlYnApCi0JbW92bAklZWJwLCVlc3AKLQlwb3BsCSVlYnAKLQlyZXQKLS5nbG9ibAlfT1BFTlNTTF9pYTMyX3JkcmFuZAotLnByaXZhdGVfZXh0ZXJuCV9PUEVOU1NMX2lhMzJfcmRyYW5kCi0uYWxpZ24JNAotX09QRU5TU0xfaWEzMl9yZHJhbmQ6Ci1MX09QRU5TU0xfaWEzMl9yZHJhbmRfYmVnaW46Ci0JbW92bAkkOCwlZWN4Ci1MMDE5bG9vcDoKLS5ieXRlCTE1LDE5OSwyNDAKLQlqYwlMMDIwYnJlYWsKLQlsb29wCUwwMTlsb29wCi1MMDIwYnJlYWs6Ci0JY21wbAkkMCwlZWF4Ci0JY21vdmVsCSVlY3gsJWVheAotCXJldAotLnNlY3Rpb24gX19JTVBPUlQsX19wb2ludGVycyxub25fbGF6eV9zeW1ib2xfcG9pbnRlcnMKLUxfT1BFTlNTTF9pYTMyY2FwX1Akbm9uX2xhenlfcHRyOgotLmluZGlyZWN0X3N5bWJvbAlfT1BFTlNTTF9pYTMyY2FwX1AKLS5sb25nCTAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuUwppbmRleCBmYWVjZGZhLi5kY2RkYzU4IDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuUwpAQCAtMzQzLDM5ICszNDMsNiBAQAogCXBvcGwJJWVieAogCXBvcGwJJWVicAogCXJldAotLmdsb2JsCV9SQzRfb3B0aW9ucwotLnByaXZhdGVfZXh0ZXJuCV9SQzRfb3B0aW9ucwotLmFsaWduCTQKLV9SQzRfb3B0aW9uczoKLUxfUkM0X29wdGlvbnNfYmVnaW46Ci0JY2FsbAlMMDE4cGljX3BvaW50Ci1MMDE4cGljX3BvaW50OgotCXBvcGwJJWVheAotCWxlYWwJTDAxOW9wdHMtTDAxOHBpY19wb2ludCglZWF4KSwlZWF4Ci0JY2FsbAlMMDIwUElDX21lX3VwCi1MMDIwUElDX21lX3VwOgotCXBvcGwJJWVkeAotCW1vdmwJTF9PUEVOU1NMX2lhMzJjYXBfUCRub25fbGF6eV9wdHItTDAyMFBJQ19tZV91cCglZWR4KSwlZWR4Ci0JbW92bAkoJWVkeCksJWVkeAotCWJ0bAkkMjAsJWVkeAotCWpjCUwwMjExeGNoYXIKLQlidGwJJDI2LCVlZHgKLQlqbmMJTDAyMnJldAotCWFkZGwJJDI1LCVlYXgKLQlyZXQKLUwwMjExeGNoYXI6Ci0JYWRkbAkkMTIsJWVheAotTDAyMnJldDoKLQlyZXQKLS5hbGlnbgk2LDB4OTAKLUwwMTlvcHRzOgotLmJ5dGUJMTE0LDk5LDUyLDQwLDUyLDEyMCw0NCwxMDUsMTEwLDExNiw0MSwwCi0uYnl0ZQkxMTQsOTksNTIsNDAsNDksMTIwLDQ0LDk5LDEwNCw5NywxMTQsNDEsMAotLmJ5dGUJMTE0LDk5LDUyLDQwLDU2LDEyMCw0NCwxMDksMTA5LDEyMCw0MSwwCi0uYnl0ZQk4Miw2Nyw1MiwzMiwxMDIsMTExLDExNCwzMiwxMjAsNTYsNTQsNDQsMzIsNjcsODIsODkKLS5ieXRlCTgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMSwzMiw2MCw5NywxMTIsMTEyLDExNAotLmJ5dGUJMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCi0uYWxpZ24JNiwweDkwCiAuc2VjdGlvbiBfX0lNUE9SVCxfX3BvaW50ZXJzLG5vbl9sYXp5X3N5bWJvbF9wb2ludGVycwogTF9PUEVOU1NMX2lhMzJjYXBfUCRub25fbGF6eV9wdHI6CiAuaW5kaXJlY3Rfc3ltYm9sCV9PUEVOU1NMX2lhMzJjYXBfUApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5TCmluZGV4IDk3YWFmYmYuLjcyYTcyMDUgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9zaGEvc2hhMS01ODYuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vc2hhL3NoYTEtNTg2LlMKQEAgLTIyLDggKzIyLDExIEBACiAJbW92bAk4KCVlc2kpLCVlY3gKIAl0ZXN0bAkkMTY3NzcyMTYsJWVheAogCWp6CUwwMDF4ODYKLQl0ZXN0bAkkNTM2ODcwOTEyLCVlY3gKLQlqbnoJTHNoYWV4dF9zaG9ydGN1dAorCWFuZGwJJDI2ODQzNTQ1NiwlZWR4CisJYW5kbAkkMTA3Mzc0MTgyNCwlZWF4CisJb3JsCSVlZHgsJWVheAorCWNtcGwJJDEzNDIxNzcyODAsJWVheAorCWplCUxhdnhfc2hvcnRjdXQKIAlqbXAJTHNzc2UzX3Nob3J0Y3V0CiAuYWxpZ24JNCwweDkwCiBMMDAxeDg2OgpAQCAtMTM5MSw5ICsxMzk0LDkgQEAKIAlwb3BsCSVlYngKIAlwb3BsCSVlYnAKIAlyZXQKLS5wcml2YXRlX2V4dGVybglfX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zaGFleHQKKy5wcml2YXRlX2V4dGVybglfX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMwogLmFsaWduCTQKLV9fc2hhMV9ibG9ja19kYXRhX29yZGVyX3NoYWV4dDoKK19fc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzOgogCXB1c2hsCSVlYnAKIAlwdXNobAklZWJ4CiAJcHVzaGwJJWVzaQpAQCAtMTQwMiwxNzUgKzE0MDUsNiBAQAogTDAwM3BpY19wb2ludDoKIAlwb3BsCSVlYnAKIAlsZWFsCUxLX1hYX1hYLUwwMDNwaWNfcG9pbnQoJWVicCksJWVicAotTHNoYWV4dF9zaG9ydGN1dDoKLQltb3ZsCTIwKCVlc3ApLCVlZGkKLQltb3ZsCSVlc3AsJWVieAotCW1vdmwJMjQoJWVzcCksJWVzaQotCW1vdmwJMjgoJWVzcCksJWVjeAotCXN1YmwJJDMyLCVlc3AKLQltb3ZkcXUJKCVlZGkpLCV4bW0wCi0JbW92ZAkxNiglZWRpKSwleG1tMQotCWFuZGwJJC0zMiwlZXNwCi0JbW92ZHFhCTgwKCVlYnApLCV4bW0zCi0JbW92ZHF1CSglZXNpKSwleG1tNAotCXBzaHVmZAkkMjcsJXhtbTAsJXhtbTAKLQltb3ZkcXUJMTYoJWVzaSksJXhtbTUKLQlwc2h1ZmQJJDI3LCV4bW0xLCV4bW0xCi0JbW92ZHF1CTMyKCVlc2kpLCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMjcKLQltb3ZkcXUJNDgoJWVzaSksJXhtbTcKLS5ieXRlCTEwMiwxNSw1NiwwLDIzNQotLmJ5dGUJMTAyLDE1LDU2LDAsMjQzCi0uYnl0ZQkxMDIsMTUsNTYsMCwyNTEKLQlqbXAJTDAwNGxvb3Bfc2hhZXh0Ci0uYWxpZ24JNCwweDkwCi1MMDA0bG9vcF9zaGFleHQ6Ci0JZGVjbAklZWN4Ci0JbGVhbAk2NCglZXNpKSwlZWF4Ci0JbW92ZHFhCSV4bW0xLCglZXNwKQotCXBhZGRkCSV4bW00LCV4bW0xCi0JY21vdm5lbAklZWF4LCVlc2kKLQltb3ZkcWEJJXhtbTAsMTYoJWVzcCkKLS5ieXRlCTE1LDU2LDIwMSwyMjkKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMAotLmJ5dGUJMTUsNTYsMjAwLDIxMwotCXB4b3IJJXhtbTYsJXhtbTQKLS5ieXRlCTE1LDU2LDIwMSwyMzgKLS5ieXRlCTE1LDU2LDIwMiwyMzEKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMAotLmJ5dGUJMTUsNTYsMjAwLDIwNgotCXB4b3IJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwMiwyMzYKLS5ieXRlCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMAotLmJ5dGUJMTUsNTYsMjAwLDIxNQotCXB4b3IJJXhtbTQsJXhtbTYKLS5ieXRlCTE1LDU2LDIwMSwyNTIKLS5ieXRlCTE1LDU2LDIwMiwyNDUKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMAotLmJ5dGUJMTUsNTYsMjAwLDIwNAotCXB4b3IJJXhtbTUsJXhtbTcKLS5ieXRlCTE1LDU2LDIwMiwyNTQKLS5ieXRlCTE1LDU2LDIwMSwyMjkKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMAotLmJ5dGUJMTUsNTYsMjAwLDIxMwotCXB4b3IJJXhtbTYsJXhtbTQKLS5ieXRlCTE1LDU2LDIwMSwyMzgKLS5ieXRlCTE1LDU2LDIwMiwyMzEKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMQotLmJ5dGUJMTUsNTYsMjAwLDIwNgotCXB4b3IJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwMiwyMzYKLS5ieXRlCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMQotLmJ5dGUJMTUsNTYsMjAwLDIxNQotCXB4b3IJJXhtbTQsJXhtbTYKLS5ieXRlCTE1LDU2LDIwMSwyNTIKLS5ieXRlCTE1LDU2LDIwMiwyNDUKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMQotLmJ5dGUJMTUsNTYsMjAwLDIwNAotCXB4b3IJJXhtbTUsJXhtbTcKLS5ieXRlCTE1LDU2LDIwMiwyNTQKLS5ieXRlCTE1LDU2LDIwMSwyMjkKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMQotLmJ5dGUJMTUsNTYsMjAwLDIxMwotCXB4b3IJJXhtbTYsJXhtbTQKLS5ieXRlCTE1LDU2LDIwMSwyMzgKLS5ieXRlCTE1LDU2LDIwMiwyMzEKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMQotLmJ5dGUJMTUsNTYsMjAwLDIwNgotCXB4b3IJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwMiwyMzYKLS5ieXRlCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMgotLmJ5dGUJMTUsNTYsMjAwLDIxNQotCXB4b3IJJXhtbTQsJXhtbTYKLS5ieXRlCTE1LDU2LDIwMSwyNTIKLS5ieXRlCTE1LDU2LDIwMiwyNDUKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMgotLmJ5dGUJMTUsNTYsMjAwLDIwNAotCXB4b3IJJXhtbTUsJXhtbTcKLS5ieXRlCTE1LDU2LDIwMiwyNTQKLS5ieXRlCTE1LDU2LDIwMSwyMjkKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMgotLmJ5dGUJMTUsNTYsMjAwLDIxMwotCXB4b3IJJXhtbTYsJXhtbTQKLS5ieXRlCTE1LDU2LDIwMSwyMzgKLS5ieXRlCTE1LDU2LDIwMiwyMzEKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMgotLmJ5dGUJMTUsNTYsMjAwLDIwNgotCXB4b3IJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwMiwyMzYKLS5ieXRlCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMgotLmJ5dGUJMTUsNTYsMjAwLDIxNQotCXB4b3IJJXhtbTQsJXhtbTYKLS5ieXRlCTE1LDU2LDIwMSwyNTIKLS5ieXRlCTE1LDU2LDIwMiwyNDUKLQltb3ZkcWEJJXhtbTAsJXhtbTEKLS5ieXRlCTE1LDU4LDIwNCwxOTQsMwotLmJ5dGUJMTUsNTYsMjAwLDIwNAotCXB4b3IJJXhtbTUsJXhtbTcKLS5ieXRlCTE1LDU2LDIwMiwyNTQKLQltb3ZkcXUJKCVlc2kpLCV4bW00Ci0JbW92ZHFhCSV4bW0wLCV4bW0yCi0uYnl0ZQkxNSw1OCwyMDQsMTkzLDMKLS5ieXRlCTE1LDU2LDIwMCwyMTMKLQltb3ZkcXUJMTYoJWVzaSksJXhtbTUKLS5ieXRlCTEwMiwxNSw1NiwwLDIyNwotCW1vdmRxYQkleG1tMCwleG1tMQotLmJ5dGUJMTUsNTgsMjA0LDE5NCwzCi0uYnl0ZQkxNSw1NiwyMDAsMjA2Ci0JbW92ZHF1CTMyKCVlc2kpLCV4bW02Ci0uYnl0ZQkxMDIsMTUsNTYsMCwyMzUKLQltb3ZkcWEJJXhtbTAsJXhtbTIKLS5ieXRlCTE1LDU4LDIwNCwxOTMsMwotLmJ5dGUJMTUsNTYsMjAwLDIxNQotCW1vdmRxdQk0OCglZXNpKSwleG1tNwotLmJ5dGUJMTAyLDE1LDU2LDAsMjQzCi0JbW92ZHFhCSV4bW0wLCV4bW0xCi0uYnl0ZQkxNSw1OCwyMDQsMTk0LDMKLQltb3ZkcWEJKCVlc3ApLCV4bW0yCi0uYnl0ZQkxMDIsMTUsNTYsMCwyNTEKLS5ieXRlCTE1LDU2LDIwMCwyMDIKLQlwYWRkZAkxNiglZXNwKSwleG1tMAotCWpueglMMDA0bG9vcF9zaGFleHQKLQlwc2h1ZmQJJDI3LCV4bW0wLCV4bW0wCi0JcHNodWZkCSQyNywleG1tMSwleG1tMQotCW1vdmRxdQkleG1tMCwoJWVkaSkKLQltb3ZkCSV4bW0xLDE2KCVlZGkpCi0JbW92bAklZWJ4LCVlc3AKLQlwb3BsCSVlZGkKLQlwb3BsCSVlc2kKLQlwb3BsCSVlYngKLQlwb3BsCSVlYnAKLQlyZXQKLS5wcml2YXRlX2V4dGVybglfX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMwotLmFsaWduCTQKLV9fc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzOgotCXB1c2hsCSVlYnAKLQlwdXNobAklZWJ4Ci0JcHVzaGwJJWVzaQotCXB1c2hsCSVlZGkKLQljYWxsCUwwMDVwaWNfcG9pbnQKLUwwMDVwaWNfcG9pbnQ6Ci0JcG9wbAklZWJwCi0JbGVhbAlMS19YWF9YWC1MMDA1cGljX3BvaW50KCVlYnApLCVlYnAKIExzc3NlM19zaG9ydGN1dDoKIAltb3ZkcWEJKCVlYnApLCV4bW03CiAJbW92ZHFhCTE2KCVlYnApLCV4bW0wCkBAIC0xNjIzLDkgKzE0NTcsOSBAQAogCXhvcmwJJWVkeCwlZWJwCiAJcHNodWZkCSQyMzgsJXhtbTAsJXhtbTQKIAlhbmRsCSVlYnAsJWVzaQotCWptcAlMMDA2bG9vcAorCWptcAlMMDA0bG9vcAogLmFsaWduCTQsMHg5MAotTDAwNmxvb3A6CitMMDA0bG9vcDoKIAlyb3JsCSQyLCVlYngKIAl4b3JsCSVlZHgsJWVzaQogCW1vdmwJJWVheCwlZWJwCkBAIC0yNTI4LDcgKzIzNjIsNyBAQAogCWFkZGwJJWVkeCwlZWN4CiAJbW92bAkxOTYoJWVzcCksJWVicAogCWNtcGwJMjAwKCVlc3ApLCVlYnAKLQlqZQlMMDA3ZG9uZQorCWplCUwwMDVkb25lCiAJbW92ZHFhCTE2MCglZXNwKSwleG1tNwogCW1vdmRxYQkxNzYoJWVzcCksJXhtbTYKIAltb3ZkcXUJKCVlYnApLCV4bW0wCkBAIC0yNjYzLDkgKzI0OTcsOSBAQAogCXBzaHVmZAkkMjM4LCV4bW0wLCV4bW00CiAJYW5kbAklZWJ4LCVlc2kKIAltb3ZsCSVlYnAsJWVieAotCWptcAlMMDA2bG9vcAorCWptcAlMMDA0bG9vcAogLmFsaWduCTQsMHg5MAotTDAwN2RvbmU6CitMMDA1ZG9uZToKIAlhZGRsCTE2KCVlc3ApLCVlYngKIAl4b3JsCSVlZGksJWVzaQogCW1vdmwJJWVjeCwlZWJwCkBAIC0yNzc4LDYgKzI2MTIsMTE3NSBAQAogCXBvcGwJJWVieAogCXBvcGwJJWVicAogCXJldAorLnByaXZhdGVfZXh0ZXJuCV9fc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eAorLmFsaWduCTQKK19fc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eDoKKwlwdXNobAklZWJwCisJcHVzaGwJJWVieAorCXB1c2hsCSVlc2kKKwlwdXNobAklZWRpCisJY2FsbAlMMDA2cGljX3BvaW50CitMMDA2cGljX3BvaW50OgorCXBvcGwJJWVicAorCWxlYWwJTEtfWFhfWFgtTDAwNnBpY19wb2ludCglZWJwKSwlZWJwCitMYXZ4X3Nob3J0Y3V0OgorCXZ6ZXJvYWxsCisJdm1vdmRxYQkoJWVicCksJXhtbTcKKwl2bW92ZHFhCTE2KCVlYnApLCV4bW0wCisJdm1vdmRxYQkzMiglZWJwKSwleG1tMQorCXZtb3ZkcWEJNDgoJWVicCksJXhtbTIKKwl2bW92ZHFhCTY0KCVlYnApLCV4bW02CisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAkyNCglZXNwKSwlZWJwCisJbW92bAkyOCglZXNwKSwlZWR4CisJbW92bAklZXNwLCVlc2kKKwlzdWJsCSQyMDgsJWVzcAorCWFuZGwJJC02NCwlZXNwCisJdm1vdmRxYQkleG1tMCwxMTIoJWVzcCkKKwl2bW92ZHFhCSV4bW0xLDEyOCglZXNwKQorCXZtb3ZkcWEJJXhtbTIsMTQ0KCVlc3ApCisJc2hsbAkkNiwlZWR4CisJdm1vdmRxYQkleG1tNywxNjAoJWVzcCkKKwlhZGRsCSVlYnAsJWVkeAorCXZtb3ZkcWEJJXhtbTYsMTc2KCVlc3ApCisJYWRkbAkkNjQsJWVicAorCW1vdmwJJWVkaSwxOTIoJWVzcCkKKwltb3ZsCSVlYnAsMTk2KCVlc3ApCisJbW92bAklZWR4LDIwMCglZXNwKQorCW1vdmwJJWVzaSwyMDQoJWVzcCkKKwltb3ZsCSglZWRpKSwlZWF4CisJbW92bAk0KCVlZGkpLCVlYngKKwltb3ZsCTgoJWVkaSksJWVjeAorCW1vdmwJMTIoJWVkaSksJWVkeAorCW1vdmwJMTYoJWVkaSksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJdm1vdmRxdQktNjQoJWVicCksJXhtbTAKKwl2bW92ZHF1CS00OCglZWJwKSwleG1tMQorCXZtb3ZkcXUJLTMyKCVlYnApLCV4bW0yCisJdm1vdmRxdQktMTYoJWVicCksJXhtbTMKKwl2cHNodWZiCSV4bW02LCV4bW0wLCV4bW0wCisJdnBzaHVmYgkleG1tNiwleG1tMSwleG1tMQorCXZwc2h1ZmIJJXhtbTYsJXhtbTIsJXhtbTIKKwl2bW92ZHFhCSV4bW03LDk2KCVlc3ApCisJdnBzaHVmYgkleG1tNiwleG1tMywleG1tMworCXZwYWRkZAkleG1tNywleG1tMCwleG1tNAorCXZwYWRkZAkleG1tNywleG1tMSwleG1tNQorCXZwYWRkZAkleG1tNywleG1tMiwleG1tNgorCXZtb3ZkcWEJJXhtbTQsKCVlc3ApCisJbW92bAklZWN4LCVlYnAKKwl2bW92ZHFhCSV4bW01LDE2KCVlc3ApCisJeG9ybAklZWR4LCVlYnAKKwl2bW92ZHFhCSV4bW02LDMyKCVlc3ApCisJYW5kbAklZWJwLCVlc2kKKwlqbXAJTDAwN2xvb3AKKy5hbGlnbgk0LDB4OTAKK0wwMDdsb29wOgorCXNocmRsCSQyLCVlYngsJWVieAorCXhvcmwJJWVkeCwlZXNpCisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTQKKwltb3ZsCSVlYXgsJWVicAorCWFkZGwJKCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTMsJXhtbTcsJXhtbTcKKwl2bW92ZHFhCSV4bW0wLDY0KCVlc3ApCisJeG9ybAklZWN4LCVlYngKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwl2cHNybGRxCSQ0LCV4bW0zLCV4bW02CisJYWRkbAklZXNpLCVlZGkKKwlhbmRsCSVlYngsJWVicAorCXZweG9yCSV4bW0wLCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZweG9yCSV4bW0yLCV4bW02LCV4bW02CisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlYnAKKwl2bW92ZHFhCSV4bW03LDQ4KCVlc3ApCisJbW92bAklZWRpLCVlc2kKKwlhZGRsCTQoJWVzcCksJWVkeAorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWJ4LCVlYXgKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwlhZGRsCSVlYnAsJWVkeAorCWFuZGwJJWVheCwlZXNpCisJdnBzcmxkCSQzMSwleG1tNCwleG1tNgorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwl4b3JsCSVlYngsJWVzaQorCXZwc2xsZHEJJDEyLCV4bW00LCV4bW0wCisJdnBhZGRkCSV4bW00LCV4bW00LCV4bW00CisJbW92bAklZWR4LCVlYnAKKwlhZGRsCTgoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnBzcmxkCSQzMCwleG1tMCwleG1tNworCXZwb3IJJXhtbTYsJXhtbTQsJXhtbTQKKwlhZGRsCSVlc2ksJWVjeAorCWFuZGwJJWVkaSwlZWJwCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZwc2xsZAkkMiwleG1tMCwleG1tMAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZWJwCisJdnB4b3IJJXhtbTcsJXhtbTQsJXhtbTQKKwltb3ZsCSVlY3gsJWVzaQorCWFkZGwJMTIoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnB4b3IJJXhtbTAsJXhtbTQsJXhtbTQKKwlhZGRsCSVlYnAsJWVieAorCWFuZGwJJWVkeCwlZXNpCisJdm1vdmRxYQk5NiglZXNwKSwleG1tMAorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwl4b3JsCSVlZGksJWVzaQorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW01CisJbW92bAklZWJ4LCVlYnAKKwlhZGRsCTE2KCVlc3ApLCVlYXgKKwl2cGFkZGQJJXhtbTQsJXhtbTAsJXhtbTAKKwl2bW92ZHFhCSV4bW0xLDgwKCVlc3ApCisJeG9ybAklZWR4LCVlY3gKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2cHNybGRxCSQ0LCV4bW00LCV4bW03CisJYWRkbAklZXNpLCVlYXgKKwlhbmRsCSVlY3gsJWVicAorCXZweG9yCSV4bW0xLCV4bW01LCV4bW01CisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZweG9yCSV4bW0zLCV4bW03LCV4bW03CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJeG9ybAklZWR4LCVlYnAKKwl2bW92ZHFhCSV4bW0wLCglZXNwKQorCW1vdmwJJWVheCwlZXNpCisJYWRkbAkyMCglZXNwKSwlZWRpCisJdnB4b3IJJXhtbTcsJXhtbTUsJXhtbTUKKwl4b3JsCSVlY3gsJWVieAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWRpCisJYW5kbAklZWJ4LCVlc2kKKwl2cHNybGQJJDMxLCV4bW01LCV4bW03CisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCXhvcmwJJWVjeCwlZXNpCisJdnBzbGxkcQkkMTIsJXhtbTUsJXhtbTEKKwl2cGFkZGQJJXhtbTUsJXhtbTUsJXhtbTUKKwltb3ZsCSVlZGksJWVicAorCWFkZGwJMjQoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWF4CisJc2hsZGwJJDUsJWVkaSwlZWRpCisJdnBzcmxkCSQzMCwleG1tMSwleG1tMAorCXZwb3IJJXhtbTcsJXhtbTUsJXhtbTUKKwlhZGRsCSVlc2ksJWVkeAorCWFuZGwJJWVheCwlZWJwCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXZwc2xsZAkkMiwleG1tMSwleG1tMQorCXNocmRsCSQ3LCVlZGksJWVkaQorCXhvcmwJJWVieCwlZWJwCisJdnB4b3IJJXhtbTAsJXhtbTUsJXhtbTUKKwltb3ZsCSVlZHgsJWVzaQorCWFkZGwJMjgoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnB4b3IJJXhtbTEsJXhtbTUsJXhtbTUKKwlhZGRsCSVlYnAsJWVjeAorCWFuZGwJJWVkaSwlZXNpCisJdm1vdmRxYQkxMTIoJWVzcCksJXhtbTEKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tNgorCW1vdmwJJWVjeCwlZWJwCisJYWRkbAkzMiglZXNwKSwlZWJ4CisJdnBhZGRkCSV4bW01LCV4bW0xLCV4bW0xCisJdm1vdmRxYQkleG1tMiw5NiglZXNwKQorCXhvcmwJJWVkaSwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnBzcmxkcQkkNCwleG1tNSwleG1tMAorCWFkZGwJJWVzaSwlZWJ4CisJYW5kbAklZWR4LCVlYnAKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHhvcgkleG1tNCwleG1tMCwleG1tMAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXhvcmwJJWVkaSwlZWJwCisJdm1vdmRxYQkleG1tMSwxNiglZXNwKQorCW1vdmwJJWVieCwlZXNpCisJYWRkbAkzNiglZXNwKSwlZWF4CisJdnB4b3IJJXhtbTAsJXhtbTYsJXhtbTYKKwl4b3JsCSVlZHgsJWVjeAorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJYW5kbAklZWN4LCVlc2kKKwl2cHNybGQJJDMxLCV4bW02LCV4bW0wCisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZXNpCisJdnBzbGxkcQkkMTIsJXhtbTYsJXhtbTIKKwl2cGFkZGQJJXhtbTYsJXhtbTYsJXhtbTYKKwltb3ZsCSVlYXgsJWVicAorCWFkZGwJNDAoJWVzcCksJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkCSQzMCwleG1tMiwleG1tMQorCXZwb3IJJXhtbTAsJXhtbTYsJXhtbTYKKwlhZGRsCSVlc2ksJWVkaQorCWFuZGwJJWVieCwlZWJwCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZwc2xsZAkkMiwleG1tMiwleG1tMgorCXZtb3ZkcWEJNjQoJWVzcCksJXhtbTAKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwl4b3JsCSVlY3gsJWVicAorCXZweG9yCSV4bW0xLCV4bW02LCV4bW02CisJbW92bAklZWRpLCVlc2kKKwlhZGRsCTQ0KCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZweG9yCSV4bW0yLCV4bW02LCV4bW02CisJYWRkbAklZWJwLCVlZHgKKwlhbmRsCSVlYXgsJWVzaQorCXZtb3ZkcWEJMTEyKCVlc3ApLCV4bW0yCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXNocmRsCSQ3LCVlZGksJWVkaQorCXhvcmwJJWVieCwlZXNpCisJdnBhbGlnbnIJJDgsJXhtbTMsJXhtbTQsJXhtbTcKKwltb3ZsCSVlZHgsJWVicAorCWFkZGwJNDgoJWVzcCksJWVjeAorCXZwYWRkZAkleG1tNiwleG1tMiwleG1tMgorCXZtb3ZkcWEJJXhtbTMsNjQoJWVzcCkKKwl4b3JsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc3JsZHEJJDQsJXhtbTYsJXhtbTEKKwlhZGRsCSVlc2ksJWVjeAorCWFuZGwJJWVkaSwlZWJwCisJdnB4b3IJJXhtbTMsJXhtbTcsJXhtbTcKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdnB4b3IJJXhtbTUsJXhtbTEsJXhtbTEKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl4b3JsCSVlYXgsJWVicAorCXZtb3ZkcWEJJXhtbTIsMzIoJWVzcCkKKwltb3ZsCSVlY3gsJWVzaQorCWFkZGwJNTIoJWVzcCksJWVieAorCXZweG9yCSV4bW0xLCV4bW03LCV4bW03CisJeG9ybAklZWRpLCVlZHgKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlYnAsJWVieAorCWFuZGwJJWVkeCwlZXNpCisJdnBzcmxkCSQzMSwleG1tNywleG1tMQorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwl4b3JsCSVlZGksJWVzaQorCXZwc2xsZHEJJDEyLCV4bW03LCV4bW0zCisJdnBhZGRkCSV4bW03LCV4bW03LCV4bW03CisJbW92bAklZWJ4LCVlYnAKKwlhZGRsCTU2KCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVjeAorCXNobGRsCSQ1LCVlYngsJWVieAorCXZwc3JsZAkkMzAsJXhtbTMsJXhtbTIKKwl2cG9yCSV4bW0xLCV4bW03LCV4bW03CisJYWRkbAklZXNpLCVlYXgKKwlhbmRsCSVlY3gsJWVicAorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cHNsbGQJJDIsJXhtbTMsJXhtbTMKKwl2bW92ZHFhCTgwKCVlc3ApLCV4bW0xCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJeG9ybAklZWR4LCVlYnAKKwl2cHhvcgkleG1tMiwleG1tNywleG1tNworCW1vdmwJJWVheCwlZXNpCisJYWRkbAk2MCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlYngKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwl2cHhvcgkleG1tMywleG1tNywleG1tNworCWFkZGwJJWVicCwlZWRpCisJYW5kbAklZWJ4LCVlc2kKKwl2bW92ZHFhCTExMiglZXNwKSwleG1tMworCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cGFsaWducgkkOCwleG1tNiwleG1tNywleG1tMgorCXZweG9yCSV4bW00LCV4bW0wLCV4bW0wCisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCWFkZGwJKCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tMSwleG1tMCwleG1tMAorCXZtb3ZkcWEJJXhtbTQsODAoJWVzcCkKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZtb3ZkcWEJJXhtbTMsJXhtbTQKKwl2cGFkZGQJJXhtbTcsJXhtbTMsJXhtbTMKKwlhZGRsCSVlc2ksJWVkeAorCWFuZGwJJWVheCwlZWJwCisJdnB4b3IJJXhtbTIsJXhtbTAsJXhtbTAKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJeG9ybAklZWJ4LCVlYnAKKwl2cHNybGQJJDMwLCV4bW0wLCV4bW0yCisJdm1vdmRxYQkleG1tMyw0OCglZXNwKQorCW1vdmwJJWVkeCwlZXNpCisJYWRkbAk0KCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc2xsZAkkMiwleG1tMCwleG1tMAorCWFkZGwJJWVicCwlZWN4CisJYW5kbAklZWRpLCVlc2kKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlY3gsJWVicAorCWFkZGwJOCglZXNwKSwlZWJ4CisJdnBvcgkleG1tMiwleG1tMCwleG1tMAorCXhvcmwJJWVkaSwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdm1vdmRxYQk5NiglZXNwKSwleG1tMgorCWFkZGwJJWVzaSwlZWJ4CisJYW5kbAklZWR4LCVlYnAKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkxMiglZXNwKSwlZWF4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW0zCisJdnB4b3IJJXhtbTUsJXhtbTEsJXhtbTEKKwlhZGRsCTE2KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnB4b3IJJXhtbTIsJXhtbTEsJXhtbTEKKwl2bW92ZHFhCSV4bW01LDk2KCVlc3ApCisJYWRkbAklZXNpLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCXZtb3ZkcWEJJXhtbTQsJXhtbTUKKwl2cGFkZGQJJXhtbTAsJXhtbTQsJXhtbTQKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZweG9yCSV4bW0zLCV4bW0xLCV4bW0xCisJYWRkbAkyMCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwltb3ZsCSVlZGksJWVzaQorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZwc3JsZAkkMzAsJXhtbTEsJXhtbTMKKwl2bW92ZHFhCSV4bW00LCglZXNwKQorCWFkZGwJJWVicCwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCXZwc2xsZAkkMiwleG1tMSwleG1tMQorCWFkZGwJMjQoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJbW92bAklZWR4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2cG9yCSV4bW0zLCV4bW0xLCV4bW0xCisJYWRkbAkyOCglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwl2bW92ZHFhCTY0KCVlc3ApLCV4bW0zCisJbW92bAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlYnAsJWVieAorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tNAorCXZweG9yCSV4bW02LCV4bW0yLCV4bW0yCisJYWRkbAkzMiglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwltb3ZsCSVlYngsJWVicAorCXNobGRsCSQ1LCVlYngsJWVieAorCXZweG9yCSV4bW0zLCV4bW0yLCV4bW0yCisJdm1vdmRxYQkleG1tNiw2NCglZXNwKQorCWFkZGwJJWVzaSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwl2bW92ZHFhCTEyOCglZXNwKSwleG1tNgorCXZwYWRkZAkleG1tMSwleG1tNSwleG1tNQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnB4b3IJJXhtbTQsJXhtbTIsJXhtbTIKKwlhZGRsCTM2KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkCSQzMCwleG1tMiwleG1tNAorCXZtb3ZkcWEJJXhtbTUsMTYoJWVzcCkKKwlhZGRsCSVlYnAsJWVkaQorCXhvcmwJJWVjeCwlZXNpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cHNsbGQJJDIsJXhtbTIsJXhtbTIKKwlhZGRsCTQwKCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCW1vdmwJJWVkaSwlZWJwCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVicAorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdnBvcgkleG1tNCwleG1tMiwleG1tMgorCWFkZGwJNDQoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJdm1vdmRxYQk4MCglZXNwKSwleG1tNAorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWJwLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTUKKwl2cHhvcgkleG1tNywleG1tMywleG1tMworCWFkZGwJNDgoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZXNpCisJbW92bAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNCwleG1tMywleG1tMworCXZtb3ZkcWEJJXhtbTcsODAoJWVzcCkKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJdm1vdmRxYQkleG1tNiwleG1tNworCXZwYWRkZAkleG1tMiwleG1tNiwleG1tNgorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnB4b3IJJXhtbTUsJXhtbTMsJXhtbTMKKwlhZGRsCTUyKCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdnBzcmxkCSQzMCwleG1tMywleG1tNQorCXZtb3ZkcWEJJXhtbTYsMzIoJWVzcCkKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVkeCwlZXNpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cHNsbGQJJDIsJXhtbTMsJXhtbTMKKwlhZGRsCTU2KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJdnBvcgkleG1tNSwleG1tMywleG1tMworCWFkZGwJNjAoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJdm1vdmRxYQk5NiglZXNwKSwleG1tNQorCW1vdmwJJWVkaSwlZXNpCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZWJwLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdnBhbGlnbnIJJDgsJXhtbTIsJXhtbTMsJXhtbTYKKwl2cHhvcgkleG1tMCwleG1tNCwleG1tNAorCWFkZGwJKCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwl2bW92ZHFhCSV4bW0wLDk2KCVlc3ApCisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXZtb3ZkcWEJJXhtbTcsJXhtbTAKKwl2cGFkZGQJJXhtbTMsJXhtbTcsJXhtbTcKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJYWRkbAk0KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVicAorCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnBzcmxkCSQzMCwleG1tNCwleG1tNgorCXZtb3ZkcWEJJXhtbTcsNDgoJWVzcCkKKwlhZGRsCSVlYnAsJWVieAorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDIsJXhtbTQsJXhtbTQKKwlhZGRsCTgoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cG9yCSV4bW02LCV4bW00LCV4bW00CisJYWRkbAkxMiglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwl2bW92ZHFhCTY0KCVlc3ApLCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkaQorCXhvcmwJJWVjeCwlZXNpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tNworCXZweG9yCSV4bW0xLCV4bW01LCV4bW01CisJYWRkbAkxNiglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZweG9yCSV4bW02LCV4bW01LCV4bW01CisJdm1vdmRxYQkleG1tMSw2NCglZXNwKQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwl2bW92ZHFhCSV4bW0wLCV4bW0xCisJdnBhZGRkCSV4bW00LCV4bW0wLCV4bW0wCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNSwleG1tNQorCWFkZGwJMjAoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNybGQJJDMwLCV4bW01LCV4bW03CisJdm1vdmRxYQkleG1tMCwoJWVzcCkKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwl2cHNsbGQJJDIsJXhtbTUsJXhtbTUKKwlhZGRsCTI0KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCW1vdmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZGksJWVicAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBvcgkleG1tNywleG1tNSwleG1tNQorCWFkZGwJMjgoJWVzcCksJWVheAorCXZtb3ZkcWEJODAoJWVzcCksJXhtbTcKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwltb3ZsCSVlYngsJWVzaQorCXhvcmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlY3gsJWVzaQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cGFsaWducgkkOCwleG1tNCwleG1tNSwleG1tMAorCXZweG9yCSV4bW0yLCV4bW02LCV4bW02CisJYWRkbAkzMiglZXNwKSwlZWRpCisJYW5kbAklZWN4LCVlc2kKKwl4b3JsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlYngsJWVieAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJdm1vdmRxYQkleG1tMiw4MCglZXNwKQorCW1vdmwJJWVheCwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwl2bW92ZHFhCSV4bW0xLCV4bW0yCisJdnBhZGRkCSV4bW01LCV4bW0xLCV4bW0xCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlZGkKKwl2cHhvcgkleG1tMCwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWJwCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJMzYoJWVzcCksJWVkeAorCXZwc3JsZAkkMzAsJXhtbTYsJXhtbTAKKwl2bW92ZHFhCSV4bW0xLDE2KCVlc3ApCisJYW5kbAklZWJ4LCVlYnAKKwl4b3JsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlYXgsJWVheAorCW1vdmwJJWVkaSwlZXNpCisJdnBzbGxkCSQyLCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwlhZGRsCSVlYnAsJWVkeAorCXhvcmwJJWVheCwlZXNpCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCWFkZGwJNDAoJWVzcCksJWVjeAorCWFuZGwJJWVheCwlZXNpCisJdnBvcgkleG1tMCwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJdm1vdmRxYQk5NiglZXNwKSwleG1tMAorCW1vdmwJJWVkeCwlZWJwCisJeG9ybAklZWF4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVkaSwlZWJwCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJNDQoJWVzcCksJWVieAorCWFuZGwJJWVkaSwlZWJwCisJeG9ybAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwltb3ZsCSVlY3gsJWVzaQorCXhvcmwJJWVkaSwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWJwLCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tMQorCXZweG9yCSV4bW0zLCV4bW03LCV4bW03CisJYWRkbAk0OCglZXNwKSwlZWF4CisJYW5kbAklZWR4LCVlc2kKKwl4b3JsCSVlZGksJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXZweG9yCSV4bW0wLCV4bW03LCV4bW03CisJdm1vdmRxYQkleG1tMyw5NiglZXNwKQorCW1vdmwJJWVieCwlZWJwCisJeG9ybAklZWR4LCVlc2kKKwl2bW92ZHFhCTE0NCglZXNwKSwleG1tMworCXZwYWRkZAkleG1tNiwleG1tMiwleG1tMgorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVzaSwlZWF4CisJdnB4b3IJJXhtbTEsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVicAorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTUyKCVlc3ApLCVlZGkKKwl2cHNybGQJJDMwLCV4bW03LCV4bW0xCisJdm1vdmRxYQkleG1tMiwzMiglZXNwKQorCWFuZGwJJWVjeCwlZWJwCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwltb3ZsCSVlYXgsJWVzaQorCXZwc2xsZAkkMiwleG1tNywleG1tNworCXhvcmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlYngsJWVzaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlZGkKKwlhZGRsCTU2KCVlc3ApLCVlZHgKKwlhbmRsCSVlYngsJWVzaQorCXZwb3IJJXhtbTEsJXhtbTcsJXhtbTcKKwl4b3JsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXZtb3ZkcWEJNjQoJWVzcCksJXhtbTEKKwltb3ZsCSVlZGksJWVicAorCXhvcmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYXgsJWVicAorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlhZGRsCTYwKCVlc3ApLCVlY3gKKwlhbmRsCSVlYXgsJWVicAorCXhvcmwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVkaSwlZWRpCisJbW92bAklZWR4LCVlc2kKKwl4b3JsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVicCwlZWN4CisJeG9ybAklZWRpLCVlc2kKKwl4b3JsCSVlYXgsJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTIKKwl2cHhvcgkleG1tNCwleG1tMCwleG1tMAorCWFkZGwJKCVlc3ApLCVlYngKKwlhbmRsCSVlZGksJWVzaQorCXhvcmwJJWVheCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJdnB4b3IJJXhtbTEsJXhtbTAsJXhtbTAKKwl2bW92ZHFhCSV4bW00LDY0KCVlc3ApCisJbW92bAklZWN4LCVlYnAKKwl4b3JsCSVlZGksJWVzaQorCXZtb3ZkcWEJJXhtbTMsJXhtbTQKKwl2cGFkZGQJJXhtbTcsJXhtbTMsJXhtbTMKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXZweG9yCSV4bW0yLCV4bW0wLCV4bW0wCisJeG9ybAklZWR4LCVlYnAKKwl4b3JsCSVlZGksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk0KCVlc3ApLCVlYXgKKwl2cHNybGQJJDMwLCV4bW0wLCV4bW0yCisJdm1vdmRxYQkleG1tMyw0OCglZXNwKQorCWFuZGwJJWVkeCwlZWJwCisJeG9ybAklZWRpLCVlZHgKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwltb3ZsCSVlYngsJWVzaQorCXZwc2xsZAkkMiwleG1tMCwleG1tMAorCXhvcmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlY3gsJWVzaQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTgoJWVzcCksJWVkaQorCWFuZGwJJWVjeCwlZXNpCisJdnBvcgkleG1tMiwleG1tMCwleG1tMAorCXhvcmwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJdm1vdmRxYQk4MCglZXNwKSwleG1tMgorCW1vdmwJJWVheCwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlc2ksJWVkaQorCXhvcmwJJWVieCwlZWJwCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJMTIoJWVzcCksJWVkeAorCWFuZGwJJWVieCwlZWJwCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwltb3ZsCSVlZGksJWVzaQorCXhvcmwJJWVieCwlZWJwCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZWJwLCVlZHgKKwl4b3JsCSVlYXgsJWVzaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwl2cGFsaWducgkkOCwleG1tNywleG1tMCwleG1tMworCXZweG9yCSV4bW01LCV4bW0xLCV4bW0xCisJYWRkbAkxNiglZXNwKSwlZWN4CisJYW5kbAklZWF4LCVlc2kKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlZGksJWVkaQorCXZweG9yCSV4bW0yLCV4bW0xLCV4bW0xCisJdm1vdmRxYQkleG1tNSw4MCglZXNwKQorCW1vdmwJJWVkeCwlZWJwCisJeG9ybAklZWF4LCVlc2kKKwl2bW92ZHFhCSV4bW00LCV4bW01CisJdnBhZGRkCSV4bW0wLCV4bW00LCV4bW00CisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl2cHhvcgkleG1tMywleG1tMSwleG1tMQorCXhvcmwJJWVkaSwlZWJwCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCWFkZGwJMjAoJWVzcCksJWVieAorCXZwc3JsZAkkMzAsJXhtbTEsJXhtbTMKKwl2bW92ZHFhCSV4bW00LCglZXNwKQorCWFuZGwJJWVkaSwlZWJwCisJeG9ybAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwltb3ZsCSVlY3gsJWVzaQorCXZwc2xsZAkkMiwleG1tMSwleG1tMQorCXhvcmwJJWVkaSwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWJwLCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTI0KCVlc3ApLCVlYXgKKwlhbmRsCSVlZHgsJWVzaQorCXZwb3IJJXhtbTMsJXhtbTEsJXhtbTEKKwl4b3JsCSVlZGksJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCXZtb3ZkcWEJOTYoJWVzcCksJXhtbTMKKwltb3ZsCSVlYngsJWVicAorCXhvcmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlY3gsJWVicAorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTI4KCVlc3ApLCVlZGkKKwlhbmRsCSVlY3gsJWVicAorCXhvcmwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJbW92bAklZWF4LCVlc2kKKwl4b3JsCSVlY3gsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWRpCisJeG9ybAklZWJ4LCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWRpCisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTQKKwl2cHhvcgkleG1tNiwleG1tMiwleG1tMgorCWFkZGwJMzIoJWVzcCksJWVkeAorCWFuZGwJJWVieCwlZXNpCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwl2cHhvcgkleG1tMywleG1tMiwleG1tMgorCXZtb3ZkcWEJJXhtbTYsOTYoJWVzcCkKKwltb3ZsCSVlZGksJWVicAorCXhvcmwJJWVieCwlZXNpCisJdm1vdmRxYQkleG1tNSwleG1tNgorCXZwYWRkZAkleG1tMSwleG1tNSwleG1tNQorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJdnB4b3IJJXhtbTQsJXhtbTIsJXhtbTIKKwl4b3JsCSVlYXgsJWVicAorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlhZGRsCTM2KCVlc3ApLCVlY3gKKwl2cHNybGQJJDMwLCV4bW0yLCV4bW00CisJdm1vdmRxYQkleG1tNSwxNiglZXNwKQorCWFuZGwJJWVheCwlZWJwCisJeG9ybAklZWJ4LCVlYXgKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwltb3ZsCSVlZHgsJWVzaQorCXZwc2xsZAkkMiwleG1tMiwleG1tMgorCXhvcmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZWJwLCVlY3gKKwl4b3JsCSVlZGksJWVzaQorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTQwKCVlc3ApLCVlYngKKwlhbmRsCSVlZGksJWVzaQorCXZwb3IJJXhtbTQsJXhtbTIsJXhtbTIKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXZtb3ZkcWEJNjQoJWVzcCksJXhtbTQKKwltb3ZsCSVlY3gsJWVicAorCXhvcmwJJWVkaSwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZHgsJWVicAorCXhvcmwJJWVkaSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTQ0KCVlc3ApLCVlYXgKKwlhbmRsCSVlZHgsJWVicAorCXhvcmwJJWVkaSwlZWR4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl4b3JsCSVlZHgsJWVicAorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlhZGRsCSVlYngsJWVheAorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW01CisJdnB4b3IJJXhtbTcsJXhtbTMsJXhtbTMKKwlhZGRsCTQ4KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnB4b3IJJXhtbTQsJXhtbTMsJXhtbTMKKwl2bW92ZHFhCSV4bW03LDY0KCVlc3ApCisJYWRkbAklZXNpLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCXZtb3ZkcWEJJXhtbTYsJXhtbTcKKwl2cGFkZGQJJXhtbTIsJXhtbTYsJXhtbTYKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCXZweG9yCSV4bW01LCV4bW0zLCV4bW0zCisJYWRkbAk1MiglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwltb3ZsCSVlZGksJWVzaQorCXNobGRsCSQ1LCVlZGksJWVkaQorCXZwc3JsZAkkMzAsJXhtbTMsJXhtbTUKKwl2bW92ZHFhCSV4bW02LDMyKCVlc3ApCisJYWRkbAklZWJwLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdnBzbGxkCSQyLCV4bW0zLCV4bW0zCisJYWRkbAk1NiglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlZHgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCXZwb3IJJXhtbTUsJXhtbTMsJXhtbTMKKwlhZGRsCTYwKCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVicAorCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWJwLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAkoJWVzcCksJWVheAorCXZwYWRkZAkleG1tMywleG1tNywleG1tNworCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXZtb3ZkcWEJJXhtbTcsNDgoJWVzcCkKKwl4b3JsCSVlZHgsJWVicAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAk4KCVlc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCW1vdmwJJWVkaSwlZWJwCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVicAorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJYWRkbAkxMiglZXNwKSwlZWN4CisJeG9ybAklZWF4LCVlYnAKKwltb3ZsCSVlZHgsJWVzaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVicCwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwlzaHJkbAkkNywlZWRpLCVlZGkKKwlhZGRsCSVlZHgsJWVjeAorCW1vdmwJMTk2KCVlc3ApLCVlYnAKKwljbXBsCTIwMCglZXNwKSwlZWJwCisJamUJTDAwOGRvbmUKKwl2bW92ZHFhCTE2MCglZXNwKSwleG1tNworCXZtb3ZkcWEJMTc2KCVlc3ApLCV4bW02CisJdm1vdmRxdQkoJWVicCksJXhtbTAKKwl2bW92ZHF1CTE2KCVlYnApLCV4bW0xCisJdm1vdmRxdQkzMiglZWJwKSwleG1tMgorCXZtb3ZkcXUJNDgoJWVicCksJXhtbTMKKwlhZGRsCSQ2NCwlZWJwCisJdnBzaHVmYgkleG1tNiwleG1tMCwleG1tMAorCW1vdmwJJWVicCwxOTYoJWVzcCkKKwl2bW92ZHFhCSV4bW03LDk2KCVlc3ApCisJYWRkbAkxNiglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0xLCV4bW0xCisJbW92bAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTQKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2bW92ZHFhCSV4bW00LCglZXNwKQorCWFkZGwJMjAoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJbW92bAklZWJ4LCVlc2kKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlYnAsJWVheAorCXhvcmwJJWVkeCwlZXNpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTI0KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAkyOCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwltb3ZsCSVlZGksJWVzaQorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVicCwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCWFkZGwJMzIoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJdnBzaHVmYgkleG1tNiwleG1tMiwleG1tMgorCW1vdmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnBhZGRkCSV4bW03LCV4bW0xLCV4bW01CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJdm1vdmRxYQkleG1tNSwxNiglZXNwKQorCWFkZGwJMzYoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJbW92bAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlYnAsJWVieAorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTQwKCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWJwCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk0NCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJNDgoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJdnBzaHVmYgkleG1tNiwleG1tMywleG1tMworCW1vdmwJJWVkaSwlZWJwCisJc2hsZGwJJDUsJWVkaSwlZWRpCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW02CisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVicAorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWR4CisJdm1vdmRxYQkleG1tNiwzMiglZXNwKQorCWFkZGwJNTIoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCW1vdmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZGksJWVicAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwltb3ZsCTE5MiglZXNwKSwlZWJwCisJYWRkbAkoJWVicCksJWVheAorCWFkZGwJNCglZWJwKSwlZXNpCisJYWRkbAk4KCVlYnApLCVlY3gKKwltb3ZsCSVlYXgsKCVlYnApCisJYWRkbAkxMiglZWJwKSwlZWR4CisJbW92bAklZXNpLDQoJWVicCkKKwlhZGRsCTE2KCVlYnApLCVlZGkKKwltb3ZsCSVlY3gsJWVieAorCW1vdmwJJWVjeCw4KCVlYnApCisJeG9ybAklZWR4LCVlYngKKwltb3ZsCSVlZHgsMTIoJWVicCkKKwltb3ZsCSVlZGksMTYoJWVicCkKKwltb3ZsCSVlc2ksJWVicAorCWFuZGwJJWVieCwlZXNpCisJbW92bAklZWJwLCVlYngKKwlqbXAJTDAwN2xvb3AKKy5hbGlnbgk0LDB4OTAKK0wwMDhkb25lOgorCWFkZGwJMTYoJWVzcCksJWVieAorCXhvcmwJJWVkaSwlZXNpCisJbW92bAklZWN4LCVlYnAKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVkaSwlZWJwCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVicAorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWJwLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWRpCisJeG9ybAklZWN4LCVlYnAKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVkaQorCWFkZGwJMjgoJWVzcCksJWVkeAorCXhvcmwJJWVieCwlZWJwCisJbW92bAklZWRpLCVlc2kKKwlzaGxkbAkkNSwlZWRpLCVlZGkKKwlhZGRsCSVlYnAsJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlZHgKKwlhZGRsCTMyKCVlc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlZGksJWVkaQorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAkzNiglZXNwKSwlZWJ4CisJeG9ybAklZWRpLCVlYnAKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVicCwlZWJ4CisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJWVzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlYnAKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWJwCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVlc3ApLCVlZGkKKwl4b3JsCSVlY3gsJWVicAorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZGkKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWRpCisJYWRkbAk0OCglZXNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlZGksJWVicAorCXNobGRsCSQ1LCVlZGksJWVkaQorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlYnAKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVkeAorCWFkZGwJNTIoJWVzcCksJWVjeAorCXhvcmwJJWVheCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlYnAsJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVkaSwlZWRpCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVlc3ApLCVlYngKKwl4b3JsCSVlZGksJWVzaQorCW1vdmwJJWVjeCwlZWJwCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZGksJWVicAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglZXNwKSwlZWF4CisJeG9ybAklZWR4LCVlYnAKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVicCwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2emVyb2FsbAorCW1vdmwJMTkyKCVlc3ApLCVlYnAKKwlhZGRsCSglZWJwKSwlZWF4CisJbW92bAkyMDQoJWVzcCksJWVzcAorCWFkZGwJNCglZWJwKSwlZXNpCisJYWRkbAk4KCVlYnApLCVlY3gKKwltb3ZsCSVlYXgsKCVlYnApCisJYWRkbAkxMiglZWJwKSwlZWR4CisJbW92bAklZXNpLDQoJWVicCkKKwlhZGRsCTE2KCVlYnApLCVlZGkKKwltb3ZsCSVlY3gsOCglZWJwKQorCW1vdmwJJWVkeCwxMiglZWJwKQorCW1vdmwJJWVkaSwxNiglZWJwKQorCXBvcGwJJWVkaQorCXBvcGwJJWVzaQorCXBvcGwJJWVieAorCXBvcGwJJWVicAorCXJldAogLmFsaWduCTYsMHg5MAogTEtfWFhfWFg6CiAubG9uZwkxNTE4NTAwMjQ5LDE1MTg1MDAyNDksMTUxODUwMDI0OSwxNTE4NTAwMjQ5CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Ni9jcnlwdG8vc2hhL3NoYTI1Ni01ODYuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5TCmluZGV4IGYwYmE2MTIuLjg0MTg1NGYgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5TCkBAIC0zNiwxMSArMzYsMTAgQEAKIAlqeglMMDAzbm9feG1tCiAJYW5kbAkkMTA3Mzc0MTgyNCwlZWN4CiAJYW5kbAkkMjY4NDM1OTY4LCVlYngKLQl0ZXN0bAkkNTM2ODcwOTEyLCVlZHgKLQlqbnoJTDAwNHNoYWV4dAogCW9ybAklZWJ4LCVlY3gKIAlhbmRsCSQxMzQyMTc3MjgwLCVlY3gKIAljbXBsCSQxMzQyMTc3MjgwLCVlY3gKKwlqZQlMMDA0QVZYCiAJdGVzdGwJJDUxMiwlZWJ4CiAJam56CUwwMDVTU1NFMwogTDAwM25vX3htbToKQEAgLTMxNjYsMjA0ICszMTY1LDYgQEAKIAlwb3BsCSVlYnAKIAlyZXQKIC5hbGlnbgk1LDB4OTAKLUwwMDRzaGFleHQ6Ci0Jc3VibAkkMzIsJWVzcAotCW1vdmRxdQkoJWVzaSksJXhtbTEKLQlsZWFsCTEyOCglZWJwKSwlZWJwCi0JbW92ZHF1CTE2KCVlc2kpLCV4bW0yCi0JbW92ZHFhCTEyOCglZWJwKSwleG1tNwotCXBzaHVmZAkkMjcsJXhtbTEsJXhtbTAKLQlwc2h1ZmQJJDE3NywleG1tMSwleG1tMQotCXBzaHVmZAkkMjcsJXhtbTIsJXhtbTIKLS5ieXRlCTEwMiwxNSw1OCwxNSwyMDIsOAotCXB1bnBja2xxZHEJJXhtbTAsJXhtbTIKLQlqbXAJTDAxMGxvb3Bfc2hhZXh0Ci0uYWxpZ24JNCwweDkwCi1MMDEwbG9vcF9zaGFleHQ6Ci0JbW92ZHF1CSglZWRpKSwleG1tMwotCW1vdmRxdQkxNiglZWRpKSwleG1tNAotCW1vdmRxdQkzMiglZWRpKSwleG1tNQotLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCi0JbW92ZHF1CTQ4KCVlZGkpLCV4bW02Ci0JbW92ZHFhCSV4bW0yLDE2KCVlc3ApCi0JbW92ZHFhCS0xMjgoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tMywleG1tMAotLmJ5dGUJMTAyLDE1LDU2LDAsMjMxCi0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW5vcAotCW1vdmRxYQkleG1tMSwoJWVzcCkKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJLTExMiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW00LCV4bW0wCi0uYnl0ZQkxMDIsMTUsNTYsMCwyMzkKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbGVhbAk2NCglZWRpKSwlZWRpCi0uYnl0ZQkxNSw1NiwyMDQsMjIwCi0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCS05NiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW01LCV4bW0wCi0uYnl0ZQkxMDIsMTUsNTYsMCwyNDcKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW02LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUzLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tMwotLmJ5dGUJMTUsNTYsMjA0LDIyOQotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQktODAoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNiwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDIyMgotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTMsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTQsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW00Ci0uYnl0ZQkxNSw1NiwyMDQsMjM4Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCS02NCglZWJwKSwleG1tMAotCXBhZGRkCSV4bW0zLCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjI3Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNCwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1MSw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwNCwyNDMKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJLTQ4KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTQsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMzYKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW01LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUyLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNgotLmJ5dGUJMTUsNTYsMjA0LDIyMAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQktMzIoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNSwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDI0NQotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTYsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTMsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW0zCi0uYnl0ZQkxNSw1NiwyMDQsMjI5Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCS0xNiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW02LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjIyCi0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tMywleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1NCw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTQKLS5ieXRlCTE1LDU2LDIwNCwyMzgKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJKCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTMsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMjcKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW00LCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNQotLmJ5dGUJMTUsNTYsMjA0LDI0MwotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQkxNiglZWJwKSwleG1tMAotCXBhZGRkCSV4bW00LCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjM2Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNSwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1Miw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTYKLS5ieXRlCTE1LDU2LDIwNCwyMjAKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJMzIoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNSwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDI0NQotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTYsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTMsNAotCW5vcAotCXBhZGRkCSV4bW03LCV4bW0zCi0uYnl0ZQkxNSw1NiwyMDQsMjI5Ci0uYnl0ZQkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCTQ4KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTYsJXhtbTAKLS5ieXRlCTE1LDU2LDIwNSwyMjIKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0JbW92ZHFhCSV4bW0zLCV4bW03Ci0uYnl0ZQkxMDIsMTUsNTgsMTUsMjU0LDQKLQlub3AKLQlwYWRkZAkleG1tNywleG1tNAotLmJ5dGUJMTUsNTYsMjA0LDIzOAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQk2NCglZWJwKSwleG1tMAotCXBhZGRkCSV4bW0zLCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjI3Ci0uYnl0ZQkxNSw1NiwyMDMsMjA5Ci0JcHNodWZkCSQxNCwleG1tMCwleG1tMAotCW1vdmRxYQkleG1tNCwleG1tNwotLmJ5dGUJMTAyLDE1LDU4LDE1LDI1MSw0Ci0Jbm9wCi0JcGFkZGQJJXhtbTcsJXhtbTUKLS5ieXRlCTE1LDU2LDIwNCwyNDMKLS5ieXRlCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJODAoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNCwleG1tMAotLmJ5dGUJMTUsNTYsMjA1LDIzNgotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQltb3ZkcWEJJXhtbTUsJXhtbTcKLS5ieXRlCTEwMiwxNSw1OCwxNSwyNTIsNAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCXBhZGRkCSV4bW03LCV4bW02Ci0JbW92ZHFhCTk2KCVlYnApLCV4bW0wCi0JcGFkZGQJJXhtbTUsJXhtbTAKLS5ieXRlCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJJDE0LCV4bW0wLCV4bW0wCi0uYnl0ZQkxNSw1NiwyMDUsMjQ1Ci0JbW92ZHFhCTEyOCglZWJwKSwleG1tNwotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCW1vdmRxYQkxMTIoJWVicCksJXhtbTAKLQlwYWRkZAkleG1tNiwleG1tMAotCW5vcAotLmJ5dGUJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAkkMTQsJXhtbTAsJXhtbTAKLQljbXBsCSVlZGksJWVheAotCW5vcAotLmJ5dGUJMTUsNTYsMjAzLDIwMgotCXBhZGRkCTE2KCVlc3ApLCV4bW0yCi0JcGFkZGQJKCVlc3ApLCV4bW0xCi0Jam56CUwwMTBsb29wX3NoYWV4dAotCXBzaHVmZAkkMTc3LCV4bW0yLCV4bW0yCi0JcHNodWZkCSQyNywleG1tMSwleG1tNwotCXBzaHVmZAkkMTc3LCV4bW0xLCV4bW0xCi0JcHVucGNraHFkcQkleG1tMiwleG1tMQotLmJ5dGUJMTAyLDE1LDU4LDE1LDIxNSw4Ci0JbW92bAk0NCglZXNwKSwlZXNwCi0JbW92ZHF1CSV4bW0xLCglZXNpKQotCW1vdmRxdQkleG1tMiwxNiglZXNpKQotCXBvcGwJJWVkaQotCXBvcGwJJWVzaQotCXBvcGwJJWVieAotCXBvcGwJJWVicAotCXJldAotLmFsaWduCTUsMHg5MAogTDAwNVNTU0UzOgogCWxlYWwJLTk2KCVlc3ApLCVlc3AKIAltb3ZsCSglZXNpKSwlZWF4CkBAIC0zMzgzLDkgKzMxODQsOSBAQAogCW1vdmwJJWVjeCwyNCglZXNwKQogCW1vdmwJJWVzaSwyOCglZXNwKQogCW1vdmRxYQkyNTYoJWVicCksJXhtbTcKLQlqbXAJTDAxMWdyYW5kX3Nzc2UzCisJam1wCUwwMTBncmFuZF9zc3NlMwogLmFsaWduCTQsMHg5MAotTDAxMWdyYW5kX3Nzc2UzOgorTDAxMGdyYW5kX3Nzc2UzOgogCW1vdmRxdQkoJWVkaSksJXhtbTAKIAltb3ZkcXUJMTYoJWVkaSksJXhtbTEKIAltb3ZkcXUJMzIoJWVkaSksJXhtbTIKQEAgLTM0MDgsOSArMzIwOSw5IEBACiAJcGFkZGQJJXhtbTMsJXhtbTcKIAltb3ZkcWEJJXhtbTYsNjQoJWVzcCkKIAltb3ZkcWEJJXhtbTcsODAoJWVzcCkKLQlqbXAJTDAxMnNzc2UzXzAwXzQ3CisJam1wCUwwMTFzc3NlM18wMF80NwogLmFsaWduCTQsMHg5MAotTDAxMnNzc2UzXzAwXzQ3OgorTDAxMXNzc2UzXzAwXzQ3OgogCWFkZGwJJDY0LCVlYnAKIAltb3ZsCSVlZHgsJWVjeAogCW1vdmRxYQkleG1tMSwleG1tNApAQCAtNDA1Myw3ICszODU0LDcgQEAKIAlhZGRsCSVlY3gsJWVheAogCW1vdmRxYQkleG1tNiw4MCglZXNwKQogCWNtcGwJJDY2MDUxLDY0KCVlYnApCi0Jam5lCUwwMTJzc3NlM18wMF80NworCWpuZQlMMDExc3NzZTNfMDBfNDcKIAltb3ZsCSVlZHgsJWVjeAogCXJvcmwJJDE0LCVlZHgKIAltb3ZsCTIwKCVlc3ApLCVlc2kKQEAgLTQ1NjcsMTMgKzQzNjgsMTE5NCBAQAogCW1vdmRxYQk2NCglZWJwKSwleG1tNwogCXN1YmwJJDE5MiwlZWJwCiAJY21wbAkxMDQoJWVzcCksJWVkaQotCWpiCUwwMTFncmFuZF9zc3NlMworCWpiCUwwMTBncmFuZF9zc3NlMwogCW1vdmwJMTA4KCVlc3ApLCVlc3AKIAlwb3BsCSVlZGkKIAlwb3BsCSVlc2kKIAlwb3BsCSVlYngKIAlwb3BsCSVlYnAKIAlyZXQKKy5hbGlnbgk1LDB4OTAKK0wwMDRBVlg6CisJbGVhbAktOTYoJWVzcCksJWVzcAorCXZ6ZXJvYWxsCisJbW92bAkoJWVzaSksJWVheAorCW1vdmwJNCglZXNpKSwlZWJ4CisJbW92bAk4KCVlc2kpLCVlY3gKKwltb3ZsCTEyKCVlc2kpLCVlZGkKKwltb3ZsCSVlYngsNCglZXNwKQorCXhvcmwJJWVjeCwlZWJ4CisJbW92bAklZWN4LDgoJWVzcCkKKwltb3ZsCSVlZGksMTIoJWVzcCkKKwltb3ZsCTE2KCVlc2kpLCVlZHgKKwltb3ZsCTIwKCVlc2kpLCVlZGkKKwltb3ZsCTI0KCVlc2kpLCVlY3gKKwltb3ZsCTI4KCVlc2kpLCVlc2kKKwltb3ZsCSVlZGksMjAoJWVzcCkKKwltb3ZsCTEwMCglZXNwKSwlZWRpCisJbW92bAklZWN4LDI0KCVlc3ApCisJbW92bAklZXNpLDI4KCVlc3ApCisJdm1vdmRxYQkyNTYoJWVicCksJXhtbTcKKwlqbXAJTDAxMmdyYW5kX2F2eAorLmFsaWduCTUsMHg5MAorTDAxMmdyYW5kX2F2eDoKKwl2bW92ZHF1CSglZWRpKSwleG1tMAorCXZtb3ZkcXUJMTYoJWVkaSksJXhtbTEKKwl2bW92ZHF1CTMyKCVlZGkpLCV4bW0yCisJdm1vdmRxdQk0OCglZWRpKSwleG1tMworCWFkZGwJJDY0LCVlZGkKKwl2cHNodWZiCSV4bW03LCV4bW0wLCV4bW0wCisJbW92bAklZWRpLDEwMCglZXNwKQorCXZwc2h1ZmIJJXhtbTcsJXhtbTEsJXhtbTEKKwl2cHNodWZiCSV4bW03LCV4bW0yLCV4bW0yCisJdnBhZGRkCSglZWJwKSwleG1tMCwleG1tNAorCXZwc2h1ZmIJJXhtbTcsJXhtbTMsJXhtbTMKKwl2cGFkZGQJMTYoJWVicCksJXhtbTEsJXhtbTUKKwl2cGFkZGQJMzIoJWVicCksJXhtbTIsJXhtbTYKKwl2cGFkZGQJNDgoJWVicCksJXhtbTMsJXhtbTcKKwl2bW92ZHFhCSV4bW00LDMyKCVlc3ApCisJdm1vdmRxYQkleG1tNSw0OCglZXNwKQorCXZtb3ZkcWEJJXhtbTYsNjQoJWVzcCkKKwl2bW92ZHFhCSV4bW03LDgwKCVlc3ApCisJam1wCUwwMTNhdnhfMDBfNDcKKy5hbGlnbgk0LDB4OTAKK0wwMTNhdnhfMDBfNDc6CisJYWRkbAkkNjQsJWVicAorCXZwYWxpZ25yCSQ0LCV4bW0wLCV4bW0xLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZXNpCisJdnBhbGlnbnIJJDQsJXhtbTIsJXhtbTMsJXhtbTcKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQ3LCV4bW00LCV4bW02CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTYoJWVzcCkKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxkCSQzLCV4bW00LCV4bW03CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJNCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LCglZXNwKQorCXZweG9yCSV4bW02LCV4bW03LCV4bW00CisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjgoJWVzcCksJWVkeAorCXZwc2h1ZmQJJDI1MCwleG1tMywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzcmxkCSQxMSwleG1tNiwleG1tNgorCWFkZGwJMzIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJMTIoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBzbGxkCSQxMSwleG1tNSwleG1tNQorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTUKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkoJWVzcCksJWVkaQorCXZwYWRkZAkleG1tNCwleG1tMCwleG1tMAorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTM2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAk4KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZwc3JsZHEJJDgsJXhtbTcsJXhtbTcKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzaHVmZAkkODAsJXhtbTAsJXhtbTcKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCw4KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsMjQoJWVzcCkKKwl2cHNybHEJJDE5LCV4bW03LCV4bW03CisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjAoJWVzcCksJWVkeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNodWZkCSQyMzIsJXhtbTYsJXhtbTcKKwlhZGRsCTQwKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2xsZHEJJDgsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cGFkZGQJJXhtbTcsJXhtbTAsJXhtbTAKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTgoJWVzcCksJWVzaQorCXZwYWRkZAkoJWVicCksJXhtbTAsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTQ0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJdm1vdmRxYQkleG1tNiwzMiglZXNwKQorCXZwYWxpZ25yCSQ0LCV4bW0xLCV4bW0yLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlc2kKKwl2cGFsaWducgkkNCwleG1tMywleG1tMCwleG1tNworCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXZwYWRkZAkleG1tNywleG1tMSwleG1tMQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDE2KCVlc3ApCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJdnBzaHVmZAkkMjUwLCV4bW0wLCV4bW03CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJYWRkbAk0OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTEsJXhtbTEKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTUyKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0xLCV4bW0xCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNodWZkCSQ4MCwleG1tMSwleG1tNworCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsOCglZXNwKQorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk1NiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWRkZAkleG1tNywleG1tMSwleG1tMQorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVzaQorCXZwYWRkZAkxNiglZWJwKSwleG1tMSwleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyMCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCw0KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNjAoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZtb3ZkcWEJJXhtbTYsNDgoJWVzcCkKKwl2cGFsaWducgkkNCwleG1tMiwleG1tMywleG1tNAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVzaQorCXZwYWxpZ25yCSQ0LCV4bW0wLCV4bW0xLCV4bW03CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDE2KCVlc3ApCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCXZwc3JsZAkkMywleG1tNCwleG1tNworCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXZwc2xsZAkkMTQsJXhtbTQsJXhtbTUKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwoJWVzcCkKKwl2cHhvcgkleG1tNiwleG1tNywleG1tNAorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTI4KCVlc3ApLCVlZHgKKwl2cHNodWZkCSQyNTAsJXhtbTEsJXhtbTcKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCXZwc3JsZAkkMTEsJXhtbTYsJXhtbTYKKwlhZGRsCTY0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTEyKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwc2xsZAkkMTEsJXhtbTUsJXhtbTUKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlc2kKKwl2cHhvcgkleG1tNiwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTIoJWVzcCkKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTIsJXhtbTIKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyOCglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJMjQoJWVzcCksJWVkeAorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAk2OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNodWZkCSQxMzIsJXhtbTYsJXhtbTcKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc2h1ZmQJJDgwLCV4bW0yLCV4bW03CisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsOCglZXNwKQorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlZGkKKwl2cHhvcgkleG1tNSwleG1tNiwleG1tNgorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDI0KCVlc3ApCisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk3MiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTQoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBhZGRkCSV4bW03LCV4bW0yLCV4bW0yCisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlc2kKKwl2cGFkZGQJMzIoJWVicCksJXhtbTIsJXhtbTYKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsNCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMjAoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTc2KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJdm1vdmRxYQkleG1tNiw2NCglZXNwKQorCXZwYWxpZ25yCSQ0LCV4bW0zLCV4bW0wLCV4bW00CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAk0KCVlc3ApLCVlc2kKKwl2cGFsaWducgkkNCwleG1tMSwleG1tMiwleG1tNworCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXZwYWRkZAkleG1tNywleG1tMywleG1tMworCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDE2KCVlc3ApCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJdnBzaHVmZAkkMjUwLCV4bW0yLCV4bW03CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJYWRkbAk4MCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkoJWVzcCksJWVzaQorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI4KCVlc3ApCisJdnB4b3IJJXhtbTUsJXhtbTQsJXhtbTQKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJdnBzcmxxCSQxNywleG1tNywleG1tNQorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl2cGFkZGQJJXhtbTQsJXhtbTMsJXhtbTMKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwxMiglZXNwKQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJdnBzcmxxCSQxOSwleG1tNywleG1tNworCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwlhZGRsCTg0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCXZwc2h1ZmQJJDEzMiwleG1tNiwleG1tNworCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwl2cHNybGRxCSQ4LCV4bW03LCV4bW03CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZXNpCisJdnBhZGRkCSV4bW03LCV4bW0zLCV4bW0zCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCSglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwl2cHNodWZkCSQ4MCwleG1tMywleG1tNworCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwl2cHNybHEJJDE3LCV4bW03LCV4bW01CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCXZweG9yCSV4bW01LCV4bW02LCV4bW02CisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsOCglZXNwKQorCXZwc3JscQkkMTksJXhtbTcsJXhtbTcKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJdnBzaHVmZAkkMjMyLCV4bW02LCV4bW03CisJYWRkbAk4OCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwl2cHNsbGRxCSQ4LCV4bW03LCV4bW03CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWRkZAkleG1tNywleG1tMywleG1tMworCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVzaQorCXZwYWRkZAk0OCglZWJwKSwleG1tMywleG1tNgorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyMCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCw0KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJOTIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCXZtb3ZkcWEJJXhtbTYsODAoJWVzcCkKKwljbXBsCSQ2NjA1MSw2NCglZWJwKQorCWpuZQlMMDEzYXZ4XzAwXzQ3CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDE2KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LCglZXNwKQorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTI4KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJMzIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTEyKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwxMiglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkoJWVzcCksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDI4KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJMjQoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAkzNiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMTYoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsOCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsMjQoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkyMCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTQwKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJOCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDQoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjQoJWVzcCksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDIwKCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJMTYoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYngsJWVheAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk0NCglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYXgKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVheAorCWFkZGwJKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJNCglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTgoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsKCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwxNiglZXNwKQorCXhvcmwJJWVheCwlZWN4CisJeG9ybAklZWRpLCVlYXgKKwlhZGRsCTEyKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNDgoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTI4KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJKCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJNCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyOCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkxNiglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsMTIoJWVzcCkKKwl4b3JsCSVlYngsJWVjeAorCXhvcmwJJWVkaSwlZWJ4CisJYWRkbAk4KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNTIoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTI0KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjgoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMjQoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTIoJWVzcCksJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDgoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAk0KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWF4LCVlYngKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNTYoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWJ4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYngKKwlhZGRsCTIwKCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjQoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyOCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwyMCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYngsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCw0KCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJKCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNjAoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlhZGRsCSVlY3gsJWVheAorCW1vdmwJJWVkeCwlZWN4CisJc2hyZGwJJDE0LCVlZHgsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkyNCglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCwxNiglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAk0KCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCwoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTY0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjAoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMTIoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyOCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCTI0KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNjgoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCTgoJWVzcCksJWVkeAorCWFkZGwJJWVjeCwlZWF4CisJbW92bAklZWR4LCVlY3gKKwlzaHJkbAkkMTQsJWVkeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTE2KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDgoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWF4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWF4LDI0KCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJMjAoJWVzcCksJWVkeAorCXNocmRsCSQxMSwlZWN4LCVlY3gKKwlhbmRsCSVlYXgsJWVieAorCXhvcmwJJWVzaSwlZWN4CisJYWRkbAk3MiglZXNwKSwlZWR4CisJeG9ybAklZWRpLCVlYngKKwlzaHJkbAkkMiwlZWN4LCVlY3gKKwlhZGRsCSVlZHgsJWVieAorCWFkZGwJNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTgoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAkxMiglZXNwKSwlZWRpCisJeG9ybAklZWRpLCVlc2kKKwlzaHJkbAkkNSwlZWR4LCVlZHgKKwlhbmRsCSVlY3gsJWVzaQorCW1vdmwJJWVjeCw0KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVieCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVieCwyMCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCTE2KCVlc3ApLCVlZHgKKwlzaHJkbAkkMTEsJWVjeCwlZWN4CisJYW5kbAklZWJ4LCVlYXgKKwl4b3JsCSVlc2ksJWVjeAorCWFkZGwJNzYoJWVzcCksJWVkeAorCXhvcmwJJWVkaSwlZWF4CisJc2hyZGwJJDIsJWVjeCwlZWN4CisJYWRkbAklZWR4LCVlYXgKKwlhZGRsCSglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVzaQorCXhvcmwJJWVjeCwlZWR4CisJbW92bAk4KCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LCglZXNwKQorCXhvcmwJJWVjeCwlZWR4CisJeG9ybAklZXNpLCVlZGkKKwlzaHJkbAkkNiwlZWR4LCVlZHgKKwltb3ZsCSVlYXgsJWVjeAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAkyMCglZXNwKSwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYXgsMTYoJWVzcCkKKwl4b3JsCSVlYXgsJWVjeAorCXhvcmwJJWVkaSwlZWF4CisJYWRkbAkxMiglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTgwKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyOCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCSglZXNwKSwlZXNpCisJeG9ybAklZWN4LCVlZHgKKwltb3ZsCTQoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMjgoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJMTYoJWVzcCksJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hyZGwJJDksJWVjeCwlZWN4CisJbW92bAklZWJ4LDEyKCVlc3ApCisJeG9ybAklZWJ4LCVlY3gKKwl4b3JsCSVlZGksJWVieAorCWFkZGwJOCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTg0KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkyNCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTI4KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJKCVlc3ApLCVlZGkKKwl4b3JsCSVlZGksJWVzaQorCXNocmRsCSQ1LCVlZHgsJWVkeAorCWFuZGwJJWVjeCwlZXNpCisJbW92bAklZWN4LDI0KCVlc3ApCisJeG9ybAklZWN4LCVlZHgKKwl4b3JsCSVlc2ksJWVkaQorCXNocmRsCSQ2LCVlZHgsJWVkeAorCW1vdmwJJWVheCwlZWN4CisJYWRkbAklZWRpLCVlZHgKKwltb3ZsCTEyKCVlc3ApLCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNocmRsCSQ5LCVlY3gsJWVjeAorCW1vdmwJJWVheCw4KCVlc3ApCisJeG9ybAklZWF4LCVlY3gKKwl4b3JsCSVlZGksJWVheAorCWFkZGwJNCglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVheCwlZWJ4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTg4KCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVieAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWJ4CisJYWRkbAkyMCglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYngKKwltb3ZsCSVlZHgsJWVjeAorCXNocmRsCSQxNCwlZWR4LCVlZHgKKwltb3ZsCTI0KCVlc3ApLCVlc2kKKwl4b3JsCSVlY3gsJWVkeAorCW1vdmwJMjgoJWVzcCksJWVkaQorCXhvcmwJJWVkaSwlZXNpCisJc2hyZGwJJDUsJWVkeCwlZWR4CisJYW5kbAklZWN4LCVlc2kKKwltb3ZsCSVlY3gsMjAoJWVzcCkKKwl4b3JsCSVlY3gsJWVkeAorCXhvcmwJJWVzaSwlZWRpCisJc2hyZGwJJDYsJWVkeCwlZWR4CisJbW92bAklZWJ4LCVlY3gKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJOCglZXNwKSwlZWRpCisJbW92bAklZWJ4LCVlc2kKKwlzaHJkbAkkOSwlZWN4LCVlY3gKKwltb3ZsCSVlYngsNCglZXNwKQorCXhvcmwJJWVieCwlZWN4CisJeG9ybAklZWRpLCVlYngKKwlhZGRsCSglZXNwKSwlZWR4CisJc2hyZGwJJDExLCVlY3gsJWVjeAorCWFuZGwJJWVieCwlZWF4CisJeG9ybAklZXNpLCVlY3gKKwlhZGRsCTkyKCVlc3ApLCVlZHgKKwl4b3JsCSVlZGksJWVheAorCXNocmRsCSQyLCVlY3gsJWVjeAorCWFkZGwJJWVkeCwlZWF4CisJYWRkbAkxNiglZXNwKSwlZWR4CisJYWRkbAklZWN4LCVlYXgKKwltb3ZsCTk2KCVlc3ApLCVlc2kKKwl4b3JsCSVlZGksJWVieAorCW1vdmwJMTIoJWVzcCksJWVjeAorCWFkZGwJKCVlc2kpLCVlYXgKKwlhZGRsCTQoJWVzaSksJWVieAorCWFkZGwJOCglZXNpKSwlZWRpCisJYWRkbAkxMiglZXNpKSwlZWN4CisJbW92bAklZWF4LCglZXNpKQorCW1vdmwJJWVieCw0KCVlc2kpCisJbW92bAklZWRpLDgoJWVzaSkKKwltb3ZsCSVlY3gsMTIoJWVzaSkKKwltb3ZsCSVlYngsNCglZXNwKQorCXhvcmwJJWVkaSwlZWJ4CisJbW92bAklZWRpLDgoJWVzcCkKKwltb3ZsCSVlY3gsMTIoJWVzcCkKKwltb3ZsCTIwKCVlc3ApLCVlZGkKKwltb3ZsCTI0KCVlc3ApLCVlY3gKKwlhZGRsCTE2KCVlc2kpLCVlZHgKKwlhZGRsCTIwKCVlc2kpLCVlZGkKKwlhZGRsCTI0KCVlc2kpLCVlY3gKKwltb3ZsCSVlZHgsMTYoJWVzaSkKKwltb3ZsCSVlZGksMjAoJWVzaSkKKwltb3ZsCSVlZGksMjAoJWVzcCkKKwltb3ZsCTI4KCVlc3ApLCVlZGkKKwltb3ZsCSVlY3gsMjQoJWVzaSkKKwlhZGRsCTI4KCVlc2kpLCVlZGkKKwltb3ZsCSVlY3gsMjQoJWVzcCkKKwltb3ZsCSVlZGksMjgoJWVzaSkKKwltb3ZsCSVlZGksMjgoJWVzcCkKKwltb3ZsCTEwMCglZXNwKSwlZWRpCisJdm1vdmRxYQk2NCglZWJwKSwleG1tNworCXN1YmwJJDE5MiwlZWJwCisJY21wbAkxMDQoJWVzcCksJWVkaQorCWpiCUwwMTJncmFuZF9hdngKKwltb3ZsCTEwOCglZXNwKSwlZXNwCisJdnplcm9hbGwKKwlwb3BsCSVlZGkKKwlwb3BsCSVlc2kKKwlwb3BsCSVlYngKKwlwb3BsCSVlYnAKKwlyZXQKIC5zZWN0aW9uIF9fSU1QT1JULF9fcG9pbnRlcnMsbm9uX2xhenlfc3ltYm9sX3BvaW50ZXJzCiBMX09QRU5TU0xfaWEzMmNhcF9QJG5vbl9sYXp5X3B0cjoKIC5pbmRpcmVjdF9zeW1ib2wJX09QRU5TU0xfaWEzMmNhcF9QCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYWVzL2Flcy14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TCmluZGV4IDAyZjM3OGIuLmI1ZDE4OGEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYWVzLXg4Nl82NC5TCkBAIC04Miw4ICs4Miw4IEBACiAJbW92bAkwKCVyMTQsJXJkaSw4KSwlZWRpCiAJbW92bAkwKCVyMTQsJXJicCw4KSwlZWJwCiAKLQlhbmRsCSQ2NTI4MCwlZWRpCi0JYW5kbAkkNjUyODAsJWVicAorCWFuZGwJJDB4MDAwMGZmMDAsJWVkaQorCWFuZGwJJDB4MDAwMGZmMDAsJWVicAogCiAJeG9ybAklZWRpLCVyMTBkCiAJeG9ybAklZWJwLCVyMTFkCkBAIC05NSw4ICs5NSw4IEBACiAJbW92bAkwKCVyMTQsJXJzaSw4KSwlZXNpCiAJbW92bAkwKCVyMTQsJXJkaSw4KSwlZWRpCiAKLQlhbmRsCSQ2NTI4MCwlZXNpCi0JYW5kbAkkNjUyODAsJWVkaQorCWFuZGwJJDB4MDAwMGZmMDAsJWVzaQorCWFuZGwJJDB4MDAwMGZmMDAsJWVkaQogCXNocmwJJDE2LCVlYngKIAl4b3JsCSVlc2ksJXIxMmQKIAl4b3JsCSVlZGksJXI4ZApAQCAtMTA5LDkgKzEwOSw5IEBACiAJbW92bAkwKCVyMTQsJXJkaSw4KSwlZWRpCiAJbW92bAkwKCVyMTQsJXJicCw4KSwlZWJwCiAKLQlhbmRsCSQxNjcxMTY4MCwlZXNpCi0JYW5kbAkkMTY3MTE2ODAsJWVkaQotCWFuZGwJJDE2NzExNjgwLCVlYnAKKwlhbmRsCSQweDAwZmYwMDAwLCVlc2kKKwlhbmRsCSQweDAwZmYwMDAwLCVlZGkKKwlhbmRsCSQweDAwZmYwMDAwLCVlYnAKIAogCXhvcmwJJWVzaSwlcjEwZAogCXhvcmwJJWVkaSwlcjExZApAQCAtMTI0LDkgKzEyNCw5IEBACiAJbW92bAkyKCVyMTQsJXJkaSw4KSwlZWRpCiAJbW92bAkyKCVyMTQsJXJicCw4KSwlZWJwCiAKLQlhbmRsCSQxNjcxMTY4MCwlZXNpCi0JYW5kbAkkNDI3ODE5MDA4MCwlZWRpCi0JYW5kbAkkNDI3ODE5MDA4MCwlZWJwCisJYW5kbAkkMHgwMGZmMDAwMCwlZXNpCisJYW5kbAkkMHhmZjAwMDAwMCwlZWRpCisJYW5kbAkkMHhmZjAwMDAwMCwlZWJwCiAKIAl4b3JsCSVlc2ksJXI4ZAogCXhvcmwJJWVkaSwlcjEwZApAQCAtMTM5LDggKzEzOSw4IEBACiAJbW92bAkyKCVyMTQsJXJkaSw4KSwlZWRpCiAJbW92bAkxNiswKCVyMTUpLCVlYXgKIAotCWFuZGwJJDQyNzgxOTAwODAsJWVzaQotCWFuZGwJJDQyNzgxOTAwODAsJWVkaQorCWFuZGwJJDB4ZmYwMDAwMDAsJWVzaQorCWFuZGwJJDB4ZmYwMDAwMDAsJWVkaQogCiAJeG9ybAklZXNpLCVyMTJkCiAJeG9ybAklZWRpLCVyOGQKQEAgLTI0Miw4ICsyNDIsOCBAQAogCXhvcmwJJXI4ZCwlZWR4CiAJY21wcQkxNiglcnNwKSwlcjE1CiAJamUJTCRlbmNfY29tcGFjdF9kb25lCi0JbW92bAkkMjE1NTkwNTE1MiwlcjEwZAotCW1vdmwJJDIxNTU5MDUxNTIsJXIxMWQKKwltb3ZsCSQweDgwODA4MDgwLCVyMTBkCisJbW92bAkkMHg4MDgwODA4MCwlcjExZAogCWFuZGwJJWVheCwlcjEwZAogCWFuZGwJJWVieCwlcjExZAogCW1vdmwJJXIxMGQsJWVzaQpAQCAtMjU0LDEwICsyNTQsMTAgQEAKIAlsZWFsCSglcmJ4LCVyYngsMSksJXI5ZAogCXN1YmwJJXIxMGQsJWVzaQogCXN1YmwJJXIxMWQsJWVkaQotCWFuZGwJJDQyNzgxMjQyODYsJXI4ZAotCWFuZGwJJDQyNzgxMjQyODYsJXI5ZAotCWFuZGwJJDQ1NDc2MTI0MywlZXNpCi0JYW5kbAkkNDU0NzYxMjQzLCVlZGkKKwlhbmRsCSQweGZlZmVmZWZlLCVyOGQKKwlhbmRsCSQweGZlZmVmZWZlLCVyOWQKKwlhbmRsCSQweDFiMWIxYjFiLCVlc2kKKwlhbmRsCSQweDFiMWIxYjFiLCVlZGkKIAltb3ZsCSVlYXgsJXIxMGQKIAltb3ZsCSVlYngsJXIxMWQKIAl4b3JsCSVlc2ksJXI4ZApAQCAtMjY1LDkgKzI2NSw5IEBACiAKIAl4b3JsCSVyOGQsJWVheAogCXhvcmwJJXI5ZCwlZWJ4Ci0JbW92bAkkMjE1NTkwNTE1MiwlcjEyZAorCW1vdmwJJDB4ODA4MDgwODAsJXIxMmQKIAlyb2xsCSQyNCwlZWF4Ci0JbW92bAkkMjE1NTkwNTE1MiwlZWJwCisJbW92bAkkMHg4MDgwODA4MCwlZWJwCiAJcm9sbAkkMjQsJWVieAogCWFuZGwJJWVjeCwlcjEyZAogCWFuZGwJJWVkeCwlZWJwCkBAIC0yOTAsMTAgKzI5MCwxMCBAQAogCXhvcmwJJXIxMGQsJWVheAogCXhvcmwJJXIxMWQsJWVieAogCi0JYW5kbAkkNDI3ODEyNDI4NiwlcjhkCi0JYW5kbAkkNDI3ODEyNDI4NiwlcjlkCi0JYW5kbAkkNDU0NzYxMjQzLCVlc2kKLQlhbmRsCSQ0NTQ3NjEyNDMsJWVkaQorCWFuZGwJJDB4ZmVmZWZlZmUsJXI4ZAorCWFuZGwJJDB4ZmVmZWZlZmUsJXI5ZAorCWFuZGwJJDB4MWIxYjFiMWIsJWVzaQorCWFuZGwJJDB4MWIxYjFiMWIsJWVkaQogCW1vdmwJJWVjeCwlcjEyZAogCW1vdmwJJWVkeCwlZWJwCiAJeG9ybAklZXNpLCVyOGQKQEAgLTM0NSw3ICszNDUsNyBAQAogCWFuZHEJJC02NCwlcnNwCiAJc3VicQklcnNwLCVyY3gKIAluZWdxCSVyY3gKLQlhbmRxCSQ5NjAsJXJjeAorCWFuZHEJJDB4M2MwLCVyY3gKIAlzdWJxCSVyY3gsJXJzcAogCXN1YnEJJDMyLCVyc3AKIApAQCAtMzcwLDcgKzM3MCw3IEBACiAJbGVhcQlMJEFFU19UZSsyMDQ4KCVyaXApLCVyMTQKIAlsZWFxCTc2OCglcnNwKSwlcmJwCiAJc3VicQklcjE0LCVyYnAKLQlhbmRxCSQ3NjgsJXJicAorCWFuZHEJJDB4MzAwLCVyYnAKIAlsZWFxCSglcjE0LCVyYnAsMSksJXIxNAogCiAJY2FsbAlfeDg2XzY0X0FFU19lbmNyeXB0X2NvbXBhY3QKQEAgLTc5MSw3ICs3OTEsNyBAQAogCWFuZHEJJC02NCwlcnNwCiAJc3VicQklcnNwLCVyY3gKIAluZWdxCSVyY3gKLQlhbmRxCSQ5NjAsJXJjeAorCWFuZHEJJDB4M2MwLCVyY3gKIAlzdWJxCSVyY3gsJXJzcAogCXN1YnEJJDMyLCVyc3AKIApAQCAtODE2LDcgKzgxNiw3IEBACiAJbGVhcQlMJEFFU19UZCsyMDQ4KCVyaXApLCVyMTQKIAlsZWFxCTc2OCglcnNwKSwlcmJwCiAJc3VicQklcjE0LCVyYnAKLQlhbmRxCSQ3NjgsJXJicAorCWFuZHEJJDB4MzAwLCVyYnAKIAlsZWFxCSglcjE0LCVyYnAsMSksJXIxNAogCXNocnEJJDMsJXJicAogCWFkZHEJJXJicCwlcjE0CkBAIC0xMzMzLDkgKzEzMzMsOSBAQAogCW1vdnEJJXIxNCwlcjEwCiAJbGVhcQkyMzA0KCVyMTQpLCVyMTEKIAltb3ZxCSVyMTUsJXIxMgotCWFuZHEJJDQwOTUsJXIxMAotCWFuZHEJJDQwOTUsJXIxMQotCWFuZHEJJDQwOTUsJXIxMgorCWFuZHEJJDB4RkZGLCVyMTAKKwlhbmRxCSQweEZGRiwlcjExCisJYW5kcQkkMHhGRkYsJXIxMgogCiAJY21wcQklcjExLCVyMTIKIAlqYglMJGNiY190ZV9icmVha19vdXQKQEAgLTEzNDQsNyArMTM0NCw3IEBACiAJam1wCUwkY2JjX3RlX29rCiBMJGNiY190ZV9icmVha19vdXQ6CiAJc3VicQklcjEwLCVyMTIKLQlhbmRxCSQ0MDk1LCVyMTIKKwlhbmRxCSQweEZGRiwlcjEyCiAJYWRkcQkkMzIwLCVyMTIKIAlzdWJxCSVyMTIsJXIxNQogLnAyYWxpZ24JMgpAQCAtMTM3MCw3ICsxMzcwLDcgQEAKIAogCW1vdnEJJXIxNSwlcjEwCiAJc3VicQklcjE0LCVyMTAKLQlhbmRxCSQ0MDk1LCVyMTAKKwlhbmRxCSQweGZmZiwlcjEwCiAJY21wcQkkMjMwNCwlcjEwCiAJamIJTCRjYmNfZG9fZWNvcHkKIAljbXBxCSQ0MDk2LTI0OCwlcjEwCkBAIC0xNTU3LDcgKzE1NTcsNyBAQAogCWxlYXEJLTg4LTYzKCVyY3gpLCVyMTAKIAlzdWJxCSVyYnAsJXIxMAogCW5lZ3EJJXIxMAotCWFuZHEJJDk2MCwlcjEwCisJYW5kcQkkMHgzYzAsJXIxMAogCXN1YnEJJXIxMCwlcmJwCiAKIAl4Y2hncQklcnNwLCVyYnAKQEAgLTE1ODYsNyArMTU4Niw3IEBACiAJbGVhcQkyMDQ4KCVyMTQpLCVyMTQKIAlsZWFxCTc2OC04KCVyc3ApLCVyYXgKIAlzdWJxCSVyMTQsJXJheAotCWFuZHEJJDc2OCwlcmF4CisJYW5kcQkkMHgzMDAsJXJheAogCWxlYXEJKCVyMTQsJXJheCwxKSwlcjE0CiAKIAljbXBxCSQwLCVyYngKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYWVzbmkteDg2XzY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYWVzL2Flc25pLXg4Nl82NC5TCmluZGV4IDY5YjIyYzIuLjNkOThmYTEgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYWVzbmkteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Flcy9hZXNuaS14ODZfNjQuUwpAQCAtNTA3LDcgKzUwNyw3IEBACiAJdGVzdGwJJXI4ZCwlcjhkCiAJanoJTCRlY2JfZGVjcnlwdAogCi0JY21wcQkkMTI4LCVyZHgKKwljbXBxCSQweDgwLCVyZHgKIAlqYglMJGVjYl9lbmNfdGFpbAogCiAJbW92ZHF1CSglcmRpKSwleG1tMgpAQCAtNTE5LDcgKzUxOSw3IEBACiAJbW92ZHF1CTk2KCVyZGkpLCV4bW04CiAJbW92ZHF1CTExMiglcmRpKSwleG1tOQogCWxlYXEJMTI4KCVyZGkpLCVyZGkKLQlzdWJxCSQxMjgsJXJkeAorCXN1YnEJJDB4ODAsJXJkeAogCWptcAlMJGVjYl9lbmNfbG9vcDhfZW50ZXIKIC5wMmFsaWduCTQKIEwkZWNiX2VuY19sb29wODoKQEAgLTU0Nyw3ICs1NDcsNyBAQAogCiAJY2FsbAlfYWVzbmlfZW5jcnlwdDgKIAotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJam5jCUwkZWNiX2VuY19sb29wOAogCiAJbW92dXBzCSV4bW0yLCglcnNpKQpAQCAtNTYxLDIyICs1NjEsMjIgQEAKIAltb3Z1cHMJJXhtbTgsOTYoJXJzaSkKIAltb3Z1cHMJJXhtbTksMTEyKCVyc2kpCiAJbGVhcQkxMjgoJXJzaSksJXJzaQotCWFkZHEJJDEyOCwlcmR4CisJYWRkcQkkMHg4MCwlcmR4CiAJanoJTCRlY2JfcmV0CiAKIEwkZWNiX2VuY190YWlsOgogCW1vdnVwcwkoJXJkaSksJXhtbTIKLQljbXBxCSQzMiwlcmR4CisJY21wcQkkMHgyMCwlcmR4CiAJamIJTCRlY2JfZW5jX29uZQogCW1vdnVwcwkxNiglcmRpKSwleG1tMwogCWplCUwkZWNiX2VuY190d28KIAltb3Z1cHMJMzIoJXJkaSksJXhtbTQKLQljbXBxCSQ2NCwlcmR4CisJY21wcQkkMHg0MCwlcmR4CiAJamIJTCRlY2JfZW5jX3RocmVlCiAJbW92dXBzCTQ4KCVyZGkpLCV4bW01CiAJamUJTCRlY2JfZW5jX2ZvdXIKIAltb3Z1cHMJNjQoJXJkaSksJXhtbTYKLQljbXBxCSQ5NiwlcmR4CisJY21wcQkkMHg2MCwlcmR4CiAJamIJTCRlY2JfZW5jX2ZpdmUKIAltb3Z1cHMJODAoJXJkaSksJXhtbTcKIAlqZQlMJGVjYl9lbmNfc2l4CkBAIC02NTAsNyArNjUwLDcgQEAKIAogLnAyYWxpZ24JNAogTCRlY2JfZGVjcnlwdDoKLQljbXBxCSQxMjgsJXJkeAorCWNtcHEJJDB4ODAsJXJkeAogCWpiCUwkZWNiX2RlY190YWlsCiAKIAltb3ZkcXUJKCVyZGkpLCV4bW0yCkBAIC02NjIsNyArNjYyLDcgQEAKIAltb3ZkcXUJOTYoJXJkaSksJXhtbTgKIAltb3ZkcXUJMTEyKCVyZGkpLCV4bW05CiAJbGVhcQkxMjgoJXJkaSksJXJkaQotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJam1wCUwkZWNiX2RlY19sb29wOF9lbnRlcgogLnAyYWxpZ24JNAogTCRlY2JfZGVjX2xvb3A4OgpAQCAtNjkxLDcgKzY5MSw3IEBACiAJY2FsbAlfYWVzbmlfZGVjcnlwdDgKIAogCW1vdnVwcwkoJXIxMSksJXhtbTAKLQlzdWJxCSQxMjgsJXJkeAorCXN1YnEJJDB4ODAsJXJkeAogCWpuYwlMJGVjYl9kZWNfbG9vcDgKIAogCW1vdnVwcwkleG1tMiwoJXJzaSkKQEAgLTcxMywyMiArNzEzLDIyIEBACiAJbW92dXBzCSV4bW05LDExMiglcnNpKQogCXB4b3IJJXhtbTksJXhtbTkKIAlsZWFxCTEyOCglcnNpKSwlcnNpCi0JYWRkcQkkMTI4LCVyZHgKKwlhZGRxCSQweDgwLCVyZHgKIAlqeglMJGVjYl9yZXQKIAogTCRlY2JfZGVjX3RhaWw6CiAJbW92dXBzCSglcmRpKSwleG1tMgotCWNtcHEJJDMyLCVyZHgKKwljbXBxCSQweDIwLCVyZHgKIAlqYglMJGVjYl9kZWNfb25lCiAJbW92dXBzCTE2KCVyZGkpLCV4bW0zCiAJamUJTCRlY2JfZGVjX3R3bwogCW1vdnVwcwkzMiglcmRpKSwleG1tNAotCWNtcHEJJDY0LCVyZHgKKwljbXBxCSQweDQwLCVyZHgKIAlqYglMJGVjYl9kZWNfdGhyZWUKIAltb3Z1cHMJNDgoJXJkaSksJXhtbTUKIAlqZQlMJGVjYl9kZWNfZm91cgogCW1vdnVwcwk2NCglcmRpKSwleG1tNgotCWNtcHEJJDk2LCVyZHgKKwljbXBxCSQweDYwLCVyZHgKIAlqYglMJGVjYl9kZWNfZml2ZQogCW1vdnVwcwk4MCglcmRpKSwleG1tNwogCWplCUwkZWNiX2RlY19zaXgKQEAgLTE2MDYsNyArMTYwNiw3IEBACiAKIAltb3ZkcWEJTCR4dHNfbWFnaWMoJXJpcCksJXhtbTgKIAltb3ZkcWEJJXhtbTIsJXhtbTE1Ci0JcHNodWZkCSQ5NSwleG1tMiwleG1tOQorCXBzaHVmZAkkMHg1ZiwleG1tMiwleG1tOQogCXB4b3IJJXhtbTAsJXhtbTEKIAltb3ZkcWEJJXhtbTksJXhtbTE0CiAJcGFkZGQJJXhtbTksJXhtbTkKQEAgLTE3MDUsNyArMTcwNSw3IEBACiAuYnl0ZQkxMDIsMTUsNTYsMjIwLDI0OAogCW1vdnVwcwk2NCglcjExKSwleG1tMAogCW1vdmRxYQkleG1tOCw4MCglcnNwKQotCXBzaHVmZAkkOTUsJXhtbTE1LCV4bW05CisJcHNodWZkCSQweDVmLCV4bW0xNSwleG1tOQogCWptcAlMJHh0c19lbmNfbG9vcDYKIC5wMmFsaWduCTUKIEwkeHRzX2VuY19sb29wNjoKQEAgLTE4NDQsMTMgKzE4NDQsMTMgQEAKIAlqeglMJHh0c19lbmNfZG9uZQogCiAJcHhvcgkleG1tMCwleG1tMTEKLQljbXBxCSQzMiwlcmR4CisJY21wcQkkMHgyMCwlcmR4CiAJamIJTCR4dHNfZW5jX29uZQogCXB4b3IJJXhtbTAsJXhtbTEyCiAJamUJTCR4dHNfZW5jX3R3bwogCiAJcHhvcgkleG1tMCwleG1tMTMKLQljbXBxCSQ2NCwlcmR4CisJY21wcQkkMHg0MCwlcmR4CiAJamIJTCR4dHNfZW5jX3RocmVlCiAJcHhvcgkleG1tMCwleG1tMTQKIAlqZQlMJHh0c19lbmNfZm91cgpAQCAtMjA3OCw3ICsyMDc4LDcgQEAKIAogCW1vdmRxYQlMJHh0c19tYWdpYyglcmlwKSwleG1tOAogCW1vdmRxYQkleG1tMiwleG1tMTUKLQlwc2h1ZmQJJDk1LCV4bW0yLCV4bW05CisJcHNodWZkCSQweDVmLCV4bW0yLCV4bW05CiAJcHhvcgkleG1tMCwleG1tMQogCW1vdmRxYQkleG1tOSwleG1tMTQKIAlwYWRkZAkleG1tOSwleG1tOQpAQCAtMjE3Nyw3ICsyMTc3LDcgQEAKIC5ieXRlCTEwMiwxNSw1NiwyMjIsMjQ4CiAJbW92dXBzCTY0KCVyMTEpLCV4bW0wCiAJbW92ZHFhCSV4bW04LDgwKCVyc3ApCi0JcHNodWZkCSQ5NSwleG1tMTUsJXhtbTkKKwlwc2h1ZmQJJDB4NWYsJXhtbTE1LCV4bW05CiAJam1wCUwkeHRzX2RlY19sb29wNgogLnAyYWxpZ24JNQogTCR4dHNfZGVjX2xvb3A2OgpAQCAtMjMxNywxMyArMjMxNywxMyBAQAogCWp6CUwkeHRzX2RlY19kb25lCiAKIAlweG9yCSV4bW0wLCV4bW0xMgotCWNtcHEJJDMyLCVyZHgKKwljbXBxCSQweDIwLCVyZHgKIAlqYglMJHh0c19kZWNfb25lCiAJcHhvcgkleG1tMCwleG1tMTMKIAlqZQlMJHh0c19kZWNfdHdvCiAKIAlweG9yCSV4bW0wLCV4bW0xNAotCWNtcHEJJDY0LCVyZHgKKwljbXBxCSQweDQwLCVyZHgKIAlqYglMJHh0c19kZWNfdGhyZWUKIAlqZQlMJHh0c19kZWNfZm91cgogCkBAIC0yMzU0LDcgKzIzNTQsNyBAQAogCXBjbXBndGQJJXhtbTE1LCV4bW0xNAogCW1vdmRxdQkleG1tNiw2NCglcnNpKQogCWxlYXEJODAoJXJzaSksJXJzaQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMQorCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTExCiAJYW5kcQkkMTUsJXI5CiAJanoJTCR4dHNfZGVjX3JldAogCkBAIC0yNjQ0LDcgKzI2NDQsNyBAQAogCWxlYXEJLTgoJXJheCksJXJicAogCW1vdnVwcwkoJXI4KSwleG1tMTAKIAltb3ZsCSVyMTBkLCVlYXgKLQljbXBxCSQ4MCwlcmR4CisJY21wcQkkMHg1MCwlcmR4CiAJamJlCUwkY2JjX2RlY190YWlsCiAKIAltb3Z1cHMJKCVyY3gpLCV4bW0wCkBAIC0yNjYwLDE0ICsyNjYwLDE0IEBACiAJbW92ZHF1CTgwKCVyZGkpLCV4bW03CiAJbW92ZHFhCSV4bW02LCV4bW0xNQogCW1vdmwJX09QRU5TU0xfaWEzMmNhcF9QKzQoJXJpcCksJXI5ZAotCWNtcHEJJDExMiwlcmR4CisJY21wcQkkMHg3MCwlcmR4CiAJamJlCUwkY2JjX2RlY19zaXhfb3Jfc2V2ZW4KIAogCWFuZGwJJDcxMzAzMTY4LCVyOWQKLQlzdWJxCSQ4MCwlcmR4CisJc3VicQkkMHg1MCwlcmR4CiAJY21wbAkkNDE5NDMwNCwlcjlkCiAJamUJTCRjYmNfZGVjX2xvb3A2X2VudGVyCi0Jc3VicQkkMzIsJXJkeAorCXN1YnEJJDB4MjAsJXJkeAogCWxlYXEJMTEyKCVyY3gpLCVyY3gKIAlqbXAJTCRjYmNfZGVjX2xvb3A4X2VudGVyCiAucDJhbGlnbgk0CkBAIC0yNjgyLDcgKzI2ODIsNyBAQAogCW1vdnVwcwkxNi0xMTIoJXJjeCksJXhtbTEKIAlweG9yCSV4bW0wLCV4bW00CiAJeG9ycQklcjExLCVyMTEKLQljbXBxCSQxMTIsJXJkeAorCWNtcHEJJDB4NzAsJXJkeAogCXB4b3IJJXhtbTAsJXhtbTUKIAlweG9yCSV4bW0wLCV4bW02CiAJcHhvcgkleG1tMCwleG1tNwpAQCAtMjg2NywyMSArMjg2NywyMSBAQAogCW1vdnVwcwkleG1tOCw5NiglcnNpKQogCWxlYXEJMTEyKCVyc2kpLCVyc2kKIAotCXN1YnEJJDEyOCwlcmR4CisJc3VicQkkMHg4MCwlcmR4CiAJamEJTCRjYmNfZGVjX2xvb3A4CiAKIAltb3ZhcHMJJXhtbTksJXhtbTIKIAlsZWFxCS0xMTIoJXJjeCksJXJjeAotCWFkZHEJJDExMiwlcmR4CisJYWRkcQkkMHg3MCwlcmR4CiAJamxlCUwkY2JjX2RlY19jbGVhcl90YWlsX2NvbGxlY3RlZAogCW1vdnVwcwkleG1tOSwoJXJzaSkKIAlsZWFxCTE2KCVyc2kpLCVyc2kKLQljbXBxCSQ4MCwlcmR4CisJY21wcQkkMHg1MCwlcmR4CiAJamJlCUwkY2JjX2RlY190YWlsCiAKIAltb3ZhcHMJJXhtbTExLCV4bW0yCiBMJGNiY19kZWNfc2l4X29yX3NldmVuOgotCWNtcHEJJDk2LCVyZHgKKwljbXBxCSQweDYwLCVyZHgKIAlqYQlMJGNiY19kZWNfc2V2ZW4KIAogCW1vdmFwcwkleG1tNywleG1tOApAQCAtMjk3NCwzMyArMjk3NCwzMyBAQAogCW1vdmwJJXIxMGQsJWVheAogCW1vdmRxdQkleG1tNiw2NCglcnNpKQogCWxlYXEJODAoJXJzaSksJXJzaQotCXN1YnEJJDk2LCVyZHgKKwlzdWJxCSQweDYwLCVyZHgKIAlqYQlMJGNiY19kZWNfbG9vcDYKIAogCW1vdmRxYQkleG1tNywleG1tMgotCWFkZHEJJDgwLCVyZHgKKwlhZGRxCSQweDUwLCVyZHgKIAlqbGUJTCRjYmNfZGVjX2NsZWFyX3RhaWxfY29sbGVjdGVkCiAJbW92dXBzCSV4bW03LCglcnNpKQogCWxlYXEJMTYoJXJzaSksJXJzaQogCiBMJGNiY19kZWNfdGFpbDoKIAltb3Z1cHMJKCVyZGkpLCV4bW0yCi0Jc3VicQkkMTYsJXJkeAorCXN1YnEJJDB4MTAsJXJkeAogCWpiZQlMJGNiY19kZWNfb25lCiAKIAltb3Z1cHMJMTYoJXJkaSksJXhtbTMKIAltb3ZhcHMJJXhtbTIsJXhtbTExCi0Jc3VicQkkMTYsJXJkeAorCXN1YnEJJDB4MTAsJXJkeAogCWpiZQlMJGNiY19kZWNfdHdvCiAKIAltb3Z1cHMJMzIoJXJkaSksJXhtbTQKIAltb3ZhcHMJJXhtbTMsJXhtbTEyCi0Jc3VicQkkMTYsJXJkeAorCXN1YnEJJDB4MTAsJXJkeAogCWpiZQlMJGNiY19kZWNfdGhyZWUKIAogCW1vdnVwcwk0OCglcmRpKSwleG1tNQogCW1vdmFwcwkleG1tNCwleG1tMTMKLQlzdWJxCSQxNiwlcmR4CisJc3VicQkkMHgxMCwlcmR4CiAJamJlCUwkY2JjX2RlY19mb3VyCiAKIAltb3Z1cHMJNjQoJXJkaSksJXhtbTYKQEAgLTMwMjUsNyArMzAyNSw3IEBACiAJbW92ZHFhCSV4bW02LCV4bW0yCiAJcHhvcgkleG1tNiwleG1tNgogCXB4b3IJJXhtbTcsJXhtbTcKLQlzdWJxCSQxNiwlcmR4CisJc3VicQkkMHgxMCwlcmR4CiAJam1wCUwkY2JjX2RlY190YWlsX2NvbGxlY3RlZAogCiAucDJhbGlnbgk0CkBAIC0zMzQ0LDcgKzMzNDQsNyBAQAogCXBzbGxkcQkkNCwleG1tMAogCXB4b3IJJXhtbTMsJXhtbTAKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0zCisJcHNodWZkCSQweGZmLCV4bW0wLCV4bW0zCiAJcHhvcgkleG1tMSwleG1tMwogCXBzbGxkcQkkNCwleG1tMQogCXB4b3IJJXhtbTEsJXhtbTMKQEAgLTM0MzEsNyArMzQzMSw3IEBACiAJZGVjbAklcjEwZAogCWp6CUwkZG9uZV9rZXkyNTYKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0yCisJcHNodWZkCSQweGZmLCV4bW0wLCV4bW0yCiAJcHhvcgkleG1tMywleG1tMwogLmJ5dGUJMTAyLDE1LDU2LDIyMSwyMTEKIApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Flcy9ic2Flcy14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvYnNhZXMteDg2XzY0LlMKaW5kZXggYzJkMDQ3Ny4uYWQ4MDJlMyAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Flcy9ic2Flcy14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYWVzL2JzYWVzLXg4Nl82NC5TCkBAIC0zMjUsNDUgKzMyNSw0NSBAQAogCXB4b3IJJXhtbTIsJXhtbTUKIAlkZWNsCSVyMTBkCiAJamwJTCRlbmNfZG9uZQotCXBzaHVmZAkkMTQ3LCV4bW0xNSwleG1tNwotCXBzaHVmZAkkMTQ3LCV4bW0wLCV4bW04CisJcHNodWZkCSQweDkzLCV4bW0xNSwleG1tNworCXBzaHVmZAkkMHg5MywleG1tMCwleG1tOAogCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQxNDcsJXhtbTMsJXhtbTkKKwlwc2h1ZmQJJDB4OTMsJXhtbTMsJXhtbTkKIAlweG9yCSV4bW04LCV4bW0wCi0JcHNodWZkCSQxNDcsJXhtbTUsJXhtbTEwCisJcHNodWZkCSQweDkzLCV4bW01LCV4bW0xMAogCXB4b3IJJXhtbTksJXhtbTMKLQlwc2h1ZmQJJDE0NywleG1tMiwleG1tMTEKKwlwc2h1ZmQJJDB4OTMsJXhtbTIsJXhtbTExCiAJcHhvcgkleG1tMTAsJXhtbTUKLQlwc2h1ZmQJJDE0NywleG1tNiwleG1tMTIKKwlwc2h1ZmQJJDB4OTMsJXhtbTYsJXhtbTEyCiAJcHhvcgkleG1tMTEsJXhtbTIKLQlwc2h1ZmQJJDE0NywleG1tMSwleG1tMTMKKwlwc2h1ZmQJJDB4OTMsJXhtbTEsJXhtbTEzCiAJcHhvcgkleG1tMTIsJXhtbTYKLQlwc2h1ZmQJJDE0NywleG1tNCwleG1tMTQKKwlwc2h1ZmQJJDB4OTMsJXhtbTQsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTEKIAlweG9yCSV4bW0xNCwleG1tNAogCiAJcHhvcgkleG1tMTUsJXhtbTgKIAlweG9yCSV4bW00LCV4bW03CiAJcHhvcgkleG1tNCwleG1tOAotCXBzaHVmZAkkNzgsJXhtbTE1LCV4bW0xNQorCXBzaHVmZAkkMHg0RSwleG1tMTUsJXhtbTE1CiAJcHhvcgkleG1tMCwleG1tOQotCXBzaHVmZAkkNzgsJXhtbTAsJXhtbTAKKwlwc2h1ZmQJJDB4NEUsJXhtbTAsJXhtbTAKIAlweG9yCSV4bW0yLCV4bW0xMgogCXB4b3IJJXhtbTcsJXhtbTE1CiAJcHhvcgkleG1tNiwleG1tMTMKIAlweG9yCSV4bW04LCV4bW0wCiAJcHhvcgkleG1tNSwleG1tMTEKLQlwc2h1ZmQJJDc4LCV4bW0yLCV4bW03CisJcHNodWZkCSQweDRFLCV4bW0yLCV4bW03CiAJcHhvcgkleG1tMSwleG1tMTQKLQlwc2h1ZmQJJDc4LCV4bW02LCV4bW04CisJcHNodWZkCSQweDRFLCV4bW02LCV4bW04CiAJcHhvcgkleG1tMywleG1tMTAKLQlwc2h1ZmQJJDc4LCV4bW01LCV4bW0yCisJcHNodWZkCSQweDRFLCV4bW01LCV4bW0yCiAJcHhvcgkleG1tNCwleG1tMTAKLQlwc2h1ZmQJJDc4LCV4bW00LCV4bW02CisJcHNodWZkCSQweDRFLCV4bW00LCV4bW02CiAJcHhvcgkleG1tNCwleG1tMTEKLQlwc2h1ZmQJJDc4LCV4bW0xLCV4bW01CisJcHNodWZkCSQweDRFLCV4bW0xLCV4bW01CiAJcHhvcgkleG1tMTEsJXhtbTcKLQlwc2h1ZmQJJDc4LCV4bW0zLCV4bW0xCisJcHNodWZkCSQweDRFLCV4bW0zLCV4bW0xCiAJcHhvcgkleG1tMTIsJXhtbTgKIAlweG9yCSV4bW0xMCwleG1tMgogCXB4b3IJJXhtbTE0LCV4bW02CkBAIC03OTcsMjQgKzc5NywyNCBAQAogCWRlY2wJJXIxMGQKIAlqbAlMJGRlY19kb25lCiAKLQlwc2h1ZmQJJDc4LCV4bW0xNSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTEzCisJcHNodWZkCSQweDRFLCV4bW0xNSwleG1tNworCXBzaHVmZAkkMHg0RSwleG1tMiwleG1tMTMKIAlweG9yCSV4bW0xNSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTQsJXhtbTE0CisJcHNodWZkCSQweDRFLCV4bW00LCV4bW0xNAogCXB4b3IJJXhtbTIsJXhtbTEzCi0JcHNodWZkCSQ3OCwleG1tMCwleG1tOAorCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tOAogCXB4b3IJJXhtbTQsJXhtbTE0Ci0JcHNodWZkCSQ3OCwleG1tNSwleG1tOQorCXBzaHVmZAkkMHg0RSwleG1tNSwleG1tOQogCXB4b3IJJXhtbTAsJXhtbTgKLQlwc2h1ZmQJJDc4LCV4bW0zLCV4bW0xMAorCXBzaHVmZAkkMHg0RSwleG1tMywleG1tMTAKIAlweG9yCSV4bW01LCV4bW05CiAJcHhvcgkleG1tMTMsJXhtbTE1CiAJcHhvcgkleG1tMTMsJXhtbTAKLQlwc2h1ZmQJJDc4LCV4bW0xLCV4bW0xMQorCXBzaHVmZAkkMHg0RSwleG1tMSwleG1tMTEKIAlweG9yCSV4bW0zLCV4bW0xMAogCXB4b3IJJXhtbTcsJXhtbTUKIAlweG9yCSV4bW04LCV4bW0zCi0JcHNodWZkCSQ3OCwleG1tNiwleG1tMTIKKwlwc2h1ZmQJJDB4NEUsJXhtbTYsJXhtbTEyCiAJcHhvcgkleG1tMSwleG1tMTEKIAlweG9yCSV4bW0xNCwleG1tMAogCXB4b3IJJXhtbTksJXhtbTEKQEAgLTgyOCw0NSArODI4LDQ1IEBACiAJcHhvcgkleG1tMTQsJXhtbTEKIAlweG9yCSV4bW0xNCwleG1tNgogCXB4b3IJJXhtbTEyLCV4bW00Ci0JcHNodWZkCSQxNDcsJXhtbTE1LCV4bW03Ci0JcHNodWZkCSQxNDcsJXhtbTAsJXhtbTgKKwlwc2h1ZmQJJDB4OTMsJXhtbTE1LCV4bW03CisJcHNodWZkCSQweDkzLCV4bW0wLCV4bW04CiAJcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDE0NywleG1tNSwleG1tOQorCXBzaHVmZAkkMHg5MywleG1tNSwleG1tOQogCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDE0NywleG1tMywleG1tMTAKKwlwc2h1ZmQJJDB4OTMsJXhtbTMsJXhtbTEwCiAJcHhvcgkleG1tOSwleG1tNQotCXBzaHVmZAkkMTQ3LCV4bW0xLCV4bW0xMQorCXBzaHVmZAkkMHg5MywleG1tMSwleG1tMTEKIAlweG9yCSV4bW0xMCwleG1tMwotCXBzaHVmZAkkMTQ3LCV4bW02LCV4bW0xMgorCXBzaHVmZAkkMHg5MywleG1tNiwleG1tMTIKIAlweG9yCSV4bW0xMSwleG1tMQotCXBzaHVmZAkkMTQ3LCV4bW0yLCV4bW0xMworCXBzaHVmZAkkMHg5MywleG1tMiwleG1tMTMKIAlweG9yCSV4bW0xMiwleG1tNgotCXBzaHVmZAkkMTQ3LCV4bW00LCV4bW0xNAorCXBzaHVmZAkkMHg5MywleG1tNCwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tMgogCXB4b3IJJXhtbTE0LCV4bW00CiAKIAlweG9yCSV4bW0xNSwleG1tOAogCXB4b3IJJXhtbTQsJXhtbTcKIAlweG9yCSV4bW00LCV4bW04Ci0JcHNodWZkCSQ3OCwleG1tMTUsJXhtbTE1CisJcHNodWZkCSQweDRFLCV4bW0xNSwleG1tMTUKIAlweG9yCSV4bW0wLCV4bW05Ci0JcHNodWZkCSQ3OCwleG1tMCwleG1tMAorCXBzaHVmZAkkMHg0RSwleG1tMCwleG1tMAogCXB4b3IJJXhtbTEsJXhtbTEyCiAJcHhvcgkleG1tNywleG1tMTUKIAlweG9yCSV4bW02LCV4bW0xMwogCXB4b3IJJXhtbTgsJXhtbTAKIAlweG9yCSV4bW0zLCV4bW0xMQotCXBzaHVmZAkkNzgsJXhtbTEsJXhtbTcKKwlwc2h1ZmQJJDB4NEUsJXhtbTEsJXhtbTcKIAlweG9yCSV4bW0yLCV4bW0xNAotCXBzaHVmZAkkNzgsJXhtbTYsJXhtbTgKKwlwc2h1ZmQJJDB4NEUsJXhtbTYsJXhtbTgKIAlweG9yCSV4bW01LCV4bW0xMAotCXBzaHVmZAkkNzgsJXhtbTMsJXhtbTEKKwlwc2h1ZmQJJDB4NEUsJXhtbTMsJXhtbTEKIAlweG9yCSV4bW00LCV4bW0xMAotCXBzaHVmZAkkNzgsJXhtbTQsJXhtbTYKKwlwc2h1ZmQJJDB4NEUsJXhtbTQsJXhtbTYKIAlweG9yCSV4bW00LCV4bW0xMQotCXBzaHVmZAkkNzgsJXhtbTIsJXhtbTMKKwlwc2h1ZmQJJDB4NEUsJXhtbTIsJXhtbTMKIAlweG9yCSV4bW0xMSwleG1tNwotCXBzaHVmZAkkNzgsJXhtbTUsJXhtbTIKKwlwc2h1ZmQJJDB4NEUsJXhtbTUsJXhtbTIKIAlweG9yCSV4bW0xMiwleG1tOAogCXB4b3IJJXhtbTEsJXhtbTEwCiAJcHhvcgkleG1tMTQsJXhtbTYKQEAgLTE1NTYsMjAgKzE1NTYsMjAgQEAKIAltb3ZkcWEJJXhtbTcsKCVyYXgpCiAKIAlhbmRxCSQtMTYsJXIxNAotCXN1YnEJJDEyOCwlcnNwCisJc3VicQkkMHg4MCwlcnNwCiAJbW92ZHFhCTMyKCVyYnApLCV4bW02CiAKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJTCR4dHNfbWFnaWMoJXJpcCksJXhtbTEyCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAotCXN1YnEJJDEyOCwlcjE0CisJc3VicQkkMHg4MCwlcjE0CiAJamMJTCR4dHNfZW5jX3Nob3J0CiAJam1wCUwkeHRzX2VuY19sb29wCiAKIC5wMmFsaWduCTQKIEwkeHRzX2VuY19sb29wOgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0xNQogCW1vdmRxYQkleG1tNiwwKCVyc3ApCkBAIC0xNTc3LDcgKzE1NzcsNyBAQAogCXBhbmQJJXhtbTEyLCV4bW0xMwogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMAogCW1vdmRxYQkleG1tNiwxNiglcnNwKQpAQCAtMTU4Niw3ICsxNTg2LDcgQEAKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTAoJXIxMiksJXhtbTcKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMQogCW1vdmRxYQkleG1tNiwzMiglcnNwKQpAQCAtMTU5Niw3ICsxNTk2LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQkxNiglcjEyKSwleG1tOAogCXB4b3IJJXhtbTcsJXhtbTE1Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTIKIAltb3ZkcWEJJXhtbTYsNDgoJXJzcCkKQEAgLTE2MDYsNyArMTYwNiw3IEBACiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJMzIoJXIxMiksJXhtbTkKIAlweG9yCSV4bW04LCV4bW0wCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTMKIAltb3ZkcWEJJXhtbTYsNjQoJXJzcCkKQEAgLTE2MTYsNyArMTYxNiw3IEBACiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJNDgoJXIxMiksJXhtbTEwCiAJcHhvcgkleG1tOSwleG1tMQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW00CiAJbW92ZHFhCSV4bW02LDgwKCVyc3ApCkBAIC0xNjI2LDcgKzE2MjYsNyBAQAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTY0KCVyMTIpLCV4bW0xMQogCXB4b3IJJXhtbTEwLCV4bW0yCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTUKIAltb3ZkcWEJJXhtbTYsOTYoJXJzcCkKQEAgLTE2NzAsMjAgKzE2NzAsMjAgQEAKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJTCR4dHNfbWFnaWMoJXJpcCksJXhtbTEyCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCXBhZGRxCSV4bW02LCV4bW02CiAJcGFuZAkleG1tMTIsJXhtbTEzCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tNgogCi0Jc3VicQkkMTI4LCVyMTQKKwlzdWJxCSQweDgwLCVyMTQKIAlqbmMJTCR4dHNfZW5jX2xvb3AKIAogTCR4dHNfZW5jX3Nob3J0OgotCWFkZHEJJDEyOCwlcjE0CisJYWRkcQkkMHg4MCwlcjE0CiAJanoJTCR4dHNfZW5jX2RvbmUKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMTUKIAltb3ZkcWEJJXhtbTYsMCglcnNwKQpAQCAtMTY5MSw3ICsxNjkxLDcgQEAKIAlwYW5kCSV4bW0xMiwleG1tMTMKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAogCXB4b3IJJXhtbTEzLCV4bW02Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTAKIAltb3ZkcWEJJXhtbTYsMTYoJXJzcCkKQEAgLTE3MDIsNyArMTcwMiw3IEBACiAJbW92ZHF1CTAoJXIxMiksJXhtbTcKIAljbXBxCSQxNiwlcjE0CiAJamUJTCR4dHNfZW5jXzEKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMQogCW1vdmRxYQkleG1tNiwzMiglcnNwKQpAQCAtMTcxNCw3ICsxNzE0LDcgQEAKIAljbXBxCSQzMiwlcjE0CiAJamUJTCR4dHNfZW5jXzIKIAlweG9yCSV4bW03LCV4bW0xNQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0yCiAJbW92ZHFhCSV4bW02LDQ4KCVyc3ApCkBAIC0xNzI2LDcgKzE3MjYsNyBAQAogCWNtcHEJJDQ4LCVyMTQKIAlqZQlMJHh0c19lbmNfMwogCXB4b3IJJXhtbTgsJXhtbTAKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMwogCW1vdmRxYQkleG1tNiw2NCglcnNwKQpAQCAtMTczOCw3ICsxNzM4LDcgQEAKIAljbXBxCSQ2NCwlcjE0CiAJamUJTCR4dHNfZW5jXzQKIAlweG9yCSV4bW05LCV4bW0xCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTQKIAltb3ZkcWEJJXhtbTYsODAoJXJzcCkKQEAgLTE3NTAsNyArMTc1MCw3IEBACiAJY21wcQkkODAsJXIxNAogCWplCUwkeHRzX2VuY181CiAJcHhvcgkleG1tMTAsJXhtbTIKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNQogCW1vdmRxYQkleG1tNiw5NiglcnNwKQpAQCAtMjAxNiwyMCArMjAxNiwyMCBAQAogCXNobHEJJDQsJXJheAogCXN1YnEJJXJheCwlcjE0CiAKLQlzdWJxCSQxMjgsJXJzcAorCXN1YnEJJDB4ODAsJXJzcAogCW1vdmRxYQkzMiglcmJwKSwleG1tNgogCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCUwkeHRzX21hZ2ljKCVyaXApLCV4bW0xMgogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAKLQlzdWJxCSQxMjgsJXIxNAorCXN1YnEJJDB4ODAsJXIxNAogCWpjCUwkeHRzX2RlY19zaG9ydAogCWptcAlMJHh0c19kZWNfbG9vcAogCiAucDJhbGlnbgk0CiBMJHh0c19kZWNfbG9vcDoKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMTUKIAltb3ZkcWEJJXhtbTYsMCglcnNwKQpAQCAtMjAzNyw3ICsyMDM3LDcgQEAKIAlwYW5kCSV4bW0xMiwleG1tMTMKIAlwY21wZ3RkCSV4bW02LCV4bW0xNAogCXB4b3IJJXhtbTEzLCV4bW02Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTAKIAltb3ZkcWEJJXhtbTYsMTYoJXJzcCkKQEAgLTIwNDYsNyArMjA0Niw3IEBACiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQkwKCVyMTIpLCV4bW03Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTEKIAltb3ZkcWEJJXhtbTYsMzIoJXJzcCkKQEAgLTIwNTYsNyArMjA1Niw3IEBACiAJcHhvcgkleG1tMTMsJXhtbTYKIAltb3ZkcXUJMTYoJXIxMiksJXhtbTgKIAlweG9yCSV4bW03LCV4bW0xNQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0yCiAJbW92ZHFhCSV4bW02LDQ4KCVyc3ApCkBAIC0yMDY2LDcgKzIwNjYsNyBAQAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTMyKCVyMTIpLCV4bW05CiAJcHhvcgkleG1tOCwleG1tMAotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0zCiAJbW92ZHFhCSV4bW02LDY0KCVyc3ApCkBAIC0yMDc2LDcgKzIwNzYsNyBAQAogCXB4b3IJJXhtbTEzLCV4bW02CiAJbW92ZHF1CTQ4KCVyMTIpLCV4bW0xMAogCXB4b3IJJXhtbTksJXhtbTEKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tNAogCW1vdmRxYQkleG1tNiw4MCglcnNwKQpAQCAtMjA4Niw3ICsyMDg2LDcgQEAKIAlweG9yCSV4bW0xMywleG1tNgogCW1vdmRxdQk2NCglcjEyKSwleG1tMTEKIAlweG9yCSV4bW0xMCwleG1tMgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW01CiAJbW92ZHFhCSV4bW02LDk2KCVyc3ApCkBAIC0yMTMwLDIwICsyMTMwLDIwIEBACiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCUwkeHRzX21hZ2ljKCVyaXApLCV4bW0xMgogCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAlwYWRkcQkleG1tNiwleG1tNgogCXBhbmQJJXhtbTEyLCV4bW0xMwogCXBjbXBndGQJJXhtbTYsJXhtbTE0CiAJcHhvcgkleG1tMTMsJXhtbTYKIAotCXN1YnEJJDEyOCwlcjE0CisJc3VicQkkMHg4MCwlcjE0CiAJam5jCUwkeHRzX2RlY19sb29wCiAKIEwkeHRzX2RlY19zaG9ydDoKLQlhZGRxCSQxMjgsJXIxNAorCWFkZHEJJDB4ODAsJXIxNAogCWp6CUwkeHRzX2RlY19kb25lCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTE1CiAJbW92ZHFhCSV4bW02LDAoJXJzcCkKQEAgLTIxNTEsNyArMjE1MSw3IEBACiAJcGFuZAkleG1tMTIsJXhtbTEzCiAJcGNtcGd0ZAkleG1tNiwleG1tMTQKIAlweG9yCSV4bW0xMywleG1tNgotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW0wCiAJbW92ZHFhCSV4bW02LDE2KCVyc3ApCkBAIC0yMTYyLDcgKzIxNjIsNyBAQAogCW1vdmRxdQkwKCVyMTIpLCV4bW03CiAJY21wcQkkMTYsJXIxNAogCWplCUwkeHRzX2RlY18xCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTEKIAltb3ZkcWEJJXhtbTYsMzIoJXJzcCkKQEAgLTIxNzQsNyArMjE3NCw3IEBACiAJY21wcQkkMzIsJXIxNAogCWplCUwkeHRzX2RlY18yCiAJcHhvcgkleG1tNywleG1tMTUKLQlwc2h1ZmQJJDE5LCV4bW0xNCwleG1tMTMKKwlwc2h1ZmQJJDB4MTMsJXhtbTE0LCV4bW0xMwogCXB4b3IJJXhtbTE0LCV4bW0xNAogCW1vdmRxYQkleG1tNiwleG1tMgogCW1vdmRxYQkleG1tNiw0OCglcnNwKQpAQCAtMjE4Niw3ICsyMTg2LDcgQEAKIAljbXBxCSQ0OCwlcjE0CiAJamUJTCR4dHNfZGVjXzMKIAlweG9yCSV4bW04LCV4bW0wCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTMKIAltb3ZkcWEJJXhtbTYsNjQoJXJzcCkKQEAgLTIxOTgsNyArMjE5OCw3IEBACiAJY21wcQkkNjQsJXIxNAogCWplCUwkeHRzX2RlY180CiAJcHhvcgkleG1tOSwleG1tMQotCXBzaHVmZAkkMTksJXhtbTE0LCV4bW0xMworCXBzaHVmZAkkMHgxMywleG1tMTQsJXhtbTEzCiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCSV4bW02LCV4bW00CiAJbW92ZHFhCSV4bW02LDgwKCVyc3ApCkBAIC0yMjEwLDcgKzIyMTAsNyBAQAogCWNtcHEJJDgwLCVyMTQKIAlqZQlMJHh0c19kZWNfNQogCXB4b3IJJXhtbTEwLCV4bW0yCi0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAlweG9yCSV4bW0xNCwleG1tMTQKIAltb3ZkcWEJJXhtbTYsJXhtbTUKIAltb3ZkcWEJJXhtbTYsOTYoJXJzcCkKQEAgLTIzODcsNyArMjM4Nyw3IEBACiAJcHhvcgkleG1tMTQsJXhtbTE0CiAJbW92ZHFhCUwkeHRzX21hZ2ljKCVyaXApLCV4bW0xMgogCXBjbXBndGQJJXhtbTYsJXhtbTE0Ci0JcHNodWZkCSQxOSwleG1tMTQsJXhtbTEzCisJcHNodWZkCSQweDEzLCV4bW0xNCwleG1tMTMKIAltb3ZkcWEJJXhtbTYsJXhtbTUKIAlwYWRkcQkleG1tNiwleG1tNgogCXBhbmQJJXhtbTEyLCV4bW0xMwpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Flcy92cGFlcy14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9hZXMvdnBhZXMteDg2XzY0LlMKaW5kZXggNzExZWE0My4uOTk3Y2RlOCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2Flcy92cGFlcy14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYWVzL3ZwYWVzLXg4Nl82NC5TCkBAIC02MSw3ICs2MSw3IEBACiAJYWRkcQkkMTYsJXIxMQogCXB4b3IJJXhtbTAsJXhtbTMKIC5ieXRlCTEwMiwxNSw1NiwwLDE5MwotCWFuZHEJJDQ4LCVyMTEKKwlhbmRxCSQweDMwLCVyMTEKIAlzdWJxCSQxLCVyYXgKIAlweG9yCSV4bW0zLCV4bW0wCiAKQEAgLTEyMSwxMCArMTIxLDEwIEBACiAJcGFuZAkleG1tOSwleG1tMAogLmJ5dGUJMTAyLDE1LDU2LDAsMjA4CiAJbW92ZHFhCUwka19kaXB0KzE2KCVyaXApLCV4bW0wCi0JeG9ycQkkNDgsJXIxMQorCXhvcnEJJDB4MzAsJXIxMQogCWxlYXEJTCRrX2RzYmQoJXJpcCksJXIxMAogLmJ5dGUJMTAyLDE1LDU2LDAsMTkzCi0JYW5kcQkkNDgsJXIxMQorCWFuZHEJJDB4MzAsJXIxMQogCXB4b3IJJXhtbTUsJXhtbTIKIAltb3ZkcWEJTCRrX21jX2ZvcndhcmQrNDgoJXJpcCksJXhtbTUKIAlweG9yCSV4bW0yLCV4bW0wCkBAIC0yNDMsNyArMjQzLDcgQEAKIAltb3ZkcWEJKCVyOCwlcjEwLDEpLCV4bW0xCiAuYnl0ZQkxMDIsMTUsNTYsMCwyMTcKIAltb3ZkcXUJJXhtbTMsKCVyZHgpCi0JeG9ycQkkNDgsJXI4CisJeG9ycQkkMHgzMCwlcjgKIAogTCRzY2hlZHVsZV9nbzoKIAljbXBsCSQxOTIsJWVzaQpAQCAtMzMzLDcgKzMzMyw3IEBACiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVfbWFuZ2xlCiAKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0wCisJcHNodWZkCSQweEZGLCV4bW0wLCV4bW0wCiAJbW92ZHFhCSV4bW03LCV4bW01CiAJbW92ZHFhCSV4bW02LCV4bW03CiAJY2FsbAlfdnBhZXNfc2NoZWR1bGVfbG93X3JvdW5kCkBAIC00MDAsOCArNDAwLDggQEAKIAogLnAyYWxpZ24JNAogX3ZwYWVzX3NjaGVkdWxlXzE5Ml9zbWVhcjoKLQlwc2h1ZmQJJDEyOCwleG1tNiwleG1tMQotCXBzaHVmZAkkMjU0LCV4bW03LCV4bW0wCisJcHNodWZkCSQweDgwLCV4bW02LCV4bW0xCisJcHNodWZkCSQweEZFLCV4bW03LCV4bW0wCiAJcHhvcgkleG1tMSwleG1tNgogCXB4b3IJJXhtbTEsJXhtbTEKIAlweG9yCSV4bW0wLCV4bW02CkBAIC00MzgsNyArNDM4LDcgQEAKIAlweG9yCSV4bW0xLCV4bW03CiAKIAotCXBzaHVmZAkkMjU1LCV4bW0wLCV4bW0wCisJcHNodWZkCSQweEZGLCV4bW0wLCV4bW0wCiAuYnl0ZQkxMDIsMTUsNTgsMTUsMTkyLDEKIAogCkBAIC01OTcsNyArNTk3LDcgQEAKIAltb3ZkcWEJKCVyOCwlcjEwLDEpLCV4bW0xCiAuYnl0ZQkxMDIsMTUsNTYsMCwyMTcKIAlhZGRxCSQtMTYsJXI4Ci0JYW5kcQkkNDgsJXI4CisJYW5kcQkkMHgzMCwlcjgKIAltb3ZkcXUJJXhtbTMsKCVyZHgpCiAJLmJ5dGUJMHhmMywweGMzCiAKQEAgLTYxNiw3ICs2MTYsNyBAQAogCW1vdmwJJWVheCwyNDAoJXJkeCkKIAogCW1vdmwJJDAsJWVjeAotCW1vdmwJJDQ4LCVyOGQKKwltb3ZsCSQweDMwLCVyOGQKIAljYWxsCV92cGFlc19zY2hlZHVsZV9jb3JlCiAJeG9ybAklZWF4LCVlYXgKIAkuYnl0ZQkweGYzLDB4YzMKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMKaW5kZXggNWU5ZTgyZi4uMzM3Mjc2ZiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LlMKQEAgLTQ2NSw0OCArNDY1LDk0IEBACiAJcHVzaHEJJXIxNAogCXB1c2hxCSVyMTUKIAotCW1vdmwJJXI5ZCwlcjlkCi0Jc3VicQkkMTI4KzI0LCVyc3AKKwlzdWJxCSQxNTIsJXJzcAogTCRtdWxfZ2F0aGVyNF9ib2R5OgotCW1vdmwJNjQoJXJkeCwlcjksNCksJWVheAotLmJ5dGUJMTAyLDcyLDE1LDExMCwxOTkKLQltb3ZsCSglcmR4LCVyOSw0KSwlZWJ4Ci0uYnl0ZQkxMDIsNzIsMTUsMTEwLDIwMQotCW1vdnEJJXI4LDEyOCglcnNwKQorCW1vdmQJJXI5ZCwleG1tOAorCW1vdmRxYQlMJGluYysxNiglcmlwKSwleG1tMQorCW1vdmRxYQlMJGluYyglcmlwKSwleG1tMAogCi0Jc2hscQkkMzIsJXJheAotCW9ycQklcmF4LCVyYngKKwlwc2h1ZmQJJDAsJXhtbTgsJXhtbTgKKwltb3ZkcWEJJXhtbTEsJXhtbTcKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTgsJXhtbTAKKwltb3ZkcWEJJXhtbTcsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTgsJXhtbTEKKwltb3ZkcWEJJXhtbTcsJXhtbTQKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTgsJXhtbTIKKwltb3ZkcWEJJXhtbTcsJXhtbTUKKwlwYWRkZAkleG1tMywleG1tNAorCXBjbXBlcWQJJXhtbTgsJXhtbTMKKwltb3ZkcWEJJXhtbTcsJXhtbTYKKwlwYWRkZAkleG1tNCwleG1tNQorCXBjbXBlcWQJJXhtbTgsJXhtbTQKKwlwYWRkZAkleG1tNSwleG1tNgorCXBjbXBlcWQJJXhtbTgsJXhtbTUKKwlwYWRkZAkleG1tNiwleG1tNworCXBjbXBlcWQJJXhtbTgsJXhtbTYKKwlwY21wZXFkCSV4bW04LCV4bW03CisKKwltb3ZkcWEJMCglcmR4KSwleG1tOAorCW1vdmRxYQkxNiglcmR4KSwleG1tOQorCW1vdmRxYQkzMiglcmR4KSwleG1tMTAKKwltb3ZkcWEJNDgoJXJkeCksJXhtbTExCisJcGFuZAkleG1tMCwleG1tOAorCW1vdmRxYQk2NCglcmR4KSwleG1tMTIKKwlwYW5kCSV4bW0xLCV4bW05CisJbW92ZHFhCTgwKCVyZHgpLCV4bW0xMworCXBhbmQJJXhtbTIsJXhtbTEwCisJbW92ZHFhCTk2KCVyZHgpLCV4bW0xNAorCXBhbmQJJXhtbTMsJXhtbTExCisJbW92ZHFhCTExMiglcmR4KSwleG1tMTUKKwlsZWFxCTEyOCglcmR4KSwlcmJwCisJcGFuZAkleG1tNCwleG1tMTIKKwlwYW5kCSV4bW01LCV4bW0xMworCXBhbmQJJXhtbTYsJXhtbTE0CisJcGFuZAkleG1tNywleG1tMTUKKwlwb3IJJXhtbTEwLCV4bW04CisJcG9yCSV4bW0xMSwleG1tOQorCXBvcgkleG1tMTIsJXhtbTgKKwlwb3IJJXhtbTEzLCV4bW05CisJcG9yCSV4bW0xNCwleG1tOAorCXBvcgkleG1tMTUsJXhtbTkKKworCXBvcgkleG1tOSwleG1tOAorCXBzaHVmZAkkMHg0ZSwleG1tOCwleG1tOQorCXBvcgkleG1tOSwleG1tOAorLmJ5dGUJMTAyLDc2LDE1LDEyNiwxOTUKKworCW1vdnEJJXI4LDEyOCglcnNwKQorCW1vdnEJJXJkaSwxMjgrOCglcnNwKQorCW1vdnEJJXJjeCwxMjgrMTYoJXJzcCkKKwogCW1vdnEJKCVyc2kpLCVyYXgKIAltb3ZxCTgoJXJzaSksJXJjeAotCWxlYXEJMTI4KCVyZHgsJXI5LDQpLCVyYnAKIAltdWxxCSVyYngKIAltb3ZxCSVyYXgsKCVyc3ApCiAJbW92cQklcmN4LCVyYXgKIAltb3ZxCSVyZHgsJXI4CiAKIAltdWxxCSVyYngKLQltb3ZkCSglcmJwKSwleG1tNAogCWFkZHEJJXJheCwlcjgKIAltb3ZxCTE2KCVyc2kpLCVyYXgKIAltb3ZxCSVyZHgsJXI5CiAJYWRjcQkkMCwlcjkKIAogCW11bHEJJXJieAotCW1vdmQJNjQoJXJicCksJXhtbTUKIAlhZGRxCSVyYXgsJXI5CiAJbW92cQkyNCglcnNpKSwlcmF4CiAJbW92cQklcmR4LCVyMTAKIAlhZGNxCSQwLCVyMTAKIAogCW11bHEJJXJieAotCXBzbGxkcQkkNCwleG1tNQogCWFkZHEJJXJheCwlcjEwCiAJbW92cQkzMiglcnNpKSwlcmF4CiAJbW92cQklcmR4LCVyMTEKIAlhZGNxCSQwLCVyMTEKIAogCW11bHEJJXJieAotCXBvcgkleG1tNSwleG1tNAogCWFkZHEJJXJheCwlcjExCiAJbW92cQk0MCglcnNpKSwlcmF4CiAJbW92cQklcmR4LCVyMTIKQEAgLTUxOSwxNCArNTY1LDEyIEBACiAJYWRjcQkkMCwlcjEzCiAKIAltdWxxCSVyYngKLQlsZWFxCTEyOCglcmJwKSwlcmJwCiAJYWRkcQklcmF4LCVyMTMKIAltb3ZxCTU2KCVyc2kpLCVyYXgKIAltb3ZxCSVyZHgsJXIxNAogCWFkY3EJJDAsJXIxNAogCiAJbXVscQklcmJ4Ci0uYnl0ZQkxMDIsNzIsMTUsMTI2LDIyNwogCWFkZHEJJXJheCwlcjE0CiAJbW92cQkoJXJzaSksJXJheAogCW1vdnEJJXJkeCwlcjE1CkBAIC01MzgsNiArNTgyLDM1IEBACiAKIC5wMmFsaWduCTUKIEwkb29wX211bF9nYXRoZXI6CisJbW92ZHFhCTAoJXJicCksJXhtbTgKKwltb3ZkcWEJMTYoJXJicCksJXhtbTkKKwltb3ZkcWEJMzIoJXJicCksJXhtbTEwCisJbW92ZHFhCTQ4KCVyYnApLCV4bW0xMQorCXBhbmQJJXhtbTAsJXhtbTgKKwltb3ZkcWEJNjQoJXJicCksJXhtbTEyCisJcGFuZAkleG1tMSwleG1tOQorCW1vdmRxYQk4MCglcmJwKSwleG1tMTMKKwlwYW5kCSV4bW0yLCV4bW0xMAorCW1vdmRxYQk5NiglcmJwKSwleG1tMTQKKwlwYW5kCSV4bW0zLCV4bW0xMQorCW1vdmRxYQkxMTIoJXJicCksJXhtbTE1CisJbGVhcQkxMjgoJXJicCksJXJicAorCXBhbmQJJXhtbTQsJXhtbTEyCisJcGFuZAkleG1tNSwleG1tMTMKKwlwYW5kCSV4bW02LCV4bW0xNAorCXBhbmQJJXhtbTcsJXhtbTE1CisJcG9yCSV4bW0xMCwleG1tOAorCXBvcgkleG1tMTEsJXhtbTkKKwlwb3IJJXhtbTEyLCV4bW04CisJcG9yCSV4bW0xMywleG1tOQorCXBvcgkleG1tMTQsJXhtbTgKKwlwb3IJJXhtbTE1LCV4bW05CisKKwlwb3IJJXhtbTksJXhtbTgKKwlwc2h1ZmQJJDB4NGUsJXhtbTgsJXhtbTkKKwlwb3IJJXhtbTksJXhtbTgKKy5ieXRlCTEwMiw3NiwxNSwxMjYsMTk1CisKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXI4CiAJbW92cQk4KCVyc2kpLCVyYXgKQEAgLTU0Niw3ICs2MTksNiBAQAogCWFkY3EJJDAsJXI4CiAKIAltdWxxCSVyYngKLQltb3ZkCSglcmJwKSwleG1tNAogCWFkZHEJJXJheCwlcjkKIAltb3ZxCTE2KCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKQEAgLTU1NSw3ICs2MjcsNiBAQAogCWFkY3EJJDAsJXI5CiAKIAltdWxxCSVyYngKLQltb3ZkCTY0KCVyYnApLCV4bW01CiAJYWRkcQklcmF4LCVyMTAKIAltb3ZxCTI0KCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKQEAgLTU2NCw3ICs2MzUsNiBAQAogCWFkY3EJJDAsJXIxMAogCiAJbXVscQklcmJ4Ci0JcHNsbGRxCSQ0LCV4bW01CiAJYWRkcQklcmF4LCVyMTEKIAltb3ZxCTMyKCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKQEAgLTU3Myw3ICs2NDMsNiBAQAogCWFkY3EJJDAsJXIxMQogCiAJbXVscQklcmJ4Ci0JcG9yCSV4bW01LCV4bW00CiAJYWRkcQklcmF4LCVyMTIKIAltb3ZxCTQwKCVyc2kpLCVyYXgKIAlhZGNxCSQwLCVyZHgKQEAgLTU5OCw3ICs2NjcsNiBAQAogCWFkY3EJJDAsJXIxNAogCiAJbXVscQklcmJ4Ci0uYnl0ZQkxMDIsNzIsMTUsMTI2LDIyNwogCWFkZHEJJXJheCwlcjE1CiAJbW92cQkoJXJzaSksJXJheAogCWFkY3EJJDAsJXJkeApAQCAtNjA2LDcgKzY3NCw2IEBACiAJbW92cQklcmR4LCVyMTUKIAlhZGNxCSQwLCVyMTUKIAotCWxlYXEJMTI4KCVyYnApLCVyYnAKIAlsZWFxCTgoJXJkaSksJXJkaQogCiAJZGVjbAklZWN4CkBAIC02MjEsOCArNjg4LDggQEAKIAltb3ZxCSVyMTQsNDgoJXJkaSkKIAltb3ZxCSVyMTUsNTYoJXJkaSkKIAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMjA1CisJbW92cQkxMjgrOCglcnNwKSwlcmRpCisJbW92cQkxMjgrMTYoJXJzcCksJXJicAogCiAJbW92cQkoJXJzcCksJXI4CiAJbW92cQk4KCVyc3ApLCVyOQpAQCAtNjcyLDcgKzczOSw3IEBACiAJbW92bAklcjlkLCVyOWQKIAlzdWJxCSQxMjgrMjQsJXJzcAogTCRtdWxfc2NhdHRlcjRfYm9keToKLQlsZWFxCSglcjgsJXI5LDQpLCVyOAorCWxlYXEJKCVyOCwlcjksOCksJXI4CiAuYnl0ZQkxMDIsNzIsMTUsMTEwLDE5OQogLmJ5dGUJMTAyLDcyLDE1LDExMCwyMDIKIC5ieXRlCTEwMiw3MywxNSwxMTAsMjA4CkBAIC03MDgsMzAgKzc3NSwxNCBAQAogCiAJY2FsbAlfX3JzYXpfNTEyX3N1YnRyYWN0CiAKLQltb3ZsCSVyOGQsMCglcnNpKQotCXNocnEJJDMyLCVyOAotCW1vdmwJJXI5ZCwxMjgoJXJzaSkKLQlzaHJxCSQzMiwlcjkKLQltb3ZsCSVyMTBkLDI1NiglcnNpKQotCXNocnEJJDMyLCVyMTAKLQltb3ZsCSVyMTFkLDM4NCglcnNpKQotCXNocnEJJDMyLCVyMTEKLQltb3ZsCSVyMTJkLDUxMiglcnNpKQotCXNocnEJJDMyLCVyMTIKLQltb3ZsCSVyMTNkLDY0MCglcnNpKQotCXNocnEJJDMyLCVyMTMKLQltb3ZsCSVyMTRkLDc2OCglcnNpKQotCXNocnEJJDMyLCVyMTQKLQltb3ZsCSVyMTVkLDg5NiglcnNpKQotCXNocnEJJDMyLCVyMTUKLQltb3ZsCSVyOGQsNjQoJXJzaSkKLQltb3ZsCSVyOWQsMTkyKCVyc2kpCi0JbW92bAklcjEwZCwzMjAoJXJzaSkKLQltb3ZsCSVyMTFkLDQ0OCglcnNpKQotCW1vdmwJJXIxMmQsNTc2KCVyc2kpCi0JbW92bAklcjEzZCw3MDQoJXJzaSkKLQltb3ZsCSVyMTRkLDgzMiglcnNpKQotCW1vdmwJJXIxNWQsOTYwKCVyc2kpCisJbW92cQklcjgsMCglcnNpKQorCW1vdnEJJXI5LDEyOCglcnNpKQorCW1vdnEJJXIxMCwyNTYoJXJzaSkKKwltb3ZxCSVyMTEsMzg0KCVyc2kpCisJbW92cQklcjEyLDUxMiglcnNpKQorCW1vdnEJJXIxMyw2NDAoJXJzaSkKKwltb3ZxCSVyMTQsNzY4KCVyc2kpCisJbW92cQklcjE1LDg5NiglcnNpKQogCiAJbGVhcQkxMjgrMjQrNDgoJXJzcCksJXJheAogCW1vdnEJLTQ4KCVyYXgpLCVyMTUKQEAgLTEwODYsMTYgKzExMzcsMTQgQEAKIAogLnAyYWxpZ24JNAogX3JzYXpfNTEyX3NjYXR0ZXI0OgotCWxlYXEJKCVyZGksJXJkeCw0KSwlcmRpCisJbGVhcQkoJXJkaSwlcmR4LDgpLCVyZGkKIAltb3ZsCSQ4LCVyOWQKIAlqbXAJTCRvb3Bfc2NhdHRlcgogLnAyYWxpZ24JNAogTCRvb3Bfc2NhdHRlcjoKIAltb3ZxCSglcnNpKSwlcmF4CiAJbGVhcQk4KCVyc2kpLCVyc2kKLQltb3ZsCSVlYXgsKCVyZGkpCi0Jc2hycQkkMzIsJXJheAotCW1vdmwJJWVheCw2NCglcmRpKQorCW1vdnEJJXJheCwoJXJkaSkKIAlsZWFxCTEyOCglcmRpKSwlcmRpCiAJZGVjbAklcjlkCiAJam56CUwkb29wX3NjYXR0ZXIKQEAgLTExMDcsMjAgKzExNTYsNzMgQEAKIAogLnAyYWxpZ24JNAogX3JzYXpfNTEyX2dhdGhlcjQ6Ci0JbGVhcQkoJXJzaSwlcmR4LDQpLCVyc2kKKwltb3ZkCSVlZHgsJXhtbTgKKwltb3ZkcWEJTCRpbmMrMTYoJXJpcCksJXhtbTEKKwltb3ZkcWEJTCRpbmMoJXJpcCksJXhtbTAKKworCXBzaHVmZAkkMCwleG1tOCwleG1tOAorCW1vdmRxYQkleG1tMSwleG1tNworCW1vdmRxYQkleG1tMSwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tOCwleG1tMAorCW1vdmRxYQkleG1tNywleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tOCwleG1tMQorCW1vdmRxYQkleG1tNywleG1tNAorCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tOCwleG1tMgorCW1vdmRxYQkleG1tNywleG1tNQorCXBhZGRkCSV4bW0zLCV4bW00CisJcGNtcGVxZAkleG1tOCwleG1tMworCW1vdmRxYQkleG1tNywleG1tNgorCXBhZGRkCSV4bW00LCV4bW01CisJcGNtcGVxZAkleG1tOCwleG1tNAorCXBhZGRkCSV4bW01LCV4bW02CisJcGNtcGVxZAkleG1tOCwleG1tNQorCXBhZGRkCSV4bW02LCV4bW03CisJcGNtcGVxZAkleG1tOCwleG1tNgorCXBjbXBlcWQJJXhtbTgsJXhtbTcKIAltb3ZsCSQ4LCVyOWQKIAlqbXAJTCRvb3BfZ2F0aGVyCiAucDJhbGlnbgk0CiBMJG9vcF9nYXRoZXI6Ci0JbW92bAkoJXJzaSksJWVheAotCW1vdmwJNjQoJXJzaSksJXI4ZAorCW1vdmRxYQkwKCVyc2kpLCV4bW04CisJbW92ZHFhCTE2KCVyc2kpLCV4bW05CisJbW92ZHFhCTMyKCVyc2kpLCV4bW0xMAorCW1vdmRxYQk0OCglcnNpKSwleG1tMTEKKwlwYW5kCSV4bW0wLCV4bW04CisJbW92ZHFhCTY0KCVyc2kpLCV4bW0xMgorCXBhbmQJJXhtbTEsJXhtbTkKKwltb3ZkcWEJODAoJXJzaSksJXhtbTEzCisJcGFuZAkleG1tMiwleG1tMTAKKwltb3ZkcWEJOTYoJXJzaSksJXhtbTE0CisJcGFuZAkleG1tMywleG1tMTEKKwltb3ZkcWEJMTEyKCVyc2kpLCV4bW0xNQogCWxlYXEJMTI4KCVyc2kpLCVyc2kKLQlzaGxxCSQzMiwlcjgKLQlvcnEJJXI4LCVyYXgKLQltb3ZxCSVyYXgsKCVyZGkpCisJcGFuZAkleG1tNCwleG1tMTIKKwlwYW5kCSV4bW01LCV4bW0xMworCXBhbmQJJXhtbTYsJXhtbTE0CisJcGFuZAkleG1tNywleG1tMTUKKwlwb3IJJXhtbTEwLCV4bW04CisJcG9yCSV4bW0xMSwleG1tOQorCXBvcgkleG1tMTIsJXhtbTgKKwlwb3IJJXhtbTEzLCV4bW05CisJcG9yCSV4bW0xNCwleG1tOAorCXBvcgkleG1tMTUsJXhtbTkKKworCXBvcgkleG1tOSwleG1tOAorCXBzaHVmZAkkMHg0ZSwleG1tOCwleG1tOQorCXBvcgkleG1tOSwleG1tOAorCW1vdnEJJXhtbTgsKCVyZGkpCiAJbGVhcQk4KCVyZGkpLCVyZGkKIAlkZWNsCSVyOWQKIAlqbnoJTCRvb3BfZ2F0aGVyCiAJLmJ5dGUJMHhmMywweGMzCitMJFNFSF9lbmRfcnNhel81MTJfZ2F0aGVyNDoKIAorCisucDJhbGlnbgk2CitMJGluYzoKKy5sb25nCTAsMCwgMSwxCisubG9uZwkyLDIsIDIsMgogI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TCmluZGV4IDZiOWJjMDUuLjUxZTVkMTkgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5TCkBAIC02MzQsMjAgKzYzNCwyMCBAQAogCiAKIAotCWxlYXEJLTY0KCVyc3AsJXI5LDQpLCVyMTEKKwlsZWFxCS02NCglcnNwLCVyOSwyKSwlcjExCiAJbW92cQkoJXI4KSwlcjgKIAlzdWJxCSVyc2ksJXIxMQogCWFuZHEJJDQwOTUsJXIxMQogCWNtcHEJJXIxMSwlcjEwCiAJamIJTCRzcXI4eF9zcF9hbHQKIAlzdWJxCSVyMTEsJXJzcAotCWxlYXEJLTY0KCVyc3AsJXI5LDQpLCVyc3AKKwlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCiAJam1wCUwkc3FyOHhfc3BfZG9uZQogCiAucDJhbGlnbgk1CiBMJHNxcjh4X3NwX2FsdDoKLQlsZWFxCTQwOTYtNjQoLCVyOSw0KSwlcjEwCi0JbGVhcQktNjQoJXJzcCwlcjksNCksJXJzcAorCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKKwlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCiAJc3VicQklcjEwLCVyMTEKIAltb3ZxCSQwLCVyMTAKIAljbW92Y3EJJXIxMCwlcjExCkBAIC02NTcsNTggKzY1Nyw4MCBAQAogCW1vdnEJJXI5LCVyMTAKIAluZWdxCSVyOQogCi0JbGVhcQk2NCglcnNwLCVyOSwyKSwlcjExCiAJbW92cQklcjgsMzIoJXJzcCkKIAltb3ZxCSVyYXgsNDAoJXJzcCkKIEwkc3FyOHhfYm9keToKIAotCW1vdnEJJXI5LCVyYnAKLS5ieXRlCTEwMiw3MywxNSwxMTAsMjExCi0Jc2hycQkkMysyLCVyYnAKLQltb3ZsCV9PUEVOU1NMX2lhMzJjYXBfUCs4KCVyaXApLCVlYXgKLQlqbXAJTCRzcXI4eF9jb3B5X24KLQotLnAyYWxpZ24JNQotTCRzcXI4eF9jb3B5X246Ci0JbW92cQkwKCVyY3gpLCV4bW0wCi0JbW92cQk4KCVyY3gpLCV4bW0xCi0JbW92cQkxNiglcmN4KSwleG1tMwotCW1vdnEJMjQoJXJjeCksJXhtbTQKLQlsZWFxCTMyKCVyY3gpLCVyY3gKLQltb3ZkcWEJJXhtbTAsMCglcjExKQotCW1vdmRxYQkleG1tMSwxNiglcjExKQotCW1vdmRxYQkleG1tMywzMiglcjExKQotCW1vdmRxYQkleG1tNCw0OCglcjExKQotCWxlYXEJNjQoJXIxMSksJXIxMQotCWRlY3EJJXJicAotCWpueglMJHNxcjh4X2NvcHlfbgotCisuYnl0ZQkxMDIsNzIsMTUsMTEwLDIwOQogCXB4b3IJJXhtbTAsJXhtbTAKIC5ieXRlCTEwMiw3MiwxNSwxMTAsMjA3CiAuYnl0ZQkxMDIsNzMsMTUsMTEwLDIxOAogCWNhbGwJX2JuX3Nxcjh4X2ludGVybmFsCiAKLQlweG9yCSV4bW0wLCV4bW0wCi0JbGVhcQk0OCglcnNwKSwlcmF4Ci0JbGVhcQk2NCglcnNwLCVyOSwyKSwlcmR4Ci0Jc2hycQkkMysyLCVyOQotCW1vdnEJNDAoJXJzcCksJXJzaQotCWptcAlMJHNxcjh4X3plcm8KKworCisKKwlsZWFxCSglcmRpLCVyOSwxKSwlcmJ4CisJbW92cQklcjksJXJjeAorCW1vdnEJJXI5LCVyZHgKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMjA3CisJc2FycQkkMysyLCVyY3gKKwlqbXAJTCRzcXI4eF9zdWIKIAogLnAyYWxpZ24JNQotTCRzcXI4eF96ZXJvOgotCW1vdmRxYQkleG1tMCwwKCVyYXgpCi0JbW92ZHFhCSV4bW0wLDE2KCVyYXgpCi0JbW92ZHFhCSV4bW0wLDMyKCVyYXgpCi0JbW92ZHFhCSV4bW0wLDQ4KCVyYXgpCi0JbGVhcQk2NCglcmF4KSwlcmF4Ci0JbW92ZHFhCSV4bW0wLDAoJXJkeCkKLQltb3ZkcWEJJXhtbTAsMTYoJXJkeCkKLQltb3ZkcWEJJXhtbTAsMzIoJXJkeCkKLQltb3ZkcWEJJXhtbTAsNDgoJXJkeCkKLQlsZWFxCTY0KCVyZHgpLCVyZHgKLQlkZWNxCSVyOQotCWpueglMJHNxcjh4X3plcm8KK0wkc3FyOHhfc3ViOgorCW1vdnEJMCglcmJ4KSwlcjEyCisJbW92cQk4KCVyYngpLCVyMTMKKwltb3ZxCTE2KCVyYngpLCVyMTQKKwltb3ZxCTI0KCVyYngpLCVyMTUKKwlsZWFxCTMyKCVyYngpLCVyYngKKwlzYmJxCTAoJXJicCksJXIxMgorCXNiYnEJOCglcmJwKSwlcjEzCisJc2JicQkxNiglcmJwKSwlcjE0CisJc2JicQkyNCglcmJwKSwlcjE1CisJbGVhcQkzMiglcmJwKSwlcmJwCisJbW92cQklcjEyLDAoJXJkaSkKKwltb3ZxCSVyMTMsOCglcmRpKQorCW1vdnEJJXIxNCwxNiglcmRpKQorCW1vdnEJJXIxNSwyNCglcmRpKQorCWxlYXEJMzIoJXJkaSksJXJkaQorCWluY3EJJXJjeAorCWpueglMJHNxcjh4X3N1YgorCisJc2JicQkkMCwlcmF4CisJbGVhcQkoJXJieCwlcjksMSksJXJieAorCWxlYXEJKCVyZGksJXI5LDEpLCVyZGkKKworLmJ5dGUJMTAyLDcyLDE1LDExMCwyMDAKKwlweG9yCSV4bW0wLCV4bW0wCisJcHNodWZkCSQwLCV4bW0xLCV4bW0xCisJbW92cQk0MCglcnNwKSwlcnNpCisJam1wCUwkc3FyOHhfY29uZF9jb3B5CisKKy5wMmFsaWduCTUKK0wkc3FyOHhfY29uZF9jb3B5OgorCW1vdmRxYQkwKCVyYngpLCV4bW0yCisJbW92ZHFhCTE2KCVyYngpLCV4bW0zCisJbGVhcQkzMiglcmJ4KSwlcmJ4CisJbW92ZHF1CTAoJXJkaSksJXhtbTQKKwltb3ZkcXUJMTYoJXJkaSksJXhtbTUKKwlsZWFxCTMyKCVyZGkpLCVyZGkKKwltb3ZkcWEJJXhtbTAsLTMyKCVyYngpCisJbW92ZHFhCSV4bW0wLC0xNiglcmJ4KQorCW1vdmRxYQkleG1tMCwtMzIoJXJieCwlcmR4LDEpCisJbW92ZHFhCSV4bW0wLC0xNiglcmJ4LCVyZHgsMSkKKwlwY21wZXFkCSV4bW0xLCV4bW0wCisJcGFuZAkleG1tMSwleG1tMgorCXBhbmQJJXhtbTEsJXhtbTMKKwlwYW5kCSV4bW0wLCV4bW00CisJcGFuZAkleG1tMCwleG1tNQorCXB4b3IJJXhtbTAsJXhtbTAKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcXUJJXhtbTQsLTMyKCVyZGkpCisJbW92ZHF1CSV4bW01LC0xNiglcmRpKQorCWFkZHEJJDMyLCVyOQorCWpueglMJHNxcjh4X2NvbmRfY29weQogCiAJbW92cQkkMSwlcmF4CiAJbW92cQktNDgoJXJzaSksJXIxNQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250NS5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250NS5TCmluZGV4IDJlOGY0NjkuLmYzYWQ4ZDcgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQ1LlMKQEAgLTE2LDQ2ICsxNiwxNTEgQEAKIEwkbXVsX2VudGVyOgogCW1vdmwJJXI5ZCwlcjlkCiAJbW92cQklcnNwLCVyYXgKLQltb3ZsCTgoJXJzcCksJXIxMGQKKwltb3ZkCTgoJXJzcCksJXhtbTUKKwlsZWFxCUwkaW5jKCVyaXApLCVyMTAKIAlwdXNocQklcmJ4CiAJcHVzaHEJJXJicAogCXB1c2hxCSVyMTIKIAlwdXNocQklcjEzCiAJcHVzaHEJJXIxNAogCXB1c2hxCSVyMTUKKwogCWxlYXEJMiglcjkpLCVyMTEKIAluZWdxCSVyMTEKLQlsZWFxCSglcnNwLCVyMTEsOCksJXJzcAorCWxlYXEJLTI2NCglcnNwLCVyMTEsOCksJXJzcAogCWFuZHEJJC0xMDI0LCVyc3AKIAogCW1vdnEJJXJheCw4KCVyc3AsJXI5LDgpCiBMJG11bF9ib2R5OgotCW1vdnEJJXJkeCwlcjEyCi0JbW92cQklcjEwLCVyMTEKLQlzaHJxCSQzLCVyMTAKLQlhbmRxCSQ3LCVyMTEKLQlub3RxCSVyMTAKLQlsZWFxCUwkbWFnaWNfbWFza3MoJXJpcCksJXJheAotCWFuZHEJJDMsJXIxMAotCWxlYXEJOTYoJXIxMiwlcjExLDgpLCVyMTIKLQltb3ZxCTAoJXJheCwlcjEwLDgpLCV4bW00Ci0JbW92cQk4KCVyYXgsJXIxMCw4KSwleG1tNQotCW1vdnEJMTYoJXJheCwlcjEwLDgpLCV4bW02Ci0JbW92cQkyNCglcmF4LCVyMTAsOCksJXhtbTcKKwlsZWFxCTEyOCglcmR4KSwlcjEyCisJbW92ZHFhCTAoJXIxMCksJXhtbTAKKwltb3ZkcWEJMTYoJXIxMCksJXhtbTEKKwlsZWFxCTI0LTExMiglcnNwLCVyOSw4KSwlcjEwCisJYW5kcQkkLTE2LCVyMTAKIAotCW1vdnEJLTk2KCVyMTIpLCV4bW0wCi0JbW92cQktMzIoJXIxMiksJXhtbTEKLQlwYW5kCSV4bW00LCV4bW0wCi0JbW92cQkzMiglcjEyKSwleG1tMgotCXBhbmQJJXhtbTUsJXhtbTEKLQltb3ZxCTk2KCVyMTIpLCV4bW0zCi0JcGFuZAkleG1tNiwleG1tMgotCXBvcgkleG1tMSwleG1tMAotCXBhbmQJJXhtbTcsJXhtbTMKKwlwc2h1ZmQJJDAsJXhtbTUsJXhtbTUKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwltb3ZkcWEJJXhtbTEsJXhtbTIKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKy5ieXRlCTB4NjcKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMTEyKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMTI4KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMTQ0KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0yCisKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsMTYwKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDE3NiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDE5MiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLDIwOCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMgorCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW0zLDIyNCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwyNDAoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwyNTYoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwyNzIoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKworCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywyODgoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMzA0KCVyMTApCisKKwlwYWRkZAkleG1tMiwleG1tMworLmJ5dGUJMHg2NworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMzIwKCVyMTApCisKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLDMzNiglcjEwKQorCXBhbmQJNjQoJXIxMiksJXhtbTAKKworCXBhbmQJODAoJXIxMiksJXhtbTEKKwlwYW5kCTk2KCVyMTIpLCV4bW0yCisJbW92ZHFhCSV4bW0zLDM1MiglcjEwKQorCXBhbmQJMTEyKCVyMTIpLCV4bW0zCiAJcG9yCSV4bW0yLCV4bW0wCisJcG9yCSV4bW0zLCV4bW0xCisJbW92ZHFhCS0xMjgoJXIxMiksJXhtbTQKKwltb3ZkcWEJLTExMiglcjEyKSwleG1tNQorCW1vdmRxYQktOTYoJXIxMiksJXhtbTIKKwlwYW5kCTExMiglcjEwKSwleG1tNAorCW1vdmRxYQktODAoJXIxMiksJXhtbTMKKwlwYW5kCTEyOCglcjEwKSwleG1tNQorCXBvcgkleG1tNCwleG1tMAorCXBhbmQJMTQ0KCVyMTApLCV4bW0yCisJcG9yCSV4bW01LCV4bW0xCisJcGFuZAkxNjAoJXIxMCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTAKKwlwb3IJJXhtbTMsJXhtbTEKKwltb3ZkcWEJLTY0KCVyMTIpLCV4bW00CisJbW92ZHFhCS00OCglcjEyKSwleG1tNQorCW1vdmRxYQktMzIoJXIxMiksJXhtbTIKKwlwYW5kCTE3NiglcjEwKSwleG1tNAorCW1vdmRxYQktMTYoJXIxMiksJXhtbTMKKwlwYW5kCTE5MiglcjEwKSwleG1tNQorCXBvcgkleG1tNCwleG1tMAorCXBhbmQJMjA4KCVyMTApLCV4bW0yCisJcG9yCSV4bW01LCV4bW0xCisJcGFuZAkyMjQoJXIxMCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTAKKwlwb3IJJXhtbTMsJXhtbTEKKwltb3ZkcWEJMCglcjEyKSwleG1tNAorCW1vdmRxYQkxNiglcjEyKSwleG1tNQorCW1vdmRxYQkzMiglcjEyKSwleG1tMgorCXBhbmQJMjQwKCVyMTApLCV4bW00CisJbW92ZHFhCTQ4KCVyMTIpLCV4bW0zCisJcGFuZAkyNTYoJXIxMCksJXhtbTUKKwlwb3IJJXhtbTQsJXhtbTAKKwlwYW5kCTI3MiglcjEwKSwleG1tMgorCXBvcgkleG1tNSwleG1tMQorCXBhbmQJMjg4KCVyMTApLCV4bW0zCisJcG9yCSV4bW0yLCV4bW0wCisJcG9yCSV4bW0zLCV4bW0xCisJcG9yCSV4bW0xLCV4bW0wCisJcHNodWZkCSQweDRlLCV4bW0wLCV4bW0xCisJcG9yCSV4bW0xLCV4bW0wCiAJbGVhcQkyNTYoJXIxMiksJXIxMgotCXBvcgkleG1tMywleG1tMAotCiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5NQogCiAJbW92cQkoJXI4KSwlcjgKQEAgLTY0LDI5ICsxNjksMTQgQEAKIAl4b3JxCSVyMTQsJXIxNAogCXhvcnEJJXIxNSwlcjE1CiAKLQltb3ZxCS05NiglcjEyKSwleG1tMAotCW1vdnEJLTMyKCVyMTIpLCV4bW0xCi0JcGFuZAkleG1tNCwleG1tMAotCW1vdnEJMzIoJXIxMiksJXhtbTIKLQlwYW5kCSV4bW01LCV4bW0xCi0KIAltb3ZxCSVyOCwlcmJwCiAJbXVscQklcmJ4CiAJbW92cQklcmF4LCVyMTAKIAltb3ZxCSglcmN4KSwlcmF4CiAKLQltb3ZxCTk2KCVyMTIpLCV4bW0zCi0JcGFuZAkleG1tNiwleG1tMgotCXBvcgkleG1tMSwleG1tMAotCXBhbmQJJXhtbTcsJXhtbTMKLQogCWltdWxxCSVyMTAsJXJicAogCW1vdnEJJXJkeCwlcjExCiAKLQlwb3IJJXhtbTIsJXhtbTAKLQlsZWFxCTI1NiglcjEyKSwlcjEyCi0JcG9yCSV4bW0zLCV4bW0wCi0KIAltdWxxCSVyYnAKIAlhZGRxCSVyYXgsJXIxMAogCW1vdnEJOCglcnNpKSwlcmF4CkBAIC0xMTksMTQgKzIwOSwxMiBAQAogCWNtcHEJJXI5LCVyMTUKIAlqbmUJTCQxc3QKIAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTUKIAogCWFkZHEJJXJheCwlcjEzCi0JbW92cQkoJXJzaSksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcjEzCiAJYWRjcQkkMCwlcmR4Ci0JbW92cQklcjEzLC0xNiglcnNwLCVyMTUsOCkKKwltb3ZxCSVyMTMsLTE2KCVyc3AsJXI5LDgpCiAJbW92cQklcmR4LCVyMTMKIAltb3ZxCSVyMTAsJXIxMQogCkBAIC0xNDAsMzMgKzIyOCw3OCBAQAogCWptcAlMJG91dGVyCiAucDJhbGlnbgk0CiBMJG91dGVyOgorCWxlYXEJMjQrMTI4KCVyc3AsJXI5LDgpLCVyZHgKKwlhbmRxCSQtMTYsJXJkeAorCXB4b3IJJXhtbTQsJXhtbTQKKwlweG9yCSV4bW01LCV4bW01CisJbW92ZHFhCS0xMjgoJXIxMiksJXhtbTAKKwltb3ZkcWEJLTExMiglcjEyKSwleG1tMQorCW1vdmRxYQktOTYoJXIxMiksJXhtbTIKKwltb3ZkcWEJLTgwKCVyMTIpLCV4bW0zCisJcGFuZAktMTI4KCVyZHgpLCV4bW0wCisJcGFuZAktMTEyKCVyZHgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAktOTYoJXJkeCksJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTUKKwlwYW5kCS04MCglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCW1vdmRxYQktNjQoJXIxMiksJXhtbTAKKwltb3ZkcWEJLTQ4KCVyMTIpLCV4bW0xCisJbW92ZHFhCS0zMiglcjEyKSwleG1tMgorCW1vdmRxYQktMTYoJXIxMiksJXhtbTMKKwlwYW5kCS02NCglcmR4KSwleG1tMAorCXBhbmQJLTQ4KCVyZHgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAktMzIoJXJkeCksJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTUKKwlwYW5kCS0xNiglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCW1vdmRxYQkwKCVyMTIpLCV4bW0wCisJbW92ZHFhCTE2KCVyMTIpLCV4bW0xCisJbW92ZHFhCTMyKCVyMTIpLCV4bW0yCisJbW92ZHFhCTQ4KCVyMTIpLCV4bW0zCisJcGFuZAkwKCVyZHgpLCV4bW0wCisJcGFuZAkxNiglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJMzIoJXJkeCksJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTUKKwlwYW5kCTQ4KCVyZHgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCTY0KCVyMTIpLCV4bW0wCisJbW92ZHFhCTgwKCVyMTIpLCV4bW0xCisJbW92ZHFhCTk2KCVyMTIpLCV4bW0yCisJbW92ZHFhCTExMiglcjEyKSwleG1tMworCXBhbmQJNjQoJXJkeCksJXhtbTAKKwlwYW5kCTgwKCVyZHgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAk5NiglcmR4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJMTEyKCVyZHgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJcG9yCSV4bW01LCV4bW00CisJcHNodWZkCSQweDRlLCV4bW00LCV4bW0wCisJcG9yCSV4bW00LCV4bW0wCisJbGVhcQkyNTYoJXIxMiksJXIxMgorCisJbW92cQkoJXJzaSksJXJheAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTUKKwogCXhvcnEJJXIxNSwlcjE1CiAJbW92cQklcjgsJXJicAogCW1vdnEJKCVyc3ApLCVyMTAKIAotCW1vdnEJLTk2KCVyMTIpLCV4bW0wCi0JbW92cQktMzIoJXIxMiksJXhtbTEKLQlwYW5kCSV4bW00LCV4bW0wCi0JbW92cQkzMiglcjEyKSwleG1tMgotCXBhbmQJJXhtbTUsJXhtbTEKLQogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEwCiAJbW92cQkoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCi0JbW92cQk5NiglcjEyKSwleG1tMwotCXBhbmQJJXhtbTYsJXhtbTIKLQlwb3IJJXhtbTEsJXhtbTAKLQlwYW5kCSV4bW03LCV4bW0zCi0KIAlpbXVscQklcjEwLCVyYnAKIAltb3ZxCSVyZHgsJXIxMQogCi0JcG9yCSV4bW0yLCV4bW0wCi0JbGVhcQkyNTYoJXIxMiksJXIxMgotCXBvcgkleG1tMywleG1tMAotCiAJbXVscQklcmJwCiAJYWRkcQklcmF4LCVyMTAKIAltb3ZxCTgoJXJzaSksJXJheApAQCAtMjAyLDE1ICszMzUsMTIgQEAKIAljbXBxCSVyOSwlcjE1CiAJam5lCUwkaW5uZXIKIAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTUKLQogCWFkZHEJJXJheCwlcjEzCi0JbW92cQkoJXJzaSksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMCwlcjEzCi0JbW92cQkoJXJzcCwlcjE1LDgpLCVyMTAKKwltb3ZxCSglcnNwLCVyOSw4KSwlcjEwCiAJYWRjcQkkMCwlcmR4Ci0JbW92cQklcjEzLC0xNiglcnNwLCVyMTUsOCkKKwltb3ZxCSVyMTMsLTE2KCVyc3AsJXI5LDgpCiAJbW92cQklcmR4LCVyMTMKIAogCXhvcnEJJXJkeCwlcmR4CkBAIC0yNTYsNiArMzg2LDcgQEAKIAogCW1vdnEJOCglcnNwLCVyOSw4KSwlcnNpCiAJbW92cQkkMSwlcmF4CisKIAltb3ZxCS00OCglcnNpKSwlcjE1CiAJbW92cQktNDAoJXJzaSksJXIxNAogCW1vdnEJLTMyKCVyc2kpLCVyMTMKQEAgLTI3OCwxMCArNDA5LDEwIEBACiAJcHVzaHEJJXIxMwogCXB1c2hxCSVyMTQKIAlwdXNocQklcjE1CisKIC5ieXRlCTB4NjcKLQltb3ZsCSVyOWQsJXIxMGQKIAlzaGxsCSQzLCVyOWQKLQlzaGxsCSQzKzIsJXIxMGQKKwlsZWFxCSglcjksJXI5LDIpLCVyMTAKIAluZWdxCSVyOQogCiAKQEAgLTI5MSwxOSArNDIyLDIxIEBACiAKIAogCi0JbGVhcQktNjQoJXJzcCwlcjksMiksJXIxMQotCXN1YnEJJXJzaSwlcjExCisKKworCWxlYXEJLTMyMCglcnNwLCVyOSwyKSwlcjExCisJc3VicQklcmRpLCVyMTEKIAlhbmRxCSQ0MDk1LCVyMTEKIAljbXBxCSVyMTEsJXIxMAogCWpiCUwkbXVsNHhzcF9hbHQKIAlzdWJxCSVyMTEsJXJzcAotCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyc3AKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCWptcAlMJG11bDR4c3BfZG9uZQogCiAucDJhbGlnbgk1CiBMJG11bDR4c3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQk0MDk2LTMyMCgsJXI5LDIpLCVyMTAKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCXN1YnEJJXIxMCwlcjExCiAJbW92cQkkMCwlcjEwCiAJY21vdmNxCSVyMTAsJXIxMQpAQCAtMzE5LDYgKzQ1Miw3IEBACiAKIAltb3ZxCTQwKCVyc3ApLCVyc2kKIAltb3ZxCSQxLCVyYXgKKwogCW1vdnEJLTQ4KCVyc2kpLCVyMTUKIAltb3ZxCS00MCglcnNpKSwlcjE0CiAJbW92cQktMzIoJXJzaSksJXIxMwpAQCAtMzM0LDQ3ICs0NjgsMTQxIEBACiAucDJhbGlnbgk1CiBtdWw0eF9pbnRlcm5hbDoKIAlzaGxxCSQ1LCVyOQotCW1vdmwJOCglcmF4KSwlcjEwZAotCWxlYXEJMjU2KCVyZHgsJXI5LDEpLCVyMTMKKwltb3ZkCTgoJXJheCksJXhtbTUKKwlsZWFxCUwkaW5jKCVyaXApLCVyYXgKKwlsZWFxCTEyOCglcmR4LCVyOSwxKSwlcjEzCiAJc2hycQkkNSwlcjkKLQltb3ZxCSVyMTAsJXIxMQotCXNocnEJJDMsJXIxMAotCWFuZHEJJDcsJXIxMQotCW5vdHEJJXIxMAotCWxlYXEJTCRtYWdpY19tYXNrcyglcmlwKSwlcmF4Ci0JYW5kcQkkMywlcjEwCi0JbGVhcQk5NiglcmR4LCVyMTEsOCksJXIxMgotCW1vdnEJMCglcmF4LCVyMTAsOCksJXhtbTQKLQltb3ZxCTgoJXJheCwlcjEwLDgpLCV4bW01Ci0JYWRkcQkkNywlcjExCi0JbW92cQkxNiglcmF4LCVyMTAsOCksJXhtbTYKLQltb3ZxCTI0KCVyYXgsJXIxMCw4KSwleG1tNwotCWFuZHEJJDcsJXIxMQorCW1vdmRxYQkwKCVyYXgpLCV4bW0wCisJbW92ZHFhCTE2KCVyYXgpLCV4bW0xCisJbGVhcQk4OC0xMTIoJXJzcCwlcjksMSksJXIxMAorCWxlYXEJMTI4KCVyZHgpLCVyMTIKIAotCW1vdnEJLTk2KCVyMTIpLCV4bW0wCi0JbGVhcQkyNTYoJXIxMiksJXIxNAotCW1vdnEJLTMyKCVyMTIpLCV4bW0xCi0JcGFuZAkleG1tNCwleG1tMAotCW1vdnEJMzIoJXIxMiksJXhtbTIKLQlwYW5kCSV4bW01LCV4bW0xCi0JbW92cQk5NiglcjEyKSwleG1tMwotCXBhbmQJJXhtbTYsJXhtbTIKKwlwc2h1ZmQJJDAsJXhtbTUsJXhtbTUKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKy5ieXRlCTB4NjcsMHg2NworCW1vdmRxYQkleG1tMSwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAogLmJ5dGUJMHg2NwotCXBvcgkleG1tMSwleG1tMAotCW1vdnEJLTk2KCVyMTQpLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDExMiglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLDEyOCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLDE0NCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMgorCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW0zLDE2MCglcjEwKQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwxNzYoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwxOTIoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwyMDgoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKworCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywyMjQoJXIxMCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYWRkZAkleG1tMSwleG1tMgorCXBjbXBlcWQJJXhtbTUsJXhtbTEKKwltb3ZkcWEJJXhtbTAsMjQwKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMjU2KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMjcyKCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0yCisKKwlwYWRkZAkleG1tMCwleG1tMQorCXBjbXBlcWQJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTMsMjg4KCVyMTApCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDMwNCglcjEwKQorCisJcGFkZGQJJXhtbTIsJXhtbTMKIC5ieXRlCTB4NjcKLQlwYW5kCSV4bW03LCV4bW0zCi0uYnl0ZQkweDY3CisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwzMjAoJXIxMCkKKworCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsMzM2KCVyMTApCisJcGFuZAk2NCglcjEyKSwleG1tMAorCisJcGFuZAk4MCglcjEyKSwleG1tMQorCXBhbmQJOTYoJXIxMiksJXhtbTIKKwltb3ZkcWEJJXhtbTMsMzUyKCVyMTApCisJcGFuZAkxMTIoJXIxMiksJXhtbTMKIAlwb3IJJXhtbTIsJXhtbTAKLQltb3ZxCS0zMiglcjE0KSwleG1tMgotLmJ5dGUJMHg2NwotCXBhbmQJJXhtbTQsJXhtbTEKLS5ieXRlCTB4NjcKLQlwb3IJJXhtbTMsJXhtbTAKLQltb3ZxCTMyKCVyMTQpLCV4bW0zCi0KKwlwb3IJJXhtbTMsJXhtbTEKKwltb3ZkcWEJLTEyOCglcjEyKSwleG1tNAorCW1vdmRxYQktMTEyKCVyMTIpLCV4bW01CisJbW92ZHFhCS05NiglcjEyKSwleG1tMgorCXBhbmQJMTEyKCVyMTApLCV4bW00CisJbW92ZHFhCS04MCglcjEyKSwleG1tMworCXBhbmQJMTI4KCVyMTApLCV4bW01CisJcG9yCSV4bW00LCV4bW0wCisJcGFuZAkxNDQoJXIxMCksJXhtbTIKKwlwb3IJJXhtbTUsJXhtbTEKKwlwYW5kCTE2MCglcjEwKSwleG1tMworCXBvcgkleG1tMiwleG1tMAorCXBvcgkleG1tMywleG1tMQorCW1vdmRxYQktNjQoJXIxMiksJXhtbTQKKwltb3ZkcWEJLTQ4KCVyMTIpLCV4bW01CisJbW92ZHFhCS0zMiglcjEyKSwleG1tMgorCXBhbmQJMTc2KCVyMTApLCV4bW00CisJbW92ZHFhCS0xNiglcjEyKSwleG1tMworCXBhbmQJMTkyKCVyMTApLCV4bW01CisJcG9yCSV4bW00LCV4bW0wCisJcGFuZAkyMDgoJXIxMCksJXhtbTIKKwlwb3IJJXhtbTUsJXhtbTEKKwlwYW5kCTIyNCglcjEwKSwleG1tMworCXBvcgkleG1tMiwleG1tMAorCXBvcgkleG1tMywleG1tMQorCW1vdmRxYQkwKCVyMTIpLCV4bW00CisJbW92ZHFhCTE2KCVyMTIpLCV4bW01CisJbW92ZHFhCTMyKCVyMTIpLCV4bW0yCisJcGFuZAkyNDAoJXIxMCksJXhtbTQKKwltb3ZkcWEJNDgoJXIxMiksJXhtbTMKKwlwYW5kCTI1NiglcjEwKSwleG1tNQorCXBvcgkleG1tNCwleG1tMAorCXBhbmQJMjcyKCVyMTApLCV4bW0yCisJcG9yCSV4bW01LCV4bW0xCisJcGFuZAkyODgoJXIxMCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTAKKwlwb3IJJXhtbTMsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTAKKwlwc2h1ZmQJJDB4NGUsJXhtbTAsJXhtbTEKKwlwb3IJJXhtbTEsJXhtbTAKKwlsZWFxCTI1NiglcjEyKSwlcjEyCiAuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5NQotCW1vdnEJOTYoJXIxNCksJXhtbTAKKwogCW1vdnEJJXIxMywxNis4KCVyc3ApCiAJbW92cQklcmRpLDU2KzgoJXJzcCkKIApAQCAtMzg4LDI2ICs2MTYsMTAgQEAKIAltb3ZxCSVyYXgsJXIxMAogCW1vdnEJKCVyY3gpLCVyYXgKIAotCXBhbmQJJXhtbTUsJXhtbTIKLQlwYW5kCSV4bW02LCV4bW0zCi0JcG9yCSV4bW0yLCV4bW0xCi0KIAlpbXVscQklcjEwLCVyYnAKLQotCi0KLQotCi0KLQotCWxlYXEJNjQrOCglcnNwLCVyMTEsOCksJXIxNAorCWxlYXEJNjQrOCglcnNwKSwlcjE0CiAJbW92cQklcmR4LCVyMTEKIAotCXBhbmQJJXhtbTcsJXhtbTAKLQlwb3IJJXhtbTMsJXhtbTEKLQlsZWFxCTUxMiglcjEyKSwlcjEyCi0JcG9yCSV4bW0xLCV4bW0wCi0KIAltdWxxCSVyYnAKIAlhZGRxCSVyYXgsJXIxMAogCW1vdnEJOCglcnNpLCVyOSwxKSwlcmF4CkBAIC00MTYsNyArNjI4LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCi0JbW92cQkxNiglcmN4KSwlcmF4CisJbW92cQk4KCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAltb3ZxCSVyZHgsJXIxMAogCkBAIC00MjYsNyArNjM4LDcgQEAKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTEsJXJkaQogCWxlYXEJMzIoJXI5KSwlcjE1Ci0JbGVhcQk2NCglcmN4KSwlcmN4CisJbGVhcQkzMiglcmN4KSwlcmN4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmRpLCglcjE0KQogCW1vdnEJJXJkeCwlcjEzCkBAIC00MzYsNyArNjQ4LDcgQEAKIEwkMXN0NHg6CiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTAKLQltb3ZxCS0zMiglcmN4KSwlcmF4CisJbW92cQktMTYoJXJjeCksJXJheAogCWxlYXEJMzIoJXIxNCksJXIxNAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXJkeCwlcjExCkBAIC00NTIsNyArNjY0LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCi0JbW92cQktMTYoJXJjeCksJXJheAorCW1vdnEJLTgoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXJkeCwlcjEwCiAKQEAgLTQ4Miw3ICs2OTQsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCTE2KCVyY3gpLCVyYXgKKwltb3ZxCTgoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXJkeCwlcjEwCiAKQEAgLTQ5MSw3ICs3MDMsNyBAQAogCW1vdnEJMTYoJXJzaSwlcjE1LDEpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTEsJXJkaQotCWxlYXEJNjQoJXJjeCksJXJjeAorCWxlYXEJMzIoJXJjeCksJXJjeAogCWFkY3EJJDAsJXJkeAogCW1vdnEJJXJkaSwoJXIxNCkKIAltb3ZxCSVyZHgsJXIxMwpAQCAtNTAxLDcgKzcxMyw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMAotCW1vdnEJLTMyKCVyY3gpLCVyYXgKKwltb3ZxCS0xNiglcmN4KSwlcmF4CiAJbGVhcQkzMiglcjE0KSwlcjE0CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTEKQEAgLTUxNyw3ICs3MjksNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCS0xNiglcmN4KSwlcmF4CisJbW92cQktOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcmR4LCVyMTAKIApAQCAtNTMwLDggKzc0Miw3IEBACiAJbW92cQklcmRpLC0xNiglcjE0KQogCW1vdnEJJXJkeCwlcjEzCiAKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1Ci0JbGVhcQkoJXJjeCwlcjksMiksJXJjeAorCWxlYXEJKCVyY3gsJXI5LDEpLCVyY3gKIAogCXhvcnEJJXJkaSwlcmRpCiAJYWRkcQklcjEwLCVyMTMKQEAgLTU0Miw2ICs3NTMsNjMgQEAKIAogLnAyYWxpZ24JNQogTCRvdXRlcjR4OgorCWxlYXEJMTYrMTI4KCVyMTQpLCVyZHgKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCW1vdmRxYQktMTI4KCVyMTIpLCV4bW0wCisJbW92ZHFhCS0xMTIoJXIxMiksJXhtbTEKKwltb3ZkcWEJLTk2KCVyMTIpLCV4bW0yCisJbW92ZHFhCS04MCglcjEyKSwleG1tMworCXBhbmQJLTEyOCglcmR4KSwleG1tMAorCXBhbmQJLTExMiglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJLTk2KCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAktODAoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJLTY0KCVyMTIpLCV4bW0wCisJbW92ZHFhCS00OCglcjEyKSwleG1tMQorCW1vdmRxYQktMzIoJXIxMiksJXhtbTIKKwltb3ZkcWEJLTE2KCVyMTIpLCV4bW0zCisJcGFuZAktNjQoJXJkeCksJXhtbTAKKwlwYW5kCS00OCglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJLTMyKCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAktMTYoJXJkeCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJMCglcjEyKSwleG1tMAorCW1vdmRxYQkxNiglcjEyKSwleG1tMQorCW1vdmRxYQkzMiglcjEyKSwleG1tMgorCW1vdmRxYQk0OCglcjEyKSwleG1tMworCXBhbmQJMCglcmR4KSwleG1tMAorCXBhbmQJMTYoJXJkeCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCTMyKCVyZHgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAk0OCglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCW1vdmRxYQk2NCglcjEyKSwleG1tMAorCW1vdmRxYQk4MCglcjEyKSwleG1tMQorCW1vdmRxYQk5NiglcjEyKSwleG1tMgorCW1vdmRxYQkxMTIoJXIxMiksJXhtbTMKKwlwYW5kCTY0KCVyZHgpLCV4bW0wCisJcGFuZAk4MCglcmR4KSwleG1tMQorCXBvcgkleG1tMCwleG1tNAorCXBhbmQJOTYoJXJkeCksJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTUKKwlwYW5kCTExMiglcmR4KSwleG1tMworCXBvcgkleG1tMiwleG1tNAorCXBvcgkleG1tMywleG1tNQorCXBvcgkleG1tNSwleG1tNAorCXBzaHVmZAkkMHg0ZSwleG1tNCwleG1tMAorCXBvcgkleG1tNCwleG1tMAorCWxlYXEJMjU2KCVyMTIpLCVyMTIKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk1CisKIAltb3ZxCSglcjE0LCVyOSwxKSwlcjEwCiAJbW92cQklcjgsJXJicAogCW11bHEJJXJieApAQCAtNTQ5LDI1ICs4MTcsMTEgQEAKIAltb3ZxCSglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAKLQltb3ZxCS05NiglcjEyKSwleG1tMAotCW1vdnEJLTMyKCVyMTIpLCV4bW0xCi0JcGFuZAkleG1tNCwleG1tMAotCW1vdnEJMzIoJXIxMiksJXhtbTIKLQlwYW5kCSV4bW01LCV4bW0xCi0JbW92cQk5NiglcjEyKSwleG1tMwotCiAJaW11bHEJJXIxMCwlcmJwCi0uYnl0ZQkweDY3CiAJbW92cQklcmR4LCVyMTEKIAltb3ZxCSVyZGksKCVyMTQpCiAKLQlwYW5kCSV4bW02LCV4bW0yCi0JcG9yCSV4bW0xLCV4bW0wCi0JcGFuZAkleG1tNywleG1tMwotCXBvcgkleG1tMiwleG1tMAogCWxlYXEJKCVyMTQsJXI5LDEpLCVyMTQKLQlsZWFxCTI1NiglcjEyKSwlcjEyCi0JcG9yCSV4bW0zLCV4bW0wCiAKIAltdWxxCSVyYnAKIAlhZGRxCSVyYXgsJXIxMApAQCAtNTc3LDcgKzgzMSw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJMTYoJXJjeCksJXJheAorCW1vdnEJOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQk4KCVyMTQpLCVyMTEKIAlhZGNxCSQwLCVyZHgKQEAgLTU4OSw3ICs4NDMsNyBAQAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcmRpCiAJbGVhcQkzMiglcjkpLCVyMTUKLQlsZWFxCTY0KCVyY3gpLCVyY3gKKwlsZWFxCTMyKCVyY3gpLCVyY3gKIAlhZGNxCSQwLCVyZHgKIAltb3ZxCSVyZHgsJXIxMwogCWptcAlMJGlubmVyNHgKQEAgLTU5OCw3ICs4NTIsNyBAQAogTCRpbm5lcjR4OgogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEwCi0JbW92cQktMzIoJXJjeCksJXJheAorCW1vdnEJLTE2KCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCTE2KCVyMTQpLCVyMTAKIAlsZWFxCTMyKCVyMTQpLCVyMTQKQEAgLTYxNiw3ICs4NzAsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCS0xNiglcmN4KSwlcmF4CisJbW92cQktOCglcmN4KSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQktOCglcjE0KSwlcjExCiAJYWRjcQkkMCwlcmR4CkBAIC02NTAsNyArOTA0LDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjExCi0JbW92cQkxNiglcmN4KSwlcmF4CisJbW92cQk4KCVyY3gpLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCTgoJXIxNCksJXIxMQogCWFkY3EJJDAsJXJkeApAQCAtNjYxLDcgKzkxNSw3IEBACiAJbW92cQkxNiglcnNpLCVyMTUsMSksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMSwlcmRpCi0JbGVhcQk2NCglcmN4KSwlcmN4CisJbGVhcQkzMiglcmN4KSwlcmN4CiAJYWRjcQkkMCwlcmR4CiAJbW92cQklcjEzLC04KCVyMTQpCiAJbW92cQklcmR4LCVyMTMKQEAgLTY3MSw3ICs5MjUsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTAKLQltb3ZxCS0zMiglcmN4KSwlcmF4CisJbW92cQktMTYoJXJjeCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJMTYoJXIxNCksJXIxMAogCWxlYXEJMzIoJXIxNCksJXIxNApAQCAtNjkwLDcgKzk0NCw3IEBACiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKIAltb3ZxCSVyYnAsJXJheAotCW1vdnEJLTE2KCVyY3gpLCVyYnAKKwltb3ZxCS04KCVyY3gpLCVyYnAKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCS04KCVyMTQpLCVyMTEKIAlhZGNxCSQwLCVyZHgKQEAgLTcwNSw5ICs5NTksOCBAQAogCW1vdnEJJXIxMywtMjQoJXIxNCkKIAltb3ZxCSVyZHgsJXIxMwogCi0uYnl0ZQkxMDIsNzIsMTUsMTI2LDE5NQogCW1vdnEJJXJkaSwtMTYoJXIxNCkKLQlsZWFxCSglcmN4LCVyOSwyKSwlcmN4CisJbGVhcQkoJXJjeCwlcjksMSksJXJjeAogCiAJeG9ycQklcmRpLCVyZGkKIAlhZGRxCSVyMTAsJXIxMwpAQCAtNzE4LDE2ICs5NzEsMjMgQEAKIAogCWNtcHEJMTYrOCglcnNwKSwlcjEyCiAJamIJTCRvdXRlcjR4CisJeG9ycQklcmF4LCVyYXgKIAlzdWJxCSVyMTMsJXJicAogCWFkY3EJJXIxNSwlcjE1CiAJb3JxCSVyMTUsJXJkaQotCXhvcnEJJDEsJXJkaQorCXN1YnEJJXJkaSwlcmF4CiAJbGVhcQkoJXIxNCwlcjksMSksJXJieAotCWxlYXEJKCVyY3gsJXJkaSw4KSwlcmJwCisJbW92cQkoJXJjeCksJXIxMgorCWxlYXEJKCVyY3gpLCVyYnAKIAltb3ZxCSVyOSwlcmN4CiAJc2FycQkkMysyLCVyY3gKIAltb3ZxCTU2KzgoJXJzcCksJXJkaQotCWptcAlMJHNxcjR4X3N1YgorCWRlY3EJJXIxMgorCXhvcnEJJXIxMCwlcjEwCisJbW92cQk4KCVyYnApLCVyMTMKKwltb3ZxCTE2KCVyYnApLCVyMTQKKwltb3ZxCTI0KCVyYnApLCVyMTUKKwlqbXAJTCRzcXI0eF9zdWJfZW50cnkKIAogLmdsb2JsCV9ibl9wb3dlcjUKIC5wcml2YXRlX2V4dGVybiBfYm5fcG93ZXI1CkBAIC03NDEsOSArMTAwMSw5IEBACiAJcHVzaHEJJXIxMwogCXB1c2hxCSVyMTQKIAlwdXNocQklcjE1Ci0JbW92bAklcjlkLCVyMTBkCisKIAlzaGxsCSQzLCVyOWQKLQlzaGxsCSQzKzIsJXIxMGQKKwlsZWFsCSglcjksJXI5LDIpLCVyMTBkCiAJbmVncQklcjkKIAltb3ZxCSglcjgpLCVyOAogCkBAIC03NTMsMTkgKzEwMTMsMjAgQEAKIAogCiAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcjExCi0Jc3VicQklcnNpLCVyMTEKKworCWxlYXEJLTMyMCglcnNwLCVyOSwyKSwlcjExCisJc3VicQklcmRpLCVyMTEKIAlhbmRxCSQ0MDk1LCVyMTEKIAljbXBxCSVyMTEsJXIxMAogCWpiCUwkcHdyX3NwX2FsdAogCXN1YnEJJXIxMSwlcnNwCi0JbGVhcQktNjQoJXJzcCwlcjksMiksJXJzcAorCWxlYXEJLTMyMCglcnNwLCVyOSwyKSwlcnNwCiAJam1wCUwkcHdyX3NwX2RvbmUKIAogLnAyYWxpZ24JNQogTCRwd3Jfc3BfYWx0OgotCWxlYXEJNDA5Ni02NCgsJXI5LDIpLCVyMTAKLQlsZWFxCS02NCglcnNwLCVyOSwyKSwlcnNwCisJbGVhcQk0MDk2LTMyMCgsJXI5LDIpLCVyMTAKKwlsZWFxCS0zMjAoJXJzcCwlcjksMiksJXJzcAogCXN1YnEJJXIxMCwlcjExCiAJbW92cQkkMCwlcjEwCiAJY21vdmNxCSVyMTAsJXIxMQpAQCAtNzkzLDEwICsxMDU0LDE1IEBACiAuYnl0ZQkxMDIsNzIsMTUsMTEwLDIyNgogCiAJY2FsbAlfX2JuX3Nxcjh4X2ludGVybmFsCisJY2FsbAlfX2JuX3Bvc3Q0eF9pbnRlcm5hbAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAljYWxsCV9fYm5fc3FyOHhfaW50ZXJuYWwKKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAJY2FsbAlfX2JuX3Nxcjh4X2ludGVybmFsCisJY2FsbAlfX2JuX3Bvc3Q0eF9pbnRlcm5hbAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAogLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDkKIC5ieXRlCTEwMiw3MiwxNSwxMjYsMjI2CkBAIC0xMzQxLDkgKzE2MDcsOSBAQAogCW1vdnEJJXJieCwtMTYoJXJkaSkKIAltb3ZxCSVyOCwtOCglcmRpKQogLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMTMKLXNxcjh4X3JlZHVjdGlvbjoKK19fYm5fc3FyOHhfcmVkdWN0aW9uOgogCXhvcnEJJXJheCwlcmF4Ci0JbGVhcQkoJXJicCwlcjksMiksJXJjeAorCWxlYXEJKCVyOSwlcmJwLDEpLCVyY3gKIAlsZWFxCTQ4KzgoJXJzcCwlcjksMiksJXJkeAogCW1vdnEJJXJjeCwwKzgoJXJzcCkKIAlsZWFxCTQ4KzgoJXJzcCwlcjksMSksJXJkaQpAQCAtMTM3NiwxNCArMTY0MiwxNCBAQAogLnAyYWxpZ24JNQogTCQ4eF9yZWR1Y2U6CiAJbXVscQklcmJ4Ci0JbW92cQkxNiglcmJwKSwlcmF4CisJbW92cQk4KCVyYnApLCVyYXgKIAluZWdxCSVyOAogCW1vdnEJJXJkeCwlcjgKIAlhZGNxCSQwLCVyOAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyOQotCW1vdnEJMzIoJXJicCksJXJheAorCW1vdnEJMTYoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXI5LCVyOAogCW1vdnEJJXJieCw0OC04KzgoJXJzcCwlcmN4LDgpCkBAIC0xMzkyLDcgKzE2NTgsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTAKLQltb3ZxCTQ4KCVyYnApLCVyYXgKKwltb3ZxCTI0KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTAsJXI5CiAJbW92cQkzMis4KCVyc3ApLCVyc2kKQEAgLTE0MDEsNyArMTY2Nyw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMQotCW1vdnEJNjQoJXJicCksJXJheAorCW1vdnEJMzIoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWltdWxxCSVyOCwlcnNpCiAJYWRkcQklcjExLCVyMTAKQEAgLTE0MTAsNyArMTY3Niw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMgotCW1vdnEJODAoJXJicCksJXJheAorCW1vdnEJNDAoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMiwlcjExCiAJbW92cQklcmR4LCVyMTIKQEAgLTE0MTgsNyArMTY4NCw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxMwotCW1vdnEJOTYoJXJicCksJXJheAorCW1vdnEJNDgoJXJicCksJXJheAogCWFkY3EJJDAsJXJkeAogCWFkZHEJJXIxMywlcjEyCiAJbW92cQklcmR4LCVyMTMKQEAgLTE0MjYsNyArMTY5Miw3IEBACiAKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXIxNAotCW1vdnEJMTEyKCVyYnApLCVyYXgKKwltb3ZxCTU2KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTQsJXIxMwogCW1vdnEJJXJkeCwlcjE0CkBAIC0xNDQ0LDcgKzE3MTAsNyBAQAogCWRlY2wJJWVjeAogCWpueglMJDh4X3JlZHVjZQogCi0JbGVhcQkxMjgoJXJicCksJXJicAorCWxlYXEJNjQoJXJicCksJXJicAogCXhvcnEJJXJheCwlcmF4CiAJbW92cQk4KzgoJXJzcCksJXJkeAogCWNtcHEJMCs4KCVyc3ApLCVyYnAKQEAgLTE0NzAsMTQgKzE3MzYsMTQgQEAKIEwkOHhfdGFpbDoKIAltdWxxCSVyYngKIAlhZGRxCSVyYXgsJXI4Ci0JbW92cQkxNiglcmJwKSwlcmF4CisJbW92cQk4KCVyYnApLCVyYXgKIAltb3ZxCSVyOCwoJXJkaSkKIAltb3ZxCSVyZHgsJXI4CiAJYWRjcQkkMCwlcjgKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjkKLQltb3ZxCTMyKCVyYnApLCVyYXgKKwltb3ZxCTE2KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyOSwlcjgKIAlsZWFxCTgoJXJkaSksJXJkaQpAQCAtMTQ4Niw3ICsxNzUyLDcgQEAKIAogCW11bHEJJXJieAogCWFkZHEJJXJheCwlcjEwCi0JbW92cQk0OCglcmJwKSwlcmF4CisJbW92cQkyNCglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjEwLCVyOQogCW1vdnEJJXJkeCwlcjEwCkBAIC0xNDk0LDcgKzE3NjAsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTEKLQltb3ZxCTY0KCVyYnApLCVyYXgKKwltb3ZxCTMyKCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTEsJXIxMAogCW1vdnEJJXJkeCwlcjExCkBAIC0xNTAyLDcgKzE3NjgsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTIKLQltb3ZxCTgwKCVyYnApLCVyYXgKKwltb3ZxCTQwKCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTIsJXIxMQogCW1vdnEJJXJkeCwlcjEyCkBAIC0xNTEwLDcgKzE3NzYsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTMKLQltb3ZxCTk2KCVyYnApLCVyYXgKKwltb3ZxCTQ4KCVyYnApLCVyYXgKIAlhZGNxCSQwLCVyZHgKIAlhZGRxCSVyMTMsJXIxMgogCW1vdnEJJXJkeCwlcjEzCkBAIC0xNTE4LDcgKzE3ODQsNyBAQAogCiAJbXVscQklcmJ4CiAJYWRkcQklcmF4LCVyMTQKLQltb3ZxCTExMiglcmJwKSwlcmF4CisJbW92cQk1NiglcmJwKSwlcmF4CiAJYWRjcQkkMCwlcmR4CiAJYWRkcQklcjE0LCVyMTMKIAltb3ZxCSVyZHgsJXIxNApAQCAtMTUzNiw3ICsxODAyLDcgQEAKIAlkZWNsCSVlY3gKIAlqbnoJTCQ4eF90YWlsCiAKLQlsZWFxCTEyOCglcmJwKSwlcmJwCisJbGVhcQk2NCglcmJwKSwlcmJwCiAJbW92cQk4KzgoJXJzcCksJXJkeAogCWNtcHEJMCs4KCVyc3ApLCVyYnAKIAlqYWUJTCQ4eF90YWlsX2RvbmUKQEAgLTE1NjAsNiArMTgyNiwxNSBAQAogLnAyYWxpZ24JNQogTCQ4eF90YWlsX2RvbmU6CiAJYWRkcQkoJXJkeCksJXI4CisJYWRjcQkkMCwlcjkKKwlhZGNxCSQwLCVyMTAKKwlhZGNxCSQwLCVyMTEKKwlhZGNxCSQwLCVyMTIKKwlhZGNxCSQwLCVyMTMKKwlhZGNxCSQwLCVyMTQKKwlhZGNxCSQwLCVyMTUKKworCiAJeG9ycQklcmF4LCVyYXgKIAogCW5lZ3EJJXJzaQpAQCAtMTU3Myw3ICsxODQ4LDcgQEAKIAlhZGNxCTQ4KCVyZGkpLCVyMTQKIAlhZGNxCTU2KCVyZGkpLCVyMTUKIAlhZGNxCSQwLCVyYXgKLQltb3ZxCS0xNiglcmJwKSwlcmN4CisJbW92cQktOCglcmJwKSwlcmN4CiAJeG9ycQklcnNpLCVyc2kKIAogLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMTMKQEAgLTE1OTEsNDAgKzE4NjYsNTggQEAKIAogCWNtcHEJJXJkeCwlcmRpCiAJamIJTCQ4eF9yZWR1Y3Rpb25fbG9vcAorCS5ieXRlCTB4ZjMsMHhjMwogCi0Jc3VicQklcjE1LCVyY3gKLQlsZWFxCSglcmRpLCVyOSwxKSwlcmJ4Ci0JYWRjcQklcnNpLCVyc2kKLQltb3ZxCSVyOSwlcmN4Ci0Jb3JxCSVyc2ksJXJheAotLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKLQl4b3JxCSQxLCVyYXgKLS5ieXRlCTEwMiw3MiwxNSwxMjYsMjA2Ci0JbGVhcQkoJXJicCwlcmF4LDgpLCVyYnAKLQlzYXJxCSQzKzIsJXJjeAotCWptcAlMJHNxcjR4X3N1YgogCiAucDJhbGlnbgk1CitfX2JuX3Bvc3Q0eF9pbnRlcm5hbDoKKwltb3ZxCTAoJXJicCksJXIxMgorCWxlYXEJKCVyZGksJXI5LDEpLCVyYngKKwltb3ZxCSVyOSwlcmN4CisuYnl0ZQkxMDIsNzIsMTUsMTI2LDIwNworCW5lZ3EJJXJheAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDYKKwlzYXJxCSQzKzIsJXJjeAorCWRlY3EJJXIxMgorCXhvcnEJJXIxMCwlcjEwCisJbW92cQk4KCVyYnApLCVyMTMKKwltb3ZxCTE2KCVyYnApLCVyMTQKKwltb3ZxCTI0KCVyYnApLCVyMTUKKwlqbXAJTCRzcXI0eF9zdWJfZW50cnkKKworLnAyYWxpZ24JNAogTCRzcXI0eF9zdWI6Ci0uYnl0ZQkweDY2Ci0JbW92cQkwKCVyYngpLCVyMTIKLQltb3ZxCTgoJXJieCksJXIxMwotCXNiYnEJMCglcmJwKSwlcjEyCi0JbW92cQkxNiglcmJ4KSwlcjE0Ci0Jc2JicQkxNiglcmJwKSwlcjEzCi0JbW92cQkyNCglcmJ4KSwlcjE1Ci0JbGVhcQkzMiglcmJ4KSwlcmJ4Ci0Jc2JicQkzMiglcmJwKSwlcjE0CisJbW92cQkwKCVyYnApLCVyMTIKKwltb3ZxCTgoJXJicCksJXIxMworCW1vdnEJMTYoJXJicCksJXIxNAorCW1vdnEJMjQoJXJicCksJXIxNQorTCRzcXI0eF9zdWJfZW50cnk6CisJbGVhcQkzMiglcmJwKSwlcmJwCisJbm90cQklcjEyCisJbm90cQklcjEzCisJbm90cQklcjE0CisJbm90cQklcjE1CisJYW5kcQklcmF4LCVyMTIKKwlhbmRxCSVyYXgsJXIxMworCWFuZHEJJXJheCwlcjE0CisJYW5kcQklcmF4LCVyMTUKKworCW5lZ3EJJXIxMAorCWFkY3EJMCglcmJ4KSwlcjEyCisJYWRjcQk4KCVyYngpLCVyMTMKKwlhZGNxCTE2KCVyYngpLCVyMTQKKwlhZGNxCTI0KCVyYngpLCVyMTUKIAltb3ZxCSVyMTIsMCglcmRpKQotCXNiYnEJNDgoJXJicCksJXIxNQotCWxlYXEJNjQoJXJicCksJXJicAorCWxlYXEJMzIoJXJieCksJXJieAogCW1vdnEJJXIxMyw4KCVyZGkpCisJc2JicQklcjEwLCVyMTAKIAltb3ZxCSVyMTQsMTYoJXJkaSkKIAltb3ZxCSVyMTUsMjQoJXJkaSkKIAlsZWFxCTMyKCVyZGkpLCVyZGkKIAogCWluY3EJJXJjeAogCWpueglMJHNxcjR4X3N1YgorCiAJbW92cQklcjksJXIxMAogCW5lZ3EJJXI5CiAJLmJ5dGUJMHhmMywweGMzCkBAIC0xNjUxLDEwICsxOTQ0LDkgQEAKIAlwdXNocQklcjEzCiAJcHVzaHEJJXIxNAogCXB1c2hxCSVyMTUKLS5ieXRlCTB4NjcKLQltb3ZsCSVyOWQsJXIxMGQKKwogCXNobGwJJDMsJXI5ZAotCXNobGwJJDMrMiwlcjEwZAorCWxlYXEJKCVyOSwlcjksMiksJXIxMAogCW5lZ3EJJXI5CiAJbW92cQkoJXI4KSwlcjgKIApAQCAtMTY2NCwxOSArMTk1NiwyMCBAQAogCiAKIAotCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyMTEKLQlzdWJxCSVyc2ksJXIxMQorCisJbGVhcQktMzIwKCVyc3AsJXI5LDIpLCVyMTEKKwlzdWJxCSVyZGksJXIxMQogCWFuZHEJJDQwOTUsJXIxMQogCWNtcHEJJXIxMSwlcjEwCiAJamIJTCRmcm9tX3NwX2FsdAogCXN1YnEJJXIxMSwlcnNwCi0JbGVhcQktNjQoJXJzcCwlcjksMiksJXJzcAorCWxlYXEJLTMyMCglcnNwLCVyOSwyKSwlcnNwCiAJam1wCUwkZnJvbV9zcF9kb25lCiAKIC5wMmFsaWduCTUKIEwkZnJvbV9zcF9hbHQ6Ci0JbGVhcQk0MDk2LTY0KCwlcjksMiksJXIxMAotCWxlYXEJLTY0KCVyc3AsJXI5LDIpLCVyc3AKKwlsZWFxCTQwOTYtMzIwKCwlcjksMiksJXIxMAorCWxlYXEJLTMyMCglcnNwLCVyOSwyKSwlcnNwCiAJc3VicQklcjEwLCVyMTEKIAltb3ZxCSQwLCVyMTAKIAljbW92Y3EJJXIxMCwlcjExCkBAIC0xNzI3LDcgKzIwMjAsOCBAQAogLmJ5dGUJMHg2NwogCW1vdnEJJXJjeCwlcmJwCiAuYnl0ZQkxMDIsNzMsMTUsMTEwLDIxOAotCWNhbGwJc3FyOHhfcmVkdWN0aW9uCisJY2FsbAlfX2JuX3Nxcjh4X3JlZHVjdGlvbgorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAogCXB4b3IJJXhtbTAsJXhtbTAKIAlsZWFxCTQ4KCVyc3ApLCVyYXgKQEAgLTE3NzcsNDYgKzIwNzEsMTcwIEBACiAuZ2xvYmwJX2JuX2dhdGhlcjUKIC5wcml2YXRlX2V4dGVybiBfYm5fZ2F0aGVyNQogCi0ucDJhbGlnbgk0CisucDJhbGlnbgk1CiBfYm5fZ2F0aGVyNToKLQltb3ZsCSVlY3gsJXIxMWQKLQlzaHJsCSQzLCVlY3gKLQlhbmRxCSQ3LCVyMTEKLQlub3RsCSVlY3gKLQlsZWFxCUwkbWFnaWNfbWFza3MoJXJpcCksJXJheAotCWFuZGwJJDMsJWVjeAotCWxlYXEJMTI4KCVyZHgsJXIxMSw4KSwlcmR4Ci0JbW92cQkwKCVyYXgsJXJjeCw4KSwleG1tNAotCW1vdnEJOCglcmF4LCVyY3gsOCksJXhtbTUKLQltb3ZxCTE2KCVyYXgsJXJjeCw4KSwleG1tNgotCW1vdnEJMjQoJXJheCwlcmN4LDgpLCV4bW03Ci0Jam1wCUwkZ2F0aGVyCi0ucDJhbGlnbgk0Ci1MJGdhdGhlcjoKLQltb3ZxCS0xMjgoJXJkeCksJXhtbTAKLQltb3ZxCS02NCglcmR4KSwleG1tMQotCXBhbmQJJXhtbTQsJXhtbTAKLQltb3ZxCTAoJXJkeCksJXhtbTIKLQlwYW5kCSV4bW01LCV4bW0xCi0JbW92cQk2NCglcmR4KSwleG1tMwotCXBhbmQJJXhtbTYsJXhtbTIKLQlwb3IJJXhtbTEsJXhtbTAKLQlwYW5kCSV4bW03LCV4bW0zCi0uYnl0ZQkweDY3LDB4NjcKLQlwb3IJJXhtbTIsJXhtbTAKLQlsZWFxCTI1NiglcmR4KSwlcmR4Ci0JcG9yCSV4bW0zLCV4bW0wCitMJFNFSF9iZWdpbl9ibl9nYXRoZXI1OgogCisuYnl0ZQkweDRjLDB4OGQsMHgxNCwweDI0CisuYnl0ZQkweDQ4LDB4ODEsMHhlYywweDA4LDB4MDEsMHgwMCwweDAwCisJbGVhcQlMJGluYyglcmlwKSwlcmF4CisJYW5kcQkkLTE2LCVyc3AKKworCW1vdmQJJWVjeCwleG1tNQorCW1vdmRxYQkwKCVyYXgpLCV4bW0wCisJbW92ZHFhCTE2KCVyYXgpLCV4bW0xCisJbGVhcQkxMjgoJXJkeCksJXIxMQorCWxlYXEJMTI4KCVyc3ApLCVyYXgKKworCXBzaHVmZAkkMCwleG1tNSwleG1tNQorCW1vdmRxYQkleG1tMSwleG1tNAorCW1vdmRxYQkleG1tMSwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMworCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLC0xMjgoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKworCXBhZGRkCSV4bW0yLCV4bW0zCisJcGNtcGVxZAkleG1tNSwleG1tMgorCW1vdmRxYQkleG1tMSwtMTEyKCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0xCisKKwlwYWRkZAkleG1tMywleG1tMAorCXBjbXBlcWQJJXhtbTUsJXhtbTMKKwltb3ZkcWEJJXhtbTIsLTk2KCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0yCisJcGFkZGQJJXhtbTAsJXhtbTEKKwlwY21wZXFkCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW0zLC04MCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMworCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLC02NCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMAorCisJcGFkZGQJJXhtbTIsJXhtbTMKKwlwY21wZXFkCSV4bW01LCV4bW0yCisJbW92ZHFhCSV4bW0xLC00OCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMQorCisJcGFkZGQJJXhtbTMsJXhtbTAKKwlwY21wZXFkCSV4bW01LCV4bW0zCisJbW92ZHFhCSV4bW0yLC0zMiglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMywtMTYoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKworCXBhZGRkCSV4bW0xLCV4bW0yCisJcGNtcGVxZAkleG1tNSwleG1tMQorCW1vdmRxYQkleG1tMCwwKCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMTYoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiwzMiglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhZGRkCSV4bW0wLCV4bW0xCisJcGNtcGVxZAkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tMyw0OCglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMworCisJcGFkZGQJJXhtbTEsJXhtbTIKKwlwY21wZXFkCSV4bW01LCV4bW0xCisJbW92ZHFhCSV4bW0wLDY0KCVyYXgpCisJbW92ZHFhCSV4bW00LCV4bW0wCisKKwlwYWRkZAkleG1tMiwleG1tMworCXBjbXBlcWQJJXhtbTUsJXhtbTIKKwltb3ZkcWEJJXhtbTEsODAoJXJheCkKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKworCXBhZGRkCSV4bW0zLCV4bW0wCisJcGNtcGVxZAkleG1tNSwleG1tMworCW1vdmRxYQkleG1tMiw5NiglcmF4KQorCW1vdmRxYQkleG1tNCwleG1tMgorCW1vdmRxYQkleG1tMywxMTIoJXJheCkKKwlqbXAJTCRnYXRoZXIKKworLnAyYWxpZ24JNQorTCRnYXRoZXI6CisJcHhvcgkleG1tNCwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTUKKwltb3ZkcWEJLTEyOCglcjExKSwleG1tMAorCW1vdmRxYQktMTEyKCVyMTEpLCV4bW0xCisJbW92ZHFhCS05NiglcjExKSwleG1tMgorCXBhbmQJLTEyOCglcmF4KSwleG1tMAorCW1vdmRxYQktODAoJXIxMSksJXhtbTMKKwlwYW5kCS0xMTIoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS05NiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTgwKCVyYXgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCS02NCglcjExKSwleG1tMAorCW1vdmRxYQktNDgoJXIxMSksJXhtbTEKKwltb3ZkcWEJLTMyKCVyMTEpLCV4bW0yCisJcGFuZAktNjQoJXJheCksJXhtbTAKKwltb3ZkcWEJLTE2KCVyMTEpLCV4bW0zCisJcGFuZAktNDgoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCS0zMiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJLTE2KCVyYXgpLCV4bW0zCisJcG9yCSV4bW0yLCV4bW00CisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHFhCTAoJXIxMSksJXhtbTAKKwltb3ZkcWEJMTYoJXIxMSksJXhtbTEKKwltb3ZkcWEJMzIoJXIxMSksJXhtbTIKKwlwYW5kCTAoJXJheCksJXhtbTAKKwltb3ZkcWEJNDgoJXIxMSksJXhtbTMKKwlwYW5kCTE2KCVyYXgpLCV4bW0xCisJcG9yCSV4bW0wLCV4bW00CisJcGFuZAkzMiglcmF4KSwleG1tMgorCXBvcgkleG1tMSwleG1tNQorCXBhbmQJNDgoJXJheCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwltb3ZkcWEJNjQoJXIxMSksJXhtbTAKKwltb3ZkcWEJODAoJXIxMSksJXhtbTEKKwltb3ZkcWEJOTYoJXIxMSksJXhtbTIKKwlwYW5kCTY0KCVyYXgpLCV4bW0wCisJbW92ZHFhCTExMiglcjExKSwleG1tMworCXBhbmQJODAoJXJheCksJXhtbTEKKwlwb3IJJXhtbTAsJXhtbTQKKwlwYW5kCTk2KCVyYXgpLCV4bW0yCisJcG9yCSV4bW0xLCV4bW01CisJcGFuZAkxMTIoJXJheCksJXhtbTMKKwlwb3IJJXhtbTIsJXhtbTQKKwlwb3IJJXhtbTMsJXhtbTUKKwlwb3IJJXhtbTUsJXhtbTQKKwlsZWFxCTI1NiglcjExKSwlcjExCisJcHNodWZkCSQweDRlLCV4bW00LCV4bW0wCisJcG9yCSV4bW00LCV4bW0wCiAJbW92cQkleG1tMCwoJXJkaSkKIAlsZWFxCTgoJXJkaSksJXJkaQogCXN1YmwJJDEsJWVzaQogCWpueglMJGdhdGhlcgorCisJbGVhcQkoJXIxMCksJXJzcAogCS5ieXRlCTB4ZjMsMHhjMwogTCRTRUhfZW5kX2JuX2dhdGhlcjU6CiAKIC5wMmFsaWduCTYKLUwkbWFnaWNfbWFza3M6Ci0ubG9uZwkwLDAsIDAsMCwgMCwwLCAtMSwtMQotLmxvbmcJMCwwLCAwLDAsIDAsMCwgIDAsMAorTCRpbmM6CisubG9uZwkwLDAsIDEsMQorLmxvbmcJMiwyLCAyLDIKIC5ieXRlCTc3LDExMSwxMTAsMTE2LDEwMywxMTEsMTA5LDEwMSwxMTQsMTIxLDMyLDc3LDExNywxMDgsMTE2LDEwNSwxMTIsMTA4LDEwNSw5OSw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExNSw5OSw5NywxMTYsMTE2LDEwMSwxMTQsNDcsMTAzLDk3LDExNiwxMDQsMTAxLDExNCwzMiwxMDIsMTExLDExNCwzMiwxMjAsNTYsNTQsOTUsNTQsNTIsNDQsMzIsNjcsODIsODksODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0LDExMSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNSwxMDgsNDYsMTExLDExNCwxMDMsNjIsMAogI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNTU0YzgKLS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vY2hhY2hhL2NoYWNoYS14ODZfNjQuUwpAQCAtMCwwICsxLDE1ODQgQEAKKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pCisudGV4dAkKKworCisKKy5wMmFsaWduCTYKK0wkemVybzoKKy5sb25nCTAsMCwwLDAKK0wkb25lOgorLmxvbmcJMSwwLDAsMAorTCRpbmM6CisubG9uZwkwLDEsMiwzCitMJGZvdXI6CisubG9uZwk0LDQsNCw0CitMJGluY3k6CisubG9uZwkwLDIsNCw2LDEsMyw1LDcKK0wkZWlnaHQ6CisubG9uZwk4LDgsOCw4LDgsOCw4LDgKK0wkcm90MTY6CisuYnl0ZQkweDIsMHgzLDB4MCwweDEsIDB4NiwweDcsMHg0LDB4NSwgMHhhLDB4YiwweDgsMHg5LCAweGUsMHhmLDB4YywweGQKK0wkcm90MjQ6CisuYnl0ZQkweDMsMHgwLDB4MSwweDIsIDB4NywweDQsMHg1LDB4NiwgMHhiLDB4OCwweDksMHhhLCAweGYsMHhjLDB4ZCwweGUKK0wkc2lnbWE6CisuYnl0ZQkxMDEsMTIwLDExMiw5NywxMTAsMTAwLDMyLDUxLDUwLDQ1LDk4LDEyMSwxMTYsMTAxLDMyLDEwNywwCisuYnl0ZQk2NywxMDQsOTcsNjcsMTA0LDk3LDUwLDQ4LDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw5NSw1NCw1Miw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMiw5OCwxMjEsMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEsMTE0LDEwMyw2MiwwCisuZ2xvYmwJX0NoYUNoYTIwX2N0cjMyCisucHJpdmF0ZV9leHRlcm4gX0NoYUNoYTIwX2N0cjMyCisKKy5wMmFsaWduCTYKK19DaGFDaGEyMF9jdHIzMjoKKwljbXBxCSQwLCVyZHgKKwlqZQlMJG5vX2RhdGEKKwltb3ZxCV9PUEVOU1NMX2lhMzJjYXBfUCs0KCVyaXApLCVyMTAKKwl0ZXN0bAkkNTEyLCVyMTBkCisJam56CUwkQ2hhQ2hhMjBfc3NzZTMKKworCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCXN1YnEJJDY0KzI0LCVyc3AKKworCisJbW92ZHF1CSglcmN4KSwleG1tMQorCW1vdmRxdQkxNiglcmN4KSwleG1tMgorCW1vdmRxdQkoJXI4KSwleG1tMworCW1vdmRxYQlMJG9uZSglcmlwKSwleG1tNAorCisKKwltb3ZkcWEJJXhtbTEsMTYoJXJzcCkKKwltb3ZkcWEJJXhtbTIsMzIoJXJzcCkKKwltb3ZkcWEJJXhtbTMsNDgoJXJzcCkKKwltb3ZxCSVyZHgsJXJicAorCWptcAlMJG9vcF9vdXRlcgorCisucDJhbGlnbgk1CitMJG9vcF9vdXRlcjoKKwltb3ZsCSQweDYxNzA3ODY1LCVlYXgKKwltb3ZsCSQweDMzMjA2NDZlLCVlYngKKwltb3ZsCSQweDc5NjIyZDMyLCVlY3gKKwltb3ZsCSQweDZiMjA2NTc0LCVlZHgKKwltb3ZsCTE2KCVyc3ApLCVyOGQKKwltb3ZsCTIwKCVyc3ApLCVyOWQKKwltb3ZsCTI0KCVyc3ApLCVyMTBkCisJbW92bAkyOCglcnNwKSwlcjExZAorCW1vdmQJJXhtbTMsJXIxMmQKKwltb3ZsCTUyKCVyc3ApLCVyMTNkCisJbW92bAk1NiglcnNwKSwlcjE0ZAorCW1vdmwJNjAoJXJzcCksJXIxNWQKKworCW1vdnEJJXJicCw2NCswKCVyc3ApCisJbW92bAkkMTAsJWVicAorCW1vdnEJJXJzaSw2NCs4KCVyc3ApCisuYnl0ZQkxMDIsNzIsMTUsMTI2LDIxNAorCW1vdnEJJXJkaSw2NCsxNiglcnNwKQorCW1vdnEJJXJzaSwlcmRpCisJc2hycQkkMzIsJXJkaQorCWptcAlMJG9vcAorCisucDJhbGlnbgk1CitMJG9vcDoKKwlhZGRsCSVyOGQsJWVheAorCXhvcmwJJWVheCwlcjEyZAorCXJvbGwJJDE2LCVyMTJkCisJYWRkbAklcjlkLCVlYngKKwl4b3JsCSVlYngsJXIxM2QKKwlyb2xsCSQxNiwlcjEzZAorCWFkZGwJJXIxMmQsJWVzaQorCXhvcmwJJWVzaSwlcjhkCisJcm9sbAkkMTIsJXI4ZAorCWFkZGwJJXIxM2QsJWVkaQorCXhvcmwJJWVkaSwlcjlkCisJcm9sbAkkMTIsJXI5ZAorCWFkZGwJJXI4ZCwlZWF4CisJeG9ybAklZWF4LCVyMTJkCisJcm9sbAkkOCwlcjEyZAorCWFkZGwJJXI5ZCwlZWJ4CisJeG9ybAklZWJ4LCVyMTNkCisJcm9sbAkkOCwlcjEzZAorCWFkZGwJJXIxMmQsJWVzaQorCXhvcmwJJWVzaSwlcjhkCisJcm9sbAkkNywlcjhkCisJYWRkbAklcjEzZCwlZWRpCisJeG9ybAklZWRpLCVyOWQKKwlyb2xsCSQ3LCVyOWQKKwltb3ZsCSVlc2ksMzIoJXJzcCkKKwltb3ZsCSVlZGksMzYoJXJzcCkKKwltb3ZsCTQwKCVyc3ApLCVlc2kKKwltb3ZsCTQ0KCVyc3ApLCVlZGkKKwlhZGRsCSVyMTBkLCVlY3gKKwl4b3JsCSVlY3gsJXIxNGQKKwlyb2xsCSQxNiwlcjE0ZAorCWFkZGwJJXIxMWQsJWVkeAorCXhvcmwJJWVkeCwlcjE1ZAorCXJvbGwJJDE2LCVyMTVkCisJYWRkbAklcjE0ZCwlZXNpCisJeG9ybAklZXNpLCVyMTBkCisJcm9sbAkkMTIsJXIxMGQKKwlhZGRsCSVyMTVkLCVlZGkKKwl4b3JsCSVlZGksJXIxMWQKKwlyb2xsCSQxMiwlcjExZAorCWFkZGwJJXIxMGQsJWVjeAorCXhvcmwJJWVjeCwlcjE0ZAorCXJvbGwJJDgsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwl4b3JsCSVlZHgsJXIxNWQKKwlyb2xsCSQ4LCVyMTVkCisJYWRkbAklcjE0ZCwlZXNpCisJeG9ybAklZXNpLCVyMTBkCisJcm9sbAkkNywlcjEwZAorCWFkZGwJJXIxNWQsJWVkaQorCXhvcmwJJWVkaSwlcjExZAorCXJvbGwJJDcsJXIxMWQKKwlhZGRsCSVyOWQsJWVheAorCXhvcmwJJWVheCwlcjE1ZAorCXJvbGwJJDE2LCVyMTVkCisJYWRkbAklcjEwZCwlZWJ4CisJeG9ybAklZWJ4LCVyMTJkCisJcm9sbAkkMTYsJXIxMmQKKwlhZGRsCSVyMTVkLCVlc2kKKwl4b3JsCSVlc2ksJXI5ZAorCXJvbGwJJDEyLCVyOWQKKwlhZGRsCSVyMTJkLCVlZGkKKwl4b3JsCSVlZGksJXIxMGQKKwlyb2xsCSQxMiwlcjEwZAorCWFkZGwJJXI5ZCwlZWF4CisJeG9ybAklZWF4LCVyMTVkCisJcm9sbAkkOCwlcjE1ZAorCWFkZGwJJXIxMGQsJWVieAorCXhvcmwJJWVieCwlcjEyZAorCXJvbGwJJDgsJXIxMmQKKwlhZGRsCSVyMTVkLCVlc2kKKwl4b3JsCSVlc2ksJXI5ZAorCXJvbGwJJDcsJXI5ZAorCWFkZGwJJXIxMmQsJWVkaQorCXhvcmwJJWVkaSwlcjEwZAorCXJvbGwJJDcsJXIxMGQKKwltb3ZsCSVlc2ksNDAoJXJzcCkKKwltb3ZsCSVlZGksNDQoJXJzcCkKKwltb3ZsCTMyKCVyc3ApLCVlc2kKKwltb3ZsCTM2KCVyc3ApLCVlZGkKKwlhZGRsCSVyMTFkLCVlY3gKKwl4b3JsCSVlY3gsJXIxM2QKKwlyb2xsCSQxNiwlcjEzZAorCWFkZGwJJXI4ZCwlZWR4CisJeG9ybAklZWR4LCVyMTRkCisJcm9sbAkkMTYsJXIxNGQKKwlhZGRsCSVyMTNkLCVlc2kKKwl4b3JsCSVlc2ksJXIxMWQKKwlyb2xsCSQxMiwlcjExZAorCWFkZGwJJXIxNGQsJWVkaQorCXhvcmwJJWVkaSwlcjhkCisJcm9sbAkkMTIsJXI4ZAorCWFkZGwJJXIxMWQsJWVjeAorCXhvcmwJJWVjeCwlcjEzZAorCXJvbGwJJDgsJXIxM2QKKwlhZGRsCSVyOGQsJWVkeAorCXhvcmwJJWVkeCwlcjE0ZAorCXJvbGwJJDgsJXIxNGQKKwlhZGRsCSVyMTNkLCVlc2kKKwl4b3JsCSVlc2ksJXIxMWQKKwlyb2xsCSQ3LCVyMTFkCisJYWRkbAklcjE0ZCwlZWRpCisJeG9ybAklZWRpLCVyOGQKKwlyb2xsCSQ3LCVyOGQKKwlkZWNsCSVlYnAKKwlqbnoJTCRvb3AKKwltb3ZsCSVlZGksMzYoJXJzcCkKKwltb3ZsCSVlc2ksMzIoJXJzcCkKKwltb3ZxCTY0KCVyc3ApLCVyYnAKKwltb3ZkcWEJJXhtbTIsJXhtbTEKKwltb3ZxCTY0KzgoJXJzcCksJXJzaQorCXBhZGRkCSV4bW00LCV4bW0zCisJbW92cQk2NCsxNiglcnNwKSwlcmRpCisKKwlhZGRsCSQweDYxNzA3ODY1LCVlYXgKKwlhZGRsCSQweDMzMjA2NDZlLCVlYngKKwlhZGRsCSQweDc5NjIyZDMyLCVlY3gKKwlhZGRsCSQweDZiMjA2NTc0LCVlZHgKKwlhZGRsCTE2KCVyc3ApLCVyOGQKKwlhZGRsCTIwKCVyc3ApLCVyOWQKKwlhZGRsCTI0KCVyc3ApLCVyMTBkCisJYWRkbAkyOCglcnNwKSwlcjExZAorCWFkZGwJNDgoJXJzcCksJXIxMmQKKwlhZGRsCTUyKCVyc3ApLCVyMTNkCisJYWRkbAk1NiglcnNwKSwlcjE0ZAorCWFkZGwJNjAoJXJzcCksJXIxNWQKKwlwYWRkZAkzMiglcnNwKSwleG1tMQorCisJY21wcQkkNjQsJXJicAorCWpiCUwkdGFpbAorCisJeG9ybAkwKCVyc2kpLCVlYXgKKwl4b3JsCTQoJXJzaSksJWVieAorCXhvcmwJOCglcnNpKSwlZWN4CisJeG9ybAkxMiglcnNpKSwlZWR4CisJeG9ybAkxNiglcnNpKSwlcjhkCisJeG9ybAkyMCglcnNpKSwlcjlkCisJeG9ybAkyNCglcnNpKSwlcjEwZAorCXhvcmwJMjgoJXJzaSksJXIxMWQKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTAKKwl4b3JsCTQ4KCVyc2kpLCVyMTJkCisJeG9ybAk1MiglcnNpKSwlcjEzZAorCXhvcmwJNTYoJXJzaSksJXIxNGQKKwl4b3JsCTYwKCVyc2kpLCVyMTVkCisJbGVhcQk2NCglcnNpKSwlcnNpCisJcHhvcgkleG1tMSwleG1tMAorCisJbW92ZHFhCSV4bW0yLDMyKCVyc3ApCisJbW92ZAkleG1tMyw0OCglcnNwKQorCisJbW92bAklZWF4LDAoJXJkaSkKKwltb3ZsCSVlYngsNCglcmRpKQorCW1vdmwJJWVjeCw4KCVyZGkpCisJbW92bAklZWR4LDEyKCVyZGkpCisJbW92bAklcjhkLDE2KCVyZGkpCisJbW92bAklcjlkLDIwKCVyZGkpCisJbW92bAklcjEwZCwyNCglcmRpKQorCW1vdmwJJXIxMWQsMjgoJXJkaSkKKwltb3ZkcXUJJXhtbTAsMzIoJXJkaSkKKwltb3ZsCSVyMTJkLDQ4KCVyZGkpCisJbW92bAklcjEzZCw1MiglcmRpKQorCW1vdmwJJXIxNGQsNTYoJXJkaSkKKwltb3ZsCSVyMTVkLDYwKCVyZGkpCisJbGVhcQk2NCglcmRpKSwlcmRpCisKKwlzdWJxCSQ2NCwlcmJwCisJam56CUwkb29wX291dGVyCisKKwlqbXAJTCRkb25lCisKKy5wMmFsaWduCTQKK0wkdGFpbDoKKwltb3ZsCSVlYXgsMCglcnNwKQorCW1vdmwJJWVieCw0KCVyc3ApCisJeG9ycQklcmJ4LCVyYngKKwltb3ZsCSVlY3gsOCglcnNwKQorCW1vdmwJJWVkeCwxMiglcnNwKQorCW1vdmwJJXI4ZCwxNiglcnNwKQorCW1vdmwJJXI5ZCwyMCglcnNwKQorCW1vdmwJJXIxMGQsMjQoJXJzcCkKKwltb3ZsCSVyMTFkLDI4KCVyc3ApCisJbW92ZHFhCSV4bW0xLDMyKCVyc3ApCisJbW92bAklcjEyZCw0OCglcnNwKQorCW1vdmwJJXIxM2QsNTIoJXJzcCkKKwltb3ZsCSVyMTRkLDU2KCVyc3ApCisJbW92bAklcjE1ZCw2MCglcnNwKQorCitMJG9vcF90YWlsOgorCW1vdnpibAkoJXJzaSwlcmJ4LDEpLCVlYXgKKwltb3Z6YmwJKCVyc3AsJXJieCwxKSwlZWR4CisJbGVhcQkxKCVyYngpLCVyYngKKwl4b3JsCSVlZHgsJWVheAorCW1vdmIJJWFsLC0xKCVyZGksJXJieCwxKQorCWRlY3EJJXJicAorCWpueglMJG9vcF90YWlsCisKK0wkZG9uZToKKwlhZGRxCSQ2NCsyNCwlcnNwCisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcmJwCisJcG9wcQklcmJ4CitMJG5vX2RhdGE6CisJLmJ5dGUJMHhmMywweGMzCisKKworLnAyYWxpZ24JNQorQ2hhQ2hhMjBfc3NzZTM6CitMJENoYUNoYTIwX3Nzc2UzOgorCWNtcHEJJDEyOCwlcmR4CisJamEJTCRDaGFDaGEyMF80eAorCitMJGRvX3NzZTNfYWZ0ZXJfYWxsOgorCXB1c2hxCSVyYngKKwlwdXNocQklcmJwCisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCisJc3VicQkkNjQrMjQsJXJzcAorCW1vdmRxYQlMJHNpZ21hKCVyaXApLCV4bW0wCisJbW92ZHF1CSglcmN4KSwleG1tMQorCW1vdmRxdQkxNiglcmN4KSwleG1tMgorCW1vdmRxdQkoJXI4KSwleG1tMworCW1vdmRxYQlMJHJvdDE2KCVyaXApLCV4bW02CisJbW92ZHFhCUwkcm90MjQoJXJpcCksJXhtbTcKKworCW1vdmRxYQkleG1tMCwwKCVyc3ApCisJbW92ZHFhCSV4bW0xLDE2KCVyc3ApCisJbW92ZHFhCSV4bW0yLDMyKCVyc3ApCisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisJbW92bAkkMTAsJWVicAorCWptcAlMJG9vcF9zc3NlMworCisucDJhbGlnbgk1CitMJG9vcF9vdXRlcl9zc3NlMzoKKwltb3ZkcWEJTCRvbmUoJXJpcCksJXhtbTMKKwltb3ZkcWEJMCglcnNwKSwleG1tMAorCW1vdmRxYQkxNiglcnNwKSwleG1tMQorCW1vdmRxYQkzMiglcnNwKSwleG1tMgorCXBhZGRkCTQ4KCVyc3ApLCV4bW0zCisJbW92bAkkMTAsJWVicAorCW1vdmRxYQkleG1tMyw0OCglcnNwKQorCWptcAlMJG9vcF9zc3NlMworCisucDJhbGlnbgk1CitMJG9vcF9zc3NlMzoKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyMCwleG1tMQorCXBzbGxkCSQxMiwleG1tNAorCXBvcgkleG1tNCwleG1tMQorCXBhZGRkCSV4bW0xLCV4bW0wCisJcHhvcgkleG1tMCwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJJXhtbTMsJXhtbTIKKwlweG9yCSV4bW0yLCV4bW0xCisJbW92ZHFhCSV4bW0xLCV4bW00CisJcHNybGQJJDI1LCV4bW0xCisJcHNsbGQJJDcsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwc2h1ZmQJJDc4LCV4bW0yLCV4bW0yCisJcHNodWZkCSQ1NywleG1tMSwleG1tMQorCXBzaHVmZAkkMTQ3LCV4bW0zLCV4bW0zCisJbm9wCisJcGFkZGQJJXhtbTEsJXhtbTAKKwlweG9yCSV4bW0wLCV4bW0zCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjIKKwlwYWRkZAkleG1tMywleG1tMgorCXB4b3IJJXhtbTIsJXhtbTEKKwltb3ZkcWEJJXhtbTEsJXhtbTQKKwlwc3JsZAkkMjAsJXhtbTEKKwlwc2xsZAkkMTIsJXhtbTQKKwlwb3IJJXhtbTQsJXhtbTEKKwlwYWRkZAkleG1tMSwleG1tMAorCXB4b3IJJXhtbTAsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIyMworCXBhZGRkCSV4bW0zLCV4bW0yCisJcHhvcgkleG1tMiwleG1tMQorCW1vdmRxYQkleG1tMSwleG1tNAorCXBzcmxkCSQyNSwleG1tMQorCXBzbGxkCSQ3LCV4bW00CisJcG9yCSV4bW00LCV4bW0xCisJcHNodWZkCSQ3OCwleG1tMiwleG1tMgorCXBzaHVmZAkkMTQ3LCV4bW0xLCV4bW0xCisJcHNodWZkCSQ1NywleG1tMywleG1tMworCWRlY2wJJWVicAorCWpueglMJG9vcF9zc3NlMworCXBhZGRkCTAoJXJzcCksJXhtbTAKKwlwYWRkZAkxNiglcnNwKSwleG1tMQorCXBhZGRkCTMyKCVyc3ApLCV4bW0yCisJcGFkZGQJNDgoJXJzcCksJXhtbTMKKworCWNtcHEJJDY0LCVyZHgKKwlqYglMJHRhaWxfc3NzZTMKKworCW1vdmRxdQkwKCVyc2kpLCV4bW00CisJbW92ZHF1CTE2KCVyc2kpLCV4bW01CisJcHhvcgkleG1tNCwleG1tMAorCW1vdmRxdQkzMiglcnNpKSwleG1tNAorCXB4b3IJJXhtbTUsJXhtbTEKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTUKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKwlweG9yCSV4bW00LCV4bW0yCisJcHhvcgkleG1tNSwleG1tMworCisJbW92ZHF1CSV4bW0wLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTEsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTIsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTMsNDgoJXJkaSkKKwlsZWFxCTY0KCVyZGkpLCVyZGkKKworCXN1YnEJJDY0LCVyZHgKKwlqbnoJTCRvb3Bfb3V0ZXJfc3NzZTMKKworCWptcAlMJGRvbmVfc3NzZTMKKworLnAyYWxpZ24JNAorTCR0YWlsX3Nzc2UzOgorCW1vdmRxYQkleG1tMCwwKCVyc3ApCisJbW92ZHFhCSV4bW0xLDE2KCVyc3ApCisJbW92ZHFhCSV4bW0yLDMyKCVyc3ApCisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisJeG9ycQklcmJ4LCVyYngKKworTCRvb3BfdGFpbF9zc3NlMzoKKwltb3Z6YmwJKCVyc2ksJXJieCwxKSwlZWF4CisJbW92emJsCSglcnNwLCVyYngsMSksJWVjeAorCWxlYXEJMSglcmJ4KSwlcmJ4CisJeG9ybAklZWN4LCVlYXgKKwltb3ZiCSVhbCwtMSglcmRpLCVyYngsMSkKKwlkZWNxCSVyZHgKKwlqbnoJTCRvb3BfdGFpbF9zc3NlMworCitMJGRvbmVfc3NzZTM6CisJYWRkcQkkNjQrMjQsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJicAorCXBvcHEJJXJieAorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5wMmFsaWduCTUKK0NoYUNoYTIwXzR4OgorTCRDaGFDaGEyMF80eDoKKwltb3ZxCSVyMTAsJXIxMQorCXNocnEJJDMyLCVyMTAKKwl0ZXN0cQkkMzIsJXIxMAorCWpueglMJENoYUNoYTIwXzh4CisJY21wcQkkMTkyLCVyZHgKKwlqYQlMJHByb2NlZWQ0eAorCisJYW5kcQkkNzEzMDMxNjgsJXIxMQorCWNtcHEJJDQxOTQzMDQsJXIxMQorCWplCUwkZG9fc3NlM19hZnRlcl9hbGwKKworTCRwcm9jZWVkNHg6CisJbGVhcQktMTIwKCVyc3ApLCVyMTEKKwlzdWJxCSQweDE0OCswLCVyc3AKKwltb3ZkcWEJTCRzaWdtYSglcmlwKSwleG1tMTEKKwltb3ZkcXUJKCVyY3gpLCV4bW0xNQorCW1vdmRxdQkxNiglcmN4KSwleG1tNworCW1vdmRxdQkoJXI4KSwleG1tMworCWxlYXEJMjU2KCVyc3ApLCVyY3gKKwlsZWFxCUwkcm90MTYoJXJpcCksJXIxMAorCWxlYXEJTCRyb3QyNCglcmlwKSwlcjExCisKKwlwc2h1ZmQJJDB4MDAsJXhtbTExLCV4bW04CisJcHNodWZkCSQweDU1LCV4bW0xMSwleG1tOQorCW1vdmRxYQkleG1tOCw2NCglcnNwKQorCXBzaHVmZAkkMHhhYSwleG1tMTEsJXhtbTEwCisJbW92ZHFhCSV4bW05LDgwKCVyc3ApCisJcHNodWZkCSQweGZmLCV4bW0xMSwleG1tMTEKKwltb3ZkcWEJJXhtbTEwLDk2KCVyc3ApCisJbW92ZHFhCSV4bW0xMSwxMTIoJXJzcCkKKworCXBzaHVmZAkkMHgwMCwleG1tMTUsJXhtbTEyCisJcHNodWZkCSQweDU1LCV4bW0xNSwleG1tMTMKKwltb3ZkcWEJJXhtbTEyLDEyOC0yNTYoJXJjeCkKKwlwc2h1ZmQJJDB4YWEsJXhtbTE1LCV4bW0xNAorCW1vdmRxYQkleG1tMTMsMTQ0LTI1NiglcmN4KQorCXBzaHVmZAkkMHhmZiwleG1tMTUsJXhtbTE1CisJbW92ZHFhCSV4bW0xNCwxNjAtMjU2KCVyY3gpCisJbW92ZHFhCSV4bW0xNSwxNzYtMjU2KCVyY3gpCisKKwlwc2h1ZmQJJDB4MDAsJXhtbTcsJXhtbTQKKwlwc2h1ZmQJJDB4NTUsJXhtbTcsJXhtbTUKKwltb3ZkcWEJJXhtbTQsMTkyLTI1NiglcmN4KQorCXBzaHVmZAkkMHhhYSwleG1tNywleG1tNgorCW1vdmRxYQkleG1tNSwyMDgtMjU2KCVyY3gpCisJcHNodWZkCSQweGZmLCV4bW03LCV4bW03CisJbW92ZHFhCSV4bW02LDIyNC0yNTYoJXJjeCkKKwltb3ZkcWEJJXhtbTcsMjQwLTI1NiglcmN4KQorCisJcHNodWZkCSQweDAwLCV4bW0zLCV4bW0wCisJcHNodWZkCSQweDU1LCV4bW0zLCV4bW0xCisJcGFkZGQJTCRpbmMoJXJpcCksJXhtbTAKKwlwc2h1ZmQJJDB4YWEsJXhtbTMsJXhtbTIKKwltb3ZkcWEJJXhtbTEsMjcyLTI1NiglcmN4KQorCXBzaHVmZAkkMHhmZiwleG1tMywleG1tMworCW1vdmRxYQkleG1tMiwyODgtMjU2KCVyY3gpCisJbW92ZHFhCSV4bW0zLDMwNC0yNTYoJXJjeCkKKworCWptcAlMJG9vcF9lbnRlcjR4CisKKy5wMmFsaWduCTUKK0wkb29wX291dGVyNHg6CisJbW92ZHFhCTY0KCVyc3ApLCV4bW04CisJbW92ZHFhCTgwKCVyc3ApLCV4bW05CisJbW92ZHFhCTk2KCVyc3ApLCV4bW0xMAorCW1vdmRxYQkxMTIoJXJzcCksJXhtbTExCisJbW92ZHFhCTEyOC0yNTYoJXJjeCksJXhtbTEyCisJbW92ZHFhCTE0NC0yNTYoJXJjeCksJXhtbTEzCisJbW92ZHFhCTE2MC0yNTYoJXJjeCksJXhtbTE0CisJbW92ZHFhCTE3Ni0yNTYoJXJjeCksJXhtbTE1CisJbW92ZHFhCTE5Mi0yNTYoJXJjeCksJXhtbTQKKwltb3ZkcWEJMjA4LTI1NiglcmN4KSwleG1tNQorCW1vdmRxYQkyMjQtMjU2KCVyY3gpLCV4bW02CisJbW92ZHFhCTI0MC0yNTYoJXJjeCksJXhtbTcKKwltb3ZkcWEJMjU2LTI1NiglcmN4KSwleG1tMAorCW1vdmRxYQkyNzItMjU2KCVyY3gpLCV4bW0xCisJbW92ZHFhCTI4OC0yNTYoJXJjeCksJXhtbTIKKwltb3ZkcWEJMzA0LTI1NiglcmN4KSwleG1tMworCXBhZGRkCUwkZm91ciglcmlwKSwleG1tMAorCitMJG9vcF9lbnRlcjR4OgorCW1vdmRxYQkleG1tNiwzMiglcnNwKQorCW1vdmRxYQkleG1tNyw0OCglcnNwKQorCW1vdmRxYQkoJXIxMCksJXhtbTcKKwltb3ZsCSQxMCwlZWF4CisJbW92ZHFhCSV4bW0wLDI1Ni0yNTYoJXJjeCkKKwlqbXAJTCRvb3A0eAorCisucDJhbGlnbgk1CitMJG9vcDR4OgorCXBhZGRkCSV4bW0xMiwleG1tOAorCXBhZGRkCSV4bW0xMywleG1tOQorCXB4b3IJJXhtbTgsJXhtbTAKKwlweG9yCSV4bW05LCV4bW0xCisuYnl0ZQkxMDIsMTUsNTYsMCwxOTkKKy5ieXRlCTEwMiwxNSw1NiwwLDIwNworCXBhZGRkCSV4bW0wLCV4bW00CisJcGFkZGQJJXhtbTEsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xMgorCXB4b3IJJXhtbTUsJXhtbTEzCisJbW92ZHFhCSV4bW0xMiwleG1tNgorCXBzbGxkCSQxMiwleG1tMTIKKwlwc3JsZAkkMjAsJXhtbTYKKwltb3ZkcWEJJXhtbTEzLCV4bW03CisJcHNsbGQJJDEyLCV4bW0xMworCXBvcgkleG1tNiwleG1tMTIKKwlwc3JsZAkkMjAsJXhtbTcKKwltb3ZkcWEJKCVyMTEpLCV4bW02CisJcG9yCSV4bW03LCV4bW0xMworCXBhZGRkCSV4bW0xMiwleG1tOAorCXBhZGRkCSV4bW0xMywleG1tOQorCXB4b3IJJXhtbTgsJXhtbTAKKwlweG9yCSV4bW05LCV4bW0xCisuYnl0ZQkxMDIsMTUsNTYsMCwxOTgKKy5ieXRlCTEwMiwxNSw1NiwwLDIwNgorCXBhZGRkCSV4bW0wLCV4bW00CisJcGFkZGQJJXhtbTEsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xMgorCXB4b3IJJXhtbTUsJXhtbTEzCisJbW92ZHFhCSV4bW0xMiwleG1tNworCXBzbGxkCSQ3LCV4bW0xMgorCXBzcmxkCSQyNSwleG1tNworCW1vdmRxYQkleG1tMTMsJXhtbTYKKwlwc2xsZAkkNywleG1tMTMKKwlwb3IJJXhtbTcsJXhtbTEyCisJcHNybGQJJDI1LCV4bW02CisJbW92ZHFhCSglcjEwKSwleG1tNworCXBvcgkleG1tNiwleG1tMTMKKwltb3ZkcWEJJXhtbTQsMCglcnNwKQorCW1vdmRxYQkleG1tNSwxNiglcnNwKQorCW1vdmRxYQkzMiglcnNwKSwleG1tNAorCW1vdmRxYQk0OCglcnNwKSwleG1tNQorCXBhZGRkCSV4bW0xNCwleG1tMTAKKwlwYWRkZAkleG1tMTUsJXhtbTExCisJcHhvcgkleG1tMTAsJXhtbTIKKwlweG9yCSV4bW0xMSwleG1tMworLmJ5dGUJMTAyLDE1LDU2LDAsMjE1CisuYnl0ZQkxMDIsMTUsNTYsMCwyMjMKKwlwYWRkZAkleG1tMiwleG1tNAorCXBhZGRkCSV4bW0zLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTQKKwlweG9yCSV4bW01LCV4bW0xNQorCW1vdmRxYQkleG1tMTQsJXhtbTYKKwlwc2xsZAkkMTIsJXhtbTE0CisJcHNybGQJJDIwLCV4bW02CisJbW92ZHFhCSV4bW0xNSwleG1tNworCXBzbGxkCSQxMiwleG1tMTUKKwlwb3IJJXhtbTYsJXhtbTE0CisJcHNybGQJJDIwLCV4bW03CisJbW92ZHFhCSglcjExKSwleG1tNgorCXBvcgkleG1tNywleG1tMTUKKwlwYWRkZAkleG1tMTQsJXhtbTEwCisJcGFkZGQJJXhtbTE1LCV4bW0xMQorCXB4b3IJJXhtbTEwLCV4bW0yCisJcHhvcgkleG1tMTEsJXhtbTMKKy5ieXRlCTEwMiwxNSw1NiwwLDIxNAorLmJ5dGUJMTAyLDE1LDU2LDAsMjIyCisJcGFkZGQJJXhtbTIsJXhtbTQKKwlwYWRkZAkleG1tMywleG1tNQorCXB4b3IJJXhtbTQsJXhtbTE0CisJcHhvcgkleG1tNSwleG1tMTUKKwltb3ZkcWEJJXhtbTE0LCV4bW03CisJcHNsbGQJJDcsJXhtbTE0CisJcHNybGQJJDI1LCV4bW03CisJbW92ZHFhCSV4bW0xNSwleG1tNgorCXBzbGxkCSQ3LCV4bW0xNQorCXBvcgkleG1tNywleG1tMTQKKwlwc3JsZAkkMjUsJXhtbTYKKwltb3ZkcWEJKCVyMTApLCV4bW03CisJcG9yCSV4bW02LCV4bW0xNQorCXBhZGRkCSV4bW0xMywleG1tOAorCXBhZGRkCSV4bW0xNCwleG1tOQorCXB4b3IJJXhtbTgsJXhtbTMKKwlweG9yCSV4bW05LCV4bW0wCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjMKKy5ieXRlCTEwMiwxNSw1NiwwLDE5OQorCXBhZGRkCSV4bW0zLCV4bW00CisJcGFkZGQJJXhtbTAsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xMworCXB4b3IJJXhtbTUsJXhtbTE0CisJbW92ZHFhCSV4bW0xMywleG1tNgorCXBzbGxkCSQxMiwleG1tMTMKKwlwc3JsZAkkMjAsJXhtbTYKKwltb3ZkcWEJJXhtbTE0LCV4bW03CisJcHNsbGQJJDEyLCV4bW0xNAorCXBvcgkleG1tNiwleG1tMTMKKwlwc3JsZAkkMjAsJXhtbTcKKwltb3ZkcWEJKCVyMTEpLCV4bW02CisJcG9yCSV4bW03LCV4bW0xNAorCXBhZGRkCSV4bW0xMywleG1tOAorCXBhZGRkCSV4bW0xNCwleG1tOQorCXB4b3IJJXhtbTgsJXhtbTMKKwlweG9yCSV4bW05LCV4bW0wCisuYnl0ZQkxMDIsMTUsNTYsMCwyMjIKKy5ieXRlCTEwMiwxNSw1NiwwLDE5OAorCXBhZGRkCSV4bW0zLCV4bW00CisJcGFkZGQJJXhtbTAsJXhtbTUKKwlweG9yCSV4bW00LCV4bW0xMworCXB4b3IJJXhtbTUsJXhtbTE0CisJbW92ZHFhCSV4bW0xMywleG1tNworCXBzbGxkCSQ3LCV4bW0xMworCXBzcmxkCSQyNSwleG1tNworCW1vdmRxYQkleG1tMTQsJXhtbTYKKwlwc2xsZAkkNywleG1tMTQKKwlwb3IJJXhtbTcsJXhtbTEzCisJcHNybGQJJDI1LCV4bW02CisJbW92ZHFhCSglcjEwKSwleG1tNworCXBvcgkleG1tNiwleG1tMTQKKwltb3ZkcWEJJXhtbTQsMzIoJXJzcCkKKwltb3ZkcWEJJXhtbTUsNDgoJXJzcCkKKwltb3ZkcWEJMCglcnNwKSwleG1tNAorCW1vdmRxYQkxNiglcnNwKSwleG1tNQorCXBhZGRkCSV4bW0xNSwleG1tMTAKKwlwYWRkZAkleG1tMTIsJXhtbTExCisJcHhvcgkleG1tMTAsJXhtbTEKKwlweG9yCSV4bW0xMSwleG1tMgorLmJ5dGUJMTAyLDE1LDU2LDAsMjA3CisuYnl0ZQkxMDIsMTUsNTYsMCwyMTUKKwlwYWRkZAkleG1tMSwleG1tNAorCXBhZGRkCSV4bW0yLCV4bW01CisJcHhvcgkleG1tNCwleG1tMTUKKwlweG9yCSV4bW01LCV4bW0xMgorCW1vdmRxYQkleG1tMTUsJXhtbTYKKwlwc2xsZAkkMTIsJXhtbTE1CisJcHNybGQJJDIwLCV4bW02CisJbW92ZHFhCSV4bW0xMiwleG1tNworCXBzbGxkCSQxMiwleG1tMTIKKwlwb3IJJXhtbTYsJXhtbTE1CisJcHNybGQJJDIwLCV4bW03CisJbW92ZHFhCSglcjExKSwleG1tNgorCXBvcgkleG1tNywleG1tMTIKKwlwYWRkZAkleG1tMTUsJXhtbTEwCisJcGFkZGQJJXhtbTEyLCV4bW0xMQorCXB4b3IJJXhtbTEwLCV4bW0xCisJcHhvcgkleG1tMTEsJXhtbTIKKy5ieXRlCTEwMiwxNSw1NiwwLDIwNgorLmJ5dGUJMTAyLDE1LDU2LDAsMjE0CisJcGFkZGQJJXhtbTEsJXhtbTQKKwlwYWRkZAkleG1tMiwleG1tNQorCXB4b3IJJXhtbTQsJXhtbTE1CisJcHhvcgkleG1tNSwleG1tMTIKKwltb3ZkcWEJJXhtbTE1LCV4bW03CisJcHNsbGQJJDcsJXhtbTE1CisJcHNybGQJJDI1LCV4bW03CisJbW92ZHFhCSV4bW0xMiwleG1tNgorCXBzbGxkCSQ3LCV4bW0xMgorCXBvcgkleG1tNywleG1tMTUKKwlwc3JsZAkkMjUsJXhtbTYKKwltb3ZkcWEJKCVyMTApLCV4bW03CisJcG9yCSV4bW02LCV4bW0xMgorCWRlY2wJJWVheAorCWpueglMJG9vcDR4CisKKwlwYWRkZAk2NCglcnNwKSwleG1tOAorCXBhZGRkCTgwKCVyc3ApLCV4bW05CisJcGFkZGQJOTYoJXJzcCksJXhtbTEwCisJcGFkZGQJMTEyKCVyc3ApLCV4bW0xMQorCisJbW92ZHFhCSV4bW04LCV4bW02CisJcHVucGNrbGRxCSV4bW05LCV4bW04CisJbW92ZHFhCSV4bW0xMCwleG1tNworCXB1bnBja2xkcQkleG1tMTEsJXhtbTEwCisJcHVucGNraGRxCSV4bW05LCV4bW02CisJcHVucGNraGRxCSV4bW0xMSwleG1tNworCW1vdmRxYQkleG1tOCwleG1tOQorCXB1bnBja2xxZHEJJXhtbTEwLCV4bW04CisJbW92ZHFhCSV4bW02LCV4bW0xMQorCXB1bnBja2xxZHEJJXhtbTcsJXhtbTYKKwlwdW5wY2tocWRxCSV4bW0xMCwleG1tOQorCXB1bnBja2hxZHEJJXhtbTcsJXhtbTExCisJcGFkZGQJMTI4LTI1NiglcmN4KSwleG1tMTIKKwlwYWRkZAkxNDQtMjU2KCVyY3gpLCV4bW0xMworCXBhZGRkCTE2MC0yNTYoJXJjeCksJXhtbTE0CisJcGFkZGQJMTc2LTI1NiglcmN4KSwleG1tMTUKKworCW1vdmRxYQkleG1tOCwwKCVyc3ApCisJbW92ZHFhCSV4bW05LDE2KCVyc3ApCisJbW92ZHFhCTMyKCVyc3ApLCV4bW04CisJbW92ZHFhCTQ4KCVyc3ApLCV4bW05CisKKwltb3ZkcWEJJXhtbTEyLCV4bW0xMAorCXB1bnBja2xkcQkleG1tMTMsJXhtbTEyCisJbW92ZHFhCSV4bW0xNCwleG1tNworCXB1bnBja2xkcQkleG1tMTUsJXhtbTE0CisJcHVucGNraGRxCSV4bW0xMywleG1tMTAKKwlwdW5wY2toZHEJJXhtbTE1LCV4bW03CisJbW92ZHFhCSV4bW0xMiwleG1tMTMKKwlwdW5wY2tscWRxCSV4bW0xNCwleG1tMTIKKwltb3ZkcWEJJXhtbTEwLCV4bW0xNQorCXB1bnBja2xxZHEJJXhtbTcsJXhtbTEwCisJcHVucGNraHFkcQkleG1tMTQsJXhtbTEzCisJcHVucGNraHFkcQkleG1tNywleG1tMTUKKwlwYWRkZAkxOTItMjU2KCVyY3gpLCV4bW00CisJcGFkZGQJMjA4LTI1NiglcmN4KSwleG1tNQorCXBhZGRkCTIyNC0yNTYoJXJjeCksJXhtbTgKKwlwYWRkZAkyNDAtMjU2KCVyY3gpLCV4bW05CisKKwltb3ZkcWEJJXhtbTYsMzIoJXJzcCkKKwltb3ZkcWEJJXhtbTExLDQ4KCVyc3ApCisKKwltb3ZkcWEJJXhtbTQsJXhtbTE0CisJcHVucGNrbGRxCSV4bW01LCV4bW00CisJbW92ZHFhCSV4bW04LCV4bW03CisJcHVucGNrbGRxCSV4bW05LCV4bW04CisJcHVucGNraGRxCSV4bW01LCV4bW0xNAorCXB1bnBja2hkcQkleG1tOSwleG1tNworCW1vdmRxYQkleG1tNCwleG1tNQorCXB1bnBja2xxZHEJJXhtbTgsJXhtbTQKKwltb3ZkcWEJJXhtbTE0LCV4bW05CisJcHVucGNrbHFkcQkleG1tNywleG1tMTQKKwlwdW5wY2tocWRxCSV4bW04LCV4bW01CisJcHVucGNraHFkcQkleG1tNywleG1tOQorCXBhZGRkCTI1Ni0yNTYoJXJjeCksJXhtbTAKKwlwYWRkZAkyNzItMjU2KCVyY3gpLCV4bW0xCisJcGFkZGQJMjg4LTI1NiglcmN4KSwleG1tMgorCXBhZGRkCTMwNC0yNTYoJXJjeCksJXhtbTMKKworCW1vdmRxYQkleG1tMCwleG1tOAorCXB1bnBja2xkcQkleG1tMSwleG1tMAorCW1vdmRxYQkleG1tMiwleG1tNworCXB1bnBja2xkcQkleG1tMywleG1tMgorCXB1bnBja2hkcQkleG1tMSwleG1tOAorCXB1bnBja2hkcQkleG1tMywleG1tNworCW1vdmRxYQkleG1tMCwleG1tMQorCXB1bnBja2xxZHEJJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTgsJXhtbTMKKwlwdW5wY2tscWRxCSV4bW03LCV4bW04CisJcHVucGNraHFkcQkleG1tMiwleG1tMQorCXB1bnBja2hxZHEJJXhtbTcsJXhtbTMKKwljbXBxCSQyNTYsJXJkeAorCWpiCUwkdGFpbDR4CisKKwltb3ZkcXUJMCglcnNpKSwleG1tNgorCW1vdmRxdQkxNiglcnNpKSwleG1tMTEKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTcKKwlweG9yCTAoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMiwleG1tMTEKKwlweG9yCSV4bW00LCV4bW0yCisJcHhvcgkleG1tMCwleG1tNworCisJbW92ZHF1CSV4bW02LDAoJXJkaSkKKwltb3ZkcXUJNjQoJXJzaSksJXhtbTYKKwltb3ZkcXUJJXhtbTExLDE2KCVyZGkpCisJbW92ZHF1CTgwKCVyc2kpLCV4bW0xMQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQk5NiglcnNpKSwleG1tMgorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCW1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJcHhvcgkxNiglcnNwKSwleG1tNgorCXB4b3IJJXhtbTEzLCV4bW0xMQorCXB4b3IJJXhtbTUsJXhtbTIKKwlweG9yCSV4bW0xLCV4bW03CisKKwltb3ZkcXUJJXhtbTYsNjQoJXJkaSkKKwltb3ZkcXUJMCglcnNpKSwleG1tNgorCW1vdmRxdQkleG1tMTEsODAoJXJkaSkKKwltb3ZkcXUJMTYoJXJzaSksJXhtbTExCisJbW92ZHF1CSV4bW0yLDk2KCVyZGkpCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJbW92ZHF1CSV4bW03LDExMiglcmRpKQorCWxlYXEJMTI4KCVyZGkpLCVyZGkKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTcKKwlweG9yCTMyKCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTAsJXhtbTExCisJcHhvcgkleG1tMTQsJXhtbTIKKwlweG9yCSV4bW04LCV4bW03CisKKwltb3ZkcXUJJXhtbTYsMCglcmRpKQorCW1vdmRxdQk2NCglcnNpKSwleG1tNgorCW1vdmRxdQkleG1tMTEsMTYoJXJkaSkKKwltb3ZkcXUJODAoJXJzaSksJXhtbTExCisJbW92ZHF1CSV4bW0yLDMyKCVyZGkpCisJbW92ZHF1CTk2KCVyc2kpLCV4bW0yCisJbW92ZHF1CSV4bW03LDQ4KCVyZGkpCisJbW92ZHF1CTExMiglcnNpKSwleG1tNworCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwlweG9yCTQ4KCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTUsJXhtbTExCisJcHhvcgkleG1tOSwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTcKKwltb3ZkcXUJJXhtbTYsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTExLDgwKCVyZGkpCisJbW92ZHF1CSV4bW0yLDk2KCVyZGkpCisJbW92ZHF1CSV4bW03LDExMiglcmRpKQorCWxlYXEJMTI4KCVyZGkpLCVyZGkKKworCXN1YnEJJDI1NiwlcmR4CisJam56CUwkb29wX291dGVyNHgKKworCWptcAlMJGRvbmU0eAorCitMJHRhaWw0eDoKKwljbXBxCSQxOTIsJXJkeAorCWphZQlMJDE5Ml9vcl9tb3JlNHgKKwljbXBxCSQxMjgsJXJkeAorCWphZQlMJDEyOF9vcl9tb3JlNHgKKwljbXBxCSQ2NCwlcmR4CisJamFlCUwkNjRfb3JfbW9yZTR4CisKKworCXhvcnEJJXIxMCwlcjEwCisKKwltb3ZkcWEJJXhtbTEyLDE2KCVyc3ApCisJbW92ZHFhCSV4bW00LDMyKCVyc3ApCisJbW92ZHFhCSV4bW0wLDQ4KCVyc3ApCisJam1wCUwkb29wX3RhaWw0eAorCisucDJhbGlnbgk1CitMJDY0X29yX21vcmU0eDoKKwltb3ZkcXUJMCglcnNpKSwleG1tNgorCW1vdmRxdQkxNiglcnNpKSwleG1tMTEKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTcKKwlweG9yCTAoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMiwleG1tMTEKKwlweG9yCSV4bW00LCV4bW0yCisJcHhvcgkleG1tMCwleG1tNworCW1vdmRxdQkleG1tNiwwKCVyZGkpCisJbW92ZHF1CSV4bW0xMSwxNiglcmRpKQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCWplCUwkZG9uZTR4CisKKwltb3ZkcWEJMTYoJXJzcCksJXhtbTYKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCW1vdmRxYQkleG1tNiwwKCVyc3ApCisJbW92ZHFhCSV4bW0xMywxNiglcnNwKQorCWxlYXEJNjQoJXJkaSksJXJkaQorCW1vdmRxYQkleG1tNSwzMiglcnNwKQorCXN1YnEJJDY0LCVyZHgKKwltb3ZkcWEJJXhtbTEsNDgoJXJzcCkKKwlqbXAJTCRvb3BfdGFpbDR4CisKKy5wMmFsaWduCTUKK0wkMTI4X29yX21vcmU0eDoKKwltb3ZkcXUJMCglcnNpKSwleG1tNgorCW1vdmRxdQkxNiglcnNpKSwleG1tMTEKKwltb3ZkcXUJMzIoJXJzaSksJXhtbTIKKwltb3ZkcXUJNDgoJXJzaSksJXhtbTcKKwlweG9yCTAoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMiwleG1tMTEKKwlweG9yCSV4bW00LCV4bW0yCisJcHhvcgkleG1tMCwleG1tNworCisJbW92ZHF1CSV4bW02LDAoJXJkaSkKKwltb3ZkcXUJNjQoJXJzaSksJXhtbTYKKwltb3ZkcXUJJXhtbTExLDE2KCVyZGkpCisJbW92ZHF1CTgwKCVyc2kpLCV4bW0xMQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQk5NiglcnNpKSwleG1tMgorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCW1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwlweG9yCTE2KCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTMsJXhtbTExCisJcHhvcgkleG1tNSwleG1tMgorCXB4b3IJJXhtbTEsJXhtbTcKKwltb3ZkcXUJJXhtbTYsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTExLDgwKCVyZGkpCisJbW92ZHF1CSV4bW0yLDk2KCVyZGkpCisJbW92ZHF1CSV4bW03LDExMiglcmRpKQorCWplCUwkZG9uZTR4CisKKwltb3ZkcWEJMzIoJXJzcCksJXhtbTYKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwltb3ZkcWEJJXhtbTYsMCglcnNwKQorCW1vdmRxYQkleG1tMTAsMTYoJXJzcCkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisJbW92ZHFhCSV4bW0xNCwzMiglcnNwKQorCXN1YnEJJDEyOCwlcmR4CisJbW92ZHFhCSV4bW04LDQ4KCVyc3ApCisJam1wCUwkb29wX3RhaWw0eAorCisucDJhbGlnbgk1CitMJDE5Ml9vcl9tb3JlNHg6CisJbW92ZHF1CTAoJXJzaSksJXhtbTYKKwltb3ZkcXUJMTYoJXJzaSksJXhtbTExCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW03CisJcHhvcgkwKCVyc3ApLCV4bW02CisJcHhvcgkleG1tMTIsJXhtbTExCisJcHhvcgkleG1tNCwleG1tMgorCXB4b3IJJXhtbTAsJXhtbTcKKworCW1vdmRxdQkleG1tNiwwKCVyZGkpCisJbW92ZHF1CTY0KCVyc2kpLCV4bW02CisJbW92ZHF1CSV4bW0xMSwxNiglcmRpKQorCW1vdmRxdQk4MCglcnNpKSwleG1tMTEKKwltb3ZkcXUJJXhtbTIsMzIoJXJkaSkKKwltb3ZkcXUJOTYoJXJzaSksJXhtbTIKKwltb3ZkcXUJJXhtbTcsNDgoJXJkaSkKKwltb3ZkcXUJMTEyKCVyc2kpLCV4bW03CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCXB4b3IJMTYoJXJzcCksJXhtbTYKKwlweG9yCSV4bW0xMywleG1tMTEKKwlweG9yCSV4bW01LCV4bW0yCisJcHhvcgkleG1tMSwleG1tNworCisJbW92ZHF1CSV4bW02LDY0KCVyZGkpCisJbW92ZHF1CTAoJXJzaSksJXhtbTYKKwltb3ZkcXUJJXhtbTExLDgwKCVyZGkpCisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xMQorCW1vdmRxdQkleG1tMiw5NiglcmRpKQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQkleG1tNywxMTIoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW03CisJcHhvcgkzMiglcnNwKSwleG1tNgorCXB4b3IJJXhtbTEwLCV4bW0xMQorCXB4b3IJJXhtbTE0LCV4bW0yCisJcHhvcgkleG1tOCwleG1tNworCW1vdmRxdQkleG1tNiwwKCVyZGkpCisJbW92ZHF1CSV4bW0xMSwxNiglcmRpKQorCW1vdmRxdQkleG1tMiwzMiglcmRpKQorCW1vdmRxdQkleG1tNyw0OCglcmRpKQorCWplCUwkZG9uZTR4CisKKwltb3ZkcWEJNDgoJXJzcCksJXhtbTYKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCW1vdmRxYQkleG1tNiwwKCVyc3ApCisJbW92ZHFhCSV4bW0xNSwxNiglcnNwKQorCWxlYXEJNjQoJXJkaSksJXJkaQorCW1vdmRxYQkleG1tOSwzMiglcnNwKQorCXN1YnEJJDE5MiwlcmR4CisJbW92ZHFhCSV4bW0zLDQ4KCVyc3ApCisKK0wkb29wX3RhaWw0eDoKKwltb3Z6YmwJKCVyc2ksJXIxMCwxKSwlZWF4CisJbW92emJsCSglcnNwLCVyMTAsMSksJWVjeAorCWxlYXEJMSglcjEwKSwlcjEwCisJeG9ybAklZWN4LCVlYXgKKwltb3ZiCSVhbCwtMSglcmRpLCVyMTAsMSkKKwlkZWNxCSVyZHgKKwlqbnoJTCRvb3BfdGFpbDR4CisKK0wkZG9uZTR4OgorCWFkZHEJJDB4MTQ4KzAsJXJzcAorCS5ieXRlCTB4ZjMsMHhjMworCisKKy5wMmFsaWduCTUKK0NoYUNoYTIwXzh4OgorTCRDaGFDaGEyMF84eDoKKwltb3ZxCSVyc3AsJXIxMAorCXN1YnEJJDB4MjgwKzgsJXJzcAorCWFuZHEJJC0zMiwlcnNwCisJdnplcm91cHBlcgorCW1vdnEJJXIxMCw2NDAoJXJzcCkKKworCisKKworCisKKworCisKKworCXZicm9hZGNhc3RpMTI4CUwkc2lnbWEoJXJpcCksJXltbTExCisJdmJyb2FkY2FzdGkxMjgJKCVyY3gpLCV5bW0zCisJdmJyb2FkY2FzdGkxMjgJMTYoJXJjeCksJXltbTE1CisJdmJyb2FkY2FzdGkxMjgJKCVyOCksJXltbTcKKwlsZWFxCTI1NiglcnNwKSwlcmN4CisJbGVhcQk1MTIoJXJzcCksJXJheAorCWxlYXEJTCRyb3QxNiglcmlwKSwlcjEwCisJbGVhcQlMJHJvdDI0KCVyaXApLCVyMTEKKworCXZwc2h1ZmQJJDB4MDAsJXltbTExLCV5bW04CisJdnBzaHVmZAkkMHg1NSwleW1tMTEsJXltbTkKKwl2bW92ZHFhCSV5bW04LDEyOC0yNTYoJXJjeCkKKwl2cHNodWZkCSQweGFhLCV5bW0xMSwleW1tMTAKKwl2bW92ZHFhCSV5bW05LDE2MC0yNTYoJXJjeCkKKwl2cHNodWZkCSQweGZmLCV5bW0xMSwleW1tMTEKKwl2bW92ZHFhCSV5bW0xMCwxOTItMjU2KCVyY3gpCisJdm1vdmRxYQkleW1tMTEsMjI0LTI1NiglcmN4KQorCisJdnBzaHVmZAkkMHgwMCwleW1tMywleW1tMAorCXZwc2h1ZmQJJDB4NTUsJXltbTMsJXltbTEKKwl2bW92ZHFhCSV5bW0wLDI1Ni0yNTYoJXJjeCkKKwl2cHNodWZkCSQweGFhLCV5bW0zLCV5bW0yCisJdm1vdmRxYQkleW1tMSwyODgtMjU2KCVyY3gpCisJdnBzaHVmZAkkMHhmZiwleW1tMywleW1tMworCXZtb3ZkcWEJJXltbTIsMzIwLTI1NiglcmN4KQorCXZtb3ZkcWEJJXltbTMsMzUyLTI1NiglcmN4KQorCisJdnBzaHVmZAkkMHgwMCwleW1tMTUsJXltbTEyCisJdnBzaHVmZAkkMHg1NSwleW1tMTUsJXltbTEzCisJdm1vdmRxYQkleW1tMTIsMzg0LTUxMiglcmF4KQorCXZwc2h1ZmQJJDB4YWEsJXltbTE1LCV5bW0xNAorCXZtb3ZkcWEJJXltbTEzLDQxNi01MTIoJXJheCkKKwl2cHNodWZkCSQweGZmLCV5bW0xNSwleW1tMTUKKwl2bW92ZHFhCSV5bW0xNCw0NDgtNTEyKCVyYXgpCisJdm1vdmRxYQkleW1tMTUsNDgwLTUxMiglcmF4KQorCisJdnBzaHVmZAkkMHgwMCwleW1tNywleW1tNAorCXZwc2h1ZmQJJDB4NTUsJXltbTcsJXltbTUKKwl2cGFkZGQJTCRpbmN5KCVyaXApLCV5bW00LCV5bW00CisJdnBzaHVmZAkkMHhhYSwleW1tNywleW1tNgorCXZtb3ZkcWEJJXltbTUsNTQ0LTUxMiglcmF4KQorCXZwc2h1ZmQJJDB4ZmYsJXltbTcsJXltbTcKKwl2bW92ZHFhCSV5bW02LDU3Ni01MTIoJXJheCkKKwl2bW92ZHFhCSV5bW03LDYwOC01MTIoJXJheCkKKworCWptcAlMJG9vcF9lbnRlcjh4CisKKy5wMmFsaWduCTUKK0wkb29wX291dGVyOHg6CisJdm1vdmRxYQkxMjgtMjU2KCVyY3gpLCV5bW04CisJdm1vdmRxYQkxNjAtMjU2KCVyY3gpLCV5bW05CisJdm1vdmRxYQkxOTItMjU2KCVyY3gpLCV5bW0xMAorCXZtb3ZkcWEJMjI0LTI1NiglcmN4KSwleW1tMTEKKwl2bW92ZHFhCTI1Ni0yNTYoJXJjeCksJXltbTAKKwl2bW92ZHFhCTI4OC0yNTYoJXJjeCksJXltbTEKKwl2bW92ZHFhCTMyMC0yNTYoJXJjeCksJXltbTIKKwl2bW92ZHFhCTM1Mi0yNTYoJXJjeCksJXltbTMKKwl2bW92ZHFhCTM4NC01MTIoJXJheCksJXltbTEyCisJdm1vdmRxYQk0MTYtNTEyKCVyYXgpLCV5bW0xMworCXZtb3ZkcWEJNDQ4LTUxMiglcmF4KSwleW1tMTQKKwl2bW92ZHFhCTQ4MC01MTIoJXJheCksJXltbTE1CisJdm1vdmRxYQk1MTItNTEyKCVyYXgpLCV5bW00CisJdm1vdmRxYQk1NDQtNTEyKCVyYXgpLCV5bW01CisJdm1vdmRxYQk1NzYtNTEyKCVyYXgpLCV5bW02CisJdm1vdmRxYQk2MDgtNTEyKCVyYXgpLCV5bW03CisJdnBhZGRkCUwkZWlnaHQoJXJpcCksJXltbTQsJXltbTQKKworTCRvb3BfZW50ZXI4eDoKKwl2bW92ZHFhCSV5bW0xNCw2NCglcnNwKQorCXZtb3ZkcWEJJXltbTE1LDk2KCVyc3ApCisJdmJyb2FkY2FzdGkxMjgJKCVyMTApLCV5bW0xNQorCXZtb3ZkcWEJJXltbTQsNTEyLTUxMiglcmF4KQorCW1vdmwJJDEwLCVlYXgKKwlqbXAJTCRvb3A4eAorCisucDJhbGlnbgk1CitMJG9vcDh4OgorCXZwYWRkZAkleW1tMCwleW1tOCwleW1tOAorCXZweG9yCSV5bW00LCV5bW04LCV5bW00CisJdnBzaHVmYgkleW1tMTUsJXltbTQsJXltbTQKKwl2cGFkZGQJJXltbTEsJXltbTksJXltbTkKKwl2cHhvcgkleW1tNSwleW1tOSwleW1tNQorCXZwc2h1ZmIJJXltbTE1LCV5bW01LCV5bW01CisJdnBhZGRkCSV5bW00LCV5bW0xMiwleW1tMTIKKwl2cHhvcgkleW1tMCwleW1tMTIsJXltbTAKKwl2cHNsbGQJJDEyLCV5bW0wLCV5bW0xNAorCXZwc3JsZAkkMjAsJXltbTAsJXltbTAKKwl2cG9yCSV5bW0wLCV5bW0xNCwleW1tMAorCXZicm9hZGNhc3RpMTI4CSglcjExKSwleW1tMTQKKwl2cGFkZGQJJXltbTUsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0xLCV5bW0xMywleW1tMQorCXZwc2xsZAkkMTIsJXltbTEsJXltbTE1CisJdnBzcmxkCSQyMCwleW1tMSwleW1tMQorCXZwb3IJJXltbTEsJXltbTE1LCV5bW0xCisJdnBhZGRkCSV5bW0wLCV5bW04LCV5bW04CisJdnB4b3IJJXltbTQsJXltbTgsJXltbTQKKwl2cHNodWZiCSV5bW0xNCwleW1tNCwleW1tNAorCXZwYWRkZAkleW1tMSwleW1tOSwleW1tOQorCXZweG9yCSV5bW01LCV5bW05LCV5bW01CisJdnBzaHVmYgkleW1tMTQsJXltbTUsJXltbTUKKwl2cGFkZGQJJXltbTQsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0wLCV5bW0xMiwleW1tMAorCXZwc2xsZAkkNywleW1tMCwleW1tMTUKKwl2cHNybGQJJDI1LCV5bW0wLCV5bW0wCisJdnBvcgkleW1tMCwleW1tMTUsJXltbTAKKwl2YnJvYWRjYXN0aTEyOAkoJXIxMCksJXltbTE1CisJdnBhZGRkCSV5bW01LCV5bW0xMywleW1tMTMKKwl2cHhvcgkleW1tMSwleW1tMTMsJXltbTEKKwl2cHNsbGQJJDcsJXltbTEsJXltbTE0CisJdnBzcmxkCSQyNSwleW1tMSwleW1tMQorCXZwb3IJJXltbTEsJXltbTE0LCV5bW0xCisJdm1vdmRxYQkleW1tMTIsMCglcnNwKQorCXZtb3ZkcWEJJXltbTEzLDMyKCVyc3ApCisJdm1vdmRxYQk2NCglcnNwKSwleW1tMTIKKwl2bW92ZHFhCTk2KCVyc3ApLCV5bW0xMworCXZwYWRkZAkleW1tMiwleW1tMTAsJXltbTEwCisJdnB4b3IJJXltbTYsJXltbTEwLCV5bW02CisJdnBzaHVmYgkleW1tMTUsJXltbTYsJXltbTYKKwl2cGFkZGQJJXltbTMsJXltbTExLCV5bW0xMQorCXZweG9yCSV5bW03LCV5bW0xMSwleW1tNworCXZwc2h1ZmIJJXltbTE1LCV5bW03LCV5bW03CisJdnBhZGRkCSV5bW02LCV5bW0xMiwleW1tMTIKKwl2cHhvcgkleW1tMiwleW1tMTIsJXltbTIKKwl2cHNsbGQJJDEyLCV5bW0yLCV5bW0xNAorCXZwc3JsZAkkMjAsJXltbTIsJXltbTIKKwl2cG9yCSV5bW0yLCV5bW0xNCwleW1tMgorCXZicm9hZGNhc3RpMTI4CSglcjExKSwleW1tMTQKKwl2cGFkZGQJJXltbTcsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0zLCV5bW0xMywleW1tMworCXZwc2xsZAkkMTIsJXltbTMsJXltbTE1CisJdnBzcmxkCSQyMCwleW1tMywleW1tMworCXZwb3IJJXltbTMsJXltbTE1LCV5bW0zCisJdnBhZGRkCSV5bW0yLCV5bW0xMCwleW1tMTAKKwl2cHhvcgkleW1tNiwleW1tMTAsJXltbTYKKwl2cHNodWZiCSV5bW0xNCwleW1tNiwleW1tNgorCXZwYWRkZAkleW1tMywleW1tMTEsJXltbTExCisJdnB4b3IJJXltbTcsJXltbTExLCV5bW03CisJdnBzaHVmYgkleW1tMTQsJXltbTcsJXltbTcKKwl2cGFkZGQJJXltbTYsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0yLCV5bW0xMiwleW1tMgorCXZwc2xsZAkkNywleW1tMiwleW1tMTUKKwl2cHNybGQJJDI1LCV5bW0yLCV5bW0yCisJdnBvcgkleW1tMiwleW1tMTUsJXltbTIKKwl2YnJvYWRjYXN0aTEyOAkoJXIxMCksJXltbTE1CisJdnBhZGRkCSV5bW03LCV5bW0xMywleW1tMTMKKwl2cHhvcgkleW1tMywleW1tMTMsJXltbTMKKwl2cHNsbGQJJDcsJXltbTMsJXltbTE0CisJdnBzcmxkCSQyNSwleW1tMywleW1tMworCXZwb3IJJXltbTMsJXltbTE0LCV5bW0zCisJdnBhZGRkCSV5bW0xLCV5bW04LCV5bW04CisJdnB4b3IJJXltbTcsJXltbTgsJXltbTcKKwl2cHNodWZiCSV5bW0xNSwleW1tNywleW1tNworCXZwYWRkZAkleW1tMiwleW1tOSwleW1tOQorCXZweG9yCSV5bW00LCV5bW05LCV5bW00CisJdnBzaHVmYgkleW1tMTUsJXltbTQsJXltbTQKKwl2cGFkZGQJJXltbTcsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0xLCV5bW0xMiwleW1tMQorCXZwc2xsZAkkMTIsJXltbTEsJXltbTE0CisJdnBzcmxkCSQyMCwleW1tMSwleW1tMQorCXZwb3IJJXltbTEsJXltbTE0LCV5bW0xCisJdmJyb2FkY2FzdGkxMjgJKCVyMTEpLCV5bW0xNAorCXZwYWRkZAkleW1tNCwleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTIsJXltbTEzLCV5bW0yCisJdnBzbGxkCSQxMiwleW1tMiwleW1tMTUKKwl2cHNybGQJJDIwLCV5bW0yLCV5bW0yCisJdnBvcgkleW1tMiwleW1tMTUsJXltbTIKKwl2cGFkZGQJJXltbTEsJXltbTgsJXltbTgKKwl2cHhvcgkleW1tNywleW1tOCwleW1tNworCXZwc2h1ZmIJJXltbTE0LCV5bW03LCV5bW03CisJdnBhZGRkCSV5bW0yLCV5bW05LCV5bW05CisJdnB4b3IJJXltbTQsJXltbTksJXltbTQKKwl2cHNodWZiCSV5bW0xNCwleW1tNCwleW1tNAorCXZwYWRkZAkleW1tNywleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTEsJXltbTEyLCV5bW0xCisJdnBzbGxkCSQ3LCV5bW0xLCV5bW0xNQorCXZwc3JsZAkkMjUsJXltbTEsJXltbTEKKwl2cG9yCSV5bW0xLCV5bW0xNSwleW1tMQorCXZicm9hZGNhc3RpMTI4CSglcjEwKSwleW1tMTUKKwl2cGFkZGQJJXltbTQsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0yLCV5bW0xMywleW1tMgorCXZwc2xsZAkkNywleW1tMiwleW1tMTQKKwl2cHNybGQJJDI1LCV5bW0yLCV5bW0yCisJdnBvcgkleW1tMiwleW1tMTQsJXltbTIKKwl2bW92ZHFhCSV5bW0xMiw2NCglcnNwKQorCXZtb3ZkcWEJJXltbTEzLDk2KCVyc3ApCisJdm1vdmRxYQkwKCVyc3ApLCV5bW0xMgorCXZtb3ZkcWEJMzIoJXJzcCksJXltbTEzCisJdnBhZGRkCSV5bW0zLCV5bW0xMCwleW1tMTAKKwl2cHhvcgkleW1tNSwleW1tMTAsJXltbTUKKwl2cHNodWZiCSV5bW0xNSwleW1tNSwleW1tNQorCXZwYWRkZAkleW1tMCwleW1tMTEsJXltbTExCisJdnB4b3IJJXltbTYsJXltbTExLCV5bW02CisJdnBzaHVmYgkleW1tMTUsJXltbTYsJXltbTYKKwl2cGFkZGQJJXltbTUsJXltbTEyLCV5bW0xMgorCXZweG9yCSV5bW0zLCV5bW0xMiwleW1tMworCXZwc2xsZAkkMTIsJXltbTMsJXltbTE0CisJdnBzcmxkCSQyMCwleW1tMywleW1tMworCXZwb3IJJXltbTMsJXltbTE0LCV5bW0zCisJdmJyb2FkY2FzdGkxMjgJKCVyMTEpLCV5bW0xNAorCXZwYWRkZAkleW1tNiwleW1tMTMsJXltbTEzCisJdnB4b3IJJXltbTAsJXltbTEzLCV5bW0wCisJdnBzbGxkCSQxMiwleW1tMCwleW1tMTUKKwl2cHNybGQJJDIwLCV5bW0wLCV5bW0wCisJdnBvcgkleW1tMCwleW1tMTUsJXltbTAKKwl2cGFkZGQJJXltbTMsJXltbTEwLCV5bW0xMAorCXZweG9yCSV5bW01LCV5bW0xMCwleW1tNQorCXZwc2h1ZmIJJXltbTE0LCV5bW01LCV5bW01CisJdnBhZGRkCSV5bW0wLCV5bW0xMSwleW1tMTEKKwl2cHhvcgkleW1tNiwleW1tMTEsJXltbTYKKwl2cHNodWZiCSV5bW0xNCwleW1tNiwleW1tNgorCXZwYWRkZAkleW1tNSwleW1tMTIsJXltbTEyCisJdnB4b3IJJXltbTMsJXltbTEyLCV5bW0zCisJdnBzbGxkCSQ3LCV5bW0zLCV5bW0xNQorCXZwc3JsZAkkMjUsJXltbTMsJXltbTMKKwl2cG9yCSV5bW0zLCV5bW0xNSwleW1tMworCXZicm9hZGNhc3RpMTI4CSglcjEwKSwleW1tMTUKKwl2cGFkZGQJJXltbTYsJXltbTEzLCV5bW0xMworCXZweG9yCSV5bW0wLCV5bW0xMywleW1tMAorCXZwc2xsZAkkNywleW1tMCwleW1tMTQKKwl2cHNybGQJJDI1LCV5bW0wLCV5bW0wCisJdnBvcgkleW1tMCwleW1tMTQsJXltbTAKKwlkZWNsCSVlYXgKKwlqbnoJTCRvb3A4eAorCisJbGVhcQk1MTIoJXJzcCksJXJheAorCXZwYWRkZAkxMjgtMjU2KCVyY3gpLCV5bW04LCV5bW04CisJdnBhZGRkCTE2MC0yNTYoJXJjeCksJXltbTksJXltbTkKKwl2cGFkZGQJMTkyLTI1NiglcmN4KSwleW1tMTAsJXltbTEwCisJdnBhZGRkCTIyNC0yNTYoJXJjeCksJXltbTExLCV5bW0xMQorCisJdnB1bnBja2xkcQkleW1tOSwleW1tOCwleW1tMTQKKwl2cHVucGNrbGRxCSV5bW0xMSwleW1tMTAsJXltbTE1CisJdnB1bnBja2hkcQkleW1tOSwleW1tOCwleW1tOAorCXZwdW5wY2toZHEJJXltbTExLCV5bW0xMCwleW1tMTAKKwl2cHVucGNrbHFkcQkleW1tMTUsJXltbTE0LCV5bW05CisJdnB1bnBja2hxZHEJJXltbTE1LCV5bW0xNCwleW1tMTQKKwl2cHVucGNrbHFkcQkleW1tMTAsJXltbTgsJXltbTExCisJdnB1bnBja2hxZHEJJXltbTEwLCV5bW04LCV5bW04CisJdnBhZGRkCTI1Ni0yNTYoJXJjeCksJXltbTAsJXltbTAKKwl2cGFkZGQJMjg4LTI1NiglcmN4KSwleW1tMSwleW1tMQorCXZwYWRkZAkzMjAtMjU2KCVyY3gpLCV5bW0yLCV5bW0yCisJdnBhZGRkCTM1Mi0yNTYoJXJjeCksJXltbTMsJXltbTMKKworCXZwdW5wY2tsZHEJJXltbTEsJXltbTAsJXltbTEwCisJdnB1bnBja2xkcQkleW1tMywleW1tMiwleW1tMTUKKwl2cHVucGNraGRxCSV5bW0xLCV5bW0wLCV5bW0wCisJdnB1bnBja2hkcQkleW1tMywleW1tMiwleW1tMgorCXZwdW5wY2tscWRxCSV5bW0xNSwleW1tMTAsJXltbTEKKwl2cHVucGNraHFkcQkleW1tMTUsJXltbTEwLCV5bW0xMAorCXZwdW5wY2tscWRxCSV5bW0yLCV5bW0wLCV5bW0zCisJdnB1bnBja2hxZHEJJXltbTIsJXltbTAsJXltbTAKKwl2cGVybTJpMTI4CSQweDIwLCV5bW0xLCV5bW05LCV5bW0xNQorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTEsJXltbTksJXltbTEKKwl2cGVybTJpMTI4CSQweDIwLCV5bW0xMCwleW1tMTQsJXltbTkKKwl2cGVybTJpMTI4CSQweDMxLCV5bW0xMCwleW1tMTQsJXltbTEwCisJdnBlcm0yaTEyOAkkMHgyMCwleW1tMywleW1tMTEsJXltbTE0CisJdnBlcm0yaTEyOAkkMHgzMSwleW1tMywleW1tMTEsJXltbTMKKwl2cGVybTJpMTI4CSQweDIwLCV5bW0wLCV5bW04LCV5bW0xMQorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTAsJXltbTgsJXltbTAKKwl2bW92ZHFhCSV5bW0xNSwwKCVyc3ApCisJdm1vdmRxYQkleW1tOSwzMiglcnNwKQorCXZtb3ZkcWEJNjQoJXJzcCksJXltbTE1CisJdm1vdmRxYQk5NiglcnNwKSwleW1tOQorCisJdnBhZGRkCTM4NC01MTIoJXJheCksJXltbTEyLCV5bW0xMgorCXZwYWRkZAk0MTYtNTEyKCVyYXgpLCV5bW0xMywleW1tMTMKKwl2cGFkZGQJNDQ4LTUxMiglcmF4KSwleW1tMTUsJXltbTE1CisJdnBhZGRkCTQ4MC01MTIoJXJheCksJXltbTksJXltbTkKKworCXZwdW5wY2tsZHEJJXltbTEzLCV5bW0xMiwleW1tMgorCXZwdW5wY2tsZHEJJXltbTksJXltbTE1LCV5bW04CisJdnB1bnBja2hkcQkleW1tMTMsJXltbTEyLCV5bW0xMgorCXZwdW5wY2toZHEJJXltbTksJXltbTE1LCV5bW0xNQorCXZwdW5wY2tscWRxCSV5bW04LCV5bW0yLCV5bW0xMworCXZwdW5wY2tocWRxCSV5bW04LCV5bW0yLCV5bW0yCisJdnB1bnBja2xxZHEJJXltbTE1LCV5bW0xMiwleW1tOQorCXZwdW5wY2tocWRxCSV5bW0xNSwleW1tMTIsJXltbTEyCisJdnBhZGRkCTUxMi01MTIoJXJheCksJXltbTQsJXltbTQKKwl2cGFkZGQJNTQ0LTUxMiglcmF4KSwleW1tNSwleW1tNQorCXZwYWRkZAk1NzYtNTEyKCVyYXgpLCV5bW02LCV5bW02CisJdnBhZGRkCTYwOC01MTIoJXJheCksJXltbTcsJXltbTcKKworCXZwdW5wY2tsZHEJJXltbTUsJXltbTQsJXltbTE1CisJdnB1bnBja2xkcQkleW1tNywleW1tNiwleW1tOAorCXZwdW5wY2toZHEJJXltbTUsJXltbTQsJXltbTQKKwl2cHVucGNraGRxCSV5bW03LCV5bW02LCV5bW02CisJdnB1bnBja2xxZHEJJXltbTgsJXltbTE1LCV5bW01CisJdnB1bnBja2hxZHEJJXltbTgsJXltbTE1LCV5bW0xNQorCXZwdW5wY2tscWRxCSV5bW02LCV5bW00LCV5bW03CisJdnB1bnBja2hxZHEJJXltbTYsJXltbTQsJXltbTQKKwl2cGVybTJpMTI4CSQweDIwLCV5bW01LCV5bW0xMywleW1tOAorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTUsJXltbTEzLCV5bW01CisJdnBlcm0yaTEyOAkkMHgyMCwleW1tMTUsJXltbTIsJXltbTEzCisJdnBlcm0yaTEyOAkkMHgzMSwleW1tMTUsJXltbTIsJXltbTE1CisJdnBlcm0yaTEyOAkkMHgyMCwleW1tNywleW1tOSwleW1tMgorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTcsJXltbTksJXltbTcKKwl2cGVybTJpMTI4CSQweDIwLCV5bW00LCV5bW0xMiwleW1tOQorCXZwZXJtMmkxMjgJJDB4MzEsJXltbTQsJXltbTEyLCV5bW00CisJdm1vdmRxYQkwKCVyc3ApLCV5bW02CisJdm1vdmRxYQkzMiglcnNwKSwleW1tMTIKKworCWNtcHEJJDUxMiwlcmR4CisJamIJTCR0YWlsOHgKKworCXZweG9yCTAoJXJzaSksJXltbTYsJXltbTYKKwl2cHhvcgkzMiglcnNpKSwleW1tOCwleW1tOAorCXZweG9yCTY0KCVyc2kpLCV5bW0xLCV5bW0xCisJdnB4b3IJOTYoJXJzaSksJXltbTUsJXltbTUKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW01LDk2KCVyZGkpCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCisJdnB4b3IJMCglcnNpKSwleW1tMTIsJXltbTEyCisJdnB4b3IJMzIoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTY0KCVyc2kpLCV5bW0xMCwleW1tMTAKKwl2cHhvcgk5NiglcnNpKSwleW1tMTUsJXltbTE1CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCXZtb3ZkcXUJJXltbTEyLDAoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMywzMiglcmRpKQorCXZtb3ZkcXUJJXltbTEwLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tMTUsOTYoJXJkaSkKKwlsZWFxCTEyOCglcmRpKSwlcmRpCisKKwl2cHhvcgkwKCVyc2kpLCV5bW0xNCwleW1tMTQKKwl2cHhvcgkzMiglcnNpKSwleW1tMiwleW1tMgorCXZweG9yCTY0KCVyc2kpLCV5bW0zLCV5bW0zCisJdnB4b3IJOTYoJXJzaSksJXltbTcsJXltbTcKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJdm1vdmRxdQkleW1tMTQsMCglcmRpKQorCXZtb3ZkcXUJJXltbTIsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0zLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNyw5NiglcmRpKQorCWxlYXEJMTI4KCVyZGkpLCVyZGkKKworCXZweG9yCTAoJXJzaSksJXltbTExLCV5bW0xMQorCXZweG9yCTMyKCVyc2kpLCV5bW05LCV5bW05CisJdnB4b3IJNjQoJXJzaSksJXltbTAsJXltbTAKKwl2cHhvcgk5NiglcnNpKSwleW1tNCwleW1tNAorCWxlYXEJMTI4KCVyc2kpLCVyc2kKKwl2bW92ZHF1CSV5bW0xMSwwKCVyZGkpCisJdm1vdmRxdQkleW1tOSwzMiglcmRpKQorCXZtb3ZkcXUJJXltbTAsNjQoJXJkaSkKKwl2bW92ZHF1CSV5bW00LDk2KCVyZGkpCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCisJc3VicQkkNTEyLCVyZHgKKwlqbnoJTCRvb3Bfb3V0ZXI4eAorCisJam1wCUwkZG9uZTh4CisKK0wkdGFpbDh4OgorCWNtcHEJJDQ0OCwlcmR4CisJamFlCUwkNDQ4X29yX21vcmU4eAorCWNtcHEJJDM4NCwlcmR4CisJamFlCUwkMzg0X29yX21vcmU4eAorCWNtcHEJJDMyMCwlcmR4CisJamFlCUwkMzIwX29yX21vcmU4eAorCWNtcHEJJDI1NiwlcmR4CisJamFlCUwkMjU2X29yX21vcmU4eAorCWNtcHEJJDE5MiwlcmR4CisJamFlCUwkMTkyX29yX21vcmU4eAorCWNtcHEJJDEyOCwlcmR4CisJamFlCUwkMTI4X29yX21vcmU4eAorCWNtcHEJJDY0LCVyZHgKKwlqYWUJTCQ2NF9vcl9tb3JlOHgKKworCXhvcnEJJXIxMCwlcjEwCisJdm1vdmRxYQkleW1tNiwwKCVyc3ApCisJdm1vdmRxYQkleW1tOCwzMiglcnNwKQorCWptcAlMJG9vcF90YWlsOHgKKworLnAyYWxpZ24JNQorTCQ2NF9vcl9tb3JlOHg6CisJdnB4b3IJMCglcnNpKSwleW1tNiwleW1tNgorCXZweG9yCTMyKCVyc2kpLCV5bW04LCV5bW04CisJdm1vdmRxdQkleW1tNiwwKCVyZGkpCisJdm1vdmRxdQkleW1tOCwzMiglcmRpKQorCWplCUwkZG9uZTh4CisKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTEsMCglcnNwKQorCWxlYXEJNjQoJXJkaSksJXJkaQorCXN1YnEJJDY0LCVyZHgKKwl2bW92ZHFhCSV5bW01LDMyKCVyc3ApCisJam1wCUwkb29wX3RhaWw4eAorCisucDJhbGlnbgk1CitMJDEyOF9vcl9tb3JlOHg6CisJdnB4b3IJMCglcnNpKSwleW1tNiwleW1tNgorCXZweG9yCTMyKCVyc2kpLCV5bW04LCV5bW04CisJdnB4b3IJNjQoJXJzaSksJXltbTEsJXltbTEKKwl2cHhvcgk5NiglcnNpKSwleW1tNSwleW1tNQorCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCWplCUwkZG9uZTh4CisKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0xMiwwKCVyc3ApCisJbGVhcQkxMjgoJXJkaSksJXJkaQorCXN1YnEJJDEyOCwlcmR4CisJdm1vdmRxYQkleW1tMTMsMzIoJXJzcCkKKwlqbXAJTCRvb3BfdGFpbDh4CisKKy5wMmFsaWduCTUKK0wkMTkyX29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCXZtb3ZkcXUJJXltbTEyLDEyOCglcmRpKQorCXZtb3ZkcXUJJXltbTEzLDE2MCglcmRpKQorCWplCUwkZG9uZTh4CisKKwlsZWFxCTE5MiglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0xMCwwKCVyc3ApCisJbGVhcQkxOTIoJXJkaSksJXJkaQorCXN1YnEJJDE5MiwlcmR4CisJdm1vdmRxYQkleW1tMTUsMzIoJXJzcCkKKwlqbXAJTCRvb3BfdGFpbDh4CisKKy5wMmFsaWduCTUKK0wkMjU2X29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTE5MiglcnNpKSwleW1tMTAsJXltbTEwCisJdnB4b3IJMjI0KCVyc2kpLCV5bW0xNSwleW1tMTUKKwl2bW92ZHF1CSV5bW02LDAoJXJkaSkKKwl2bW92ZHF1CSV5bW04LDMyKCVyZGkpCisJdm1vdmRxdQkleW1tMSw2NCglcmRpKQorCXZtb3ZkcXUJJXltbTUsOTYoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMiwxMjgoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMywxNjAoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMCwxOTIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xNSwyMjQoJXJkaSkKKwlqZQlMJGRvbmU4eAorCisJbGVhcQkyNTYoJXJzaSksJXJzaQorCXhvcnEJJXIxMCwlcjEwCisJdm1vdmRxYQkleW1tMTQsMCglcnNwKQorCWxlYXEJMjU2KCVyZGkpLCVyZGkKKwlzdWJxCSQyNTYsJXJkeAorCXZtb3ZkcWEJJXltbTIsMzIoJXJzcCkKKwlqbXAJTCRvb3BfdGFpbDh4CisKKy5wMmFsaWduCTUKK0wkMzIwX29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTE5MiglcnNpKSwleW1tMTAsJXltbTEwCisJdnB4b3IJMjI0KCVyc2kpLCV5bW0xNSwleW1tMTUKKwl2cHhvcgkyNTYoJXJzaSksJXltbTE0LCV5bW0xNAorCXZweG9yCTI4OCglcnNpKSwleW1tMiwleW1tMgorCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCXZtb3ZkcXUJJXltbTEyLDEyOCglcmRpKQorCXZtb3ZkcXUJJXltbTEzLDE2MCglcmRpKQorCXZtb3ZkcXUJJXltbTEwLDE5MiglcmRpKQorCXZtb3ZkcXUJJXltbTE1LDIyNCglcmRpKQorCXZtb3ZkcXUJJXltbTE0LDI1NiglcmRpKQorCXZtb3ZkcXUJJXltbTIsMjg4KCVyZGkpCisJamUJTCRkb25lOHgKKworCWxlYXEJMzIwKCVyc2kpLCVyc2kKKwl4b3JxCSVyMTAsJXIxMAorCXZtb3ZkcWEJJXltbTMsMCglcnNwKQorCWxlYXEJMzIwKCVyZGkpLCVyZGkKKwlzdWJxCSQzMjAsJXJkeAorCXZtb3ZkcWEJJXltbTcsMzIoJXJzcCkKKwlqbXAJTCRvb3BfdGFpbDh4CisKKy5wMmFsaWduCTUKK0wkMzg0X29yX21vcmU4eDoKKwl2cHhvcgkwKCVyc2kpLCV5bW02LCV5bW02CisJdnB4b3IJMzIoJXJzaSksJXltbTgsJXltbTgKKwl2cHhvcgk2NCglcnNpKSwleW1tMSwleW1tMQorCXZweG9yCTk2KCVyc2kpLCV5bW01LCV5bW01CisJdnB4b3IJMTI4KCVyc2kpLCV5bW0xMiwleW1tMTIKKwl2cHhvcgkxNjAoJXJzaSksJXltbTEzLCV5bW0xMworCXZweG9yCTE5MiglcnNpKSwleW1tMTAsJXltbTEwCisJdnB4b3IJMjI0KCVyc2kpLCV5bW0xNSwleW1tMTUKKwl2cHhvcgkyNTYoJXJzaSksJXltbTE0LCV5bW0xNAorCXZweG9yCTI4OCglcnNpKSwleW1tMiwleW1tMgorCXZweG9yCTMyMCglcnNpKSwleW1tMywleW1tMworCXZweG9yCTM1MiglcnNpKSwleW1tNywleW1tNworCXZtb3ZkcXUJJXltbTYsMCglcmRpKQorCXZtb3ZkcXUJJXltbTgsMzIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xLDY0KCVyZGkpCisJdm1vdmRxdQkleW1tNSw5NiglcmRpKQorCXZtb3ZkcXUJJXltbTEyLDEyOCglcmRpKQorCXZtb3ZkcXUJJXltbTEzLDE2MCglcmRpKQorCXZtb3ZkcXUJJXltbTEwLDE5MiglcmRpKQorCXZtb3ZkcXUJJXltbTE1LDIyNCglcmRpKQorCXZtb3ZkcXUJJXltbTE0LDI1NiglcmRpKQorCXZtb3ZkcXUJJXltbTIsMjg4KCVyZGkpCisJdm1vdmRxdQkleW1tMywzMjAoJXJkaSkKKwl2bW92ZHF1CSV5bW03LDM1MiglcmRpKQorCWplCUwkZG9uZTh4CisKKwlsZWFxCTM4NCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0xMSwwKCVyc3ApCisJbGVhcQkzODQoJXJkaSksJXJkaQorCXN1YnEJJDM4NCwlcmR4CisJdm1vdmRxYQkleW1tOSwzMiglcnNwKQorCWptcAlMJG9vcF90YWlsOHgKKworLnAyYWxpZ24JNQorTCQ0NDhfb3JfbW9yZTh4OgorCXZweG9yCTAoJXJzaSksJXltbTYsJXltbTYKKwl2cHhvcgkzMiglcnNpKSwleW1tOCwleW1tOAorCXZweG9yCTY0KCVyc2kpLCV5bW0xLCV5bW0xCisJdnB4b3IJOTYoJXJzaSksJXltbTUsJXltbTUKKwl2cHhvcgkxMjgoJXJzaSksJXltbTEyLCV5bW0xMgorCXZweG9yCTE2MCglcnNpKSwleW1tMTMsJXltbTEzCisJdnB4b3IJMTkyKCVyc2kpLCV5bW0xMCwleW1tMTAKKwl2cHhvcgkyMjQoJXJzaSksJXltbTE1LCV5bW0xNQorCXZweG9yCTI1NiglcnNpKSwleW1tMTQsJXltbTE0CisJdnB4b3IJMjg4KCVyc2kpLCV5bW0yLCV5bW0yCisJdnB4b3IJMzIwKCVyc2kpLCV5bW0zLCV5bW0zCisJdnB4b3IJMzUyKCVyc2kpLCV5bW03LCV5bW03CisJdnB4b3IJMzg0KCVyc2kpLCV5bW0xMSwleW1tMTEKKwl2cHhvcgk0MTYoJXJzaSksJXltbTksJXltbTkKKwl2bW92ZHF1CSV5bW02LDAoJXJkaSkKKwl2bW92ZHF1CSV5bW04LDMyKCVyZGkpCisJdm1vdmRxdQkleW1tMSw2NCglcmRpKQorCXZtb3ZkcXUJJXltbTUsOTYoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMiwxMjgoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMywxNjAoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMCwxOTIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xNSwyMjQoJXJkaSkKKwl2bW92ZHF1CSV5bW0xNCwyNTYoJXJkaSkKKwl2bW92ZHF1CSV5bW0yLDI4OCglcmRpKQorCXZtb3ZkcXUJJXltbTMsMzIwKCVyZGkpCisJdm1vdmRxdQkleW1tNywzNTIoJXJkaSkKKwl2bW92ZHF1CSV5bW0xMSwzODQoJXJkaSkKKwl2bW92ZHF1CSV5bW05LDQxNiglcmRpKQorCWplCUwkZG9uZTh4CisKKwlsZWFxCTQ0OCglcnNpKSwlcnNpCisJeG9ycQklcjEwLCVyMTAKKwl2bW92ZHFhCSV5bW0wLDAoJXJzcCkKKwlsZWFxCTQ0OCglcmRpKSwlcmRpCisJc3VicQkkNDQ4LCVyZHgKKwl2bW92ZHFhCSV5bW00LDMyKCVyc3ApCisKK0wkb29wX3RhaWw4eDoKKwltb3Z6YmwJKCVyc2ksJXIxMCwxKSwlZWF4CisJbW92emJsCSglcnNwLCVyMTAsMSksJWVjeAorCWxlYXEJMSglcjEwKSwlcjEwCisJeG9ybAklZWN4LCVlYXgKKwltb3ZiCSVhbCwtMSglcmRpLCVyMTAsMSkKKwlkZWNxCSVyZHgKKwlqbnoJTCRvb3BfdGFpbDh4CisKK0wkZG9uZTh4OgorCXZ6ZXJvYWxsCisJbW92cQk2NDAoJXJzcCksJXJzcAorCS5ieXRlCTB4ZjMsMHhjMworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9jcHUteDg2XzY0LWFzbS5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2NwdS14ODZfNjQtYXNtLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZGUwNGQuLjAwMDAwMDAKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2NwdS14ODZfNjQtYXNtLlMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDMgKzAsMCBAQAotI2lmIGRlZmluZWQoX194ODZfNjRfXykKLS50ZXh0CQotCi0uZ2xvYmwJX09QRU5TU0xfaWEzMl9jcHVpZAotLnByaXZhdGVfZXh0ZXJuIF9PUEVOU1NMX2lhMzJfY3B1aWQKLQotLnAyYWxpZ24JNAotX09QRU5TU0xfaWEzMl9jcHVpZDoKLQotCi0JbW92cQklcmRpLCVyZGkKLQltb3ZxCSVyYngsJXI4Ci0KLQl4b3JsCSVlYXgsJWVheAotCW1vdmwJJWVheCw4KCVyZGkpCi0JY3B1aWQKLQltb3ZsCSVlYXgsJXIxMWQKLQotCXhvcmwJJWVheCwlZWF4Ci0JY21wbAkkMTk3MDE2OTE1OSwlZWJ4Ci0Jc2V0bmUJJWFsCi0JbW92bAklZWF4LCVyOWQKLQljbXBsCSQxMjMxMzg0MTY5LCVlZHgKLQlzZXRuZQklYWwKLQlvcmwJJWVheCwlcjlkCi0JY21wbAkkMTgxODU4ODI3MCwlZWN4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJXI5ZAotCWp6CUwkaW50ZWwKLQotCWNtcGwJJDE3NTI0NjI2NTcsJWVieAotCXNldG5lCSVhbAotCW1vdmwJJWVheCwlcjEwZAotCWNtcGwJJDE3NjkyMzgxMTcsJWVkeAotCXNldG5lCSVhbAotCW9ybAklZWF4LCVyMTBkCi0JY21wbAkkMTE0NTkxMzY5OSwlZWN4Ci0Jc2V0bmUJJWFsCi0Jb3JsCSVlYXgsJXIxMGQKLQlqbnoJTCRpbnRlbAotCi0KLQotCi0JbW92bAkkMjE0NzQ4MzY0OCwlZWF4Ci0JY3B1aWQKLQotCi0JY21wbAkkMjE0NzQ4MzY0OSwlZWF4Ci0JamIJTCRpbnRlbAotCW1vdmwJJWVheCwlcjEwZAotCW1vdmwJJDIxNDc0ODM2NDksJWVheAotCWNwdWlkCi0KLQotCW9ybAklZWN4LCVyOWQKLQlhbmRsCSQyMDQ5LCVyOWQKLQotCWNtcGwJJDIxNDc0ODM2NTYsJXIxMGQKLQlqYglMJGludGVsCi0KLQltb3ZsCSQyMTQ3NDgzNjU2LCVlYXgKLQljcHVpZAotCi0JbW92emJxCSVjbCwlcjEwCi0JaW5jcQklcjEwCi0KLQltb3ZsCSQxLCVlYXgKLQljcHVpZAotCi0JYnRsCSQyOCwlZWR4Ci0Jam5jCUwkZ2VuZXJpYwotCXNocmwJJDE2LCVlYngKLQljbXBiCSVyMTBiLCVibAotCWphCUwkZ2VuZXJpYwotCWFuZGwJJDQwMjY1MzE4MzksJWVkeAotCWptcAlMJGdlbmVyaWMKLQotTCRpbnRlbDoKLQljbXBsCSQ0LCVyMTFkCi0JbW92bAkkLTEsJXIxMGQKLQlqYglMJG5vY2FjaGVpbmZvCi0KLQltb3ZsCSQ0LCVlYXgKLQltb3ZsCSQwLCVlY3gKLQljcHVpZAotCW1vdmwJJWVheCwlcjEwZAotCXNocmwJJDE0LCVyMTBkCi0JYW5kbAkkNDA5NSwlcjEwZAotCi0JY21wbAkkNywlcjExZAotCWpiCUwkbm9jYWNoZWluZm8KLQotCW1vdmwJJDcsJWVheAotCXhvcmwJJWVjeCwlZWN4Ci0JY3B1aWQKLQltb3ZsCSVlYngsOCglcmRpKQotCi1MJG5vY2FjaGVpbmZvOgotCW1vdmwJJDEsJWVheAotCWNwdWlkCi0KLQlhbmRsCSQzMjIwMTc2ODk1LCVlZHgKLQljbXBsCSQwLCVyOWQKLQlqbmUJTCRub3RpbnRlbAotCW9ybAkkMTA3Mzc0MTgyNCwlZWR4Ci1MJG5vdGludGVsOgotCWJ0bAkkMjgsJWVkeAotCWpuYwlMJGdlbmVyaWMKLQlhbmRsCSQ0MDI2NTMxODM5LCVlZHgKLQljbXBsCSQwLCVyMTBkCi0JamUJTCRnZW5lcmljCi0KLQlvcmwJJDI2ODQzNTQ1NiwlZWR4Ci0Jc2hybAkkMTYsJWVieAotCWNtcGIJJDEsJWJsCi0JamEJTCRnZW5lcmljCi0JYW5kbAkkNDAyNjUzMTgzOSwlZWR4Ci1MJGdlbmVyaWM6Ci0JYW5kbAkkMjA0OCwlcjlkCi0JYW5kbAkkNDI5NDk2NTI0NywlZWN4Ci0Jb3JsCSVlY3gsJXI5ZAotCi0JbW92bAklZWR4LCVyMTBkCi0JYnRsCSQyNywlcjlkCi0Jam5jCUwkY2xlYXJfYXZ4Ci0JeG9ybAklZWN4LCVlY3gKLS5ieXRlCTB4MGYsMHgwMSwweGQwCi0JYW5kbAkkNiwlZWF4Ci0JY21wbAkkNiwlZWF4Ci0JamUJTCRkb25lCi1MJGNsZWFyX2F2eDoKLQltb3ZsCSQ0MDI2NTI1Njk1LCVlYXgKLQlhbmRsCSVlYXgsJXI5ZAotCWFuZGwJJDQyOTQ5NjcyNjMsOCglcmRpKQotTCRkb25lOgotCW1vdmwJJXI5ZCw0KCVyZGkpCi0JbW92bAklcjEwZCwwKCVyZGkpCi0JbW92cQklcjgsJXJieAotCS5ieXRlCTB4ZjMsMHhjMwotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2VjL3AyNTYteDg2XzY0LWFzbS5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL2VjL3AyNTYteDg2XzY0LWFzbS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjZDBjYzMKLS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLlMKQEAgLTAsMCArMSwxNzg4IEBACisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorLnRleHQJCisKKworCisucDJhbGlnbgk2CitMJHBvbHk6CisucXVhZAkweGZmZmZmZmZmZmZmZmZmZmYsIDB4MDAwMDAwMDBmZmZmZmZmZiwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweGZmZmZmZmZmMDAwMDAwMDEKKworTCRPbmU6CisubG9uZwkxLDEsMSwxLDEsMSwxLDEKK0wkVHdvOgorLmxvbmcJMiwyLDIsMiwyLDIsMiwyCitMJFRocmVlOgorLmxvbmcJMywzLDMsMywzLDMsMywzCitMJE9ORV9tb250OgorLnF1YWQJMHgwMDAwMDAwMDAwMDAwMDAxLCAweGZmZmZmZmZmMDAwMDAwMDAsIDB4ZmZmZmZmZmZmZmZmZmZmZiwgMHgwMDAwMDAwMGZmZmZmZmZlCisKKworLnAyYWxpZ24JNgorZWNwX25pc3R6MjU2X211bF9ieV8yOgorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisKKwltb3ZxCTAoJXJzaSksJXI4CisJbW92cQk4KCVyc2kpLCVyOQorCWFkZHEJJXI4LCVyOAorCW1vdnEJMTYoJXJzaSksJXIxMAorCWFkY3EJJXI5LCVyOQorCW1vdnEJMjQoJXJzaSksJXIxMQorCWxlYXEJTCRwb2x5KCVyaXApLCVyc2kKKwltb3ZxCSVyOCwlcmF4CisJYWRjcQklcjEwLCVyMTAKKwlhZGNxCSVyMTEsJXIxMQorCW1vdnEJJXI5LCVyZHgKKwlzYmJxCSVyMTMsJXIxMworCisJc3VicQkwKCVyc2kpLCVyOAorCW1vdnEJJXIxMCwlcmN4CisJc2JicQk4KCVyc2kpLCVyOQorCXNiYnEJMTYoJXJzaSksJXIxMAorCW1vdnEJJXIxMSwlcjEyCisJc2JicQkyNCglcnNpKSwlcjExCisJdGVzdHEJJXIxMywlcjEzCisKKwljbW92enEJJXJheCwlcjgKKwljbW92enEJJXJkeCwlcjkKKwltb3ZxCSVyOCwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXIxMAorCW1vdnEJJXI5LDgoJXJkaSkKKwljbW92enEJJXIxMiwlcjExCisJbW92cQklcjEwLDE2KCVyZGkpCisJbW92cQklcjExLDI0KCVyZGkpCisKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKworLmdsb2JsCV9lY3BfbmlzdHoyNTZfbmVnCisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9uZWcKKworLnAyYWxpZ24JNQorX2VjcF9uaXN0ejI1Nl9uZWc6CisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKworCXhvcnEJJXI4LCVyOAorCXhvcnEJJXI5LCVyOQorCXhvcnEJJXIxMCwlcjEwCisJeG9ycQklcjExLCVyMTEKKwl4b3JxCSVyMTMsJXIxMworCisJc3VicQkwKCVyc2kpLCVyOAorCXNiYnEJOCglcnNpKSwlcjkKKwlzYmJxCTE2KCVyc2kpLCVyMTAKKwltb3ZxCSVyOCwlcmF4CisJc2JicQkyNCglcnNpKSwlcjExCisJbGVhcQlMJHBvbHkoJXJpcCksJXJzaQorCW1vdnEJJXI5LCVyZHgKKwlzYmJxCSQwLCVyMTMKKworCWFkZHEJMCglcnNpKSwlcjgKKwltb3ZxCSVyMTAsJXJjeAorCWFkY3EJOCglcnNpKSwlcjkKKwlhZGNxCTE2KCVyc2kpLCVyMTAKKwltb3ZxCSVyMTEsJXIxMgorCWFkY3EJMjQoJXJzaSksJXIxMQorCXRlc3RxCSVyMTMsJXIxMworCisJY21vdnpxCSVyYXgsJXI4CisJY21vdnpxCSVyZHgsJXI5CisJbW92cQklcjgsMCglcmRpKQorCWNtb3Z6cQklcmN4LCVyMTAKKwltb3ZxCSVyOSw4KCVyZGkpCisJY21vdnpxCSVyMTIsJXIxMQorCW1vdnEJJXIxMCwxNiglcmRpKQorCW1vdnEJJXIxMSwyNCglcmRpKQorCisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJLmJ5dGUJMHhmMywweGMzCisKKworCisKKworCisKKy5nbG9ibAlfZWNwX25pc3R6MjU2X211bF9tb250CisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9tdWxfbW9udAorCisucDJhbGlnbgk1CitfZWNwX25pc3R6MjU2X211bF9tb250OgorTCRtdWxfbW9udDoKKwlwdXNocQklcmJwCisJcHVzaHEJJXJieAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCXB1c2hxCSVyMTUKKwltb3ZxCSVyZHgsJXJieAorCW1vdnEJMCglcmR4KSwlcmF4CisJbW92cQkwKCVyc2kpLCVyOQorCW1vdnEJOCglcnNpKSwlcjEwCisJbW92cQkxNiglcnNpKSwlcjExCisJbW92cQkyNCglcnNpKSwlcjEyCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorTCRtdWxfbW9udF9kb25lOgorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJieAorCXBvcHEJJXJicAorCS5ieXRlCTB4ZjMsMHhjMworCisKKworLnAyYWxpZ24JNQorX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxOgorCisKKwltb3ZxCSVyYXgsJXJicAorCW11bHEJJXI5CisJbW92cQlMJHBvbHkrOCglcmlwKSwlcjE0CisJbW92cQklcmF4LCVyOAorCW1vdnEJJXJicCwlcmF4CisJbW92cQklcmR4LCVyOQorCisJbXVscQklcjEwCisJbW92cQlMJHBvbHkrMjQoJXJpcCksJXIxNQorCWFkZHEJJXJheCwlcjkKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcjEwCisKKwltdWxxCSVyMTEKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyMTEKKworCW11bHEJJXIxMgorCWFkZHEJJXJheCwlcjExCisJbW92cQklcjgsJXJheAorCWFkY3EJJDAsJXJkeAorCXhvcnEJJXIxMywlcjEzCisJbW92cQklcmR4LCVyMTIKKworCisKKworCisKKworCisKKworCW1vdnEJJXI4LCVyYnAKKwlzaGxxCSQzMiwlcjgKKwltdWxxCSVyMTUKKwlzaHJxCSQzMiwlcmJwCisJYWRkcQklcjgsJXI5CisJYWRjcQklcmJwLCVyMTAKKwlhZGNxCSVyYXgsJXIxMQorCW1vdnEJOCglcmJ4KSwlcmF4CisJYWRjcQklcmR4LCVyMTIKKwlhZGNxCSQwLCVyMTMKKwl4b3JxCSVyOCwlcjgKKworCisKKwltb3ZxCSVyYXgsJXJicAorCW11bHEJMCglcnNpKQorCWFkZHEJJXJheCwlcjkKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTgoJXJzaSkKKwlhZGRxCSVyY3gsJXIxMAorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjEwCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQkxNiglcnNpKQorCWFkZHEJJXJjeCwlcjExCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTEKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTI0KCVyc2kpCisJYWRkcQklcmN4LCVyMTIKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYXgsJXIxMgorCW1vdnEJJXI5LCVyYXgKKwlhZGNxCSVyZHgsJXIxMworCWFkY3EJJDAsJXI4CisKKworCisJbW92cQklcjksJXJicAorCXNobHEJJDMyLCVyOQorCW11bHEJJXIxNQorCXNocnEJJDMyLCVyYnAKKwlhZGRxCSVyOSwlcjEwCisJYWRjcQklcmJwLCVyMTEKKwlhZGNxCSVyYXgsJXIxMgorCW1vdnEJMTYoJXJieCksJXJheAorCWFkY3EJJXJkeCwlcjEzCisJYWRjcQkkMCwlcjgKKwl4b3JxCSVyOSwlcjkKKworCisKKwltb3ZxCSVyYXgsJXJicAorCW11bHEJMCglcnNpKQorCWFkZHEJJXJheCwlcjEwCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQk4KCVyc2kpCisJYWRkcQklcmN4LCVyMTEKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYXgsJXIxMQorCW1vdnEJJXJicCwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJMTYoJXJzaSkKKwlhZGRxCSVyY3gsJXIxMgorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjEyCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQkyNCglcnNpKQorCWFkZHEJJXJjeCwlcjEzCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTMKKwltb3ZxCSVyMTAsJXJheAorCWFkY3EJJXJkeCwlcjgKKwlhZGNxCSQwLCVyOQorCisKKworCW1vdnEJJXIxMCwlcmJwCisJc2hscQkkMzIsJXIxMAorCW11bHEJJXIxNQorCXNocnEJJDMyLCVyYnAKKwlhZGRxCSVyMTAsJXIxMQorCWFkY3EJJXJicCwlcjEyCisJYWRjcQklcmF4LCVyMTMKKwltb3ZxCTI0KCVyYngpLCVyYXgKKwlhZGNxCSVyZHgsJXI4CisJYWRjcQkkMCwlcjkKKwl4b3JxCSVyMTAsJXIxMAorCisKKworCW1vdnEJJXJheCwlcmJwCisJbXVscQkwKCVyc2kpCisJYWRkcQklcmF4LCVyMTEKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTgoJXJzaSkKKwlhZGRxCSVyY3gsJXIxMgorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjEyCisJbW92cQklcmJwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQkxNiglcnNpKQorCWFkZHEJJXJjeCwlcjEzCisJYWRjcQkkMCwlcmR4CisJYWRkcQklcmF4LCVyMTMKKwltb3ZxCSVyYnAsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmN4CisKKwltdWxxCTI0KCVyc2kpCisJYWRkcQklcmN4LCVyOAorCWFkY3EJJDAsJXJkeAorCWFkZHEJJXJheCwlcjgKKwltb3ZxCSVyMTEsJXJheAorCWFkY3EJJXJkeCwlcjkKKwlhZGNxCSQwLCVyMTAKKworCisKKwltb3ZxCSVyMTEsJXJicAorCXNobHEJJDMyLCVyMTEKKwltdWxxCSVyMTUKKwlzaHJxCSQzMiwlcmJwCisJYWRkcQklcjExLCVyMTIKKwlhZGNxCSVyYnAsJXIxMworCW1vdnEJJXIxMiwlcmN4CisJYWRjcQklcmF4LCVyOAorCWFkY3EJJXJkeCwlcjkKKwltb3ZxCSVyMTMsJXJicAorCWFkY3EJJDAsJXIxMAorCisKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyOCwlcmJ4CisJc2JicQklcjE0LCVyMTMKKwlzYmJxCSQwLCVyOAorCW1vdnEJJXI5LCVyZHgKKwlzYmJxCSVyMTUsJXI5CisJc2JicQkkMCwlcjEwCisKKwljbW92Y3EJJXJjeCwlcjEyCisJY21vdmNxCSVyYnAsJXIxMworCW1vdnEJJXIxMiwwKCVyZGkpCisJY21vdmNxCSVyYngsJXI4CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92Y3EJJXJkeCwlcjkKKwltb3ZxCSVyOCwxNiglcmRpKQorCW1vdnEJJXI5LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKworCisKKworCisKKy5nbG9ibAlfZWNwX25pc3R6MjU2X3Nxcl9tb250CisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9zcXJfbW9udAorCisucDJhbGlnbgk1CitfZWNwX25pc3R6MjU2X3Nxcl9tb250OgorCXB1c2hxCSVyYnAKKwlwdXNocQklcmJ4CisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKwlwdXNocQklcjE0CisJcHVzaHEJJXIxNQorCW1vdnEJMCglcnNpKSwlcmF4CisJbW92cQk4KCVyc2kpLCVyMTQKKwltb3ZxCTE2KCVyc2kpLCVyMTUKKwltb3ZxCTI0KCVyc2kpLCVyOAorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKK0wkc3FyX21vbnRfZG9uZToKKwlwb3BxCSVyMTUKKwlwb3BxCSVyMTQKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwlwb3BxCSVyYngKKwlwb3BxCSVyYnAKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKy5wMmFsaWduCTUKK19fZWNwX25pc3R6MjU2X3Nxcl9tb250cToKKwltb3ZxCSVyYXgsJXIxMworCW11bHEJJXIxNAorCW1vdnEJJXJheCwlcjkKKwltb3ZxCSVyMTUsJXJheAorCW1vdnEJJXJkeCwlcjEwCisKKwltdWxxCSVyMTMKKwlhZGRxCSVyYXgsJXIxMAorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXIxMQorCisJbXVscQklcjEzCisJYWRkcQklcmF4LCVyMTEKKwltb3ZxCSVyMTUsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcjEyCisKKworCW11bHEJJXIxNAorCWFkZHEJJXJheCwlcjExCisJbW92cQklcjgsJXJheAorCWFkY3EJJDAsJXJkeAorCW1vdnEJJXJkeCwlcmJwCisKKwltdWxxCSVyMTQKKwlhZGRxCSVyYXgsJXIxMgorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSQwLCVyZHgKKwlhZGRxCSVyYnAsJXIxMgorCW1vdnEJJXJkeCwlcjEzCisJYWRjcQkkMCwlcjEzCisKKworCW11bHEJJXIxNQorCXhvcnEJJXIxNSwlcjE1CisJYWRkcQklcmF4LCVyMTMKKwltb3ZxCTAoJXJzaSksJXJheAorCW1vdnEJJXJkeCwlcjE0CisJYWRjcQkkMCwlcjE0CisKKwlhZGRxCSVyOSwlcjkKKwlhZGNxCSVyMTAsJXIxMAorCWFkY3EJJXIxMSwlcjExCisJYWRjcQklcjEyLCVyMTIKKwlhZGNxCSVyMTMsJXIxMworCWFkY3EJJXIxNCwlcjE0CisJYWRjcQkkMCwlcjE1CisKKwltdWxxCSVyYXgKKwltb3ZxCSVyYXgsJXI4CisJbW92cQk4KCVyc2kpLCVyYXgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQklcmF4CisJYWRkcQklcmN4LCVyOQorCWFkY3EJJXJheCwlcjEwCisJbW92cQkxNiglcnNpKSwlcmF4CisJYWRjcQkkMCwlcmR4CisJbW92cQklcmR4LCVyY3gKKworCW11bHEJJXJheAorCWFkZHEJJXJjeCwlcjExCisJYWRjcQklcmF4LCVyMTIKKwltb3ZxCTI0KCVyc2kpLCVyYXgKKwlhZGNxCSQwLCVyZHgKKwltb3ZxCSVyZHgsJXJjeAorCisJbXVscQklcmF4CisJYWRkcQklcmN4LCVyMTMKKwlhZGNxCSVyYXgsJXIxNAorCW1vdnEJJXI4LCVyYXgKKwlhZGNxCSVyZHgsJXIxNQorCisJbW92cQlMJHBvbHkrOCglcmlwKSwlcnNpCisJbW92cQlMJHBvbHkrMjQoJXJpcCksJXJicAorCisKKworCisJbW92cQklcjgsJXJjeAorCXNobHEJJDMyLCVyOAorCW11bHEJJXJicAorCXNocnEJJDMyLCVyY3gKKwlhZGRxCSVyOCwlcjkKKwlhZGNxCSVyY3gsJXIxMAorCWFkY3EJJXJheCwlcjExCisJbW92cQklcjksJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXI5LCVyY3gKKwlzaGxxCSQzMiwlcjkKKwltb3ZxCSVyZHgsJXI4CisJbXVscQklcmJwCisJc2hycQkkMzIsJXJjeAorCWFkZHEJJXI5LCVyMTAKKwlhZGNxCSVyY3gsJXIxMQorCWFkY3EJJXJheCwlcjgKKwltb3ZxCSVyMTAsJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXIxMCwlcmN4CisJc2hscQkkMzIsJXIxMAorCW1vdnEJJXJkeCwlcjkKKwltdWxxCSVyYnAKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjEwLCVyMTEKKwlhZGNxCSVyY3gsJXI4CisJYWRjcQklcmF4LCVyOQorCW1vdnEJJXIxMSwlcmF4CisJYWRjcQkkMCwlcmR4CisKKworCisJbW92cQklcjExLCVyY3gKKwlzaGxxCSQzMiwlcjExCisJbW92cQklcmR4LCVyMTAKKwltdWxxCSVyYnAKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjExLCVyOAorCWFkY3EJJXJjeCwlcjkKKwlhZGNxCSVyYXgsJXIxMAorCWFkY3EJJDAsJXJkeAorCXhvcnEJJXIxMSwlcjExCisKKworCisJYWRkcQklcjgsJXIxMgorCWFkY3EJJXI5LCVyMTMKKwltb3ZxCSVyMTIsJXI4CisJYWRjcQklcjEwLCVyMTQKKwlhZGNxCSVyZHgsJXIxNQorCW1vdnEJJXIxMywlcjkKKwlhZGNxCSQwLCVyMTEKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyMTQsJXIxMAorCXNiYnEJJXJzaSwlcjEzCisJc2JicQkkMCwlcjE0CisJbW92cQklcjE1LCVyY3gKKwlzYmJxCSVyYnAsJXIxNQorCXNiYnEJJDAsJXIxMQorCisJY21vdmNxCSVyOCwlcjEyCisJY21vdmNxCSVyOSwlcjEzCisJbW92cQklcjEyLDAoJXJkaSkKKwljbW92Y3EJJXIxMCwlcjE0CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92Y3EJJXJjeCwlcjE1CisJbW92cQklcjE0LDE2KCVyZGkpCisJbW92cQklcjE1LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKworCisKKworLmdsb2JsCV9lY3BfbmlzdHoyNTZfZnJvbV9tb250CisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9mcm9tX21vbnQKKworLnAyYWxpZ24JNQorX2VjcF9uaXN0ejI1Nl9mcm9tX21vbnQ6CisJcHVzaHEJJXIxMgorCXB1c2hxCSVyMTMKKworCW1vdnEJMCglcnNpKSwlcmF4CisJbW92cQlMJHBvbHkrMjQoJXJpcCksJXIxMworCW1vdnEJOCglcnNpKSwlcjkKKwltb3ZxCTE2KCVyc2kpLCVyMTAKKwltb3ZxCTI0KCVyc2kpLCVyMTEKKwltb3ZxCSVyYXgsJXI4CisJbW92cQlMJHBvbHkrOCglcmlwKSwlcjEyCisKKworCisJbW92cQklcmF4LCVyY3gKKwlzaGxxCSQzMiwlcjgKKwltdWxxCSVyMTMKKwlzaHJxCSQzMiwlcmN4CisJYWRkcQklcjgsJXI5CisJYWRjcQklcmN4LCVyMTAKKwlhZGNxCSVyYXgsJXIxMQorCW1vdnEJJXI5LCVyYXgKKwlhZGNxCSQwLCVyZHgKKworCisKKwltb3ZxCSVyOSwlcmN4CisJc2hscQkkMzIsJXI5CisJbW92cQklcmR4LCVyOAorCW11bHEJJXIxMworCXNocnEJJDMyLCVyY3gKKwlhZGRxCSVyOSwlcjEwCisJYWRjcQklcmN4LCVyMTEKKwlhZGNxCSVyYXgsJXI4CisJbW92cQklcjEwLCVyYXgKKwlhZGNxCSQwLCVyZHgKKworCisKKwltb3ZxCSVyMTAsJXJjeAorCXNobHEJJDMyLCVyMTAKKwltb3ZxCSVyZHgsJXI5CisJbXVscQklcjEzCisJc2hycQkkMzIsJXJjeAorCWFkZHEJJXIxMCwlcjExCisJYWRjcQklcmN4LCVyOAorCWFkY3EJJXJheCwlcjkKKwltb3ZxCSVyMTEsJXJheAorCWFkY3EJJDAsJXJkeAorCisKKworCW1vdnEJJXIxMSwlcmN4CisJc2hscQkkMzIsJXIxMQorCW1vdnEJJXJkeCwlcjEwCisJbXVscQklcjEzCisJc2hycQkkMzIsJXJjeAorCWFkZHEJJXIxMSwlcjgKKwlhZGNxCSVyY3gsJXI5CisJbW92cQklcjgsJXJjeAorCWFkY3EJJXJheCwlcjEwCisJbW92cQklcjksJXJzaQorCWFkY3EJJDAsJXJkeAorCisJc3VicQkkLTEsJXI4CisJbW92cQklcjEwLCVyYXgKKwlzYmJxCSVyMTIsJXI5CisJc2JicQkkMCwlcjEwCisJbW92cQklcmR4LCVyMTEKKwlzYmJxCSVyMTMsJXJkeAorCXNiYnEJJXIxMywlcjEzCisKKwljbW92bnpxCSVyY3gsJXI4CisJY21vdm56cQklcnNpLCVyOQorCW1vdnEJJXI4LDAoJXJkaSkKKwljbW92bnpxCSVyYXgsJXIxMAorCW1vdnEJJXI5LDgoJXJkaSkKKwljbW92enEJJXJkeCwlcjExCisJbW92cQklcjEwLDE2KCVyZGkpCisJbW92cQklcjExLDI0KCVyZGkpCisKKwlwb3BxCSVyMTMKKwlwb3BxCSVyMTIKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKy5nbG9ibAlfZWNwX25pc3R6MjU2X3NlbGVjdF93NQorLnByaXZhdGVfZXh0ZXJuIF9lY3BfbmlzdHoyNTZfc2VsZWN0X3c1CisKKy5wMmFsaWduCTUKK19lY3BfbmlzdHoyNTZfc2VsZWN0X3c1OgorCW1vdmRxYQlMJE9uZSglcmlwKSwleG1tMAorCW1vdmQJJWVkeCwleG1tMQorCisJcHhvcgkleG1tMiwleG1tMgorCXB4b3IJJXhtbTMsJXhtbTMKKwlweG9yCSV4bW00LCV4bW00CisJcHhvcgkleG1tNSwleG1tNQorCXB4b3IJJXhtbTYsJXhtbTYKKwlweG9yCSV4bW03LCV4bW03CisKKwltb3ZkcWEJJXhtbTAsJXhtbTgKKwlwc2h1ZmQJJDAsJXhtbTEsJXhtbTEKKworCW1vdnEJJDE2LCVyYXgKK0wkc2VsZWN0X2xvb3Bfc3NlX3c1OgorCisJbW92ZHFhCSV4bW04LCV4bW0xNQorCXBhZGRkCSV4bW0wLCV4bW04CisJcGNtcGVxZAkleG1tMSwleG1tMTUKKworCW1vdmRxYQkwKCVyc2kpLCV4bW05CisJbW92ZHFhCTE2KCVyc2kpLCV4bW0xMAorCW1vdmRxYQkzMiglcnNpKSwleG1tMTEKKwltb3ZkcWEJNDgoJXJzaSksJXhtbTEyCisJbW92ZHFhCTY0KCVyc2kpLCV4bW0xMworCW1vdmRxYQk4MCglcnNpKSwleG1tMTQKKwlsZWFxCTk2KCVyc2kpLCVyc2kKKworCXBhbmQJJXhtbTE1LCV4bW05CisJcGFuZAkleG1tMTUsJXhtbTEwCisJcG9yCSV4bW05LCV4bW0yCisJcGFuZAkleG1tMTUsJXhtbTExCisJcG9yCSV4bW0xMCwleG1tMworCXBhbmQJJXhtbTE1LCV4bW0xMgorCXBvcgkleG1tMTEsJXhtbTQKKwlwYW5kCSV4bW0xNSwleG1tMTMKKwlwb3IJJXhtbTEyLCV4bW01CisJcGFuZAkleG1tMTUsJXhtbTE0CisJcG9yCSV4bW0xMywleG1tNgorCXBvcgkleG1tMTQsJXhtbTcKKworCWRlY3EJJXJheAorCWpueglMJHNlbGVjdF9sb29wX3NzZV93NQorCisJbW92ZHF1CSV4bW0yLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTMsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTQsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTUsNDgoJXJkaSkKKwltb3ZkcXUJJXhtbTYsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTcsODAoJXJkaSkKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKworLmdsb2JsCV9lY3BfbmlzdHoyNTZfc2VsZWN0X3c3CisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9zZWxlY3RfdzcKKworLnAyYWxpZ24JNQorX2VjcF9uaXN0ejI1Nl9zZWxlY3Rfdzc6CisJbW92ZHFhCUwkT25lKCVyaXApLCV4bW04CisJbW92ZAklZWR4LCV4bW0xCisKKwlweG9yCSV4bW0yLCV4bW0yCisJcHhvcgkleG1tMywleG1tMworCXB4b3IJJXhtbTQsJXhtbTQKKwlweG9yCSV4bW01LCV4bW01CisKKwltb3ZkcWEJJXhtbTgsJXhtbTAKKwlwc2h1ZmQJJDAsJXhtbTEsJXhtbTEKKwltb3ZxCSQ2NCwlcmF4CisKK0wkc2VsZWN0X2xvb3Bfc3NlX3c3OgorCW1vdmRxYQkleG1tOCwleG1tMTUKKwlwYWRkZAkleG1tMCwleG1tOAorCW1vdmRxYQkwKCVyc2kpLCV4bW05CisJbW92ZHFhCTE2KCVyc2kpLCV4bW0xMAorCXBjbXBlcWQJJXhtbTEsJXhtbTE1CisJbW92ZHFhCTMyKCVyc2kpLCV4bW0xMQorCW1vdmRxYQk0OCglcnNpKSwleG1tMTIKKwlsZWFxCTY0KCVyc2kpLCVyc2kKKworCXBhbmQJJXhtbTE1LCV4bW05CisJcGFuZAkleG1tMTUsJXhtbTEwCisJcG9yCSV4bW05LCV4bW0yCisJcGFuZAkleG1tMTUsJXhtbTExCisJcG9yCSV4bW0xMCwleG1tMworCXBhbmQJJXhtbTE1LCV4bW0xMgorCXBvcgkleG1tMTEsJXhtbTQKKwlwcmVmZXRjaHQwCTI1NSglcnNpKQorCXBvcgkleG1tMTIsJXhtbTUKKworCWRlY3EJJXJheAorCWpueglMJHNlbGVjdF9sb29wX3NzZV93NworCisJbW92ZHF1CSV4bW0yLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTMsMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTQsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTUsNDgoJXJkaSkKKwkuYnl0ZQkweGYzLDB4YzMKKworLmdsb2JsCV9lY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3RfdzcKKy5wcml2YXRlX2V4dGVybiBfZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3CisKKy5wMmFsaWduCTUKK19lY3BfbmlzdHoyNTZfYXZ4Ml9zZWxlY3Rfdzc6CisuYnl0ZQkweDBmLDB4MGIKKwkuYnl0ZQkweGYzLDB4YzMKKworCisucDJhbGlnbgk1CitfX2VjcF9uaXN0ejI1Nl9hZGRfdG9xOgorCWFkZHEJMCglcmJ4KSwlcjEyCisJYWRjcQk4KCVyYngpLCVyMTMKKwltb3ZxCSVyMTIsJXJheAorCWFkY3EJMTYoJXJieCksJXI4CisJYWRjcQkyNCglcmJ4KSwlcjkKKwltb3ZxCSVyMTMsJXJicAorCXNiYnEJJXIxMSwlcjExCisKKwlzdWJxCSQtMSwlcjEyCisJbW92cQklcjgsJXJjeAorCXNiYnEJJXIxNCwlcjEzCisJc2JicQkkMCwlcjgKKwltb3ZxCSVyOSwlcjEwCisJc2JicQklcjE1LCVyOQorCXRlc3RxCSVyMTEsJXIxMQorCisJY21vdnpxCSVyYXgsJXIxMgorCWNtb3Z6cQklcmJwLCVyMTMKKwltb3ZxCSVyMTIsMCglcmRpKQorCWNtb3Z6cQklcmN4LCVyOAorCW1vdnEJJXIxMyw4KCVyZGkpCisJY21vdnpxCSVyMTAsJXI5CisJbW92cQklcjgsMTYoJXJkaSkKKwltb3ZxCSVyOSwyNCglcmRpKQorCisJLmJ5dGUJMHhmMywweGMzCisKKworCisucDJhbGlnbgk1CitfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXE6CisJc3VicQkwKCVyYngpLCVyMTIKKwlzYmJxCTgoJXJieCksJXIxMworCW1vdnEJJXIxMiwlcmF4CisJc2JicQkxNiglcmJ4KSwlcjgKKwlzYmJxCTI0KCVyYngpLCVyOQorCW1vdnEJJXIxMywlcmJwCisJc2JicQklcjExLCVyMTEKKworCWFkZHEJJC0xLCVyMTIKKwltb3ZxCSVyOCwlcmN4CisJYWRjcQklcjE0LCVyMTMKKwlhZGNxCSQwLCVyOAorCW1vdnEJJXI5LCVyMTAKKwlhZGNxCSVyMTUsJXI5CisJdGVzdHEJJXIxMSwlcjExCisKKwljbW92enEJJXJheCwlcjEyCisJY21vdnpxCSVyYnAsJXIxMworCW1vdnEJJXIxMiwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXI4CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92enEJJXIxMCwlcjkKKwltb3ZxCSVyOCwxNiglcmRpKQorCW1vdnEJJXI5LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKworCisKKy5wMmFsaWduCTUKK19fZWNwX25pc3R6MjU2X3N1YnE6CisJc3VicQklcjEyLCVyYXgKKwlzYmJxCSVyMTMsJXJicAorCW1vdnEJJXJheCwlcjEyCisJc2JicQklcjgsJXJjeAorCXNiYnEJJXI5LCVyMTAKKwltb3ZxCSVyYnAsJXIxMworCXNiYnEJJXIxMSwlcjExCisKKwlhZGRxCSQtMSwlcmF4CisJbW92cQklcmN4LCVyOAorCWFkY3EJJXIxNCwlcmJwCisJYWRjcQkkMCwlcmN4CisJbW92cQklcjEwLCVyOQorCWFkY3EJJXIxNSwlcjEwCisJdGVzdHEJJXIxMSwlcjExCisKKwljbW92bnpxCSVyYXgsJXIxMgorCWNtb3ZuenEJJXJicCwlcjEzCisJY21vdm56cQklcmN4LCVyOAorCWNtb3ZuenEJJXIxMCwlcjkKKworCS5ieXRlCTB4ZjMsMHhjMworCisKKworLnAyYWxpZ24JNQorX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxOgorCWFkZHEJJXIxMiwlcjEyCisJYWRjcQklcjEzLCVyMTMKKwltb3ZxCSVyMTIsJXJheAorCWFkY3EJJXI4LCVyOAorCWFkY3EJJXI5LCVyOQorCW1vdnEJJXIxMywlcmJwCisJc2JicQklcjExLCVyMTEKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyOCwlcmN4CisJc2JicQklcjE0LCVyMTMKKwlzYmJxCSQwLCVyOAorCW1vdnEJJXI5LCVyMTAKKwlzYmJxCSVyMTUsJXI5CisJdGVzdHEJJXIxMSwlcjExCisKKwljbW92enEJJXJheCwlcjEyCisJY21vdnpxCSVyYnAsJXIxMworCW1vdnEJJXIxMiwwKCVyZGkpCisJY21vdnpxCSVyY3gsJXI4CisJbW92cQklcjEzLDgoJXJkaSkKKwljbW92enEJJXIxMCwlcjkKKwltb3ZxCSVyOCwxNiglcmRpKQorCW1vdnEJJXI5LDI0KCVyZGkpCisKKwkuYnl0ZQkweGYzLDB4YzMKKworLmdsb2JsCV9lY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlCisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGUKKworLnAyYWxpZ24JNQorX2VjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGU6CisJcHVzaHEJJXJicAorCXB1c2hxCSVyYngKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJc3VicQkkMTYwKzgsJXJzcAorCitMJHBvaW50X2RvdWJsZV9zaG9ydGN1dHE6CisJbW92ZHF1CTAoJXJzaSksJXhtbTAKKwltb3ZxCSVyc2ksJXJieAorCW1vdmRxdQkxNiglcnNpKSwleG1tMQorCW1vdnEJMzIrMCglcnNpKSwlcjEyCisJbW92cQkzMis4KCVyc2kpLCVyMTMKKwltb3ZxCTMyKzE2KCVyc2kpLCVyOAorCW1vdnEJMzIrMjQoJXJzaSksJXI5CisJbW92cQlMJHBvbHkrOCglcmlwKSwlcjE0CisJbW92cQlMJHBvbHkrMjQoJXJpcCksJXIxNQorCW1vdmRxYQkleG1tMCw5NiglcnNwKQorCW1vdmRxYQkleG1tMSw5NisxNiglcnNwKQorCWxlYXEJMzIoJXJkaSksJXIxMAorCWxlYXEJNjQoJXJkaSksJXIxMQorLmJ5dGUJMTAyLDcyLDE1LDExMCwxOTkKKy5ieXRlCTEwMiw3MywxNSwxMTAsMjAyCisuYnl0ZQkxMDIsNzMsMTUsMTEwLDIxMQorCisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9ieV8ycQorCisJbW92cQk2NCswKCVyc2kpLCVyYXgKKwltb3ZxCTY0KzgoJXJzaSksJXIxNAorCW1vdnEJNjQrMTYoJXJzaSksJXIxNQorCW1vdnEJNjQrMjQoJXJzaSksJXI4CisJbGVhcQk2NC0wKCVyc2kpLCVyc2kKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQkwKzAoJXJzcCksJXJheAorCW1vdnEJOCswKCVyc3ApLCVyMTQKKwlsZWFxCTArMCglcnNwKSwlcnNpCisJbW92cQkxNiswKCVyc3ApLCVyMTUKKwltb3ZxCTI0KzAoJXJzcCksJXI4CisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQkzMiglcmJ4KSwlcmF4CisJbW92cQk2NCswKCVyYngpLCVyOQorCW1vdnEJNjQrOCglcmJ4KSwlcjEwCisJbW92cQk2NCsxNiglcmJ4KSwlcjExCisJbW92cQk2NCsyNCglcmJ4KSwlcjEyCisJbGVhcQk2NC0wKCVyYngpLCVyc2kKKwlsZWFxCTMyKCVyYngpLCVyYngKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMjE1CisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9ieV8ycQorCisJbW92cQk5NiswKCVyc3ApLCVyMTIKKwltb3ZxCTk2KzgoJXJzcCksJXIxMworCWxlYXEJNjQoJXJzcCksJXJieAorCW1vdnEJOTYrMTYoJXJzcCksJXI4CisJbW92cQk5NisyNCglcnNwKSwlcjkKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X2FkZF90b3EKKworCW1vdnEJOTYrMCglcnNwKSwlcjEyCisJbW92cQk5Nis4KCVyc3ApLCVyMTMKKwlsZWFxCTY0KCVyc3ApLCVyYngKKwltb3ZxCTk2KzE2KCVyc3ApLCVyOAorCW1vdnEJOTYrMjQoJXJzcCksJXI5CisJbGVhcQk2NCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCW1vdnEJMCswKCVyc3ApLCVyYXgKKwltb3ZxCTgrMCglcnNwKSwlcjE0CisJbGVhcQkwKzAoJXJzcCksJXJzaQorCW1vdnEJMTYrMCglcnNwKSwlcjE1CisJbW92cQkyNCswKCVyc3ApLCVyOAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCXhvcnEJJXI5LCVyOQorCW1vdnEJJXIxMiwlcmF4CisJYWRkcQkkLTEsJXIxMgorCW1vdnEJJXIxMywlcjEwCisJYWRjcQklcnNpLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCWFkY3EJJDAsJXIxNAorCW1vdnEJJXIxNSwlcjgKKwlhZGNxCSVyYnAsJXIxNQorCWFkY3EJJDAsJXI5CisJeG9ycQklcnNpLCVyc2kKKwl0ZXN0cQkkMSwlcmF4CisKKwljbW92enEJJXJheCwlcjEyCisJY21vdnpxCSVyMTAsJXIxMworCWNtb3Z6cQklcmN4LCVyMTQKKwljbW92enEJJXI4LCVyMTUKKwljbW92enEJJXJzaSwlcjkKKworCW1vdnEJJXIxMywlcmF4CisJc2hycQkkMSwlcjEyCisJc2hscQkkNjMsJXJheAorCW1vdnEJJXIxNCwlcjEwCisJc2hycQkkMSwlcjEzCisJb3JxCSVyYXgsJXIxMgorCXNobHEJJDYzLCVyMTAKKwltb3ZxCSVyMTUsJXJjeAorCXNocnEJJDEsJXIxNAorCW9ycQklcjEwLCVyMTMKKwlzaGxxCSQ2MywlcmN4CisJbW92cQklcjEyLDAoJXJkaSkKKwlzaHJxCSQxLCVyMTUKKwltb3ZxCSVyMTMsOCglcmRpKQorCXNobHEJJDYzLCVyOQorCW9ycQklcmN4LCVyMTQKKwlvcnEJJXI5LCVyMTUKKwltb3ZxCSVyMTQsMTYoJXJkaSkKKwltb3ZxCSVyMTUsMjQoJXJkaSkKKwltb3ZxCTY0KCVyc3ApLCVyYXgKKwlsZWFxCTY0KCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTEyOCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKKworCWxlYXEJMzIoJXJzcCksJXJieAorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfYWRkX3RvcQorCisJbW92cQk5NiglcnNwKSwlcmF4CisJbGVhcQk5NiglcnNwKSwlcmJ4CisJbW92cQkwKzAoJXJzcCksJXI5CisJbW92cQk4KzAoJXJzcCksJXIxMAorCWxlYXEJMCswKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzAoJXJzcCksJXIxMQorCW1vdnEJMjQrMCglcnNwKSwlcjEyCisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbGVhcQkxMjgoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxCisKKwltb3ZxCTArMzIoJXJzcCksJXJheAorCW1vdnEJOCszMiglcnNwKSwlcjE0CisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTUKKwltb3ZxCTI0KzMyKCVyc3ApLCVyOAorLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbGVhcQkxMjgoJXJzcCksJXJieAorCW1vdnEJJXIxNCwlcjgKKwltb3ZxCSVyMTUsJXI5CisJbW92cQklcnNpLCVyMTQKKwltb3ZxCSVyYnAsJXIxNQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTArMCglcnNwKSwlcmF4CisJbW92cQkwKzgoJXJzcCksJXJicAorCW1vdnEJMCsxNiglcnNwKSwlcmN4CisJbW92cQkwKzI0KCVyc3ApLCVyMTAKKwlsZWFxCTAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbW92cQkzMiglcnNwKSwlcmF4CisJbGVhcQkzMiglcnNwKSwlcmJ4CisJbW92cQklcjEyLCVyMTQKKwl4b3JsCSVlY3gsJWVjeAorCW1vdnEJJXIxMiwwKzAoJXJzcCkKKwltb3ZxCSVyMTMsJXIxMAorCW1vdnEJJXIxMywwKzgoJXJzcCkKKwljbW92enEJJXI4LCVyMTEKKwltb3ZxCSVyOCwwKzE2KCVyc3ApCisJbGVhcQkwLTAoJXJzcCksJXJzaQorCWNtb3Z6cQklcjksJXIxMgorCW1vdnEJJXI5LDArMjQoJXJzcCkKKwltb3ZxCSVyMTQsJXI5CisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisuYnl0ZQkxMDIsNzIsMTUsMTI2LDIwMworLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDcKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJYWRkcQkkMTYwKzgsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJieAorCXBvcHEJJXJicAorCS5ieXRlCTB4ZjMsMHhjMworCisuZ2xvYmwJX2VjcF9uaXN0ejI1Nl9wb2ludF9hZGQKKy5wcml2YXRlX2V4dGVybiBfZWNwX25pc3R6MjU2X3BvaW50X2FkZAorCisucDJhbGlnbgk1CitfZWNwX25pc3R6MjU2X3BvaW50X2FkZDoKKwlwdXNocQklcmJwCisJcHVzaHEJJXJieAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCXB1c2hxCSVyMTUKKwlzdWJxCSQ1NzYrOCwlcnNwCisKKwltb3ZkcXUJMCglcnNpKSwleG1tMAorCW1vdmRxdQkxNiglcnNpKSwleG1tMQorCW1vdmRxdQkzMiglcnNpKSwleG1tMgorCW1vdmRxdQk0OCglcnNpKSwleG1tMworCW1vdmRxdQk2NCglcnNpKSwleG1tNAorCW1vdmRxdQk4MCglcnNpKSwleG1tNQorCW1vdnEJJXJzaSwlcmJ4CisJbW92cQklcmR4LCVyc2kKKwltb3ZkcWEJJXhtbTAsMzg0KCVyc3ApCisJbW92ZHFhCSV4bW0xLDM4NCsxNiglcnNwKQorCXBvcgkleG1tMCwleG1tMQorCW1vdmRxYQkleG1tMiw0MTYoJXJzcCkKKwltb3ZkcWEJJXhtbTMsNDE2KzE2KCVyc3ApCisJcG9yCSV4bW0yLCV4bW0zCisJbW92ZHFhCSV4bW00LDQ0OCglcnNwKQorCW1vdmRxYQkleG1tNSw0NDgrMTYoJXJzcCkKKwlwb3IJJXhtbTEsJXhtbTMKKworCW1vdmRxdQkwKCVyc2kpLCV4bW0wCisJcHNodWZkCSQweGIxLCV4bW0zLCV4bW01CisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJcG9yCSV4bW0zLCV4bW01CisJbW92ZHF1CTQ4KCVyc2kpLCV4bW0zCisJbW92cQk2NCswKCVyc2kpLCVyYXgKKwltb3ZxCTY0KzgoJXJzaSksJXIxNAorCW1vdnEJNjQrMTYoJXJzaSksJXIxNQorCW1vdnEJNjQrMjQoJXJzaSksJXI4CisJbW92ZHFhCSV4bW0wLDQ4MCglcnNwKQorCXBzaHVmZAkkMHgxZSwleG1tNSwleG1tNAorCW1vdmRxYQkleG1tMSw0ODArMTYoJXJzcCkKKwlwb3IJJXhtbTAsJXhtbTEKKy5ieXRlCTEwMiw3MiwxNSwxMTAsMTk5CisJbW92ZHFhCSV4bW0yLDUxMiglcnNwKQorCW1vdmRxYQkleG1tMyw1MTIrMTYoJXJzcCkKKwlwb3IJJXhtbTIsJXhtbTMKKwlwb3IJJXhtbTQsJXhtbTUKKwlweG9yCSV4bW00LCV4bW00CisJcG9yCSV4bW0xLCV4bW0zCisKKwlsZWFxCTY0LTAoJXJzaSksJXJzaQorCW1vdnEJJXJheCw1NDQrMCglcnNwKQorCW1vdnEJJXIxNCw1NDQrOCglcnNwKQorCW1vdnEJJXIxNSw1NDQrMTYoJXJzcCkKKwltb3ZxCSVyOCw1NDQrMjQoJXJzcCkKKwlsZWFxCTk2KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJcGNtcGVxZAkleG1tNCwleG1tNQorCXBzaHVmZAkkMHhiMSwleG1tMywleG1tNAorCXBvcgkleG1tMywleG1tNAorCXBzaHVmZAkkMCwleG1tNSwleG1tNQorCXBzaHVmZAkkMHgxZSwleG1tNCwleG1tMworCXBvcgkleG1tMywleG1tNAorCXB4b3IJJXhtbTMsJXhtbTMKKwlwY21wZXFkCSV4bW0zLCV4bW00CisJcHNodWZkCSQwLCV4bW00LCV4bW00CisJbW92cQk2NCswKCVyYngpLCVyYXgKKwltb3ZxCTY0KzgoJXJieCksJXIxNAorCW1vdnEJNjQrMTYoJXJieCksJXIxNQorCW1vdnEJNjQrMjQoJXJieCksJXI4CisuYnl0ZQkxMDIsNzIsMTUsMTEwLDIwMworCisJbGVhcQk2NC0wKCVyYngpLCVyc2kKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQk1NDQoJXJzcCksJXJheAorCWxlYXEJNTQ0KCVyc3ApLCVyYngKKwltb3ZxCTArOTYoJXJzcCksJXI5CisJbW92cQk4Kzk2KCVyc3ApLCVyMTAKKwlsZWFxCTArOTYoJXJzcCksJXJzaQorCW1vdnEJMTYrOTYoJXJzcCksJXIxMQorCW1vdnEJMjQrOTYoJXJzcCksJXIxMgorCWxlYXEJMjI0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92cQk0NDgoJXJzcCksJXJheAorCWxlYXEJNDQ4KCVyc3ApLCVyYngKKwltb3ZxCTArMzIoJXJzcCksJXI5CisJbW92cQk4KzMyKCVyc3ApLCVyMTAKKwlsZWFxCTArMzIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzIoJXJzcCksJXIxMQorCW1vdnEJMjQrMzIoJXJzcCksJXIxMgorCWxlYXEJMjU2KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92cQk0MTYoJXJzcCksJXJheAorCWxlYXEJNDE2KCVyc3ApLCVyYngKKwltb3ZxCTArMjI0KCVyc3ApLCVyOQorCW1vdnEJOCsyMjQoJXJzcCksJXIxMAorCWxlYXEJMCsyMjQoJXJzcCksJXJzaQorCW1vdnEJMTYrMjI0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzIyNCglcnNwKSwlcjEyCisJbGVhcQkyMjQoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTUxMiglcnNwKSwlcmF4CisJbGVhcQk1MTIoJXJzcCksJXJieAorCW1vdnEJMCsyNTYoJXJzcCksJXI5CisJbW92cQk4KzI1NiglcnNwKSwlcjEwCisJbGVhcQkwKzI1NiglcnNwKSwlcnNpCisJbW92cQkxNisyNTYoJXJzcCksJXIxMQorCW1vdnEJMjQrMjU2KCVyc3ApLCVyMTIKKwlsZWFxCTI1NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYXEJMjI0KCVyc3ApLCVyYngKKwlsZWFxCTY0KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJb3JxCSVyMTMsJXIxMgorCW1vdmRxYQkleG1tNCwleG1tMgorCW9ycQklcjgsJXIxMgorCW9ycQklcjksJXIxMgorCXBvcgkleG1tNSwleG1tMgorLmJ5dGUJMTAyLDczLDE1LDExMCwyMjAKKworCW1vdnEJMzg0KCVyc3ApLCVyYXgKKwlsZWFxCTM4NCglcnNwKSwlcmJ4CisJbW92cQkwKzk2KCVyc3ApLCVyOQorCW1vdnEJOCs5NiglcnNwKSwlcjEwCisJbGVhcQkwKzk2KCVyc3ApLCVyc2kKKwltb3ZxCTE2Kzk2KCVyc3ApLCVyMTEKKwltb3ZxCTI0Kzk2KCVyc3ApLCVyMTIKKwlsZWFxCTE2MCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJNDgwKCVyc3ApLCVyYXgKKwlsZWFxCTQ4MCglcnNwKSwlcmJ4CisJbW92cQkwKzMyKCVyc3ApLCVyOQorCW1vdnEJOCszMiglcnNwKSwlcjEwCisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzMyKCVyc3ApLCVyMTIKKwlsZWFxCTE5MiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYXEJMTYwKCVyc3ApLCVyYngKKwlsZWFxCTAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwlvcnEJJXIxMywlcjEyCisJb3JxCSVyOCwlcjEyCisJb3JxCSVyOSwlcjEyCisKKy5ieXRlCTB4M2UKKwlqbnoJTCRhZGRfcHJvY2VlZHEKKy5ieXRlCTEwMiw3MywxNSwxMjYsMjA4CisuYnl0ZQkxMDIsNzMsMTUsMTI2LDIxNworCXRlc3RxCSVyOCwlcjgKKwlqbnoJTCRhZGRfcHJvY2VlZHEKKwl0ZXN0cQklcjksJXI5CisJanoJTCRhZGRfZG91YmxlcQorCisuYnl0ZQkxMDIsNzIsMTUsMTI2LDE5OQorCXB4b3IJJXhtbTAsJXhtbTAKKwltb3ZkcXUJJXhtbTAsMCglcmRpKQorCW1vdmRxdQkleG1tMCwxNiglcmRpKQorCW1vdmRxdQkleG1tMCwzMiglcmRpKQorCW1vdmRxdQkleG1tMCw0OCglcmRpKQorCW1vdmRxdQkleG1tMCw2NCglcmRpKQorCW1vdmRxdQkleG1tMCw4MCglcmRpKQorCWptcAlMJGFkZF9kb25lcQorCisucDJhbGlnbgk1CitMJGFkZF9kb3VibGVxOgorLmJ5dGUJMTAyLDcyLDE1LDEyNiwyMDYKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5CisJYWRkcQkkNDE2LCVyc3AKKwlqbXAJTCRwb2ludF9kb3VibGVfc2hvcnRjdXRxCisKKy5wMmFsaWduCTUKK0wkYWRkX3Byb2NlZWRxOgorCW1vdnEJMCs2NCglcnNwKSwlcmF4CisJbW92cQk4KzY0KCVyc3ApLCVyMTQKKwlsZWFxCTArNjQoJXJzcCksJXJzaQorCW1vdnEJMTYrNjQoJXJzcCksJXIxNQorCW1vdnEJMjQrNjQoJXJzcCksJXI4CisJbGVhcQk5NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdnEJNDQ4KCVyc3ApLCVyYXgKKwlsZWFxCTQ0OCglcnNwKSwlcmJ4CisJbW92cQkwKzAoJXJzcCksJXI5CisJbW92cQk4KzAoJXJzcCksJXIxMAorCWxlYXEJMCswKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzAoJXJzcCksJXIxMQorCW1vdnEJMjQrMCglcnNwKSwlcjEyCisJbGVhcQkzNTIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTArMCglcnNwKSwlcmF4CisJbW92cQk4KzAoJXJzcCksJXIxNAorCWxlYXEJMCswKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzAoJXJzcCksJXIxNQorCW1vdnEJMjQrMCglcnNwKSwlcjgKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQk1NDQoJXJzcCksJXJheAorCWxlYXEJNTQ0KCVyc3ApLCVyYngKKwltb3ZxCTArMzUyKCVyc3ApLCVyOQorCW1vdnEJOCszNTIoJXJzcCksJXIxMAorCWxlYXEJMCszNTIoJXJzcCksJXJzaQorCW1vdnEJMTYrMzUyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzM1MiglcnNwKSwlcjEyCisJbGVhcQkzNTIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTAoJXJzcCksJXJheAorCWxlYXEJMCglcnNwKSwlcmJ4CisJbW92cQkwKzMyKCVyc3ApLCVyOQorCW1vdnEJOCszMiglcnNwKSwlcjEwCisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzMyKCVyc3ApLCVyMTIKKwlsZWFxCTEyOCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMTYwKCVyc3ApLCVyYXgKKwlsZWFxCTE2MCglcnNwKSwlcmJ4CisJbW92cQkwKzMyKCVyc3ApLCVyOQorCW1vdnEJOCszMiglcnNwKSwlcjEwCisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzMyKCVyc3ApLCVyMTIKKwlsZWFxCTE5MiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCisKKworCWFkZHEJJXIxMiwlcjEyCisJbGVhcQk5NiglcnNwKSwlcnNpCisJYWRjcQklcjEzLCVyMTMKKwltb3ZxCSVyMTIsJXJheAorCWFkY3EJJXI4LCVyOAorCWFkY3EJJXI5LCVyOQorCW1vdnEJJXIxMywlcmJwCisJc2JicQklcjExLCVyMTEKKworCXN1YnEJJC0xLCVyMTIKKwltb3ZxCSVyOCwlcmN4CisJc2JicQklcjE0LCVyMTMKKwlzYmJxCSQwLCVyOAorCW1vdnEJJXI5LCVyMTAKKwlzYmJxCSVyMTUsJXI5CisJdGVzdHEJJXIxMSwlcjExCisKKwljbW92enEJJXJheCwlcjEyCisJbW92cQkwKCVyc2kpLCVyYXgKKwljbW92enEJJXJicCwlcjEzCisJbW92cQk4KCVyc2kpLCVyYnAKKwljbW92enEJJXJjeCwlcjgKKwltb3ZxCTE2KCVyc2kpLCVyY3gKKwljbW92enEJJXIxMCwlcjkKKwltb3ZxCTI0KCVyc2kpLCVyMTAKKworCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbGVhcQkxMjgoJXJzcCksJXJieAorCWxlYXEJMjg4KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92cQkxOTIrMCglcnNwKSwlcmF4CisJbW92cQkxOTIrOCglcnNwKSwlcmJwCisJbW92cQkxOTIrMTYoJXJzcCksJXJjeAorCW1vdnEJMTkyKzI0KCVyc3ApLCVyMTAKKwlsZWFxCTMyMCglcnNwKSwlcmRpCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1YnEKKworCW1vdnEJJXIxMiwwKCVyZGkpCisJbW92cQklcjEzLDgoJXJkaSkKKwltb3ZxCSVyOCwxNiglcmRpKQorCW1vdnEJJXI5LDI0KCVyZGkpCisJbW92cQkxMjgoJXJzcCksJXJheAorCWxlYXEJMTI4KCVyc3ApLCVyYngKKwltb3ZxCTArMjI0KCVyc3ApLCVyOQorCW1vdnEJOCsyMjQoJXJzcCksJXIxMAorCWxlYXEJMCsyMjQoJXJzcCksJXJzaQorCW1vdnEJMTYrMjI0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzIyNCglcnNwKSwlcjEyCisJbGVhcQkyNTYoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTMyMCglcnNwKSwlcmF4CisJbGVhcQkzMjAoJXJzcCksJXJieAorCW1vdnEJMCs2NCglcnNwKSwlcjkKKwltb3ZxCTgrNjQoJXJzcCksJXIxMAorCWxlYXEJMCs2NCglcnNwKSwlcnNpCisJbW92cQkxNis2NCglcnNwKSwlcjExCisJbW92cQkyNCs2NCglcnNwKSwlcjEyCisJbGVhcQkzMjAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTI1NiglcnNwKSwlcmJ4CisJbGVhcQkzMjAoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKy5ieXRlCTEwMiw3MiwxNSwxMjYsMTk5CisKKwltb3ZkcWEJJXhtbTUsJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTEKKwlwYW5kbgkzNTIoJXJzcCksJXhtbTAKKwltb3ZkcWEJJXhtbTUsJXhtbTIKKwlwYW5kbgkzNTIrMTYoJXJzcCksJXhtbTEKKwltb3ZkcWEJJXhtbTUsJXhtbTMKKwlwYW5kCTU0NCglcnNwKSwleG1tMgorCXBhbmQJNTQ0KzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcWEJJXhtbTQsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTEKKwlwYW5kbgkleG1tMiwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMgorCXBhbmRuCSV4bW0zLCV4bW0xCisJbW92ZHFhCSV4bW00LCV4bW0zCisJcGFuZAk0NDgoJXJzcCksJXhtbTIKKwlwYW5kCTQ0OCsxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCW1vdmRxdQkleG1tMiw2NCglcmRpKQorCW1vdmRxdQkleG1tMyw4MCglcmRpKQorCisJbW92ZHFhCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW01LCV4bW0xCisJcGFuZG4JMjg4KCVyc3ApLCV4bW0wCisJbW92ZHFhCSV4bW01LCV4bW0yCisJcGFuZG4JMjg4KzE2KCVyc3ApLCV4bW0xCisJbW92ZHFhCSV4bW01LCV4bW0zCisJcGFuZAk0ODAoJXJzcCksJXhtbTIKKwlwYW5kCTQ4MCsxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCisJbW92ZHFhCSV4bW00LCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0xCisJcGFuZG4JJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlwYW5kbgkleG1tMywleG1tMQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhbmQJMzg0KCVyc3ApLCV4bW0yCisJcGFuZAkzODQrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKwltb3ZkcXUJJXhtbTIsMCglcmRpKQorCW1vdmRxdQkleG1tMywxNiglcmRpKQorCisJbW92ZHFhCSV4bW01LCV4bW0wCisJbW92ZHFhCSV4bW01LCV4bW0xCisJcGFuZG4JMzIwKCVyc3ApLCV4bW0wCisJbW92ZHFhCSV4bW01LCV4bW0yCisJcGFuZG4JMzIwKzE2KCVyc3ApLCV4bW0xCisJbW92ZHFhCSV4bW01LCV4bW0zCisJcGFuZAk1MTIoJXJzcCksJXhtbTIKKwlwYW5kCTUxMisxNiglcnNwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCisJbW92ZHFhCSV4bW00LCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0xCisJcGFuZG4JJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlwYW5kbgkleG1tMywleG1tMQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhbmQJNDE2KCVyc3ApLCV4bW0yCisJcGFuZAk0MTYrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKwltb3ZkcXUJJXhtbTIsMzIoJXJkaSkKKwltb3ZkcXUJJXhtbTMsNDgoJXJkaSkKKworTCRhZGRfZG9uZXE6CisJYWRkcQkkNTc2KzgsJXJzcAorCXBvcHEJJXIxNQorCXBvcHEJJXIxNAorCXBvcHEJJXIxMworCXBvcHEJJXIxMgorCXBvcHEJJXJieAorCXBvcHEJJXJicAorCS5ieXRlCTB4ZjMsMHhjMworCisuZ2xvYmwJX2VjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lCisucHJpdmF0ZV9leHRlcm4gX2VjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lCisKKy5wMmFsaWduCTUKK19lY3BfbmlzdHoyNTZfcG9pbnRfYWRkX2FmZmluZToKKwlwdXNocQklcmJwCisJcHVzaHEJJXJieAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCXB1c2hxCSVyMTUKKwlzdWJxCSQ0ODArOCwlcnNwCisKKwltb3ZkcXUJMCglcnNpKSwleG1tMAorCW1vdnEJJXJkeCwlcmJ4CisJbW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJbW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJbW92ZHF1CTQ4KCVyc2kpLCV4bW0zCisJbW92ZHF1CTY0KCVyc2kpLCV4bW00CisJbW92ZHF1CTgwKCVyc2kpLCV4bW01CisJbW92cQk2NCswKCVyc2kpLCVyYXgKKwltb3ZxCTY0KzgoJXJzaSksJXIxNAorCW1vdnEJNjQrMTYoJXJzaSksJXIxNQorCW1vdnEJNjQrMjQoJXJzaSksJXI4CisJbW92ZHFhCSV4bW0wLDMyMCglcnNwKQorCW1vdmRxYQkleG1tMSwzMjArMTYoJXJzcCkKKwlwb3IJJXhtbTAsJXhtbTEKKwltb3ZkcWEJJXhtbTIsMzUyKCVyc3ApCisJbW92ZHFhCSV4bW0zLDM1MisxNiglcnNwKQorCXBvcgkleG1tMiwleG1tMworCW1vdmRxYQkleG1tNCwzODQoJXJzcCkKKwltb3ZkcWEJJXhtbTUsMzg0KzE2KCVyc3ApCisJcG9yCSV4bW0xLCV4bW0zCisKKwltb3ZkcXUJMCglcmJ4KSwleG1tMAorCXBzaHVmZAkkMHhiMSwleG1tMywleG1tNQorCW1vdmRxdQkxNiglcmJ4KSwleG1tMQorCW1vdmRxdQkzMiglcmJ4KSwleG1tMgorCXBvcgkleG1tMywleG1tNQorCW1vdmRxdQk0OCglcmJ4KSwleG1tMworCW1vdmRxYQkleG1tMCw0MTYoJXJzcCkKKwlwc2h1ZmQJJDB4MWUsJXhtbTUsJXhtbTQKKwltb3ZkcWEJJXhtbTEsNDE2KzE2KCVyc3ApCisJcG9yCSV4bW0wLCV4bW0xCisuYnl0ZQkxMDIsNzIsMTUsMTEwLDE5OQorCW1vdmRxYQkleG1tMiw0NDgoJXJzcCkKKwltb3ZkcWEJJXhtbTMsNDQ4KzE2KCVyc3ApCisJcG9yCSV4bW0yLCV4bW0zCisJcG9yCSV4bW00LCV4bW01CisJcHhvcgkleG1tNCwleG1tNAorCXBvcgkleG1tMSwleG1tMworCisJbGVhcQk2NC0wKCVyc2kpLCVyc2kKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJcGNtcGVxZAkleG1tNCwleG1tNQorCXBzaHVmZAkkMHhiMSwleG1tMywleG1tNAorCW1vdnEJMCglcmJ4KSwlcmF4CisKKwltb3ZxCSVyMTIsJXI5CisJcG9yCSV4bW0zLCV4bW00CisJcHNodWZkCSQwLCV4bW01LCV4bW01CisJcHNodWZkCSQweDFlLCV4bW00LCV4bW0zCisJbW92cQklcjEzLCVyMTAKKwlwb3IJJXhtbTMsJXhtbTQKKwlweG9yCSV4bW0zLCV4bW0zCisJbW92cQklcjE0LCVyMTEKKwlwY21wZXFkCSV4bW0zLCV4bW00CisJcHNodWZkCSQwLCV4bW00LCV4bW00CisKKwlsZWFxCTMyLTAoJXJzcCksJXJzaQorCW1vdnEJJXIxNSwlcjEyCisJbGVhcQkwKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbGVhcQkzMjAoJXJzcCksJXJieAorCWxlYXEJNjQoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTM4NCglcnNwKSwlcmF4CisJbGVhcQkzODQoJXJzcCksJXJieAorCW1vdnEJMCszMiglcnNwKSwlcjkKKwltb3ZxCTgrMzIoJXJzcCksJXIxMAorCWxlYXEJMCszMiglcnNwKSwlcnNpCisJbW92cQkxNiszMiglcnNwKSwlcjExCisJbW92cQkyNCszMiglcnNwKSwlcjEyCisJbGVhcQkzMiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMzg0KCVyc3ApLCVyYXgKKwlsZWFxCTM4NCglcnNwKSwlcmJ4CisJbW92cQkwKzY0KCVyc3ApLCVyOQorCW1vdnEJOCs2NCglcnNwKSwlcjEwCisJbGVhcQkwKzY0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzY0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzY0KCVyc3ApLCVyMTIKKwlsZWFxCTI4OCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJNDQ4KCVyc3ApLCVyYXgKKwlsZWFxCTQ0OCglcnNwKSwlcmJ4CisJbW92cQkwKzMyKCVyc3ApLCVyOQorCW1vdnEJOCszMiglcnNwKSwlcjEwCisJbGVhcQkwKzMyKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzMyKCVyc3ApLCVyMTEKKwltb3ZxCTI0KzMyKCVyc3ApLCVyMTIKKwlsZWFxCTMyKCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbGVhcQkzNTIoJXJzcCksJXJieAorCWxlYXEJOTYoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3ZxCTArNjQoJXJzcCksJXJheAorCW1vdnEJOCs2NCglcnNwKSwlcjE0CisJbGVhcQkwKzY0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzY0KCVyc3ApLCVyMTUKKwltb3ZxCTI0KzY0KCVyc3ApLCVyOAorCWxlYXEJMTI4KCVyc3ApLCVyZGkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92cQkwKzk2KCVyc3ApLCVyYXgKKwltb3ZxCTgrOTYoJXJzcCksJXIxNAorCWxlYXEJMCs5NiglcnNwKSwlcnNpCisJbW92cQkxNis5NiglcnNwKSwlcjE1CisJbW92cQkyNCs5NiglcnNwKSwlcjgKKwlsZWFxCTE5MiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdnEJMTI4KCVyc3ApLCVyYXgKKwlsZWFxCTEyOCglcnNwKSwlcmJ4CisJbW92cQkwKzY0KCVyc3ApLCVyOQorCW1vdnEJOCs2NCglcnNwKSwlcjEwCisJbGVhcQkwKzY0KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzY0KCVyc3ApLCVyMTEKKwltb3ZxCTI0KzY0KCVyc3ApLCVyMTIKKwlsZWFxCTE2MCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdnEJMzIwKCVyc3ApLCVyYXgKKwlsZWFxCTMyMCglcnNwKSwlcmJ4CisJbW92cQkwKzEyOCglcnNwKSwlcjkKKwltb3ZxCTgrMTI4KCVyc3ApLCVyMTAKKwlsZWFxCTArMTI4KCVyc3ApLCVyc2kKKwltb3ZxCTE2KzEyOCglcnNwKSwlcjExCisJbW92cQkyNCsxMjgoJXJzcCksJXIxMgorCWxlYXEJMCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCisKKworCWFkZHEJJXIxMiwlcjEyCisJbGVhcQkxOTIoJXJzcCksJXJzaQorCWFkY3EJJXIxMywlcjEzCisJbW92cQklcjEyLCVyYXgKKwlhZGNxCSVyOCwlcjgKKwlhZGNxCSVyOSwlcjkKKwltb3ZxCSVyMTMsJXJicAorCXNiYnEJJXIxMSwlcjExCisKKwlzdWJxCSQtMSwlcjEyCisJbW92cQklcjgsJXJjeAorCXNiYnEJJXIxNCwlcjEzCisJc2JicQkkMCwlcjgKKwltb3ZxCSVyOSwlcjEwCisJc2JicQklcjE1LCVyOQorCXRlc3RxCSVyMTEsJXIxMQorCisJY21vdnpxCSVyYXgsJXIxMgorCW1vdnEJMCglcnNpKSwlcmF4CisJY21vdnpxCSVyYnAsJXIxMworCW1vdnEJOCglcnNpKSwlcmJwCisJY21vdnpxCSVyY3gsJXI4CisJbW92cQkxNiglcnNpKSwlcmN4CisJY21vdnpxCSVyMTAsJXI5CisJbW92cQkyNCglcnNpKSwlcjEwCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1YnEKKworCWxlYXEJMTYwKCVyc3ApLCVyYngKKwlsZWFxCTIyNCglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCW1vdnEJMCswKCVyc3ApLCVyYXgKKwltb3ZxCTArOCglcnNwKSwlcmJwCisJbW92cQkwKzE2KCVyc3ApLCVyY3gKKwltb3ZxCTArMjQoJXJzcCksJXIxMAorCWxlYXEJNjQoJXJzcCksJXJkaQorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJxCisKKwltb3ZxCSVyMTIsMCglcmRpKQorCW1vdnEJJXIxMyw4KCVyZGkpCisJbW92cQklcjgsMTYoJXJkaSkKKwltb3ZxCSVyOSwyNCglcmRpKQorCW1vdnEJMzUyKCVyc3ApLCVyYXgKKwlsZWFxCTM1MiglcnNwKSwlcmJ4CisJbW92cQkwKzE2MCglcnNwKSwlcjkKKwltb3ZxCTgrMTYwKCVyc3ApLCVyMTAKKwlsZWFxCTArMTYwKCVyc3ApLCVyc2kKKwltb3ZxCTE2KzE2MCglcnNwKSwlcjExCisJbW92cQkyNCsxNjAoJXJzcCksJXIxMgorCWxlYXEJMzIoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3ZxCTk2KCVyc3ApLCVyYXgKKwlsZWFxCTk2KCVyc3ApLCVyYngKKwltb3ZxCTArNjQoJXJzcCksJXI5CisJbW92cQk4KzY0KCVyc3ApLCVyMTAKKwlsZWFxCTArNjQoJXJzcCksJXJzaQorCW1vdnEJMTYrNjQoJXJzcCksJXIxMQorCW1vdnEJMjQrNjQoJXJzcCksJXIxMgorCWxlYXEJNjQoJXJzcCksJXJkaQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWFxCTMyKCVyc3ApLCVyYngKKwlsZWFxCTI1NiglcnNwKSwlcmRpCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworLmJ5dGUJMTAyLDcyLDE1LDEyNiwxOTkKKworCW1vdmRxYQkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMQorCXBhbmRuCTI4OCglcnNwKSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMgorCXBhbmRuCTI4OCsxNiglcnNwKSwleG1tMQorCW1vdmRxYQkleG1tNSwleG1tMworCXBhbmQJTCRPTkVfbW9udCglcmlwKSwleG1tMgorCXBhbmQJTCRPTkVfbW9udCsxNiglcmlwKSwleG1tMworCXBvcgkleG1tMCwleG1tMgorCXBvcgkleG1tMSwleG1tMworCisJbW92ZHFhCSV4bW00LCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0xCisJcGFuZG4JJXhtbTIsJXhtbTAKKwltb3ZkcWEJJXhtbTQsJXhtbTIKKwlwYW5kbgkleG1tMywleG1tMQorCW1vdmRxYQkleG1tNCwleG1tMworCXBhbmQJMzg0KCVyc3ApLCV4bW0yCisJcGFuZAkzODQrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKwltb3ZkcXUJJXhtbTIsNjQoJXJkaSkKKwltb3ZkcXUJJXhtbTMsODAoJXJkaSkKKworCW1vdmRxYQkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMQorCXBhbmRuCTIyNCglcnNwKSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMgorCXBhbmRuCTIyNCsxNiglcnNwKSwleG1tMQorCW1vdmRxYQkleG1tNSwleG1tMworCXBhbmQJNDE2KCVyc3ApLCV4bW0yCisJcGFuZAk0MTYrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKworCW1vdmRxYQkleG1tNCwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMQorCXBhbmRuCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0yCisJcGFuZG4JJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYW5kCTMyMCglcnNwKSwleG1tMgorCXBhbmQJMzIwKzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisJbW92ZHF1CSV4bW0yLDAoJXJkaSkKKwltb3ZkcXUJJXhtbTMsMTYoJXJkaSkKKworCW1vdmRxYQkleG1tNSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMQorCXBhbmRuCTI1NiglcnNwKSwleG1tMAorCW1vdmRxYQkleG1tNSwleG1tMgorCXBhbmRuCTI1NisxNiglcnNwKSwleG1tMQorCW1vdmRxYQkleG1tNSwleG1tMworCXBhbmQJNDQ4KCVyc3ApLCV4bW0yCisJcGFuZAk0NDgrMTYoJXJzcCksJXhtbTMKKwlwb3IJJXhtbTAsJXhtbTIKKwlwb3IJJXhtbTEsJXhtbTMKKworCW1vdmRxYQkleG1tNCwleG1tMAorCW1vdmRxYQkleG1tNCwleG1tMQorCXBhbmRuCSV4bW0yLCV4bW0wCisJbW92ZHFhCSV4bW00LCV4bW0yCisJcGFuZG4JJXhtbTMsJXhtbTEKKwltb3ZkcWEJJXhtbTQsJXhtbTMKKwlwYW5kCTM1MiglcnNwKSwleG1tMgorCXBhbmQJMzUyKzE2KCVyc3ApLCV4bW0zCisJcG9yCSV4bW0wLCV4bW0yCisJcG9yCSV4bW0xLCV4bW0zCisJbW92ZHF1CSV4bW0yLDMyKCVyZGkpCisJbW92ZHF1CSV4bW0zLDQ4KCVyZGkpCisKKwlhZGRxCSQ0ODArOCwlcnNwCisJcG9wcQklcjE1CisJcG9wcQklcjE0CisJcG9wcQklcjEzCisJcG9wcQklcjEyCisJcG9wcQklcmJ4CisJcG9wcQklcmJwCisJLmJ5dGUJMHhmMywweGMzCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL21kNS9tZDUteDg2XzY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUwppbmRleCAxZTYxNDc5Li4xNmZkMmNjIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vbWQ1L21kNS14ODZfNjQuUwpAQCAtNDk1LDE0ICs0OTUsMTQgQEAKIAltb3ZsCSVlY3gsJXIxMWQKIAlhZGRsCSVlY3gsJWVieAogCW1vdmwJMCglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJeG9ybAklZWR4LCVyMTFkCiAJbGVhbAktMTk4NjMwODQ0KCVyYXgsJXIxMCwxKSwlZWF4CiAJb3JsCSVlYngsJXIxMWQKIAl4b3JsCSVlY3gsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYXgKIAltb3ZsCTI4KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQ2LCVlYXgKIAl4b3JsCSVlY3gsJXIxMWQKIAlhZGRsCSVlYngsJWVheApAQCAtNTExLDcgKzUxMSw3IEBACiAJeG9ybAklZWJ4LCVyMTFkCiAJYWRkbAklcjExZCwlZWR4CiAJbW92bAk1NiglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMTAsJWVkeAogCXhvcmwJJWVieCwlcjExZAogCWFkZGwJJWVheCwlZWR4CkBAIC01MjAsNyArNTIwLDcgQEAKIAl4b3JsCSVlYXgsJXIxMWQKIAlhZGRsCSVyMTFkLCVlY3gKIAltb3ZsCTIwKCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQxNSwlZWN4CiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklZWR4LCVlY3gKQEAgLTUyOSw3ICs1MjksNyBAQAogCXhvcmwJJWVkeCwlcjExZAogCWFkZGwJJXIxMWQsJWVieAogCW1vdmwJNDgoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDIxLCVlYngKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVlY3gsJWVieApAQCAtNTM4LDcgKzUzOCw3IEBACiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklcjExZCwlZWF4CiAJbW92bAkxMiglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkNiwlZWF4CiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklZWJ4LCVlYXgKQEAgLTU0Nyw3ICs1NDcsNyBAQAogCXhvcmwJJWVieCwlcjExZAogCWFkZGwJJXIxMWQsJWVkeAogCW1vdmwJNDAoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDEwLCVlZHgKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVlYXgsJWVkeApAQCAtNTU2LDcgKzU1Niw3IEBACiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklcjExZCwlZWN4CiAJbW92bAk0KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQxNSwlZWN4CiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklZWR4LCVlY3gKQEAgLTU2NSw3ICs1NjUsNyBAQAogCXhvcmwJJWVkeCwlcjExZAogCWFkZGwJJXIxMWQsJWVieAogCW1vdmwJMzIoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDIxLCVlYngKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVlY3gsJWVieApAQCAtNTc0LDcgKzU3NCw3IEBACiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklcjExZCwlZWF4CiAJbW92bAk2MCglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkNiwlZWF4CiAJeG9ybAklZWN4LCVyMTFkCiAJYWRkbAklZWJ4LCVlYXgKQEAgLTU4Myw3ICs1ODMsNyBAQAogCXhvcmwJJWVieCwlcjExZAogCWFkZGwJJXIxMWQsJWVkeAogCW1vdmwJMjQoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDEwLCVlZHgKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVlYXgsJWVkeApAQCAtNTkyLDcgKzU5Miw3IEBACiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklcjExZCwlZWN4CiAJbW92bAk1MiglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMTUsJWVjeAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJWVkeCwlZWN4CkBAIC02MDEsNyArNjAxLDcgQEAKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYngKIAltb3ZsCTE2KCVyc2kpLCVyMTBkCi0JbW92bAkkNDI5NDk2NzI5NSwlcjExZAorCW1vdmwJJDB4ZmZmZmZmZmYsJXIxMWQKIAlyb2xsCSQyMSwlZWJ4CiAJeG9ybAklZWR4LCVyMTFkCiAJYWRkbAklZWN4LCVlYngKQEAgLTYxMCw3ICs2MTAsNyBAQAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJXIxMWQsJWVheAogCW1vdmwJNDQoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDYsJWVheAogCXhvcmwJJWVjeCwlcjExZAogCWFkZGwJJWVieCwlZWF4CkBAIC02MTksNyArNjE5LDcgQEAKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVyMTFkLCVlZHgKIAltb3ZsCTgoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDEwLCVlZHgKIAl4b3JsCSVlYngsJXIxMWQKIAlhZGRsCSVlYXgsJWVkeApAQCAtNjI4LDcgKzYyOCw3IEBACiAJeG9ybAklZWF4LCVyMTFkCiAJYWRkbAklcjExZCwlZWN4CiAJbW92bAkzNiglcnNpKSwlcjEwZAotCW1vdmwJJDQyOTQ5NjcyOTUsJXIxMWQKKwltb3ZsCSQweGZmZmZmZmZmLCVyMTFkCiAJcm9sbAkkMTUsJWVjeAogCXhvcmwJJWVheCwlcjExZAogCWFkZGwJJWVkeCwlZWN4CkBAIC02MzcsNyArNjM3LDcgQEAKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVyMTFkLCVlYngKIAltb3ZsCTAoJXJzaSksJXIxMGQKLQltb3ZsCSQ0Mjk0OTY3Mjk1LCVyMTFkCisJbW92bAkkMHhmZmZmZmZmZiwlcjExZAogCXJvbGwJJDIxLCVlYngKIAl4b3JsCSVlZHgsJXIxMWQKIAlhZGRsCSVlY3gsJWVieApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL21vZGVzL2doYXNoLXg4Nl82NC5TCmluZGV4IDMwNWE5MWMuLjEwNzJjN2YgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9tb2Rlcy9naGFzaC14ODZfNjQuUworKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vbW9kZXMvZ2hhc2gteDg2XzY0LlMKQEAgLTIyLDE0ICsyMiwxNCBAQAogCW1vdnEJJDE0LCVyY3gKIAltb3ZxCTgoJXJzaSwlcmF4LDEpLCVyOAogCW1vdnEJKCVyc2ksJXJheCwxKSwlcjkKLQlhbmRiCSQyNDAsJWJsCisJYW5kYgkkMHhmMCwlYmwKIAltb3ZxCSVyOCwlcmR4CiAJam1wCUwkb29wMQogCiAucDJhbGlnbgk0CiBMJG9vcDE6CiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJbW92YgkoJXJkaSwlcmN4LDEpLCVhbAogCXNocnEJJDQsJXI5CkBAIC00NSwxMyArNDUsMTMgQEAKIAlqcwlMJGJyZWFrMQogCiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJc2hycQkkNCwlcjkKIAl4b3JxCTgoJXJzaSwlcmF4LDEpLCVyOAogCXNobHEJJDYwLCVyMTAKIAl4b3JxCSglcnNpLCVyYXgsMSksJXI5Ci0JYW5kYgkkMjQwLCVibAorCWFuZGIJJDB4ZjAsJWJsCiAJeG9ycQkoJXIxMSwlcmR4LDgpLCVyOQogCW1vdnEJJXI4LCVyZHgKIAl4b3JxCSVyMTAsJXI4CkBAIC02MCwxOSArNjAsMTkgQEAKIC5wMmFsaWduCTQKIEwkYnJlYWsxOgogCXNocnEJJDQsJXI4Ci0JYW5kcQkkMTUsJXJkeAorCWFuZHEJJDB4ZiwlcmR4CiAJbW92cQklcjksJXIxMAogCXNocnEJJDQsJXI5CiAJeG9ycQk4KCVyc2ksJXJheCwxKSwlcjgKIAlzaGxxCSQ2MCwlcjEwCiAJeG9ycQkoJXJzaSwlcmF4LDEpLCVyOQotCWFuZGIJJDI0MCwlYmwKKwlhbmRiCSQweGYwLCVibAogCXhvcnEJKCVyMTEsJXJkeCw4KSwlcjkKIAltb3ZxCSVyOCwlcmR4CiAJeG9ycQklcjEwLCVyOAogCiAJc2hycQkkNCwlcjgKLQlhbmRxCSQxNSwlcmR4CisJYW5kcQkkMHhmLCVyZHgKIAltb3ZxCSVyOSwlcjEwCiAJc2hycQkkNCwlcjkKIAl4b3JxCTgoJXJzaSwlcmJ4LDEpLCVyOApAQCAtODgwLDIwICs4ODAsMjAgQEAKIAltb3ZkcXUJMzIoJXJzaSksJXhtbTcKIC5ieXRlCTEwMiw2NSwxNSw1NiwwLDE5NAogCi0Jc3VicQkkMTYsJXJjeAorCXN1YnEJJDB4MTAsJXJjeAogCWp6CUwkb2RkX3RhaWwKIAogCW1vdmRxdQkxNiglcnNpKSwleG1tNgogCW1vdmwJX09QRU5TU0xfaWEzMmNhcF9QKzQoJXJpcCksJWVheAotCWNtcHEJJDQ4LCVyY3gKKwljbXBxCSQweDMwLCVyY3gKIAlqYglMJHNraXA0eAogCiAJYW5kbAkkNzEzMDMxNjgsJWVheAogCWNtcGwJJDQxOTQzMDQsJWVheAogCWplCUwkc2tpcDR4CiAKLQlzdWJxCSQ0OCwlcmN4Ci0JbW92cQkkMTE1NDczMzU1NDc5OTk1NDMyOTYsJXJheAorCXN1YnEJJDB4MzAsJXJjeAorCW1vdnEJJDB4QTA0MDYwODAyMEMwRTAwMCwlcmF4CiAJbW92ZHF1CTQ4KCVyc2kpLCV4bW0xNAogCW1vdmRxdQk2NCglcnNpKSwleG1tMTUKIApAQCAtOTQwLDcgKzk0MCw3IEBACiAJeG9ycHMJJXhtbTEzLCV4bW01CiAKIAlsZWFxCTY0KCVyZHgpLCVyZHgKLQlzdWJxCSQ2NCwlcmN4CisJc3VicQkkMHg0MCwlcmN4CiAJamMJTCR0YWlsNHgKIAogCWptcAlMJG1vZDRfbG9vcApAQCAtMTAyMyw3ICsxMDIzLDcgQEAKIAl4b3JwcwkleG1tMTMsJXhtbTUKIAogCWxlYXEJNjQoJXJkeCksJXJkeAotCXN1YnEJJDY0LCVyY3gKKwlzdWJxCSQweDQwLCVyY3gKIAlqbmMJTCRtb2Q0X2xvb3AKIAogTCR0YWlsNHg6CkBAIC0xMDY3LDEwICsxMDY3LDEwIEBACiAJcHhvcgkleG1tNCwleG1tMAogCXBzcmxxCSQxLCV4bW0wCiAJcHhvcgkleG1tMSwleG1tMAotCWFkZHEJJDY0LCVyY3gKKwlhZGRxCSQweDQwLCVyY3gKIAlqeglMJGRvbmUKIAltb3ZkcXUJMzIoJXJzaSksJXhtbTcKLQlzdWJxCSQxNiwlcmN4CisJc3VicQkkMHgxMCwlcmN4CiAJanoJTCRvZGRfdGFpbAogTCRza2lwNHg6CiAKQEAgLTEwOTMsNyArMTA5Myw3IEBACiAKIAlsZWFxCTMyKCVyZHgpLCVyZHgKIAlub3AKLQlzdWJxCSQzMiwlcmN4CisJc3VicQkkMHgyMCwlcmN4CiAJamJlCUwkZXZlbl90YWlsCiAJbm9wCiAJam1wCUwkbW9kX2xvb3AKQEAgLTExNTYsNyArMTE1Niw3IEBACiAuYnl0ZQkxMDIsMTUsNTgsNjgsMjMxLDAKIAlweG9yCSV4bW0xLCV4bW0wCiAKLQlzdWJxCSQzMiwlcmN4CisJc3VicQkkMHgyMCwlcmN4CiAJamEJTCRtb2RfbG9vcAogCiBMJGV2ZW5fdGFpbDoKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFlZTdkMi4uMDAwMDAwMAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vcmM0L3JjNC1tZDUteDg2XzY0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYyICswLDAgQEAKLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0udGV4dAkKLS5wMmFsaWduCTQKLQotLmdsb2JsCV9yYzRfbWQ1X2VuYwotLnByaXZhdGVfZXh0ZXJuIF9yYzRfbWQ1X2VuYwotCi1fcmM0X21kNV9lbmM6Ci0JY21wcQkkMCwlcjkKLQlqZQlMJGFib3J0Ci0JcHVzaHEJJXJieAotCXB1c2hxCSVyYnAKLQlwdXNocQklcjEyCi0JcHVzaHEJJXIxMwotCXB1c2hxCSVyMTQKLQlwdXNocQklcjE1Ci0Jc3VicQkkNDAsJXJzcAotTCRib2R5OgotCW1vdnEJJXJjeCwlcjExCi0JbW92cQklcjksJXIxMgotCW1vdnEJJXJzaSwlcjEzCi0JbW92cQklcmR4LCVyMTQKLQltb3ZxCSVyOCwlcjE1Ci0JeG9ycQklcmJwLCVyYnAKLQl4b3JxCSVyY3gsJXJjeAotCi0JbGVhcQk4KCVyZGkpLCVyZGkKLQltb3ZiCS04KCVyZGkpLCVicGwKLQltb3ZiCS00KCVyZGkpLCVjbAotCi0JaW5jYgklYnBsCi0Jc3VicQklcjEzLCVyMTQKLQltb3ZsCSglcmRpLCVyYnAsNCksJWVheAotCWFkZGIJJWFsLCVjbAotCWxlYXEJKCVyZGksJXJicCw0KSwlcnNpCi0Jc2hscQkkNiwlcjEyCi0JYWRkcQklcjE1LCVyMTIKLQltb3ZxCSVyMTIsMTYoJXJzcCkKLQotCW1vdnEJJXIxMSwyNCglcnNwKQotCW1vdmwJMCglcjExKSwlcjhkCi0JbW92bAk0KCVyMTEpLCVyOWQKLQltb3ZsCTgoJXIxMSksJXIxMGQKLQltb3ZsCTEyKCVyMTEpLCVyMTFkCi0Jam1wCUwkb29wCi0KLS5wMmFsaWduCTQKLUwkb29wOgotCW1vdmwJJXI4ZCwwKCVyc3ApCi0JbW92bAklcjlkLDQoJXJzcCkKLQltb3ZsCSVyMTBkLDgoJXJzcCkKLQltb3ZsCSVyMTFkLCVyMTJkCi0JbW92bAklcjExZCwxMiglcnNwKQotCXB4b3IJJXhtbTAsJXhtbTAKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk0KCVyc2kpLCVlYngKLQlhZGRsCSQzNjE0MDkwMzYwLCVyOGQKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDAoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCXB4b3IJJXhtbTEsJXhtbTEKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAk0KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4KCVyc2kpLCVlYXgKLQlhZGRsCSQzOTA1NDAyNzEwLCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEyLCVyMTFkCi0JbW92bAklcjlkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJOCglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTIoJXJzaSksJWVieAotCWFkZGwJJDYwNjEwNTgxOSwlcjEwZAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTEyKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTE2KCVyc2kpLCVlYXgKLQlhZGRsCSQzMjUwNDQxOTY2LCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMTYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMjAoJXJzaSksJWVieAotCWFkZGwJJDQxMTg1NDgzOTksJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsMTYoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQyLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMjAoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTI0KCVyc2kpLCVlYXgKLQlhZGRsCSQxMjAwMDgwNDI2LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCwyMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJMjQoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTI4KCVyc2kpLCVlYngKLQlhZGRsCSQyODIxNzM1OTU1LCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDI0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTI4KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTMyKCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjQ5MjYxMzEzLCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMjgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMzYoJXJzaSksJWVieAotCWFkZGwJJDE3NzAwMzU0MTYsJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsMzIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMzYoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQwKCVyc2kpLCVlYXgKLQlhZGRsCSQyMzM2NTUyODc5LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCwzNiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNDAoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTQ0KCVyc2kpLCVlYngKLQlhZGRsCSQ0Mjk0OTI1MjMzLCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDQwKCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ1LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTQ0KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQ4KCVyc2kpLCVlYXgKLQlhZGRsCSQyMzA0NTYzMTM0LCVyOWQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsNDQoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMiwlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkNSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJNDgoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNTIoJXJzaSksJWVieAotCWFkZGwJJDE4MDQ2MDM2ODIsJXI4ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsNDgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ3LCVyOGQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJNTIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTU2KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjU0NjI2MTk1LCVyMTFkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw1MiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMiwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNTYoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTYwKCVyc2kpLCVlYngKLQlhZGRsCSQyNzkyOTY1MDA2LCVyMTBkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDU2KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE3LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ3LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZkcXUJKCVyMTMpLCV4bW0yCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk2MCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk2NCglcnNpKSwlZWF4Ci0JYWRkbAkkMTIzNjUzNTMyOSwlcjlkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDYwKCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjIsJXI5ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JcHNsbHEJJDgsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW0yCi0JcHhvcgkleG1tMSwleG1tMgotCXB4b3IJJXhtbTAsJXhtbTAKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjExZCwlcjEyZAotCWFkZGwJNCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk2OCglcnNpKSwlZWJ4Ci0JYWRkbAkkNDEyOTE3MDc4NiwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw2NCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMGQsJXIxMmQKLQlhZGRsCTI0KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk3MiglcnNpKSwlZWF4Ci0JYWRkbAkkMzIyNTQ2NTY2NCwlcjExZAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw2OCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JbW92ZAkoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI5ZCwlcjEyZAotCWFkZGwJNDQoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTc2KCVyc2kpLCVlYngKLQlhZGRsCSQ2NDM3MTc3MTMsJXIxMGQKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3Z6YmwJJWFsLCVlYXgKLQltb3ZsCSVlZHgsNzIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTBkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTQsJXIxMGQKLQltb3ZsCSVyMTFkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJMCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4MCglcnNpKSwlZWF4Ci0JYWRkbAkkMzkyMTA2OTk5NCwlcjlkCi0JeG9ybAklcjExZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw3NiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIwLCVyOWQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXIxMGQsJXI5ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTFkLCVyMTJkCi0JYWRkbAkyMCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk4NCglcnNpKSwlZWJ4Ci0JYWRkbAkkMzU5MzQwODYwNSwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4MCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk0MCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJODgoJXJzaSksJWVheAotCWFkZGwJJDM4MDE2MDgzLCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDg0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDksJXIxMWQKLQltb3ZsCSVyOGQsJXIxMmQKLQlwaW5zcncJJDIsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyOWQsJXIxMmQKLQlhZGRsCTYwKCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk5MiglcnNpKSwlZWJ4Ci0JYWRkbAkkMzYzNDQ4ODk2MSwlcjEwZAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw4OCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAkxNiglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk5NiglcnNpKSwlZWF4Ci0JYWRkbAkkMzg4OTQyOTQ0OCwlcjlkCi0JeG9ybAklcjExZCwlcjEyZAotCW1vdnpibAklYmwsJWVieAotCW1vdmwJJWVkeCw5MiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIwLCVyOWQKLQltb3ZsCSVyMTBkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXIxMGQsJXI5ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTFkLCVyMTJkCi0JYWRkbAkzNiglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMDAoJXJzaSksJWVieAotCWFkZGwJJDU2ODQ0NjQzOCwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCw5NiglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDUsJXI4ZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlhbmRsCSVyMTBkLCVyMTJkCi0JYWRkbAk1NiglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTA0KCVyc2kpLCVlYXgKLQlhZGRsCSQzMjc1MTYzNjA2LCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDEwMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjlkLCVyMTJkCi0JYWRkbAkxMiglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTA4KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTA3NjAzMzM1LCVyMTBkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDEwNCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjhkLCVyMTJkCi0JYWRkbAkzMiglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAkxMTIoJXJzaSksJWVheAotCWFkZGwJJDExNjM1MzE1MDEsJXI5ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTA4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjAsJXI5ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCWFuZGwJJXIxMWQsJXIxMmQKLQlhZGRsCTUyKCVyMTUpLCVyOGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTExNiglcnNpKSwlZWJ4Ci0JYWRkbAkkMjg1MDI4NTgyOSwlcjhkCi0JeG9ybAklcjEwZCwlcjEyZAotCW1vdnpibAklYWwsJWVheAotCW1vdmwJJWVkeCwxMTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ1LCVyOGQKLQltb3ZsCSVyOWQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjEwZCwlcjEyZAotCWFkZGwJOCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTIwKCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjQzNTYzNTEyLCVyMTFkCi0JeG9ybAklcjlkLCVyMTJkCi0JbW92emJsCSVibCwlZWJ4Ci0JbW92bAklZWR4LDExNiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQ5LCVyMTFkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JYW5kbAklcjlkLCVyMTJkCi0JYWRkbAkyOCglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTI0KCVyc2kpLCVlYngKLQlhZGRsCSQxNzM1MzI4NDczLCVyMTBkCi0JeG9ybAklcjhkLCVyMTJkCi0JbW92emJsCSVhbCwlZWF4Ci0JbW92bAklZWR4LDEyMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNCwlcjEwZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmRxdQkxNiglcjEzKSwleG1tMwotCWFkZGIJJDMyLCVicGwKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCWFuZGwJJXI4ZCwlcjEyZAotCWFkZGwJNDgoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMCglcmRpLCVyYnAsNCksJWVheAotCWFkZGwJJDIzNjgzNTk1NjIsJXI5ZAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3Z6YmwJJWJsLCVlYngKLQltb3ZsCSVlZHgsMTI0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjlkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMjAsJXI5ZAotCW1vdmwJJXIxMWQsJXIxMmQKLQlwaW5zcncJJDcsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92cQklcmN4LCVyc2kKLQl4b3JxCSVyY3gsJXJjeAotCW1vdmIJJXNpbCwlY2wKLQlsZWFxCSglcmRpLCVyYnAsNCksJXJzaQotCXBzbGxxCSQ4LCV4bW0xCi0JcHhvcgkleG1tMCwleG1tMwotCXB4b3IJJXhtbTEsJXhtbTMKLQlweG9yCSV4bW0wLCV4bW0wCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOWQsJXIxMmQKLQlhZGRsCTIwKCVyMTUpLCVyOGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTQoJXJzaSksJWVieAotCWFkZGwJJDQyOTQ1ODg3MzgsJXI4ZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXI4ZAotCW1vdmwJJWVkeCwwKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTgoJXJzaSksJWVheAotCWFkZGwJJDIyNzIzOTI4MzMsJXIxMWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyMTFkCi0JbW92bAklZWR4LDQoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMSwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCW1vdmQJKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTQ0KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMiglcnNpKSwlZWJ4Ci0JYWRkbAkkMTgzOTAzMDU2MiwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXIxMGQKLQltb3ZsCSVlZHgsOCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTU2KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTE2KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjU5NjU3NzQwLCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsMTIoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJNCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkyMCglcnNpKSwlZWJ4Ci0JYWRkbAkkMjc2Mzk3NTIzNiwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjhkCi0JbW92bAklZWR4LDE2KCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOGQsJXIxMmQKLQlhZGRsCTE2KCVyMTUpLCVyMTFkCi0JYWRkYgklZGwsJWJsCi0JbW92bAkyNCglcnNpKSwlZWF4Ci0JYWRkbAkkMTI3Mjg5MzM1MywlcjExZAotCW1vdnpibAklYmwsJWVieAotCWFkZGwJJXIxMmQsJXIxMWQKLQltb3ZsCSVlZHgsMjAoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMSwlcjExZAotCW1vdmwJJXI5ZCwlcjEyZAotCXBpbnNydwkkMiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjExZCwlcjEyZAotCWFkZGwJMjgoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTI4KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTM5NDY5NjY0LCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjEwZAotCW1vdmwJJWVkeCwyNCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQzLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTQwKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTMyKCVyc2kpLCVlYXgKLQlhZGRsCSQzMjAwMjM2NjU2LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsMjgoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkMywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJNTIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMzYoJXJzaSksJWVieAotCWFkZGwJJDY4MTI3OTE3NCwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjhkCi0JbW92bAklZWR4LDMyKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNCwlcjhkCi0JbW92bAklcjEwZCwlcjEyZAotCXBpbnNydwkkNCwoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyOWQsJXI4ZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyOGQsJXIxMmQKLQlhZGRsCTAoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTQwKCVyc2kpLCVlYXgKLQlhZGRsCSQzOTM2NDMwMDc0LCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JYWRkbAklcjEyZCwlcjExZAotCW1vdmwJJWVkeCwzNiglcnNpKQotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDExLCVyMTFkCi0JbW92bAklcjlkLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQl4b3JsCSVyMTFkLCVyMTJkCi0JYWRkbAkxMiglcjE1KSwlcjEwZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNDQoJXJzaSksJWVieAotCWFkZGwJJDM1NzI0NDUzMTcsJXIxMGQKLQltb3Z6YmwJJWFsLCVlYXgKLQlhZGRsCSVyMTJkLCVyMTBkCi0JbW92bAklZWR4LDQwKCVyc2kpCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTYsJXIxMGQKLQltb3ZsCSVyOGQsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjEwZCwlcjEyZAotCWFkZGwJMjQoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNDgoJXJzaSksJWVheAotCWFkZGwJJDc2MDI5MTg5LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyOWQKLQltb3ZsCSVlZHgsNDQoJXJzaSkKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMywlcjlkCi0JbW92bAklcjExZCwlcjEyZAotCXBpbnNydwkkNSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMzYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNTIoJXJzaSksJWVieAotCWFkZGwJJDM2NTQ2MDI4MDksJXI4ZAotCW1vdnpibAklYWwsJWVheAotCWFkZGwJJXIxMmQsJXI4ZAotCW1vdmwJJWVkeCw0OCglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDQsJXI4ZAotCW1vdmwJJXIxMGQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0JeG9ybAklcjhkLCVyMTJkCi0JYWRkbAk0OCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNTYoJXJzaSksJWVheAotCWFkZGwJJDM4NzMxNTE0NjEsJXIxMWQKLQltb3Z6YmwJJWJsLCVlYngKLQlhZGRsCSVyMTJkLCVyMTFkCi0JbW92bAklZWR4LDUyKCVyc2kpCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMTEsJXIxMWQKLQltb3ZsCSVyOWQsJXIxMmQKLQlwaW5zcncJJDYsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTYwKCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk2MCglcnNpKSwlZWJ4Ci0JYWRkbAkkNTMwNzQyNTIwLCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JYWRkbAklcjEyZCwlcjEwZAotCW1vdmwJJWVkeCw1NiglcnNpKQotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE2LCVyMTBkCi0JbW92bAklcjhkLCVyMTJkCi0JcGluc3J3CSQ3LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZkcXUJMzIoJXIxMyksJXhtbTQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCXhvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTgoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJNjQoJXJzaSksJWVheAotCWFkZGwJJDMyOTk2Mjg2NDUsJXI5ZAotCW1vdnpibAklYmwsJWVieAotCWFkZGwJJXIxMmQsJXI5ZAotCW1vdmwJJWVkeCw2MCglcnNpKQotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIzLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQlwc2xscQkkOCwleG1tMQotCXB4b3IJJXhtbTAsJXhtbTQKLQlweG9yCSV4bW0xLCV4bW00Ci0JcHhvcgkleG1tMCwleG1tMAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyOWQsJXIxMmQKLQlhZGRsCTAoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJNjgoJXJzaSksJWVieAotCWFkZGwJJDQwOTYzMzY0NTIsJXI4ZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlZHgsNjQoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQ2LCVyOGQKLQltb3ZsCSQtMSwlcjEyZAotCW1vdmQJKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQlweG9yCSV4bW0xLCV4bW0xCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMjgoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTcyKCVyc2kpLCVlYXgKLQlhZGRsCSQxMTI2ODkxNDE1LCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDY4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEwLCVyMTFkCi0JbW92bAkkLTEsJXIxMmQKLQltb3ZkCSglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTU2KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk3NiglcnNpKSwlZWJ4Ci0JYWRkbAkkMjg3ODYxMjM5MSwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVkeCw3MiglcnNpKQotCWFkZGwJJXIxMmQsJXIxMGQKLQlhZGRiCSVibCwlY2wKLQlyb2xsCSQxNSwlcjEwZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQxLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXIxMWQsJXIxMGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVieCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyMTBkLCVyMTJkCi0JYWRkbAkyMCglcjE1KSwlcjlkCi0JYWRkYgklZGwsJWJsCi0JbW92bAk4MCglcnNpKSwlZWF4Ci0JYWRkbAkkNDIzNzUzMzI0MSwlcjlkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVkeCw3NiglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIxLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkMSwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCW9ybAklcjlkLCVyMTJkCi0JYWRkbAk0OCglcjE1KSwlcjhkCi0JYWRkYgklZGwsJWFsCi0JbW92bAk4NCglcnNpKSwlZWJ4Ci0JYWRkbAkkMTcwMDQ4NTU3MSwlcjhkCi0JbW92emJsCSVhbCwlZWF4Ci0JeG9ybAklcjEwZCwlcjEyZAotCW1vdmwJJWVkeCw4MCglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDYsJXI4ZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQyLCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJMTIoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTg4KCVyc2kpLCVlYXgKLQlhZGRsCSQyMzk5OTgwNjkwLCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDg0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjExZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDEwLCVyMTFkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDIsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjhkLCVyMTFkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyOWQsJXIxMmQKLQltb3ZsCSVlYXgsKCVyZGksJXJjeCw0KQotCW9ybAklcjExZCwlcjEyZAotCWFkZGwJNDAoJXIxNSksJXIxMGQKLQlhZGRiCSVkbCwlYWwKLQltb3ZsCTkyKCVyc2kpLCVlYngKLQlhZGRsCSQ0MjkzOTE1NzczLCVyMTBkCi0JbW92emJsCSVhbCwlZWF4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWR4LDg4KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE1LCVyMTBkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTQoJXIxNSksJXI5ZAotCWFkZGIJJWRsLCVibAotCW1vdmwJOTYoJXJzaSksJWVheAotCWFkZGwJJDIyNDAwNDQ0OTcsJXI5ZAotCW1vdnpibAklYmwsJWVieAotCXhvcmwJJXIxMWQsJXIxMmQKLQltb3ZsCSVlZHgsOTIoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMSwlcjlkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDMsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMzIoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTAwKCVyc2kpLCVlYngKLQlhZGRsCSQxODczMzEzMzU5LCVyOGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWR4LDk2KCVyc2kpCi0JYWRkbAklcjEyZCwlcjhkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkNiwlcjhkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDQsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjlkLCVyOGQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXIxMGQsJXIxMmQKLQltb3ZsCSVlYngsKCVyZGksJXJjeCw0KQotCW9ybAklcjhkLCVyMTJkCi0JYWRkbAk2MCglcjE1KSwlcjExZAotCWFkZGIJJWRsLCVibAotCW1vdmwJMTA0KCVyc2kpLCVlYXgKLQlhZGRsCSQ0MjY0MzU1NTUyLCVyMTFkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWR4LDEwMCglcnNpKQotCWFkZGwJJXIxMmQsJXIxMWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQxMCwlcjExZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQ0LCglcmRpLCVyYngsNCksJXhtbTEKLQotCWFkZGwJJXI4ZCwlcjExZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjlkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMWQsJXIxMmQKLQlhZGRsCTI0KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMDgoJXJzaSksJWVieAotCWFkZGwJJDI3MzQ3Njg5MTYsJXIxMGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyOGQsJXIxMmQKLQltb3ZsCSVlZHgsMTA0KCVyc2kpCi0JYWRkbAklcjEyZCwlcjEwZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDE1LCVyMTBkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJheCw0KSwleG1tMAotCi0JYWRkbAklcjExZCwlcjEwZAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTUyKCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTExMiglcnNpKSwlZWF4Ci0JYWRkbAkkMTMwOTE1MTY0OSwlcjlkCi0JbW92emJsCSVibCwlZWJ4Ci0JeG9ybAklcjExZCwlcjEyZAotCW1vdmwJJWVkeCwxMDgoJXJzaSkKLQlhZGRsCSVyMTJkLCVyOWQKLQlhZGRiCSVhbCwlY2wKLQlyb2xsCSQyMSwlcjlkCi0JbW92bAkkLTEsJXIxMmQKLQlwaW5zcncJJDUsKCVyZGksJXJieCw0KSwleG1tMQotCi0JYWRkbAklcjEwZCwlcjlkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWF4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI5ZCwlcjEyZAotCWFkZGwJMTYoJXIxNSksJXI4ZAotCWFkZGIJJWRsLCVhbAotCW1vdmwJMTE2KCVyc2kpLCVlYngKLQlhZGRsCSQ0MTQ5NDQ0MjI2LCVyOGQKLQltb3Z6YmwJJWFsLCVlYXgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWR4LDExMiglcnNpKQotCWFkZGwJJXIxMmQsJXI4ZAotCWFkZGIJJWJsLCVjbAotCXJvbGwJJDYsJXI4ZAotCW1vdmwJJC0xLCVyMTJkCi0JcGluc3J3CSQ2LCglcmRpLCVyYXgsNCksJXhtbTAKLQotCWFkZGwJJXI5ZCwlcjhkCi0JbW92bAkoJXJkaSwlcmN4LDQpLCVlZHgKLQl4b3JsCSVyMTBkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXI4ZCwlcjEyZAotCWFkZGwJNDQoJXIxNSksJXIxMWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTEyMCglcnNpKSwlZWF4Ci0JYWRkbAkkMzE3NDc1NjkxNywlcjExZAotCW1vdnpibAklYmwsJWVieAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVkeCwxMTYoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTFkCi0JYWRkYgklYWwsJWNsCi0Jcm9sbAkkMTAsJXIxMWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNiwoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyOGQsJXIxMWQKLQltb3ZsCSglcmRpLCVyY3gsNCksJWVkeAotCXhvcmwJJXI5ZCwlcjEyZAotCW1vdmwJJWVheCwoJXJkaSwlcmN4LDQpCi0Jb3JsCSVyMTFkLCVyMTJkCi0JYWRkbAk4KCVyMTUpLCVyMTBkCi0JYWRkYgklZGwsJWFsCi0JbW92bAkxMjQoJXJzaSksJWVieAotCWFkZGwJJDcxODc4NzI1OSwlcjEwZAotCW1vdnpibAklYWwsJWVheAotCXhvcmwJJXI4ZCwlcjEyZAotCW1vdmwJJWVkeCwxMjAoJXJzaSkKLQlhZGRsCSVyMTJkLCVyMTBkCi0JYWRkYgklYmwsJWNsCi0Jcm9sbAkkMTUsJXIxMGQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmF4LDQpLCV4bW0wCi0KLQlhZGRsCSVyMTFkLCVyMTBkCi0JbW92ZHF1CTQ4KCVyMTMpLCV4bW01Ci0JYWRkYgkkMzIsJWJwbAotCW1vdmwJKCVyZGksJXJjeCw0KSwlZWR4Ci0JeG9ybAklcjhkLCVyMTJkCi0JbW92bAklZWJ4LCglcmRpLCVyY3gsNCkKLQlvcmwJJXIxMGQsJXIxMmQKLQlhZGRsCTM2KCVyMTUpLCVyOWQKLQlhZGRiCSVkbCwlYmwKLQltb3ZsCTAoJXJkaSwlcmJwLDQpLCVlYXgKLQlhZGRsCSQzOTUxNDgxNzQ1LCVyOWQKLQltb3Z6YmwJJWJsLCVlYngKLQl4b3JsCSVyMTFkLCVyMTJkCi0JbW92bAklZWR4LDEyNCglcnNpKQotCWFkZGwJJXIxMmQsJXI5ZAotCWFkZGIJJWFsLCVjbAotCXJvbGwJJDIxLCVyOWQKLQltb3ZsCSQtMSwlcjEyZAotCXBpbnNydwkkNywoJXJkaSwlcmJ4LDQpLCV4bW0xCi0KLQlhZGRsCSVyMTBkLCVyOWQKLQltb3ZxCSVyYnAsJXJzaQotCXhvcnEJJXJicCwlcmJwCi0JbW92Ygklc2lsLCVicGwKLQltb3ZxCSVyY3gsJXJzaQotCXhvcnEJJXJjeCwlcmN4Ci0JbW92Ygklc2lsLCVjbAotCWxlYXEJKCVyZGksJXJicCw0KSwlcnNpCi0JcHNsbHEJJDgsJXhtbTEKLQlweG9yCSV4bW0wLCV4bW01Ci0JcHhvcgkleG1tMSwleG1tNQotCWFkZGwJMCglcnNwKSwlcjhkCi0JYWRkbAk0KCVyc3ApLCVyOWQKLQlhZGRsCTgoJXJzcCksJXIxMGQKLQlhZGRsCTEyKCVyc3ApLCVyMTFkCi0KLQltb3ZkcXUJJXhtbTIsKCVyMTQsJXIxMywxKQotCW1vdmRxdQkleG1tMywxNiglcjE0LCVyMTMsMSkKLQltb3ZkcXUJJXhtbTQsMzIoJXIxNCwlcjEzLDEpCi0JbW92ZHF1CSV4bW01LDQ4KCVyMTQsJXIxMywxKQotCWxlYXEJNjQoJXIxNSksJXIxNQotCWxlYXEJNjQoJXIxMyksJXIxMwotCWNtcHEJMTYoJXJzcCksJXIxNQotCWpiCUwkb29wCi0KLQltb3ZxCTI0KCVyc3ApLCVyMTIKLQlzdWJiCSVhbCwlY2wKLQltb3ZsCSVyOGQsMCglcjEyKQotCW1vdmwJJXI5ZCw0KCVyMTIpCi0JbW92bAklcjEwZCw4KCVyMTIpCi0JbW92bAklcjExZCwxMiglcjEyKQotCXN1YmIJJDEsJWJwbAotCW1vdmwJJWVicCwtOCglcmRpKQotCW1vdmwJJWVjeCwtNCglcmRpKQotCi0JbW92cQk0MCglcnNwKSwlcjE1Ci0JbW92cQk0OCglcnNwKSwlcjE0Ci0JbW92cQk1NiglcnNwKSwlcjEzCi0JbW92cQk2NCglcnNwKSwlcjEyCi0JbW92cQk3MiglcnNwKSwlcmJwCi0JbW92cQk4MCglcnNwKSwlcmJ4Ci0JbGVhcQk4OCglcnNwKSwlcnNwCi1MJGVwaWxvZ3VlOgotTCRhYm9ydDoKLQkuYnl0ZQkweGYzLDB4YzMKLQotI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LlMgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LlMKaW5kZXggMDQ0ZGM1Yi4uMDUwOWQ0NSAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGExLXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuUwpAQCAtMTIsNiArMTIsMTEgQEAKIAltb3ZsCV9PUEVOU1NMX2lhMzJjYXBfUCs4KCVyaXApLCVyMTBkCiAJdGVzdGwJJDUxMiwlcjhkCiAJanoJTCRpYWx1CisJYW5kbAkkMjY4NDM1NDU2LCVyOGQKKwlhbmRsCSQxMDczNzQxODI0LCVyOWQKKwlvcmwJJXI5ZCwlcjhkCisJY21wbAkkMTM0MjE3NzI4MCwlcjhkCisJamUJX2F2eF9zaG9ydGN1dAogCWptcAlfc3NzZTNfc2hvcnRjdXQKIAogLnAyYWxpZ24JNApAQCAtMjQwNyw2ICsyNDEyLDExMjIgQEAKIEwkZXBpbG9ndWVfc3NzZTM6CiAJLmJ5dGUJMHhmMywweGMzCiAKKworLnAyYWxpZ24JNAorc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eDoKK19hdnhfc2hvcnRjdXQ6CisJbW92cQklcnNwLCVyYXgKKwlwdXNocQklcmJ4CisJcHVzaHEJJXJicAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCWxlYXEJLTY0KCVyc3ApLCVyc3AKKwl2emVyb3VwcGVyCisJbW92cQklcmF4LCVyMTQKKwlhbmRxCSQtNjQsJXJzcAorCW1vdnEJJXJkaSwlcjgKKwltb3ZxCSVyc2ksJXI5CisJbW92cQklcmR4LCVyMTAKKworCXNobHEJJDYsJXIxMAorCWFkZHEJJXI5LCVyMTAKKwlsZWFxCUtfWFhfWFgrNjQoJXJpcCksJXIxMQorCisJbW92bAkwKCVyOCksJWVheAorCW1vdmwJNCglcjgpLCVlYngKKwltb3ZsCTgoJXI4KSwlZWN4CisJbW92bAkxMiglcjgpLCVlZHgKKwltb3ZsCSVlYngsJWVzaQorCW1vdmwJMTYoJXI4KSwlZWJwCisJbW92bAklZWN4LCVlZGkKKwl4b3JsCSVlZHgsJWVkaQorCWFuZGwJJWVkaSwlZXNpCisKKwl2bW92ZHFhCTY0KCVyMTEpLCV4bW02CisJdm1vdmRxYQktNjQoJXIxMSksJXhtbTExCisJdm1vdmRxdQkwKCVyOSksJXhtbTAKKwl2bW92ZHF1CTE2KCVyOSksJXhtbTEKKwl2bW92ZHF1CTMyKCVyOSksJXhtbTIKKwl2bW92ZHF1CTQ4KCVyOSksJXhtbTMKKwl2cHNodWZiCSV4bW02LCV4bW0wLCV4bW0wCisJYWRkcQkkNjQsJXI5CisJdnBzaHVmYgkleG1tNiwleG1tMSwleG1tMQorCXZwc2h1ZmIJJXhtbTYsJXhtbTIsJXhtbTIKKwl2cHNodWZiCSV4bW02LCV4bW0zLCV4bW0zCisJdnBhZGRkCSV4bW0xMSwleG1tMCwleG1tNAorCXZwYWRkZAkleG1tMTEsJXhtbTEsJXhtbTUKKwl2cGFkZGQJJXhtbTExLCV4bW0yLCV4bW02CisJdm1vdmRxYQkleG1tNCwwKCVyc3ApCisJdm1vdmRxYQkleG1tNSwxNiglcnNwKQorCXZtb3ZkcWEJJXhtbTYsMzIoJXJzcCkKKwlqbXAJTCRvb3BfYXZ4CisucDJhbGlnbgk0CitMJG9vcF9hdng6CisJc2hyZGwJJDIsJWVieCwlZWJ4CisJeG9ybAklZWR4LCVlc2kKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tNAorCW1vdmwJJWVheCwlZWRpCisJYWRkbAkwKCVyc3ApLCVlYnAKKwl2cGFkZGQJJXhtbTMsJXhtbTExLCV4bW05CisJeG9ybAklZWN4LCVlYngKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwl2cHNybGRxCSQ0LCV4bW0zLCV4bW04CisJYWRkbAklZXNpLCVlYnAKKwlhbmRsCSVlYngsJWVkaQorCXZweG9yCSV4bW0wLCV4bW00LCV4bW00CisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCXZweG9yCSV4bW0yLCV4bW04LCV4bW04CisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYnAsJWVzaQorCWFkZGwJNCglcnNwKSwlZWR4CisJdnB4b3IJJXhtbTgsJXhtbTQsJXhtbTQKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlYnAsJWVicAorCXZtb3ZkcWEJJXhtbTksNDgoJXJzcCkKKwlhZGRsCSVlZGksJWVkeAorCWFuZGwJJWVheCwlZXNpCisJdnBzcmxkCSQzMSwleG1tNCwleG1tOAorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXZwc2xsZHEJJDEyLCV4bW00LCV4bW0xMAorCXZwYWRkZAkleG1tNCwleG1tNCwleG1tNAorCW1vdmwJJWVkeCwlZWRpCisJYWRkbAk4KCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc3JsZAkkMzAsJXhtbTEwLCV4bW05CisJdnBvcgkleG1tOCwleG1tNCwleG1tNAorCWFkZGwJJWVzaSwlZWN4CisJYW5kbAklZWJwLCVlZGkKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJdnBzbGxkCSQyLCV4bW0xMCwleG1tMTAKKwl2cHhvcgkleG1tOSwleG1tNCwleG1tNAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWN4LCVlc2kKKwlhZGRsCTEyKCVyc3ApLCVlYngKKwl2cHhvcgkleG1tMTAsJXhtbTQsJXhtbTQKKwl4b3JsCSVlYnAsJWVkeAorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJYW5kbAklZWR4LCVlc2kKKwl4b3JsCSVlYnAsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJeG9ybAklZWJwLCVlc2kKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tNQorCW1vdmwJJWVieCwlZWRpCisJYWRkbAkxNiglcnNwKSwlZWF4CisJdnBhZGRkCSV4bW00LCV4bW0xMSwleG1tOQorCXhvcmwJJWVkeCwlZWN4CisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdnBzcmxkcQkkNCwleG1tNCwleG1tOAorCWFkZGwJJWVzaSwlZWF4CisJYW5kbAklZWN4LCVlZGkKKwl2cHhvcgkleG1tMSwleG1tNSwleG1tNQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cHhvcgkleG1tMywleG1tOCwleG1tOAorCXNocmRsCSQ3LCVlYngsJWVieAorCXhvcmwJJWVkeCwlZWRpCisJbW92bAklZWF4LCVlc2kKKwlhZGRsCTIwKCVyc3ApLCVlYnAKKwl2cHhvcgkleG1tOCwleG1tNSwleG1tNQorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdm1vdmRxYQkleG1tOSwwKCVyc3ApCisJYWRkbAklZWRpLCVlYnAKKwlhbmRsCSVlYngsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTUsJXhtbTgKKwl4b3JsCSVlY3gsJWVieAorCWFkZGwJJWVheCwlZWJwCisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNSwleG1tMTAKKwl2cGFkZGQJJXhtbTUsJXhtbTUsJXhtbTUKKwltb3ZsCSVlYnAsJWVkaQorCWFkZGwJMjQoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZWF4CisJc2hsZGwJJDUsJWVicCwlZWJwCisJdnBzcmxkCSQzMCwleG1tMTAsJXhtbTkKKwl2cG9yCSV4bW04LCV4bW01LCV4bW01CisJYWRkbAklZXNpLCVlZHgKKwlhbmRsCSVlYXgsJWVkaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwl2cHNsbGQJJDIsJXhtbTEwLCV4bW0xMAorCXZweG9yCSV4bW05LCV4bW01LCV4bW01CisJc2hyZGwJJDcsJWVicCwlZWJwCisJeG9ybAklZWJ4LCVlZGkKKwltb3ZsCSVlZHgsJWVzaQorCWFkZGwJMjgoJXJzcCksJWVjeAorCXZweG9yCSV4bW0xMCwleG1tNSwleG1tNQorCXhvcmwJJWVheCwlZWJwCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdm1vdmRxYQktMzIoJXIxMSksJXhtbTExCisJYWRkbAklZWRpLCVlY3gKKwlhbmRsCSVlYnAsJWVzaQorCXhvcmwJJWVheCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl4b3JsCSVlYXgsJWVzaQorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW02CisJbW92bAklZWN4LCVlZGkKKwlhZGRsCTMyKCVyc3ApLCVlYngKKwl2cGFkZGQJJXhtbTUsJXhtbTExLCV4bW05CisJeG9ybAklZWJwLCVlZHgKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2cHNybGRxCSQ0LCV4bW01LCV4bW04CisJYWRkbAklZXNpLCVlYngKKwlhbmRsCSVlZHgsJWVkaQorCXZweG9yCSV4bW0yLCV4bW02LCV4bW02CisJeG9ybAklZWJwLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZweG9yCSV4bW00LCV4bW04LCV4bW04CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCWFkZGwJMzYoJXJzcCksJWVheAorCXZweG9yCSV4bW04LCV4bW02LCV4bW02CisJeG9ybAklZWR4LCVlY3gKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJYWRkbAklZWRpLCVlYXgKKwlhbmRsCSVlY3gsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTYsJXhtbTgKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJeG9ybAklZWR4LCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNiwleG1tMTAKKwl2cGFkZGQJJXhtbTYsJXhtbTYsJXhtbTYKKwltb3ZsCSVlYXgsJWVkaQorCWFkZGwJNDAoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkCSQzMCwleG1tMTAsJXhtbTkKKwl2cG9yCSV4bW04LCV4bW02LCV4bW02CisJYWRkbAklZXNpLCVlYnAKKwlhbmRsCSVlYngsJWVkaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cHNsbGQJJDIsJXhtbTEwLCV4bW0xMAorCXZweG9yCSV4bW05LCV4bW02LCV4bW02CisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYnAsJWVzaQorCWFkZGwJNDQoJXJzcCksJWVkeAorCXZweG9yCSV4bW0xMCwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWF4CisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZWRpLCVlZHgKKwlhbmRsCSVlYXgsJWVzaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW03CisJbW92bAklZWR4LCVlZGkKKwlhZGRsCTQ4KCVyc3ApLCVlY3gKKwl2cGFkZGQJJXhtbTYsJXhtbTExLCV4bW05CisJeG9ybAklZWF4LCVlYnAKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwl2cHNybGRxCSQ0LCV4bW02LCV4bW04CisJYWRkbAklZXNpLCVlY3gKKwlhbmRsCSVlYnAsJWVkaQorCXZweG9yCSV4bW0zLCV4bW03LCV4bW03CisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZweG9yCSV4bW01LCV4bW04LCV4bW04CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCWFkZGwJNTIoJXJzcCksJWVieAorCXZweG9yCSV4bW04LCV4bW03LCV4bW03CisJeG9ybAklZWJwLCVlZHgKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwl2bW92ZHFhCSV4bW05LDMyKCVyc3ApCisJYWRkbAklZWRpLCVlYngKKwlhbmRsCSVlZHgsJWVzaQorCXZwc3JsZAkkMzEsJXhtbTcsJXhtbTgKKwl4b3JsCSVlYnAsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJeG9ybAklZWJwLCVlc2kKKwl2cHNsbGRxCSQxMiwleG1tNywleG1tMTAKKwl2cGFkZGQJJXhtbTcsJXhtbTcsJXhtbTcKKwltb3ZsCSVlYngsJWVkaQorCWFkZGwJNTYoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZWN4CisJc2hsZGwJJDUsJWVieCwlZWJ4CisJdnBzcmxkCSQzMCwleG1tMTAsJXhtbTkKKwl2cG9yCSV4bW04LCV4bW03LCV4bW03CisJYWRkbAklZXNpLCVlYXgKKwlhbmRsCSVlY3gsJWVkaQorCXhvcmwJJWVkeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cHNsbGQJJDIsJXhtbTEwLCV4bW0xMAorCXZweG9yCSV4bW05LCV4bW03LCV4bW03CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCWFkZGwJNjAoJXJzcCksJWVicAorCXZweG9yCSV4bW0xMCwleG1tNywleG1tNworCXhvcmwJJWVjeCwlZWJ4CisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwlhbmRsCSVlYngsJWVzaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cGFsaWducgkkOCwleG1tNiwleG1tNywleG1tOAorCXZweG9yCSV4bW00LCV4bW0wLCV4bW0wCisJc2hyZGwJJDcsJWVheCwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCWFkZGwJMCglcnNwKSwlZWR4CisJdnB4b3IJJXhtbTEsJXhtbTAsJXhtbTAKKwl4b3JsCSVlYngsJWVheAorCXNobGRsCSQ1LCVlYnAsJWVicAorCXZwYWRkZAkleG1tNywleG1tMTEsJXhtbTkKKwlhZGRsCSVlc2ksJWVkeAorCWFuZGwJJWVheCwlZWRpCisJdnB4b3IJJXhtbTgsJXhtbTAsJXhtbTAKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVicCwlZWJwCisJeG9ybAklZWJ4LCVlZGkKKwl2cHNybGQJJDMwLCV4bW0wLCV4bW04CisJdm1vdmRxYQkleG1tOSw0OCglcnNwKQorCW1vdmwJJWVkeCwlZXNpCisJYWRkbAk0KCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVicAorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwc2xsZAkkMiwleG1tMCwleG1tMAorCWFkZGwJJWVkaSwlZWN4CisJYW5kbAklZWJwLCVlc2kKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJc2hyZGwJJDcsJWVkeCwlZWR4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlY3gsJWVkaQorCWFkZGwJOCglcnNwKSwlZWJ4CisJdnBvcgkleG1tOCwleG1tMCwleG1tMAorCXhvcmwJJWVicCwlZWR4CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwlhbmRsCSVlZHgsJWVkaQorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTEyKCVyc3ApLCVlYXgKKwl4b3JsCSVlYnAsJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWRpLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTgKKwl2cHhvcgkleG1tNSwleG1tMSwleG1tMQorCWFkZGwJMTYoJXJzcCksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJbW92bAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwl2cHhvcgkleG1tMiwleG1tMSwleG1tMQorCWFkZGwJJWVzaSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwl2cGFkZGQJJXhtbTAsJXhtbTExLCV4bW05CisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cHhvcgkleG1tOCwleG1tMSwleG1tMQorCWFkZGwJMjAoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwl2cHNybGQJJDMwLCV4bW0xLCV4bW04CisJdm1vdmRxYQkleG1tOSwwKCVyc3ApCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBzbGxkCSQyLCV4bW0xLCV4bW0xCisJYWRkbAkyNCglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWF4LCVlZGkKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZwb3IJJXhtbTgsJXhtbTEsJXhtbTEKKwlhZGRsCTI4KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWRpLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJdnBhbGlnbnIJJDgsJXhtbTAsJXhtbTEsJXhtbTgKKwl2cHhvcgkleG1tNiwleG1tMiwleG1tMgorCWFkZGwJMzIoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwl2cHhvcgkleG1tMywleG1tMiwleG1tMgorCWFkZGwJJWVzaSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwl2cGFkZGQJJXhtbTEsJXhtbTExLCV4bW05CisJdm1vdmRxYQkwKCVyMTEpLCV4bW0xMQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnB4b3IJJXhtbTgsJXhtbTIsJXhtbTIKKwlhZGRsCTM2KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnBzcmxkCSQzMCwleG1tMiwleG1tOAorCXZtb3ZkcWEJJXhtbTksMTYoJXJzcCkKKwlhZGRsCSVlZGksJWVicAorCXhvcmwJJWVjeCwlZXNpCisJc2hyZGwJJDcsJWVieCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cHNsbGQJJDIsJXhtbTIsJXhtbTIKKwlhZGRsCTQwKCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCW1vdmwJJWVicCwlZWRpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBvcgkleG1tOCwleG1tMiwleG1tMgorCWFkZGwJNDQoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2cGFsaWducgkkOCwleG1tMSwleG1tMiwleG1tOAorCXZweG9yCSV4bW03LCV4bW0zLCV4bW0zCisJYWRkbAk0OCglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwltb3ZsCSVlY3gsJWVkaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZweG9yCSV4bW00LCV4bW0zLCV4bW0zCisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXZwYWRkZAkleG1tMiwleG1tMTEsJXhtbTkKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZweG9yCSV4bW04LCV4bW0zLCV4bW0zCisJYWRkbAk1MiglcnNwKSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCXZwc3JsZAkkMzAsJXhtbTMsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDMyKCVyc3ApCisJYWRkbAklZWRpLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBzbGxkCSQyLCV4bW0zLCV4bW0zCisJYWRkbAk1NiglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCXZwb3IJJXhtbTgsJXhtbTMsJXhtbTMKKwlhZGRsCTYwKCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCW1vdmwJJWVicCwlZXNpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnBhbGlnbnIJJDgsJXhtbTIsJXhtbTMsJXhtbTgKKwl2cHhvcgkleG1tMCwleG1tNCwleG1tNAorCWFkZGwJMCglcnNwKSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwltb3ZsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXZwYWRkZAkleG1tMywleG1tMTEsJXhtbTkKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZweG9yCSV4bW04LCV4bW00LCV4bW00CisJYWRkbAk0KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCW1vdmwJJWVjeCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJdnBzcmxkCSQzMCwleG1tNCwleG1tOAorCXZtb3ZkcWEJJXhtbTksNDgoJXJzcCkKKwlhZGRsCSVlZGksJWVieAorCXhvcmwJJWVicCwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cHNsbGQJJDIsJXhtbTQsJXhtbTQKKwlhZGRsCTgoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2cG9yCSV4bW04LCV4bW00LCV4bW00CisJYWRkbAkxMiglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCXZwYWxpZ25yCSQ4LCV4bW0zLCV4bW00LCV4bW04CisJdnB4b3IJJXhtbTEsJXhtbTUsJXhtbTUKKwlhZGRsCTE2KCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVzaQorCW1vdmwJJWVicCwlZWRpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJdnB4b3IJJXhtbTYsJXhtbTUsJXhtbTUKKwlhZGRsCSVlc2ksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJdnBhZGRkCSV4bW00LCV4bW0xMSwleG1tOQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdnB4b3IJJXhtbTgsJXhtbTUsJXhtbTUKKwlhZGRsCTIwKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCW1vdmwJJWVkeCwlZXNpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJdnBzcmxkCSQzMCwleG1tNSwleG1tOAorCXZtb3ZkcWEJJXhtbTksMCglcnNwKQorCWFkZGwJJWVkaSwlZWN4CisJeG9ybAklZWF4LCVlc2kKKwlzaHJkbAkkNywlZWJwLCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZwc2xsZAkkMiwleG1tNSwleG1tNQorCWFkZGwJMjQoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZXNpCisJbW92bAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVicCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2cG9yCSV4bW04LCV4bW01LCV4bW01CisJYWRkbAkyOCglcnNwKSwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl4b3JsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTgKKwl2cHhvcgkleG1tMiwleG1tNiwleG1tNgorCWFkZGwJMzIoJXJzcCksJWVicAorCWFuZGwJJWVjeCwlZXNpCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCW1vdmwJJWVheCwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwl2cGFkZGQJJXhtbTUsJXhtbTExLCV4bW05CisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZXNpLCVlYnAKKwl2cHhvcgkleG1tOCwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWRpCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJMzYoJXJzcCksJWVkeAorCXZwc3JsZAkkMzAsJXhtbTYsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJYW5kbAklZWJ4LCVlZGkKKwl4b3JsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlYXgsJWVheAorCW1vdmwJJWVicCwlZXNpCisJdnBzbGxkCSQyLCV4bW02LCV4bW02CisJeG9ybAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlZGksJWVkeAorCXhvcmwJJWVheCwlZXNpCisJeG9ybAklZWJ4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJNDAoJXJzcCksJWVjeAorCWFuZGwJJWVheCwlZXNpCisJdnBvcgkleG1tOCwleG1tNiwleG1tNgorCXhvcmwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVicCwlZWJwCisJbW92bAklZWR4LCVlZGkKKwl4b3JsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVzaSwlZWN4CisJeG9ybAklZWJwLCVlZGkKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAk0NCglcnNwKSwlZWJ4CisJYW5kbAklZWJwLCVlZGkKKwl4b3JsCSVlYXgsJWVicAorCXNocmRsCSQ3LCVlZHgsJWVkeAorCW1vdmwJJWVjeCwlZXNpCisJeG9ybAklZWJwLCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlZGksJWVieAorCXhvcmwJJWVkeCwlZXNpCisJeG9ybAklZWJwLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCXZwYWxpZ25yCSQ4LCV4bW01LCV4bW02LCV4bW04CisJdnB4b3IJJXhtbTMsJXhtbTcsJXhtbTcKKwlhZGRsCTQ4KCVyc3ApLCVlYXgKKwlhbmRsCSVlZHgsJWVzaQorCXhvcmwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJdnB4b3IJJXhtbTAsJXhtbTcsJXhtbTcKKwltb3ZsCSVlYngsJWVkaQorCXhvcmwJJWVkeCwlZXNpCisJdnBhZGRkCSV4bW02LCV4bW0xMSwleG1tOQorCXZtb3ZkcWEJMzIoJXIxMSksJXhtbTExCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl2cHhvcgkleG1tOCwleG1tNywleG1tNworCXhvcmwJJWVjeCwlZWRpCisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJNTIoJXJzcCksJWVicAorCXZwc3JsZAkkMzAsJXhtbTcsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDMyKCVyc3ApCisJYW5kbAklZWN4LCVlZGkKKwl4b3JsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlYngsJWVieAorCW1vdmwJJWVheCwlZXNpCisJdnBzbGxkCSQyLCV4bW03LCV4bW03CisJeG9ybAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlZGksJWVicAorCXhvcmwJJWVieCwlZXNpCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJNTYoJXJzcCksJWVkeAorCWFuZGwJJWVieCwlZXNpCisJdnBvcgkleG1tOCwleG1tNywleG1tNworCXhvcmwJJWVjeCwlZWJ4CisJc2hyZGwJJDcsJWVheCwlZWF4CisJbW92bAklZWJwLCVlZGkKKwl4b3JsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWF4LCVlZGkKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJYWRkbAk2MCglcnNwKSwlZWN4CisJYW5kbAklZWF4LCVlZGkKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYnAsJWVicAorCW1vdmwJJWVkeCwlZXNpCisJeG9ybAklZWF4LCVlZGkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVicCwlZXNpCisJeG9ybAklZWF4LCVlYnAKKwlhZGRsCSVlZHgsJWVjeAorCXZwYWxpZ25yCSQ4LCV4bW02LCV4bW03LCV4bW04CisJdnB4b3IJJXhtbTQsJXhtbTAsJXhtbTAKKwlhZGRsCTAoJXJzcCksJWVieAorCWFuZGwJJWVicCwlZXNpCisJeG9ybAklZWF4LCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwl2cHhvcgkleG1tMSwleG1tMCwleG1tMAorCW1vdmwJJWVjeCwlZWRpCisJeG9ybAklZWJwLCVlc2kKKwl2cGFkZGQJJXhtbTcsJXhtbTExLCV4bW05CisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl2cHhvcgkleG1tOCwleG1tMCwleG1tMAorCXhvcmwJJWVkeCwlZWRpCisJeG9ybAklZWJwLCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNCglcnNwKSwlZWF4CisJdnBzcmxkCSQzMCwleG1tMCwleG1tOAorCXZtb3ZkcWEJJXhtbTksNDgoJXJzcCkKKwlhbmRsCSVlZHgsJWVkaQorCXhvcmwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWN4LCVlc2kKKwl4b3JsCSVlZHgsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAk4KCVyc3ApLCVlYnAKKwlhbmRsCSVlY3gsJWVzaQorCXZwb3IJJXhtbTgsJXhtbTAsJXhtbTAKKwl4b3JsCSVlZHgsJWVjeAorCXNocmRsCSQ3LCVlYngsJWVieAorCW1vdmwJJWVheCwlZWRpCisJeG9ybAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWF4LCVlYXgKKwlhZGRsCSVlc2ksJWVicAorCXhvcmwJJWVieCwlZWRpCisJeG9ybAklZWN4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJMTIoJXJzcCksJWVkeAorCWFuZGwJJWVieCwlZWRpCisJeG9ybAklZWN4LCVlYngKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwltb3ZsCSVlYnAsJWVzaQorCXhvcmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJYWRkbAklZWRpLCVlZHgKKwl4b3JsCSVlYXgsJWVzaQorCXhvcmwJJWVieCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwl2cGFsaWducgkkOCwleG1tNywleG1tMCwleG1tOAorCXZweG9yCSV4bW01LCV4bW0xLCV4bW0xCisJYWRkbAkxNiglcnNwKSwlZWN4CisJYW5kbAklZWF4LCVlc2kKKwl4b3JsCSVlYngsJWVheAorCXNocmRsCSQ3LCVlYnAsJWVicAorCXZweG9yCSV4bW0yLCV4bW0xLCV4bW0xCisJbW92bAklZWR4LCVlZGkKKwl4b3JsCSVlYXgsJWVzaQorCXZwYWRkZAkleG1tMCwleG1tMTEsJXhtbTkKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlc2ksJWVjeAorCXZweG9yCSV4bW04LCV4bW0xLCV4bW0xCisJeG9ybAklZWJwLCVlZGkKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAkyMCglcnNwKSwlZWJ4CisJdnBzcmxkCSQzMCwleG1tMSwleG1tOAorCXZtb3ZkcWEJJXhtbTksMCglcnNwKQorCWFuZGwJJWVicCwlZWRpCisJeG9ybAklZWF4LCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwltb3ZsCSVlY3gsJWVzaQorCXZwc2xsZAkkMiwleG1tMSwleG1tMQorCXhvcmwJJWVicCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZWRpLCVlYngKKwl4b3JsCSVlZHgsJWVzaQorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTI0KCVyc3ApLCVlYXgKKwlhbmRsCSVlZHgsJWVzaQorCXZwb3IJJXhtbTgsJXhtbTEsJXhtbTEKKwl4b3JsCSVlYnAsJWVkeAorCXNocmRsCSQ3LCVlY3gsJWVjeAorCW1vdmwJJWVieCwlZWRpCisJeG9ybAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVjeCwlZWRpCisJeG9ybAklZWR4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJMjgoJXJzcCksJWVicAorCWFuZGwJJWVjeCwlZWRpCisJeG9ybAklZWR4LCVlY3gKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwltb3ZsCSVlYXgsJWVzaQorCXhvcmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlYngsJWVzaQorCXhvcmwJJWVjeCwlZWJ4CisJYWRkbAklZWF4LCVlYnAKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tOAorCXZweG9yCSV4bW02LCV4bW0yLCV4bW0yCisJYWRkbAkzMiglcnNwKSwlZWR4CisJYW5kbAklZWJ4LCVlc2kKKwl4b3JsCSVlY3gsJWVieAorCXNocmRsCSQ3LCVlYXgsJWVheAorCXZweG9yCSV4bW0zLCV4bW0yLCV4bW0yCisJbW92bAklZWJwLCVlZGkKKwl4b3JsCSVlYngsJWVzaQorCXZwYWRkZAkleG1tMSwleG1tMTEsJXhtbTkKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlc2ksJWVkeAorCXZweG9yCSV4bW04LCV4bW0yLCV4bW0yCisJeG9ybAklZWF4LCVlZGkKKwl4b3JsCSVlYngsJWVheAorCWFkZGwJJWVicCwlZWR4CisJYWRkbAkzNiglcnNwKSwlZWN4CisJdnBzcmxkCSQzMCwleG1tMiwleG1tOAorCXZtb3ZkcWEJJXhtbTksMTYoJXJzcCkKKwlhbmRsCSVlYXgsJWVkaQorCXhvcmwJJWVieCwlZWF4CisJc2hyZGwJJDcsJWVicCwlZWJwCisJbW92bAklZWR4LCVlc2kKKwl2cHNsbGQJJDIsJXhtbTIsJXhtbTIKKwl4b3JsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCWFkZGwJJWVkaSwlZWN4CisJeG9ybAklZWJwLCVlc2kKKwl4b3JsCSVlYXgsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAk0MCglcnNwKSwlZWJ4CisJYW5kbAklZWJwLCVlc2kKKwl2cG9yCSV4bW04LCV4bW0yLCV4bW0yCisJeG9ybAklZWF4LCVlYnAKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwltb3ZsCSVlY3gsJWVkaQorCXhvcmwJJWVicCwlZXNpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlZHgsJWVkaQorCXhvcmwJJWVicCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTQ0KCVyc3ApLCVlYXgKKwlhbmRsCSVlZHgsJWVkaQorCXhvcmwJJWVicCwlZWR4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJbW92bAklZWJ4LCVlc2kKKwl4b3JsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJeG9ybAklZWR4LCVlc2kKKwlhZGRsCSVlYngsJWVheAorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW04CisJdnB4b3IJJXhtbTcsJXhtbTMsJXhtbTMKKwlhZGRsCTQ4KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCW1vdmwJJWVheCwlZWRpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJdnB4b3IJJXhtbTQsJXhtbTMsJXhtbTMKKwlhZGRsCSVlc2ksJWVicAorCXhvcmwJJWVjeCwlZWRpCisJdnBhZGRkCSV4bW0yLCV4bW0xMSwleG1tOQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJdnB4b3IJJXhtbTgsJXhtbTMsJXhtbTMKKwlhZGRsCTUyKCVyc3ApLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCW1vdmwJJWVicCwlZXNpCisJc2hsZGwJJDUsJWVicCwlZWJwCisJdnBzcmxkCSQzMCwleG1tMywleG1tOAorCXZtb3ZkcWEJJXhtbTksMzIoJXJzcCkKKwlhZGRsCSVlZGksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwl2cHNsbGQJJDIsJXhtbTMsJXhtbTMKKwlhZGRsCTU2KCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJdnBvcgkleG1tOCwleG1tMywleG1tMworCWFkZGwJNjAoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZWRpCisJbW92bAklZWN4LCVlc2kKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlZGksJWVieAorCXhvcmwJJWVicCwlZXNpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTAoJXJzcCksJWVheAorCXZwYWRkZAkleG1tMywleG1tMTEsJXhtbTkKKwl4b3JsCSVlZHgsJWVzaQorCW1vdmwJJWVieCwlZWRpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZXNpLCVlYXgKKwl2bW92ZHFhCSV4bW05LDQ4KCVyc3ApCisJeG9ybAklZWR4LCVlZGkKKwlzaHJkbAkkNywlZWN4LCVlY3gKKwlhZGRsCSVlYngsJWVheAorCWFkZGwJNCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwltb3ZsCSVlYXgsJWVzaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVkaSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJOCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJMTIoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwljbXBxCSVyMTAsJXI5CisJamUJTCRkb25lX2F2eAorCXZtb3ZkcWEJNjQoJXIxMSksJXhtbTYKKwl2bW92ZHFhCS02NCglcjExKSwleG1tMTEKKwl2bW92ZHF1CTAoJXI5KSwleG1tMAorCXZtb3ZkcXUJMTYoJXI5KSwleG1tMQorCXZtb3ZkcXUJMzIoJXI5KSwleG1tMgorCXZtb3ZkcXUJNDgoJXI5KSwleG1tMworCXZwc2h1ZmIJJXhtbTYsJXhtbTAsJXhtbTAKKwlhZGRxCSQ2NCwlcjkKKwlhZGRsCTE2KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCXZwc2h1ZmIJJXhtbTYsJXhtbTEsJXhtbTEKKwltb3ZsCSVlY3gsJWVkaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCXZwYWRkZAkleG1tMTEsJXhtbTAsJXhtbTQKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVicCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwl2bW92ZHFhCSV4bW00LDAoJXJzcCkKKwlhZGRsCTIwKCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWRpLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyNCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJMjgoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlZGksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlhZGRsCTMyKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCXZwc2h1ZmIJJXhtbTYsJXhtbTIsJXhtbTIKKwltb3ZsCSVlZHgsJWVkaQorCXNobGRsCSQ1LCVlZHgsJWVkeAorCXZwYWRkZAkleG1tMTEsJXhtbTEsJXhtbTUKKwlhZGRsCSVlc2ksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwl2bW92ZHFhCSV4bW01LDE2KCVyc3ApCisJYWRkbAkzNiglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJYWRkbAk0OCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwl2cHNodWZiCSV4bW02LCV4bW0zLCV4bW0zCisJbW92bAklZWJwLCVlZGkKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwl2cGFkZGQJJXhtbTExLCV4bW0yLCV4bW02CisJYWRkbAklZXNpLCVlZHgKKwl4b3JsCSVlYngsJWVkaQorCXNocmRsCSQ3LCVlYXgsJWVheAorCWFkZGwJJWVicCwlZWR4CisJdm1vdmRxYQkleG1tNiwzMiglcnNwKQorCWFkZGwJNTIoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCW1vdmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglcnNwKSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTAoJXI4KSwlZWF4CisJYWRkbAk0KCVyOCksJWVzaQorCWFkZGwJOCglcjgpLCVlY3gKKwlhZGRsCTEyKCVyOCksJWVkeAorCW1vdmwJJWVheCwwKCVyOCkKKwlhZGRsCTE2KCVyOCksJWVicAorCW1vdmwJJWVzaSw0KCVyOCkKKwltb3ZsCSVlc2ksJWVieAorCW1vdmwJJWVjeCw4KCVyOCkKKwltb3ZsCSVlY3gsJWVkaQorCW1vdmwJJWVkeCwxMiglcjgpCisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYnAsMTYoJXI4KQorCWFuZGwJJWVkaSwlZXNpCisJam1wCUwkb29wX2F2eAorCisucDJhbGlnbgk0CitMJGRvbmVfYXZ4OgorCWFkZGwJMTYoJXJzcCksJWVieAorCXhvcmwJJWVicCwlZXNpCisJbW92bAklZWN4LCVlZGkKKwlzaGxkbAkkNSwlZWN4LCVlY3gKKwlhZGRsCSVlc2ksJWVieAorCXhvcmwJJWVicCwlZWRpCisJc2hyZGwJJDcsJWVkeCwlZWR4CisJYWRkbAklZWN4LCVlYngKKwlhZGRsCTIwKCVyc3ApLCVlYXgKKwl4b3JsCSVlZHgsJWVkaQorCW1vdmwJJWVieCwlZXNpCisJc2hsZGwJJDUsJWVieCwlZWJ4CisJYWRkbAklZWRpLCVlYXgKKwl4b3JsCSVlZHgsJWVzaQorCXNocmRsCSQ3LCVlY3gsJWVjeAorCWFkZGwJJWVieCwlZWF4CisJYWRkbAkyNCglcnNwKSwlZWJwCisJeG9ybAklZWN4LCVlc2kKKwltb3ZsCSVlYXgsJWVkaQorCXNobGRsCSQ1LCVlYXgsJWVheAorCWFkZGwJJWVzaSwlZWJwCisJeG9ybAklZWN4LCVlZGkKKwlzaHJkbAkkNywlZWJ4LCVlYngKKwlhZGRsCSVlYXgsJWVicAorCWFkZGwJMjgoJXJzcCksJWVkeAorCXhvcmwJJWVieCwlZWRpCisJbW92bAklZWJwLCVlc2kKKwlzaGxkbAkkNSwlZWJwLCVlYnAKKwlhZGRsCSVlZGksJWVkeAorCXhvcmwJJWVieCwlZXNpCisJc2hyZGwJJDcsJWVheCwlZWF4CisJYWRkbAklZWJwLCVlZHgKKwlhZGRsCTMyKCVyc3ApLCVlY3gKKwl4b3JsCSVlYXgsJWVzaQorCW1vdmwJJWVkeCwlZWRpCisJc2hsZGwJJDUsJWVkeCwlZWR4CisJYWRkbAklZXNpLCVlY3gKKwl4b3JsCSVlYXgsJWVkaQorCXNocmRsCSQ3LCVlYnAsJWVicAorCWFkZGwJJWVkeCwlZWN4CisJYWRkbAkzNiglcnNwKSwlZWJ4CisJeG9ybAklZWJwLCVlZGkKKwltb3ZsCSVlY3gsJWVzaQorCXNobGRsCSQ1LCVlY3gsJWVjeAorCWFkZGwJJWVkaSwlZWJ4CisJeG9ybAklZWJwLCVlc2kKKwlzaHJkbAkkNywlZWR4LCVlZHgKKwlhZGRsCSVlY3gsJWVieAorCWFkZGwJNDAoJXJzcCksJWVheAorCXhvcmwJJWVkeCwlZXNpCisJbW92bAklZWJ4LCVlZGkKKwlzaGxkbAkkNSwlZWJ4LCVlYngKKwlhZGRsCSVlc2ksJWVheAorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwlhZGRsCTQ0KCVyc3ApLCVlYnAKKwl4b3JsCSVlY3gsJWVkaQorCW1vdmwJJWVheCwlZXNpCisJc2hsZGwJJDUsJWVheCwlZWF4CisJYWRkbAklZWRpLCVlYnAKKwl4b3JsCSVlY3gsJWVzaQorCXNocmRsCSQ3LCVlYngsJWVieAorCWFkZGwJJWVheCwlZWJwCisJYWRkbAk0OCglcnNwKSwlZWR4CisJeG9ybAklZWJ4LCVlc2kKKwltb3ZsCSVlYnAsJWVkaQorCXNobGRsCSQ1LCVlYnAsJWVicAorCWFkZGwJJWVzaSwlZWR4CisJeG9ybAklZWJ4LCVlZGkKKwlzaHJkbAkkNywlZWF4LCVlYXgKKwlhZGRsCSVlYnAsJWVkeAorCWFkZGwJNTIoJXJzcCksJWVjeAorCXhvcmwJJWVheCwlZWRpCisJbW92bAklZWR4LCVlc2kKKwlzaGxkbAkkNSwlZWR4LCVlZHgKKwlhZGRsCSVlZGksJWVjeAorCXhvcmwJJWVheCwlZXNpCisJc2hyZGwJJDcsJWVicCwlZWJwCisJYWRkbAklZWR4LCVlY3gKKwlhZGRsCTU2KCVyc3ApLCVlYngKKwl4b3JsCSVlYnAsJWVzaQorCW1vdmwJJWVjeCwlZWRpCisJc2hsZGwJJDUsJWVjeCwlZWN4CisJYWRkbAklZXNpLCVlYngKKwl4b3JsCSVlYnAsJWVkaQorCXNocmRsCSQ3LCVlZHgsJWVkeAorCWFkZGwJJWVjeCwlZWJ4CisJYWRkbAk2MCglcnNwKSwlZWF4CisJeG9ybAklZWR4LCVlZGkKKwltb3ZsCSVlYngsJWVzaQorCXNobGRsCSQ1LCVlYngsJWVieAorCWFkZGwJJWVkaSwlZWF4CisJc2hyZGwJJDcsJWVjeCwlZWN4CisJYWRkbAklZWJ4LCVlYXgKKwl2emVyb3VwcGVyCisKKwlhZGRsCTAoJXI4KSwlZWF4CisJYWRkbAk0KCVyOCksJWVzaQorCWFkZGwJOCglcjgpLCVlY3gKKwltb3ZsCSVlYXgsMCglcjgpCisJYWRkbAkxMiglcjgpLCVlZHgKKwltb3ZsCSVlc2ksNCglcjgpCisJYWRkbAkxNiglcjgpLCVlYnAKKwltb3ZsCSVlY3gsOCglcjgpCisJbW92bAklZWR4LDEyKCVyOCkKKwltb3ZsCSVlYnAsMTYoJXI4KQorCWxlYXEJKCVyMTQpLCVyc2kKKwltb3ZxCS00MCglcnNpKSwlcjE0CisJbW92cQktMzIoJXJzaSksJXIxMworCW1vdnEJLTI0KCVyc2kpLCVyMTIKKwltb3ZxCS0xNiglcnNpKSwlcmJwCisJbW92cQktOCglcnNpKSwlcmJ4CisJbGVhcQkoJXJzaSksJXJzcAorTCRlcGlsb2d1ZV9hdng6CisJLmJ5dGUJMHhmMywweGMzCisKIC5wMmFsaWduCTYKIEtfWFhfWFg6CiAubG9uZwkweDVhODI3OTk5LDB4NWE4Mjc5OTksMHg1YTgyNzk5OSwweDVhODI3OTk5CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvbWFjLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTI1Ni14ODZfNjQuUyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TCmluZGV4IGRhMDJkNGMuLjAxNDZmZjUgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5TCkBAIC0xMSw2ICsxMSwxMSBAQAogCW1vdmwJMCglcjExKSwlcjlkCiAJbW92bAk0KCVyMTEpLCVyMTBkCiAJbW92bAk4KCVyMTEpLCVyMTFkCisJYW5kbAkkMTA3Mzc0MTgyNCwlcjlkCisJYW5kbAkkMjY4NDM1OTY4LCVyMTBkCisJb3JsCSVyOWQsJXIxMGQKKwljbXBsCSQxMzQyMTc3NzkyLCVyMTBkCisJamUJTCRhdnhfc2hvcnRjdXQKIAl0ZXN0bAkkNTEyLCVyMTBkCiAJam56CUwkc3NzZTNfc2hvcnRjdXQKIAlwdXNocQklcmJ4CkBAIC0yODQwLDQgKzI4NDUsMTA2MSBAQAogTCRlcGlsb2d1ZV9zc3NlMzoKIAkuYnl0ZQkweGYzLDB4YzMKIAorCisucDJhbGlnbgk2CitzaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9hdng6CitMJGF2eF9zaG9ydGN1dDoKKwlwdXNocQklcmJ4CisJcHVzaHEJJXJicAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCXB1c2hxCSVyMTUKKwltb3ZxCSVyc3AsJXIxMQorCXNobHEJJDQsJXJkeAorCXN1YnEJJDk2LCVyc3AKKwlsZWFxCSglcnNpLCVyZHgsNCksJXJkeAorCWFuZHEJJC02NCwlcnNwCisJbW92cQklcmRpLDY0KzAoJXJzcCkKKwltb3ZxCSVyc2ksNjQrOCglcnNwKQorCW1vdnEJJXJkeCw2NCsxNiglcnNwKQorCW1vdnEJJXIxMSw2NCsyNCglcnNwKQorTCRwcm9sb2d1ZV9hdng6CisKKwl2emVyb3VwcGVyCisJbW92bAkwKCVyZGkpLCVlYXgKKwltb3ZsCTQoJXJkaSksJWVieAorCW1vdmwJOCglcmRpKSwlZWN4CisJbW92bAkxMiglcmRpKSwlZWR4CisJbW92bAkxNiglcmRpKSwlcjhkCisJbW92bAkyMCglcmRpKSwlcjlkCisJbW92bAkyNCglcmRpKSwlcjEwZAorCW1vdmwJMjgoJXJkaSksJXIxMWQKKwl2bW92ZHFhCUsyNTYrNTEyKzMyKCVyaXApLCV4bW04CisJdm1vdmRxYQlLMjU2KzUxMis2NCglcmlwKSwleG1tOQorCWptcAlMJGxvb3BfYXZ4CisucDJhbGlnbgk0CitMJGxvb3BfYXZ4OgorCXZtb3ZkcWEJSzI1Nis1MTIoJXJpcCksJXhtbTcKKwl2bW92ZHF1CTAoJXJzaSksJXhtbTAKKwl2bW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJdm1vdmRxdQkzMiglcnNpKSwleG1tMgorCXZtb3ZkcXUJNDgoJXJzaSksJXhtbTMKKwl2cHNodWZiCSV4bW03LCV4bW0wLCV4bW0wCisJbGVhcQlLMjU2KCVyaXApLCVyYnAKKwl2cHNodWZiCSV4bW03LCV4bW0xLCV4bW0xCisJdnBzaHVmYgkleG1tNywleG1tMiwleG1tMgorCXZwYWRkZAkwKCVyYnApLCV4bW0wLCV4bW00CisJdnBzaHVmYgkleG1tNywleG1tMywleG1tMworCXZwYWRkZAkzMiglcmJwKSwleG1tMSwleG1tNQorCXZwYWRkZAk2NCglcmJwKSwleG1tMiwleG1tNgorCXZwYWRkZAk5NiglcmJwKSwleG1tMywleG1tNworCXZtb3ZkcWEJJXhtbTQsMCglcnNwKQorCW1vdmwJJWVheCwlcjE0ZAorCXZtb3ZkcWEJJXhtbTUsMTYoJXJzcCkKKwltb3ZsCSVlYngsJWVkaQorCXZtb3ZkcWEJJXhtbTYsMzIoJXJzcCkKKwl4b3JsCSVlY3gsJWVkaQorCXZtb3ZkcWEJJXhtbTcsNDgoJXJzcCkKKwltb3ZsCSVyOGQsJXIxM2QKKwlqbXAJTCRhdnhfMDBfNDcKKworLnAyYWxpZ24JNAorTCRhdnhfMDBfNDc6CisJc3VicQkkLTEyOCwlcmJwCisJdnBhbGlnbnIJJDQsJXhtbTAsJXhtbTEsJXhtbTQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYXgKKwltb3ZsCSVyOWQsJXIxMmQKKwl2cGFsaWducgkkNCwleG1tMiwleG1tMywleG1tNworCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVyMTNkCisJeG9ybAklcjEwZCwlcjEyZAorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWF4LCVyMTRkCisJYW5kbAklcjhkLCVyMTJkCisJdnBhZGRkCSV4bW03LCV4bW0wLCV4bW0wCisJeG9ybAklcjhkLCVyMTNkCisJYWRkbAkwKCVyc3ApLCVyMTFkCisJbW92bAklZWF4LCVyMTVkCisJdnBzcmxkCSQzLCV4bW00LCV4bW03CisJeG9ybAklcjEwZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVieCwlcjE1ZAorCXZwc2xsZAkkMTQsJXhtbTQsJXhtbTUKKwlhZGRsCSVyMTJkLCVyMTFkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl2cHhvcgkleG1tNiwleG1tNywleG1tNAorCXhvcmwJJWVheCwlcjE0ZAorCWFkZGwJJXIxM2QsJXIxMWQKKwl4b3JsCSVlYngsJWVkaQorCXZwc2h1ZmQJJDI1MCwleG1tMywleG1tNworCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjExZCwlZWR4CisJYWRkbAklZWRpLCVyMTFkCisJdnBzcmxkCSQxMSwleG1tNiwleG1tNgorCW1vdmwJJWVkeCwlcjEzZAorCWFkZGwJJXIxMWQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCW1vdmwJJXIxNGQsJXIxMWQKKwltb3ZsCSVyOGQsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXZwc2xsZAkkMTEsJXhtbTUsJXhtbTUKKwl4b3JsCSVlZHgsJXIxM2QKKwl4b3JsCSVyOWQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXZweG9yCSV4bW02LCV4bW00LCV4bW00CisJeG9ybAklcjExZCwlcjE0ZAorCWFuZGwJJWVkeCwlcjEyZAorCXhvcmwJJWVkeCwlcjEzZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwlhZGRsCTQoJXJzcCksJXIxMGQKKwltb3ZsCSVyMTFkLCVlZGkKKwl4b3JsCSVyOWQsJXIxMmQKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklcjEyZCwlcjEwZAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXIxMWQsJXIxNGQKKwl2cGFkZGQJJXhtbTQsJXhtbTAsJXhtbTAKKwlhZGRsCSVyMTNkLCVyMTBkCisJeG9ybAklZWF4LCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCWFkZGwJJXIxMGQsJWVjeAorCWFkZGwJJXIxNWQsJXIxMGQKKwltb3ZsCSVlY3gsJXIxM2QKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVyMTBkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjEwZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJbW92bAklZWR4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJXIxM2QKKwl2cHNodWZiCSV4bW04LCV4bW02LCV4bW02CisJeG9ybAklcjhkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyMTBkLCVyMTRkCisJdnBhZGRkCSV4bW02LCV4bW0wLCV4bW0wCisJYW5kbAklZWN4LCVyMTJkCisJeG9ybAklZWN4LCVyMTNkCisJYWRkbAk4KCVyc3ApLCVyOWQKKwl2cHNodWZkCSQ4MCwleG1tMCwleG1tNworCW1vdmwJJXIxMGQsJXIxNWQKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJeG9ybAklcjExZCwlcjE1ZAorCWFkZGwJJXIxMmQsJXI5ZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJdnBzcmxxCSQxNywleG1tNywleG1tNworCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJXIxMGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOWQKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXhvcmwJJXIxMWQsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjlkLCVlYngKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZGksJXI5ZAorCW1vdmwJJWVieCwlcjEzZAorCWFkZGwJJXI5ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjlkCisJbW92bAklZWN4LCVyMTJkCisJdnBzaHVmYgkleG1tOSwleG1tNiwleG1tNgorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTNkCisJeG9ybAklZWR4LCVyMTJkCisJdnBhZGRkCSV4bW02LCV4bW0wLCV4bW0wCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOWQsJXIxNGQKKwlhbmRsCSVlYngsJXIxMmQKKwl2cGFkZGQJMCglcmJwKSwleG1tMCwleG1tNgorCXhvcmwJJWVieCwlcjEzZAorCWFkZGwJMTIoJXJzcCksJXI4ZAorCW1vdmwJJXI5ZCwlZWRpCisJeG9ybAklZWR4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjEwZCwlZWRpCisJYWRkbAklcjEyZCwlcjhkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVyOWQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOGQKKwl4b3JsCSVyMTBkLCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyOGQsJWVheAorCWFkZGwJJXIxNWQsJXI4ZAorCW1vdmwJJWVheCwlcjEzZAorCWFkZGwJJXI4ZCwlcjE0ZAorCXZtb3ZkcWEJJXhtbTYsMCglcnNwKQorCXZwYWxpZ25yCSQ0LCV4bW0xLCV4bW0yLCV4bW00CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjhkCisJbW92bAklZWJ4LCVyMTJkCisJdnBhbGlnbnIJJDQsJXhtbTMsJXhtbTAsJXhtbTcKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlcjEzZAorCXhvcmwJJWVjeCwlcjEyZAorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjhkLCVyMTRkCisJYW5kbAklZWF4LCVyMTJkCisJdnBhZGRkCSV4bW03LCV4bW0xLCV4bW0xCisJeG9ybAklZWF4LCVyMTNkCisJYWRkbAkxNiglcnNwKSwlZWR4CisJbW92bAklcjhkLCVyMTVkCisJdnBzcmxkCSQzLCV4bW00LCV4bW03CisJeG9ybAklZWN4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTVkCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCWFkZGwJJXIxMmQsJWVkeAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVyOGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVlZHgKKwl4b3JsCSVyOWQsJWVkaQorCXZwc2h1ZmQJJDI1MCwleG1tMCwleG1tNworCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWR4LCVyMTFkCisJYWRkbAklZWRpLCVlZHgKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJbW92bAklcjExZCwlcjEzZAorCWFkZGwJJWVkeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJbW92bAklcjE0ZCwlZWR4CisJbW92bAklZWF4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJeG9ybAklcjExZCwlcjEzZAorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTYsJXhtbTQsJXhtbTQKKwl4b3JsCSVlZHgsJXIxNGQKKwlhbmRsCSVyMTFkLCVyMTJkCisJeG9ybAklcjExZCwlcjEzZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwlhZGRsCTIwKCVyc3ApLCVlY3gKKwltb3ZsCSVlZHgsJWVkaQorCXhvcmwJJWVieCwlcjEyZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVlZGkKKwlhZGRsCSVyMTJkLCVlY3gKKwl2cHNybHEJJDE3LCV4bW03LCV4bW03CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlZHgsJXIxNGQKKwl2cGFkZGQJJXhtbTQsJXhtbTEsJXhtbTEKKwlhZGRsCSVyMTNkLCVlY3gKKwl4b3JsCSVyOGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAklZWN4LCVyMTBkCisJYWRkbAklcjE1ZCwlZWN4CisJbW92bAklcjEwZCwlcjEzZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJWVjeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVjeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJbW92bAklcjExZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjEwZCwlcjEzZAorCXZwc2h1ZmIJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVjeCwlcjE0ZAorCXZwYWRkZAkleG1tNiwleG1tMSwleG1tMQorCWFuZGwJJXIxMGQsJXIxMmQKKwl4b3JsCSVyMTBkLCVyMTNkCisJYWRkbAkyNCglcnNwKSwlZWJ4CisJdnBzaHVmZAkkODAsJXhtbTEsJXhtbTcKKwltb3ZsCSVlY3gsJXIxNWQKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJeG9ybAklZWR4LCVyMTVkCisJYWRkbAklcjEyZCwlZWJ4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwl2cHNybHEJJDE3LCV4bW03LCV4bW03CisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWN4LCVyMTRkCisJYWRkbAklcjEzZCwlZWJ4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwl4b3JsCSVlZHgsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWJ4LCVyOWQKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZGksJWVieAorCW1vdmwJJXI5ZCwlcjEzZAorCWFkZGwJJWVieCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWJ4CisJbW92bAklcjEwZCwlcjEyZAorCXZwc2h1ZmIJJXhtbTksJXhtbTYsJXhtbTYKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI5ZCwlcjEzZAorCXhvcmwJJXIxMWQsJXIxMmQKKwl2cGFkZGQJJXhtbTYsJXhtbTEsJXhtbTEKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVieCwlcjE0ZAorCWFuZGwJJXI5ZCwlcjEyZAorCXZwYWRkZAkzMiglcmJwKSwleG1tMSwleG1tNgorCXhvcmwJJXI5ZCwlcjEzZAorCWFkZGwJMjgoJXJzcCksJWVheAorCW1vdmwJJWVieCwlZWRpCisJeG9ybAklcjExZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlZWRpCisJYWRkbAklcjEyZCwlZWF4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlYngsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYXgKKwl4b3JsCSVlY3gsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVheCwlcjhkCisJYWRkbAklcjE1ZCwlZWF4CisJbW92bAklcjhkLCVyMTNkCisJYWRkbAklZWF4LCVyMTRkCisJdm1vdmRxYQkleG1tNiwxNiglcnNwKQorCXZwYWxpZ25yCSQ0LCV4bW0yLCV4bW0zLCV4bW00CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWF4CisJbW92bAklcjlkLCVyMTJkCisJdnBhbGlnbnIJJDQsJXhtbTAsJXhtbTEsJXhtbTcKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI4ZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxMmQKKwl2cHNybGQJJDcsJXhtbTQsJXhtbTYKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVheCwlcjE0ZAorCWFuZGwJJXI4ZCwlcjEyZAorCXZwYWRkZAkleG1tNywleG1tMiwleG1tMgorCXhvcmwJJXI4ZCwlcjEzZAorCWFkZGwJMzIoJXJzcCksJXIxMWQKKwltb3ZsCSVlYXgsJXIxNWQKKwl2cHNybGQJJDMsJXhtbTQsJXhtbTcKKwl4b3JsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTVkCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCWFkZGwJJXIxMmQsJXIxMWQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXZweG9yCSV4bW02LCV4bW03LCV4bW00CisJeG9ybAklZWF4LCVyMTRkCisJYWRkbAklcjEzZCwlcjExZAorCXhvcmwJJWVieCwlZWRpCisJdnBzaHVmZAkkMjUwLCV4bW0xLCV4bW03CisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwlhZGRsCSVlZGksJXIxMWQKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJbW92bAklZWR4LCVyMTNkCisJYWRkbAklcjExZCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJbW92bAklcjE0ZCwlcjExZAorCW1vdmwJJXI4ZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJdnBzbGxkCSQxMSwleG1tNSwleG1tNQorCXhvcmwJJWVkeCwlcjEzZAorCXhvcmwJJXI5ZCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTYsJXhtbTQsJXhtbTQKKwl4b3JsCSVyMTFkLCVyMTRkCisJYW5kbAklZWR4LCVyMTJkCisJeG9ybAklZWR4LCVyMTNkCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCWFkZGwJMzYoJXJzcCksJXIxMGQKKwltb3ZsCSVyMTFkLCVlZGkKKwl4b3JsCSVyOWQsJXIxMmQKKwl2cHhvcgkleG1tNSwleG1tNCwleG1tNAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklcjEyZCwlcjEwZAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXIxMWQsJXIxNGQKKwl2cGFkZGQJJXhtbTQsJXhtbTIsJXhtbTIKKwlhZGRsCSVyMTNkLCVyMTBkCisJeG9ybAklZWF4LCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCWFkZGwJJXIxMGQsJWVjeAorCWFkZGwJJXIxNWQsJXIxMGQKKwltb3ZsCSVlY3gsJXIxM2QKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVyMTBkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjEwZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJbW92bAklZWR4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJXIxM2QKKwl2cHNodWZiCSV4bW04LCV4bW02LCV4bW02CisJeG9ybAklcjhkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyMTBkLCVyMTRkCisJdnBhZGRkCSV4bW02LCV4bW0yLCV4bW0yCisJYW5kbAklZWN4LCVyMTJkCisJeG9ybAklZWN4LCVyMTNkCisJYWRkbAk0MCglcnNwKSwlcjlkCisJdnBzaHVmZAkkODAsJXhtbTIsJXhtbTcKKwltb3ZsCSVyMTBkLCVyMTVkCisJeG9ybAklcjhkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJdnBzcmxkCSQxMCwleG1tNywleG1tNgorCXhvcmwJJXIxMWQsJXIxNWQKKwlhZGRsCSVyMTJkLCVyOWQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCXZwc3JscQkkMTcsJXhtbTcsJXhtbTcKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVyMTBkLCVyMTRkCisJYWRkbAklcjEzZCwlcjlkCisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwl4b3JsCSVyMTFkLCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI5ZCwlZWJ4CisJdnBzcmxxCSQyLCV4bW03LCV4bW03CisJYWRkbAklZWRpLCVyOWQKKwltb3ZsCSVlYngsJXIxM2QKKwlhZGRsCSVyOWQsJXIxNGQKKwl2cHhvcgkleG1tNywleG1tNiwleG1tNgorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJXI5ZAorCW1vdmwJJWVjeCwlcjEyZAorCXZwc2h1ZmIJJXhtbTksJXhtbTYsJXhtbTYKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVieCwlcjEzZAorCXhvcmwJJWVkeCwlcjEyZAorCXZwYWRkZAkleG1tNiwleG1tMiwleG1tMgorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjlkLCVyMTRkCisJYW5kbAklZWJ4LCVyMTJkCisJdnBhZGRkCTY0KCVyYnApLCV4bW0yLCV4bW02CisJeG9ybAklZWJ4LCVyMTNkCisJYWRkbAk0NCglcnNwKSwlcjhkCisJbW92bAklcjlkLCVlZGkKKwl4b3JsCSVlZHgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVlZGkKKwlhZGRsCSVyMTJkLCVyOGQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI4ZAorCXhvcmwJJXIxMGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI4ZCwlZWF4CisJYWRkbAklcjE1ZCwlcjhkCisJbW92bAklZWF4LCVyMTNkCisJYWRkbAklcjhkLCVyMTRkCisJdm1vdmRxYQkleG1tNiwzMiglcnNwKQorCXZwYWxpZ25yCSQ0LCV4bW0zLCV4bW0wLCV4bW00CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjhkCisJbW92bAklZWJ4LCVyMTJkCisJdnBhbGlnbnIJJDQsJXhtbTEsJXhtbTIsJXhtbTcKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlcjEzZAorCXhvcmwJJWVjeCwlcjEyZAorCXZwc3JsZAkkNywleG1tNCwleG1tNgorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjhkLCVyMTRkCisJYW5kbAklZWF4LCVyMTJkCisJdnBhZGRkCSV4bW03LCV4bW0zLCV4bW0zCisJeG9ybAklZWF4LCVyMTNkCisJYWRkbAk0OCglcnNwKSwlZWR4CisJbW92bAklcjhkLCVyMTVkCisJdnBzcmxkCSQzLCV4bW00LCV4bW03CisJeG9ybAklZWN4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTVkCisJdnBzbGxkCSQxNCwleG1tNCwleG1tNQorCWFkZGwJJXIxMmQsJWVkeAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJdnB4b3IJJXhtbTYsJXhtbTcsJXhtbTQKKwl4b3JsCSVyOGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVlZHgKKwl4b3JsCSVyOWQsJWVkaQorCXZwc2h1ZmQJJDI1MCwleG1tMiwleG1tNworCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWR4LCVyMTFkCisJYWRkbAklZWRpLCVlZHgKKwl2cHNybGQJJDExLCV4bW02LCV4bW02CisJbW92bAklcjExZCwlcjEzZAorCWFkZGwJJWVkeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJbW92bAklcjE0ZCwlZWR4CisJbW92bAklZWF4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl2cHNsbGQJJDExLCV4bW01LCV4bW01CisJeG9ybAklcjExZCwlcjEzZAorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJdnB4b3IJJXhtbTYsJXhtbTQsJXhtbTQKKwl4b3JsCSVlZHgsJXIxNGQKKwlhbmRsCSVyMTFkLCVyMTJkCisJeG9ybAklcjExZCwlcjEzZAorCXZwc3JsZAkkMTAsJXhtbTcsJXhtbTYKKwlhZGRsCTUyKCVyc3ApLCVlY3gKKwltb3ZsCSVlZHgsJWVkaQorCXhvcmwJJWVieCwlcjEyZAorCXZweG9yCSV4bW01LCV4bW00LCV4bW00CisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjhkLCVlZGkKKwlhZGRsCSVyMTJkLCVlY3gKKwl2cHNybHEJJDE3LCV4bW03LCV4bW03CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlZHgsJXIxNGQKKwl2cGFkZGQJJXhtbTQsJXhtbTMsJXhtbTMKKwlhZGRsCSVyMTNkLCVlY3gKKwl4b3JsCSVyOGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJYWRkbAklZWN4LCVyMTBkCisJYWRkbAklcjE1ZCwlZWN4CisJbW92bAklcjEwZCwlcjEzZAorCXZwc3JscQkkMiwleG1tNywleG1tNworCWFkZGwJJWVjeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVjeAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJbW92bAklcjExZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjEwZCwlcjEzZAorCXZwc2h1ZmIJJXhtbTgsJXhtbTYsJXhtbTYKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVjeCwlcjE0ZAorCXZwYWRkZAkleG1tNiwleG1tMywleG1tMworCWFuZGwJJXIxMGQsJXIxMmQKKwl4b3JsCSVyMTBkLCVyMTNkCisJYWRkbAk1NiglcnNwKSwlZWJ4CisJdnBzaHVmZAkkODAsJXhtbTMsJXhtbTcKKwltb3ZsCSVlY3gsJXIxNWQKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl2cHNybGQJJDEwLCV4bW03LCV4bW02CisJeG9ybAklZWR4LCVyMTVkCisJYWRkbAklcjEyZCwlZWJ4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwl2cHNybHEJJDE3LCV4bW03LCV4bW03CisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWN4LCVyMTRkCisJYWRkbAklcjEzZCwlZWJ4CisJdnB4b3IJJXhtbTcsJXhtbTYsJXhtbTYKKwl4b3JsCSVlZHgsJWVkaQorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWJ4LCVyOWQKKwl2cHNybHEJJDIsJXhtbTcsJXhtbTcKKwlhZGRsCSVlZGksJWVieAorCW1vdmwJJXI5ZCwlcjEzZAorCWFkZGwJJWVieCwlcjE0ZAorCXZweG9yCSV4bW03LCV4bW02LCV4bW02CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWJ4CisJbW92bAklcjEwZCwlcjEyZAorCXZwc2h1ZmIJJXhtbTksJXhtbTYsJXhtbTYKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI5ZCwlcjEzZAorCXhvcmwJJXIxMWQsJXIxMmQKKwl2cGFkZGQJJXhtbTYsJXhtbTMsJXhtbTMKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVieCwlcjE0ZAorCWFuZGwJJXI5ZCwlcjEyZAorCXZwYWRkZAk5NiglcmJwKSwleG1tMywleG1tNgorCXhvcmwJJXI5ZCwlcjEzZAorCWFkZGwJNjAoJXJzcCksJWVheAorCW1vdmwJJWVieCwlZWRpCisJeG9ybAklcjExZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVjeCwlZWRpCisJYWRkbAklcjEyZCwlZWF4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlYngsJXIxNGQKKwlhZGRsCSVyMTNkLCVlYXgKKwl4b3JsCSVlY3gsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVheCwlcjhkCisJYWRkbAklcjE1ZCwlZWF4CisJbW92bAklcjhkLCVyMTNkCisJYWRkbAklZWF4LCVyMTRkCisJdm1vdmRxYQkleG1tNiw0OCglcnNwKQorCWNtcGIJJDAsMTMxKCVyYnApCisJam5lCUwkYXZ4XzAwXzQ3CisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWF4CisJbW92bAklcjlkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyOGQsJXIxM2QKKwl4b3JsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlYXgsJXIxNGQKKwlhbmRsCSVyOGQsJXIxMmQKKwl4b3JsCSVyOGQsJXIxM2QKKwlhZGRsCTAoJXJzcCksJXIxMWQKKwltb3ZsCSVlYXgsJXIxNWQKKwl4b3JsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTVkCisJYWRkbAklcjEyZCwlcjExZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWF4LCVyMTRkCisJYWRkbAklcjEzZCwlcjExZAorCXhvcmwJJWVieCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwlhZGRsCSVlZGksJXIxMWQKKwltb3ZsCSVlZHgsJXIxM2QKKwlhZGRsCSVyMTFkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjExZAorCW1vdmwJJXI4ZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWR4LCVyMTNkCisJeG9ybAklcjlkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyMTFkLCVyMTRkCisJYW5kbAklZWR4LCVyMTJkCisJeG9ybAklZWR4LCVyMTNkCisJYWRkbAk0KCVyc3ApLCVyMTBkCisJbW92bAklcjExZCwlZWRpCisJeG9ybAklcjlkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVlZGkKKwlhZGRsCSVyMTJkLCVyMTBkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVyMTFkLCVyMTRkCisJYWRkbAklcjEzZCwlcjEwZAorCXhvcmwJJWVheCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklcjEwZCwlZWN4CisJYWRkbAklcjE1ZCwlcjEwZAorCW1vdmwJJWVjeCwlcjEzZAorCWFkZGwJJXIxMGQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyMTBkCisJbW92bAklZWR4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJXIxM2QKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxNGQKKwlhbmRsCSVlY3gsJXIxMmQKKwl4b3JsCSVlY3gsJXIxM2QKKwlhZGRsCTgoJXJzcCksJXI5ZAorCW1vdmwJJXIxMGQsJXIxNWQKKwl4b3JsCSVyOGQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTFkLCVyMTVkCisJYWRkbAklcjEyZCwlcjlkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVyMTVkLCVlZGkKKwl4b3JsCSVyMTBkLCVyMTRkCisJYWRkbAklcjEzZCwlcjlkCisJeG9ybAklcjExZCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyOWQsJWVieAorCWFkZGwJJWVkaSwlcjlkCisJbW92bAklZWJ4LCVyMTNkCisJYWRkbAklcjlkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjlkCisJbW92bAklZWN4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlYngsJXIxM2QKKwl4b3JsCSVlZHgsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFuZGwJJWVieCwlcjEyZAorCXhvcmwJJWVieCwlcjEzZAorCWFkZGwJMTIoJXJzcCksJXI4ZAorCW1vdmwJJXI5ZCwlZWRpCisJeG9ybAklZWR4LCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklcjEwZCwlZWRpCisJYWRkbAklcjEyZCwlcjhkCisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVyOWQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOGQKKwl4b3JsCSVyMTBkLCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyOGQsJWVheAorCWFkZGwJJXIxNWQsJXI4ZAorCW1vdmwJJWVheCwlcjEzZAorCWFkZGwJJXI4ZCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJXI4ZAorCW1vdmwJJWVieCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWF4LCVyMTNkCisJeG9ybAklZWN4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyOGQsJXIxNGQKKwlhbmRsCSVlYXgsJXIxMmQKKwl4b3JsCSVlYXgsJXIxM2QKKwlhZGRsCTE2KCVyc3ApLCVlZHgKKwltb3ZsCSVyOGQsJXIxNWQKKwl4b3JsCSVlY3gsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOWQsJXIxNWQKKwlhZGRsCSVyMTJkLCVlZHgKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJXI4ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVkeAorCXhvcmwJJXI5ZCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlZHgsJXIxMWQKKwlhZGRsCSVlZGksJWVkeAorCW1vdmwJJXIxMWQsJXIxM2QKKwlhZGRsCSVlZHgsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlZHgKKwltb3ZsCSVlYXgsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMWQsJXIxM2QKKwl4b3JsCSVlYngsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVkeCwlcjE0ZAorCWFuZGwJJXIxMWQsJXIxMmQKKwl4b3JsCSVyMTFkLCVyMTNkCisJYWRkbAkyMCglcnNwKSwlZWN4CisJbW92bAklZWR4LCVlZGkKKwl4b3JsCSVlYngsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyOGQsJWVkaQorCWFkZGwJJXIxMmQsJWVjeAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklZWR4LCVyMTRkCisJYWRkbAklcjEzZCwlZWN4CisJeG9ybAklcjhkLCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlY3gsJXIxMGQKKwlhZGRsCSVyMTVkLCVlY3gKKwltb3ZsCSVyMTBkLCVyMTNkCisJYWRkbAklZWN4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWN4CisJbW92bAklcjExZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjEwZCwlcjEzZAorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWN4LCVyMTRkCisJYW5kbAklcjEwZCwlcjEyZAorCXhvcmwJJXIxMGQsJXIxM2QKKwlhZGRsCTI0KCVyc3ApLCVlYngKKwltb3ZsCSVlY3gsJXIxNWQKKwl4b3JsCSVlYXgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlZHgsJXIxNWQKKwlhZGRsCSVyMTJkLCVlYngKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJWVjeCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVieAorCXhvcmwJJWVkeCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlYngsJXI5ZAorCWFkZGwJJWVkaSwlZWJ4CisJbW92bAklcjlkLCVyMTNkCisJYWRkbAklZWJ4LCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlZWJ4CisJbW92bAklcjEwZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjlkLCVyMTNkCisJeG9ybAklcjExZCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWJ4LCVyMTRkCisJYW5kbAklcjlkLCVyMTJkCisJeG9ybAklcjlkLCVyMTNkCisJYWRkbAkyOCglcnNwKSwlZWF4CisJbW92bAklZWJ4LCVlZGkKKwl4b3JsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWN4LCVlZGkKKwlhZGRsCSVyMTJkLCVlYXgKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJWVieCwlcjE0ZAorCWFkZGwJJXIxM2QsJWVheAorCXhvcmwJJWVjeCwlcjE1ZAorCXNocmRsCSQyLCVyMTRkLCVyMTRkCisJYWRkbAklZWF4LCVyOGQKKwlhZGRsCSVyMTVkLCVlYXgKKwltb3ZsCSVyOGQsJXIxM2QKKwlhZGRsCSVlYXgsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYXgKKwltb3ZsCSVyOWQsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI4ZCwlcjEzZAorCXhvcmwJJXIxMGQsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJWVheCwlcjE0ZAorCWFuZGwJJXI4ZCwlcjEyZAorCXhvcmwJJXI4ZCwlcjEzZAorCWFkZGwJMzIoJXJzcCksJXIxMWQKKwltb3ZsCSVlYXgsJXIxNWQKKwl4b3JsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDExLCVyMTRkLCVyMTRkCisJeG9ybAklZWJ4LCVyMTVkCisJYWRkbAklcjEyZCwlcjExZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWF4LCVyMTRkCisJYWRkbAklcjEzZCwlcjExZAorCXhvcmwJJWVieCwlZWRpCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVyMTFkLCVlZHgKKwlhZGRsCSVlZGksJXIxMWQKKwltb3ZsCSVlZHgsJXIxM2QKKwlhZGRsCSVyMTFkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjExZAorCW1vdmwJJXI4ZCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWR4LCVyMTNkCisJeG9ybAklcjlkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyMTFkLCVyMTRkCisJYW5kbAklZWR4LCVyMTJkCisJeG9ybAklZWR4LCVyMTNkCisJYWRkbAkzNiglcnNwKSwlcjEwZAorCW1vdmwJJXIxMWQsJWVkaQorCXhvcmwJJXI5ZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVheCwlZWRpCisJYWRkbAklcjEyZCwlcjEwZAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklcjExZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXIxMGQKKwl4b3JsCSVlYXgsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXIxMGQsJWVjeAorCWFkZGwJJXIxNWQsJXIxMGQKKwltb3ZsCSVlY3gsJXIxM2QKKwlhZGRsCSVyMTBkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjEwZAorCW1vdmwJJWVkeCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklZWN4LCVyMTNkCisJeG9ybAklcjhkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVyMTBkLCVyMTRkCisJYW5kbAklZWN4LCVyMTJkCisJeG9ybAklZWN4LCVyMTNkCisJYWRkbAk0MCglcnNwKSwlcjlkCisJbW92bAklcjEwZCwlcjE1ZAorCXhvcmwJJXI4ZCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXIxMWQsJXIxNWQKKwlhZGRsCSVyMTJkLCVyOWQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJXIxNWQsJWVkaQorCXhvcmwJJXIxMGQsJXIxNGQKKwlhZGRsCSVyMTNkLCVyOWQKKwl4b3JsCSVyMTFkLCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI5ZCwlZWJ4CisJYWRkbAklZWRpLCVyOWQKKwltb3ZsCSVlYngsJXIxM2QKKwlhZGRsCSVyOWQsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVyOWQKKwltb3ZsCSVlY3gsJXIxMmQKKwlzaHJkbAkkOSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVieCwlcjEzZAorCXhvcmwJJWVkeCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklcjlkLCVyMTRkCisJYW5kbAklZWJ4LCVyMTJkCisJeG9ybAklZWJ4LCVyMTNkCisJYWRkbAk0NCglcnNwKSwlcjhkCisJbW92bAklcjlkLCVlZGkKKwl4b3JsCSVlZHgsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVlZGkKKwlhZGRsCSVyMTJkLCVyOGQKKwlzaHJkbAkkNiwlcjEzZCwlcjEzZAorCWFuZGwJJWVkaSwlcjE1ZAorCXhvcmwJJXI5ZCwlcjE0ZAorCWFkZGwJJXIxM2QsJXI4ZAorCXhvcmwJJXIxMGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJXI4ZCwlZWF4CisJYWRkbAklcjE1ZCwlcjhkCisJbW92bAklZWF4LCVyMTNkCisJYWRkbAklcjhkLCVyMTRkCisJc2hyZGwJJDE0LCVyMTNkLCVyMTNkCisJbW92bAklcjE0ZCwlcjhkCisJbW92bAklZWJ4LCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVlYXgsJXIxM2QKKwl4b3JsCSVlY3gsJXIxMmQKKwlzaHJkbAkkNSwlcjEzZCwlcjEzZAorCXhvcmwJJXI4ZCwlcjE0ZAorCWFuZGwJJWVheCwlcjEyZAorCXhvcmwJJWVheCwlcjEzZAorCWFkZGwJNDgoJXJzcCksJWVkeAorCW1vdmwJJXI4ZCwlcjE1ZAorCXhvcmwJJWVjeCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI5ZCwlcjE1ZAorCWFkZGwJJXIxMmQsJWVkeAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklcjhkLCVyMTRkCisJYWRkbAklcjEzZCwlZWR4CisJeG9ybAklcjlkLCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVkeCwlcjExZAorCWFkZGwJJWVkaSwlZWR4CisJbW92bAklcjExZCwlcjEzZAorCWFkZGwJJWVkeCwlcjE0ZAorCXNocmRsCSQxNCwlcjEzZCwlcjEzZAorCW1vdmwJJXIxNGQsJWVkeAorCW1vdmwJJWVheCwlcjEyZAorCXNocmRsCSQ5LCVyMTRkLCVyMTRkCisJeG9ybAklcjExZCwlcjEzZAorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQ1LCVyMTNkLCVyMTNkCisJeG9ybAklZWR4LCVyMTRkCisJYW5kbAklcjExZCwlcjEyZAorCXhvcmwJJXIxMWQsJXIxM2QKKwlhZGRsCTUyKCVyc3ApLCVlY3gKKwltb3ZsCSVlZHgsJWVkaQorCXhvcmwJJWVieCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJXI4ZCwlZWRpCisJYWRkbAklcjEyZCwlZWN4CisJc2hyZGwJJDYsJXIxM2QsJXIxM2QKKwlhbmRsCSVlZGksJXIxNWQKKwl4b3JsCSVlZHgsJXIxNGQKKwlhZGRsCSVyMTNkLCVlY3gKKwl4b3JsCSVyOGQsJXIxNWQKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVjeCwlcjEwZAorCWFkZGwJJXIxNWQsJWVjeAorCW1vdmwJJXIxMGQsJXIxM2QKKwlhZGRsCSVlY3gsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlY3gKKwltb3ZsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyMTBkLCVyMTNkCisJeG9ybAklZWF4LCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlY3gsJXIxNGQKKwlhbmRsCSVyMTBkLCVyMTJkCisJeG9ybAklcjEwZCwlcjEzZAorCWFkZGwJNTYoJXJzcCksJWVieAorCW1vdmwJJWVjeCwlcjE1ZAorCXhvcmwJJWVheCwlcjEyZAorCXNocmRsCSQxMSwlcjE0ZCwlcjE0ZAorCXhvcmwJJWVkeCwlcjE1ZAorCWFkZGwJJXIxMmQsJWVieAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklcjE1ZCwlZWRpCisJeG9ybAklZWN4LCVyMTRkCisJYWRkbAklcjEzZCwlZWJ4CisJeG9ybAklZWR4LCVlZGkKKwlzaHJkbAkkMiwlcjE0ZCwlcjE0ZAorCWFkZGwJJWVieCwlcjlkCisJYWRkbAklZWRpLCVlYngKKwltb3ZsCSVyOWQsJXIxM2QKKwlhZGRsCSVlYngsJXIxNGQKKwlzaHJkbAkkMTQsJXIxM2QsJXIxM2QKKwltb3ZsCSVyMTRkLCVlYngKKwltb3ZsCSVyMTBkLCVyMTJkCisJc2hyZGwJJDksJXIxNGQsJXIxNGQKKwl4b3JsCSVyOWQsJXIxM2QKKwl4b3JsCSVyMTFkLCVyMTJkCisJc2hyZGwJJDUsJXIxM2QsJXIxM2QKKwl4b3JsCSVlYngsJXIxNGQKKwlhbmRsCSVyOWQsJXIxMmQKKwl4b3JsCSVyOWQsJXIxM2QKKwlhZGRsCTYwKCVyc3ApLCVlYXgKKwltb3ZsCSVlYngsJWVkaQorCXhvcmwJJXIxMWQsJXIxMmQKKwlzaHJkbAkkMTEsJXIxNGQsJXIxNGQKKwl4b3JsCSVlY3gsJWVkaQorCWFkZGwJJXIxMmQsJWVheAorCXNocmRsCSQ2LCVyMTNkLCVyMTNkCisJYW5kbAklZWRpLCVyMTVkCisJeG9ybAklZWJ4LCVyMTRkCisJYWRkbAklcjEzZCwlZWF4CisJeG9ybAklZWN4LCVyMTVkCisJc2hyZGwJJDIsJXIxNGQsJXIxNGQKKwlhZGRsCSVlYXgsJXI4ZAorCWFkZGwJJXIxNWQsJWVheAorCW1vdmwJJXI4ZCwlcjEzZAorCWFkZGwJJWVheCwlcjE0ZAorCW1vdnEJNjQrMCglcnNwKSwlcmRpCisJbW92bAklcjE0ZCwlZWF4CisKKwlhZGRsCTAoJXJkaSksJWVheAorCWxlYXEJNjQoJXJzaSksJXJzaQorCWFkZGwJNCglcmRpKSwlZWJ4CisJYWRkbAk4KCVyZGkpLCVlY3gKKwlhZGRsCTEyKCVyZGkpLCVlZHgKKwlhZGRsCTE2KCVyZGkpLCVyOGQKKwlhZGRsCTIwKCVyZGkpLCVyOWQKKwlhZGRsCTI0KCVyZGkpLCVyMTBkCisJYWRkbAkyOCglcmRpKSwlcjExZAorCisJY21wcQk2NCsxNiglcnNwKSwlcnNpCisKKwltb3ZsCSVlYXgsMCglcmRpKQorCW1vdmwJJWVieCw0KCVyZGkpCisJbW92bAklZWN4LDgoJXJkaSkKKwltb3ZsCSVlZHgsMTIoJXJkaSkKKwltb3ZsCSVyOGQsMTYoJXJkaSkKKwltb3ZsCSVyOWQsMjAoJXJkaSkKKwltb3ZsCSVyMTBkLDI0KCVyZGkpCisJbW92bAklcjExZCwyOCglcmRpKQorCWpiCUwkbG9vcF9hdngKKworCW1vdnEJNjQrMjQoJXJzcCksJXJzaQorCXZ6ZXJvdXBwZXIKKwltb3ZxCSglcnNpKSwlcjE1CisJbW92cQk4KCVyc2kpLCVyMTQKKwltb3ZxCTE2KCVyc2kpLCVyMTMKKwltb3ZxCTI0KCVyc2kpLCVyMTIKKwltb3ZxCTMyKCVyc2kpLCVyYnAKKwltb3ZxCTQwKCVyc2kpLCVyYngKKwlsZWFxCTQ4KCVyc2kpLCVyc3AKK0wkZXBpbG9ndWVfYXZ4OgorCS5ieXRlCTB4ZjMsMHhjMworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9tYWMteDg2XzY0L2NyeXB0by9zaGEvc2hhNTEyLXg4Nl82NC5TIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMKaW5kZXggMmY1ZDkxMi4uYWVhYmQzZiAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMKKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL21hYy14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LlMKQEAgLTcsNiArNywxNyBAQAogCiAucDJhbGlnbgk0CiBfc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXI6CisJbGVhcQlfT1BFTlNTTF9pYTMyY2FwX1AoJXJpcCksJXIxMQorCW1vdmwJMCglcjExKSwlcjlkCisJbW92bAk0KCVyMTEpLCVyMTBkCisJbW92bAk4KCVyMTEpLCVyMTFkCisJdGVzdGwJJDIwNDgsJXIxMGQKKwlqbnoJTCR4b3Bfc2hvcnRjdXQKKwlhbmRsCSQxMDczNzQxODI0LCVyOWQKKwlhbmRsCSQyNjg0MzU5NjgsJXIxMGQKKwlvcmwJJXI5ZCwlcjEwZAorCWNtcGwJJDEzNDIxNzc3OTIsJXIxMGQKKwlqZQlMJGF2eF9zaG9ydGN1dAogCXB1c2hxCSVyYngKIAlwdXNocQklcmJwCiAJcHVzaHEJJXIxMgpAQCAtMTc4Myw0ICsxNzk0LDIyMzQgQEAKIC5xdWFkCTB4MDAwMTAyMDMwNDA1MDYwNywweDA4MDkwYTBiMGMwZDBlMGYKIC5xdWFkCTB4MDAwMTAyMDMwNDA1MDYwNywweDA4MDkwYTBiMGMwZDBlMGYKIC5ieXRlCTgzLDcyLDY1LDUzLDQ5LDUwLDMyLDk4LDEwOCwxMTEsOTksMTA3LDMyLDExNiwxMTQsOTcsMTEwLDExNSwxMDIsMTExLDExNCwxMDksMzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0LDk1LDU0LDUyLDQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMSwzMiw2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKKworLnAyYWxpZ24JNgorc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wOgorTCR4b3Bfc2hvcnRjdXQ6CisJcHVzaHEJJXJieAorCXB1c2hxCSVyYnAKKwlwdXNocQklcjEyCisJcHVzaHEJJXIxMworCXB1c2hxCSVyMTQKKwlwdXNocQklcjE1CisJbW92cQklcnNwLCVyMTEKKwlzaGxxCSQ0LCVyZHgKKwlzdWJxCSQxNjAsJXJzcAorCWxlYXEJKCVyc2ksJXJkeCw4KSwlcmR4CisJYW5kcQkkLTY0LCVyc3AKKwltb3ZxCSVyZGksMTI4KzAoJXJzcCkKKwltb3ZxCSVyc2ksMTI4KzgoJXJzcCkKKwltb3ZxCSVyZHgsMTI4KzE2KCVyc3ApCisJbW92cQklcjExLDEyOCsyNCglcnNwKQorTCRwcm9sb2d1ZV94b3A6CisKKwl2emVyb3VwcGVyCisJbW92cQkwKCVyZGkpLCVyYXgKKwltb3ZxCTgoJXJkaSksJXJieAorCW1vdnEJMTYoJXJkaSksJXJjeAorCW1vdnEJMjQoJXJkaSksJXJkeAorCW1vdnEJMzIoJXJkaSksJXI4CisJbW92cQk0MCglcmRpKSwlcjkKKwltb3ZxCTQ4KCVyZGkpLCVyMTAKKwltb3ZxCTU2KCVyZGkpLCVyMTEKKwlqbXAJTCRsb29wX3hvcAorLnAyYWxpZ24JNAorTCRsb29wX3hvcDoKKwl2bW92ZHFhCUs1MTIrMTI4MCglcmlwKSwleG1tMTEKKwl2bW92ZHF1CTAoJXJzaSksJXhtbTAKKwlsZWFxCUs1MTIrMTI4KCVyaXApLCVyYnAKKwl2bW92ZHF1CTE2KCVyc2kpLCV4bW0xCisJdm1vdmRxdQkzMiglcnNpKSwleG1tMgorCXZwc2h1ZmIJJXhtbTExLCV4bW0wLCV4bW0wCisJdm1vdmRxdQk0OCglcnNpKSwleG1tMworCXZwc2h1ZmIJJXhtbTExLCV4bW0xLCV4bW0xCisJdm1vdmRxdQk2NCglcnNpKSwleG1tNAorCXZwc2h1ZmIJJXhtbTExLCV4bW0yLCV4bW0yCisJdm1vdmRxdQk4MCglcnNpKSwleG1tNQorCXZwc2h1ZmIJJXhtbTExLCV4bW0zLCV4bW0zCisJdm1vdmRxdQk5NiglcnNpKSwleG1tNgorCXZwc2h1ZmIJJXhtbTExLCV4bW00LCV4bW00CisJdm1vdmRxdQkxMTIoJXJzaSksJXhtbTcKKwl2cHNodWZiCSV4bW0xMSwleG1tNSwleG1tNQorCXZwYWRkcQktMTI4KCVyYnApLCV4bW0wLCV4bW04CisJdnBzaHVmYgkleG1tMTEsJXhtbTYsJXhtbTYKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW05CisJdnBzaHVmYgkleG1tMTEsJXhtbTcsJXhtbTcKKwl2cGFkZHEJLTY0KCVyYnApLCV4bW0yLCV4bW0xMAorCXZwYWRkcQktMzIoJXJicCksJXhtbTMsJXhtbTExCisJdm1vdmRxYQkleG1tOCwwKCVyc3ApCisJdnBhZGRxCTAoJXJicCksJXhtbTQsJXhtbTgKKwl2bW92ZHFhCSV4bW05LDE2KCVyc3ApCisJdnBhZGRxCTMyKCVyYnApLCV4bW01LCV4bW05CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCisJdm1vdmRxYQkleG1tMTEsNDgoJXJzcCkKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTExCisJdm1vdmRxYQkleG1tOCw2NCglcnNwKQorCW1vdnEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tOSw4MCglcnNwKQorCW1vdnEJJXJieCwlcmRpCisJdm1vdmRxYQkleG1tMTAsOTYoJXJzcCkKKwl4b3JxCSVyY3gsJXJkaQorCXZtb3ZkcWEJJXhtbTExLDExMiglcnNwKQorCW1vdnEJJXI4LCVyMTMKKwlqbXAJTCR4b3BfMDBfNDcKKworLnAyYWxpZ24JNAorTCR4b3BfMDBfNDc6CisJYWRkcQkkMjU2LCVyYnAKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tOAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJheAorCXZwYWxpZ25yCSQ4LCV4bW00LCV4bW01LCV4bW0xMQorCW1vdnEJJXI5LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJheCwlcjE0CisJdnBhZGRxCSV4bW0xMSwleG1tMCwleG1tMAorCWFuZHEJJXI4LCVyMTIKKwl4b3JxCSVyOCwlcjEzCisJYWRkcQkwKCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyMTAsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIyMywzCisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tNywleG1tMTAKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJdnBhZGRxCSV4bW04LCV4bW0wLCV4bW0wCisJbW92cQklcmR4LCVyMTMKKwlhZGRxCSVyMTEsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjExCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyOCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMSwlcjE0CisJYW5kcQklcmR4LCVyMTIKKwl4b3JxCSVyZHgsJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTAsJXhtbTAKKwlhZGRxCTgoJXJzcCksJXIxMAorCW1vdnEJJXIxMSwlcmRpCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDYsJXIxNAorCXZwYWRkcQktMTI4KCVyYnApLCV4bW0wLCV4bW0xMAorCXhvcnEJJXJheCwlcmRpCisJYWRkcQklcjEyLCVyMTAKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJeG9ycQklcmF4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwl2bW92ZHFhCSV4bW0xMCwwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tMTEKKwltb3ZxCSVyZHgsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcmN4LCVyMTMKKwl4b3JxCSVyOCwlcjEyCisJdnBzcmxxCSQ3LCV4bW04LCV4bW04CisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjEwLCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCWFkZHEJMTYoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcjgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjE2LDMKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyMTEsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTAsJXhtbTEwCisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwl2cGFkZHEJJXhtbTgsJXhtbTEsJXhtbTEKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXI5CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwltb3ZxCSVyY3gsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjksJXIxNAorCWFuZHEJJXJieCwlcjEyCisJeG9ycQklcmJ4LCVyMTMKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJYWRkcQkyNCglcnNwKSwlcjgKKwltb3ZxCSVyOSwlcmRpCisJeG9ycQklcmR4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW0xMAorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXI5LCVyMTQKKwlhZGRxCSVyMTMsJXI4CisJeG9ycQklcjEwLCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjgsJXJheAorCWFkZHEJJXIxNSwlcjgKKwltb3ZxCSVyYXgsJXIxMworCWFkZHEJJXI4LCVyMTQKKwl2bW92ZHFhCSV4bW0xMCwxNiglcnNwKQorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW04CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjgKKwl2cGFsaWducgkkOCwleG1tNiwleG1tNywleG1tMTEKKwltb3ZxCSVyYngsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI4LCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW0yLCV4bW0yCisJYW5kcQklcmF4LCVyMTIKKwl4b3JxCSVyYXgsJXIxMworCWFkZHEJMzIoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcmN4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIxNywzCisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjksJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTEsJXhtbTEwCisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCXZwYWRkcQkleG1tOCwleG1tMiwleG1tMgorCW1vdnEJJXIxMSwlcjEzCisJYWRkcQklcmR4LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcmF4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwlhZGRxCTQwKCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXhvcnEJJXJieCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCS02NCglcmJwKSwleG1tMiwleG1tMTAKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJeG9ycQklcjgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDMyKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTMsJXhtbTQsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwl2cGFsaWducgkkOCwleG1tNywleG1tMCwleG1tMTEKKwltb3ZxCSVyMTEsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcjEwLCVyMTMKKwl4b3JxCSVyYXgsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJdnBhZGRxCSV4bW0xMSwleG1tMywleG1tMworCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwlhZGRxCTQ4KCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3JxCSVyYXgsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIxOCwzCisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJkeCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCXZwc3JscQkkNiwleG1tMiwleG1tMTAKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwl2cGFkZHEJJXhtbTgsJXhtbTMsJXhtbTMKKwltb3ZxCSVyOSwlcjEzCisJYWRkcQklcmJ4LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcjEwLCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTMsJXhtbTMKKwlhZGRxCTU2KCVyc3ApLCVyYXgKKwltb3ZxCSVyYngsJXJkaQorCXhvcnEJJXIxMSwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCS0zMiglcmJwKSwleG1tMywleG1tMTAKKwl4b3JxCSVyY3gsJXJkaQorCWFkZHEJJXIxMiwlcmF4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmJ4LCVyMTQKKwlhZGRxCSVyMTMsJXJheAorCXhvcnEJJXJjeCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDQ4KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tMTEKKwltb3ZxCSVyOSwlcjEyCisJcm9ycQkkNSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3JxCSVyOCwlcjEzCisJeG9ycQklcjEwLCVyMTIKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTgKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyYXgsJXIxNAorCXZwYWRkcQkleG1tMTEsJXhtbTQsJXhtbTQKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCWFkZHEJNjQoJXJzcCksJXIxMQorCW1vdnEJJXJheCwlcjE1CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNworCXhvcnEJJXIxMCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwl4b3JxCSVyYngsJXIxNQorCWFkZHEJJXIxMiwlcjExCisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisuYnl0ZQkxNDMsMTA0LDEyMCwxOTUsMjE5LDMKKwl4b3JxCSVyYXgsJXIxNAorCWFkZHEJJXIxMywlcjExCisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcmJ4LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJdnBzcmxxCSQ2LCV4bW0zLCV4bW0xMAorCWFkZHEJJXIxMSwlcmR4CisJYWRkcQklcmRpLCVyMTEKKwl2cGFkZHEJJXhtbTgsJXhtbTQsJXhtbTQKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTEKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCW1vdnEJJXI4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyZHgsJXIxMworCXhvcnEJJXI5LCVyMTIKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcjExLCVyMTQKKwlhbmRxCSVyZHgsJXIxMgorCXhvcnEJJXJkeCwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tNCwleG1tNAorCWFkZHEJNzIoJXJzcCksJXIxMAorCW1vdnEJJXIxMSwlcmRpCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDYsJXIxNAorCXZwYWRkcQkwKCVyYnApLCV4bW00LCV4bW0xMAorCXhvcnEJJXJheCwlcmRpCisJYWRkcQklcjEyLCVyMTAKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJeG9ycQklcmF4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwl2bW92ZHFhCSV4bW0xMCw2NCglcnNwKQorCXZwYWxpZ25yCSQ4LCV4bW01LCV4bW02LCV4bW04CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjEwCisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTExCisJbW92cQklcmR4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcnEJJXJjeCwlcjEzCisJeG9ycQklcjgsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMCwlcjE0CisJdnBhZGRxCSV4bW0xMSwleG1tNSwleG1tNQorCWFuZHEJJXJjeCwlcjEyCisJeG9ycQklcmN4LCVyMTMKKwlhZGRxCTgwKCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDksNworCXhvcnEJJXI4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIyMCwzCisJeG9ycQklcjEwLCVyMTQKKwlhZGRxCSVyMTMsJXI5CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjExLCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJdnBzcmxxCSQ2LCV4bW00LCV4bW0xMAorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJdnBhZGRxCSV4bW04LCV4bW01LCV4bW01CisJbW92cQklcmJ4LCVyMTMKKwlhZGRxCSVyOSwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcmN4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyYngsJXIxMworCXhvcnEJJXJkeCwlcjEyCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI5LCVyMTQKKwlhbmRxCSVyYngsJXIxMgorCXhvcnEJJXJieCwlcjEzCisJdnBhZGRxCSV4bW0xMSwleG1tNSwleG1tNQorCWFkZHEJODgoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXhvcnEJJXJkeCwlcjEyCisJcm9ycQkkNiwlcjE0CisJdnBhZGRxCTMyKCVyYnApLCV4bW01LCV4bW0xMAorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXI5LCVyMTQKKwlhZGRxCSVyMTMsJXI4CisJeG9ycQklcjEwLCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjgsJXJheAorCWFkZHEJJXIxNSwlcjgKKwltb3ZxCSVyYXgsJXIxMworCWFkZHEJJXI4LCVyMTQKKwl2bW92ZHFhCSV4bW0xMCw4MCglcnNwKQorCXZwYWxpZ25yCSQ4LCV4bW02LCV4bW03LCV4bW04CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjgKKwl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tMTEKKwltb3ZxCSVyYngsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI4LCVyMTQKKwl2cGFkZHEJJXhtbTExLCV4bW02LCV4bW02CisJYW5kcQklcmF4LCVyMTIKKwl4b3JxCSVyYXgsJXIxMworCWFkZHEJOTYoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcmN4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorLmJ5dGUJMTQzLDEwNCwxMjAsMTk1LDIyMSwzCisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjksJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTUsJXhtbTEwCisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCXZwYWRkcQkleG1tOCwleG1tNiwleG1tNgorCW1vdnEJJXIxMSwlcjEzCisJYWRkcQklcmR4LCVyMTQKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJbW92cQklcmF4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCXZwYWRkcQkleG1tMTEsJXhtbTYsJXhtbTYKKwlhZGRxCTEwNCglcnNwKSwlcmN4CisJbW92cQklcmR4LCVyZGkKKwl4b3JxCSVyYngsJXIxMgorCXJvcnEJJDYsJXIxNAorCXZwYWRkcQk2NCglcmJwKSwleG1tNiwleG1tMTAKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJeG9ycQklcjgsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDk2KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTgKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tMTEKKwltb3ZxCSVyMTEsJXIxMgorCXJvcnEJJDUsJXIxNAorLmJ5dGUJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9ycQklcjEwLCVyMTMKKwl4b3JxCSVyYXgsJXIxMgorCXZwc3JscQkkNywleG1tOCwleG1tOAorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNworCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwlhZGRxCTExMiglcnNwKSwlcmJ4CisJbW92cQklcmN4LCVyMTUKKy5ieXRlCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9ycQklcmF4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCXhvcnEJJXJkeCwlcjE1CisJYWRkcQklcjEyLCVyYngKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcjE1LCVyZGkKKy5ieXRlCTE0MywxMDQsMTIwLDE5NSwyMjIsMworCXhvcnEJJXJjeCwlcjE0CisJYWRkcQklcjEzLCVyYngKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyZHgsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwl2cHNybHEJJDYsJXhtbTYsJXhtbTEwCisJYWRkcQklcmJ4LCVyOQorCWFkZHEJJXJkaSwlcmJ4CisJdnBhZGRxCSV4bW04LCV4bW03LCV4bW03CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisuYnl0ZQkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyYngKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCW1vdnEJJXIxMCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjksJXIxMworCXhvcnEJJXIxMSwlcjEyCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJieCwlcjE0CisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwl2cGFkZHEJJXhtbTExLCV4bW03LCV4bW03CisJYWRkcQkxMjAoJXJzcCksJXJheAorCW1vdnEJJXJieCwlcmRpCisJeG9ycQklcjExLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTEwCisJeG9ycQklcmN4LCVyZGkKKwlhZGRxCSVyMTIsJXJheAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl4b3JxCSVyY3gsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyYXgsJXI4CisJYWRkcQklcjE1LCVyYXgKKwltb3ZxCSVyOCwlcjEzCisJYWRkcQklcmF4LCVyMTQKKwl2bW92ZHFhCSV4bW0xMCwxMTIoJXJzcCkKKwljbXBiCSQwLDEzNSglcmJwKQorCWpuZQlMJHhvcF8wMF80NworCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJheAorCW1vdnEJJXI5LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyOCwlcjEzCisJeG9ycQklcjEwLCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyYXgsJXIxNAorCWFuZHEJJXI4LCVyMTIKKwl4b3JxCSVyOCwlcjEzCisJYWRkcQkwKCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXhvcnEJJXIxMCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJheCwlcjE0CisJYWRkcQklcjEzLCVyMTEKKwl4b3JxCSVyYngsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJbW92cQklcmR4LCVyMTMKKwlhZGRxCSVyMTEsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCW1vdnEJJXI4LCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyZHgsJXIxMworCXhvcnEJJXI5LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwlhZGRxCTgoJXJzcCksJXIxMAorCW1vdnEJJXIxMSwlcmRpCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXJheCwlcmRpCisJYWRkcQklcjEyLCVyMTAKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJeG9ycQklcmF4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwltb3ZxCSVyZHgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJjeCwlcjEzCisJeG9ycQklcjgsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMCwlcjE0CisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCWFkZHEJMTYoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKwl4b3JxCSVyOCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcjEwLCVyMTQKKwlhZGRxCSVyMTMsJXI5CisJeG9ycQklcjExLCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOQorCW1vdnEJJXJjeCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmJ4LCVyMTMKKwl4b3JxCSVyZHgsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI5LCVyMTQKKwlhbmRxCSVyYngsJXIxMgorCXhvcnEJJXJieCwlcjEzCisJYWRkcQkyNCglcnNwKSwlcjgKKwltb3ZxCSVyOSwlcmRpCisJeG9ycQklcmR4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyMTAsJXJkaQorCWFkZHEJJXIxMiwlcjgKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyOSwlcjE0CisJYWRkcQklcjEzLCVyOAorCXhvcnEJJXIxMCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXI4LCVyYXgKKwlhZGRxCSVyMTUsJXI4CisJbW92cQklcmF4LCVyMTMKKwlhZGRxCSVyOCwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjgKKwltb3ZxCSVyYngsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJheCwlcjEzCisJeG9ycQklcmN4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyOCwlcjE0CisJYW5kcQklcmF4LCVyMTIKKwl4b3JxCSVyYXgsJXIxMworCWFkZHEJMzIoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXI4LCVyMTQKKwlhZGRxCSVyMTMsJXJkeAorCXhvcnEJJXI5LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCW1vdnEJJXIxMSwlcjEzCisJYWRkcQklcmR4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyZHgKKwltb3ZxCSVyYXgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyZHgsJXIxNAorCWFuZHEJJXIxMSwlcjEyCisJeG9ycQklcjExLCVyMTMKKwlhZGRxCTQwKCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXhvcnEJJXJieCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjgsJXJkaQorCWFkZHEJJXIxMiwlcmN4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcmR4LCVyMTQKKwlhZGRxCSVyMTMsJXJjeAorCXhvcnEJJXI4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmN4LCVyMTAKKwlhZGRxCSVyMTUsJXJjeAorCW1vdnEJJXIxMCwlcjEzCisJYWRkcQklcmN4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwltb3ZxCSVyMTEsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMCwlcjEzCisJeG9ycQklcmF4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyY3gsJXIxNAorCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwlhZGRxCTQ4KCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorCXhvcnEJJXJheCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJjeCwlcjE0CisJYWRkcQklcjEzLCVyYngKKwl4b3JxCSVyZHgsJXJkaQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwltb3ZxCSVyOSwlcjEzCisJYWRkcQklcmJ4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyYngKKwltb3ZxCSVyMTAsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXJieCwlcjE0CisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwlhZGRxCTU2KCVyc3ApLCVyYXgKKwltb3ZxCSVyYngsJXJkaQorCXhvcnEJJXIxMSwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmN4LCVyZGkKKwlhZGRxCSVyMTIsJXJheAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl4b3JxCSVyY3gsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyYXgsJXI4CisJYWRkcQklcjE1LCVyYXgKKwltb3ZxCSVyOCwlcjEzCisJYWRkcQklcmF4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwltb3ZxCSVyOSwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjgsJXIxMworCXhvcnEJJXIxMCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmF4LCVyMTQKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCWFkZHEJNjQoJXJzcCksJXIxMQorCW1vdnEJJXJheCwlcjE1CisJeG9ycQklcjEwLCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyYngsJXIxNQorCWFkZHEJJXIxMiwlcjExCisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXhvcnEJJXJieCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXIxMSwlcmR4CisJYWRkcQklcmRpLCVyMTEKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjExCisJbW92cQklcjgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJkeCwlcjEzCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMSwlcjE0CisJYW5kcQklcmR4LCVyMTIKKwl4b3JxCSVyZHgsJXIxMworCWFkZHEJNzIoJXJzcCksJXIxMAorCW1vdnEJJXIxMSwlcmRpCisJeG9ycQklcjksJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXJheCwlcmRpCisJYWRkcQklcjEyLCVyMTAKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJeG9ycQklcmF4LCVyMTUKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwltb3ZxCSVyZHgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJjeCwlcjEzCisJeG9ycQklcjgsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXIxMCwlcjE0CisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCWFkZHEJODAoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKwl4b3JxCSVyOCwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcjEwLCVyMTQKKwlhZGRxCSVyMTMsJXI5CisJeG9ycQklcjExLCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyOQorCW1vdnEJJXJjeCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcmJ4LCVyMTMKKwl4b3JxCSVyZHgsJXIxMgorCXJvcnEJJDQsJXIxMworCXhvcnEJJXI5LCVyMTQKKwlhbmRxCSVyYngsJXIxMgorCXhvcnEJJXJieCwlcjEzCisJYWRkcQk4OCglcnNwKSwlcjgKKwltb3ZxCSVyOSwlcmRpCisJeG9ycQklcmR4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyMTAsJXJkaQorCWFkZHEJJXIxMiwlcjgKKwlyb3JxCSQxNCwlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyOSwlcjE0CisJYWRkcQklcjEzLCVyOAorCXhvcnEJJXIxMCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXI4LCVyYXgKKwlhZGRxCSVyMTUsJXI4CisJbW92cQklcmF4LCVyMTMKKwlhZGRxCSVyOCwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcjgKKwltb3ZxCSVyYngsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXJheCwlcjEzCisJeG9ycQklcmN4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyOCwlcjE0CisJYW5kcQklcmF4LCVyMTIKKwl4b3JxCSVyYXgsJXIxMworCWFkZHEJOTYoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKwl4b3JxCSVyY3gsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXI4LCVyMTQKKwlhZGRxCSVyMTMsJXJkeAorCXhvcnEJJXI5LCVyZGkKKwlyb3JxCSQyOCwlcjE0CisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCW1vdnEJJXIxMSwlcjEzCisJYWRkcQklcmR4LCVyMTQKKwlyb3JxCSQyMywlcjEzCisJbW92cQklcjE0LCVyZHgKKwltb3ZxCSVyYXgsJXIxMgorCXJvcnEJJDUsJXIxNAorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwlyb3JxCSQ0LCVyMTMKKwl4b3JxCSVyZHgsJXIxNAorCWFuZHEJJXIxMSwlcjEyCisJeG9ycQklcjExLCVyMTMKKwlhZGRxCTEwNCglcnNwKSwlcmN4CisJbW92cQklcmR4LCVyZGkKKwl4b3JxCSVyYngsJXIxMgorCXJvcnEJJDYsJXIxNAorCXhvcnEJJXI4LCVyZGkKKwlhZGRxCSVyMTIsJXJjeAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl4b3JxCSVyOCwlcjE1CisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJcm9ycQkkMjMsJXIxMworCW1vdnEJJXIxNCwlcmN4CisJbW92cQklcjExLCVyMTIKKwlyb3JxCSQ1LCVyMTQKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmN4LCVyMTQKKwlhbmRxCSVyMTAsJXIxMgorCXhvcnEJJXIxMCwlcjEzCisJYWRkcQkxMTIoJXJzcCksJXJieAorCW1vdnEJJXJjeCwlcjE1CisJeG9ycQklcmF4LCVyMTIKKwlyb3JxCSQ2LCVyMTQKKwl4b3JxCSVyZHgsJXIxNQorCWFkZHEJJXIxMiwlcmJ4CisJcm9ycQkkMTQsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXhvcnEJJXJkeCwlcmRpCisJcm9ycQkkMjgsJXIxNAorCWFkZHEJJXJieCwlcjkKKwlhZGRxCSVyZGksJXJieAorCW1vdnEJJXI5LCVyMTMKKwlhZGRxCSVyYngsJXIxNAorCXJvcnEJJDIzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCW1vdnEJJXIxMCwlcjEyCisJcm9ycQkkNSwlcjE0CisJeG9ycQklcjksJXIxMworCXhvcnEJJXIxMSwlcjEyCisJcm9ycQkkNCwlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCWFkZHEJMTIwKCVyc3ApLCVyYXgKKwltb3ZxCSVyYngsJXJkaQorCXhvcnEJJXIxMSwlcjEyCisJcm9ycQkkNiwlcjE0CisJeG9ycQklcmN4LCVyZGkKKwlhZGRxCSVyMTIsJXJheAorCXJvcnEJJDE0LCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl4b3JxCSVyY3gsJXIxNQorCXJvcnEJJDI4LCVyMTQKKwlhZGRxCSVyYXgsJXI4CisJYWRkcQklcjE1LCVyYXgKKwltb3ZxCSVyOCwlcjEzCisJYWRkcQklcmF4LCVyMTQKKwltb3ZxCTEyOCswKCVyc3ApLCVyZGkKKwltb3ZxCSVyMTQsJXJheAorCisJYWRkcQkwKCVyZGkpLCVyYXgKKwlsZWFxCTEyOCglcnNpKSwlcnNpCisJYWRkcQk4KCVyZGkpLCVyYngKKwlhZGRxCTE2KCVyZGkpLCVyY3gKKwlhZGRxCTI0KCVyZGkpLCVyZHgKKwlhZGRxCTMyKCVyZGkpLCVyOAorCWFkZHEJNDAoJXJkaSksJXI5CisJYWRkcQk0OCglcmRpKSwlcjEwCisJYWRkcQk1NiglcmRpKSwlcjExCisKKwljbXBxCTEyOCsxNiglcnNwKSwlcnNpCisKKwltb3ZxCSVyYXgsMCglcmRpKQorCW1vdnEJJXJieCw4KCVyZGkpCisJbW92cQklcmN4LDE2KCVyZGkpCisJbW92cQklcmR4LDI0KCVyZGkpCisJbW92cQklcjgsMzIoJXJkaSkKKwltb3ZxCSVyOSw0MCglcmRpKQorCW1vdnEJJXIxMCw0OCglcmRpKQorCW1vdnEJJXIxMSw1NiglcmRpKQorCWpiCUwkbG9vcF94b3AKKworCW1vdnEJMTI4KzI0KCVyc3ApLCVyc2kKKwl2emVyb3VwcGVyCisJbW92cQkoJXJzaSksJXIxNQorCW1vdnEJOCglcnNpKSwlcjE0CisJbW92cQkxNiglcnNpKSwlcjEzCisJbW92cQkyNCglcnNpKSwlcjEyCisJbW92cQkzMiglcnNpKSwlcmJwCisJbW92cQk0MCglcnNpKSwlcmJ4CisJbGVhcQk0OCglcnNpKSwlcnNwCitMJGVwaWxvZ3VlX3hvcDoKKwkuYnl0ZQkweGYzLDB4YzMKKworCisucDJhbGlnbgk2CitzaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdng6CitMJGF2eF9zaG9ydGN1dDoKKwlwdXNocQklcmJ4CisJcHVzaHEJJXJicAorCXB1c2hxCSVyMTIKKwlwdXNocQklcjEzCisJcHVzaHEJJXIxNAorCXB1c2hxCSVyMTUKKwltb3ZxCSVyc3AsJXIxMQorCXNobHEJJDQsJXJkeAorCXN1YnEJJDE2MCwlcnNwCisJbGVhcQkoJXJzaSwlcmR4LDgpLCVyZHgKKwlhbmRxCSQtNjQsJXJzcAorCW1vdnEJJXJkaSwxMjgrMCglcnNwKQorCW1vdnEJJXJzaSwxMjgrOCglcnNwKQorCW1vdnEJJXJkeCwxMjgrMTYoJXJzcCkKKwltb3ZxCSVyMTEsMTI4KzI0KCVyc3ApCitMJHByb2xvZ3VlX2F2eDoKKworCXZ6ZXJvdXBwZXIKKwltb3ZxCTAoJXJkaSksJXJheAorCW1vdnEJOCglcmRpKSwlcmJ4CisJbW92cQkxNiglcmRpKSwlcmN4CisJbW92cQkyNCglcmRpKSwlcmR4CisJbW92cQkzMiglcmRpKSwlcjgKKwltb3ZxCTQwKCVyZGkpLCVyOQorCW1vdnEJNDgoJXJkaSksJXIxMAorCW1vdnEJNTYoJXJkaSksJXIxMQorCWptcAlMJGxvb3BfYXZ4CisucDJhbGlnbgk0CitMJGxvb3BfYXZ4OgorCXZtb3ZkcWEJSzUxMisxMjgwKCVyaXApLCV4bW0xMQorCXZtb3ZkcXUJMCglcnNpKSwleG1tMAorCWxlYXEJSzUxMisxMjgoJXJpcCksJXJicAorCXZtb3ZkcXUJMTYoJXJzaSksJXhtbTEKKwl2bW92ZHF1CTMyKCVyc2kpLCV4bW0yCisJdnBzaHVmYgkleG1tMTEsJXhtbTAsJXhtbTAKKwl2bW92ZHF1CTQ4KCVyc2kpLCV4bW0zCisJdnBzaHVmYgkleG1tMTEsJXhtbTEsJXhtbTEKKwl2bW92ZHF1CTY0KCVyc2kpLCV4bW00CisJdnBzaHVmYgkleG1tMTEsJXhtbTIsJXhtbTIKKwl2bW92ZHF1CTgwKCVyc2kpLCV4bW01CisJdnBzaHVmYgkleG1tMTEsJXhtbTMsJXhtbTMKKwl2bW92ZHF1CTk2KCVyc2kpLCV4bW02CisJdnBzaHVmYgkleG1tMTEsJXhtbTQsJXhtbTQKKwl2bW92ZHF1CTExMiglcnNpKSwleG1tNworCXZwc2h1ZmIJJXhtbTExLCV4bW01LCV4bW01CisJdnBhZGRxCS0xMjgoJXJicCksJXhtbTAsJXhtbTgKKwl2cHNodWZiCSV4bW0xMSwleG1tNiwleG1tNgorCXZwYWRkcQktOTYoJXJicCksJXhtbTEsJXhtbTkKKwl2cHNodWZiCSV4bW0xMSwleG1tNywleG1tNworCXZwYWRkcQktNjQoJXJicCksJXhtbTIsJXhtbTEwCisJdnBhZGRxCS0zMiglcmJwKSwleG1tMywleG1tMTEKKwl2bW92ZHFhCSV4bW04LDAoJXJzcCkKKwl2cGFkZHEJMCglcmJwKSwleG1tNCwleG1tOAorCXZtb3ZkcWEJJXhtbTksMTYoJXJzcCkKKwl2cGFkZHEJMzIoJXJicCksJXhtbTUsJXhtbTkKKwl2bW92ZHFhCSV4bW0xMCwzMiglcnNwKQorCXZwYWRkcQk2NCglcmJwKSwleG1tNiwleG1tMTAKKwl2bW92ZHFhCSV4bW0xMSw0OCglcnNwKQorCXZwYWRkcQk5NiglcmJwKSwleG1tNywleG1tMTEKKwl2bW92ZHFhCSV4bW04LDY0KCVyc3ApCisJbW92cQklcmF4LCVyMTQKKwl2bW92ZHFhCSV4bW05LDgwKCVyc3ApCisJbW92cQklcmJ4LCVyZGkKKwl2bW92ZHFhCSV4bW0xMCw5NiglcnNwKQorCXhvcnEJJXJjeCwlcmRpCisJdm1vdmRxYQkleG1tMTEsMTEyKCVyc3ApCisJbW92cQklcjgsJXIxMworCWptcAlMJGF2eF8wMF80NworCisucDJhbGlnbgk0CitMJGF2eF8wMF80NzoKKwlhZGRxCSQyNTYsJXJicAorCXZwYWxpZ25yCSQ4LCV4bW0wLCV4bW0xLCV4bW04CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTExCisJbW92cQklcjksJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyOCwlcjEzCisJeG9ycQklcjEwLCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0wLCV4bW0wCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmF4LCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkwKCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tNywleG1tMTEKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJdnBzbGxxCSQzLCV4bW03LCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCXZwYWRkcQkleG1tOCwleG1tMCwleG1tMAorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDE5LCV4bW03LCV4bW05CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk4KCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyOSwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTAsJXhtbTAKKwl4b3JxCSVyMTEsJXIxNAorCWFkZHEJJXIxMywlcjEwCisJdnBhZGRxCS0xMjgoJXJicCksJXhtbTAsJXhtbTEwCisJeG9ycQklcmF4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcjEwLCVyY3gKKwlhZGRxCSVyMTUsJXIxMAorCW1vdnEJJXJjeCwlcjEzCisJYWRkcQklcjEwLCVyMTQKKwl2bW92ZHFhCSV4bW0xMCwwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTEsJXhtbTIsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyMTAKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tMTEKKwltb3ZxCSVyZHgsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjEwLCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcmN4LCVyMTIKKwl4b3JxCSVyY3gsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTE2KCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tOAorCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHNybHEJJDcsJXhtbTEwLCV4bW0xMAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcjEwLCVyMTQKKwlhZGRxCSVyMTMsJXI5CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjExLCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJdnBzcmxxCSQ2LCV4bW0wLCV4bW0xMQorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyYngsJXIxMworCWFkZHEJJXI5LCVyMTQKKwl2cHNsbHEJJDMsJXhtbTAsJXhtbTEwCisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwl2cGFkZHEJJXhtbTgsJXhtbTEsJXhtbTEKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTAsJXhtbTkKKwl4b3JxCSVyYngsJXIxMworCXhvcnEJJXJkeCwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTI0KCVyc3ApLCVyOAorCW1vdnEJJXI5LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXIxMCwlcmRpCisJYWRkcQklcjEyLCVyOAorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl2cGFkZHEJJXhtbTExLCV4bW0xLCV4bW0xCisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl2cGFkZHEJLTk2KCVyYnApLCV4bW0xLCV4bW0xMAorCXhvcnEJJXIxMCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI4LCVyYXgKKwlhZGRxCSVyMTUsJXI4CisJbW92cQklcmF4LCVyMTMKKwlhZGRxCSVyOCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMTYoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMiwleG1tMywleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTExCisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDEsJXhtbTgsJXhtbTEwCisJeG9ycQklcmF4LCVyMTMKKwl4b3JxCSVyY3gsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOCwlcjE0CisJdnBzcmxxCSQ3LCV4bW04LCV4bW0xMQorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkzMiglcnNwKSwlcmR4CisJbW92cQklcjgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyY3gsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcjksJXIxNQorCWFkZHEJJXIxMiwlcmR4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMSwleG1tMTEKKwlhZGRxCSVyZHgsJXIxMQorCWFkZHEJJXJkaSwlcmR4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJdnBzbGxxCSQzLCV4bW0xLCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJkeAorCXZwYWRkcQkleG1tOCwleG1tMiwleG1tMgorCW1vdnEJJXJheCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tMSwleG1tOQorCXhvcnEJJXIxMSwlcjEzCisJeG9ycQklcmJ4LCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJkeCwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcjExLCVyMTIKKwl4b3JxCSVyMTEsJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTQwKCVyc3ApLCVyY3gKKwltb3ZxCSVyZHgsJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyYngsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcjgsJXJkaQorCWFkZHEJJXIxMiwlcmN4CisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTIsJXhtbTIKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJdnBhZGRxCS02NCglcmJwKSwleG1tMiwleG1tMTAKKwl4b3JxCSVyOCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMzIoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCXZwYWxpZ25yCSQ4LCV4bW03LCV4bW0wLCV4bW0xMQorCW1vdnEJJXIxMSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXIxMCwlcjEzCisJeG9ycQklcmF4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW0zLCV4bW0zCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmN4LCVyMTQKKwl2cHNybHEJJDcsJXhtbTgsJXhtbTExCisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTQ4KCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmN4LCVyMTQKKwlhZGRxCSVyMTMsJXJieAorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJkeCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMiwleG1tMTEKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCW1vdnEJJXI5LCVyMTMKKwlhZGRxCSVyYngsJXIxNAorCXZwc2xscQkkMywleG1tMiwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYngKKwl2cGFkZHEJJXhtbTgsJXhtbTMsJXhtbTMKKwltb3ZxCSVyMTAsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTIsJXhtbTkKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJieCwlcjE0CisJdnBzbGxxCSQ0MiwleG1tMTAsJXhtbTEwCisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk1NiglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tMywleG1tMworCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl2cGFkZHEJLTMyKCVyYnApLCV4bW0zLCV4bW0xMAorCXhvcnEJJXJjeCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJheCwlcjgKKwlhZGRxCSVyMTUsJXJheAorCW1vdnEJJXI4LCVyMTMKKwlhZGRxCSVyYXgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDQ4KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTQsJXhtbTUsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwl2cGFsaWducgkkOCwleG1tMCwleG1tMSwleG1tMTEKKwltb3ZxCSVyOSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTQsJXhtbTQKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyYXgsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCXZwc2xscQkkNTYsJXhtbTgsJXhtbTkKKwlhZGRxCTY0KCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTgKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcmF4LCVyMTQKKwlhZGRxCSVyMTMsJXIxMQorCXZweG9yCSV4bW0xMCwleG1tOCwleG1tOAorCXhvcnEJJXJieCwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCXZwc3JscQkkNiwleG1tMywleG1tMTEKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwltb3ZxCSVyZHgsJXIxMworCWFkZHEJJXIxMSwlcjE0CisJdnBzbGxxCSQzLCV4bW0zLCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCXZwYWRkcQkleG1tOCwleG1tNCwleG1tNAorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl2cHNybHEJJDE5LCV4bW0zLCV4bW05CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQk3MiglcnNwKSwlcjEwCisJbW92cQklcjExLCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjksJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcmF4LCVyZGkKKwlhZGRxCSVyMTIsJXIxMAorCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl2cGFkZHEJJXhtbTExLCV4bW00LCV4bW00CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXZwYWRkcQkwKCVyYnApLCV4bW00LCV4bW0xMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJdm1vdmRxYQkleG1tMTAsNjQoJXJzcCkKKwl2cGFsaWducgkkOCwleG1tNSwleG1tNiwleG1tOAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMAorCXZwYWxpZ25yCSQ4LCV4bW0xLCV4bW0yLCV4bW0xMQorCW1vdnEJJXJkeCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXJjeCwlcjEzCisJeG9ycQklcjgsJXIxMgorCXZwYWRkcQkleG1tMTEsJXhtbTUsJXhtbTUKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyY3gsJXIxMgorCXhvcnEJJXJjeCwlcjEzCisJdnBzbGxxCSQ1NiwleG1tOCwleG1tOQorCWFkZHEJODAoJXJzcCksJXI5CisJbW92cQklcjEwLCVyMTUKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW04CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZwc3JscQkkNywleG1tMTAsJXhtbTEwCisJeG9ycQklcjExLCVyMTUKKwlhZGRxCSVyMTIsJXI5CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyMTAsJXIxNAorCWFkZHEJJXIxMywlcjkKKwl2cHhvcgkleG1tMTAsJXhtbTgsJXhtbTgKKwl4b3JxCSVyMTEsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwl2cHNybHEJJDYsJXhtbTQsJXhtbTExCisJYWRkcQklcjksJXJieAorCWFkZHEJJXJkaSwlcjkKKwl2cHhvcgkleG1tOSwleG1tOCwleG1tOAorCW1vdnEJJXJieCwlcjEzCisJYWRkcQklcjksJXIxNAorCXZwc2xscQkkMywleG1tNCwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyOQorCXZwYWRkcQkleG1tOCwleG1tNSwleG1tNQorCW1vdnEJJXJjeCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tNCwleG1tOQorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXI5LCVyMTQKKwl2cHNsbHEJJDQyLCV4bW0xMCwleG1tMTAKKwlhbmRxCSVyYngsJXIxMgorCXhvcnEJJXJieCwlcjEzCisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCWFkZHEJODgoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXZwc3JscQkkNDIsJXhtbTksJXhtbTkKKwl4b3JxCSVyZHgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJdnB4b3IJJXhtbTksJXhtbTExLCV4bW0xMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXZwYWRkcQkleG1tMTEsJXhtbTUsJXhtbTUKKwl4b3JxCSVyOSwlcjE0CisJYWRkcQklcjEzLCVyOAorCXZwYWRkcQkzMiglcmJwKSwleG1tNSwleG1tMTAKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDgwKCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTYsJXhtbTcsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyOAorCXZwYWxpZ25yCSQ4LCV4bW0yLCV4bW0zLCV4bW0xMQorCW1vdnEJJXJieCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxLCV4bW04LCV4bW0xMAorCXhvcnEJJXJheCwlcjEzCisJeG9ycQklcmN4LCVyMTIKKwl2cGFkZHEJJXhtbTExLCV4bW02LCV4bW02CisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCXZwc3JscQkkNywleG1tOCwleG1tMTEKKwlhbmRxCSVyYXgsJXIxMgorCXhvcnEJJXJheCwlcjEzCisJdnBzbGxxCSQ1NiwleG1tOCwleG1tOQorCWFkZHEJOTYoJXJzcCksJXJkeAorCW1vdnEJJXI4LCVyMTUKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW04CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHNybHEJJDcsJXhtbTEwLCV4bW0xMAorCXhvcnEJJXI5LCVyMTUKKwlhZGRxCSVyMTIsJXJkeAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXIxNSwlcmRpCisJdnBzbGxxCSQ3LCV4bW05LCV4bW05CisJeG9ycQklcjgsJXIxNAorCWFkZHEJJXIxMywlcmR4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcjksJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwl2cHNybHEJJDYsJXhtbTUsJXhtbTExCisJYWRkcQklcmR4LCVyMTEKKwlhZGRxCSVyZGksJXJkeAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJbW92cQklcjExLCVyMTMKKwlhZGRxCSVyZHgsJXIxNAorCXZwc2xscQkkMywleG1tNSwleG1tMTAKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyZHgKKwl2cGFkZHEJJXhtbTgsJXhtbTYsJXhtbTYKKwltb3ZxCSVyYXgsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMTksJXhtbTUsJXhtbTkKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyZHgsJXIxNAorCXZwc2xscQkkNDIsJXhtbTEwLCV4bW0xMAorCWFuZHEJJXIxMSwlcjEyCisJeG9ycQklcjExLCVyMTMKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJYWRkcQkxMDQoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJdnBzcmxxCSQ0MiwleG1tOSwleG1tOQorCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tMTEKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tNiwleG1tNgorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl2cGFkZHEJNjQoJXJicCksJXhtbTYsJXhtbTEwCisJeG9ycQklcjgsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXZtb3ZkcWEJJXhtbTEwLDk2KCVyc3ApCisJdnBhbGlnbnIJJDgsJXhtbTcsJXhtbTAsJXhtbTgKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyY3gKKwl2cGFsaWducgkkOCwleG1tMywleG1tNCwleG1tMTEKKwltb3ZxCSVyMTEsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXZwc3JscQkkMSwleG1tOCwleG1tMTAKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNworCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJdnBzcmxxCSQ3LCV4bW04LCV4bW0xMQorCWFuZHEJJXIxMCwlcjEyCisJeG9ycQklcjEwLCVyMTMKKwl2cHNsbHEJJDU2LCV4bW04LCV4bW05CisJYWRkcQkxMTIoJXJzcCksJXJieAorCW1vdnEJJXJjeCwlcjE1CisJdnB4b3IJJXhtbTEwLCV4bW0xMSwleG1tOAorCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJdnBzcmxxCSQ3LCV4bW0xMCwleG1tMTAKKwl4b3JxCSVyZHgsJXIxNQorCWFkZHEJJXIxMiwlcmJ4CisJdnB4b3IJJXhtbTksJXhtbTgsJXhtbTgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl2cHNsbHEJJDcsJXhtbTksJXhtbTkKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJdnB4b3IJJXhtbTEwLCV4bW04LCV4bW04CisJeG9ycQklcmR4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJdnBzcmxxCSQ2LCV4bW02LCV4bW0xMQorCWFkZHEJJXJieCwlcjkKKwlhZGRxCSVyZGksJXJieAorCXZweG9yCSV4bW05LCV4bW04LCV4bW04CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisJdnBzbGxxCSQzLCV4bW02LCV4bW0xMAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJieAorCXZwYWRkcQkleG1tOCwleG1tNywleG1tNworCW1vdnEJJXIxMCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJdnBzcmxxCSQxOSwleG1tNiwleG1tOQorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXZweG9yCSV4bW0xMCwleG1tMTEsJXhtbTExCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmJ4LCVyMTQKKwl2cHNsbHEJJDQyLCV4bW0xMCwleG1tMTAKKwlhbmRxCSVyOSwlcjEyCisJeG9ycQklcjksJXIxMworCXZweG9yCSV4bW05LCV4bW0xMSwleG1tMTEKKwlhZGRxCTEyMCglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl2cHNybHEJJDQyLCV4bW05LCV4bW05CisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl2cHhvcgkleG1tMTAsJXhtbTExLCV4bW0xMQorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwl2cHhvcgkleG1tOSwleG1tMTEsJXhtbTExCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJdnBhZGRxCSV4bW0xMSwleG1tNywleG1tNworCXhvcnEJJXJieCwlcjE0CisJYWRkcQklcjEzLCVyYXgKKwl2cGFkZHEJOTYoJXJicCksJXhtbTcsJXhtbTEwCisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJdm1vdmRxYQkleG1tMTAsMTEyKCVyc3ApCisJY21wYgkkMCwxMzUoJXJicCkKKwlqbmUJTCRhdnhfMDBfNDcKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYXgKKwltb3ZxCSVyOSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcjgsJXIxMworCXhvcnEJJXIxMCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmF4LCVyMTQKKwlhbmRxCSVyOCwlcjEyCisJeG9ycQklcjgsJXIxMworCWFkZHEJMCglcnNwKSwlcjExCisJbW92cQklcmF4LCVyMTUKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjE1CisJYWRkcQklcjEyLCVyMTEKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyYXgsJXIxNAorCWFkZHEJJXIxMywlcjExCisJeG9ycQklcmJ4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcjExLCVyZHgKKwlhZGRxCSVyZGksJXIxMQorCW1vdnEJJXJkeCwlcjEzCisJYWRkcQklcjExLCVyMTQKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyMTEKKwltb3ZxCSVyOCwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcmR4LCVyMTMKKwl4b3JxCSVyOSwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjExLCVyMTQKKwlhbmRxCSVyZHgsJXIxMgorCXhvcnEJJXJkeCwlcjEzCisJYWRkcQk4KCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjEwCisJbW92cQklcmR4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCWFuZHEJJXJjeCwlcjEyCisJeG9ycQklcmN4LCVyMTMKKwlhZGRxCTE2KCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXIxMCwlcjE0CisJYWRkcQklcjEzLCVyOQorCXhvcnEJJXIxMSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJbW92cQklcmJ4LCVyMTMKKwlhZGRxCSVyOSwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCWFkZHEJMjQoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXhvcnEJJXJkeCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwlhZGRxCTMyKCVyc3ApLCVyZHgKKwltb3ZxCSVyOCwlcjE1CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjE1CisJYWRkcQklcjEyLCVyZHgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJkeCwlcjExCisJYWRkcQklcmRpLCVyZHgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJbW92cQklcmF4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJYWRkcQk0MCglcnNwKSwlcmN4CisJbW92cQklcmR4LCVyZGkKKwl4b3JxCSVyYngsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXI4LCVyZGkKKwlhZGRxCSVyMTIsJXJjeAorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyZGksJXIxNQorCXhvcnEJJXJkeCwlcjE0CisJYWRkcQklcjEzLCVyY3gKKwl4b3JxCSVyOCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJjeCwlcjEwCisJYWRkcQklcjE1LCVyY3gKKwltb3ZxCSVyMTAsJXIxMworCWFkZHEJJXJjeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmN4CisJbW92cQklcjExLCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTAsJXIxMworCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmN4LCVyMTQKKwlhbmRxCSVyMTAsJXIxMgorCXhvcnEJJXIxMCwlcjEzCisJYWRkcQk0OCglcnNwKSwlcmJ4CisJbW92cQklcmN4LCVyMTUKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJkeCwlcjE1CisJYWRkcQklcjEyLCVyYngKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyY3gsJXIxNAorCWFkZHEJJXIxMywlcmJ4CisJeG9ycQklcmR4LCVyZGkKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmJ4LCVyOQorCWFkZHEJJXJkaSwlcmJ4CisJbW92cQklcjksJXIxMworCWFkZHEJJXJieCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmJ4CisJbW92cQklcjEwLCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjEzCisJeG9ycQklcjExLCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyYngsJXIxNAorCWFuZHEJJXI5LCVyMTIKKwl4b3JxCSVyOSwlcjEzCisJYWRkcQk1NiglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyYngsJXIxNAorCWFkZHEJJXIxMywlcmF4CisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmF4CisJbW92cQklcjksJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXI4LCVyMTMKKwl4b3JxCSVyMTAsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJheCwlcjE0CisJYW5kcQklcjgsJXIxMgorCXhvcnEJJXI4LCVyMTMKKwlhZGRxCTY0KCVyc3ApLCVyMTEKKwltb3ZxCSVyYXgsJXIxNQorCXhvcnEJJXIxMCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcmJ4LCVyMTUKKwlhZGRxCSVyMTIsJXIxMQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJheCwlcjE0CisJYWRkcQklcjEzLCVyMTEKKwl4b3JxCSVyYngsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyMTEsJXJkeAorCWFkZHEJJXJkaSwlcjExCisJbW92cQklcmR4LCVyMTMKKwlhZGRxCSVyMTEsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXIxMQorCW1vdnEJJXI4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyZHgsJXIxMworCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTEsJXIxNAorCWFuZHEJJXJkeCwlcjEyCisJeG9ycQklcmR4LCVyMTMKKwlhZGRxCTcyKCVyc3ApLCVyMTAKKwltb3ZxCSVyMTEsJXJkaQorCXhvcnEJJXI5LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXJkaQorCWFkZHEJJXIxMiwlcjEwCisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjExLCVyMTQKKwlhZGRxCSVyMTMsJXIxMAorCXhvcnEJJXJheCwlcjE1CisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXIxMCwlcmN4CisJYWRkcQklcjE1LCVyMTAKKwltb3ZxCSVyY3gsJXIxMworCWFkZHEJJXIxMCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjEwCisJbW92cQklcmR4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyY3gsJXIxMworCXhvcnEJJXI4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyMTAsJXIxNAorCWFuZHEJJXJjeCwlcjEyCisJeG9ycQklcmN4LCVyMTMKKwlhZGRxCTgwKCVyc3ApLCVyOQorCW1vdnEJJXIxMCwlcjE1CisJeG9ycQklcjgsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXIxMSwlcjE1CisJYWRkcQklcjEyLCVyOQorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXIxMCwlcjE0CisJYWRkcQklcjEzLCVyOQorCXhvcnEJJXIxMSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXI5LCVyYngKKwlhZGRxCSVyZGksJXI5CisJbW92cQklcmJ4LCVyMTMKKwlhZGRxCSVyOSwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcjkKKwltb3ZxCSVyY3gsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXJieCwlcjEzCisJeG9ycQklcmR4LCVyMTIKKwlzaHJkcQkkNCwlcjEzLCVyMTMKKwl4b3JxCSVyOSwlcjE0CisJYW5kcQklcmJ4LCVyMTIKKwl4b3JxCSVyYngsJXIxMworCWFkZHEJODgoJXJzcCksJXI4CisJbW92cQklcjksJXJkaQorCXhvcnEJJXJkeCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyZGkKKwlhZGRxCSVyMTIsJXI4CisJc2hyZHEJJDE0LCVyMTMsJXIxMworCWFuZHEJJXJkaSwlcjE1CisJeG9ycQklcjksJXIxNAorCWFkZHEJJXIxMywlcjgKKwl4b3JxCSVyMTAsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyOCwlcmF4CisJYWRkcQklcjE1LCVyOAorCW1vdnEJJXJheCwlcjEzCisJYWRkcQklcjgsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXI4CisJbW92cQklcmJ4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyYXgsJXIxMworCXhvcnEJJXJjeCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcjgsJXIxNAorCWFuZHEJJXJheCwlcjEyCisJeG9ycQklcmF4LCVyMTMKKwlhZGRxCTk2KCVyc3ApLCVyZHgKKwltb3ZxCSVyOCwlcjE1CisJeG9ycQklcmN4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOSwlcjE1CisJYWRkcQklcjEyLCVyZHgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcjE1LCVyZGkKKwl4b3JxCSVyOCwlcjE0CisJYWRkcQklcjEzLCVyZHgKKwl4b3JxCSVyOSwlcmRpCisJc2hyZHEJJDI4LCVyMTQsJXIxNAorCWFkZHEJJXJkeCwlcjExCisJYWRkcQklcmRpLCVyZHgKKwltb3ZxCSVyMTEsJXIxMworCWFkZHEJJXJkeCwlcjE0CisJc2hyZHEJJDIzLCVyMTMsJXIxMworCW1vdnEJJXIxNCwlcmR4CisJbW92cQklcmF4LCVyMTIKKwlzaHJkcQkkNSwlcjE0LCVyMTQKKwl4b3JxCSVyMTEsJXIxMworCXhvcnEJJXJieCwlcjEyCisJc2hyZHEJJDQsJXIxMywlcjEzCisJeG9ycQklcmR4LCVyMTQKKwlhbmRxCSVyMTEsJXIxMgorCXhvcnEJJXIxMSwlcjEzCisJYWRkcQkxMDQoJXJzcCksJXJjeAorCW1vdnEJJXJkeCwlcmRpCisJeG9ycQklcmJ4LCVyMTIKKwlzaHJkcQkkNiwlcjE0LCVyMTQKKwl4b3JxCSVyOCwlcmRpCisJYWRkcQklcjEyLCVyY3gKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyZHgsJXIxNAorCWFkZHEJJXIxMywlcmN4CisJeG9ycQklcjgsJXIxNQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyY3gsJXIxMAorCWFkZHEJJXIxNSwlcmN4CisJbW92cQklcjEwLCVyMTMKKwlhZGRxCSVyY3gsJXIxNAorCXNocmRxCSQyMywlcjEzLCVyMTMKKwltb3ZxCSVyMTQsJXJjeAorCW1vdnEJJXIxMSwlcjEyCisJc2hyZHEJJDUsJXIxNCwlcjE0CisJeG9ycQklcjEwLCVyMTMKKwl4b3JxCSVyYXgsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJjeCwlcjE0CisJYW5kcQklcjEwLCVyMTIKKwl4b3JxCSVyMTAsJXIxMworCWFkZHEJMTEyKCVyc3ApLCVyYngKKwltb3ZxCSVyY3gsJXIxNQorCXhvcnEJJXJheCwlcjEyCisJc2hyZHEJJDYsJXIxNCwlcjE0CisJeG9ycQklcmR4LCVyMTUKKwlhZGRxCSVyMTIsJXJieAorCXNocmRxCSQxNCwlcjEzLCVyMTMKKwlhbmRxCSVyMTUsJXJkaQorCXhvcnEJJXJjeCwlcjE0CisJYWRkcQklcjEzLCVyYngKKwl4b3JxCSVyZHgsJXJkaQorCXNocmRxCSQyOCwlcjE0LCVyMTQKKwlhZGRxCSVyYngsJXI5CisJYWRkcQklcmRpLCVyYngKKwltb3ZxCSVyOSwlcjEzCisJYWRkcQklcmJ4LCVyMTQKKwlzaHJkcQkkMjMsJXIxMywlcjEzCisJbW92cQklcjE0LCVyYngKKwltb3ZxCSVyMTAsJXIxMgorCXNocmRxCSQ1LCVyMTQsJXIxNAorCXhvcnEJJXI5LCVyMTMKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ0LCVyMTMsJXIxMworCXhvcnEJJXJieCwlcjE0CisJYW5kcQklcjksJXIxMgorCXhvcnEJJXI5LCVyMTMKKwlhZGRxCTEyMCglcnNwKSwlcmF4CisJbW92cQklcmJ4LCVyZGkKKwl4b3JxCSVyMTEsJXIxMgorCXNocmRxCSQ2LCVyMTQsJXIxNAorCXhvcnEJJXJjeCwlcmRpCisJYWRkcQklcjEyLCVyYXgKKwlzaHJkcQkkMTQsJXIxMywlcjEzCisJYW5kcQklcmRpLCVyMTUKKwl4b3JxCSVyYngsJXIxNAorCWFkZHEJJXIxMywlcmF4CisJeG9ycQklcmN4LCVyMTUKKwlzaHJkcQkkMjgsJXIxNCwlcjE0CisJYWRkcQklcmF4LCVyOAorCWFkZHEJJXIxNSwlcmF4CisJbW92cQklcjgsJXIxMworCWFkZHEJJXJheCwlcjE0CisJbW92cQkxMjgrMCglcnNwKSwlcmRpCisJbW92cQklcjE0LCVyYXgKKworCWFkZHEJMCglcmRpKSwlcmF4CisJbGVhcQkxMjgoJXJzaSksJXJzaQorCWFkZHEJOCglcmRpKSwlcmJ4CisJYWRkcQkxNiglcmRpKSwlcmN4CisJYWRkcQkyNCglcmRpKSwlcmR4CisJYWRkcQkzMiglcmRpKSwlcjgKKwlhZGRxCTQwKCVyZGkpLCVyOQorCWFkZHEJNDgoJXJkaSksJXIxMAorCWFkZHEJNTYoJXJkaSksJXIxMQorCisJY21wcQkxMjgrMTYoJXJzcCksJXJzaQorCisJbW92cQklcmF4LDAoJXJkaSkKKwltb3ZxCSVyYngsOCglcmRpKQorCW1vdnEJJXJjeCwxNiglcmRpKQorCW1vdnEJJXJkeCwyNCglcmRpKQorCW1vdnEJJXI4LDMyKCVyZGkpCisJbW92cQklcjksNDAoJXJkaSkKKwltb3ZxCSVyMTAsNDgoJXJkaSkKKwltb3ZxCSVyMTEsNTYoJXJkaSkKKwlqYglMJGxvb3BfYXZ4CisKKwltb3ZxCTEyOCsyNCglcnNwKSwlcnNpCisJdnplcm91cHBlcgorCW1vdnEJKCVyc2kpLCVyMTUKKwltb3ZxCTgoJXJzaSksJXIxNAorCW1vdnEJMTYoJXJzaSksJXIxMworCW1vdnEJMjQoJXJzaSksJXIxMgorCW1vdnEJMzIoJXJzaSksJXJicAorCW1vdnEJNDAoJXJzaSksJXJieAorCWxlYXEJNDgoJXJzaSksJXJzcAorTCRlcGlsb2d1ZV9hdng6CisJLmJ5dGUJMHhmMywweGMzCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Ni5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JhMzFhMgotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Ni5hc20KQEAgLTAsMCArMSw5NzcgQEAKKyVpZmlkbiBfX09VVFBVVF9GT1JNQVRfXyxvYmoKK3NlY3Rpb24JY29kZQl1c2UzMiBjbGFzcz1jb2RlIGFsaWduPTY0CislZWxpZmlkbiBfX09VVFBVVF9GT1JNQVRfXyx3aW4zMgorJWlmZGVmIF9fWUFTTV9WRVJTSU9OX0lEX18KKyVpZiBfX1lBU01fVkVSU0lPTl9JRF9fIDwgMDEwMTAwMDBoCislZXJyb3IgeWFzbSB2ZXJzaW9uIDEuMS4wIG9yIGxhdGVyIG5lZWRlZC4KKyVlbmRpZgorOyBZYXNtIGF1dG9tYXRpY2FsbHkgaW5jbHVkZXMgLjAwIGFuZCBjb21wbGFpbnMgYWJvdXQgcmVkZWZpbmluZyBpdC4KKzsgaHR0cHM6Ly93d3cudG9ydGFsbC5uZXQvcHJvamVjdHMveWFzbS9tYW51YWwvaHRtbC9vYmpmbXQtd2luMzItc2FmZXNlaC5odG1sCislZWxzZQorJEBmZWF0LjAwIGVxdSAxCislZW5kaWYKK3NlY3Rpb24JLnRleHQJY29kZSBhbGlnbj02NAorJWVsc2UKK3NlY3Rpb24JLnRleHQJY29kZQorJWVuZGlmCitnbG9iYWwJX0NoYUNoYTIwX2N0cjMyCithbGlnbgkxNgorX0NoYUNoYTIwX2N0cjMyOgorTCRfQ2hhQ2hhMjBfY3RyMzJfYmVnaW46CisJcHVzaAllYnAKKwlwdXNoCWVieAorCXB1c2gJZXNpCisJcHVzaAllZGkKKwl4b3IJZWF4LGVheAorCWNtcAllYXgsRFdPUkQgWzI4K2VzcF0KKwlqZQlORUFSIEwkMDAwbm9fZGF0YQorCWNhbGwJTCRwaWNfcG9pbnQKK0wkcGljX3BvaW50OgorCXBvcAllYXgKKwlsZWEJZWJwLFtfT1BFTlNTTF9pYTMyY2FwX1BdCisJdGVzdAlEV09SRCBbZWJwXSwxNjc3NzIxNgorCWp6CU5FQVIgTCQwMDF4ODYKKwl0ZXN0CURXT1JEIFs0K2VicF0sNTEyCisJanoJTkVBUiBMJDAwMXg4NgorCWptcAlORUFSIEwkc3NzZTNfc2hvcnRjdXQKK0wkMDAxeDg2OgorCW1vdgllc2ksRFdPUkQgWzMyK2VzcF0KKwltb3YJZWRpLERXT1JEIFszNitlc3BdCisJc3ViCWVzcCwxMzIKKwltb3YJZWF4LERXT1JEIFtlc2ldCisJbW92CWVieCxEV09SRCBbNCtlc2ldCisJbW92CWVjeCxEV09SRCBbOCtlc2ldCisJbW92CWVkeCxEV09SRCBbMTIrZXNpXQorCW1vdglEV09SRCBbODArZXNwXSxlYXgKKwltb3YJRFdPUkQgWzg0K2VzcF0sZWJ4CisJbW92CURXT1JEIFs4OCtlc3BdLGVjeAorCW1vdglEV09SRCBbOTIrZXNwXSxlZHgKKwltb3YJZWF4LERXT1JEIFsxNitlc2ldCisJbW92CWVieCxEV09SRCBbMjArZXNpXQorCW1vdgllY3gsRFdPUkQgWzI0K2VzaV0KKwltb3YJZWR4LERXT1JEIFsyOCtlc2ldCisJbW92CURXT1JEIFs5Nitlc3BdLGVheAorCW1vdglEV09SRCBbMTAwK2VzcF0sZWJ4CisJbW92CURXT1JEIFsxMDQrZXNwXSxlY3gKKwltb3YJRFdPUkQgWzEwOCtlc3BdLGVkeAorCW1vdgllYXgsRFdPUkQgW2VkaV0KKwltb3YJZWJ4LERXT1JEIFs0K2VkaV0KKwltb3YJZWN4LERXT1JEIFs4K2VkaV0KKwltb3YJZWR4LERXT1JEIFsxMitlZGldCisJc3ViCWVheCwxCisJbW92CURXT1JEIFsxMTIrZXNwXSxlYXgKKwltb3YJRFdPUkQgWzExNitlc3BdLGVieAorCW1vdglEV09SRCBbMTIwK2VzcF0sZWN4CisJbW92CURXT1JEIFsxMjQrZXNwXSxlZHgKKwlqbXAJTkVBUiBMJDAwMmVudHJ5CithbGlnbgkxNgorTCQwMDNvdXRlcl9sb29wOgorCW1vdglEV09SRCBbMTU2K2VzcF0sZWJ4CisJbW92CURXT1JEIFsxNTIrZXNwXSxlYXgKKwltb3YJRFdPUkQgWzE2MCtlc3BdLGVjeAorTCQwMDJlbnRyeToKKwltb3YJZWF4LDE2MzQ3NjA4MDUKKwltb3YJRFdPUkQgWzQrZXNwXSw4NTc3NjA4NzgKKwltb3YJRFdPUkQgWzgrZXNwXSwyMDM2NDc3MjM0CisJbW92CURXT1JEIFsxMitlc3BdLDE3OTcyODUyMzYKKwltb3YJZWJ4LERXT1JEIFs4NCtlc3BdCisJbW92CWVicCxEV09SRCBbODgrZXNwXQorCW1vdgllY3gsRFdPUkQgWzEwNCtlc3BdCisJbW92CWVzaSxEV09SRCBbMTA4K2VzcF0KKwltb3YJZWR4LERXT1JEIFsxMTYrZXNwXQorCW1vdgllZGksRFdPUkQgWzEyMCtlc3BdCisJbW92CURXT1JEIFsyMCtlc3BdLGVieAorCW1vdglEV09SRCBbMjQrZXNwXSxlYnAKKwltb3YJRFdPUkQgWzQwK2VzcF0sZWN4CisJbW92CURXT1JEIFs0NCtlc3BdLGVzaQorCW1vdglEV09SRCBbNTIrZXNwXSxlZHgKKwltb3YJRFdPUkQgWzU2K2VzcF0sZWRpCisJbW92CWVieCxEV09SRCBbOTIrZXNwXQorCW1vdgllZGksRFdPUkQgWzEyNCtlc3BdCisJbW92CWVkeCxEV09SRCBbMTEyK2VzcF0KKwltb3YJZWJwLERXT1JEIFs4MCtlc3BdCisJbW92CWVjeCxEV09SRCBbOTYrZXNwXQorCW1vdgllc2ksRFdPUkQgWzEwMCtlc3BdCisJYWRkCWVkeCwxCisJbW92CURXT1JEIFsyOCtlc3BdLGVieAorCW1vdglEV09SRCBbNjArZXNwXSxlZGkKKwltb3YJRFdPUkQgWzExMitlc3BdLGVkeAorCW1vdgllYngsMTAKKwlqbXAJTkVBUiBMJDAwNGxvb3AKK2FsaWduCTE2CitMJDAwNGxvb3A6CisJYWRkCWVheCxlYnAKKwltb3YJRFdPUkQgWzEyOCtlc3BdLGVieAorCW1vdgllYngsZWJwCisJeG9yCWVkeCxlYXgKKwlyb2wJZWR4LDE2CisJYWRkCWVjeCxlZHgKKwl4b3IJZWJ4LGVjeAorCW1vdgllZGksRFdPUkQgWzUyK2VzcF0KKwlyb2wJZWJ4LDEyCisJbW92CWVicCxEV09SRCBbMjArZXNwXQorCWFkZAllYXgsZWJ4CisJeG9yCWVkeCxlYXgKKwltb3YJRFdPUkQgW2VzcF0sZWF4CisJcm9sCWVkeCw4CisJbW92CWVheCxEV09SRCBbNCtlc3BdCisJYWRkCWVjeCxlZHgKKwltb3YJRFdPUkQgWzQ4K2VzcF0sZWR4CisJeG9yCWVieCxlY3gKKwlhZGQJZWF4LGVicAorCXJvbAllYngsNworCXhvcgllZGksZWF4CisJbW92CURXT1JEIFszMitlc3BdLGVjeAorCXJvbAllZGksMTYKKwltb3YJRFdPUkQgWzE2K2VzcF0sZWJ4CisJYWRkCWVzaSxlZGkKKwltb3YJZWN4LERXT1JEIFs0MCtlc3BdCisJeG9yCWVicCxlc2kKKwltb3YJZWR4LERXT1JEIFs1Nitlc3BdCisJcm9sCWVicCwxMgorCW1vdgllYngsRFdPUkQgWzI0K2VzcF0KKwlhZGQJZWF4LGVicAorCXhvcgllZGksZWF4CisJbW92CURXT1JEIFs0K2VzcF0sZWF4CisJcm9sCWVkaSw4CisJbW92CWVheCxEV09SRCBbOCtlc3BdCisJYWRkCWVzaSxlZGkKKwltb3YJRFdPUkQgWzUyK2VzcF0sZWRpCisJeG9yCWVicCxlc2kKKwlhZGQJZWF4LGVieAorCXJvbAllYnAsNworCXhvcgllZHgsZWF4CisJbW92CURXT1JEIFszNitlc3BdLGVzaQorCXJvbAllZHgsMTYKKwltb3YJRFdPUkQgWzIwK2VzcF0sZWJwCisJYWRkCWVjeCxlZHgKKwltb3YJZXNpLERXT1JEIFs0NCtlc3BdCisJeG9yCWVieCxlY3gKKwltb3YJZWRpLERXT1JEIFs2MCtlc3BdCisJcm9sCWVieCwxMgorCW1vdgllYnAsRFdPUkQgWzI4K2VzcF0KKwlhZGQJZWF4LGVieAorCXhvcgllZHgsZWF4CisJbW92CURXT1JEIFs4K2VzcF0sZWF4CisJcm9sCWVkeCw4CisJbW92CWVheCxEV09SRCBbMTIrZXNwXQorCWFkZAllY3gsZWR4CisJbW92CURXT1JEIFs1Nitlc3BdLGVkeAorCXhvcgllYngsZWN4CisJYWRkCWVheCxlYnAKKwlyb2wJZWJ4LDcKKwl4b3IJZWRpLGVheAorCXJvbAllZGksMTYKKwltb3YJRFdPUkQgWzI0K2VzcF0sZWJ4CisJYWRkCWVzaSxlZGkKKwl4b3IJZWJwLGVzaQorCXJvbAllYnAsMTIKKwltb3YJZWJ4LERXT1JEIFsyMCtlc3BdCisJYWRkCWVheCxlYnAKKwl4b3IJZWRpLGVheAorCW1vdglEV09SRCBbMTIrZXNwXSxlYXgKKwlyb2wJZWRpLDgKKwltb3YJZWF4LERXT1JEIFtlc3BdCisJYWRkCWVzaSxlZGkKKwltb3YJZWR4LGVkaQorCXhvcgllYnAsZXNpCisJYWRkCWVheCxlYngKKwlyb2wJZWJwLDcKKwl4b3IJZWR4LGVheAorCXJvbAllZHgsMTYKKwltb3YJRFdPUkQgWzI4K2VzcF0sZWJwCisJYWRkCWVjeCxlZHgKKwl4b3IJZWJ4LGVjeAorCW1vdgllZGksRFdPUkQgWzQ4K2VzcF0KKwlyb2wJZWJ4LDEyCisJbW92CWVicCxEV09SRCBbMjQrZXNwXQorCWFkZAllYXgsZWJ4CisJeG9yCWVkeCxlYXgKKwltb3YJRFdPUkQgW2VzcF0sZWF4CisJcm9sCWVkeCw4CisJbW92CWVheCxEV09SRCBbNCtlc3BdCisJYWRkCWVjeCxlZHgKKwltb3YJRFdPUkQgWzYwK2VzcF0sZWR4CisJeG9yCWVieCxlY3gKKwlhZGQJZWF4LGVicAorCXJvbAllYngsNworCXhvcgllZGksZWF4CisJbW92CURXT1JEIFs0MCtlc3BdLGVjeAorCXJvbAllZGksMTYKKwltb3YJRFdPUkQgWzIwK2VzcF0sZWJ4CisJYWRkCWVzaSxlZGkKKwltb3YJZWN4LERXT1JEIFszMitlc3BdCisJeG9yCWVicCxlc2kKKwltb3YJZWR4LERXT1JEIFs1Mitlc3BdCisJcm9sCWVicCwxMgorCW1vdgllYngsRFdPUkQgWzI4K2VzcF0KKwlhZGQJZWF4LGVicAorCXhvcgllZGksZWF4CisJbW92CURXT1JEIFs0K2VzcF0sZWF4CisJcm9sCWVkaSw4CisJbW92CWVheCxEV09SRCBbOCtlc3BdCisJYWRkCWVzaSxlZGkKKwltb3YJRFdPUkQgWzQ4K2VzcF0sZWRpCisJeG9yCWVicCxlc2kKKwlhZGQJZWF4LGVieAorCXJvbAllYnAsNworCXhvcgllZHgsZWF4CisJbW92CURXT1JEIFs0NCtlc3BdLGVzaQorCXJvbAllZHgsMTYKKwltb3YJRFdPUkQgWzI0K2VzcF0sZWJwCisJYWRkCWVjeCxlZHgKKwltb3YJZXNpLERXT1JEIFszNitlc3BdCisJeG9yCWVieCxlY3gKKwltb3YJZWRpLERXT1JEIFs1Nitlc3BdCisJcm9sCWVieCwxMgorCW1vdgllYnAsRFdPUkQgWzE2K2VzcF0KKwlhZGQJZWF4LGVieAorCXhvcgllZHgsZWF4CisJbW92CURXT1JEIFs4K2VzcF0sZWF4CisJcm9sCWVkeCw4CisJbW92CWVheCxEV09SRCBbMTIrZXNwXQorCWFkZAllY3gsZWR4CisJbW92CURXT1JEIFs1Mitlc3BdLGVkeAorCXhvcgllYngsZWN4CisJYWRkCWVheCxlYnAKKwlyb2wJZWJ4LDcKKwl4b3IJZWRpLGVheAorCXJvbAllZGksMTYKKwltb3YJRFdPUkQgWzI4K2VzcF0sZWJ4CisJYWRkCWVzaSxlZGkKKwl4b3IJZWJwLGVzaQorCW1vdgllZHgsRFdPUkQgWzQ4K2VzcF0KKwlyb2wJZWJwLDEyCisJbW92CWVieCxEV09SRCBbMTI4K2VzcF0KKwlhZGQJZWF4LGVicAorCXhvcgllZGksZWF4CisJbW92CURXT1JEIFsxMitlc3BdLGVheAorCXJvbAllZGksOAorCW1vdgllYXgsRFdPUkQgW2VzcF0KKwlhZGQJZXNpLGVkaQorCW1vdglEV09SRCBbNTYrZXNwXSxlZGkKKwl4b3IJZWJwLGVzaQorCXJvbAllYnAsNworCWRlYwllYngKKwlqbnoJTkVBUiBMJDAwNGxvb3AKKwltb3YJZWJ4LERXT1JEIFsxNjArZXNwXQorCWFkZAllYXgsMTYzNDc2MDgwNQorCWFkZAllYnAsRFdPUkQgWzgwK2VzcF0KKwlhZGQJZWN4LERXT1JEIFs5Nitlc3BdCisJYWRkCWVzaSxEV09SRCBbMTAwK2VzcF0KKwljbXAJZWJ4LDY0CisJamIJTkVBUiBMJDAwNXRhaWwKKwltb3YJZWJ4LERXT1JEIFsxNTYrZXNwXQorCWFkZAllZHgsRFdPUkQgWzExMitlc3BdCisJYWRkCWVkaSxEV09SRCBbMTIwK2VzcF0KKwl4b3IJZWF4LERXT1JEIFtlYnhdCisJeG9yCWVicCxEV09SRCBbMTYrZWJ4XQorCW1vdglEV09SRCBbZXNwXSxlYXgKKwltb3YJZWF4LERXT1JEIFsxNTIrZXNwXQorCXhvcgllY3gsRFdPUkQgWzMyK2VieF0KKwl4b3IJZXNpLERXT1JEIFszNitlYnhdCisJeG9yCWVkeCxEV09SRCBbNDgrZWJ4XQorCXhvcgllZGksRFdPUkQgWzU2K2VieF0KKwltb3YJRFdPUkQgWzE2K2VheF0sZWJwCisJbW92CURXT1JEIFszMitlYXhdLGVjeAorCW1vdglEV09SRCBbMzYrZWF4XSxlc2kKKwltb3YJRFdPUkQgWzQ4K2VheF0sZWR4CisJbW92CURXT1JEIFs1NitlYXhdLGVkaQorCW1vdgllYnAsRFdPUkQgWzQrZXNwXQorCW1vdgllY3gsRFdPUkQgWzgrZXNwXQorCW1vdgllc2ksRFdPUkQgWzEyK2VzcF0KKwltb3YJZWR4LERXT1JEIFsyMCtlc3BdCisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCWFkZAllYnAsODU3NzYwODc4CisJYWRkCWVjeCwyMDM2NDc3MjM0CisJYWRkCWVzaSwxNzk3Mjg1MjM2CisJYWRkCWVkeCxEV09SRCBbODQrZXNwXQorCWFkZAllZGksRFdPUkQgWzg4K2VzcF0KKwl4b3IJZWJwLERXT1JEIFs0K2VieF0KKwl4b3IJZWN4LERXT1JEIFs4K2VieF0KKwl4b3IJZXNpLERXT1JEIFsxMitlYnhdCisJeG9yCWVkeCxEV09SRCBbMjArZWJ4XQorCXhvcgllZGksRFdPUkQgWzI0K2VieF0KKwltb3YJRFdPUkQgWzQrZWF4XSxlYnAKKwltb3YJRFdPUkQgWzgrZWF4XSxlY3gKKwltb3YJRFdPUkQgWzEyK2VheF0sZXNpCisJbW92CURXT1JEIFsyMCtlYXhdLGVkeAorCW1vdglEV09SRCBbMjQrZWF4XSxlZGkKKwltb3YJZWJwLERXT1JEIFsyOCtlc3BdCisJbW92CWVjeCxEV09SRCBbNDArZXNwXQorCW1vdgllc2ksRFdPUkQgWzQ0K2VzcF0KKwltb3YJZWR4LERXT1JEIFs1Mitlc3BdCisJbW92CWVkaSxEV09SRCBbNjArZXNwXQorCWFkZAllYnAsRFdPUkQgWzkyK2VzcF0KKwlhZGQJZWN4LERXT1JEIFsxMDQrZXNwXQorCWFkZAllc2ksRFdPUkQgWzEwOCtlc3BdCisJYWRkCWVkeCxEV09SRCBbMTE2K2VzcF0KKwlhZGQJZWRpLERXT1JEIFsxMjQrZXNwXQorCXhvcgllYnAsRFdPUkQgWzI4K2VieF0KKwl4b3IJZWN4LERXT1JEIFs0MCtlYnhdCisJeG9yCWVzaSxEV09SRCBbNDQrZWJ4XQorCXhvcgllZHgsRFdPUkQgWzUyK2VieF0KKwl4b3IJZWRpLERXT1JEIFs2MCtlYnhdCisJbGVhCWVieCxbNjQrZWJ4XQorCW1vdglEV09SRCBbMjgrZWF4XSxlYnAKKwltb3YJZWJwLERXT1JEIFtlc3BdCisJbW92CURXT1JEIFs0MCtlYXhdLGVjeAorCW1vdgllY3gsRFdPUkQgWzE2MCtlc3BdCisJbW92CURXT1JEIFs0NCtlYXhdLGVzaQorCW1vdglEV09SRCBbNTIrZWF4XSxlZHgKKwltb3YJRFdPUkQgWzYwK2VheF0sZWRpCisJbW92CURXT1JEIFtlYXhdLGVicAorCWxlYQllYXgsWzY0K2VheF0KKwlzdWIJZWN4LDY0CisJam56CU5FQVIgTCQwMDNvdXRlcl9sb29wCisJam1wCU5FQVIgTCQwMDZkb25lCitMJDAwNXRhaWw6CisJYWRkCWVkeCxEV09SRCBbMTEyK2VzcF0KKwlhZGQJZWRpLERXT1JEIFsxMjArZXNwXQorCW1vdglEV09SRCBbZXNwXSxlYXgKKwltb3YJRFdPUkQgWzE2K2VzcF0sZWJwCisJbW92CURXT1JEIFszMitlc3BdLGVjeAorCW1vdglEV09SRCBbMzYrZXNwXSxlc2kKKwltb3YJRFdPUkQgWzQ4K2VzcF0sZWR4CisJbW92CURXT1JEIFs1Nitlc3BdLGVkaQorCW1vdgllYnAsRFdPUkQgWzQrZXNwXQorCW1vdgllY3gsRFdPUkQgWzgrZXNwXQorCW1vdgllc2ksRFdPUkQgWzEyK2VzcF0KKwltb3YJZWR4LERXT1JEIFsyMCtlc3BdCisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCWFkZAllYnAsODU3NzYwODc4CisJYWRkCWVjeCwyMDM2NDc3MjM0CisJYWRkCWVzaSwxNzk3Mjg1MjM2CisJYWRkCWVkeCxEV09SRCBbODQrZXNwXQorCWFkZAllZGksRFdPUkQgWzg4K2VzcF0KKwltb3YJRFdPUkQgWzQrZXNwXSxlYnAKKwltb3YJRFdPUkQgWzgrZXNwXSxlY3gKKwltb3YJRFdPUkQgWzEyK2VzcF0sZXNpCisJbW92CURXT1JEIFsyMCtlc3BdLGVkeAorCW1vdglEV09SRCBbMjQrZXNwXSxlZGkKKwltb3YJZWJwLERXT1JEIFsyOCtlc3BdCisJbW92CWVjeCxEV09SRCBbNDArZXNwXQorCW1vdgllc2ksRFdPUkQgWzQ0K2VzcF0KKwltb3YJZWR4LERXT1JEIFs1Mitlc3BdCisJbW92CWVkaSxEV09SRCBbNjArZXNwXQorCWFkZAllYnAsRFdPUkQgWzkyK2VzcF0KKwlhZGQJZWN4LERXT1JEIFsxMDQrZXNwXQorCWFkZAllc2ksRFdPUkQgWzEwOCtlc3BdCisJYWRkCWVkeCxEV09SRCBbMTE2K2VzcF0KKwlhZGQJZWRpLERXT1JEIFsxMjQrZXNwXQorCW1vdglEV09SRCBbMjgrZXNwXSxlYnAKKwltb3YJZWJwLERXT1JEIFsxNTYrZXNwXQorCW1vdglEV09SRCBbNDArZXNwXSxlY3gKKwltb3YJZWN4LERXT1JEIFsxNTIrZXNwXQorCW1vdglEV09SRCBbNDQrZXNwXSxlc2kKKwl4b3IJZXNpLGVzaQorCW1vdglEV09SRCBbNTIrZXNwXSxlZHgKKwltb3YJRFdPUkQgWzYwK2VzcF0sZWRpCisJeG9yCWVheCxlYXgKKwl4b3IJZWR4LGVkeAorTCQwMDd0YWlsX2xvb3A6CisJbW92CWFsLEJZVEUgW2VicCoxK2VzaV0KKwltb3YJZGwsQllURSBbZXNpKjErZXNwXQorCWxlYQllc2ksWzErZXNpXQorCXhvcglhbCxkbAorCW1vdglCWVRFIFtlc2kqMStlY3gtMV0sYWwKKwlkZWMJZWJ4CisJam56CU5FQVIgTCQwMDd0YWlsX2xvb3AKK0wkMDA2ZG9uZToKKwlhZGQJZXNwLDEzMgorTCQwMDBub19kYXRhOgorCXBvcAllZGkKKwlwb3AJZXNpCisJcG9wCWVieAorCXBvcAllYnAKKwlyZXQKK2dsb2JhbAlfQ2hhQ2hhMjBfc3NzZTMKK2FsaWduCTE2CitfQ2hhQ2hhMjBfc3NzZTM6CitMJF9DaGFDaGEyMF9zc3NlM19iZWdpbjoKKwlwdXNoCWVicAorCXB1c2gJZWJ4CisJcHVzaAllc2kKKwlwdXNoCWVkaQorTCRzc3NlM19zaG9ydGN1dDoKKwltb3YJZWRpLERXT1JEIFsyMCtlc3BdCisJbW92CWVzaSxEV09SRCBbMjQrZXNwXQorCW1vdgllY3gsRFdPUkQgWzI4K2VzcF0KKwltb3YJZWR4LERXT1JEIFszMitlc3BdCisJbW92CWVieCxEV09SRCBbMzYrZXNwXQorCW1vdgllYnAsZXNwCisJc3ViCWVzcCw1MjQKKwlhbmQJZXNwLC02NAorCW1vdglEV09SRCBbNTEyK2VzcF0sZWJwCisJbGVhCWVheCxbKEwkc3NzZTNfZGF0YS1MJHBpY19wb2ludCkrZWF4XQorCW1vdmRxdQl4bW0zLFtlYnhdCisJY21wCWVjeCwyNTYKKwlqYglORUFSIEwkMDA4MXgKKwltb3YJRFdPUkQgWzUxNitlc3BdLGVkeAorCW1vdglEV09SRCBbNTIwK2VzcF0sZWJ4CisJc3ViCWVjeCwyNTYKKwlsZWEJZWJwLFszODQrZXNwXQorCW1vdmRxdQl4bW03LFtlZHhdCisJcHNodWZkCXhtbTAseG1tMywwCisJcHNodWZkCXhtbTEseG1tMyw4NQorCXBzaHVmZAl4bW0yLHhtbTMsMTcwCisJcHNodWZkCXhtbTMseG1tMywyNTUKKwlwYWRkZAl4bW0wLFs0OCtlYXhdCisJcHNodWZkCXhtbTQseG1tNywwCisJcHNodWZkCXhtbTUseG1tNyw4NQorCXBzdWJkCXhtbTAsWzY0K2VheF0KKwlwc2h1ZmQJeG1tNix4bW03LDE3MAorCXBzaHVmZAl4bW03LHhtbTcsMjU1CisJbW92ZHFhCVs2NCtlYnBdLHhtbTAKKwltb3ZkcWEJWzgwK2VicF0seG1tMQorCW1vdmRxYQlbOTYrZWJwXSx4bW0yCisJbW92ZHFhCVsxMTIrZWJwXSx4bW0zCisJbW92ZHF1CXhtbTMsWzE2K2VkeF0KKwltb3ZkcWEJW2VicC02NF0seG1tNAorCW1vdmRxYQlbZWJwLTQ4XSx4bW01CisJbW92ZHFhCVtlYnAtMzJdLHhtbTYKKwltb3ZkcWEJW2VicC0xNl0seG1tNworCW1vdmRxYQl4bW03LFszMitlYXhdCisJbGVhCWVieCxbMTI4K2VzcF0KKwlwc2h1ZmQJeG1tMCx4bW0zLDAKKwlwc2h1ZmQJeG1tMSx4bW0zLDg1CisJcHNodWZkCXhtbTIseG1tMywxNzAKKwlwc2h1ZmQJeG1tMyx4bW0zLDI1NQorCXBzaHVmZAl4bW00LHhtbTcsMAorCXBzaHVmZAl4bW01LHhtbTcsODUKKwlwc2h1ZmQJeG1tNix4bW03LDE3MAorCXBzaHVmZAl4bW03LHhtbTcsMjU1CisJbW92ZHFhCVtlYnBdLHhtbTAKKwltb3ZkcWEJWzE2K2VicF0seG1tMQorCW1vdmRxYQlbMzIrZWJwXSx4bW0yCisJbW92ZHFhCVs0OCtlYnBdLHhtbTMKKwltb3ZkcWEJW2VicC0xMjhdLHhtbTQKKwltb3ZkcWEJW2VicC0xMTJdLHhtbTUKKwltb3ZkcWEJW2VicC05Nl0seG1tNgorCW1vdmRxYQlbZWJwLTgwXSx4bW03CisJbGVhCWVzaSxbMTI4K2VzaV0KKwlsZWEJZWRpLFsxMjgrZWRpXQorCWptcAlORUFSIEwkMDA5b3V0ZXJfbG9vcAorYWxpZ24JMTYKK0wkMDA5b3V0ZXJfbG9vcDoKKwltb3ZkcWEJeG1tMSxbZWJwLTExMl0KKwltb3ZkcWEJeG1tMixbZWJwLTk2XQorCW1vdmRxYQl4bW0zLFtlYnAtODBdCisJbW92ZHFhCXhtbTUsW2VicC00OF0KKwltb3ZkcWEJeG1tNixbZWJwLTMyXQorCW1vdmRxYQl4bW03LFtlYnAtMTZdCisJbW92ZHFhCVtlYngtMTEyXSx4bW0xCisJbW92ZHFhCVtlYngtOTZdLHhtbTIKKwltb3ZkcWEJW2VieC04MF0seG1tMworCW1vdmRxYQlbZWJ4LTQ4XSx4bW01CisJbW92ZHFhCVtlYngtMzJdLHhtbTYKKwltb3ZkcWEJW2VieC0xNl0seG1tNworCW1vdmRxYQl4bW0yLFszMitlYnBdCisJbW92ZHFhCXhtbTMsWzQ4K2VicF0KKwltb3ZkcWEJeG1tNCxbNjQrZWJwXQorCW1vdmRxYQl4bW01LFs4MCtlYnBdCisJbW92ZHFhCXhtbTYsWzk2K2VicF0KKwltb3ZkcWEJeG1tNyxbMTEyK2VicF0KKwlwYWRkZAl4bW00LFs2NCtlYXhdCisJbW92ZHFhCVszMitlYnhdLHhtbTIKKwltb3ZkcWEJWzQ4K2VieF0seG1tMworCW1vdmRxYQlbNjQrZWJ4XSx4bW00CisJbW92ZHFhCVs4MCtlYnhdLHhtbTUKKwltb3ZkcWEJWzk2K2VieF0seG1tNgorCW1vdmRxYQlbMTEyK2VieF0seG1tNworCW1vdmRxYQlbNjQrZWJwXSx4bW00CisJbW92ZHFhCXhtbTAsW2VicC0xMjhdCisJbW92ZHFhCXhtbTYseG1tNAorCW1vdmRxYQl4bW0zLFtlYnAtNjRdCisJbW92ZHFhCXhtbTQsW2VicF0KKwltb3ZkcWEJeG1tNSxbMTYrZWJwXQorCW1vdgllZHgsMTAKKwlub3AKK2FsaWduCTE2CitMJDAxMGxvb3A6CisJcGFkZGQJeG1tMCx4bW0zCisJbW92ZHFhCXhtbTIseG1tMworCXB4b3IJeG1tNix4bW0wCisJcHNodWZiCXhtbTYsW2VheF0KKwlwYWRkZAl4bW00LHhtbTYKKwlweG9yCXhtbTIseG1tNAorCW1vdmRxYQl4bW0zLFtlYngtNDhdCisJbW92ZHFhCXhtbTEseG1tMgorCXBzbGxkCXhtbTIsMTIKKwlwc3JsZAl4bW0xLDIwCisJcG9yCXhtbTIseG1tMQorCW1vdmRxYQl4bW0xLFtlYngtMTEyXQorCXBhZGRkCXhtbTAseG1tMgorCW1vdmRxYQl4bW03LFs4MCtlYnhdCisJcHhvcgl4bW02LHhtbTAKKwltb3ZkcWEJW2VieC0xMjhdLHhtbTAKKwlwc2h1ZmIJeG1tNixbMTYrZWF4XQorCXBhZGRkCXhtbTQseG1tNgorCW1vdmRxYQlbNjQrZWJ4XSx4bW02CisJcHhvcgl4bW0yLHhtbTQKKwlwYWRkZAl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMCx4bW0yCisJcHNsbGQJeG1tMiw3CisJcHNybGQJeG1tMCwyNQorCXB4b3IJeG1tNyx4bW0xCisJcG9yCXhtbTIseG1tMAorCW1vdmRxYQlbZWJ4XSx4bW00CisJcHNodWZiCXhtbTcsW2VheF0KKwltb3ZkcWEJW2VieC02NF0seG1tMgorCXBhZGRkCXhtbTUseG1tNworCW1vdmRxYQl4bW00LFszMitlYnhdCisJcHhvcgl4bW0zLHhtbTUKKwltb3ZkcWEJeG1tMixbZWJ4LTMyXQorCW1vdmRxYQl4bW0wLHhtbTMKKwlwc2xsZAl4bW0zLDEyCisJcHNybGQJeG1tMCwyMAorCXBvcgl4bW0zLHhtbTAKKwltb3ZkcWEJeG1tMCxbZWJ4LTk2XQorCXBhZGRkCXhtbTEseG1tMworCW1vdmRxYQl4bW02LFs5NitlYnhdCisJcHhvcgl4bW03LHhtbTEKKwltb3ZkcWEJW2VieC0xMTJdLHhtbTEKKwlwc2h1ZmIJeG1tNyxbMTYrZWF4XQorCXBhZGRkCXhtbTUseG1tNworCW1vdmRxYQlbODArZWJ4XSx4bW03CisJcHhvcgl4bW0zLHhtbTUKKwlwYWRkZAl4bW0wLHhtbTIKKwltb3ZkcWEJeG1tMSx4bW0zCisJcHNsbGQJeG1tMyw3CisJcHNybGQJeG1tMSwyNQorCXB4b3IJeG1tNix4bW0wCisJcG9yCXhtbTMseG1tMQorCW1vdmRxYQlbMTYrZWJ4XSx4bW01CisJcHNodWZiCXhtbTYsW2VheF0KKwltb3ZkcWEJW2VieC00OF0seG1tMworCXBhZGRkCXhtbTQseG1tNgorCW1vdmRxYQl4bW01LFs0OCtlYnhdCisJcHhvcgl4bW0yLHhtbTQKKwltb3ZkcWEJeG1tMyxbZWJ4LTE2XQorCW1vdmRxYQl4bW0xLHhtbTIKKwlwc2xsZAl4bW0yLDEyCisJcHNybGQJeG1tMSwyMAorCXBvcgl4bW0yLHhtbTEKKwltb3ZkcWEJeG1tMSxbZWJ4LTgwXQorCXBhZGRkCXhtbTAseG1tMgorCW1vdmRxYQl4bW03LFsxMTIrZWJ4XQorCXB4b3IJeG1tNix4bW0wCisJbW92ZHFhCVtlYngtOTZdLHhtbTAKKwlwc2h1ZmIJeG1tNixbMTYrZWF4XQorCXBhZGRkCXhtbTQseG1tNgorCW1vdmRxYQlbOTYrZWJ4XSx4bW02CisJcHhvcgl4bW0yLHhtbTQKKwlwYWRkZAl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMCx4bW0yCisJcHNsbGQJeG1tMiw3CisJcHNybGQJeG1tMCwyNQorCXB4b3IJeG1tNyx4bW0xCisJcG9yCXhtbTIseG1tMAorCXBzaHVmYgl4bW03LFtlYXhdCisJbW92ZHFhCVtlYngtMzJdLHhtbTIKKwlwYWRkZAl4bW01LHhtbTcKKwlweG9yCXhtbTMseG1tNQorCW1vdmRxYQl4bW0yLFtlYngtNDhdCisJbW92ZHFhCXhtbTAseG1tMworCXBzbGxkCXhtbTMsMTIKKwlwc3JsZAl4bW0wLDIwCisJcG9yCXhtbTMseG1tMAorCW1vdmRxYQl4bW0wLFtlYngtMTI4XQorCXBhZGRkCXhtbTEseG1tMworCXB4b3IJeG1tNyx4bW0xCisJbW92ZHFhCVtlYngtODBdLHhtbTEKKwlwc2h1ZmIJeG1tNyxbMTYrZWF4XQorCXBhZGRkCXhtbTUseG1tNworCW1vdmRxYQl4bW02LHhtbTcKKwlweG9yCXhtbTMseG1tNQorCXBhZGRkCXhtbTAseG1tMgorCW1vdmRxYQl4bW0xLHhtbTMKKwlwc2xsZAl4bW0zLDcKKwlwc3JsZAl4bW0xLDI1CisJcHhvcgl4bW02LHhtbTAKKwlwb3IJeG1tMyx4bW0xCisJcHNodWZiCXhtbTYsW2VheF0KKwltb3ZkcWEJW2VieC0xNl0seG1tMworCXBhZGRkCXhtbTQseG1tNgorCXB4b3IJeG1tMix4bW00CisJbW92ZHFhCXhtbTMsW2VieC0zMl0KKwltb3ZkcWEJeG1tMSx4bW0yCisJcHNsbGQJeG1tMiwxMgorCXBzcmxkCXhtbTEsMjAKKwlwb3IJeG1tMix4bW0xCisJbW92ZHFhCXhtbTEsW2VieC0xMTJdCisJcGFkZGQJeG1tMCx4bW0yCisJbW92ZHFhCXhtbTcsWzY0K2VieF0KKwlweG9yCXhtbTYseG1tMAorCW1vdmRxYQlbZWJ4LTEyOF0seG1tMAorCXBzaHVmYgl4bW02LFsxNitlYXhdCisJcGFkZGQJeG1tNCx4bW02CisJbW92ZHFhCVsxMTIrZWJ4XSx4bW02CisJcHhvcgl4bW0yLHhtbTQKKwlwYWRkZAl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMCx4bW0yCisJcHNsbGQJeG1tMiw3CisJcHNybGQJeG1tMCwyNQorCXB4b3IJeG1tNyx4bW0xCisJcG9yCXhtbTIseG1tMAorCW1vdmRxYQlbMzIrZWJ4XSx4bW00CisJcHNodWZiCXhtbTcsW2VheF0KKwltb3ZkcWEJW2VieC00OF0seG1tMgorCXBhZGRkCXhtbTUseG1tNworCW1vdmRxYQl4bW00LFtlYnhdCisJcHhvcgl4bW0zLHhtbTUKKwltb3ZkcWEJeG1tMixbZWJ4LTE2XQorCW1vdmRxYQl4bW0wLHhtbTMKKwlwc2xsZAl4bW0zLDEyCisJcHNybGQJeG1tMCwyMAorCXBvcgl4bW0zLHhtbTAKKwltb3ZkcWEJeG1tMCxbZWJ4LTk2XQorCXBhZGRkCXhtbTEseG1tMworCW1vdmRxYQl4bW02LFs4MCtlYnhdCisJcHhvcgl4bW03LHhtbTEKKwltb3ZkcWEJW2VieC0xMTJdLHhtbTEKKwlwc2h1ZmIJeG1tNyxbMTYrZWF4XQorCXBhZGRkCXhtbTUseG1tNworCW1vdmRxYQlbNjQrZWJ4XSx4bW03CisJcHhvcgl4bW0zLHhtbTUKKwlwYWRkZAl4bW0wLHhtbTIKKwltb3ZkcWEJeG1tMSx4bW0zCisJcHNsbGQJeG1tMyw3CisJcHNybGQJeG1tMSwyNQorCXB4b3IJeG1tNix4bW0wCisJcG9yCXhtbTMseG1tMQorCW1vdmRxYQlbNDgrZWJ4XSx4bW01CisJcHNodWZiCXhtbTYsW2VheF0KKwltb3ZkcWEJW2VieC0zMl0seG1tMworCXBhZGRkCXhtbTQseG1tNgorCW1vdmRxYQl4bW01LFsxNitlYnhdCisJcHhvcgl4bW0yLHhtbTQKKwltb3ZkcWEJeG1tMyxbZWJ4LTY0XQorCW1vdmRxYQl4bW0xLHhtbTIKKwlwc2xsZAl4bW0yLDEyCisJcHNybGQJeG1tMSwyMAorCXBvcgl4bW0yLHhtbTEKKwltb3ZkcWEJeG1tMSxbZWJ4LTgwXQorCXBhZGRkCXhtbTAseG1tMgorCW1vdmRxYQl4bW03LFs5NitlYnhdCisJcHhvcgl4bW02LHhtbTAKKwltb3ZkcWEJW2VieC05Nl0seG1tMAorCXBzaHVmYgl4bW02LFsxNitlYXhdCisJcGFkZGQJeG1tNCx4bW02CisJbW92ZHFhCVs4MCtlYnhdLHhtbTYKKwlweG9yCXhtbTIseG1tNAorCXBhZGRkCXhtbTEseG1tMworCW1vdmRxYQl4bW0wLHhtbTIKKwlwc2xsZAl4bW0yLDcKKwlwc3JsZAl4bW0wLDI1CisJcHhvcgl4bW03LHhtbTEKKwlwb3IJeG1tMix4bW0wCisJcHNodWZiCXhtbTcsW2VheF0KKwltb3ZkcWEJW2VieC0xNl0seG1tMgorCXBhZGRkCXhtbTUseG1tNworCXB4b3IJeG1tMyx4bW01CisJbW92ZHFhCXhtbTAseG1tMworCXBzbGxkCXhtbTMsMTIKKwlwc3JsZAl4bW0wLDIwCisJcG9yCXhtbTMseG1tMAorCW1vdmRxYQl4bW0wLFtlYngtMTI4XQorCXBhZGRkCXhtbTEseG1tMworCW1vdmRxYQl4bW02LFs2NCtlYnhdCisJcHhvcgl4bW03LHhtbTEKKwltb3ZkcWEJW2VieC04MF0seG1tMQorCXBzaHVmYgl4bW03LFsxNitlYXhdCisJcGFkZGQJeG1tNSx4bW03CisJbW92ZHFhCVs5NitlYnhdLHhtbTcKKwlweG9yCXhtbTMseG1tNQorCW1vdmRxYQl4bW0xLHhtbTMKKwlwc2xsZAl4bW0zLDcKKwlwc3JsZAl4bW0xLDI1CisJcG9yCXhtbTMseG1tMQorCWRlYwllZHgKKwlqbnoJTkVBUiBMJDAxMGxvb3AKKwltb3ZkcWEJW2VieC02NF0seG1tMworCW1vdmRxYQlbZWJ4XSx4bW00CisJbW92ZHFhCVsxNitlYnhdLHhtbTUKKwltb3ZkcWEJWzY0K2VieF0seG1tNgorCW1vdmRxYQlbOTYrZWJ4XSx4bW03CisJbW92ZHFhCXhtbTEsW2VieC0xMTJdCisJbW92ZHFhCXhtbTIsW2VieC05Nl0KKwltb3ZkcWEJeG1tMyxbZWJ4LTgwXQorCXBhZGRkCXhtbTAsW2VicC0xMjhdCisJcGFkZGQJeG1tMSxbZWJwLTExMl0KKwlwYWRkZAl4bW0yLFtlYnAtOTZdCisJcGFkZGQJeG1tMyxbZWJwLTgwXQorCW1vdmRxYQl4bW02LHhtbTAKKwlwdW5wY2tsZHEJeG1tMCx4bW0xCisJbW92ZHFhCXhtbTcseG1tMgorCXB1bnBja2xkcQl4bW0yLHhtbTMKKwlwdW5wY2toZHEJeG1tNix4bW0xCisJcHVucGNraGRxCXhtbTcseG1tMworCW1vdmRxYQl4bW0xLHhtbTAKKwlwdW5wY2tscWRxCXhtbTAseG1tMgorCW1vdmRxYQl4bW0zLHhtbTYKKwlwdW5wY2tscWRxCXhtbTYseG1tNworCXB1bnBja2hxZHEJeG1tMSx4bW0yCisJcHVucGNraHFkcQl4bW0zLHhtbTcKKwltb3ZkcXUJeG1tNCxbZXNpLTEyOF0KKwltb3ZkcXUJeG1tNSxbZXNpLTY0XQorCW1vdmRxdQl4bW0yLFtlc2ldCisJbW92ZHF1CXhtbTcsWzY0K2VzaV0KKwlsZWEJZXNpLFsxNitlc2ldCisJcHhvcgl4bW00LHhtbTAKKwltb3ZkcWEJeG1tMCxbZWJ4LTY0XQorCXB4b3IJeG1tNSx4bW0xCisJbW92ZHFhCXhtbTEsW2VieC00OF0KKwlweG9yCXhtbTYseG1tMgorCW1vdmRxYQl4bW0yLFtlYngtMzJdCisJcHhvcgl4bW03LHhtbTMKKwltb3ZkcWEJeG1tMyxbZWJ4LTE2XQorCW1vdmRxdQlbZWRpLTEyOF0seG1tNAorCW1vdmRxdQlbZWRpLTY0XSx4bW01CisJbW92ZHF1CVtlZGldLHhtbTYKKwltb3ZkcXUJWzY0K2VkaV0seG1tNworCWxlYQllZGksWzE2K2VkaV0KKwlwYWRkZAl4bW0wLFtlYnAtNjRdCisJcGFkZGQJeG1tMSxbZWJwLTQ4XQorCXBhZGRkCXhtbTIsW2VicC0zMl0KKwlwYWRkZAl4bW0zLFtlYnAtMTZdCisJbW92ZHFhCXhtbTYseG1tMAorCXB1bnBja2xkcQl4bW0wLHhtbTEKKwltb3ZkcWEJeG1tNyx4bW0yCisJcHVucGNrbGRxCXhtbTIseG1tMworCXB1bnBja2hkcQl4bW02LHhtbTEKKwlwdW5wY2toZHEJeG1tNyx4bW0zCisJbW92ZHFhCXhtbTEseG1tMAorCXB1bnBja2xxZHEJeG1tMCx4bW0yCisJbW92ZHFhCXhtbTMseG1tNgorCXB1bnBja2xxZHEJeG1tNix4bW03CisJcHVucGNraHFkcQl4bW0xLHhtbTIKKwlwdW5wY2tocWRxCXhtbTMseG1tNworCW1vdmRxdQl4bW00LFtlc2ktMTI4XQorCW1vdmRxdQl4bW01LFtlc2ktNjRdCisJbW92ZHF1CXhtbTIsW2VzaV0KKwltb3ZkcXUJeG1tNyxbNjQrZXNpXQorCWxlYQllc2ksWzE2K2VzaV0KKwlweG9yCXhtbTQseG1tMAorCW1vdmRxYQl4bW0wLFtlYnhdCisJcHhvcgl4bW01LHhtbTEKKwltb3ZkcWEJeG1tMSxbMTYrZWJ4XQorCXB4b3IJeG1tNix4bW0yCisJbW92ZHFhCXhtbTIsWzMyK2VieF0KKwlweG9yCXhtbTcseG1tMworCW1vdmRxYQl4bW0zLFs0OCtlYnhdCisJbW92ZHF1CVtlZGktMTI4XSx4bW00CisJbW92ZHF1CVtlZGktNjRdLHhtbTUKKwltb3ZkcXUJW2VkaV0seG1tNgorCW1vdmRxdQlbNjQrZWRpXSx4bW03CisJbGVhCWVkaSxbMTYrZWRpXQorCXBhZGRkCXhtbTAsW2VicF0KKwlwYWRkZAl4bW0xLFsxNitlYnBdCisJcGFkZGQJeG1tMixbMzIrZWJwXQorCXBhZGRkCXhtbTMsWzQ4K2VicF0KKwltb3ZkcWEJeG1tNix4bW0wCisJcHVucGNrbGRxCXhtbTAseG1tMQorCW1vdmRxYQl4bW03LHhtbTIKKwlwdW5wY2tsZHEJeG1tMix4bW0zCisJcHVucGNraGRxCXhtbTYseG1tMQorCXB1bnBja2hkcQl4bW03LHhtbTMKKwltb3ZkcWEJeG1tMSx4bW0wCisJcHVucGNrbHFkcQl4bW0wLHhtbTIKKwltb3ZkcWEJeG1tMyx4bW02CisJcHVucGNrbHFkcQl4bW02LHhtbTcKKwlwdW5wY2tocWRxCXhtbTEseG1tMgorCXB1bnBja2hxZHEJeG1tMyx4bW03CisJbW92ZHF1CXhtbTQsW2VzaS0xMjhdCisJbW92ZHF1CXhtbTUsW2VzaS02NF0KKwltb3ZkcXUJeG1tMixbZXNpXQorCW1vdmRxdQl4bW03LFs2NCtlc2ldCisJbGVhCWVzaSxbMTYrZXNpXQorCXB4b3IJeG1tNCx4bW0wCisJbW92ZHFhCXhtbTAsWzY0K2VieF0KKwlweG9yCXhtbTUseG1tMQorCW1vdmRxYQl4bW0xLFs4MCtlYnhdCisJcHhvcgl4bW02LHhtbTIKKwltb3ZkcWEJeG1tMixbOTYrZWJ4XQorCXB4b3IJeG1tNyx4bW0zCisJbW92ZHFhCXhtbTMsWzExMitlYnhdCisJbW92ZHF1CVtlZGktMTI4XSx4bW00CisJbW92ZHF1CVtlZGktNjRdLHhtbTUKKwltb3ZkcXUJW2VkaV0seG1tNgorCW1vdmRxdQlbNjQrZWRpXSx4bW03CisJbGVhCWVkaSxbMTYrZWRpXQorCXBhZGRkCXhtbTAsWzY0K2VicF0KKwlwYWRkZAl4bW0xLFs4MCtlYnBdCisJcGFkZGQJeG1tMixbOTYrZWJwXQorCXBhZGRkCXhtbTMsWzExMitlYnBdCisJbW92ZHFhCXhtbTYseG1tMAorCXB1bnBja2xkcQl4bW0wLHhtbTEKKwltb3ZkcWEJeG1tNyx4bW0yCisJcHVucGNrbGRxCXhtbTIseG1tMworCXB1bnBja2hkcQl4bW02LHhtbTEKKwlwdW5wY2toZHEJeG1tNyx4bW0zCisJbW92ZHFhCXhtbTEseG1tMAorCXB1bnBja2xxZHEJeG1tMCx4bW0yCisJbW92ZHFhCXhtbTMseG1tNgorCXB1bnBja2xxZHEJeG1tNix4bW03CisJcHVucGNraHFkcQl4bW0xLHhtbTIKKwlwdW5wY2tocWRxCXhtbTMseG1tNworCW1vdmRxdQl4bW00LFtlc2ktMTI4XQorCW1vdmRxdQl4bW01LFtlc2ktNjRdCisJbW92ZHF1CXhtbTIsW2VzaV0KKwltb3ZkcXUJeG1tNyxbNjQrZXNpXQorCWxlYQllc2ksWzIwOCtlc2ldCisJcHhvcgl4bW00LHhtbTAKKwlweG9yCXhtbTUseG1tMQorCXB4b3IJeG1tNix4bW0yCisJcHhvcgl4bW03LHhtbTMKKwltb3ZkcXUJW2VkaS0xMjhdLHhtbTQKKwltb3ZkcXUJW2VkaS02NF0seG1tNQorCW1vdmRxdQlbZWRpXSx4bW02CisJbW92ZHF1CVs2NCtlZGldLHhtbTcKKwlsZWEJZWRpLFsyMDgrZWRpXQorCXN1YgllY3gsMjU2CisJam5jCU5FQVIgTCQwMDlvdXRlcl9sb29wCisJYWRkCWVjeCwyNTYKKwlqeglORUFSIEwkMDExZG9uZQorCW1vdgllYngsRFdPUkQgWzUyMCtlc3BdCisJbGVhCWVzaSxbZXNpLTEyOF0KKwltb3YJZWR4LERXT1JEIFs1MTYrZXNwXQorCWxlYQllZGksW2VkaS0xMjhdCisJbW92ZAl4bW0yLERXT1JEIFs2NCtlYnBdCisJbW92ZHF1CXhtbTMsW2VieF0KKwlwYWRkZAl4bW0yLFs5NitlYXhdCisJcGFuZAl4bW0zLFsxMTIrZWF4XQorCXBvcgl4bW0zLHhtbTIKK0wkMDA4MXg6CisJbW92ZHFhCXhtbTAsWzMyK2VheF0KKwltb3ZkcXUJeG1tMSxbZWR4XQorCW1vdmRxdQl4bW0yLFsxNitlZHhdCisJbW92ZHFhCXhtbTYsW2VheF0KKwltb3ZkcWEJeG1tNyxbMTYrZWF4XQorCW1vdglEV09SRCBbNDgrZXNwXSxlYnAKKwltb3ZkcWEJW2VzcF0seG1tMAorCW1vdmRxYQlbMTYrZXNwXSx4bW0xCisJbW92ZHFhCVszMitlc3BdLHhtbTIKKwltb3ZkcWEJWzQ4K2VzcF0seG1tMworCW1vdgllZHgsMTAKKwlqbXAJTkVBUiBMJDAxMmxvb3AxeAorYWxpZ24JMTYKK0wkMDEzb3V0ZXIxeDoKKwltb3ZkcWEJeG1tMyxbODArZWF4XQorCW1vdmRxYQl4bW0wLFtlc3BdCisJbW92ZHFhCXhtbTEsWzE2K2VzcF0KKwltb3ZkcWEJeG1tMixbMzIrZXNwXQorCXBhZGRkCXhtbTMsWzQ4K2VzcF0KKwltb3YJZWR4LDEwCisJbW92ZHFhCVs0OCtlc3BdLHhtbTMKKwlqbXAJTkVBUiBMJDAxMmxvb3AxeAorYWxpZ24JMTYKK0wkMDEybG9vcDF4OgorCXBhZGRkCXhtbTAseG1tMQorCXB4b3IJeG1tMyx4bW0wCitkYgkxMDIsMTUsNTYsMCwyMjIKKwlwYWRkZAl4bW0yLHhtbTMKKwlweG9yCXhtbTEseG1tMgorCW1vdmRxYQl4bW00LHhtbTEKKwlwc3JsZAl4bW0xLDIwCisJcHNsbGQJeG1tNCwxMgorCXBvcgl4bW0xLHhtbTQKKwlwYWRkZAl4bW0wLHhtbTEKKwlweG9yCXhtbTMseG1tMAorZGIJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJeG1tMix4bW0zCisJcHhvcgl4bW0xLHhtbTIKKwltb3ZkcWEJeG1tNCx4bW0xCisJcHNybGQJeG1tMSwyNQorCXBzbGxkCXhtbTQsNworCXBvcgl4bW0xLHhtbTQKKwlwc2h1ZmQJeG1tMix4bW0yLDc4CisJcHNodWZkCXhtbTEseG1tMSw1NworCXBzaHVmZAl4bW0zLHhtbTMsMTQ3CisJbm9wCisJcGFkZGQJeG1tMCx4bW0xCisJcHhvcgl4bW0zLHhtbTAKK2RiCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCXhtbTIseG1tMworCXB4b3IJeG1tMSx4bW0yCisJbW92ZHFhCXhtbTQseG1tMQorCXBzcmxkCXhtbTEsMjAKKwlwc2xsZAl4bW00LDEyCisJcG9yCXhtbTEseG1tNAorCXBhZGRkCXhtbTAseG1tMQorCXB4b3IJeG1tMyx4bW0wCitkYgkxMDIsMTUsNTYsMCwyMjMKKwlwYWRkZAl4bW0yLHhtbTMKKwlweG9yCXhtbTEseG1tMgorCW1vdmRxYQl4bW00LHhtbTEKKwlwc3JsZAl4bW0xLDI1CisJcHNsbGQJeG1tNCw3CisJcG9yCXhtbTEseG1tNAorCXBzaHVmZAl4bW0yLHhtbTIsNzgKKwlwc2h1ZmQJeG1tMSx4bW0xLDE0NworCXBzaHVmZAl4bW0zLHhtbTMsNTcKKwlkZWMJZWR4CisJam56CU5FQVIgTCQwMTJsb29wMXgKKwlwYWRkZAl4bW0wLFtlc3BdCisJcGFkZGQJeG1tMSxbMTYrZXNwXQorCXBhZGRkCXhtbTIsWzMyK2VzcF0KKwlwYWRkZAl4bW0zLFs0OCtlc3BdCisJY21wCWVjeCw2NAorCWpiCU5FQVIgTCQwMTR0YWlsCisJbW92ZHF1CXhtbTQsW2VzaV0KKwltb3ZkcXUJeG1tNSxbMTYrZXNpXQorCXB4b3IJeG1tMCx4bW00CisJbW92ZHF1CXhtbTQsWzMyK2VzaV0KKwlweG9yCXhtbTEseG1tNQorCW1vdmRxdQl4bW01LFs0OCtlc2ldCisJcHhvcgl4bW0yLHhtbTQKKwlweG9yCXhtbTMseG1tNQorCWxlYQllc2ksWzY0K2VzaV0KKwltb3ZkcXUJW2VkaV0seG1tMAorCW1vdmRxdQlbMTYrZWRpXSx4bW0xCisJbW92ZHF1CVszMitlZGldLHhtbTIKKwltb3ZkcXUJWzQ4K2VkaV0seG1tMworCWxlYQllZGksWzY0K2VkaV0KKwlzdWIJZWN4LDY0CisJam56CU5FQVIgTCQwMTNvdXRlcjF4CisJam1wCU5FQVIgTCQwMTFkb25lCitMJDAxNHRhaWw6CisJbW92ZHFhCVtlc3BdLHhtbTAKKwltb3ZkcWEJWzE2K2VzcF0seG1tMQorCW1vdmRxYQlbMzIrZXNwXSx4bW0yCisJbW92ZHFhCVs0OCtlc3BdLHhtbTMKKwl4b3IJZWF4LGVheAorCXhvcgllZHgsZWR4CisJeG9yCWVicCxlYnAKK0wkMDE1dGFpbF9sb29wOgorCW1vdglhbCxCWVRFIFtlYnAqMStlc3BdCisJbW92CWRsLEJZVEUgW2VicCoxK2VzaV0KKwlsZWEJZWJwLFsxK2VicF0KKwl4b3IJYWwsZGwKKwltb3YJQllURSBbZWJwKjErZWRpLTFdLGFsCisJZGVjCWVjeAorCWpueglORUFSIEwkMDE1dGFpbF9sb29wCitMJDAxMWRvbmU6CisJbW92CWVzcCxEV09SRCBbNTEyK2VzcF0KKwlwb3AJZWRpCisJcG9wCWVzaQorCXBvcAllYngKKwlwb3AJZWJwCisJcmV0CithbGlnbgk2NAorTCRzc3NlM19kYXRhOgorZGIJMiwzLDAsMSw2LDcsNCw1LDEwLDExLDgsOSwxNCwxNSwxMiwxMworZGIJMywwLDEsMiw3LDQsNSw2LDExLDgsOSwxMCwxNSwxMiwxMywxNAorZGQJMTYzNDc2MDgwNSw4NTc3NjA4NzgsMjAzNjQ3NzIzNCwxNzk3Mjg1MjM2CitkZAkwLDEsMiwzCitkZAk0LDQsNCw0CitkZAkxLDAsMCwwCitkZAk0LDAsMCwwCitkZAkwLC0xLC0xLC0xCithbGlnbgk2NAorZGIJNjcsMTA0LDk3LDY3LDEwNCw5Nyw1MCw0OCwzMiwxMDIsMTExLDExNCwzMiwxMjAsNTYsNTQKK2RiCTQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMSwzMgorZGIJNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NiwxMTEKK2RiCTExNCwxMDMsNjIsMAorc2VnbWVudAkuYnNzCitjb21tb24JX09QRU5TU0xfaWEzMmNhcF9QIDE2CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vY3B1LXg4Ni1hc20uYXNtIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL2NwdS14ODYtYXNtLmFzbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDMxN2E3My4uMDAwMDAwMAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vY3B1LXg4Ni1hc20uYXNtCisrKyAvZGV2L251bGwKQEAgLTEsMzAzICswLDAgQEAKLSVpZmlkbiBfX09VVFBVVF9GT1JNQVRfXyxvYmoKLXNlY3Rpb24JY29kZQl1c2UzMiBjbGFzcz1jb2RlIGFsaWduPTY0Ci0lZWxpZmlkbiBfX09VVFBVVF9GT1JNQVRfXyx3aW4zMgotJWlmZGVmIF9fWUFTTV9WRVJTSU9OX0lEX18KLSVpZiBfX1lBU01fVkVSU0lPTl9JRF9fIDwgMDEwMTAwMDBoCi0lZXJyb3IgeWFzbSB2ZXJzaW9uIDEuMS4wIG9yIGxhdGVyIG5lZWRlZC4KLSVlbmRpZgotOyBZYXNtIGF1dG9tYXRpY2FsbHkgaW5jbHVkZXMgLjAwIGFuZCBjb21wbGFpbnMgYWJvdXQgcmVkZWZpbmluZyBpdC4KLTsgaHR0cHM6Ly93d3cudG9ydGFsbC5uZXQvcHJvamVjdHMveWFzbS9tYW51YWwvaHRtbC9vYmpmbXQtd2luMzItc2FmZXNlaC5odG1sCi0lZWxzZQotJEBmZWF0LjAwIGVxdSAxCi0lZW5kaWYKLXNlY3Rpb24JLnRleHQJY29kZSBhbGlnbj02NAotJWVsc2UKLXNlY3Rpb24JLnRleHQJY29kZQotJWVuZGlmCi1nbG9iYWwJX09QRU5TU0xfaWEzMl9jcHVpZAotYWxpZ24JMTYKLV9PUEVOU1NMX2lhMzJfY3B1aWQ6Ci1MJF9PUEVOU1NMX2lhMzJfY3B1aWRfYmVnaW46Ci0JcHVzaAllYnAKLQlwdXNoCWVieAotCXB1c2gJZXNpCi0JcHVzaAllZGkKLQl4b3IJZWR4LGVkeAotCXB1c2hmZAotCXBvcAllYXgKLQltb3YJZWN4LGVheAotCXhvcgllYXgsMjA5NzE1MgotCXB1c2gJZWF4Ci0JcG9wZmQKLQlwdXNoZmQKLQlwb3AJZWF4Ci0JeG9yCWVjeCxlYXgKLQl4b3IJZWF4LGVheAotCWJ0CWVjeCwyMQotCWpuYwlORUFSIEwkMDAwbm9jcHVpZAotCW1vdgllc2ksRFdPUkQgWzIwK2VzcF0KLQltb3YJRFdPUkQgWzgrZXNpXSxlYXgKLQljcHVpZAotCW1vdgllZGksZWF4Ci0JeG9yCWVheCxlYXgKLQljbXAJZWJ4LDE5NzAxNjkxNTkKLQlzZXRuZQlhbAotCW1vdgllYnAsZWF4Ci0JY21wCWVkeCwxMjMxMzg0MTY5Ci0Jc2V0bmUJYWwKLQlvcgllYnAsZWF4Ci0JY21wCWVjeCwxODE4NTg4MjcwCi0Jc2V0bmUJYWwKLQlvcgllYnAsZWF4Ci0JanoJTkVBUiBMJDAwMWludGVsCi0JY21wCWVieCwxNzUyNDYyNjU3Ci0Jc2V0bmUJYWwKLQltb3YJZXNpLGVheAotCWNtcAllZHgsMTc2OTIzODExNwotCXNldG5lCWFsCi0Jb3IJZXNpLGVheAotCWNtcAllY3gsMTE0NTkxMzY5OQotCXNldG5lCWFsCi0Jb3IJZXNpLGVheAotCWpueglORUFSIEwkMDAxaW50ZWwKLQltb3YJZWF4LDIxNDc0ODM2NDgKLQljcHVpZAotCWNtcAllYXgsMjE0NzQ4MzY0OQotCWpiCU5FQVIgTCQwMDFpbnRlbAotCW1vdgllc2ksZWF4Ci0JbW92CWVheCwyMTQ3NDgzNjQ5Ci0JY3B1aWQKLQlvcgllYnAsZWN4Ci0JYW5kCWVicCwyMDQ5Ci0JY21wCWVzaSwyMTQ3NDgzNjU2Ci0JamIJTkVBUiBMJDAwMWludGVsCi0JbW92CWVheCwyMTQ3NDgzNjU2Ci0JY3B1aWQKLQltb3Z6eAllc2ksY2wKLQlpbmMJZXNpCi0JbW92CWVheCwxCi0JeG9yCWVjeCxlY3gKLQljcHVpZAotCWJ0CWVkeCwyOAotCWpuYwlORUFSIEwkMDAyZ2VuZXJpYwotCXNocgllYngsMTYKLQlhbmQJZWJ4LDI1NQotCWNtcAllYngsZXNpCi0JamEJTkVBUiBMJDAwMmdlbmVyaWMKLQlhbmQJZWR4LDQwMjY1MzE4MzkKLQlqbXAJTkVBUiBMJDAwMmdlbmVyaWMKLUwkMDAxaW50ZWw6Ci0JY21wCWVkaSw3Ci0JamIJTkVBUiBMJDAwM2NhY2hlaW5mbwotCW1vdgllc2ksRFdPUkQgWzIwK2VzcF0KLQltb3YJZWF4LDcKLQl4b3IJZWN4LGVjeAotCWNwdWlkCi0JbW92CURXT1JEIFs4K2VzaV0sZWJ4Ci1MJDAwM2NhY2hlaW5mbzoKLQljbXAJZWRpLDQKLQltb3YJZWRpLC0xCi0JamIJTkVBUiBMJDAwNG5vY2FjaGVpbmZvCi0JbW92CWVheCw0Ci0JbW92CWVjeCwwCi0JY3B1aWQKLQltb3YJZWRpLGVheAotCXNocgllZGksMTQKLQlhbmQJZWRpLDQwOTUKLUwkMDA0bm9jYWNoZWluZm86Ci0JbW92CWVheCwxCi0JeG9yCWVjeCxlY3gKLQljcHVpZAotCWFuZAllZHgsMzIyMDE3Njg5NQotCWNtcAllYnAsMAotCWpuZQlORUFSIEwkMDA1bm90aW50ZWwKLQlvcgllZHgsMTA3Mzc0MTgyNAotTCQwMDVub3RpbnRlbDoKLQlidAllZHgsMjgKLQlqbmMJTkVBUiBMJDAwMmdlbmVyaWMKLQlhbmQJZWR4LDQwMjY1MzE4MzkKLQljbXAJZWRpLDAKLQlqZQlORUFSIEwkMDAyZ2VuZXJpYwotCW9yCWVkeCwyNjg0MzU0NTYKLQlzaHIJZWJ4LDE2Ci0JY21wCWJsLDEKLQlqYQlORUFSIEwkMDAyZ2VuZXJpYwotCWFuZAllZHgsNDAyNjUzMTgzOQotTCQwMDJnZW5lcmljOgotCWFuZAllYnAsMjA0OAotCWFuZAllY3gsNDI5NDk2NTI0NwotCW1vdgllc2ksZWR4Ci0Jb3IJZWJwLGVjeAotCWJ0CWVjeCwyNwotCWpuYwlORUFSIEwkMDA2Y2xlYXJfYXZ4Ci0JeG9yCWVjeCxlY3gKLWRiCTE1LDEsMjA4Ci0JYW5kCWVheCw2Ci0JY21wCWVheCw2Ci0JamUJTkVBUiBMJDAwN2RvbmUKLQljbXAJZWF4LDIKLQlqZQlORUFSIEwkMDA2Y2xlYXJfYXZ4Ci1MJDAwOGNsZWFyX3htbToKLQlhbmQJZWJwLDQyNjE0MTI4NjEKLQlhbmQJZXNpLDQyNzgxOTAwNzkKLUwkMDA2Y2xlYXJfYXZ4OgotCWFuZAllYnAsNDAyNjUyNTY5NQotCW1vdgllZGksRFdPUkQgWzIwK2VzcF0KLQlhbmQJRFdPUkQgWzgrZWRpXSw0Mjk0OTY3MjYzCi1MJDAwN2RvbmU6Ci0JbW92CWVheCxlc2kKLQltb3YJZWR4LGVicAotTCQwMDBub2NwdWlkOgotCXBvcAllZGkKLQlwb3AJZXNpCi0JcG9wCWVieAotCXBvcAllYnAKLQlyZXQKLTtleHRlcm4JX09QRU5TU0xfaWEzMmNhcF9QCi1nbG9iYWwJX09QRU5TU0xfcmR0c2MKLWFsaWduCTE2Ci1fT1BFTlNTTF9yZHRzYzoKLUwkX09QRU5TU0xfcmR0c2NfYmVnaW46Ci0JeG9yCWVheCxlYXgKLQl4b3IJZWR4LGVkeAotCWxlYQllY3gsW19PUEVOU1NMX2lhMzJjYXBfUF0KLQlidAlEV09SRCBbZWN4XSw0Ci0Jam5jCU5FQVIgTCQwMDlub3RzYwotCXJkdHNjCi1MJDAwOW5vdHNjOgotCXJldAotZ2xvYmFsCV9PUEVOU1NMX2luc3RydW1lbnRfaGFsdAotYWxpZ24JMTYKLV9PUEVOU1NMX2luc3RydW1lbnRfaGFsdDoKLUwkX09QRU5TU0xfaW5zdHJ1bWVudF9oYWx0X2JlZ2luOgotCWxlYQllY3gsW19PUEVOU1NMX2lhMzJjYXBfUF0KLQlidAlEV09SRCBbZWN4XSw0Ci0Jam5jCU5FQVIgTCQwMTBub2hhbHQKLWRkCTI0MjE3MjMxNTAKLQlhbmQJZWF4LDMKLQlqbnoJTkVBUiBMJDAxMG5vaGFsdAotCXB1c2hmZAotCXBvcAllYXgKLQlidAllYXgsOQotCWpuYwlORUFSIEwkMDEwbm9oYWx0Ci0JcmR0c2MKLQlwdXNoCWVkeAotCXB1c2gJZWF4Ci0JaGx0Ci0JcmR0c2MKLQlzdWIJZWF4LERXT1JEIFtlc3BdCi0Jc2JiCWVkeCxEV09SRCBbNCtlc3BdCi0JYWRkCWVzcCw4Ci0JcmV0Ci1MJDAxMG5vaGFsdDoKLQl4b3IJZWF4LGVheAotCXhvcgllZHgsZWR4Ci0JcmV0Ci1nbG9iYWwJX09QRU5TU0xfZmFyX3NwaW4KLWFsaWduCTE2Ci1fT1BFTlNTTF9mYXJfc3BpbjoKLUwkX09QRU5TU0xfZmFyX3NwaW5fYmVnaW46Ci0JcHVzaGZkCi0JcG9wCWVheAotCWJ0CWVheCw5Ci0Jam5jCU5FQVIgTCQwMTFub3NwaW4KLQltb3YJZWF4LERXT1JEIFs0K2VzcF0KLQltb3YJZWN4LERXT1JEIFs4K2VzcF0KLWRkCTI0MzAxMTEyNjIKLQl4b3IJZWF4LGVheAotCW1vdgllZHgsRFdPUkQgW2VjeF0KLQlqbXAJTkVBUiBMJDAxMnNwaW4KLWFsaWduCTE2Ci1MJDAxMnNwaW46Ci0JaW5jCWVheAotCWNtcAllZHgsRFdPUkQgW2VjeF0KLQlqZQlORUFSIEwkMDEyc3BpbgotZGQJNTI5NTY3ODg4Ci0JcmV0Ci1MJDAxMW5vc3BpbjoKLQl4b3IJZWF4LGVheAotCXhvcgllZHgsZWR4Ci0JcmV0Ci1nbG9iYWwJX09QRU5TU0xfd2lwZV9jcHUKLWFsaWduCTE2Ci1fT1BFTlNTTF93aXBlX2NwdToKLUwkX09QRU5TU0xfd2lwZV9jcHVfYmVnaW46Ci0JeG9yCWVheCxlYXgKLQl4b3IJZWR4LGVkeAotCWxlYQllY3gsW19PUEVOU1NMX2lhMzJjYXBfUF0KLQltb3YJZWN4LERXT1JEIFtlY3hdCi0JYnQJRFdPUkQgW2VjeF0sMQotCWpuYwlORUFSIEwkMDEzbm9feDg3Ci0JYW5kCWVjeCw4Mzg4NjA4MAotCWNtcAllY3gsODM4ODYwODAKLQlqbmUJTkVBUiBMJDAxNG5vX3NzZTIKLQlweG9yCXhtbTAseG1tMAotCXB4b3IJeG1tMSx4bW0xCi0JcHhvcgl4bW0yLHhtbTIKLQlweG9yCXhtbTMseG1tMwotCXB4b3IJeG1tNCx4bW00Ci0JcHhvcgl4bW01LHhtbTUKLQlweG9yCXhtbTYseG1tNgotCXB4b3IJeG1tNyx4bW03Ci1MJDAxNG5vX3NzZTI6Ci1kZAk0MDA3MjU5ODY1LDQwMDcyNTk4NjUsNDAwNzI1OTg2NSw0MDA3MjU5ODY1LDI0MzA4NTE5OTUKLUwkMDEzbm9feDg3OgotCWxlYQllYXgsWzQrZXNwXQotCXJldAotZ2xvYmFsCV9PUEVOU1NMX2F0b21pY19hZGQKLWFsaWduCTE2Ci1fT1BFTlNTTF9hdG9taWNfYWRkOgotTCRfT1BFTlNTTF9hdG9taWNfYWRkX2JlZ2luOgotCW1vdgllZHgsRFdPUkQgWzQrZXNwXQotCW1vdgllY3gsRFdPUkQgWzgrZXNwXQotCXB1c2gJZWJ4Ci0Jbm9wCi0JbW92CWVheCxEV09SRCBbZWR4XQotTCQwMTVzcGluOgotCWxlYQllYngsW2VjeCoxK2VheF0KLQlub3AKLWRkCTQ0NzgxMTU2OAotCWpuZQlORUFSIEwkMDE1c3BpbgotCW1vdgllYXgsZWJ4Ci0JcG9wCWVieAotCXJldAotZ2xvYmFsCV9PUEVOU1NMX2luZGlyZWN0X2NhbGwKLWFsaWduCTE2Ci1fT1BFTlNTTF9pbmRpcmVjdF9jYWxsOgotTCRfT1BFTlNTTF9pbmRpcmVjdF9jYWxsX2JlZ2luOgotCXB1c2gJZWJwCi0JbW92CWVicCxlc3AKLQlzdWIJZXNwLDI4Ci0JbW92CWVjeCxEV09SRCBbMTIrZWJwXQotCW1vdglEV09SRCBbZXNwXSxlY3gKLQltb3YJZWR4LERXT1JEIFsxNitlYnBdCi0JbW92CURXT1JEIFs0K2VzcF0sZWR4Ci0JbW92CWVheCxEV09SRCBbMjArZWJwXQotCW1vdglEV09SRCBbOCtlc3BdLGVheAotCW1vdgllYXgsRFdPUkQgWzI0K2VicF0KLQltb3YJRFdPUkQgWzEyK2VzcF0sZWF4Ci0JbW92CWVheCxEV09SRCBbMjgrZWJwXQotCW1vdglEV09SRCBbMTYrZXNwXSxlYXgKLQltb3YJZWF4LERXT1JEIFszMitlYnBdCi0JbW92CURXT1JEIFsyMCtlc3BdLGVheAotCW1vdgllYXgsRFdPUkQgWzM2K2VicF0KLQltb3YJRFdPUkQgWzI0K2VzcF0sZWF4Ci0JY2FsbAlEV09SRCBbOCtlYnBdCi0JbW92CWVzcCxlYnAKLQlwb3AJZWJwCi0JcmV0Ci1nbG9iYWwJX09QRU5TU0xfaWEzMl9yZHJhbmQKLWFsaWduCTE2Ci1fT1BFTlNTTF9pYTMyX3JkcmFuZDoKLUwkX09QRU5TU0xfaWEzMl9yZHJhbmRfYmVnaW46Ci0JbW92CWVjeCw4Ci1MJDAxNmxvb3A6Ci1kYgkxNSwxOTksMjQwCi0JamMJTkVBUiBMJDAxN2JyZWFrCi0JbG9vcAlMJDAxNmxvb3AKLUwkMDE3YnJlYWs6Ci0JY21wCWVheCwwCi0JY21vdmUJZWF4LGVjeAotCXJldAotc2VnbWVudAkuYnNzCi1jb21tb24JX09QRU5TU0xfaWEzMmNhcF9QIDE2CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuYXNtIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL3JjNC9yYzQtNTg2LmFzbQppbmRleCAwOGNkOWY2Li4wYmFiMmJlIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vcmM0L3JjNC01ODYuYXNtCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9yYzQvcmM0LTU4Ni5hc20KQEAgLTM0OSwzNCArMzQ5LDUgQEAKIAlwb3AJZWJ4CiAJcG9wCWVicAogCXJldAotZ2xvYmFsCV9SQzRfb3B0aW9ucwotYWxpZ24JMTYKLV9SQzRfb3B0aW9uczoKLUwkX1JDNF9vcHRpb25zX2JlZ2luOgotCWNhbGwJTCQwMTZwaWNfcG9pbnQKLUwkMDE2cGljX3BvaW50OgotCXBvcAllYXgKLQlsZWEJZWF4LFsoTCQwMTdvcHRzLUwkMDE2cGljX3BvaW50KStlYXhdCi0JbGVhCWVkeCxbX09QRU5TU0xfaWEzMmNhcF9QXQotCW1vdgllZHgsRFdPUkQgW2VkeF0KLQlidAllZHgsMjAKLQlqYwlORUFSIEwkMDE4MXhjaGFyCi0JYnQJZWR4LDI2Ci0Jam5jCU5FQVIgTCQwMTlyZXQKLQlhZGQJZWF4LDI1Ci0JcmV0Ci1MJDAxODF4Y2hhcjoKLQlhZGQJZWF4LDEyCi1MJDAxOXJldDoKLQlyZXQKLWFsaWduCTY0Ci1MJDAxN29wdHM6Ci1kYgkxMTQsOTksNTIsNDAsNTIsMTIwLDQ0LDEwNSwxMTAsMTE2LDQxLDAKLWRiCTExNCw5OSw1Miw0MCw0OSwxMjAsNDQsOTksMTA0LDk3LDExNCw0MSwwCi1kYgkxMTQsOTksNTIsNDAsNTYsMTIwLDQ0LDEwOSwxMDksMTIwLDQxLDAKLWRiCTgyLDY3LDUyLDMyLDEwMiwxMTEsMTE0LDMyLDEyMCw1Niw1NCw0NCwzMiw2Nyw4Miw4OQotZGIJODAsODQsNzksNzEsNjUsNzcsODMsMzIsOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0Ci1kYgkxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKLWFsaWduCTY0CiBzZWdtZW50CS5ic3MKIGNvbW1vbglfT1BFTlNTTF9pYTMyY2FwX1AgMTYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9zaGEvc2hhMS01ODYuYXNtIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL3NoYS9zaGExLTU4Ni5hc20KaW5kZXggZTI0NDQ5ZC4uY2VlOGM2MjYyIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vc2hhL3NoYTEtNTg2LmFzbQorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vc2hhL3NoYTEtNTg2LmFzbQpAQCAtMzUsOCArMzUsMTEgQEAKIAltb3YJZWN4LERXT1JEIFs4K2VzaV0KIAl0ZXN0CWVheCwxNjc3NzIxNgogCWp6CU5FQVIgTCQwMDF4ODYKLQl0ZXN0CWVjeCw1MzY4NzA5MTIKLQlqbnoJTkVBUiBMJHNoYWV4dF9zaG9ydGN1dAorCWFuZAllZHgsMjY4NDM1NDU2CisJYW5kCWVheCwxMDczNzQxODI0CisJb3IJZWF4LGVkeAorCWNtcAllYXgsMTM0MjE3NzI4MAorCWplCU5FQVIgTCRhdnhfc2hvcnRjdXQKIAlqbXAJTkVBUiBMJHNzc2UzX3Nob3J0Y3V0CiBhbGlnbgkxNgogTCQwMDF4ODY6CkBAIC0xNDA1LDcgKzE0MDgsNyBAQAogCXBvcAllYnAKIAlyZXQKIGFsaWduCTE2Ci1fX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zaGFleHQ6CitfX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMzoKIAlwdXNoCWVicAogCXB1c2gJZWJ4CiAJcHVzaAllc2kKQEAgLTE0MTQsMTc0ICsxNDE3LDYgQEAKIEwkMDAzcGljX3BvaW50OgogCXBvcAllYnAKIAlsZWEJZWJwLFsoTCRLX1hYX1hYLUwkMDAzcGljX3BvaW50KStlYnBdCi1MJHNoYWV4dF9zaG9ydGN1dDoKLQltb3YJZWRpLERXT1JEIFsyMCtlc3BdCi0JbW92CWVieCxlc3AKLQltb3YJZXNpLERXT1JEIFsyNCtlc3BdCi0JbW92CWVjeCxEV09SRCBbMjgrZXNwXQotCXN1Ygllc3AsMzIKLQltb3ZkcXUJeG1tMCxbZWRpXQotCW1vdmQJeG1tMSxEV09SRCBbMTYrZWRpXQotCWFuZAllc3AsLTMyCi0JbW92ZHFhCXhtbTMsWzgwK2VicF0KLQltb3ZkcXUJeG1tNCxbZXNpXQotCXBzaHVmZAl4bW0wLHhtbTAsMjcKLQltb3ZkcXUJeG1tNSxbMTYrZXNpXQotCXBzaHVmZAl4bW0xLHhtbTEsMjcKLQltb3ZkcXUJeG1tNixbMzIrZXNpXQotZGIJMTAyLDE1LDU2LDAsMjI3Ci0JbW92ZHF1CXhtbTcsWzQ4K2VzaV0KLWRiCTEwMiwxNSw1NiwwLDIzNQotZGIJMTAyLDE1LDU2LDAsMjQzCi1kYgkxMDIsMTUsNTYsMCwyNTEKLQlqbXAJTkVBUiBMJDAwNGxvb3Bfc2hhZXh0Ci1hbGlnbgkxNgotTCQwMDRsb29wX3NoYWV4dDoKLQlkZWMJZWN4Ci0JbGVhCWVheCxbNjQrZXNpXQotCW1vdmRxYQlbZXNwXSx4bW0xCi0JcGFkZGQJeG1tMSx4bW00Ci0JY21vdm5lCWVzaSxlYXgKLQltb3ZkcWEJWzE2K2VzcF0seG1tMAotZGIJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQl4bW0yLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTMsMAotZGIJMTUsNTYsMjAwLDIxMwotCXB4b3IJeG1tNCx4bW02Ci1kYgkxNSw1NiwyMDEsMjM4Ci1kYgkxNSw1NiwyMDIsMjMxCi0JbW92ZHFhCXhtbTEseG1tMAotZGIJMTUsNTgsMjA0LDE5NCwwCi1kYgkxNSw1NiwyMDAsMjA2Ci0JcHhvcgl4bW01LHhtbTcKLWRiCTE1LDU2LDIwMiwyMzYKLWRiCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJeG1tMix4bW0wCi1kYgkxNSw1OCwyMDQsMTkzLDAKLWRiCTE1LDU2LDIwMCwyMTUKLQlweG9yCXhtbTYseG1tNAotZGIJMTUsNTYsMjAxLDI1MgotZGIJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQl4bW0xLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTQsMAotZGIJMTUsNTYsMjAwLDIwNAotCXB4b3IJeG1tNyx4bW01Ci1kYgkxNSw1NiwyMDIsMjU0Ci1kYgkxNSw1NiwyMDEsMjI5Ci0JbW92ZHFhCXhtbTIseG1tMAotZGIJMTUsNTgsMjA0LDE5MywwCi1kYgkxNSw1NiwyMDAsMjEzCi0JcHhvcgl4bW00LHhtbTYKLWRiCTE1LDU2LDIwMSwyMzgKLWRiCTE1LDU2LDIwMiwyMzEKLQltb3ZkcWEJeG1tMSx4bW0wCi1kYgkxNSw1OCwyMDQsMTk0LDEKLWRiCTE1LDU2LDIwMCwyMDYKLQlweG9yCXhtbTUseG1tNwotZGIJMTUsNTYsMjAyLDIzNgotZGIJMTUsNTYsMjAxLDI0NwotCW1vdmRxYQl4bW0yLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTMsMQotZGIJMTUsNTYsMjAwLDIxNQotCXB4b3IJeG1tNix4bW00Ci1kYgkxNSw1NiwyMDEsMjUyCi1kYgkxNSw1NiwyMDIsMjQ1Ci0JbW92ZHFhCXhtbTEseG1tMAotZGIJMTUsNTgsMjA0LDE5NCwxCi1kYgkxNSw1NiwyMDAsMjA0Ci0JcHhvcgl4bW03LHhtbTUKLWRiCTE1LDU2LDIwMiwyNTQKLWRiCTE1LDU2LDIwMSwyMjkKLQltb3ZkcWEJeG1tMix4bW0wCi1kYgkxNSw1OCwyMDQsMTkzLDEKLWRiCTE1LDU2LDIwMCwyMTMKLQlweG9yCXhtbTQseG1tNgotZGIJMTUsNTYsMjAxLDIzOAotZGIJMTUsNTYsMjAyLDIzMQotCW1vdmRxYQl4bW0xLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTQsMQotZGIJMTUsNTYsMjAwLDIwNgotCXB4b3IJeG1tNSx4bW03Ci1kYgkxNSw1NiwyMDIsMjM2Ci1kYgkxNSw1NiwyMDEsMjQ3Ci0JbW92ZHFhCXhtbTIseG1tMAotZGIJMTUsNTgsMjA0LDE5MywyCi1kYgkxNSw1NiwyMDAsMjE1Ci0JcHhvcgl4bW02LHhtbTQKLWRiCTE1LDU2LDIwMSwyNTIKLWRiCTE1LDU2LDIwMiwyNDUKLQltb3ZkcWEJeG1tMSx4bW0wCi1kYgkxNSw1OCwyMDQsMTk0LDIKLWRiCTE1LDU2LDIwMCwyMDQKLQlweG9yCXhtbTcseG1tNQotZGIJMTUsNTYsMjAyLDI1NAotZGIJMTUsNTYsMjAxLDIyOQotCW1vdmRxYQl4bW0yLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTMsMgotZGIJMTUsNTYsMjAwLDIxMwotCXB4b3IJeG1tNCx4bW02Ci1kYgkxNSw1NiwyMDEsMjM4Ci1kYgkxNSw1NiwyMDIsMjMxCi0JbW92ZHFhCXhtbTEseG1tMAotZGIJMTUsNTgsMjA0LDE5NCwyCi1kYgkxNSw1NiwyMDAsMjA2Ci0JcHhvcgl4bW01LHhtbTcKLWRiCTE1LDU2LDIwMiwyMzYKLWRiCTE1LDU2LDIwMSwyNDcKLQltb3ZkcWEJeG1tMix4bW0wCi1kYgkxNSw1OCwyMDQsMTkzLDIKLWRiCTE1LDU2LDIwMCwyMTUKLQlweG9yCXhtbTYseG1tNAotZGIJMTUsNTYsMjAxLDI1MgotZGIJMTUsNTYsMjAyLDI0NQotCW1vdmRxYQl4bW0xLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTQsMwotZGIJMTUsNTYsMjAwLDIwNAotCXB4b3IJeG1tNyx4bW01Ci1kYgkxNSw1NiwyMDIsMjU0Ci0JbW92ZHF1CXhtbTQsW2VzaV0KLQltb3ZkcWEJeG1tMix4bW0wCi1kYgkxNSw1OCwyMDQsMTkzLDMKLWRiCTE1LDU2LDIwMCwyMTMKLQltb3ZkcXUJeG1tNSxbMTYrZXNpXQotZGIJMTAyLDE1LDU2LDAsMjI3Ci0JbW92ZHFhCXhtbTEseG1tMAotZGIJMTUsNTgsMjA0LDE5NCwzCi1kYgkxNSw1NiwyMDAsMjA2Ci0JbW92ZHF1CXhtbTYsWzMyK2VzaV0KLWRiCTEwMiwxNSw1NiwwLDIzNQotCW1vdmRxYQl4bW0yLHhtbTAKLWRiCTE1LDU4LDIwNCwxOTMsMwotZGIJMTUsNTYsMjAwLDIxNQotCW1vdmRxdQl4bW03LFs0OCtlc2ldCi1kYgkxMDIsMTUsNTYsMCwyNDMKLQltb3ZkcWEJeG1tMSx4bW0wCi1kYgkxNSw1OCwyMDQsMTk0LDMKLQltb3ZkcWEJeG1tMixbZXNwXQotZGIJMTAyLDE1LDU2LDAsMjUxCi1kYgkxNSw1NiwyMDAsMjAyCi0JcGFkZGQJeG1tMCxbMTYrZXNwXQotCWpueglORUFSIEwkMDA0bG9vcF9zaGFleHQKLQlwc2h1ZmQJeG1tMCx4bW0wLDI3Ci0JcHNodWZkCXhtbTEseG1tMSwyNwotCW1vdmRxdQlbZWRpXSx4bW0wCi0JbW92ZAlEV09SRCBbMTYrZWRpXSx4bW0xCi0JbW92CWVzcCxlYngKLQlwb3AJZWRpCi0JcG9wCWVzaQotCXBvcAllYngKLQlwb3AJZWJwCi0JcmV0Ci1hbGlnbgkxNgotX19zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTM6Ci0JcHVzaAllYnAKLQlwdXNoCWVieAotCXB1c2gJZXNpCi0JcHVzaAllZGkKLQljYWxsCUwkMDA1cGljX3BvaW50Ci1MJDAwNXBpY19wb2ludDoKLQlwb3AJZWJwCi0JbGVhCWVicCxbKEwkS19YWF9YWC1MJDAwNXBpY19wb2ludCkrZWJwXQogTCRzc3NlM19zaG9ydGN1dDoKIAltb3ZkcWEJeG1tNyxbZWJwXQogCW1vdmRxYQl4bW0wLFsxNitlYnBdCkBAIC0xNjM0LDkgKzE0NjksOSBAQAogCXhvcgllYnAsZWR4CiAJcHNodWZkCXhtbTQseG1tMCwyMzgKIAlhbmQJZXNpLGVicAotCWptcAlORUFSIEwkMDA2bG9vcAorCWptcAlORUFSIEwkMDA0bG9vcAogYWxpZ24JMTYKLUwkMDA2bG9vcDoKK0wkMDA0bG9vcDoKIAlyb3IJZWJ4LDIKIAl4b3IJZXNpLGVkeAogCW1vdgllYnAsZWF4CkBAIC0yNTM5LDcgKzIzNzQsNyBAQAogCWFkZAllY3gsZWR4CiAJbW92CWVicCxEV09SRCBbMTk2K2VzcF0KIAljbXAJZWJwLERXT1JEIFsyMDArZXNwXQotCWplCU5FQVIgTCQwMDdkb25lCisJamUJTkVBUiBMJDAwNWRvbmUKIAltb3ZkcWEJeG1tNyxbMTYwK2VzcF0KIAltb3ZkcWEJeG1tNixbMTc2K2VzcF0KIAltb3ZkcXUJeG1tMCxbZWJwXQpAQCAtMjY3NCw5ICsyNTA5LDkgQEAKIAlwc2h1ZmQJeG1tNCx4bW0wLDIzOAogCWFuZAllc2ksZWJ4CiAJbW92CWVieCxlYnAKLQlqbXAJTkVBUiBMJDAwNmxvb3AKKwlqbXAJTkVBUiBMJDAwNGxvb3AKIGFsaWduCTE2Ci1MJDAwN2RvbmU6CitMJDAwNWRvbmU6CiAJYWRkCWVieCxEV09SRCBbMTYrZXNwXQogCXhvcgllc2ksZWRpCiAJbW92CWVicCxlY3gKQEAgLTI3ODksNiArMjYyNCwxMTc0IEBACiAJcG9wCWVieAogCXBvcAllYnAKIAlyZXQKK2FsaWduCTE2CitfX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdng6CisJcHVzaAllYnAKKwlwdXNoCWVieAorCXB1c2gJZXNpCisJcHVzaAllZGkKKwljYWxsCUwkMDA2cGljX3BvaW50CitMJDAwNnBpY19wb2ludDoKKwlwb3AJZWJwCisJbGVhCWVicCxbKEwkS19YWF9YWC1MJDAwNnBpY19wb2ludCkrZWJwXQorTCRhdnhfc2hvcnRjdXQ6CisJdnplcm9hbGwKKwl2bW92ZHFhCXhtbTcsW2VicF0KKwl2bW92ZHFhCXhtbTAsWzE2K2VicF0KKwl2bW92ZHFhCXhtbTEsWzMyK2VicF0KKwl2bW92ZHFhCXhtbTIsWzQ4K2VicF0KKwl2bW92ZHFhCXhtbTYsWzY0K2VicF0KKwltb3YJZWRpLERXT1JEIFsyMCtlc3BdCisJbW92CWVicCxEV09SRCBbMjQrZXNwXQorCW1vdgllZHgsRFdPUkQgWzI4K2VzcF0KKwltb3YJZXNpLGVzcAorCXN1Ygllc3AsMjA4CisJYW5kCWVzcCwtNjQKKwl2bW92ZHFhCVsxMTIrZXNwXSx4bW0wCisJdm1vdmRxYQlbMTI4K2VzcF0seG1tMQorCXZtb3ZkcWEJWzE0NCtlc3BdLHhtbTIKKwlzaGwJZWR4LDYKKwl2bW92ZHFhCVsxNjArZXNwXSx4bW03CisJYWRkCWVkeCxlYnAKKwl2bW92ZHFhCVsxNzYrZXNwXSx4bW02CisJYWRkCWVicCw2NAorCW1vdglEV09SRCBbMTkyK2VzcF0sZWRpCisJbW92CURXT1JEIFsxOTYrZXNwXSxlYnAKKwltb3YJRFdPUkQgWzIwMCtlc3BdLGVkeAorCW1vdglEV09SRCBbMjA0K2VzcF0sZXNpCisJbW92CWVheCxEV09SRCBbZWRpXQorCW1vdgllYngsRFdPUkQgWzQrZWRpXQorCW1vdgllY3gsRFdPUkQgWzgrZWRpXQorCW1vdgllZHgsRFdPUkQgWzEyK2VkaV0KKwltb3YJZWRpLERXT1JEIFsxNitlZGldCisJbW92CWVzaSxlYngKKwl2bW92ZHF1CXhtbTAsW2VicC02NF0KKwl2bW92ZHF1CXhtbTEsW2VicC00OF0KKwl2bW92ZHF1CXhtbTIsW2VicC0zMl0KKwl2bW92ZHF1CXhtbTMsW2VicC0xNl0KKwl2cHNodWZiCXhtbTAseG1tMCx4bW02CisJdnBzaHVmYgl4bW0xLHhtbTEseG1tNgorCXZwc2h1ZmIJeG1tMix4bW0yLHhtbTYKKwl2bW92ZHFhCVs5Nitlc3BdLHhtbTcKKwl2cHNodWZiCXhtbTMseG1tMyx4bW02CisJdnBhZGRkCXhtbTQseG1tMCx4bW03CisJdnBhZGRkCXhtbTUseG1tMSx4bW03CisJdnBhZGRkCXhtbTYseG1tMix4bW03CisJdm1vdmRxYQlbZXNwXSx4bW00CisJbW92CWVicCxlY3gKKwl2bW92ZHFhCVsxNitlc3BdLHhtbTUKKwl4b3IJZWJwLGVkeAorCXZtb3ZkcWEJWzMyK2VzcF0seG1tNgorCWFuZAllc2ksZWJwCisJam1wCU5FQVIgTCQwMDdsb29wCithbGlnbgkxNgorTCQwMDdsb29wOgorCXNocmQJZWJ4LGVieCwyCisJeG9yCWVzaSxlZHgKKwl2cGFsaWducgl4bW00LHhtbTEseG1tMCw4CisJbW92CWVicCxlYXgKKwlhZGQJZWRpLERXT1JEIFtlc3BdCisJdnBhZGRkCXhtbTcseG1tNyx4bW0zCisJdm1vdmRxYQlbNjQrZXNwXSx4bW0wCisJeG9yCWVieCxlY3gKKwlzaGxkCWVheCxlYXgsNQorCXZwc3JsZHEJeG1tNix4bW0zLDQKKwlhZGQJZWRpLGVzaQorCWFuZAllYnAsZWJ4CisJdnB4b3IJeG1tNCx4bW00LHhtbTAKKwl4b3IJZWJ4LGVjeAorCWFkZAllZGksZWF4CisJdnB4b3IJeG1tNix4bW02LHhtbTIKKwlzaHJkCWVheCxlYXgsNworCXhvcgllYnAsZWN4CisJdm1vdmRxYQlbNDgrZXNwXSx4bW03CisJbW92CWVzaSxlZGkKKwlhZGQJZWR4LERXT1JEIFs0K2VzcF0KKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcgllYXgsZWJ4CisJc2hsZAllZGksZWRpLDUKKwlhZGQJZWR4LGVicAorCWFuZAllc2ksZWF4CisJdnBzcmxkCXhtbTYseG1tNCwzMQorCXhvcgllYXgsZWJ4CisJYWRkCWVkeCxlZGkKKwlzaHJkCWVkaSxlZGksNworCXhvcgllc2ksZWJ4CisJdnBzbGxkcQl4bW0wLHhtbTQsMTIKKwl2cGFkZGQJeG1tNCx4bW00LHhtbTQKKwltb3YJZWJwLGVkeAorCWFkZAllY3gsRFdPUkQgWzgrZXNwXQorCXhvcgllZGksZWF4CisJc2hsZAllZHgsZWR4LDUKKwl2cHNybGQJeG1tNyx4bW0wLDMwCisJdnBvcgl4bW00LHhtbTQseG1tNgorCWFkZAllY3gsZXNpCisJYW5kCWVicCxlZGkKKwl4b3IJZWRpLGVheAorCWFkZAllY3gsZWR4CisJdnBzbGxkCXhtbTAseG1tMCwyCisJc2hyZAllZHgsZWR4LDcKKwl4b3IJZWJwLGVheAorCXZweG9yCXhtbTQseG1tNCx4bW03CisJbW92CWVzaSxlY3gKKwlhZGQJZWJ4LERXT1JEIFsxMitlc3BdCisJeG9yCWVkeCxlZGkKKwlzaGxkCWVjeCxlY3gsNQorCXZweG9yCXhtbTQseG1tNCx4bW0wCisJYWRkCWVieCxlYnAKKwlhbmQJZXNpLGVkeAorCXZtb3ZkcWEJeG1tMCxbOTYrZXNwXQorCXhvcgllZHgsZWRpCisJYWRkCWVieCxlY3gKKwlzaHJkCWVjeCxlY3gsNworCXhvcgllc2ksZWRpCisJdnBhbGlnbnIJeG1tNSx4bW0yLHhtbTEsOAorCW1vdgllYnAsZWJ4CisJYWRkCWVheCxEV09SRCBbMTYrZXNwXQorCXZwYWRkZAl4bW0wLHhtbTAseG1tNAorCXZtb3ZkcWEJWzgwK2VzcF0seG1tMQorCXhvcgllY3gsZWR4CisJc2hsZAllYngsZWJ4LDUKKwl2cHNybGRxCXhtbTcseG1tNCw0CisJYWRkCWVheCxlc2kKKwlhbmQJZWJwLGVjeAorCXZweG9yCXhtbTUseG1tNSx4bW0xCisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCXZweG9yCXhtbTcseG1tNyx4bW0zCisJc2hyZAllYngsZWJ4LDcKKwl4b3IJZWJwLGVkeAorCXZtb3ZkcWEJW2VzcF0seG1tMAorCW1vdgllc2ksZWF4CisJYWRkCWVkaSxEV09SRCBbMjArZXNwXQorCXZweG9yCXhtbTUseG1tNSx4bW03CisJeG9yCWVieCxlY3gKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZWJwCisJYW5kCWVzaSxlYngKKwl2cHNybGQJeG1tNyx4bW01LDMxCisJeG9yCWVieCxlY3gKKwlhZGQJZWRpLGVheAorCXNocmQJZWF4LGVheCw3CisJeG9yCWVzaSxlY3gKKwl2cHNsbGRxCXhtbTEseG1tNSwxMgorCXZwYWRkZAl4bW01LHhtbTUseG1tNQorCW1vdgllYnAsZWRpCisJYWRkCWVkeCxEV09SRCBbMjQrZXNwXQorCXhvcgllYXgsZWJ4CisJc2hsZAllZGksZWRpLDUKKwl2cHNybGQJeG1tMCx4bW0xLDMwCisJdnBvcgl4bW01LHhtbTUseG1tNworCWFkZAllZHgsZXNpCisJYW5kCWVicCxlYXgKKwl4b3IJZWF4LGVieAorCWFkZAllZHgsZWRpCisJdnBzbGxkCXhtbTEseG1tMSwyCisJc2hyZAllZGksZWRpLDcKKwl4b3IJZWJwLGVieAorCXZweG9yCXhtbTUseG1tNSx4bW0wCisJbW92CWVzaSxlZHgKKwlhZGQJZWN4LERXT1JEIFsyOCtlc3BdCisJeG9yCWVkaSxlYXgKKwlzaGxkCWVkeCxlZHgsNQorCXZweG9yCXhtbTUseG1tNSx4bW0xCisJYWRkCWVjeCxlYnAKKwlhbmQJZXNpLGVkaQorCXZtb3ZkcWEJeG1tMSxbMTEyK2VzcF0KKwl4b3IJZWRpLGVheAorCWFkZAllY3gsZWR4CisJc2hyZAllZHgsZWR4LDcKKwl4b3IJZXNpLGVheAorCXZwYWxpZ25yCXhtbTYseG1tMyx4bW0yLDgKKwltb3YJZWJwLGVjeAorCWFkZAllYngsRFdPUkQgWzMyK2VzcF0KKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTUKKwl2bW92ZHFhCVs5Nitlc3BdLHhtbTIKKwl4b3IJZWR4LGVkaQorCXNobGQJZWN4LGVjeCw1CisJdnBzcmxkcQl4bW0wLHhtbTUsNAorCWFkZAllYngsZXNpCisJYW5kCWVicCxlZHgKKwl2cHhvcgl4bW02LHhtbTYseG1tMgorCXhvcgllZHgsZWRpCisJYWRkCWVieCxlY3gKKwl2cHhvcgl4bW0wLHhtbTAseG1tNAorCXNocmQJZWN4LGVjeCw3CisJeG9yCWVicCxlZGkKKwl2bW92ZHFhCVsxNitlc3BdLHhtbTEKKwltb3YJZXNpLGVieAorCWFkZAllYXgsRFdPUkQgWzM2K2VzcF0KKwl2cHhvcgl4bW02LHhtbTYseG1tMAorCXhvcgllY3gsZWR4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVicAorCWFuZAllc2ksZWN4CisJdnBzcmxkCXhtbTAseG1tNiwzMQorCXhvcgllY3gsZWR4CisJYWRkCWVheCxlYngKKwlzaHJkCWVieCxlYngsNworCXhvcgllc2ksZWR4CisJdnBzbGxkcQl4bW0yLHhtbTYsMTIKKwl2cGFkZGQJeG1tNix4bW02LHhtbTYKKwltb3YJZWJwLGVheAorCWFkZAllZGksRFdPUkQgWzQwK2VzcF0KKwl4b3IJZWJ4LGVjeAorCXNobGQJZWF4LGVheCw1CisJdnBzcmxkCXhtbTEseG1tMiwzMAorCXZwb3IJeG1tNix4bW02LHhtbTAKKwlhZGQJZWRpLGVzaQorCWFuZAllYnAsZWJ4CisJeG9yCWVieCxlY3gKKwlhZGQJZWRpLGVheAorCXZwc2xsZAl4bW0yLHhtbTIsMgorCXZtb3ZkcWEJeG1tMCxbNjQrZXNwXQorCXNocmQJZWF4LGVheCw3CisJeG9yCWVicCxlY3gKKwl2cHhvcgl4bW02LHhtbTYseG1tMQorCW1vdgllc2ksZWRpCisJYWRkCWVkeCxEV09SRCBbNDQrZXNwXQorCXhvcgllYXgsZWJ4CisJc2hsZAllZGksZWRpLDUKKwl2cHhvcgl4bW02LHhtbTYseG1tMgorCWFkZAllZHgsZWJwCisJYW5kCWVzaSxlYXgKKwl2bW92ZHFhCXhtbTIsWzExMitlc3BdCisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVkaQorCXNocmQJZWRpLGVkaSw3CisJeG9yCWVzaSxlYngKKwl2cGFsaWducgl4bW03LHhtbTQseG1tMyw4CisJbW92CWVicCxlZHgKKwlhZGQJZWN4LERXT1JEIFs0OCtlc3BdCisJdnBhZGRkCXhtbTIseG1tMix4bW02CisJdm1vdmRxYQlbNjQrZXNwXSx4bW0zCisJeG9yCWVkaSxlYXgKKwlzaGxkCWVkeCxlZHgsNQorCXZwc3JsZHEJeG1tMSx4bW02LDQKKwlhZGQJZWN4LGVzaQorCWFuZAllYnAsZWRpCisJdnB4b3IJeG1tNyx4bW03LHhtbTMKKwl4b3IJZWRpLGVheAorCWFkZAllY3gsZWR4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTUKKwlzaHJkCWVkeCxlZHgsNworCXhvcgllYnAsZWF4CisJdm1vdmRxYQlbMzIrZXNwXSx4bW0yCisJbW92CWVzaSxlY3gKKwlhZGQJZWJ4LERXT1JEIFs1Mitlc3BdCisJdnB4b3IJeG1tNyx4bW03LHhtbTEKKwl4b3IJZWR4LGVkaQorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlYnAKKwlhbmQJZXNpLGVkeAorCXZwc3JsZAl4bW0xLHhtbTcsMzEKKwl4b3IJZWR4LGVkaQorCWFkZAllYngsZWN4CisJc2hyZAllY3gsZWN4LDcKKwl4b3IJZXNpLGVkaQorCXZwc2xsZHEJeG1tMyx4bW03LDEyCisJdnBhZGRkCXhtbTcseG1tNyx4bW03CisJbW92CWVicCxlYngKKwlhZGQJZWF4LERXT1JEIFs1Nitlc3BdCisJeG9yCWVjeCxlZHgKKwlzaGxkCWVieCxlYngsNQorCXZwc3JsZAl4bW0yLHhtbTMsMzAKKwl2cG9yCXhtbTcseG1tNyx4bW0xCisJYWRkCWVheCxlc2kKKwlhbmQJZWJwLGVjeAorCXhvcgllY3gsZWR4CisJYWRkCWVheCxlYngKKwl2cHNsbGQJeG1tMyx4bW0zLDIKKwl2bW92ZHFhCXhtbTEsWzgwK2VzcF0KKwlzaHJkCWVieCxlYngsNworCXhvcgllYnAsZWR4CisJdnB4b3IJeG1tNyx4bW03LHhtbTIKKwltb3YJZXNpLGVheAorCWFkZAllZGksRFdPUkQgWzYwK2VzcF0KKwl4b3IJZWJ4LGVjeAorCXNobGQJZWF4LGVheCw1CisJdnB4b3IJeG1tNyx4bW03LHhtbTMKKwlhZGQJZWRpLGVicAorCWFuZAllc2ksZWJ4CisJdm1vdmRxYQl4bW0zLFsxMTIrZXNwXQorCXhvcgllYngsZWN4CisJYWRkCWVkaSxlYXgKKwl2cGFsaWducgl4bW0yLHhtbTcseG1tNiw4CisJdnB4b3IJeG1tMCx4bW0wLHhtbTQKKwlzaHJkCWVheCxlYXgsNworCXhvcgllc2ksZWN4CisJbW92CWVicCxlZGkKKwlhZGQJZWR4LERXT1JEIFtlc3BdCisJdnB4b3IJeG1tMCx4bW0wLHhtbTEKKwl2bW92ZHFhCVs4MCtlc3BdLHhtbTQKKwl4b3IJZWF4LGVieAorCXNobGQJZWRpLGVkaSw1CisJdm1vdmRxYQl4bW00LHhtbTMKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTcKKwlhZGQJZWR4LGVzaQorCWFuZAllYnAsZWF4CisJdnB4b3IJeG1tMCx4bW0wLHhtbTIKKwl4b3IJZWF4LGVieAorCWFkZAllZHgsZWRpCisJc2hyZAllZGksZWRpLDcKKwl4b3IJZWJwLGVieAorCXZwc3JsZAl4bW0yLHhtbTAsMzAKKwl2bW92ZHFhCVs0OCtlc3BdLHhtbTMKKwltb3YJZXNpLGVkeAorCWFkZAllY3gsRFdPUkQgWzQrZXNwXQorCXhvcgllZGksZWF4CisJc2hsZAllZHgsZWR4LDUKKwl2cHNsbGQJeG1tMCx4bW0wLDIKKwlhZGQJZWN4LGVicAorCWFuZAllc2ksZWRpCisJeG9yCWVkaSxlYXgKKwlhZGQJZWN4LGVkeAorCXNocmQJZWR4LGVkeCw3CisJeG9yCWVzaSxlYXgKKwltb3YJZWJwLGVjeAorCWFkZAllYngsRFdPUkQgWzgrZXNwXQorCXZwb3IJeG1tMCx4bW0wLHhtbTIKKwl4b3IJZWR4LGVkaQorCXNobGQJZWN4LGVjeCw1CisJdm1vdmRxYQl4bW0yLFs5Nitlc3BdCisJYWRkCWVieCxlc2kKKwlhbmQJZWJwLGVkeAorCXhvcgllZHgsZWRpCisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEIFsxMitlc3BdCisJeG9yCWVicCxlZGkKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlYnAKKwl4b3IJZXNpLGVkeAorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwl2cGFsaWducgl4bW0zLHhtbTAseG1tNyw4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTUKKwlhZGQJZWRpLERXT1JEIFsxNitlc3BdCisJeG9yCWVzaSxlY3gKKwltb3YJZWJwLGVheAorCXNobGQJZWF4LGVheCw1CisJdnB4b3IJeG1tMSx4bW0xLHhtbTIKKwl2bW92ZHFhCVs5Nitlc3BdLHhtbTUKKwlhZGQJZWRpLGVzaQorCXhvcgllYnAsZWN4CisJdm1vdmRxYQl4bW01LHhtbTQKKwl2cGFkZGQJeG1tNCx4bW00LHhtbTAKKwlzaHJkCWVieCxlYngsNworCWFkZAllZGksZWF4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTMKKwlhZGQJZWR4LERXT1JEIFsyMCtlc3BdCisJeG9yCWVicCxlYngKKwltb3YJZXNpLGVkaQorCXNobGQJZWRpLGVkaSw1CisJdnBzcmxkCXhtbTMseG1tMSwzMAorCXZtb3ZkcWEJW2VzcF0seG1tNAorCWFkZAllZHgsZWJwCisJeG9yCWVzaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWRpCisJdnBzbGxkCXhtbTEseG1tMSwyCisJYWRkCWVjeCxEV09SRCBbMjQrZXNwXQorCXhvcgllc2ksZWF4CisJbW92CWVicCxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZXNpCisJeG9yCWVicCxlYXgKKwlzaHJkCWVkaSxlZGksNworCWFkZAllY3gsZWR4CisJdnBvcgl4bW0xLHhtbTEseG1tMworCWFkZAllYngsRFdPUkQgWzI4K2VzcF0KKwl4b3IJZWJwLGVkaQorCXZtb3ZkcWEJeG1tMyxbNjQrZXNwXQorCW1vdgllc2ksZWN4CisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVicAorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCXZwYWxpZ25yCXhtbTQseG1tMSx4bW0wLDgKKwl2cHhvcgl4bW0yLHhtbTIseG1tNgorCWFkZAllYXgsRFdPUkQgWzMyK2VzcF0KKwl4b3IJZXNpLGVkeAorCW1vdgllYnAsZWJ4CisJc2hsZAllYngsZWJ4LDUKKwl2cHhvcgl4bW0yLHhtbTIseG1tMworCXZtb3ZkcWEJWzY0K2VzcF0seG1tNgorCWFkZAllYXgsZXNpCisJeG9yCWVicCxlZHgKKwl2bW92ZHFhCXhtbTYsWzEyOCtlc3BdCisJdnBhZGRkCXhtbTUseG1tNSx4bW0xCisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCXZweG9yCXhtbTIseG1tMix4bW00CisJYWRkCWVkaSxEV09SRCBbMzYrZXNwXQorCXhvcgllYnAsZWN4CisJbW92CWVzaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCXZwc3JsZAl4bW00LHhtbTIsMzAKKwl2bW92ZHFhCVsxNitlc3BdLHhtbTUKKwlhZGQJZWRpLGVicAorCXhvcgllc2ksZWN4CisJc2hyZAllYngsZWJ4LDcKKwlhZGQJZWRpLGVheAorCXZwc2xsZAl4bW0yLHhtbTIsMgorCWFkZAllZHgsRFdPUkQgWzQwK2VzcF0KKwl4b3IJZXNpLGVieAorCW1vdgllYnAsZWRpCisJc2hsZAllZGksZWRpLDUKKwlhZGQJZWR4LGVzaQorCXhvcgllYnAsZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVkaQorCXZwb3IJeG1tMix4bW0yLHhtbTQKKwlhZGQJZWN4LERXT1JEIFs0NCtlc3BdCisJeG9yCWVicCxlYXgKKwl2bW92ZHFhCXhtbTQsWzgwK2VzcF0KKwltb3YJZXNpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlYnAKKwl4b3IJZXNpLGVheAorCXNocmQJZWRpLGVkaSw3CisJYWRkCWVjeCxlZHgKKwl2cGFsaWducgl4bW01LHhtbTIseG1tMSw4CisJdnB4b3IJeG1tMyx4bW0zLHhtbTcKKwlhZGQJZWJ4LERXT1JEIFs0OCtlc3BdCisJeG9yCWVzaSxlZGkKKwltb3YJZWJwLGVjeAorCXNobGQJZWN4LGVjeCw1CisJdnB4b3IJeG1tMyx4bW0zLHhtbTQKKwl2bW92ZHFhCVs4MCtlc3BdLHhtbTcKKwlhZGQJZWJ4LGVzaQorCXhvcgllYnAsZWRpCisJdm1vdmRxYQl4bW03LHhtbTYKKwl2cGFkZGQJeG1tNix4bW02LHhtbTIKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJdnB4b3IJeG1tMyx4bW0zLHhtbTUKKwlhZGQJZWF4LERXT1JEIFs1Mitlc3BdCisJeG9yCWVicCxlZHgKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJdnBzcmxkCXhtbTUseG1tMywzMAorCXZtb3ZkcWEJWzMyK2VzcF0seG1tNgorCWFkZAllYXgsZWJwCisJeG9yCWVzaSxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJdnBzbGxkCXhtbTMseG1tMywyCisJYWRkCWVkaSxEV09SRCBbNTYrZXNwXQorCXhvcgllc2ksZWN4CisJbW92CWVicCxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZXNpCisJeG9yCWVicCxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllZGksZWF4CisJdnBvcgl4bW0zLHhtbTMseG1tNQorCWFkZAllZHgsRFdPUkQgWzYwK2VzcF0KKwl4b3IJZWJwLGVieAorCXZtb3ZkcWEJeG1tNSxbOTYrZXNwXQorCW1vdgllc2ksZWRpCisJc2hsZAllZGksZWRpLDUKKwlhZGQJZWR4LGVicAorCXhvcgllc2ksZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVkaQorCXZwYWxpZ25yCXhtbTYseG1tMyx4bW0yLDgKKwl2cHhvcgl4bW00LHhtbTQseG1tMAorCWFkZAllY3gsRFdPUkQgW2VzcF0KKwl4b3IJZXNpLGVheAorCW1vdgllYnAsZWR4CisJc2hsZAllZHgsZWR4LDUKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCXZtb3ZkcWEJWzk2K2VzcF0seG1tMAorCWFkZAllY3gsZXNpCisJeG9yCWVicCxlYXgKKwl2bW92ZHFhCXhtbTAseG1tNworCXZwYWRkZAl4bW03LHhtbTcseG1tMworCXNocmQJZWRpLGVkaSw3CisJYWRkCWVjeCxlZHgKKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCWFkZAllYngsRFdPUkQgWzQrZXNwXQorCXhvcgllYnAsZWRpCisJbW92CWVzaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCXZwc3JsZAl4bW02LHhtbTQsMzAKKwl2bW92ZHFhCVs0OCtlc3BdLHhtbTcKKwlhZGQJZWJ4LGVicAorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCXZwc2xsZAl4bW00LHhtbTQsMgorCWFkZAllYXgsRFdPUkQgWzgrZXNwXQorCXhvcgllc2ksZWR4CisJbW92CWVicCxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJeG9yCWVicCxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJdnBvcgl4bW00LHhtbTQseG1tNgorCWFkZAllZGksRFdPUkQgWzEyK2VzcF0KKwl4b3IJZWJwLGVjeAorCXZtb3ZkcWEJeG1tNixbNjQrZXNwXQorCW1vdgllc2ksZWF4CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWRpLGVicAorCXhvcgllc2ksZWN4CisJc2hyZAllYngsZWJ4LDcKKwlhZGQJZWRpLGVheAorCXZwYWxpZ25yCXhtbTcseG1tNCx4bW0zLDgKKwl2cHhvcgl4bW01LHhtbTUseG1tMQorCWFkZAllZHgsRFdPUkQgWzE2K2VzcF0KKwl4b3IJZXNpLGVieAorCW1vdgllYnAsZWRpCisJc2hsZAllZGksZWRpLDUKKwl2cHhvcgl4bW01LHhtbTUseG1tNgorCXZtb3ZkcWEJWzY0K2VzcF0seG1tMQorCWFkZAllZHgsZXNpCisJeG9yCWVicCxlYngKKwl2bW92ZHFhCXhtbTEseG1tMAorCXZwYWRkZAl4bW0wLHhtbTAseG1tNAorCXNocmQJZWF4LGVheCw3CisJYWRkCWVkeCxlZGkKKwl2cHhvcgl4bW01LHhtbTUseG1tNworCWFkZAllY3gsRFdPUkQgWzIwK2VzcF0KKwl4b3IJZWJwLGVheAorCW1vdgllc2ksZWR4CisJc2hsZAllZHgsZWR4LDUKKwl2cHNybGQJeG1tNyx4bW01LDMwCisJdm1vdmRxYQlbZXNwXSx4bW0wCisJYWRkCWVjeCxlYnAKKwl4b3IJZXNpLGVheAorCXNocmQJZWRpLGVkaSw3CisJYWRkCWVjeCxlZHgKKwl2cHNsbGQJeG1tNSx4bW01LDIKKwlhZGQJZWJ4LERXT1JEIFsyNCtlc3BdCisJeG9yCWVzaSxlZGkKKwltb3YJZWJwLGVjeAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlc2kKKwl4b3IJZWJwLGVkaQorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwl2cG9yCXhtbTUseG1tNSx4bW03CisJYWRkCWVheCxEV09SRCBbMjgrZXNwXQorCXZtb3ZkcWEJeG1tNyxbODArZXNwXQorCXNocmQJZWN4LGVjeCw3CisJbW92CWVzaSxlYngKKwl4b3IJZWJwLGVkeAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlYnAKKwl4b3IJZXNpLGVjeAorCXhvcgllY3gsZWR4CisJYWRkCWVheCxlYngKKwl2cGFsaWducgl4bW0wLHhtbTUseG1tNCw4CisJdnB4b3IJeG1tNix4bW02LHhtbTIKKwlhZGQJZWRpLERXT1JEIFszMitlc3BdCisJYW5kCWVzaSxlY3gKKwl4b3IJZWN4LGVkeAorCXNocmQJZWJ4LGVieCw3CisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwl2bW92ZHFhCVs4MCtlc3BdLHhtbTIKKwltb3YJZWJwLGVheAorCXhvcgllc2ksZWN4CisJdm1vdmRxYQl4bW0yLHhtbTEKKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTUKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZXNpCisJdnB4b3IJeG1tNix4bW02LHhtbTAKKwl4b3IJZWJwLGVieAorCXhvcgllYngsZWN4CisJYWRkCWVkaSxlYXgKKwlhZGQJZWR4LERXT1JEIFszNitlc3BdCisJdnBzcmxkCXhtbTAseG1tNiwzMAorCXZtb3ZkcWEJWzE2K2VzcF0seG1tMQorCWFuZAllYnAsZWJ4CisJeG9yCWVieCxlY3gKKwlzaHJkCWVheCxlYXgsNworCW1vdgllc2ksZWRpCisJdnBzbGxkCXhtbTYseG1tNiwyCisJeG9yCWVicCxlYngKKwlzaGxkCWVkaSxlZGksNQorCWFkZAllZHgsZWJwCisJeG9yCWVzaSxlYXgKKwl4b3IJZWF4LGVieAorCWFkZAllZHgsZWRpCisJYWRkCWVjeCxEV09SRCBbNDArZXNwXQorCWFuZAllc2ksZWF4CisJdnBvcgl4bW02LHhtbTYseG1tMAorCXhvcgllYXgsZWJ4CisJc2hyZAllZGksZWRpLDcKKwl2bW92ZHFhCXhtbTAsWzk2K2VzcF0KKwltb3YJZWJwLGVkeAorCXhvcgllc2ksZWF4CisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVzaQorCXhvcgllYnAsZWRpCisJeG9yCWVkaSxlYXgKKwlhZGQJZWN4LGVkeAorCWFkZAllYngsRFdPUkQgWzQ0K2VzcF0KKwlhbmQJZWJwLGVkaQorCXhvcgllZGksZWF4CisJc2hyZAllZHgsZWR4LDcKKwltb3YJZXNpLGVjeAorCXhvcgllYnAsZWRpCisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVicAorCXhvcgllc2ksZWR4CisJeG9yCWVkeCxlZGkKKwlhZGQJZWJ4LGVjeAorCXZwYWxpZ25yCXhtbTEseG1tNix4bW01LDgKKwl2cHhvcgl4bW03LHhtbTcseG1tMworCWFkZAllYXgsRFdPUkQgWzQ4K2VzcF0KKwlhbmQJZXNpLGVkeAorCXhvcgllZHgsZWRpCisJc2hyZAllY3gsZWN4LDcKKwl2cHhvcgl4bW03LHhtbTcseG1tMAorCXZtb3ZkcWEJWzk2K2VzcF0seG1tMworCW1vdgllYnAsZWJ4CisJeG9yCWVzaSxlZHgKKwl2bW92ZHFhCXhtbTMsWzE0NCtlc3BdCisJdnBhZGRkCXhtbTIseG1tMix4bW02CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVzaQorCXZweG9yCXhtbTcseG1tNyx4bW0xCisJeG9yCWVicCxlY3gKKwl4b3IJZWN4LGVkeAorCWFkZAllYXgsZWJ4CisJYWRkCWVkaSxEV09SRCBbNTIrZXNwXQorCXZwc3JsZAl4bW0xLHhtbTcsMzAKKwl2bW92ZHFhCVszMitlc3BdLHhtbTIKKwlhbmQJZWJwLGVjeAorCXhvcgllY3gsZWR4CisJc2hyZAllYngsZWJ4LDcKKwltb3YJZXNpLGVheAorCXZwc2xsZAl4bW03LHhtbTcsMgorCXhvcgllYnAsZWN4CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWRpLGVicAorCXhvcgllc2ksZWJ4CisJeG9yCWVieCxlY3gKKwlhZGQJZWRpLGVheAorCWFkZAllZHgsRFdPUkQgWzU2K2VzcF0KKwlhbmQJZXNpLGVieAorCXZwb3IJeG1tNyx4bW03LHhtbTEKKwl4b3IJZWJ4LGVjeAorCXNocmQJZWF4LGVheCw3CisJdm1vdmRxYQl4bW0xLFs2NCtlc3BdCisJbW92CWVicCxlZGkKKwl4b3IJZXNpLGVieAorCXNobGQJZWRpLGVkaSw1CisJYWRkCWVkeCxlc2kKKwl4b3IJZWJwLGVheAorCXhvcgllYXgsZWJ4CisJYWRkCWVkeCxlZGkKKwlhZGQJZWN4LERXT1JEIFs2MCtlc3BdCisJYW5kCWVicCxlYXgKKwl4b3IJZWF4LGVieAorCXNocmQJZWRpLGVkaSw3CisJbW92CWVzaSxlZHgKKwl4b3IJZWJwLGVheAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlYnAKKwl4b3IJZXNpLGVkaQorCXhvcgllZGksZWF4CisJYWRkCWVjeCxlZHgKKwl2cGFsaWducgl4bW0yLHhtbTcseG1tNiw4CisJdnB4b3IJeG1tMCx4bW0wLHhtbTQKKwlhZGQJZWJ4LERXT1JEIFtlc3BdCisJYW5kCWVzaSxlZGkKKwl4b3IJZWRpLGVheAorCXNocmQJZWR4LGVkeCw3CisJdnB4b3IJeG1tMCx4bW0wLHhtbTEKKwl2bW92ZHFhCVs2NCtlc3BdLHhtbTQKKwltb3YJZWJwLGVjeAorCXhvcgllc2ksZWRpCisJdm1vdmRxYQl4bW00LHhtbTMKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTcKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJdnB4b3IJeG1tMCx4bW0wLHhtbTIKKwl4b3IJZWJwLGVkeAorCXhvcgllZHgsZWRpCisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEIFs0K2VzcF0KKwl2cHNybGQJeG1tMix4bW0wLDMwCisJdm1vdmRxYQlbNDgrZXNwXSx4bW0zCisJYW5kCWVicCxlZHgKKwl4b3IJZWR4LGVkaQorCXNocmQJZWN4LGVjeCw3CisJbW92CWVzaSxlYngKKwl2cHNsbGQJeG1tMCx4bW0wLDIKKwl4b3IJZWJwLGVkeAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlYnAKKwl4b3IJZXNpLGVjeAorCXhvcgllY3gsZWR4CisJYWRkCWVheCxlYngKKwlhZGQJZWRpLERXT1JEIFs4K2VzcF0KKwlhbmQJZXNpLGVjeAorCXZwb3IJeG1tMCx4bW0wLHhtbTIKKwl4b3IJZWN4LGVkeAorCXNocmQJZWJ4LGVieCw3CisJdm1vdmRxYQl4bW0yLFs4MCtlc3BdCisJbW92CWVicCxlYXgKKwl4b3IJZXNpLGVjeAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVkaSxlc2kKKwl4b3IJZWJwLGVieAorCXhvcgllYngsZWN4CisJYWRkCWVkaSxlYXgKKwlhZGQJZWR4LERXT1JEIFsxMitlc3BdCisJYW5kCWVicCxlYngKKwl4b3IJZWJ4LGVjeAorCXNocmQJZWF4LGVheCw3CisJbW92CWVzaSxlZGkKKwl4b3IJZWJwLGVieAorCXNobGQJZWRpLGVkaSw1CisJYWRkCWVkeCxlYnAKKwl4b3IJZXNpLGVheAorCXhvcgllYXgsZWJ4CisJYWRkCWVkeCxlZGkKKwl2cGFsaWducgl4bW0zLHhtbTAseG1tNyw4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTUKKwlhZGQJZWN4LERXT1JEIFsxNitlc3BdCisJYW5kCWVzaSxlYXgKKwl4b3IJZWF4LGVieAorCXNocmQJZWRpLGVkaSw3CisJdnB4b3IJeG1tMSx4bW0xLHhtbTIKKwl2bW92ZHFhCVs4MCtlc3BdLHhtbTUKKwltb3YJZWJwLGVkeAorCXhvcgllc2ksZWF4CisJdm1vdmRxYQl4bW01LHhtbTQKKwl2cGFkZGQJeG1tNCx4bW00LHhtbTAKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZXNpCisJdnB4b3IJeG1tMSx4bW0xLHhtbTMKKwl4b3IJZWJwLGVkaQorCXhvcgllZGksZWF4CisJYWRkCWVjeCxlZHgKKwlhZGQJZWJ4LERXT1JEIFsyMCtlc3BdCisJdnBzcmxkCXhtbTMseG1tMSwzMAorCXZtb3ZkcWEJW2VzcF0seG1tNAorCWFuZAllYnAsZWRpCisJeG9yCWVkaSxlYXgKKwlzaHJkCWVkeCxlZHgsNworCW1vdgllc2ksZWN4CisJdnBzbGxkCXhtbTEseG1tMSwyCisJeG9yCWVicCxlZGkKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWJwCisJeG9yCWVzaSxlZHgKKwl4b3IJZWR4LGVkaQorCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbMjQrZXNwXQorCWFuZAllc2ksZWR4CisJdnBvcgl4bW0xLHhtbTEseG1tMworCXhvcgllZHgsZWRpCisJc2hyZAllY3gsZWN4LDcKKwl2bW92ZHFhCXhtbTMsWzk2K2VzcF0KKwltb3YJZWJwLGVieAorCXhvcgllc2ksZWR4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVzaQorCXhvcgllYnAsZWN4CisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCWFkZAllZGksRFdPUkQgWzI4K2VzcF0KKwlhbmQJZWJwLGVjeAorCXhvcgllY3gsZWR4CisJc2hyZAllYngsZWJ4LDcKKwltb3YJZXNpLGVheAorCXhvcgllYnAsZWN4CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWRpLGVicAorCXhvcgllc2ksZWJ4CisJeG9yCWVieCxlY3gKKwlhZGQJZWRpLGVheAorCXZwYWxpZ25yCXhtbTQseG1tMSx4bW0wLDgKKwl2cHhvcgl4bW0yLHhtbTIseG1tNgorCWFkZAllZHgsRFdPUkQgWzMyK2VzcF0KKwlhbmQJZXNpLGVieAorCXhvcgllYngsZWN4CisJc2hyZAllYXgsZWF4LDcKKwl2cHhvcgl4bW0yLHhtbTIseG1tMworCXZtb3ZkcWEJWzk2K2VzcF0seG1tNgorCW1vdgllYnAsZWRpCisJeG9yCWVzaSxlYngKKwl2bW92ZHFhCXhtbTYseG1tNQorCXZwYWRkZAl4bW01LHhtbTUseG1tMQorCXNobGQJZWRpLGVkaSw1CisJYWRkCWVkeCxlc2kKKwl2cHhvcgl4bW0yLHhtbTIseG1tNAorCXhvcgllYnAsZWF4CisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVkaQorCWFkZAllY3gsRFdPUkQgWzM2K2VzcF0KKwl2cHNybGQJeG1tNCx4bW0yLDMwCisJdm1vdmRxYQlbMTYrZXNwXSx4bW01CisJYW5kCWVicCxlYXgKKwl4b3IJZWF4LGVieAorCXNocmQJZWRpLGVkaSw3CisJbW92CWVzaSxlZHgKKwl2cHNsbGQJeG1tMix4bW0yLDIKKwl4b3IJZWJwLGVheAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlYnAKKwl4b3IJZXNpLGVkaQorCXhvcgllZGksZWF4CisJYWRkCWVjeCxlZHgKKwlhZGQJZWJ4LERXT1JEIFs0MCtlc3BdCisJYW5kCWVzaSxlZGkKKwl2cG9yCXhtbTIseG1tMix4bW00CisJeG9yCWVkaSxlYXgKKwlzaHJkCWVkeCxlZHgsNworCXZtb3ZkcWEJeG1tNCxbNjQrZXNwXQorCW1vdgllYnAsZWN4CisJeG9yCWVzaSxlZGkKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJeG9yCWVicCxlZHgKKwl4b3IJZWR4LGVkaQorCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbNDQrZXNwXQorCWFuZAllYnAsZWR4CisJeG9yCWVkeCxlZGkKKwlzaHJkCWVjeCxlY3gsNworCW1vdgllc2ksZWJ4CisJeG9yCWVicCxlZHgKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZWJwCisJeG9yCWVzaSxlZHgKKwlhZGQJZWF4LGVieAorCXZwYWxpZ25yCXhtbTUseG1tMix4bW0xLDgKKwl2cHhvcgl4bW0zLHhtbTMseG1tNworCWFkZAllZGksRFdPUkQgWzQ4K2VzcF0KKwl4b3IJZXNpLGVjeAorCW1vdgllYnAsZWF4CisJc2hsZAllYXgsZWF4LDUKKwl2cHhvcgl4bW0zLHhtbTMseG1tNAorCXZtb3ZkcWEJWzY0K2VzcF0seG1tNworCWFkZAllZGksZXNpCisJeG9yCWVicCxlY3gKKwl2bW92ZHFhCXhtbTcseG1tNgorCXZwYWRkZAl4bW02LHhtbTYseG1tMgorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVkaSxlYXgKKwl2cHhvcgl4bW0zLHhtbTMseG1tNQorCWFkZAllZHgsRFdPUkQgWzUyK2VzcF0KKwl4b3IJZWJwLGVieAorCW1vdgllc2ksZWRpCisJc2hsZAllZGksZWRpLDUKKwl2cHNybGQJeG1tNSx4bW0zLDMwCisJdm1vdmRxYQlbMzIrZXNwXSx4bW02CisJYWRkCWVkeCxlYnAKKwl4b3IJZXNpLGVieAorCXNocmQJZWF4LGVheCw3CisJYWRkCWVkeCxlZGkKKwl2cHNsbGQJeG1tMyx4bW0zLDIKKwlhZGQJZWN4LERXT1JEIFs1Nitlc3BdCisJeG9yCWVzaSxlYXgKKwltb3YJZWJwLGVkeAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlc2kKKwl4b3IJZWJwLGVheAorCXNocmQJZWRpLGVkaSw3CisJYWRkCWVjeCxlZHgKKwl2cG9yCXhtbTMseG1tMyx4bW01CisJYWRkCWVieCxEV09SRCBbNjArZXNwXQorCXhvcgllYnAsZWRpCisJbW92CWVzaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWJwCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbZXNwXQorCXZwYWRkZAl4bW03LHhtbTcseG1tMworCXhvcgllc2ksZWR4CisJbW92CWVicCxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJdm1vdmRxYQlbNDgrZXNwXSx4bW03CisJeG9yCWVicCxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVkaSxEV09SRCBbNCtlc3BdCisJeG9yCWVicCxlY3gKKwltb3YJZXNpLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVkaSxlYnAKKwl4b3IJZXNpLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVkaSxlYXgKKwlhZGQJZWR4LERXT1JEIFs4K2VzcF0KKwl4b3IJZXNpLGVieAorCW1vdgllYnAsZWRpCisJc2hsZAllZGksZWRpLDUKKwlhZGQJZWR4LGVzaQorCXhvcgllYnAsZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVkaQorCWFkZAllY3gsRFdPUkQgWzEyK2VzcF0KKwl4b3IJZWJwLGVheAorCW1vdgllc2ksZWR4CisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVicAorCXhvcgllc2ksZWF4CisJc2hyZAllZGksZWRpLDcKKwlhZGQJZWN4LGVkeAorCW1vdgllYnAsRFdPUkQgWzE5Nitlc3BdCisJY21wCWVicCxEV09SRCBbMjAwK2VzcF0KKwlqZQlORUFSIEwkMDA4ZG9uZQorCXZtb3ZkcWEJeG1tNyxbMTYwK2VzcF0KKwl2bW92ZHFhCXhtbTYsWzE3Nitlc3BdCisJdm1vdmRxdQl4bW0wLFtlYnBdCisJdm1vdmRxdQl4bW0xLFsxNitlYnBdCisJdm1vdmRxdQl4bW0yLFszMitlYnBdCisJdm1vdmRxdQl4bW0zLFs0OCtlYnBdCisJYWRkCWVicCw2NAorCXZwc2h1ZmIJeG1tMCx4bW0wLHhtbTYKKwltb3YJRFdPUkQgWzE5Nitlc3BdLGVicAorCXZtb3ZkcWEJWzk2K2VzcF0seG1tNworCWFkZAllYngsRFdPUkQgWzE2K2VzcF0KKwl4b3IJZXNpLGVkaQorCXZwc2h1ZmIJeG1tMSx4bW0xLHhtbTYKKwltb3YJZWJwLGVjeAorCXNobGQJZWN4LGVjeCw1CisJdnBhZGRkCXhtbTQseG1tMCx4bW03CisJYWRkCWVieCxlc2kKKwl4b3IJZWJwLGVkaQorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwl2bW92ZHFhCVtlc3BdLHhtbTQKKwlhZGQJZWF4LERXT1JEIFsyMCtlc3BdCisJeG9yCWVicCxlZHgKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlYnAKKwl4b3IJZXNpLGVkeAorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwlhZGQJZWRpLERXT1JEIFsyNCtlc3BdCisJeG9yCWVzaSxlY3gKKwltb3YJZWJwLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVkaSxlc2kKKwl4b3IJZWJwLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVkaSxlYXgKKwlhZGQJZWR4LERXT1JEIFsyOCtlc3BdCisJeG9yCWVicCxlYngKKwltb3YJZXNpLGVkaQorCXNobGQJZWRpLGVkaSw1CisJYWRkCWVkeCxlYnAKKwl4b3IJZXNpLGVieAorCXNocmQJZWF4LGVheCw3CisJYWRkCWVkeCxlZGkKKwlhZGQJZWN4LERXT1JEIFszMitlc3BdCisJeG9yCWVzaSxlYXgKKwl2cHNodWZiCXhtbTIseG1tMix4bW02CisJbW92CWVicCxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCXZwYWRkZAl4bW01LHhtbTEseG1tNworCWFkZAllY3gsZXNpCisJeG9yCWVicCxlYXgKKwlzaHJkCWVkaSxlZGksNworCWFkZAllY3gsZWR4CisJdm1vdmRxYQlbMTYrZXNwXSx4bW01CisJYWRkCWVieCxEV09SRCBbMzYrZXNwXQorCXhvcgllYnAsZWRpCisJbW92CWVzaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWJwCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbNDArZXNwXQorCXhvcgllc2ksZWR4CisJbW92CWVicCxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJeG9yCWVicCxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVkaSxEV09SRCBbNDQrZXNwXQorCXhvcgllYnAsZWN4CisJbW92CWVzaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZWJwCisJeG9yCWVzaSxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllZGksZWF4CisJYWRkCWVkeCxEV09SRCBbNDgrZXNwXQorCXhvcgllc2ksZWJ4CisJdnBzaHVmYgl4bW0zLHhtbTMseG1tNgorCW1vdgllYnAsZWRpCisJc2hsZAllZGksZWRpLDUKKwl2cGFkZGQJeG1tNix4bW0yLHhtbTcKKwlhZGQJZWR4LGVzaQorCXhvcgllYnAsZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVkaQorCXZtb3ZkcWEJWzMyK2VzcF0seG1tNgorCWFkZAllY3gsRFdPUkQgWzUyK2VzcF0KKwl4b3IJZWJwLGVheAorCW1vdgllc2ksZWR4CisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVicAorCXhvcgllc2ksZWF4CisJc2hyZAllZGksZWRpLDcKKwlhZGQJZWN4LGVkeAorCWFkZAllYngsRFdPUkQgWzU2K2VzcF0KKwl4b3IJZXNpLGVkaQorCW1vdgllYnAsZWN4CisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVzaQorCXhvcgllYnAsZWRpCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCWFkZAllYXgsRFdPUkQgWzYwK2VzcF0KKwl4b3IJZWJwLGVkeAorCW1vdgllc2ksZWJ4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVicAorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwltb3YJZWJwLERXT1JEIFsxOTIrZXNwXQorCWFkZAllYXgsRFdPUkQgW2VicF0KKwlhZGQJZXNpLERXT1JEIFs0K2VicF0KKwlhZGQJZWN4LERXT1JEIFs4K2VicF0KKwltb3YJRFdPUkQgW2VicF0sZWF4CisJYWRkCWVkeCxEV09SRCBbMTIrZWJwXQorCW1vdglEV09SRCBbNCtlYnBdLGVzaQorCWFkZAllZGksRFdPUkQgWzE2K2VicF0KKwltb3YJZWJ4LGVjeAorCW1vdglEV09SRCBbOCtlYnBdLGVjeAorCXhvcgllYngsZWR4CisJbW92CURXT1JEIFsxMitlYnBdLGVkeAorCW1vdglEV09SRCBbMTYrZWJwXSxlZGkKKwltb3YJZWJwLGVzaQorCWFuZAllc2ksZWJ4CisJbW92CWVieCxlYnAKKwlqbXAJTkVBUiBMJDAwN2xvb3AKK2FsaWduCTE2CitMJDAwOGRvbmU6CisJYWRkCWVieCxEV09SRCBbMTYrZXNwXQorCXhvcgllc2ksZWRpCisJbW92CWVicCxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJeG9yCWVicCxlZGkKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbMjArZXNwXQorCXhvcgllYnAsZWR4CisJbW92CWVzaSxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZWJwCisJeG9yCWVzaSxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVkaSxEV09SRCBbMjQrZXNwXQorCXhvcgllc2ksZWN4CisJbW92CWVicCxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZXNpCisJeG9yCWVicCxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllZGksZWF4CisJYWRkCWVkeCxEV09SRCBbMjgrZXNwXQorCXhvcgllYnAsZWJ4CisJbW92CWVzaSxlZGkKKwlzaGxkCWVkaSxlZGksNQorCWFkZAllZHgsZWJwCisJeG9yCWVzaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWRpCisJYWRkCWVjeCxEV09SRCBbMzIrZXNwXQorCXhvcgllc2ksZWF4CisJbW92CWVicCxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZXNpCisJeG9yCWVicCxlYXgKKwlzaHJkCWVkaSxlZGksNworCWFkZAllY3gsZWR4CisJYWRkCWVieCxEV09SRCBbMzYrZXNwXQorCXhvcgllYnAsZWRpCisJbW92CWVzaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWJwCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbNDArZXNwXQorCXhvcgllc2ksZWR4CisJbW92CWVicCxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJeG9yCWVicCxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVkaSxEV09SRCBbNDQrZXNwXQorCXhvcgllYnAsZWN4CisJbW92CWVzaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllZGksZWJwCisJeG9yCWVzaSxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllZGksZWF4CisJYWRkCWVkeCxEV09SRCBbNDgrZXNwXQorCXhvcgllc2ksZWJ4CisJbW92CWVicCxlZGkKKwlzaGxkCWVkaSxlZGksNQorCWFkZAllZHgsZXNpCisJeG9yCWVicCxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWRpCisJYWRkCWVjeCxEV09SRCBbNTIrZXNwXQorCXhvcgllYnAsZWF4CisJbW92CWVzaSxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZWJwCisJeG9yCWVzaSxlYXgKKwlzaHJkCWVkaSxlZGksNworCWFkZAllY3gsZWR4CisJYWRkCWVieCxEV09SRCBbNTYrZXNwXQorCXhvcgllc2ksZWRpCisJbW92CWVicCxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJeG9yCWVicCxlZGkKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRCBbNjArZXNwXQorCXhvcgllYnAsZWR4CisJbW92CWVzaSxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZWJwCisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCXZ6ZXJvYWxsCisJbW92CWVicCxEV09SRCBbMTkyK2VzcF0KKwlhZGQJZWF4LERXT1JEIFtlYnBdCisJbW92CWVzcCxEV09SRCBbMjA0K2VzcF0KKwlhZGQJZXNpLERXT1JEIFs0K2VicF0KKwlhZGQJZWN4LERXT1JEIFs4K2VicF0KKwltb3YJRFdPUkQgW2VicF0sZWF4CisJYWRkCWVkeCxEV09SRCBbMTIrZWJwXQorCW1vdglEV09SRCBbNCtlYnBdLGVzaQorCWFkZAllZGksRFdPUkQgWzE2K2VicF0KKwltb3YJRFdPUkQgWzgrZWJwXSxlY3gKKwltb3YJRFdPUkQgWzEyK2VicF0sZWR4CisJbW92CURXT1JEIFsxNitlYnBdLGVkaQorCXBvcAllZGkKKwlwb3AJZXNpCisJcG9wCWVieAorCXBvcAllYnAKKwlyZXQKIGFsaWduCTY0CiBMJEtfWFhfWFg6CiBkZAkxNTE4NTAwMjQ5LDE1MTg1MDAyNDksMTUxODUwMDI0OSwxNTE4NTAwMjQ5CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vc2hhL3NoYTI1Ni01ODYuYXNtIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODYvY3J5cHRvL3NoYS9zaGEyNTYtNTg2LmFzbQppbmRleCBmZTM2YmM1Li4zZTdjZmNjIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Ni9jcnlwdG8vc2hhL3NoYTI1Ni01ODYuYXNtCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2L2NyeXB0by9zaGEvc2hhMjU2LTU4Ni5hc20KQEAgLTQ5LDExICs0OSwxMCBAQAogCWp6CU5FQVIgTCQwMDNub194bW0KIAlhbmQJZWN4LDEwNzM3NDE4MjQKIAlhbmQJZWJ4LDI2ODQzNTk2OAotCXRlc3QJZWR4LDUzNjg3MDkxMgotCWpueglORUFSIEwkMDA0c2hhZXh0CiAJb3IJZWN4LGVieAogCWFuZAllY3gsMTM0MjE3NzI4MAogCWNtcAllY3gsMTM0MjE3NzI4MAorCWplCU5FQVIgTCQwMDRBVlgKIAl0ZXN0CWVieCw1MTIKIAlqbnoJTkVBUiBMJDAwNVNTU0UzCiBMJDAwM25vX3htbToKQEAgLTMxNzksMjA0ICszMTc4LDYgQEAKIAlwb3AJZWJwCiAJcmV0CiBhbGlnbgkzMgotTCQwMDRzaGFleHQ6Ci0Jc3ViCWVzcCwzMgotCW1vdmRxdQl4bW0xLFtlc2ldCi0JbGVhCWVicCxbMTI4K2VicF0KLQltb3ZkcXUJeG1tMixbMTYrZXNpXQotCW1vdmRxYQl4bW03LFsxMjgrZWJwXQotCXBzaHVmZAl4bW0wLHhtbTEsMjcKLQlwc2h1ZmQJeG1tMSx4bW0xLDE3NwotCXBzaHVmZAl4bW0yLHhtbTIsMjcKLWRiCTEwMiwxNSw1OCwxNSwyMDIsOAotCXB1bnBja2xxZHEJeG1tMix4bW0wCi0Jam1wCU5FQVIgTCQwMTBsb29wX3NoYWV4dAotYWxpZ24JMTYKLUwkMDEwbG9vcF9zaGFleHQ6Ci0JbW92ZHF1CXhtbTMsW2VkaV0KLQltb3ZkcXUJeG1tNCxbMTYrZWRpXQotCW1vdmRxdQl4bW01LFszMitlZGldCi1kYgkxMDIsMTUsNTYsMCwyMjMKLQltb3ZkcXUJeG1tNixbNDgrZWRpXQotCW1vdmRxYQlbMTYrZXNwXSx4bW0yCi0JbW92ZHFhCXhtbTAsW2VicC0xMjhdCi0JcGFkZGQJeG1tMCx4bW0zCi1kYgkxMDIsMTUsNTYsMCwyMzEKLWRiCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJeG1tMCx4bW0wLDE0Ci0Jbm9wCi0JbW92ZHFhCVtlc3BdLHhtbTEKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTExMl0KLQlwYWRkZAl4bW0wLHhtbTQKLWRiCTEwMiwxNSw1NiwwLDIzOQotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQlsZWEJZWRpLFs2NCtlZGldCi1kYgkxNSw1NiwyMDQsMjIwCi1kYgkxNSw1NiwyMDMsMjAyCi0JbW92ZHFhCXhtbTAsW2VicC05Nl0KLQlwYWRkZAl4bW0wLHhtbTUKLWRiCTEwMiwxNSw1NiwwLDI0NwotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW02Ci1kYgkxMDIsMTUsNTgsMTUsMjUzLDQKLQlub3AKLQlwYWRkZAl4bW0zLHhtbTcKLWRiCTE1LDU2LDIwNCwyMjkKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTgwXQotCXBhZGRkCXhtbTAseG1tNgotZGIJMTUsNTYsMjA1LDIyMgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW0zCi1kYgkxMDIsMTUsNTgsMTUsMjU0LDQKLQlub3AKLQlwYWRkZAl4bW00LHhtbTcKLWRiCTE1LDU2LDIwNCwyMzgKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTY0XQotCXBhZGRkCXhtbTAseG1tMwotZGIJMTUsNTYsMjA1LDIyNwotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW00Ci1kYgkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAl4bW01LHhtbTcKLWRiCTE1LDU2LDIwNCwyNDMKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTQ4XQotCXBhZGRkCXhtbTAseG1tNAotZGIJMTUsNTYsMjA1LDIzNgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW01Ci1kYgkxMDIsMTUsNTgsMTUsMjUyLDQKLQlub3AKLQlwYWRkZAl4bW02LHhtbTcKLWRiCTE1LDU2LDIwNCwyMjAKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTMyXQotCXBhZGRkCXhtbTAseG1tNQotZGIJMTUsNTYsMjA1LDI0NQotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW02Ci1kYgkxMDIsMTUsNTgsMTUsMjUzLDQKLQlub3AKLQlwYWRkZAl4bW0zLHhtbTcKLWRiCTE1LDU2LDIwNCwyMjkKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwLTE2XQotCXBhZGRkCXhtbTAseG1tNgotZGIJMTUsNTYsMjA1LDIyMgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW0zCi1kYgkxMDIsMTUsNTgsMTUsMjU0LDQKLQlub3AKLQlwYWRkZAl4bW00LHhtbTcKLWRiCTE1LDU2LDIwNCwyMzgKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbZWJwXQotCXBhZGRkCXhtbTAseG1tMwotZGIJMTUsNTYsMjA1LDIyNwotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW00Ci1kYgkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAl4bW01LHhtbTcKLWRiCTE1LDU2LDIwNCwyNDMKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbMTYrZWJwXQotCXBhZGRkCXhtbTAseG1tNAotZGIJMTUsNTYsMjA1LDIzNgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW01Ci1kYgkxMDIsMTUsNTgsMTUsMjUyLDQKLQlub3AKLQlwYWRkZAl4bW02LHhtbTcKLWRiCTE1LDU2LDIwNCwyMjAKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbMzIrZWJwXQotCXBhZGRkCXhtbTAseG1tNQotZGIJMTUsNTYsMjA1LDI0NQotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW02Ci1kYgkxMDIsMTUsNTgsMTUsMjUzLDQKLQlub3AKLQlwYWRkZAl4bW0zLHhtbTcKLWRiCTE1LDU2LDIwNCwyMjkKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbNDgrZWJwXQotCXBhZGRkCXhtbTAseG1tNgotZGIJMTUsNTYsMjA1LDIyMgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW0zCi1kYgkxMDIsMTUsNTgsMTUsMjU0LDQKLQlub3AKLQlwYWRkZAl4bW00LHhtbTcKLWRiCTE1LDU2LDIwNCwyMzgKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbNjQrZWJwXQotCXBhZGRkCXhtbTAseG1tMwotZGIJMTUsNTYsMjA1LDIyNwotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW00Ci1kYgkxMDIsMTUsNTgsMTUsMjUxLDQKLQlub3AKLQlwYWRkZAl4bW01LHhtbTcKLWRiCTE1LDU2LDIwNCwyNDMKLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbODArZWJwXQotCXBhZGRkCXhtbTAseG1tNAotZGIJMTUsNTYsMjA1LDIzNgotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLQltb3ZkcWEJeG1tNyx4bW01Ci1kYgkxMDIsMTUsNTgsMTUsMjUyLDQKLWRiCTE1LDU2LDIwMywyMDIKLQlwYWRkZAl4bW02LHhtbTcKLQltb3ZkcWEJeG1tMCxbOTYrZWJwXQotCXBhZGRkCXhtbTAseG1tNQotZGIJMTUsNTYsMjAzLDIwOQotCXBzaHVmZAl4bW0wLHhtbTAsMTQKLWRiCTE1LDU2LDIwNSwyNDUKLQltb3ZkcWEJeG1tNyxbMTI4K2VicF0KLWRiCTE1LDU2LDIwMywyMDIKLQltb3ZkcWEJeG1tMCxbMTEyK2VicF0KLQlwYWRkZAl4bW0wLHhtbTYKLQlub3AKLWRiCTE1LDU2LDIwMywyMDkKLQlwc2h1ZmQJeG1tMCx4bW0wLDE0Ci0JY21wCWVheCxlZGkKLQlub3AKLWRiCTE1LDU2LDIwMywyMDIKLQlwYWRkZAl4bW0yLFsxNitlc3BdCi0JcGFkZGQJeG1tMSxbZXNwXQotCWpueglORUFSIEwkMDEwbG9vcF9zaGFleHQKLQlwc2h1ZmQJeG1tMix4bW0yLDE3NwotCXBzaHVmZAl4bW03LHhtbTEsMjcKLQlwc2h1ZmQJeG1tMSx4bW0xLDE3NwotCXB1bnBja2hxZHEJeG1tMSx4bW0yCi1kYgkxMDIsMTUsNTgsMTUsMjE1LDgKLQltb3YJZXNwLERXT1JEIFs0NCtlc3BdCi0JbW92ZHF1CVtlc2ldLHhtbTEKLQltb3ZkcXUJWzE2K2VzaV0seG1tMgotCXBvcAllZGkKLQlwb3AJZXNpCi0JcG9wCWVieAotCXBvcAllYnAKLQlyZXQKLWFsaWduCTMyCiBMJDAwNVNTU0UzOgogCWxlYQllc3AsW2VzcC05Nl0KIAltb3YJZWF4LERXT1JEIFtlc2ldCkBAIC0zMzk2LDkgKzMxOTcsOSBAQAogCW1vdglEV09SRCBbMjQrZXNwXSxlY3gKIAltb3YJRFdPUkQgWzI4K2VzcF0sZXNpCiAJbW92ZHFhCXhtbTcsWzI1NitlYnBdCi0Jam1wCU5FQVIgTCQwMTFncmFuZF9zc3NlMworCWptcAlORUFSIEwkMDEwZ3JhbmRfc3NzZTMKIGFsaWduCTE2Ci1MJDAxMWdyYW5kX3Nzc2UzOgorTCQwMTBncmFuZF9zc3NlMzoKIAltb3ZkcXUJeG1tMCxbZWRpXQogCW1vdmRxdQl4bW0xLFsxNitlZGldCiAJbW92ZHF1CXhtbTIsWzMyK2VkaV0KQEAgLTM0MjEsOSArMzIyMiw5IEBACiAJcGFkZGQJeG1tNyx4bW0zCiAJbW92ZHFhCVs2NCtlc3BdLHhtbTYKIAltb3ZkcWEJWzgwK2VzcF0seG1tNwotCWptcAlORUFSIEwkMDEyc3NzZTNfMDBfNDcKKwlqbXAJTkVBUiBMJDAxMXNzc2UzXzAwXzQ3CiBhbGlnbgkxNgotTCQwMTJzc3NlM18wMF80NzoKK0wkMDExc3NzZTNfMDBfNDc6CiAJYWRkCWVicCw2NAogCW1vdgllY3gsZWR4CiAJbW92ZHFhCXhtbTQseG1tMQpAQCAtNDA2Niw3ICszODY3LDcgQEAKIAlhZGQJZWF4LGVjeAogCW1vdmRxYQlbODArZXNwXSx4bW02CiAJY21wCURXT1JEIFs2NCtlYnBdLDY2MDUxCi0Jam5lCU5FQVIgTCQwMTJzc3NlM18wMF80NworCWpuZQlORUFSIEwkMDExc3NzZTNfMDBfNDcKIAltb3YJZWN4LGVkeAogCXJvcgllZHgsMTQKIAltb3YJZXNpLERXT1JEIFsyMCtlc3BdCkBAIC00NTgwLDEyICs0MzgxLDExOTMgQEAKIAltb3ZkcWEJeG1tNyxbNjQrZWJwXQogCXN1YgllYnAsMTkyCiAJY21wCWVkaSxEV09SRCBbMTA0K2VzcF0KLQlqYglORUFSIEwkMDExZ3JhbmRfc3NzZTMKKwlqYglORUFSIEwkMDEwZ3JhbmRfc3NzZTMKIAltb3YJZXNwLERXT1JEIFsxMDgrZXNwXQogCXBvcAllZGkKIAlwb3AJZXNpCiAJcG9wCWVieAogCXBvcAllYnAKIAlyZXQKK2FsaWduCTMyCitMJDAwNEFWWDoKKwlsZWEJZXNwLFtlc3AtOTZdCisJdnplcm9hbGwKKwltb3YJZWF4LERXT1JEIFtlc2ldCisJbW92CWVieCxEV09SRCBbNCtlc2ldCisJbW92CWVjeCxEV09SRCBbOCtlc2ldCisJbW92CWVkaSxEV09SRCBbMTIrZXNpXQorCW1vdglEV09SRCBbNCtlc3BdLGVieAorCXhvcgllYngsZWN4CisJbW92CURXT1JEIFs4K2VzcF0sZWN4CisJbW92CURXT1JEIFsxMitlc3BdLGVkaQorCW1vdgllZHgsRFdPUkQgWzE2K2VzaV0KKwltb3YJZWRpLERXT1JEIFsyMCtlc2ldCisJbW92CWVjeCxEV09SRCBbMjQrZXNpXQorCW1vdgllc2ksRFdPUkQgWzI4K2VzaV0KKwltb3YJRFdPUkQgWzIwK2VzcF0sZWRpCisJbW92CWVkaSxEV09SRCBbMTAwK2VzcF0KKwltb3YJRFdPUkQgWzI0K2VzcF0sZWN4CisJbW92CURXT1JEIFsyOCtlc3BdLGVzaQorCXZtb3ZkcWEJeG1tNyxbMjU2K2VicF0KKwlqbXAJTkVBUiBMJDAxMmdyYW5kX2F2eAorYWxpZ24JMzIKK0wkMDEyZ3JhbmRfYXZ4OgorCXZtb3ZkcXUJeG1tMCxbZWRpXQorCXZtb3ZkcXUJeG1tMSxbMTYrZWRpXQorCXZtb3ZkcXUJeG1tMixbMzIrZWRpXQorCXZtb3ZkcXUJeG1tMyxbNDgrZWRpXQorCWFkZAllZGksNjQKKwl2cHNodWZiCXhtbTAseG1tMCx4bW03CisJbW92CURXT1JEIFsxMDArZXNwXSxlZGkKKwl2cHNodWZiCXhtbTEseG1tMSx4bW03CisJdnBzaHVmYgl4bW0yLHhtbTIseG1tNworCXZwYWRkZAl4bW00LHhtbTAsW2VicF0KKwl2cHNodWZiCXhtbTMseG1tMyx4bW03CisJdnBhZGRkCXhtbTUseG1tMSxbMTYrZWJwXQorCXZwYWRkZAl4bW02LHhtbTIsWzMyK2VicF0KKwl2cGFkZGQJeG1tNyx4bW0zLFs0OCtlYnBdCisJdm1vdmRxYQlbMzIrZXNwXSx4bW00CisJdm1vdmRxYQlbNDgrZXNwXSx4bW01CisJdm1vdmRxYQlbNjQrZXNwXSx4bW02CisJdm1vdmRxYQlbODArZXNwXSx4bW03CisJam1wCU5FQVIgTCQwMTNhdnhfMDBfNDcKK2FsaWduCTE2CitMJDAxM2F2eF8wMF80NzoKKwlhZGQJZWJwLDY0CisJdnBhbGlnbnIJeG1tNCx4bW0xLHhtbTAsNAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMjArZXNwXQorCXZwYWxpZ25yCXhtbTcseG1tMyx4bW0yLDQKKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzI0K2VzcF0KKwl4b3IJZXNpLGVkaQorCXZwc3JsZAl4bW02LHhtbTQsNworCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzE2K2VzcF0sZWN4CisJdnBhZGRkCXhtbTAseG1tMCx4bW03CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJdnBzcmxkCXhtbTcseG1tNCwzCisJbW92CWVjeCxlYXgKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzQrZXNwXQorCXZwc2xsZAl4bW01LHhtbTQsMTQKKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFtlc3BdLGVheAorCXZweG9yCXhtbTQseG1tNyx4bW02CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzI4K2VzcF0KKwl2cHNodWZkCXhtbTcseG1tMywyNTAKKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJdnBzcmxkCXhtbTYseG1tNiwxMQorCWFkZAllZHgsRFdPUkQgWzMyK2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzEyK2VzcF0KKwlhZGQJZWJ4LGVjeAorCXZwc2xsZAl4bW01LHhtbTUsMTEKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzE2K2VzcF0KKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMjArZXNwXQorCXhvcgllc2ksZWRpCisJdnBzcmxkCXhtbTYseG1tNywxMAorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzEyK2VzcF0sZWN4CisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwl2cHNybHEJeG1tNSx4bW03LDE3CisJbW92CWVjeCxlYngKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgW2VzcF0KKwl2cGFkZGQJeG1tMCx4bW0wLHhtbTQKKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsyOCtlc3BdLGVieAorCXZweG9yCXhtbTYseG1tNix4bW01CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgWzI0K2VzcF0KKwl2cHNybHEJeG1tNyx4bW03LDE5CisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCXZweG9yCXhtbTYseG1tNix4bW03CisJYWRkCWVkeCxEV09SRCBbMzYrZXNwXQorCXhvcgllYXgsZWRpCisJc2hyZAllY3gsZWN4LDIKKwl2cHNodWZkCXhtbTcseG1tNiwxMzIKKwlhZGQJZWF4LGVkeAorCWFkZAllZHgsRFdPUkQgWzgrZXNwXQorCWFkZAllYXgsZWN4CisJdnBzcmxkcQl4bW03LHhtbTcsOAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMTIrZXNwXQorCXZwYWRkZAl4bW0wLHhtbTAseG1tNworCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMTYrZXNwXQorCXhvcgllc2ksZWRpCisJdnBzaHVmZAl4bW03LHhtbTAsODAKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFs4K2VzcF0sZWN4CisJdnBzcmxkCXhtbTYseG1tNywxMAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCXZwc3JscQl4bW01LHhtbTcsMTcKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjgrZXNwXQorCXZweG9yCXhtbTYseG1tNix4bW01CisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMjQrZXNwXSxlYXgKKwl2cHNybHEJeG1tNyx4bW03LDE5CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzIwK2VzcF0KKwl2cHhvcgl4bW02LHhtbTYseG1tNworCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYngsZWF4CisJeG9yCWVjeCxlc2kKKwl2cHNodWZkCXhtbTcseG1tNiwyMzIKKwlhZGQJZWR4LERXT1JEIFs0MCtlc3BdCisJeG9yCWVieCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCXZwc2xsZHEJeG1tNyx4bW03LDgKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzQrZXNwXQorCWFkZAllYngsZWN4CisJdnBhZGRkCXhtbTAseG1tMCx4bW03CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFs4K2VzcF0KKwl2cGFkZGQJeG1tNix4bW0wLFtlYnBdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsxMitlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFs0K2VzcF0sZWN4CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJbW92CWVjeCxlYngKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzI0K2VzcF0KKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsyMCtlc3BdLGVieAorCXhvcgllY3gsZWJ4CisJeG9yCWVieCxlZGkKKwlhZGQJZWR4LERXT1JEIFsxNitlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzQ0K2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFtlc3BdCisJYWRkCWVheCxlY3gKKwl2bW92ZHFhCVszMitlc3BdLHhtbTYKKwl2cGFsaWducgl4bW00LHhtbTIseG1tMSw0CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFs0K2VzcF0KKwl2cGFsaWducgl4bW03LHhtbTAseG1tMyw0CisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFs4K2VzcF0KKwl4b3IJZXNpLGVkaQorCXZwc3JsZAl4bW02LHhtbTQsNworCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgW2VzcF0sZWN4CisJdnBhZGRkCXhtbTEseG1tMSx4bW03CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJdnBzcmxkCXhtbTcseG1tNCwzCisJbW92CWVjeCxlYXgKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzIwK2VzcF0KKwl2cHNsbGQJeG1tNSx4bW00LDE0CisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMTYrZXNwXSxlYXgKKwl2cHhvcgl4bW00LHhtbTcseG1tNgorCXhvcgllY3gsZWF4CisJeG9yCWVheCxlZGkKKwlhZGQJZWR4LERXT1JEIFsxMitlc3BdCisJdnBzaHVmZAl4bW03LHhtbTAsMjUwCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVieCxlYXgKKwl4b3IJZWN4LGVzaQorCXZwc3JsZAl4bW02LHhtbTYsMTEKKwlhZGQJZWR4LERXT1JEIFs0OCtlc3BdCisJeG9yCWVieCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCXZweG9yCXhtbTQseG1tNCx4bW01CisJYWRkCWVieCxlZHgKKwlhZGQJZWR4LERXT1JEIFsyOCtlc3BdCisJYWRkCWVieCxlY3gKKwl2cHNsbGQJeG1tNSx4bW01LDExCisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFtlc3BdCisJdnB4b3IJeG1tNCx4bW00LHhtbTYKKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzQrZXNwXQorCXhvcgllc2ksZWRpCisJdnBzcmxkCXhtbTYseG1tNywxMAorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzI4K2VzcF0sZWN4CisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwl2cHNybHEJeG1tNSx4bW03LDE3CisJbW92CWVjeCxlYngKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzE2K2VzcF0KKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTQKKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsxMitlc3BdLGVieAorCXZweG9yCXhtbTYseG1tNix4bW01CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgWzgrZXNwXQorCXZwc3JscQl4bW03LHhtbTcsMTkKKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlhZGQJZWR4LERXT1JEIFs1Mitlc3BdCisJeG9yCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCXZwc2h1ZmQJeG1tNyx4bW02LDEzMgorCWFkZAllYXgsZWR4CisJYWRkCWVkeCxEV09SRCBbMjQrZXNwXQorCWFkZAllYXgsZWN4CisJdnBzcmxkcQl4bW03LHhtbTcsOAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMjgrZXNwXQorCXZwYWRkZAl4bW0xLHhtbTEseG1tNworCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbZXNwXQorCXhvcgllc2ksZWRpCisJdnBzaHVmZAl4bW03LHhtbTEsODAKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsyNCtlc3BdLGVjeAorCXZwc3JsZAl4bW02LHhtbTcsMTAKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwl2cHNybHEJeG1tNSx4bW03LDE3CisJbW92CWVjeCxlYXgKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzEyK2VzcF0KKwl2cHhvcgl4bW02LHhtbTYseG1tNQorCW1vdgllc2ksZWF4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzgrZXNwXSxlYXgKKwl2cHNybHEJeG1tNyx4bW03LDE5CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzQrZXNwXQorCXZweG9yCXhtbTYseG1tNix4bW03CisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVieCxlYXgKKwl4b3IJZWN4LGVzaQorCXZwc2h1ZmQJeG1tNyx4bW02LDIzMgorCWFkZAllZHgsRFdPUkQgWzU2K2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJdnBzbGxkcQl4bW03LHhtbTcsOAorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbMjArZXNwXQorCWFkZAllYngsZWN4CisJdnBhZGRkCXhtbTEseG1tMSx4bW03CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyNCtlc3BdCisJdnBhZGRkCXhtbTYseG1tMSxbMTYrZWJwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMjgrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMjArZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbOCtlc3BdCisJbW92CWVzaSxlYngKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbNCtlc3BdLGVieAorCXhvcgllY3gsZWJ4CisJeG9yCWVieCxlZGkKKwlhZGQJZWR4LERXT1JEIFtlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzYwK2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFsxNitlc3BdCisJYWRkCWVheCxlY3gKKwl2bW92ZHFhCVs0OCtlc3BdLHhtbTYKKwl2cGFsaWducgl4bW00LHhtbTMseG1tMiw0CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyMCtlc3BdCisJdnBhbGlnbnIJeG1tNyx4bW0xLHhtbTAsNAorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCXhvcgllc2ksZWRpCisJdnBzcmxkCXhtbTYseG1tNCw3CisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMTYrZXNwXSxlY3gKKwl2cGFkZGQJeG1tMix4bW0yLHhtbTcKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwl2cHNybGQJeG1tNyx4bW00LDMKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbNCtlc3BdCisJdnBzbGxkCXhtbTUseG1tNCwxNAorCW1vdgllc2ksZWF4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgW2VzcF0sZWF4CisJdnB4b3IJeG1tNCx4bW03LHhtbTYKKwl4b3IJZWN4LGVheAorCXhvcgllYXgsZWRpCisJYWRkCWVkeCxEV09SRCBbMjgrZXNwXQorCXZwc2h1ZmQJeG1tNyx4bW0xLDI1MAorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYngsZWF4CisJeG9yCWVjeCxlc2kKKwl2cHNybGQJeG1tNix4bW02LDExCisJYWRkCWVkeCxEV09SRCBbNjQrZXNwXQorCXhvcgllYngsZWRpCisJc2hyZAllY3gsZWN4LDIKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbMTIrZXNwXQorCWFkZAllYngsZWN4CisJdnBzbGxkCXhtbTUseG1tNSwxMQorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMTYrZXNwXQorCXZweG9yCXhtbTQseG1tNCx4bW02CisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsyMCtlc3BdCisJeG9yCWVzaSxlZGkKKwl2cHNybGQJeG1tNix4bW03LDEwCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMTIrZXNwXSxlY3gKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCXZwc3JscQl4bW01LHhtbTcsMTcKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbZXNwXQorCXZwYWRkZAl4bW0yLHhtbTIseG1tNAorCW1vdgllc2ksZWJ4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzI4K2VzcF0sZWJ4CisJdnB4b3IJeG1tNix4bW02LHhtbTUKKwl4b3IJZWN4LGVieAorCXhvcgllYngsZWRpCisJYWRkCWVkeCxEV09SRCBbMjQrZXNwXQorCXZwc3JscQl4bW03LHhtbTcsMTkKKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlhZGQJZWR4LERXT1JEIFs2OCtlc3BdCisJeG9yCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCXZwc2h1ZmQJeG1tNyx4bW02LDEzMgorCWFkZAllYXgsZWR4CisJYWRkCWVkeCxEV09SRCBbOCtlc3BdCisJYWRkCWVheCxlY3gKKwl2cHNybGRxCXhtbTcseG1tNyw4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsxMitlc3BdCisJdnBhZGRkCXhtbTIseG1tMix4bW03CisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsxNitlc3BdCisJeG9yCWVzaSxlZGkKKwl2cHNodWZkCXhtbTcseG1tMiw4MAorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzgrZXNwXSxlY3gKKwl2cHNybGQJeG1tNix4bW03LDEwCisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJdnBzcmxxCXhtbTUseG1tNywxNworCW1vdgllY3gsZWF4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFsyOCtlc3BdCisJdnB4b3IJeG1tNix4bW02LHhtbTUKKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsyNCtlc3BdLGVheAorCXZwc3JscQl4bW03LHhtbTcsMTkKKwl4b3IJZWN4LGVheAorCXhvcgllYXgsZWRpCisJYWRkCWVkeCxEV09SRCBbMjArZXNwXQorCXZweG9yCXhtbTYseG1tNix4bW03CisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVieCxlYXgKKwl4b3IJZWN4LGVzaQorCXZwc2h1ZmQJeG1tNyx4bW02LDIzMgorCWFkZAllZHgsRFdPUkQgWzcyK2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJdnBzbGxkcQl4bW03LHhtbTcsOAorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbNCtlc3BdCisJYWRkCWVieCxlY3gKKwl2cGFkZGQJeG1tMix4bW0yLHhtbTcKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzgrZXNwXQorCXZwYWRkZAl4bW02LHhtbTIsWzMyK2VicF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzEyK2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzQrZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCW1vdgllc2ksZWJ4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzIwK2VzcF0sZWJ4CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgWzE2K2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbNzYrZXNwXQorCXhvcgllYXgsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWF4LGVkeAorCWFkZAllZHgsRFdPUkQgW2VzcF0KKwlhZGQJZWF4LGVjeAorCXZtb3ZkcWEJWzY0K2VzcF0seG1tNgorCXZwYWxpZ25yCXhtbTQseG1tMCx4bW0zLDQKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzQrZXNwXQorCXZwYWxpZ25yCXhtbTcseG1tMix4bW0xLDQKKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzgrZXNwXQorCXhvcgllc2ksZWRpCisJdnBzcmxkCXhtbTYseG1tNCw3CisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbZXNwXSxlY3gKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTcKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwl2cHNybGQJeG1tNyx4bW00LDMKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjArZXNwXQorCXZwc2xsZAl4bW01LHhtbTQsMTQKKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsxNitlc3BdLGVheAorCXZweG9yCXhtbTQseG1tNyx4bW02CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzEyK2VzcF0KKwl2cHNodWZkCXhtbTcseG1tMiwyNTAKKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJdnBzcmxkCXhtbTYseG1tNiwxMQorCWFkZAllZHgsRFdPUkQgWzgwK2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzI4K2VzcF0KKwlhZGQJZWJ4LGVjeAorCXZwc2xsZAl4bW01LHhtbTUsMTEKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgW2VzcF0KKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbNCtlc3BdCisJeG9yCWVzaSxlZGkKKwl2cHNybGQJeG1tNix4bW03LDEwCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMjgrZXNwXSxlY3gKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCXZwc3JscQl4bW01LHhtbTcsMTcKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMTYrZXNwXQorCXZwYWRkZAl4bW0zLHhtbTMseG1tNAorCW1vdgllc2ksZWJ4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzEyK2VzcF0sZWJ4CisJdnB4b3IJeG1tNix4bW02LHhtbTUKKwl4b3IJZWN4LGVieAorCXhvcgllYngsZWRpCisJYWRkCWVkeCxEV09SRCBbOCtlc3BdCisJdnBzcmxxCXhtbTcseG1tNywxOQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYXgsZWJ4CisJeG9yCWVjeCxlc2kKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCWFkZAllZHgsRFdPUkQgWzg0K2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJdnBzaHVmZAl4bW03LHhtbTYsMTMyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFsyNCtlc3BdCisJYWRkCWVheCxlY3gKKwl2cHNybGRxCXhtbTcseG1tNyw4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyOCtlc3BdCisJdnBhZGRkCXhtbTMseG1tMyx4bW03CisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFtlc3BdCisJeG9yCWVzaSxlZGkKKwl2cHNodWZkCXhtbTcseG1tMyw4MAorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzI0K2VzcF0sZWN4CisJdnBzcmxkCXhtbTYseG1tNywxMAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCXZwc3JscQl4bW01LHhtbTcsMTcKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMTIrZXNwXQorCXZweG9yCXhtbTYseG1tNix4bW01CisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbOCtlc3BdLGVheAorCXZwc3JscQl4bW03LHhtbTcsMTkKKwl4b3IJZWN4LGVheAorCXhvcgllYXgsZWRpCisJYWRkCWVkeCxEV09SRCBbNCtlc3BdCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJdnBzaHVmZAl4bW03LHhtbTYsMjMyCisJYWRkCWVkeCxEV09SRCBbODgrZXNwXQorCXhvcgllYngsZWRpCisJc2hyZAllY3gsZWN4LDIKKwl2cHNsbGRxCXhtbTcseG1tNyw4CisJYWRkCWVieCxlZHgKKwlhZGQJZWR4LERXT1JEIFsyMCtlc3BdCisJYWRkCWVieCxlY3gKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTcKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzI0K2VzcF0KKwl2cGFkZGQJeG1tNix4bW0zLFs0OCtlYnBdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsyOCtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsyMCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWJ4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFs4K2VzcF0KKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFs0K2VzcF0sZWJ4CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgW2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbOTIrZXNwXQorCXhvcgllYXgsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWF4LGVkeAorCWFkZAllZHgsRFdPUkQgWzE2K2VzcF0KKwlhZGQJZWF4LGVjeAorCXZtb3ZkcWEJWzgwK2VzcF0seG1tNgorCWNtcAlEV09SRCBbNjQrZWJwXSw2NjA1MQorCWpuZQlORUFSIEwkMDEzYXZ4XzAwXzQ3CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyMCtlc3BdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsyNCtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsxNitlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWF4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFs0K2VzcF0KKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFtlc3BdLGVheAorCXhvcgllY3gsZWF4CisJeG9yCWVheCxlZGkKKwlhZGQJZWR4LERXT1JEIFsyOCtlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVieCxlYXgKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzMyK2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVieCxlZHgKKwlhZGQJZWR4LERXT1JEIFsxMitlc3BdCisJYWRkCWVieCxlY3gKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzE2K2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzIwK2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzEyK2VzcF0sZWN4CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJbW92CWVjeCxlYngKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgW2VzcF0KKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsyOCtlc3BdLGVieAorCXhvcgllY3gsZWJ4CisJeG9yCWVieCxlZGkKKwlhZGQJZWR4LERXT1JEIFsyNCtlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzM2K2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFs4K2VzcF0KKwlhZGQJZWF4LGVjeAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMTIrZXNwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMTYrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbOCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWF4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFsyOCtlc3BdCisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMjQrZXNwXSxlYXgKKwl4b3IJZWN4LGVheAorCXhvcgllYXgsZWRpCisJYWRkCWVkeCxEV09SRCBbMjArZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYngsZWF4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs0MCtlc3BdCisJeG9yCWVieCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbNCtlc3BdCisJYWRkCWVieCxlY3gKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzgrZXNwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMTIrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbNCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWJ4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFsyNCtlc3BdCisJbW92CWVzaSxlYngKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMjArZXNwXSxlYngKKwl4b3IJZWN4LGVieAorCXhvcgllYngsZWRpCisJYWRkCWVkeCxEV09SRCBbMTYrZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYXgsZWJ4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs0NCtlc3BdCisJeG9yCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYXgsZWR4CisJYWRkCWVkeCxEV09SRCBbZXNwXQorCWFkZAllYXgsZWN4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFs0K2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzgrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjArZXNwXQorCW1vdgllc2ksZWF4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzE2K2VzcF0sZWF4CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzEyK2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbNDgrZXNwXQorCXhvcgllYngsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzI4K2VzcF0KKwlhZGQJZWJ4LGVjeAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbZXNwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbNCtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsyOCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWJ4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFsxNitlc3BdCisJbW92CWVzaSxlYngKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMTIrZXNwXSxlYngKKwl4b3IJZWN4LGVieAorCXhvcgllYngsZWRpCisJYWRkCWVkeCxEV09SRCBbOCtlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzUyK2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFsyNCtlc3BdCisJYWRkCWVheCxlY3gKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzI4K2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgW2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzI0K2VzcF0sZWN4CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJbW92CWVjeCxlYXgKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzEyK2VzcF0KKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFs4K2VzcF0sZWF4CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzQrZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYngsZWF4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs1Nitlc3BdCisJeG9yCWVieCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbMjArZXNwXQorCWFkZAllYngsZWN4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyNCtlc3BdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsyOCtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsyMCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWJ4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFs4K2VzcF0KKwltb3YJZXNpLGVieAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFs0K2VzcF0sZWJ4CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgW2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbNjArZXNwXQorCXhvcgllYXgsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWF4LGVkeAorCWFkZAllZHgsRFdPUkQgWzE2K2VzcF0KKwlhZGQJZWF4LGVjeAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMjArZXNwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMTYrZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbNCtlc3BdCisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbZXNwXSxlYXgKKwl4b3IJZWN4LGVheAorCXhvcgllYXgsZWRpCisJYWRkCWVkeCxEV09SRCBbMjgrZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYngsZWF4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs2NCtlc3BdCisJeG9yCWVieCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYngsZWR4CisJYWRkCWVkeCxEV09SRCBbMTIrZXNwXQorCWFkZAllYngsZWN4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsxNitlc3BdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFsyMCtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsxMitlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWJ4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFtlc3BdCisJbW92CWVzaSxlYngKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbMjgrZXNwXSxlYngKKwl4b3IJZWN4LGVieAorCXhvcgllYngsZWRpCisJYWRkCWVkeCxEV09SRCBbMjQrZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYXgsZWJ4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs2OCtlc3BdCisJeG9yCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYXgsZWR4CisJYWRkCWVkeCxEV09SRCBbOCtlc3BdCisJYWRkCWVheCxlY3gKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgWzEyK2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzE2K2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzgrZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVheAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjgrZXNwXQorCW1vdgllc2ksZWF4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzI0K2VzcF0sZWF4CisJeG9yCWVjeCxlYXgKKwl4b3IJZWF4LGVkaQorCWFkZAllZHgsRFdPUkQgWzIwK2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbNzIrZXNwXQorCXhvcgllYngsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzQrZXNwXQorCWFkZAllYngsZWN4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFs4K2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzEyK2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgWzQrZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMjQrZXNwXQorCW1vdgllc2ksZWJ4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzIwK2VzcF0sZWJ4CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgWzE2K2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWF4LGVieAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbNzYrZXNwXQorCXhvcgllYXgsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWF4LGVkeAorCWFkZAllZHgsRFdPUkQgW2VzcF0KKwlhZGQJZWF4LGVjeAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbNCtlc3BdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFs4K2VzcF0KKwl4b3IJZXNpLGVkaQorCXNocmQJZWR4LGVkeCw1CisJYW5kCWVzaSxlY3gKKwltb3YJRFdPUkQgW2VzcF0sZWN4CisJeG9yCWVkeCxlY3gKKwl4b3IJZWRpLGVzaQorCXNocmQJZWR4LGVkeCw2CisJbW92CWVjeCxlYXgKKwlhZGQJZWR4LGVkaQorCW1vdgllZGksRFdPUkQgWzIwK2VzcF0KKwltb3YJZXNpLGVheAorCXNocmQJZWN4LGVjeCw5CisJbW92CURXT1JEIFsxNitlc3BdLGVheAorCXhvcgllY3gsZWF4CisJeG9yCWVheCxlZGkKKwlhZGQJZWR4LERXT1JEIFsxMitlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVieCxlYXgKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzgwK2VzcF0KKwl4b3IJZWJ4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVieCxlZHgKKwlhZGQJZWR4LERXT1JEIFsyOCtlc3BdCisJYWRkCWVieCxlY3gKKwltb3YJZWN4LGVkeAorCXNocmQJZWR4LGVkeCwxNAorCW1vdgllc2ksRFdPUkQgW2VzcF0KKwl4b3IJZWR4LGVjeAorCW1vdgllZGksRFdPUkQgWzQrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMjgrZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbMTYrZXNwXQorCW1vdgllc2ksZWJ4CisJc2hyZAllY3gsZWN4LDkKKwltb3YJRFdPUkQgWzEyK2VzcF0sZWJ4CisJeG9yCWVjeCxlYngKKwl4b3IJZWJ4LGVkaQorCWFkZAllZHgsRFdPUkQgWzgrZXNwXQorCXNocmQJZWN4LGVjeCwxMQorCWFuZAllYXgsZWJ4CisJeG9yCWVjeCxlc2kKKwlhZGQJZWR4LERXT1JEIFs4NCtlc3BdCisJeG9yCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsMgorCWFkZAllYXgsZWR4CisJYWRkCWVkeCxEV09SRCBbMjQrZXNwXQorCWFkZAllYXgsZWN4CisJbW92CWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsMTQKKwltb3YJZXNpLERXT1JEIFsyOCtlc3BdCisJeG9yCWVkeCxlY3gKKwltb3YJZWRpLERXT1JEIFtlc3BdCisJeG9yCWVzaSxlZGkKKwlzaHJkCWVkeCxlZHgsNQorCWFuZAllc2ksZWN4CisJbW92CURXT1JEIFsyNCtlc3BdLGVjeAorCXhvcgllZHgsZWN4CisJeG9yCWVkaSxlc2kKKwlzaHJkCWVkeCxlZHgsNgorCW1vdgllY3gsZWF4CisJYWRkCWVkeCxlZGkKKwltb3YJZWRpLERXT1JEIFsxMitlc3BdCisJbW92CWVzaSxlYXgKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbOCtlc3BdLGVheAorCXhvcgllY3gsZWF4CisJeG9yCWVheCxlZGkKKwlhZGQJZWR4LERXT1JEIFs0K2VzcF0KKwlzaHJkCWVjeCxlY3gsMTEKKwlhbmQJZWJ4LGVheAorCXhvcgllY3gsZXNpCisJYWRkCWVkeCxEV09SRCBbODgrZXNwXQorCXhvcgllYngsZWRpCisJc2hyZAllY3gsZWN4LDIKKwlhZGQJZWJ4LGVkeAorCWFkZAllZHgsRFdPUkQgWzIwK2VzcF0KKwlhZGQJZWJ4LGVjeAorCW1vdgllY3gsZWR4CisJc2hyZAllZHgsZWR4LDE0CisJbW92CWVzaSxEV09SRCBbMjQrZXNwXQorCXhvcgllZHgsZWN4CisJbW92CWVkaSxEV09SRCBbMjgrZXNwXQorCXhvcgllc2ksZWRpCisJc2hyZAllZHgsZWR4LDUKKwlhbmQJZXNpLGVjeAorCW1vdglEV09SRCBbMjArZXNwXSxlY3gKKwl4b3IJZWR4LGVjeAorCXhvcgllZGksZXNpCisJc2hyZAllZHgsZWR4LDYKKwltb3YJZWN4LGVieAorCWFkZAllZHgsZWRpCisJbW92CWVkaSxEV09SRCBbOCtlc3BdCisJbW92CWVzaSxlYngKKwlzaHJkCWVjeCxlY3gsOQorCW1vdglEV09SRCBbNCtlc3BdLGVieAorCXhvcgllY3gsZWJ4CisJeG9yCWVieCxlZGkKKwlhZGQJZWR4LERXT1JEIFtlc3BdCisJc2hyZAllY3gsZWN4LDExCisJYW5kCWVheCxlYngKKwl4b3IJZWN4LGVzaQorCWFkZAllZHgsRFdPUkQgWzkyK2VzcF0KKwl4b3IJZWF4LGVkaQorCXNocmQJZWN4LGVjeCwyCisJYWRkCWVheCxlZHgKKwlhZGQJZWR4LERXT1JEIFsxNitlc3BdCisJYWRkCWVheCxlY3gKKwltb3YJZXNpLERXT1JEIFs5Nitlc3BdCisJeG9yCWVieCxlZGkKKwltb3YJZWN4LERXT1JEIFsxMitlc3BdCisJYWRkCWVheCxEV09SRCBbZXNpXQorCWFkZAllYngsRFdPUkQgWzQrZXNpXQorCWFkZAllZGksRFdPUkQgWzgrZXNpXQorCWFkZAllY3gsRFdPUkQgWzEyK2VzaV0KKwltb3YJRFdPUkQgW2VzaV0sZWF4CisJbW92CURXT1JEIFs0K2VzaV0sZWJ4CisJbW92CURXT1JEIFs4K2VzaV0sZWRpCisJbW92CURXT1JEIFsxMitlc2ldLGVjeAorCW1vdglEV09SRCBbNCtlc3BdLGVieAorCXhvcgllYngsZWRpCisJbW92CURXT1JEIFs4K2VzcF0sZWRpCisJbW92CURXT1JEIFsxMitlc3BdLGVjeAorCW1vdgllZGksRFdPUkQgWzIwK2VzcF0KKwltb3YJZWN4LERXT1JEIFsyNCtlc3BdCisJYWRkCWVkeCxEV09SRCBbMTYrZXNpXQorCWFkZAllZGksRFdPUkQgWzIwK2VzaV0KKwlhZGQJZWN4LERXT1JEIFsyNCtlc2ldCisJbW92CURXT1JEIFsxNitlc2ldLGVkeAorCW1vdglEV09SRCBbMjArZXNpXSxlZGkKKwltb3YJRFdPUkQgWzIwK2VzcF0sZWRpCisJbW92CWVkaSxEV09SRCBbMjgrZXNwXQorCW1vdglEV09SRCBbMjQrZXNpXSxlY3gKKwlhZGQJZWRpLERXT1JEIFsyOCtlc2ldCisJbW92CURXT1JEIFsyNCtlc3BdLGVjeAorCW1vdglEV09SRCBbMjgrZXNpXSxlZGkKKwltb3YJRFdPUkQgWzI4K2VzcF0sZWRpCisJbW92CWVkaSxEV09SRCBbMTAwK2VzcF0KKwl2bW92ZHFhCXhtbTcsWzY0K2VicF0KKwlzdWIJZWJwLDE5MgorCWNtcAllZGksRFdPUkQgWzEwNCtlc3BdCisJamIJTkVBUiBMJDAxMmdyYW5kX2F2eAorCW1vdgllc3AsRFdPUkQgWzEwOCtlc3BdCisJdnplcm9hbGwKKwlwb3AJZWRpCisJcG9wCWVzaQorCXBvcAllYngKKwlwb3AJZWJwCisJcmV0CiBzZWdtZW50CS5ic3MKIGNvbW1vbglfT1BFTlNTTF9pYTMyY2FwX1AgMTYKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5hc20gYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vYm4vcnNhei14ODZfNjQuYXNtCmluZGV4IDA0ZDVlMzkuLjcyZWM1MDUgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi9yc2F6LXg4Nl82NC5hc20KKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2JuL3JzYXoteDg2XzY0LmFzbQpAQCAtNTA0LDQ4ICs1MDQsMTA0IEBACiAJcHVzaAlyMTQKIAlwdXNoCXIxNQogCi0JbW92CXI5ZCxyOWQKLQlzdWIJcnNwLDEyOCsyNAorCXN1Yglyc3AsMzI4CisJbW92YXBzCVhNTVdPUkRbMTYwK3JzcF0seG1tNgorCW1vdmFwcwlYTU1XT1JEWzE3Nityc3BdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsxOTIrcnNwXSx4bW04CisJbW92YXBzCVhNTVdPUkRbMjA4K3JzcF0seG1tOQorCW1vdmFwcwlYTU1XT1JEWzIyNCtyc3BdLHhtbTEwCisJbW92YXBzCVhNTVdPUkRbMjQwK3JzcF0seG1tMTEKKwltb3ZhcHMJWE1NV09SRFsyNTYrcnNwXSx4bW0xMgorCW1vdmFwcwlYTU1XT1JEWzI3Mityc3BdLHhtbTEzCisJbW92YXBzCVhNTVdPUkRbMjg4K3JzcF0seG1tMTQKKwltb3ZhcHMJWE1NV09SRFszMDQrcnNwXSx4bW0xNQogJEwkbXVsX2dhdGhlcjRfYm9keToKLQltb3YJZWF4LERXT1JEWzY0K3I5KjQrcmR4XQotREIJMTAyLDcyLDE1LDExMCwxOTkKLQltb3YJZWJ4LERXT1JEW3I5KjQrcmR4XQotREIJMTAyLDcyLDE1LDExMCwyMDEKLQltb3YJUVdPUkRbMTI4K3JzcF0scjgKKwltb3ZkCXhtbTgscjlkCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKCRMJGluYysxNikpXQorCW1vdmRxYQl4bW0wLFhNTVdPUkRbJEwkaW5jXQogCi0Jc2hsCXJheCwzMgotCW9yCXJieCxyYXgKKwlwc2h1ZmQJeG1tOCx4bW04LDAKKwltb3ZkcWEJeG1tNyx4bW0xCisJbW92ZHFhCXhtbTIseG1tMQorCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW04CisJbW92ZHFhCXhtbTMseG1tNworCXBhZGRkCXhtbTIseG1tMQorCXBjbXBlcWQJeG1tMSx4bW04CisJbW92ZHFhCXhtbTQseG1tNworCXBhZGRkCXhtbTMseG1tMgorCXBjbXBlcWQJeG1tMix4bW04CisJbW92ZHFhCXhtbTUseG1tNworCXBhZGRkCXhtbTQseG1tMworCXBjbXBlcWQJeG1tMyx4bW04CisJbW92ZHFhCXhtbTYseG1tNworCXBhZGRkCXhtbTUseG1tNAorCXBjbXBlcWQJeG1tNCx4bW04CisJcGFkZGQJeG1tNix4bW01CisJcGNtcGVxZAl4bW01LHhtbTgKKwlwYWRkZAl4bW03LHhtbTYKKwlwY21wZXFkCXhtbTYseG1tOAorCXBjbXBlcWQJeG1tNyx4bW04CisKKwltb3ZkcWEJeG1tOCxYTU1XT1JEW3JkeF0KKwltb3ZkcWEJeG1tOSxYTU1XT1JEWzE2K3JkeF0KKwltb3ZkcWEJeG1tMTAsWE1NV09SRFszMityZHhdCisJbW92ZHFhCXhtbTExLFhNTVdPUkRbNDgrcmR4XQorCXBhbmQJeG1tOCx4bW0wCisJbW92ZHFhCXhtbTEyLFhNTVdPUkRbNjQrcmR4XQorCXBhbmQJeG1tOSx4bW0xCisJbW92ZHFhCXhtbTEzLFhNTVdPUkRbODArcmR4XQorCXBhbmQJeG1tMTAseG1tMgorCW1vdmRxYQl4bW0xNCxYTU1XT1JEWzk2K3JkeF0KKwlwYW5kCXhtbTExLHhtbTMKKwltb3ZkcWEJeG1tMTUsWE1NV09SRFsxMTIrcmR4XQorCWxlYQlyYnAsWzEyOCtyZHhdCisJcGFuZAl4bW0xMix4bW00CisJcGFuZAl4bW0xMyx4bW01CisJcGFuZAl4bW0xNCx4bW02CisJcGFuZAl4bW0xNSx4bW03CisJcG9yCXhtbTgseG1tMTAKKwlwb3IJeG1tOSx4bW0xMQorCXBvcgl4bW04LHhtbTEyCisJcG9yCXhtbTkseG1tMTMKKwlwb3IJeG1tOCx4bW0xNAorCXBvcgl4bW05LHhtbTE1CisKKwlwb3IJeG1tOCx4bW05CisJcHNodWZkCXhtbTkseG1tOCwweDRlCisJcG9yCXhtbTgseG1tOQorREIJMTAyLDc2LDE1LDEyNiwxOTUKKworCW1vdglRV09SRFsxMjgrcnNwXSxyOAorCW1vdglRV09SRFsoKDEyOCs4KSkrcnNwXSxyZGkKKwltb3YJUVdPUkRbKCgxMjgrMTYpKStyc3BdLHJjeAorCiAJbW92CXJheCxRV09SRFtyc2ldCiAJbW92CXJjeCxRV09SRFs4K3JzaV0KLQlsZWEJcmJwLFsxMjgrcjkqNCtyZHhdCiAJbXVsCXJieAogCW1vdglRV09SRFtyc3BdLHJheAogCW1vdglyYXgscmN4CiAJbW92CXI4LHJkeAogCiAJbXVsCXJieAotCW1vdmQJeG1tNCxEV09SRFtyYnBdCiAJYWRkCXI4LHJheAogCW1vdglyYXgsUVdPUkRbMTYrcnNpXQogCW1vdglyOSxyZHgKIAlhZGMJcjksMAogCiAJbXVsCXJieAotCW1vdmQJeG1tNSxEV09SRFs2NCtyYnBdCiAJYWRkCXI5LHJheAogCW1vdglyYXgsUVdPUkRbMjQrcnNpXQogCW1vdglyMTAscmR4CiAJYWRjCXIxMCwwCiAKIAltdWwJcmJ4Ci0JcHNsbGRxCXhtbTUsNAogCWFkZAlyMTAscmF4CiAJbW92CXJheCxRV09SRFszMityc2ldCiAJbW92CXIxMSxyZHgKIAlhZGMJcjExLDAKIAogCW11bAlyYngKLQlwb3IJeG1tNCx4bW01CiAJYWRkCXIxMSxyYXgKIAltb3YJcmF4LFFXT1JEWzQwK3JzaV0KIAltb3YJcjEyLHJkeApAQCAtNTU4LDE0ICs2MTQsMTIgQEAKIAlhZGMJcjEzLDAKIAogCW11bAlyYngKLQlsZWEJcmJwLFsxMjgrcmJwXQogCWFkZAlyMTMscmF4CiAJbW92CXJheCxRV09SRFs1Nityc2ldCiAJbW92CXIxNCxyZHgKIAlhZGMJcjE0LDAKIAogCW11bAlyYngKLURCCTEwMiw3MiwxNSwxMjYsMjI3CiAJYWRkCXIxNCxyYXgKIAltb3YJcmF4LFFXT1JEW3JzaV0KIAltb3YJcjE1LHJkeApAQCAtNTc3LDYgKzYzMSwzNSBAQAogCiBBTElHTgkzMgogJEwkb29wX211bF9nYXRoZXI6CisJbW92ZHFhCXhtbTgsWE1NV09SRFtyYnBdCisJbW92ZHFhCXhtbTksWE1NV09SRFsxNityYnBdCisJbW92ZHFhCXhtbTEwLFhNTVdPUkRbMzIrcmJwXQorCW1vdmRxYQl4bW0xMSxYTU1XT1JEWzQ4K3JicF0KKwlwYW5kCXhtbTgseG1tMAorCW1vdmRxYQl4bW0xMixYTU1XT1JEWzY0K3JicF0KKwlwYW5kCXhtbTkseG1tMQorCW1vdmRxYQl4bW0xMyxYTU1XT1JEWzgwK3JicF0KKwlwYW5kCXhtbTEwLHhtbTIKKwltb3ZkcWEJeG1tMTQsWE1NV09SRFs5NityYnBdCisJcGFuZAl4bW0xMSx4bW0zCisJbW92ZHFhCXhtbTE1LFhNTVdPUkRbMTEyK3JicF0KKwlsZWEJcmJwLFsxMjgrcmJwXQorCXBhbmQJeG1tMTIseG1tNAorCXBhbmQJeG1tMTMseG1tNQorCXBhbmQJeG1tMTQseG1tNgorCXBhbmQJeG1tMTUseG1tNworCXBvcgl4bW04LHhtbTEwCisJcG9yCXhtbTkseG1tMTEKKwlwb3IJeG1tOCx4bW0xMgorCXBvcgl4bW05LHhtbTEzCisJcG9yCXhtbTgseG1tMTQKKwlwb3IJeG1tOSx4bW0xNQorCisJcG9yCXhtbTgseG1tOQorCXBzaHVmZAl4bW05LHhtbTgsMHg0ZQorCXBvcgl4bW04LHhtbTkKK0RCCTEwMiw3NiwxNSwxMjYsMTk1CisKIAltdWwJcmJ4CiAJYWRkCXI4LHJheAogCW1vdglyYXgsUVdPUkRbOCtyc2ldCkBAIC01ODUsNyArNjY4LDYgQEAKIAlhZGMJcjgsMAogCiAJbXVsCXJieAotCW1vdmQJeG1tNCxEV09SRFtyYnBdCiAJYWRkCXI5LHJheAogCW1vdglyYXgsUVdPUkRbMTYrcnNpXQogCWFkYwlyZHgsMApAQCAtNTk0LDcgKzY3Niw2IEBACiAJYWRjCXI5LDAKIAogCW11bAlyYngKLQltb3ZkCXhtbTUsRFdPUkRbNjQrcmJwXQogCWFkZAlyMTAscmF4CiAJbW92CXJheCxRV09SRFsyNCtyc2ldCiAJYWRjCXJkeCwwCkBAIC02MDMsNyArNjg0LDYgQEAKIAlhZGMJcjEwLDAKIAogCW11bAlyYngKLQlwc2xsZHEJeG1tNSw0CiAJYWRkCXIxMSxyYXgKIAltb3YJcmF4LFFXT1JEWzMyK3JzaV0KIAlhZGMJcmR4LDAKQEAgLTYxMiw3ICs2OTIsNiBAQAogCWFkYwlyMTEsMAogCiAJbXVsCXJieAotCXBvcgl4bW00LHhtbTUKIAlhZGQJcjEyLHJheAogCW1vdglyYXgsUVdPUkRbNDArcnNpXQogCWFkYwlyZHgsMApAQCAtNjM3LDcgKzcxNiw2IEBACiAJYWRjCXIxNCwwCiAKIAltdWwJcmJ4Ci1EQgkxMDIsNzIsMTUsMTI2LDIyNwogCWFkZAlyMTUscmF4CiAJbW92CXJheCxRV09SRFtyc2ldCiAJYWRjCXJkeCwwCkBAIC02NDUsNyArNzIzLDYgQEAKIAltb3YJcjE1LHJkeAogCWFkYwlyMTUsMAogCi0JbGVhCXJicCxbMTI4K3JicF0KIAlsZWEJcmRpLFs4K3JkaV0KIAogCWRlYwllY3gKQEAgLTY2MCw4ICs3MzcsOCBAQAogCW1vdglRV09SRFs0OCtyZGldLHIxNAogCW1vdglRV09SRFs1NityZGldLHIxNQogCi1EQgkxMDIsNzIsMTUsMTI2LDE5OQotREIJMTAyLDcyLDE1LDEyNiwyMDUKKwltb3YJcmRpLFFXT1JEWygoMTI4KzgpKStyc3BdCisJbW92CXJicCxRV09SRFsoKDEyOCsxNikpK3JzcF0KIAogCW1vdglyOCxRV09SRFtyc3BdCiAJbW92CXI5LFFXT1JEWzgrcnNwXQpAQCAtNjg2LDYgKzc2MywxNyBAQAogCWNhbGwJX19yc2F6XzUxMl9zdWJ0cmFjdAogCiAJbGVhCXJheCxbKCgxMjgrMjQrNDgpKStyc3BdCisJbW92YXBzCXhtbTYsWE1NV09SRFsoKDE2MC0yMDApKStyYXhdCisJbW92YXBzCXhtbTcsWE1NV09SRFsoKDE3Ni0yMDApKStyYXhdCisJbW92YXBzCXhtbTgsWE1NV09SRFsoKDE5Mi0yMDApKStyYXhdCisJbW92YXBzCXhtbTksWE1NV09SRFsoKDIwOC0yMDApKStyYXhdCisJbW92YXBzCXhtbTEwLFhNTVdPUkRbKCgyMjQtMjAwKSkrcmF4XQorCW1vdmFwcwl4bW0xMSxYTU1XT1JEWygoMjQwLTIwMCkpK3JheF0KKwltb3ZhcHMJeG1tMTIsWE1NV09SRFsoKDI1Ni0yMDApKStyYXhdCisJbW92YXBzCXhtbTEzLFhNTVdPUkRbKCgyNzItMjAwKSkrcmF4XQorCW1vdmFwcwl4bW0xNCxYTU1XT1JEWygoMjg4LTIwMCkpK3JheF0KKwltb3ZhcHMJeG1tMTUsWE1NV09SRFsoKDMwNC0yMDApKStyYXhdCisJbGVhCXJheCxbMTc2K3JheF0KIAltb3YJcjE1LFFXT1JEWygoLTQ4KSkrcmF4XQogCW1vdglyMTQsUVdPUkRbKCgtNDApKStyYXhdCiAJbW92CXIxMyxRV09SRFsoKC0zMikpK3JheF0KQEAgLTcyNCw3ICs4MTIsNyBAQAogCW1vdglyOWQscjlkCiAJc3ViCXJzcCwxMjgrMjQKICRMJG11bF9zY2F0dGVyNF9ib2R5OgotCWxlYQlyOCxbcjkqNCtyOF0KKwlsZWEJcjgsW3I5KjgrcjhdCiBEQgkxMDIsNzIsMTUsMTEwLDE5OQogREIJMTAyLDcyLDE1LDExMCwyMDIKIERCCTEwMiw3MywxNSwxMTAsMjA4CkBAIC03NjAsMzAgKzg0OCwxNCBAQAogCiAJY2FsbAlfX3JzYXpfNTEyX3N1YnRyYWN0CiAKLQltb3YJRFdPUkRbcnNpXSxyOGQKLQlzaHIJcjgsMzIKLQltb3YJRFdPUkRbMTI4K3JzaV0scjlkCi0Jc2hyCXI5LDMyCi0JbW92CURXT1JEWzI1Nityc2ldLHIxMGQKLQlzaHIJcjEwLDMyCi0JbW92CURXT1JEWzM4NCtyc2ldLHIxMWQKLQlzaHIJcjExLDMyCi0JbW92CURXT1JEWzUxMityc2ldLHIxMmQKLQlzaHIJcjEyLDMyCi0JbW92CURXT1JEWzY0MCtyc2ldLHIxM2QKLQlzaHIJcjEzLDMyCi0JbW92CURXT1JEWzc2OCtyc2ldLHIxNGQKLQlzaHIJcjE0LDMyCi0JbW92CURXT1JEWzg5Nityc2ldLHIxNWQKLQlzaHIJcjE1LDMyCi0JbW92CURXT1JEWzY0K3JzaV0scjhkCi0JbW92CURXT1JEWzE5Mityc2ldLHI5ZAotCW1vdglEV09SRFszMjArcnNpXSxyMTBkCi0JbW92CURXT1JEWzQ0OCtyc2ldLHIxMWQKLQltb3YJRFdPUkRbNTc2K3JzaV0scjEyZAotCW1vdglEV09SRFs3MDQrcnNpXSxyMTNkCi0JbW92CURXT1JEWzgzMityc2ldLHIxNGQKLQltb3YJRFdPUkRbOTYwK3JzaV0scjE1ZAorCW1vdglRV09SRFtyc2ldLHI4CisJbW92CVFXT1JEWzEyOCtyc2ldLHI5CisJbW92CVFXT1JEWzI1Nityc2ldLHIxMAorCW1vdglRV09SRFszODQrcnNpXSxyMTEKKwltb3YJUVdPUkRbNTEyK3JzaV0scjEyCisJbW92CVFXT1JEWzY0MCtyc2ldLHIxMworCW1vdglRV09SRFs3NjgrcnNpXSxyMTQKKwltb3YJUVdPUkRbODk2K3JzaV0scjE1CiAKIAlsZWEJcmF4LFsoKDEyOCsyNCs0OCkpK3JzcF0KIAltb3YJcjE1LFFXT1JEWygoLTQ4KSkrcmF4XQpAQCAtMTE1MCwxNiArMTIyMiwxNCBAQAogCiBBTElHTgkxNgogcnNhel81MTJfc2NhdHRlcjQ6Ci0JbGVhCXJjeCxbcjgqNCtyY3hdCisJbGVhCXJjeCxbcjgqOCtyY3hdCiAJbW92CXI5ZCw4CiAJam1wCU5FQVIgJEwkb29wX3NjYXR0ZXIKIEFMSUdOCTE2CiAkTCRvb3Bfc2NhdHRlcjoKIAltb3YJcmF4LFFXT1JEW3JkeF0KIAlsZWEJcmR4LFs4K3JkeF0KLQltb3YJRFdPUkRbcmN4XSxlYXgKLQlzaHIJcmF4LDMyCi0JbW92CURXT1JEWzY0K3JjeF0sZWF4CisJbW92CVFXT1JEW3JjeF0scmF4CiAJbGVhCXJjeCxbMTI4K3JjeF0KIAlkZWMJcjlkCiAJam56CU5FQVIgJEwkb29wX3NjYXR0ZXIKQEAgLTExNzAsMjIgKzEyNDAsOTggQEAKIAogQUxJR04JMTYKIHJzYXpfNTEyX2dhdGhlcjQ6Ci0JbGVhCXJkeCxbcjgqNCtyZHhdCiskTCRTRUhfYmVnaW5fcnNhel81MTJfZ2F0aGVyNDoKK0RCCTB4NDgsMHg4MSwweGVjLDB4YTgsMHgwMCwweDAwLDB4MDAKK0RCCTB4MGYsMHgyOSwweDM0LDB4MjQKK0RCCTB4MGYsMHgyOSwweDdjLDB4MjQsMHgxMAorREIJMHg0NCwweDBmLDB4MjksMHg0NCwweDI0LDB4MjAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NGMsMHgyNCwweDMwCitEQgkweDQ0LDB4MGYsMHgyOSwweDU0LDB4MjQsMHg0MAorREIJMHg0NCwweDBmLDB4MjksMHg1YywweDI0LDB4NTAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NjQsMHgyNCwweDYwCitEQgkweDQ0LDB4MGYsMHgyOSwweDZjLDB4MjQsMHg3MAorREIJMHg0NCwweDBmLDB4MjksMHhiNCwweDI0LDB4ODAsMCwwLDAKK0RCCTB4NDQsMHgwZiwweDI5LDB4YmMsMHgyNCwweDkwLDAsMCwwCisJbW92ZAl4bW04LHI4ZAorCW1vdmRxYQl4bW0xLFhNTVdPUkRbKCgkTCRpbmMrMTYpKV0KKwltb3ZkcWEJeG1tMCxYTU1XT1JEWyRMJGluY10KKworCXBzaHVmZAl4bW04LHhtbTgsMAorCW1vdmRxYQl4bW03LHhtbTEKKwltb3ZkcWEJeG1tMix4bW0xCisJcGFkZGQJeG1tMSx4bW0wCisJcGNtcGVxZAl4bW0wLHhtbTgKKwltb3ZkcWEJeG1tMyx4bW03CisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTgKKwltb3ZkcWEJeG1tNCx4bW03CisJcGFkZGQJeG1tMyx4bW0yCisJcGNtcGVxZAl4bW0yLHhtbTgKKwltb3ZkcWEJeG1tNSx4bW03CisJcGFkZGQJeG1tNCx4bW0zCisJcGNtcGVxZAl4bW0zLHhtbTgKKwltb3ZkcWEJeG1tNix4bW03CisJcGFkZGQJeG1tNSx4bW00CisJcGNtcGVxZAl4bW00LHhtbTgKKwlwYWRkZAl4bW02LHhtbTUKKwlwY21wZXFkCXhtbTUseG1tOAorCXBhZGRkCXhtbTcseG1tNgorCXBjbXBlcWQJeG1tNix4bW04CisJcGNtcGVxZAl4bW03LHhtbTgKIAltb3YJcjlkLDgKIAlqbXAJTkVBUiAkTCRvb3BfZ2F0aGVyCiBBTElHTgkxNgogJEwkb29wX2dhdGhlcjoKLQltb3YJZWF4LERXT1JEW3JkeF0KLQltb3YJcjhkLERXT1JEWzY0K3JkeF0KKwltb3ZkcWEJeG1tOCxYTU1XT1JEW3JkeF0KKwltb3ZkcWEJeG1tOSxYTU1XT1JEWzE2K3JkeF0KKwltb3ZkcWEJeG1tMTAsWE1NV09SRFszMityZHhdCisJbW92ZHFhCXhtbTExLFhNTVdPUkRbNDgrcmR4XQorCXBhbmQJeG1tOCx4bW0wCisJbW92ZHFhCXhtbTEyLFhNTVdPUkRbNjQrcmR4XQorCXBhbmQJeG1tOSx4bW0xCisJbW92ZHFhCXhtbTEzLFhNTVdPUkRbODArcmR4XQorCXBhbmQJeG1tMTAseG1tMgorCW1vdmRxYQl4bW0xNCxYTU1XT1JEWzk2K3JkeF0KKwlwYW5kCXhtbTExLHhtbTMKKwltb3ZkcWEJeG1tMTUsWE1NV09SRFsxMTIrcmR4XQogCWxlYQlyZHgsWzEyOCtyZHhdCi0Jc2hsCXI4LDMyCi0Jb3IJcmF4LHI4Ci0JbW92CVFXT1JEW3JjeF0scmF4CisJcGFuZAl4bW0xMix4bW00CisJcGFuZAl4bW0xMyx4bW01CisJcGFuZAl4bW0xNCx4bW02CisJcGFuZAl4bW0xNSx4bW03CisJcG9yCXhtbTgseG1tMTAKKwlwb3IJeG1tOSx4bW0xMQorCXBvcgl4bW04LHhtbTEyCisJcG9yCXhtbTkseG1tMTMKKwlwb3IJeG1tOCx4bW0xNAorCXBvcgl4bW05LHhtbTE1CisKKwlwb3IJeG1tOCx4bW05CisJcHNodWZkCXhtbTkseG1tOCwweDRlCisJcG9yCXhtbTgseG1tOQorCW1vdnEJUVdPUkRbcmN4XSx4bW04CiAJbGVhCXJjeCxbOCtyY3hdCiAJZGVjCXI5ZAogCWpueglORUFSICRMJG9vcF9nYXRoZXIKKwltb3ZhcHMJeG1tNixYTU1XT1JEW3JzcF0KKwltb3ZhcHMJeG1tNyxYTU1XT1JEWzE2K3JzcF0KKwltb3ZhcHMJeG1tOCxYTU1XT1JEWzMyK3JzcF0KKwltb3ZhcHMJeG1tOSxYTU1XT1JEWzQ4K3JzcF0KKwltb3ZhcHMJeG1tMTAsWE1NV09SRFs2NCtyc3BdCisJbW92YXBzCXhtbTExLFhNTVdPUkRbODArcnNwXQorCW1vdmFwcwl4bW0xMixYTU1XT1JEWzk2K3JzcF0KKwltb3ZhcHMJeG1tMTMsWE1NV09SRFsxMTIrcnNwXQorCW1vdmFwcwl4bW0xNCxYTU1XT1JEWzEyOCtyc3BdCisJbW92YXBzCXhtbTE1LFhNTVdPUkRbMTQ0K3JzcF0KKwlhZGQJcnNwLDB4YTgKIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfcnNhel81MTJfZ2F0aGVyNDoKIAorCitBTElHTgk2NAorJEwkaW5jOgorCURECTAsMCwxLDEKKwlERAkyLDIsMiwyCiBFWFRFUk4JX19pbXBfUnRsVmlydHVhbFVud2luZAogCiBBTElHTgkxNgpAQCAtMTIyMSw2ICsxMzY3LDE4IEBACiAKIAlsZWEJcmF4LFsoKDEyOCsyNCs0OCkpK3JheF0KIAorCWxlYQlyYngsWyRMJG11bF9nYXRoZXI0X2VwaWxvZ3VlXQorCWNtcAlyYngscjEwCisJam5lCU5FQVIgJEwkc2Vfbm90X2luX211bF9nYXRoZXI0CisKKwlsZWEJcmF4LFsxNzYrcmF4XQorCisJbGVhCXJzaSxbKCgtNDgtMTY4KSkrcmF4XQorCWxlYQlyZGksWzUxMityOF0KKwltb3YJZWN4LDIwCisJREQJMHhhNTQ4ZjNmYworCiskTCRzZV9ub3RfaW5fbXVsX2dhdGhlcjQ6CiAJbW92CXJieCxRV09SRFsoKC04KSkrcmF4XQogCW1vdglyYnAsUVdPUkRbKCgtMTYpKStyYXhdCiAJbW92CXIxMixRV09SRFsoKC0yNCkpK3JheF0KQEAgLTEyOTYsNiArMTQ1NCwxMCBAQAogCURECSRMJFNFSF9lbmRfcnNhel81MTJfbXVsX2J5X29uZSB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfaW5mb19yc2F6XzUxMl9tdWxfYnlfb25lIHdydCAuLmltYWdlYmFzZQogCisJREQJJEwkU0VIX2JlZ2luX3JzYXpfNTEyX2dhdGhlcjQgd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2VuZF9yc2F6XzUxMl9nYXRoZXI0IHdydCAuLmltYWdlYmFzZQorCURECSRMJFNFSF9pbmZvX3JzYXpfNTEyX2dhdGhlcjQgd3J0IC4uaW1hZ2ViYXNlCisKIHNlY3Rpb24JLnhkYXRhIHJkYXRhIGFsaWduPTgKIEFMSUdOCTgKICRMJFNFSF9pbmZvX3JzYXpfNTEyX3NxcjoKQEAgLTEzMTgsMyArMTQ4MCwxNiBAQAogREIJOSwwLDAsMAogCURECXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkbXVsX2J5X29uZV9ib2R5IHdydCAuLmltYWdlYmFzZSwkTCRtdWxfYnlfb25lX2VwaWxvZ3VlIHdydCAuLmltYWdlYmFzZQorJEwkU0VIX2luZm9fcnNhel81MTJfZ2F0aGVyNDoKK0RCCTB4MDEsMHg0NiwweDE2LDB4MDAKK0RCCTB4NDYsMHhmOCwweDA5LDB4MDAKK0RCCTB4M2QsMHhlOCwweDA4LDB4MDAKK0RCCTB4MzQsMHhkOCwweDA3LDB4MDAKK0RCCTB4MmUsMHhjOCwweDA2LDB4MDAKK0RCCTB4MjgsMHhiOCwweDA1LDB4MDAKK0RCCTB4MjIsMHhhOCwweDA0LDB4MDAKK0RCCTB4MWMsMHg5OCwweDAzLDB4MDAKK0RCCTB4MTYsMHg4OCwweDAyLDB4MDAKK0RCCTB4MTAsMHg3OCwweDAxLDB4MDAKK0RCCTB4MGIsMHg2OCwweDAwLDB4MDAKK0RCCTB4MDcsMHgwMSwweDE1LDB4MDAKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5hc20gYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQuYXNtCmluZGV4IGRiMGQxYjkuLjRkOGUxY2IgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udC5hc20KKysrIGIvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2JuL3g4Nl82NC1tb250LmFzbQpAQCAtNjc3LDIwICs2NzcsMjAgQEAKIAogCiAKLQlsZWEJcjExLFsoKC02NCkpK3I5KjQrcnNwXQorCWxlYQlyMTEsWygoLTY0KSkrcjkqMityc3BdCiAJbW92CXI4LFFXT1JEW3I4XQogCXN1YglyMTEscnNpCiAJYW5kCXIxMSw0MDk1CiAJY21wCXIxMCxyMTEKIAlqYglORUFSICRMJHNxcjh4X3NwX2FsdAogCXN1Yglyc3AscjExCi0JbGVhCXJzcCxbKCgtNjQpKStyOSo0K3JzcF0KKwlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQogCWptcAlORUFSICRMJHNxcjh4X3NwX2RvbmUKIAogQUxJR04JMzIKICRMJHNxcjh4X3NwX2FsdDoKLQlsZWEJcjEwLFsoKDQwOTYtNjQpKStyOSo0XQotCWxlYQlyc3AsWygoLTY0KSkrcjkqNCtyc3BdCisJbGVhCXIxMCxbKCg0MDk2LTY0KSkrcjkqMl0KKwlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQogCXN1YglyMTEscjEwCiAJbW92CXIxMCwwCiAJY21vdmMJcjExLHIxMApAQCAtNzAwLDU4ICs3MDAsODAgQEAKIAltb3YJcjEwLHI5CiAJbmVnCXI5CiAKLQlsZWEJcjExLFs2NCtyOSoyK3JzcF0KIAltb3YJUVdPUkRbMzIrcnNwXSxyOAogCW1vdglRV09SRFs0MCtyc3BdLHJheAogJEwkc3FyOHhfYm9keToKIAotCW1vdglyYnAscjkKLURCCTEwMiw3MywxNSwxMTAsMjExCi0Jc2hyCXJicCwzKzIKLQltb3YJZWF4LERXT1JEWygoT1BFTlNTTF9pYTMyY2FwX1ArOCkpXQotCWptcAlORUFSICRMJHNxcjh4X2NvcHlfbgotCi1BTElHTgkzMgotJEwkc3FyOHhfY29weV9uOgotCW1vdnEJeG1tMCxRV09SRFtyY3hdCi0JbW92cQl4bW0xLFFXT1JEWzgrcmN4XQotCW1vdnEJeG1tMyxRV09SRFsxNityY3hdCi0JbW92cQl4bW00LFFXT1JEWzI0K3JjeF0KLQlsZWEJcmN4LFszMityY3hdCi0JbW92ZHFhCVhNTVdPUkRbcjExXSx4bW0wCi0JbW92ZHFhCVhNTVdPUkRbMTYrcjExXSx4bW0xCi0JbW92ZHFhCVhNTVdPUkRbMzIrcjExXSx4bW0zCi0JbW92ZHFhCVhNTVdPUkRbNDgrcjExXSx4bW00Ci0JbGVhCXIxMSxbNjQrcjExXQotCWRlYwlyYnAKLQlqbnoJTkVBUiAkTCRzcXI4eF9jb3B5X24KLQorREIJMTAyLDcyLDE1LDExMCwyMDkKIAlweG9yCXhtbTAseG1tMAogREIJMTAyLDcyLDE1LDExMCwyMDcKIERCCTEwMiw3MywxNSwxMTAsMjE4CiAJY2FsbAlibl9zcXI4eF9pbnRlcm5hbAogCi0JcHhvcgl4bW0wLHhtbTAKLQlsZWEJcmF4LFs0OCtyc3BdCi0JbGVhCXJkeCxbNjQrcjkqMityc3BdCi0Jc2hyCXI5LDMrMgotCW1vdglyc2ksUVdPUkRbNDArcnNwXQotCWptcAlORUFSICRMJHNxcjh4X3plcm8KKworCisKKwlsZWEJcmJ4LFtyOSoxK3JkaV0KKwltb3YJcmN4LHI5CisJbW92CXJkeCxyOQorREIJMTAyLDcyLDE1LDEyNiwyMDcKKwlzYXIJcmN4LDMrMgorCWptcAlORUFSICRMJHNxcjh4X3N1YgogCiBBTElHTgkzMgotJEwkc3FyOHhfemVybzoKLQltb3ZkcWEJWE1NV09SRFtyYXhdLHhtbTAKLQltb3ZkcWEJWE1NV09SRFsxNityYXhdLHhtbTAKLQltb3ZkcWEJWE1NV09SRFszMityYXhdLHhtbTAKLQltb3ZkcWEJWE1NV09SRFs0OCtyYXhdLHhtbTAKLQlsZWEJcmF4LFs2NCtyYXhdCi0JbW92ZHFhCVhNTVdPUkRbcmR4XSx4bW0wCi0JbW92ZHFhCVhNTVdPUkRbMTYrcmR4XSx4bW0wCi0JbW92ZHFhCVhNTVdPUkRbMzIrcmR4XSx4bW0wCi0JbW92ZHFhCVhNTVdPUkRbNDgrcmR4XSx4bW0wCi0JbGVhCXJkeCxbNjQrcmR4XQotCWRlYwlyOQotCWpueglORUFSICRMJHNxcjh4X3plcm8KKyRMJHNxcjh4X3N1YjoKKwltb3YJcjEyLFFXT1JEW3JieF0KKwltb3YJcjEzLFFXT1JEWzgrcmJ4XQorCW1vdglyMTQsUVdPUkRbMTYrcmJ4XQorCW1vdglyMTUsUVdPUkRbMjQrcmJ4XQorCWxlYQlyYngsWzMyK3JieF0KKwlzYmIJcjEyLFFXT1JEW3JicF0KKwlzYmIJcjEzLFFXT1JEWzgrcmJwXQorCXNiYglyMTQsUVdPUkRbMTYrcmJwXQorCXNiYglyMTUsUVdPUkRbMjQrcmJwXQorCWxlYQlyYnAsWzMyK3JicF0KKwltb3YJUVdPUkRbcmRpXSxyMTIKKwltb3YJUVdPUkRbOCtyZGldLHIxMworCW1vdglRV09SRFsxNityZGldLHIxNAorCW1vdglRV09SRFsyNCtyZGldLHIxNQorCWxlYQlyZGksWzMyK3JkaV0KKwlpbmMJcmN4CisJam56CU5FQVIgJEwkc3FyOHhfc3ViCisKKwlzYmIJcmF4LDAKKwlsZWEJcmJ4LFtyOSoxK3JieF0KKwlsZWEJcmRpLFtyOSoxK3JkaV0KKworREIJMTAyLDcyLDE1LDExMCwyMDAKKwlweG9yCXhtbTAseG1tMAorCXBzaHVmZAl4bW0xLHhtbTEsMAorCW1vdglyc2ksUVdPUkRbNDArcnNwXQorCWptcAlORUFSICRMJHNxcjh4X2NvbmRfY29weQorCitBTElHTgkzMgorJEwkc3FyOHhfY29uZF9jb3B5OgorCW1vdmRxYQl4bW0yLFhNTVdPUkRbcmJ4XQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbMTYrcmJ4XQorCWxlYQlyYngsWzMyK3JieF0KKwltb3ZkcXUJeG1tNCxYTU1XT1JEW3JkaV0KKwltb3ZkcXUJeG1tNSxYTU1XT1JEWzE2K3JkaV0KKwlsZWEJcmRpLFszMityZGldCisJbW92ZHFhCVhNTVdPUkRbKC0zMikrcmJ4XSx4bW0wCisJbW92ZHFhCVhNTVdPUkRbKC0xNikrcmJ4XSx4bW0wCisJbW92ZHFhCVhNTVdPUkRbKC0zMikrcmR4KjErcmJ4XSx4bW0wCisJbW92ZHFhCVhNTVdPUkRbKC0xNikrcmR4KjErcmJ4XSx4bW0wCisJcGNtcGVxZAl4bW0wLHhtbTEKKwlwYW5kCXhtbTIseG1tMQorCXBhbmQJeG1tMyx4bW0xCisJcGFuZAl4bW00LHhtbTAKKwlwYW5kCXhtbTUseG1tMAorCXB4b3IJeG1tMCx4bW0wCisJcG9yCXhtbTQseG1tMgorCXBvcgl4bW01LHhtbTMKKwltb3ZkcXUJWE1NV09SRFsoLTMyKStyZGldLHhtbTQKKwltb3ZkcXUJWE1NV09SRFsoLTE2KStyZGldLHhtbTUKKwlhZGQJcjksMzIKKwlqbnoJTkVBUiAkTCRzcXI4eF9jb25kX2NvcHkKIAogCW1vdglyYXgsMQogCW1vdglyMTUsUVdPUkRbKCgtNDgpKStyc2ldCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vYm4veDg2XzY0LW1vbnQ1LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuYXNtCmluZGV4IDI4NDMxOGEuLmNkOWE2ZTUgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuYXNtCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9ibi94ODZfNjQtbW9udDUuYXNtCkBAIC0zMSw0OSArMzEsMTUxIEBACiAkTCRtdWxfZW50ZXI6CiAJbW92CXI5ZCxyOWQKIAltb3YJcmF4LHJzcAotCW1vdglyMTBkLERXT1JEWzU2K3JzcF0KKwltb3ZkCXhtbTUsRFdPUkRbNTYrcnNwXQorCWxlYQlyMTAsWyRMJGluY10KIAlwdXNoCXJieAogCXB1c2gJcmJwCiAJcHVzaAlyMTIKIAlwdXNoCXIxMwogCXB1c2gJcjE0CiAJcHVzaAlyMTUKLQlsZWEJcnNwLFsoKC00MCkpK3JzcF0KLQltb3ZhcHMJWE1NV09SRFtyc3BdLHhtbTYKLQltb3ZhcHMJWE1NV09SRFsxNityc3BdLHhtbTcKKwogCWxlYQlyMTEsWzIrcjldCiAJbmVnCXIxMQotCWxlYQlyc3AsW3IxMSo4K3JzcF0KKwlsZWEJcnNwLFsoKC0yNjQpKStyMTEqOCtyc3BdCiAJYW5kCXJzcCwtMTAyNAogCiAJbW92CVFXT1JEWzgrcjkqOCtyc3BdLHJheAogJEwkbXVsX2JvZHk6Ci0JbW92CXIxMixyZHgKLQltb3YJcjExLHIxMAotCXNocglyMTAsMwotCWFuZAlyMTEsNwotCW5vdAlyMTAKLQlsZWEJcmF4LFskTCRtYWdpY19tYXNrc10KLQlhbmQJcjEwLDMKLQlsZWEJcjEyLFs5NityMTEqOCtyMTJdCi0JbW92cQl4bW00LFFXT1JEW3IxMCo4K3JheF0KLQltb3ZxCXhtbTUsUVdPUkRbOCtyMTAqOCtyYXhdCi0JbW92cQl4bW02LFFXT1JEWzE2K3IxMCo4K3JheF0KLQltb3ZxCXhtbTcsUVdPUkRbMjQrcjEwKjgrcmF4XQorCWxlYQlyMTIsWzEyOCtyZHhdCisJbW92ZHFhCXhtbTAsWE1NV09SRFtyMTBdCisJbW92ZHFhCXhtbTEsWE1NV09SRFsxNityMTBdCisJbGVhCXIxMCxbKCgyNC0xMTIpKStyOSo4K3JzcF0KKwlhbmQJcjEwLC0xNgogCi0JbW92cQl4bW0wLFFXT1JEWygoKC05NikpKStyMTJdCi0JbW92cQl4bW0xLFFXT1JEWygoLTMyKSkrcjEyXQotCXBhbmQJeG1tMCx4bW00Ci0JbW92cQl4bW0yLFFXT1JEWzMyK3IxMl0KLQlwYW5kCXhtbTEseG1tNQotCW1vdnEJeG1tMyxRV09SRFs5NityMTJdCi0JcGFuZAl4bW0yLHhtbTYKLQlwb3IJeG1tMCx4bW0xCi0JcGFuZAl4bW0zLHhtbTcKKwlwc2h1ZmQJeG1tNSx4bW01LDAKKwltb3ZkcWEJeG1tNCx4bW0xCisJbW92ZHFhCXhtbTIseG1tMQorCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CitEQgkweDY3CisJbW92ZHFhCXhtbTMseG1tNAorCXBhZGRkCXhtbTIseG1tMQorCXBjbXBlcWQJeG1tMSx4bW01CisJbW92ZHFhCVhNTVdPUkRbMTEyK3IxMF0seG1tMAorCW1vdmRxYQl4bW0wLHhtbTQKKworCXBhZGRkCXhtbTMseG1tMgorCXBjbXBlcWQJeG1tMix4bW01CisJbW92ZHFhCVhNTVdPUkRbMTI4K3IxMF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbMTQ0K3IxMF0seG1tMgorCW1vdmRxYQl4bW0yLHhtbTQKKworCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CisJbW92ZHFhCVhNTVdPUkRbMTYwK3IxMF0seG1tMworCW1vdmRxYQl4bW0zLHhtbTQKKwlwYWRkZAl4bW0yLHhtbTEKKwlwY21wZXFkCXhtbTEseG1tNQorCW1vdmRxYQlYTU1XT1JEWzE3NityMTBdLHhtbTAKKwltb3ZkcWEJeG1tMCx4bW00CisKKwlwYWRkZAl4bW0zLHhtbTIKKwlwY21wZXFkCXhtbTIseG1tNQorCW1vdmRxYQlYTU1XT1JEWzE5MityMTBdLHhtbTEKKwltb3ZkcWEJeG1tMSx4bW00CisKKwlwYWRkZAl4bW0wLHhtbTMKKwlwY21wZXFkCXhtbTMseG1tNQorCW1vdmRxYQlYTU1XT1JEWzIwOCtyMTBdLHhtbTIKKwltb3ZkcWEJeG1tMix4bW00CisKKwlwYWRkZAl4bW0xLHhtbTAKKwlwY21wZXFkCXhtbTAseG1tNQorCW1vdmRxYQlYTU1XT1JEWzIyNCtyMTBdLHhtbTMKKwltb3ZkcWEJeG1tMyx4bW00CisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyNDArcjEwXSx4bW0wCisJbW92ZHFhCXhtbTAseG1tNAorCisJcGFkZGQJeG1tMyx4bW0yCisJcGNtcGVxZAl4bW0yLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyNTYrcjEwXSx4bW0xCisJbW92ZHFhCXhtbTEseG1tNAorCisJcGFkZGQJeG1tMCx4bW0zCisJcGNtcGVxZAl4bW0zLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyNzIrcjEwXSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCisJcGFkZGQJeG1tMSx4bW0wCisJcGNtcGVxZAl4bW0wLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyODgrcjEwXSx4bW0zCisJbW92ZHFhCXhtbTMseG1tNAorCXBhZGRkCXhtbTIseG1tMQorCXBjbXBlcWQJeG1tMSx4bW01CisJbW92ZHFhCVhNTVdPUkRbMzA0K3IxMF0seG1tMAorCisJcGFkZGQJeG1tMyx4bW0yCitEQgkweDY3CisJcGNtcGVxZAl4bW0yLHhtbTUKKwltb3ZkcWEJWE1NV09SRFszMjArcjEwXSx4bW0xCisKKwlwY21wZXFkCXhtbTMseG1tNQorCW1vdmRxYQlYTU1XT1JEWzMzNityMTBdLHhtbTIKKwlwYW5kCXhtbTAsWE1NV09SRFs2NCtyMTJdCisKKwlwYW5kCXhtbTEsWE1NV09SRFs4MCtyMTJdCisJcGFuZAl4bW0yLFhNTVdPUkRbOTYrcjEyXQorCW1vdmRxYQlYTU1XT1JEWzM1MityMTBdLHhtbTMKKwlwYW5kCXhtbTMsWE1NV09SRFsxMTIrcjEyXQogCXBvcgl4bW0wLHhtbTIKKwlwb3IJeG1tMSx4bW0zCisJbW92ZHFhCXhtbTQsWE1NV09SRFsoKC0xMjgpKStyMTJdCisJbW92ZHFhCXhtbTUsWE1NV09SRFsoKC0xMTIpKStyMTJdCisJbW92ZHFhCXhtbTIsWE1NV09SRFsoKC05NikpK3IxMl0KKwlwYW5kCXhtbTQsWE1NV09SRFsxMTIrcjEwXQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbKCgtODApKStyMTJdCisJcGFuZAl4bW01LFhNTVdPUkRbMTI4K3IxMF0KKwlwb3IJeG1tMCx4bW00CisJcGFuZAl4bW0yLFhNTVdPUkRbMTQ0K3IxMF0KKwlwb3IJeG1tMSx4bW01CisJcGFuZAl4bW0zLFhNTVdPUkRbMTYwK3IxMF0KKwlwb3IJeG1tMCx4bW0yCisJcG9yCXhtbTEseG1tMworCW1vdmRxYQl4bW00LFhNTVdPUkRbKCgtNjQpKStyMTJdCisJbW92ZHFhCXhtbTUsWE1NV09SRFsoKC00OCkpK3IxMl0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWygoLTMyKSkrcjEyXQorCXBhbmQJeG1tNCxYTU1XT1JEWzE3NityMTBdCisJbW92ZHFhCXhtbTMsWE1NV09SRFsoKC0xNikpK3IxMl0KKwlwYW5kCXhtbTUsWE1NV09SRFsxOTIrcjEwXQorCXBvcgl4bW0wLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFsyMDgrcjEwXQorCXBvcgl4bW0xLHhtbTUKKwlwYW5kCXhtbTMsWE1NV09SRFsyMjQrcjEwXQorCXBvcgl4bW0wLHhtbTIKKwlwb3IJeG1tMSx4bW0zCisJbW92ZHFhCXhtbTQsWE1NV09SRFtyMTJdCisJbW92ZHFhCXhtbTUsWE1NV09SRFsxNityMTJdCisJbW92ZHFhCXhtbTIsWE1NV09SRFszMityMTJdCisJcGFuZAl4bW00LFhNTVdPUkRbMjQwK3IxMF0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWzQ4K3IxMl0KKwlwYW5kCXhtbTUsWE1NV09SRFsyNTYrcjEwXQorCXBvcgl4bW0wLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFsyNzIrcjEwXQorCXBvcgl4bW0xLHhtbTUKKwlwYW5kCXhtbTMsWE1NV09SRFsyODgrcjEwXQorCXBvcgl4bW0wLHhtbTIKKwlwb3IJeG1tMSx4bW0zCisJcG9yCXhtbTAseG1tMQorCXBzaHVmZAl4bW0xLHhtbTAsMHg0ZQorCXBvcgl4bW0wLHhtbTEKIAlsZWEJcjEyLFsyNTYrcjEyXQotCXBvcgl4bW0wLHhtbTMKLQogREIJMTAyLDcyLDE1LDEyNiwxOTUKIAogCW1vdglyOCxRV09SRFtyOF0KQEAgLTgyLDI5ICsxODQsMTQgQEAKIAl4b3IJcjE0LHIxNAogCXhvcglyMTUscjE1CiAKLQltb3ZxCXhtbTAsUVdPUkRbKCgoLTk2KSkpK3IxMl0KLQltb3ZxCXhtbTEsUVdPUkRbKCgtMzIpKStyMTJdCi0JcGFuZAl4bW0wLHhtbTQKLQltb3ZxCXhtbTIsUVdPUkRbMzIrcjEyXQotCXBhbmQJeG1tMSx4bW01Ci0KIAltb3YJcmJwLHI4CiAJbXVsCXJieAogCW1vdglyMTAscmF4CiAJbW92CXJheCxRV09SRFtyY3hdCiAKLQltb3ZxCXhtbTMsUVdPUkRbOTYrcjEyXQotCXBhbmQJeG1tMix4bW02Ci0JcG9yCXhtbTAseG1tMQotCXBhbmQJeG1tMyx4bW03Ci0KIAlpbXVsCXJicCxyMTAKIAltb3YJcjExLHJkeAogCi0JcG9yCXhtbTAseG1tMgotCWxlYQlyMTIsWzI1NityMTJdCi0JcG9yCXhtbTAseG1tMwotCiAJbXVsCXJicAogCWFkZAlyMTAscmF4CiAJbW92CXJheCxRV09SRFs4K3JzaV0KQEAgLTEzNywxNCArMjI0LDEyIEBACiAJY21wCXIxNSxyOQogCWpuZQlORUFSICRMJDFzdAogCi1EQgkxMDIsNzIsMTUsMTI2LDE5NQogCiAJYWRkCXIxMyxyYXgKLQltb3YJcmF4LFFXT1JEW3JzaV0KIAlhZGMJcmR4LDAKIAlhZGQJcjEzLHIxMQogCWFkYwlyZHgsMAotCW1vdglRV09SRFsoKC0xNikpK3IxNSo4K3JzcF0scjEzCisJbW92CVFXT1JEWygoLTE2KSkrcjkqOCtyc3BdLHIxMwogCW1vdglyMTMscmR4CiAJbW92CXIxMSxyMTAKIApAQCAtMTU4LDMzICsyNDMsNzggQEAKIAlqbXAJTkVBUiAkTCRvdXRlcgogQUxJR04JMTYKICRMJG91dGVyOgorCWxlYQlyZHgsWygoMjQrMTI4KSkrcjkqOCtyc3BdCisJYW5kCXJkeCwtMTYKKwlweG9yCXhtbTQseG1tNAorCXB4b3IJeG1tNSx4bW01CisJbW92ZHFhCXhtbTAsWE1NV09SRFsoKC0xMjgpKStyMTJdCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKC0xMTIpKStyMTJdCisJbW92ZHFhCXhtbTIsWE1NV09SRFsoKC05NikpK3IxMl0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWygoLTgwKSkrcjEyXQorCXBhbmQJeG1tMCxYTU1XT1JEWygoLTEyOCkpK3JkeF0KKwlwYW5kCXhtbTEsWE1NV09SRFsoKC0xMTIpKStyZHhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWygoLTk2KSkrcmR4XQorCXBvcgl4bW01LHhtbTEKKwlwYW5kCXhtbTMsWE1NV09SRFsoKC04MCkpK3JkeF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCW1vdmRxYQl4bW0wLFhNTVdPUkRbKCgtNjQpKStyMTJdCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKC00OCkpK3IxMl0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWygoLTMyKSkrcjEyXQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbKCgtMTYpKStyMTJdCisJcGFuZAl4bW0wLFhNTVdPUkRbKCgtNjQpKStyZHhdCisJcGFuZAl4bW0xLFhNTVdPUkRbKCgtNDgpKStyZHhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWygoLTMyKSkrcmR4XQorCXBvcgl4bW01LHhtbTEKKwlwYW5kCXhtbTMsWE1NV09SRFsoKC0xNikpK3JkeF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCW1vdmRxYQl4bW0wLFhNTVdPUkRbcjEyXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbMTYrcjEyXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbMzIrcjEyXQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbNDgrcjEyXQorCXBhbmQJeG1tMCxYTU1XT1JEW3JkeF0KKwlwYW5kCXhtbTEsWE1NV09SRFsxNityZHhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWzMyK3JkeF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbNDgrcmR4XQorCXBvcgl4bW00LHhtbTIKKwlwb3IJeG1tNSx4bW0zCisJbW92ZHFhCXhtbTAsWE1NV09SRFs2NCtyMTJdCisJbW92ZHFhCXhtbTEsWE1NV09SRFs4MCtyMTJdCisJbW92ZHFhCXhtbTIsWE1NV09SRFs5NityMTJdCisJbW92ZHFhCXhtbTMsWE1NV09SRFsxMTIrcjEyXQorCXBhbmQJeG1tMCxYTU1XT1JEWzY0K3JkeF0KKwlwYW5kCXhtbTEsWE1NV09SRFs4MCtyZHhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWzk2K3JkeF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbMTEyK3JkeF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCXBvcgl4bW00LHhtbTUKKwlwc2h1ZmQJeG1tMCx4bW00LDB4NGUKKwlwb3IJeG1tMCx4bW00CisJbGVhCXIxMixbMjU2K3IxMl0KKworCW1vdglyYXgsUVdPUkRbcnNpXQorREIJMTAyLDcyLDE1LDEyNiwxOTUKKwogCXhvcglyMTUscjE1CiAJbW92CXJicCxyOAogCW1vdglyMTAsUVdPUkRbcnNwXQogCi0JbW92cQl4bW0wLFFXT1JEWygoKC05NikpKStyMTJdCi0JbW92cQl4bW0xLFFXT1JEWygoLTMyKSkrcjEyXQotCXBhbmQJeG1tMCx4bW00Ci0JbW92cQl4bW0yLFFXT1JEWzMyK3IxMl0KLQlwYW5kCXhtbTEseG1tNQotCiAJbXVsCXJieAogCWFkZAlyMTAscmF4CiAJbW92CXJheCxRV09SRFtyY3hdCiAJYWRjCXJkeCwwCiAKLQltb3ZxCXhtbTMsUVdPUkRbOTYrcjEyXQotCXBhbmQJeG1tMix4bW02Ci0JcG9yCXhtbTAseG1tMQotCXBhbmQJeG1tMyx4bW03Ci0KIAlpbXVsCXJicCxyMTAKIAltb3YJcjExLHJkeAogCi0JcG9yCXhtbTAseG1tMgotCWxlYQlyMTIsWzI1NityMTJdCi0JcG9yCXhtbTAseG1tMwotCiAJbXVsCXJicAogCWFkZAlyMTAscmF4CiAJbW92CXJheCxRV09SRFs4K3JzaV0KQEAgLTIyMCwxNSArMzUwLDEyIEBACiAJY21wCXIxNSxyOQogCWpuZQlORUFSICRMJGlubmVyCiAKLURCCTEwMiw3MiwxNSwxMjYsMTk1Ci0KIAlhZGQJcjEzLHJheAotCW1vdglyYXgsUVdPUkRbcnNpXQogCWFkYwlyZHgsMAogCWFkZAlyMTMscjEwCi0JbW92CXIxMCxRV09SRFtyMTUqOCtyc3BdCisJbW92CXIxMCxRV09SRFtyOSo4K3JzcF0KIAlhZGMJcmR4LDAKLQltb3YJUVdPUkRbKCgtMTYpKStyMTUqOCtyc3BdLHIxMworCW1vdglRV09SRFsoKC0xNikpK3I5KjgrcnNwXSxyMTMKIAltb3YJcjEzLHJkeAogCiAJeG9yCXJkeCxyZHgKQEAgLTI3NCw4ICs0MDEsNyBAQAogCiAJbW92CXJzaSxRV09SRFs4K3I5KjgrcnNwXQogCW1vdglyYXgsMQotCW1vdmFwcwl4bW02LFhNTVdPUkRbKCgtODgpKStyc2ldCi0JbW92YXBzCXhtbTcsWE1NV09SRFsoKC03MikpK3JzaV0KKwogCW1vdglyMTUsUVdPUkRbKCgtNDgpKStyc2ldCiAJbW92CXIxNCxRV09SRFsoKC00MCkpK3JzaV0KIAltb3YJcjEzLFFXT1JEWygoLTMyKSkrcnNpXQpAQCAtMzEyLDEzICs0MzgsMTAgQEAKIAlwdXNoCXIxMwogCXB1c2gJcjE0CiAJcHVzaAlyMTUKLQlsZWEJcnNwLFsoKC00MCkpK3JzcF0KLQltb3ZhcHMJWE1NV09SRFtyc3BdLHhtbTYKLQltb3ZhcHMJWE1NV09SRFsxNityc3BdLHhtbTcKKwogREIJMHg2NwotCW1vdglyMTBkLHI5ZAogCXNobAlyOWQsMwotCXNobAlyMTBkLDMrMgorCWxlYQlyMTAsW3I5KjIrcjldCiAJbmVnCXI5CiAKIApAQCAtMzI4LDE5ICs0NTEsMjEgQEAKIAogCiAKLQlsZWEJcjExLFsoKC02NCkpK3I5KjIrcnNwXQotCXN1YglyMTEscnNpCisKKworCWxlYQlyMTEsWygoLTMyMCkpK3I5KjIrcnNwXQorCXN1YglyMTEscmRpCiAJYW5kCXIxMSw0MDk1CiAJY21wCXIxMCxyMTEKIAlqYglORUFSICRMJG11bDR4c3BfYWx0CiAJc3ViCXJzcCxyMTEKLQlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQorCWxlYQlyc3AsWygoLTMyMCkpK3I5KjIrcnNwXQogCWptcAlORUFSICRMJG11bDR4c3BfZG9uZQogCiBBTElHTgkzMgogJEwkbXVsNHhzcF9hbHQ6Ci0JbGVhCXIxMCxbKCg0MDk2LTY0KSkrcjkqMl0KLQlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQorCWxlYQlyMTAsWygoNDA5Ni0zMjApKStyOSoyXQorCWxlYQlyc3AsWygoLTMyMCkpK3I5KjIrcnNwXQogCXN1YglyMTEscjEwCiAJbW92CXIxMCwwCiAJY21vdmMJcjExLHIxMApAQCAtMzU2LDggKzQ4MSw3IEBACiAKIAltb3YJcnNpLFFXT1JEWzQwK3JzcF0KIAltb3YJcmF4LDEKLQltb3ZhcHMJeG1tNixYTU1XT1JEWygoLTg4KSkrcnNpXQotCW1vdmFwcwl4bW03LFhNTVdPUkRbKCgtNzIpKStyc2ldCisKIAltb3YJcjE1LFFXT1JEWygoLTQ4KSkrcnNpXQogCW1vdglyMTQsUVdPUkRbKCgtNDApKStyc2ldCiAJbW92CXIxMyxRV09SRFsoKC0zMikpK3JzaV0KQEAgLTM3NSw0NyArNDk5LDE0MSBAQAogQUxJR04JMzIKIG11bDR4X2ludGVybmFsOgogCXNobAlyOSw1Ci0JbW92CXIxMGQsRFdPUkRbNTYrcmF4XQotCWxlYQlyMTMsWzI1NityOSoxK3JkeF0KKwltb3ZkCXhtbTUsRFdPUkRbNTYrcmF4XQorCWxlYQlyYXgsWyRMJGluY10KKwlsZWEJcjEzLFsxMjgrcjkqMStyZHhdCiAJc2hyCXI5LDUKLQltb3YJcjExLHIxMAotCXNocglyMTAsMwotCWFuZAlyMTEsNwotCW5vdAlyMTAKLQlsZWEJcmF4LFskTCRtYWdpY19tYXNrc10KLQlhbmQJcjEwLDMKLQlsZWEJcjEyLFs5NityMTEqOCtyZHhdCi0JbW92cQl4bW00LFFXT1JEW3IxMCo4K3JheF0KLQltb3ZxCXhtbTUsUVdPUkRbOCtyMTAqOCtyYXhdCi0JYWRkCXIxMSw3Ci0JbW92cQl4bW02LFFXT1JEWzE2K3IxMCo4K3JheF0KLQltb3ZxCXhtbTcsUVdPUkRbMjQrcjEwKjgrcmF4XQotCWFuZAlyMTEsNworCW1vdmRxYQl4bW0wLFhNTVdPUkRbcmF4XQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbMTYrcmF4XQorCWxlYQlyMTAsWygoODgtMTEyKSkrcjkqMStyc3BdCisJbGVhCXIxMixbMTI4K3JkeF0KIAotCW1vdnEJeG1tMCxRV09SRFsoKCgtOTYpKSkrcjEyXQotCWxlYQlyMTQsWzI1NityMTJdCi0JbW92cQl4bW0xLFFXT1JEWygoLTMyKSkrcjEyXQotCXBhbmQJeG1tMCx4bW00Ci0JbW92cQl4bW0yLFFXT1JEWzMyK3IxMl0KLQlwYW5kCXhtbTEseG1tNQotCW1vdnEJeG1tMyxRV09SRFs5NityMTJdCi0JcGFuZAl4bW0yLHhtbTYKKwlwc2h1ZmQJeG1tNSx4bW01LDAKKwltb3ZkcWEJeG1tNCx4bW0xCitEQgkweDY3LDB4NjcKKwltb3ZkcWEJeG1tMix4bW0xCisJcGFkZGQJeG1tMSx4bW0wCisJcGNtcGVxZAl4bW0wLHhtbTUKIERCCTB4NjcKLQlwb3IJeG1tMCx4bW0xCi0JbW92cQl4bW0xLFFXT1JEWygoLTk2KSkrcjE0XQorCW1vdmRxYQl4bW0zLHhtbTQKKwlwYWRkZAl4bW0yLHhtbTEKKwlwY21wZXFkCXhtbTEseG1tNQorCW1vdmRxYQlYTU1XT1JEWzExMityMTBdLHhtbTAKKwltb3ZkcWEJeG1tMCx4bW00CisKKwlwYWRkZAl4bW0zLHhtbTIKKwlwY21wZXFkCXhtbTIseG1tNQorCW1vdmRxYQlYTU1XT1JEWzEyOCtyMTBdLHhtbTEKKwltb3ZkcWEJeG1tMSx4bW00CisKKwlwYWRkZAl4bW0wLHhtbTMKKwlwY21wZXFkCXhtbTMseG1tNQorCW1vdmRxYQlYTU1XT1JEWzE0NCtyMTBdLHhtbTIKKwltb3ZkcWEJeG1tMix4bW00CisKKwlwYWRkZAl4bW0xLHhtbTAKKwlwY21wZXFkCXhtbTAseG1tNQorCW1vdmRxYQlYTU1XT1JEWzE2MCtyMTBdLHhtbTMKKwltb3ZkcWEJeG1tMyx4bW00CisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsxNzYrcjEwXSx4bW0wCisJbW92ZHFhCXhtbTAseG1tNAorCisJcGFkZGQJeG1tMyx4bW0yCisJcGNtcGVxZAl4bW0yLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsxOTIrcjEwXSx4bW0xCisJbW92ZHFhCXhtbTEseG1tNAorCisJcGFkZGQJeG1tMCx4bW0zCisJcGNtcGVxZAl4bW0zLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyMDgrcjEwXSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCisJcGFkZGQJeG1tMSx4bW0wCisJcGNtcGVxZAl4bW0wLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsyMjQrcjEwXSx4bW0zCisJbW92ZHFhCXhtbTMseG1tNAorCXBhZGRkCXhtbTIseG1tMQorCXBjbXBlcWQJeG1tMSx4bW01CisJbW92ZHFhCVhNTVdPUkRbMjQwK3IxMF0seG1tMAorCW1vdmRxYQl4bW0wLHhtbTQKKworCXBhZGRkCXhtbTMseG1tMgorCXBjbXBlcWQJeG1tMix4bW01CisJbW92ZHFhCVhNTVdPUkRbMjU2K3IxMF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbMjcyK3IxMF0seG1tMgorCW1vdmRxYQl4bW0yLHhtbTQKKworCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CisJbW92ZHFhCVhNTVdPUkRbMjg4K3IxMF0seG1tMworCW1vdmRxYQl4bW0zLHhtbTQKKwlwYWRkZAl4bW0yLHhtbTEKKwlwY21wZXFkCXhtbTEseG1tNQorCW1vdmRxYQlYTU1XT1JEWzMwNCtyMTBdLHhtbTAKKworCXBhZGRkCXhtbTMseG1tMgogREIJMHg2NwotCXBhbmQJeG1tMyx4bW03Ci1EQgkweDY3CisJcGNtcGVxZAl4bW0yLHhtbTUKKwltb3ZkcWEJWE1NV09SRFszMjArcjEwXSx4bW0xCisKKwlwY21wZXFkCXhtbTMseG1tNQorCW1vdmRxYQlYTU1XT1JEWzMzNityMTBdLHhtbTIKKwlwYW5kCXhtbTAsWE1NV09SRFs2NCtyMTJdCisKKwlwYW5kCXhtbTEsWE1NV09SRFs4MCtyMTJdCisJcGFuZAl4bW0yLFhNTVdPUkRbOTYrcjEyXQorCW1vdmRxYQlYTU1XT1JEWzM1MityMTBdLHhtbTMKKwlwYW5kCXhtbTMsWE1NV09SRFsxMTIrcjEyXQogCXBvcgl4bW0wLHhtbTIKLQltb3ZxCXhtbTIsUVdPUkRbKCgtMzIpKStyMTRdCi1EQgkweDY3Ci0JcGFuZAl4bW0xLHhtbTQKLURCCTB4NjcKLQlwb3IJeG1tMCx4bW0zCi0JbW92cQl4bW0zLFFXT1JEWzMyK3IxNF0KLQorCXBvcgl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tNCxYTU1XT1JEWygoLTEyOCkpK3IxMl0KKwltb3ZkcWEJeG1tNSxYTU1XT1JEWygoLTExMikpK3IxMl0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWygoLTk2KSkrcjEyXQorCXBhbmQJeG1tNCxYTU1XT1JEWzExMityMTBdCisJbW92ZHFhCXhtbTMsWE1NV09SRFsoKC04MCkpK3IxMl0KKwlwYW5kCXhtbTUsWE1NV09SRFsxMjgrcjEwXQorCXBvcgl4bW0wLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFsxNDQrcjEwXQorCXBvcgl4bW0xLHhtbTUKKwlwYW5kCXhtbTMsWE1NV09SRFsxNjArcjEwXQorCXBvcgl4bW0wLHhtbTIKKwlwb3IJeG1tMSx4bW0zCisJbW92ZHFhCXhtbTQsWE1NV09SRFsoKC02NCkpK3IxMl0KKwltb3ZkcWEJeG1tNSxYTU1XT1JEWygoLTQ4KSkrcjEyXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbKCgtMzIpKStyMTJdCisJcGFuZAl4bW00LFhNTVdPUkRbMTc2K3IxMF0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWygoLTE2KSkrcjEyXQorCXBhbmQJeG1tNSxYTU1XT1JEWzE5MityMTBdCisJcG9yCXhtbTAseG1tNAorCXBhbmQJeG1tMixYTU1XT1JEWzIwOCtyMTBdCisJcG9yCXhtbTEseG1tNQorCXBhbmQJeG1tMyxYTU1XT1JEWzIyNCtyMTBdCisJcG9yCXhtbTAseG1tMgorCXBvcgl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tNCxYTU1XT1JEW3IxMl0KKwltb3ZkcWEJeG1tNSxYTU1XT1JEWzE2K3IxMl0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWzMyK3IxMl0KKwlwYW5kCXhtbTQsWE1NV09SRFsyNDArcjEwXQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbNDgrcjEyXQorCXBhbmQJeG1tNSxYTU1XT1JEWzI1NityMTBdCisJcG9yCXhtbTAseG1tNAorCXBhbmQJeG1tMixYTU1XT1JEWzI3MityMTBdCisJcG9yCXhtbTEseG1tNQorCXBhbmQJeG1tMyxYTU1XT1JEWzI4OCtyMTBdCisJcG9yCXhtbTAseG1tMgorCXBvcgl4bW0xLHhtbTMKKwlwb3IJeG1tMCx4bW0xCisJcHNodWZkCXhtbTEseG1tMCwweDRlCisJcG9yCXhtbTAseG1tMQorCWxlYQlyMTIsWzI1NityMTJdCiBEQgkxMDIsNzIsMTUsMTI2LDE5NQotCW1vdnEJeG1tMCxRV09SRFs5NityMTRdCisKIAltb3YJUVdPUkRbKCgxNis4KSkrcnNwXSxyMTMKIAltb3YJUVdPUkRbKCg1Nis4KSkrcnNwXSxyZGkKIApAQCAtNDI5LDI2ICs2NDcsMTAgQEAKIAltb3YJcjEwLHJheAogCW1vdglyYXgsUVdPUkRbcmN4XQogCi0JcGFuZAl4bW0yLHhtbTUKLQlwYW5kCXhtbTMseG1tNgotCXBvcgl4bW0xLHhtbTIKLQogCWltdWwJcmJwLHIxMAotCi0KLQotCi0KLQotCi0JbGVhCXIxNCxbKCg2NCs4KSkrcjExKjgrcnNwXQorCWxlYQlyMTQsWygoNjQrOCkpK3JzcF0KIAltb3YJcjExLHJkeAogCi0JcGFuZAl4bW0wLHhtbTcKLQlwb3IJeG1tMSx4bW0zCi0JbGVhCXIxMixbNTEyK3IxMl0KLQlwb3IJeG1tMCx4bW0xCi0KIAltdWwJcmJwCiAJYWRkCXIxMCxyYXgKIAltb3YJcmF4LFFXT1JEWzgrcjkqMStyc2ldCkBAIC00NTcsNyArNjU5LDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjExLHJheAotCW1vdglyYXgsUVdPUkRbMTYrcmN4XQorCW1vdglyYXgsUVdPUkRbOCtyY3hdCiAJYWRjCXJkeCwwCiAJbW92CXIxMCxyZHgKIApAQCAtNDY3LDcgKzY2OSw3IEBACiAJYWRjCXJkeCwwCiAJYWRkCXJkaSxyMTEKIAlsZWEJcjE1LFszMityOV0KLQlsZWEJcmN4LFs2NCtyY3hdCisJbGVhCXJjeCxbMzIrcmN4XQogCWFkYwlyZHgsMAogCW1vdglRV09SRFtyMTRdLHJkaQogCW1vdglyMTMscmR4CkBAIC00NzcsNyArNjc5LDcgQEAKICRMJDFzdDR4OgogCW11bAlyYngKIAlhZGQJcjEwLHJheAotCW1vdglyYXgsUVdPUkRbKCgtMzIpKStyY3hdCisJbW92CXJheCxRV09SRFsoKC0xNikpK3JjeF0KIAlsZWEJcjE0LFszMityMTRdCiAJYWRjCXJkeCwwCiAJbW92CXIxMSxyZHgKQEAgLTQ5Myw3ICs2OTUsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTEscmF4Ci0JbW92CXJheCxRV09SRFsoKC0xNikpK3JjeF0KKwltb3YJcmF4LFFXT1JEWygoLTgpKStyY3hdCiAJYWRjCXJkeCwwCiAJbW92CXIxMCxyZHgKIApAQCAtNTIzLDcgKzcyNSw3IEBACiAKIAltdWwJcmJ4CiAJYWRkCXIxMSxyYXgKLQltb3YJcmF4LFFXT1JEWzE2K3JjeF0KKwltb3YJcmF4LFFXT1JEWzgrcmN4XQogCWFkYwlyZHgsMAogCW1vdglyMTAscmR4CiAKQEAgLTUzMiw3ICs3MzQsNyBAQAogCW1vdglyYXgsUVdPUkRbMTYrcjE1KjErcnNpXQogCWFkYwlyZHgsMAogCWFkZAlyZGkscjExCi0JbGVhCXJjeCxbNjQrcmN4XQorCWxlYQlyY3gsWzMyK3JjeF0KIAlhZGMJcmR4LDAKIAltb3YJUVdPUkRbcjE0XSxyZGkKIAltb3YJcjEzLHJkeApAQCAtNTQyLDcgKzc0NCw3IEBACiAKIAltdWwJcmJ4CiAJYWRkCXIxMCxyYXgKLQltb3YJcmF4LFFXT1JEWygoLTMyKSkrcmN4XQorCW1vdglyYXgsUVdPUkRbKCgtMTYpKStyY3hdCiAJbGVhCXIxNCxbMzIrcjE0XQogCWFkYwlyZHgsMAogCW1vdglyMTEscmR4CkBAIC01NTgsNyArNzYwLDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjExLHJheAotCW1vdglyYXgsUVdPUkRbKCgtMTYpKStyY3hdCisJbW92CXJheCxRV09SRFsoKC04KSkrcmN4XQogCWFkYwlyZHgsMAogCW1vdglyMTAscmR4CiAKQEAgLTU3MSw4ICs3NzMsNyBAQAogCW1vdglRV09SRFsoKC0xNikpK3IxNF0scmRpCiAJbW92CXIxMyxyZHgKIAotREIJMTAyLDcyLDE1LDEyNiwxOTUKLQlsZWEJcmN4LFtyOSoyK3JjeF0KKwlsZWEJcmN4LFtyOSoxK3JjeF0KIAogCXhvcglyZGkscmRpCiAJYWRkCXIxMyxyMTAKQEAgLTU4Myw2ICs3ODQsNjMgQEAKIAogQUxJR04JMzIKICRMJG91dGVyNHg6CisJbGVhCXJkeCxbKCgxNisxMjgpKStyMTRdCisJcHhvcgl4bW00LHhtbTQKKwlweG9yCXhtbTUseG1tNQorCW1vdmRxYQl4bW0wLFhNTVdPUkRbKCgtMTI4KSkrcjEyXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbKCgtMTEyKSkrcjEyXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbKCgtOTYpKStyMTJdCisJbW92ZHFhCXhtbTMsWE1NV09SRFsoKC04MCkpK3IxMl0KKwlwYW5kCXhtbTAsWE1NV09SRFsoKC0xMjgpKStyZHhdCisJcGFuZAl4bW0xLFhNTVdPUkRbKCgtMTEyKSkrcmR4XQorCXBvcgl4bW00LHhtbTAKKwlwYW5kCXhtbTIsWE1NV09SRFsoKC05NikpK3JkeF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbKCgtODApKStyZHhdCisJcG9yCXhtbTQseG1tMgorCXBvcgl4bW01LHhtbTMKKwltb3ZkcWEJeG1tMCxYTU1XT1JEWygoLTY0KSkrcjEyXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbKCgtNDgpKStyMTJdCisJbW92ZHFhCXhtbTIsWE1NV09SRFsoKC0zMikpK3IxMl0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWygoLTE2KSkrcjEyXQorCXBhbmQJeG1tMCxYTU1XT1JEWygoLTY0KSkrcmR4XQorCXBhbmQJeG1tMSxYTU1XT1JEWygoLTQ4KSkrcmR4XQorCXBvcgl4bW00LHhtbTAKKwlwYW5kCXhtbTIsWE1NV09SRFsoKC0zMikpK3JkeF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbKCgtMTYpKStyZHhdCisJcG9yCXhtbTQseG1tMgorCXBvcgl4bW01LHhtbTMKKwltb3ZkcWEJeG1tMCxYTU1XT1JEW3IxMl0KKwltb3ZkcWEJeG1tMSxYTU1XT1JEWzE2K3IxMl0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWzMyK3IxMl0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWzQ4K3IxMl0KKwlwYW5kCXhtbTAsWE1NV09SRFtyZHhdCisJcGFuZAl4bW0xLFhNTVdPUkRbMTYrcmR4XQorCXBvcgl4bW00LHhtbTAKKwlwYW5kCXhtbTIsWE1NV09SRFszMityZHhdCisJcG9yCXhtbTUseG1tMQorCXBhbmQJeG1tMyxYTU1XT1JEWzQ4K3JkeF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCW1vdmRxYQl4bW0wLFhNTVdPUkRbNjQrcjEyXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbODArcjEyXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbOTYrcjEyXQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbMTEyK3IxMl0KKwlwYW5kCXhtbTAsWE1NV09SRFs2NCtyZHhdCisJcGFuZAl4bW0xLFhNTVdPUkRbODArcmR4XQorCXBvcgl4bW00LHhtbTAKKwlwYW5kCXhtbTIsWE1NV09SRFs5NityZHhdCisJcG9yCXhtbTUseG1tMQorCXBhbmQJeG1tMyxYTU1XT1JEWzExMityZHhdCisJcG9yCXhtbTQseG1tMgorCXBvcgl4bW01LHhtbTMKKwlwb3IJeG1tNCx4bW01CisJcHNodWZkCXhtbTAseG1tNCwweDRlCisJcG9yCXhtbTAseG1tNAorCWxlYQlyMTIsWzI1NityMTJdCitEQgkxMDIsNzIsMTUsMTI2LDE5NQorCiAJbW92CXIxMCxRV09SRFtyOSoxK3IxNF0KIAltb3YJcmJwLHI4CiAJbXVsCXJieApAQCAtNTkwLDI1ICs4NDgsMTEgQEAKIAltb3YJcmF4LFFXT1JEW3JjeF0KIAlhZGMJcmR4LDAKIAotCW1vdnEJeG1tMCxRV09SRFsoKCgtOTYpKSkrcjEyXQotCW1vdnEJeG1tMSxRV09SRFsoKC0zMikpK3IxMl0KLQlwYW5kCXhtbTAseG1tNAotCW1vdnEJeG1tMixRV09SRFszMityMTJdCi0JcGFuZAl4bW0xLHhtbTUKLQltb3ZxCXhtbTMsUVdPUkRbOTYrcjEyXQotCiAJaW11bAlyYnAscjEwCi1EQgkweDY3CiAJbW92CXIxMSxyZHgKIAltb3YJUVdPUkRbcjE0XSxyZGkKIAotCXBhbmQJeG1tMix4bW02Ci0JcG9yCXhtbTAseG1tMQotCXBhbmQJeG1tMyx4bW03Ci0JcG9yCXhtbTAseG1tMgogCWxlYQlyMTQsW3I5KjErcjE0XQotCWxlYQlyMTIsWzI1NityMTJdCi0JcG9yCXhtbTAseG1tMwogCiAJbXVsCXJicAogCWFkZAlyMTAscmF4CkBAIC02MTgsNyArODYyLDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjExLHJheAotCW1vdglyYXgsUVdPUkRbMTYrcmN4XQorCW1vdglyYXgsUVdPUkRbOCtyY3hdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMSxRV09SRFs4K3IxNF0KIAlhZGMJcmR4LDAKQEAgLTYzMCw3ICs4NzQsNyBAQAogCWFkYwlyZHgsMAogCWFkZAlyZGkscjExCiAJbGVhCXIxNSxbMzIrcjldCi0JbGVhCXJjeCxbNjQrcmN4XQorCWxlYQlyY3gsWzMyK3JjeF0KIAlhZGMJcmR4LDAKIAltb3YJcjEzLHJkeAogCWptcAlORUFSICRMJGlubmVyNHgKQEAgLTYzOSw3ICs4ODMsNyBAQAogJEwkaW5uZXI0eDoKIAltdWwJcmJ4CiAJYWRkCXIxMCxyYXgKLQltb3YJcmF4LFFXT1JEWygoLTMyKSkrcmN4XQorCW1vdglyYXgsUVdPUkRbKCgtMTYpKStyY3hdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMCxRV09SRFsxNityMTRdCiAJbGVhCXIxNCxbMzIrcjE0XQpAQCAtNjU3LDcgKzkwMSw3IEBACiAKIAltdWwJcmJ4CiAJYWRkCXIxMSxyYXgKLQltb3YJcmF4LFFXT1JEWygoLTE2KSkrcmN4XQorCW1vdglyYXgsUVdPUkRbKCgtOCkpK3JjeF0KIAlhZGMJcmR4LDAKIAlhZGQJcjExLFFXT1JEWygoLTgpKStyMTRdCiAJYWRjCXJkeCwwCkBAIC02OTEsNyArOTM1LDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjExLHJheAotCW1vdglyYXgsUVdPUkRbMTYrcmN4XQorCW1vdglyYXgsUVdPUkRbOCtyY3hdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMSxRV09SRFs4K3IxNF0KIAlhZGMJcmR4LDAKQEAgLTcwMiw3ICs5NDYsNyBAQAogCW1vdglyYXgsUVdPUkRbMTYrcjE1KjErcnNpXQogCWFkYwlyZHgsMAogCWFkZAlyZGkscjExCi0JbGVhCXJjeCxbNjQrcmN4XQorCWxlYQlyY3gsWzMyK3JjeF0KIAlhZGMJcmR4LDAKIAltb3YJUVdPUkRbKCgtOCkpK3IxNF0scjEzCiAJbW92CXIxMyxyZHgKQEAgLTcxMiw3ICs5NTYsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTAscmF4Ci0JbW92CXJheCxRV09SRFsoKC0zMikpK3JjeF0KKwltb3YJcmF4LFFXT1JEWygoLTE2KSkrcmN4XQogCWFkYwlyZHgsMAogCWFkZAlyMTAsUVdPUkRbMTYrcjE0XQogCWxlYQlyMTQsWzMyK3IxNF0KQEAgLTczMSw3ICs5NzUsNyBAQAogCW11bAlyYngKIAlhZGQJcjExLHJheAogCW1vdglyYXgscmJwCi0JbW92CXJicCxRV09SRFsoKC0xNikpK3JjeF0KKwltb3YJcmJwLFFXT1JEWygoLTgpKStyY3hdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMSxRV09SRFsoKC04KSkrcjE0XQogCWFkYwlyZHgsMApAQCAtNzQ2LDkgKzk5MCw4IEBACiAJbW92CVFXT1JEWygoLTI0KSkrcjE0XSxyMTMKIAltb3YJcjEzLHJkeAogCi1EQgkxMDIsNzIsMTUsMTI2LDE5NQogCW1vdglRV09SRFsoKC0xNikpK3IxNF0scmRpCi0JbGVhCXJjeCxbcjkqMityY3hdCisJbGVhCXJjeCxbcjkqMStyY3hdCiAKIAl4b3IJcmRpLHJkaQogCWFkZAlyMTMscjEwCkBAIC03NTksMTYgKzEwMDIsMjMgQEAKIAogCWNtcAlyMTIsUVdPUkRbKCgxNis4KSkrcnNwXQogCWpiCU5FQVIgJEwkb3V0ZXI0eAorCXhvcglyYXgscmF4CiAJc3ViCXJicCxyMTMKIAlhZGMJcjE1LHIxNQogCW9yCXJkaSxyMTUKLQl4b3IJcmRpLDEKKwlzdWIJcmF4LHJkaQogCWxlYQlyYngsW3I5KjErcjE0XQotCWxlYQlyYnAsW3JkaSo4K3JjeF0KKwltb3YJcjEyLFFXT1JEW3JjeF0KKwlsZWEJcmJwLFtyY3hdCiAJbW92CXJjeCxyOQogCXNhcglyY3gsMysyCiAJbW92CXJkaSxRV09SRFsoKDU2KzgpKStyc3BdCi0Jam1wCU5FQVIgJEwkc3FyNHhfc3ViCisJZGVjCXIxMgorCXhvcglyMTAscjEwCisJbW92CXIxMyxRV09SRFs4K3JicF0KKwltb3YJcjE0LFFXT1JEWzE2K3JicF0KKwltb3YJcjE1LFFXT1JEWzI0K3JicF0KKwlqbXAJTkVBUiAkTCRzcXI0eF9zdWJfZW50cnkKIAogZ2xvYmFsCWJuX3Bvd2VyNQogCkBAIC03OTMsMTIgKzEwNDMsOSBAQAogCXB1c2gJcjEzCiAJcHVzaAlyMTQKIAlwdXNoCXIxNQotCWxlYQlyc3AsWygoLTQwKSkrcnNwXQotCW1vdmFwcwlYTU1XT1JEW3JzcF0seG1tNgotCW1vdmFwcwlYTU1XT1JEWzE2K3JzcF0seG1tNwotCW1vdglyMTBkLHI5ZAorCiAJc2hsCXI5ZCwzCi0Jc2hsCXIxMGQsMysyCisJbGVhCXIxMGQsW3I5KjIrcjldCiAJbmVnCXI5CiAJbW92CXI4LFFXT1JEW3I4XQogCkBAIC04MDgsMTkgKzEwNTUsMjAgQEAKIAogCiAKLQlsZWEJcjExLFsoKC02NCkpK3I5KjIrcnNwXQotCXN1YglyMTEscnNpCisKKwlsZWEJcjExLFsoKC0zMjApKStyOSoyK3JzcF0KKwlzdWIJcjExLHJkaQogCWFuZAlyMTEsNDA5NQogCWNtcAlyMTAscjExCiAJamIJTkVBUiAkTCRwd3Jfc3BfYWx0CiAJc3ViCXJzcCxyMTEKLQlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQorCWxlYQlyc3AsWygoLTMyMCkpK3I5KjIrcnNwXQogCWptcAlORUFSICRMJHB3cl9zcF9kb25lCiAKIEFMSUdOCTMyCiAkTCRwd3Jfc3BfYWx0OgotCWxlYQlyMTAsWygoNDA5Ni02NCkpK3I5KjJdCi0JbGVhCXJzcCxbKCgtNjQpKStyOSoyK3JzcF0KKwlsZWEJcjEwLFsoKDQwOTYtMzIwKSkrcjkqMl0KKwlsZWEJcnNwLFsoKC0zMjApKStyOSoyK3JzcF0KIAlzdWIJcjExLHIxMAogCW1vdglyMTAsMAogCWNtb3ZjCXIxMSxyMTAKQEAgLTg0OCwxMCArMTA5NiwxNSBAQAogREIJMTAyLDcyLDE1LDExMCwyMjYKIAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAljYWxsCV9fYm5fc3FyOHhfaW50ZXJuYWwKKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAJY2FsbAlfX2JuX3Nxcjh4X2ludGVybmFsCisJY2FsbAlfX2JuX3Bvc3Q0eF9pbnRlcm5hbAogCWNhbGwJX19ibl9zcXI4eF9pbnRlcm5hbAorCWNhbGwJX19ibl9wb3N0NHhfaW50ZXJuYWwKIAljYWxsCV9fYm5fc3FyOHhfaW50ZXJuYWwKKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAKIERCCTEwMiw3MiwxNSwxMjYsMjA5CiBEQgkxMDIsNzIsMTUsMTI2LDIyNgpAQCAtMTM5Nyw5ICsxNjUwLDkgQEAKIAltb3YJUVdPUkRbKCgtMTYpKStyZGldLHJieAogCW1vdglRV09SRFsoKC04KSkrcmRpXSxyOAogREIJMTAyLDcyLDE1LDEyNiwyMTMKLXNxcjh4X3JlZHVjdGlvbjoKK19fYm5fc3FyOHhfcmVkdWN0aW9uOgogCXhvcglyYXgscmF4Ci0JbGVhCXJjeCxbcjkqMityYnBdCisJbGVhCXJjeCxbcmJwKjErcjldCiAJbGVhCXJkeCxbKCg0OCs4KSkrcjkqMityc3BdCiAJbW92CVFXT1JEWygoMCs4KSkrcnNwXSxyY3gKIAlsZWEJcmRpLFsoKDQ4KzgpKStyOSoxK3JzcF0KQEAgLTE0MzIsMTQgKzE2ODUsMTQgQEAKIEFMSUdOCTMyCiAkTCQ4eF9yZWR1Y2U6CiAJbXVsCXJieAotCW1vdglyYXgsUVdPUkRbMTYrcmJwXQorCW1vdglyYXgsUVdPUkRbOCtyYnBdCiAJbmVnCXI4CiAJbW92CXI4LHJkeAogCWFkYwlyOCwwCiAKIAltdWwJcmJ4CiAJYWRkCXI5LHJheAotCW1vdglyYXgsUVdPUkRbMzIrcmJwXQorCW1vdglyYXgsUVdPUkRbMTYrcmJwXQogCWFkYwlyZHgsMAogCWFkZAlyOCxyOQogCW1vdglRV09SRFsoKDQ4LTgrOCkpK3JjeCo4K3JzcF0scmJ4CkBAIC0xNDQ4LDcgKzE3MDEsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTAscmF4Ci0JbW92CXJheCxRV09SRFs0OCtyYnBdCisJbW92CXJheCxRV09SRFsyNCtyYnBdCiAJYWRjCXJkeCwwCiAJYWRkCXI5LHIxMAogCW1vdglyc2ksUVdPUkRbKCgzMis4KSkrcnNwXQpAQCAtMTQ1Nyw3ICsxNzEwLDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjExLHJheAotCW1vdglyYXgsUVdPUkRbNjQrcmJwXQorCW1vdglyYXgsUVdPUkRbMzIrcmJwXQogCWFkYwlyZHgsMAogCWltdWwJcnNpLHI4CiAJYWRkCXIxMCxyMTEKQEAgLTE0NjYsNyArMTcxOSw3IEBACiAKIAltdWwJcmJ4CiAJYWRkCXIxMixyYXgKLQltb3YJcmF4LFFXT1JEWzgwK3JicF0KKwltb3YJcmF4LFFXT1JEWzQwK3JicF0KIAlhZGMJcmR4LDAKIAlhZGQJcjExLHIxMgogCW1vdglyMTIscmR4CkBAIC0xNDc0LDcgKzE3MjcsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTMscmF4Ci0JbW92CXJheCxRV09SRFs5NityYnBdCisJbW92CXJheCxRV09SRFs0OCtyYnBdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMixyMTMKIAltb3YJcjEzLHJkeApAQCAtMTQ4Miw3ICsxNzM1LDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjE0LHJheAotCW1vdglyYXgsUVdPUkRbMTEyK3JicF0KKwltb3YJcmF4LFFXT1JEWzU2K3JicF0KIAlhZGMJcmR4LDAKIAlhZGQJcjEzLHIxNAogCW1vdglyMTQscmR4CkBAIC0xNTAwLDcgKzE3NTMsNyBAQAogCWRlYwllY3gKIAlqbnoJTkVBUiAkTCQ4eF9yZWR1Y2UKIAotCWxlYQlyYnAsWzEyOCtyYnBdCisJbGVhCXJicCxbNjQrcmJwXQogCXhvcglyYXgscmF4CiAJbW92CXJkeCxRV09SRFsoKDgrOCkpK3JzcF0KIAljbXAJcmJwLFFXT1JEWygoMCs4KSkrcnNwXQpAQCAtMTUyNiwxNCArMTc3OSwxNCBAQAogJEwkOHhfdGFpbDoKIAltdWwJcmJ4CiAJYWRkCXI4LHJheAotCW1vdglyYXgsUVdPUkRbMTYrcmJwXQorCW1vdglyYXgsUVdPUkRbOCtyYnBdCiAJbW92CVFXT1JEW3JkaV0scjgKIAltb3YJcjgscmR4CiAJYWRjCXI4LDAKIAogCW11bAlyYngKIAlhZGQJcjkscmF4Ci0JbW92CXJheCxRV09SRFszMityYnBdCisJbW92CXJheCxRV09SRFsxNityYnBdCiAJYWRjCXJkeCwwCiAJYWRkCXI4LHI5CiAJbGVhCXJkaSxbOCtyZGldCkBAIC0xNTQyLDcgKzE3OTUsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTAscmF4Ci0JbW92CXJheCxRV09SRFs0OCtyYnBdCisJbW92CXJheCxRV09SRFsyNCtyYnBdCiAJYWRjCXJkeCwwCiAJYWRkCXI5LHIxMAogCW1vdglyMTAscmR4CkBAIC0xNTUwLDcgKzE4MDMsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTEscmF4Ci0JbW92CXJheCxRV09SRFs2NCtyYnBdCisJbW92CXJheCxRV09SRFszMityYnBdCiAJYWRjCXJkeCwwCiAJYWRkCXIxMCxyMTEKIAltb3YJcjExLHJkeApAQCAtMTU1OCw3ICsxODExLDcgQEAKIAogCW11bAlyYngKIAlhZGQJcjEyLHJheAotCW1vdglyYXgsUVdPUkRbODArcmJwXQorCW1vdglyYXgsUVdPUkRbNDArcmJwXQogCWFkYwlyZHgsMAogCWFkZAlyMTEscjEyCiAJbW92CXIxMixyZHgKQEAgLTE1NjYsNyArMTgxOSw3IEBACiAKIAltdWwJcmJ4CiAJYWRkCXIxMyxyYXgKLQltb3YJcmF4LFFXT1JEWzk2K3JicF0KKwltb3YJcmF4LFFXT1JEWzQ4K3JicF0KIAlhZGMJcmR4LDAKIAlhZGQJcjEyLHIxMwogCW1vdglyMTMscmR4CkBAIC0xNTc0LDcgKzE4MjcsNyBAQAogCiAJbXVsCXJieAogCWFkZAlyMTQscmF4Ci0JbW92CXJheCxRV09SRFsxMTIrcmJwXQorCW1vdglyYXgsUVdPUkRbNTYrcmJwXQogCWFkYwlyZHgsMAogCWFkZAlyMTMscjE0CiAJbW92CXIxNCxyZHgKQEAgLTE1OTIsNyArMTg0NSw3IEBACiAJZGVjCWVjeAogCWpueglORUFSICRMJDh4X3RhaWwKIAotCWxlYQlyYnAsWzEyOCtyYnBdCisJbGVhCXJicCxbNjQrcmJwXQogCW1vdglyZHgsUVdPUkRbKCg4KzgpKStyc3BdCiAJY21wCXJicCxRV09SRFsoKDArOCkpK3JzcF0KIAlqYWUJTkVBUiAkTCQ4eF90YWlsX2RvbmUKQEAgLTE2MTYsNiArMTg2OSwxNSBAQAogQUxJR04JMzIKICRMJDh4X3RhaWxfZG9uZToKIAlhZGQJcjgsUVdPUkRbcmR4XQorCWFkYwlyOSwwCisJYWRjCXIxMCwwCisJYWRjCXIxMSwwCisJYWRjCXIxMiwwCisJYWRjCXIxMywwCisJYWRjCXIxNCwwCisJYWRjCXIxNSwwCisKKwogCXhvcglyYXgscmF4CiAKIAluZWcJcnNpCkBAIC0xNjI5LDcgKzE4OTEsNyBAQAogCWFkYwlyMTQsUVdPUkRbNDgrcmRpXQogCWFkYwlyMTUsUVdPUkRbNTYrcmRpXQogCWFkYwlyYXgsMAotCW1vdglyY3gsUVdPUkRbKCgtMTYpKStyYnBdCisJbW92CXJjeCxRV09SRFsoKC04KSkrcmJwXQogCXhvcglyc2kscnNpCiAKIERCCTEwMiw3MiwxNSwxMjYsMjEzCkBAIC0xNjQ3LDQwICsxOTA5LDU4IEBACiAKIAljbXAJcmRpLHJkeAogCWpiCU5FQVIgJEwkOHhfcmVkdWN0aW9uX2xvb3AKKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKIAotCXN1YglyY3gscjE1Ci0JbGVhCXJieCxbcjkqMStyZGldCi0JYWRjCXJzaSxyc2kKLQltb3YJcmN4LHI5Ci0Jb3IJcmF4LHJzaQotREIJMTAyLDcyLDE1LDEyNiwyMDcKLQl4b3IJcmF4LDEKLURCCTEwMiw3MiwxNSwxMjYsMjA2Ci0JbGVhCXJicCxbcmF4KjgrcmJwXQotCXNhcglyY3gsMysyCi0Jam1wCU5FQVIgJEwkc3FyNHhfc3ViCiAKIEFMSUdOCTMyCitfX2JuX3Bvc3Q0eF9pbnRlcm5hbDoKKwltb3YJcjEyLFFXT1JEW3JicF0KKwlsZWEJcmJ4LFtyOSoxK3JkaV0KKwltb3YJcmN4LHI5CitEQgkxMDIsNzIsMTUsMTI2LDIwNworCW5lZwlyYXgKK0RCCTEwMiw3MiwxNSwxMjYsMjA2CisJc2FyCXJjeCwzKzIKKwlkZWMJcjEyCisJeG9yCXIxMCxyMTAKKwltb3YJcjEzLFFXT1JEWzgrcmJwXQorCW1vdglyMTQsUVdPUkRbMTYrcmJwXQorCW1vdglyMTUsUVdPUkRbMjQrcmJwXQorCWptcAlORUFSICRMJHNxcjR4X3N1Yl9lbnRyeQorCitBTElHTgkxNgogJEwkc3FyNHhfc3ViOgotREIJMHg2NgotCW1vdglyMTIsUVdPUkRbcmJ4XQotCW1vdglyMTMsUVdPUkRbOCtyYnhdCi0Jc2JiCXIxMixRV09SRFtyYnBdCi0JbW92CXIxNCxRV09SRFsxNityYnhdCi0Jc2JiCXIxMyxRV09SRFsxNityYnBdCi0JbW92CXIxNSxRV09SRFsyNCtyYnhdCi0JbGVhCXJieCxbMzIrcmJ4XQotCXNiYglyMTQsUVdPUkRbMzIrcmJwXQorCW1vdglyMTIsUVdPUkRbcmJwXQorCW1vdglyMTMsUVdPUkRbOCtyYnBdCisJbW92CXIxNCxRV09SRFsxNityYnBdCisJbW92CXIxNSxRV09SRFsyNCtyYnBdCiskTCRzcXI0eF9zdWJfZW50cnk6CisJbGVhCXJicCxbMzIrcmJwXQorCW5vdAlyMTIKKwlub3QJcjEzCisJbm90CXIxNAorCW5vdAlyMTUKKwlhbmQJcjEyLHJheAorCWFuZAlyMTMscmF4CisJYW5kCXIxNCxyYXgKKwlhbmQJcjE1LHJheAorCisJbmVnCXIxMAorCWFkYwlyMTIsUVdPUkRbcmJ4XQorCWFkYwlyMTMsUVdPUkRbOCtyYnhdCisJYWRjCXIxNCxRV09SRFsxNityYnhdCisJYWRjCXIxNSxRV09SRFsyNCtyYnhdCiAJbW92CVFXT1JEW3JkaV0scjEyCi0Jc2JiCXIxNSxRV09SRFs0OCtyYnBdCi0JbGVhCXJicCxbNjQrcmJwXQorCWxlYQlyYngsWzMyK3JieF0KIAltb3YJUVdPUkRbOCtyZGldLHIxMworCXNiYglyMTAscjEwCiAJbW92CVFXT1JEWzE2K3JkaV0scjE0CiAJbW92CVFXT1JEWzI0K3JkaV0scjE1CiAJbGVhCXJkaSxbMzIrcmRpXQogCiAJaW5jCXJjeAogCWpueglORUFSICRMJHNxcjR4X3N1YgorCiAJbW92CXIxMCxyOQogCW5lZwlyOQogCURCCTBGM2gsMEMzaAkJO3JlcHJldApAQCAtMTcxOCwxMyArMTk5OCw5IEBACiAJcHVzaAlyMTMKIAlwdXNoCXIxNAogCXB1c2gJcjE1Ci0JbGVhCXJzcCxbKCgtNDApKStyc3BdCi0JbW92YXBzCVhNTVdPUkRbcnNwXSx4bW02Ci0JbW92YXBzCVhNTVdPUkRbMTYrcnNwXSx4bW03Ci1EQgkweDY3Ci0JbW92CXIxMGQscjlkCisKIAlzaGwJcjlkLDMKLQlzaGwJcjEwZCwzKzIKKwlsZWEJcjEwLFtyOSoyK3I5XQogCW5lZwlyOQogCW1vdglyOCxRV09SRFtyOF0KIApAQCAtMTczNCwxOSArMjAxMCwyMCBAQAogCiAKIAotCWxlYQlyMTEsWygoLTY0KSkrcjkqMityc3BdCi0Jc3ViCXIxMSxyc2kKKworCWxlYQlyMTEsWygoLTMyMCkpK3I5KjIrcnNwXQorCXN1YglyMTEscmRpCiAJYW5kCXIxMSw0MDk1CiAJY21wCXIxMCxyMTEKIAlqYglORUFSICRMJGZyb21fc3BfYWx0CiAJc3ViCXJzcCxyMTEKLQlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQorCWxlYQlyc3AsWygoLTMyMCkpK3I5KjIrcnNwXQogCWptcAlORUFSICRMJGZyb21fc3BfZG9uZQogCiBBTElHTgkzMgogJEwkZnJvbV9zcF9hbHQ6Ci0JbGVhCXIxMCxbKCg0MDk2LTY0KSkrcjkqMl0KLQlsZWEJcnNwLFsoKC02NCkpK3I5KjIrcnNwXQorCWxlYQlyMTAsWygoNDA5Ni0zMjApKStyOSoyXQorCWxlYQlyc3AsWygoLTMyMCkpK3I5KjIrcnNwXQogCXN1YglyMTEscjEwCiAJbW92CXIxMCwwCiAJY21vdmMJcjExLHIxMApAQCAtMTc5Nyw3ICsyMDc0LDggQEAKIERCCTB4NjcKIAltb3YJcmJwLHJjeAogREIJMTAyLDczLDE1LDExMCwyMTgKLQljYWxsCXNxcjh4X3JlZHVjdGlvbgorCWNhbGwJX19ibl9zcXI4eF9yZWR1Y3Rpb24KKwljYWxsCV9fYm5fcG9zdDR4X2ludGVybmFsCiAKIAlweG9yCXhtbTAseG1tMAogCWxlYQlyYXgsWzQ4K3JzcF0KQEAgLTE4NDcsNTUgKzIxMjUsMTcxIEBACiAKIGdsb2JhbAlibl9nYXRoZXI1CiAKLUFMSUdOCTE2CitBTElHTgkzMgogYm5fZ2F0aGVyNToKICRMJFNFSF9iZWdpbl9ibl9nYXRoZXI1OgogCi1EQgkweDQ4LDB4ODMsMHhlYywweDI4Ci1EQgkweDBmLDB4MjksMHgzNCwweDI0Ci1EQgkweDBmLDB4MjksMHg3YywweDI0LDB4MTAKLQltb3YJcjExZCxyOWQKLQlzaHIJcjlkLDMKLQlhbmQJcjExLDcKLQlub3QJcjlkCi0JbGVhCXJheCxbJEwkbWFnaWNfbWFza3NdCi0JYW5kCXI5ZCwzCi0JbGVhCXI4LFsxMjgrcjExKjgrcjhdCi0JbW92cQl4bW00LFFXT1JEW3I5KjgrcmF4XQotCW1vdnEJeG1tNSxRV09SRFs4K3I5KjgrcmF4XQotCW1vdnEJeG1tNixRV09SRFsxNityOSo4K3JheF0KLQltb3ZxCXhtbTcsUVdPUkRbMjQrcjkqOCtyYXhdCi0Jam1wCU5FQVIgJEwkZ2F0aGVyCi1BTElHTgkxNgotJEwkZ2F0aGVyOgotCW1vdnEJeG1tMCxRV09SRFsoKCgtMTI4KSkpK3I4XQotCW1vdnEJeG1tMSxRV09SRFsoKC02NCkpK3I4XQotCXBhbmQJeG1tMCx4bW00Ci0JbW92cQl4bW0yLFFXT1JEW3I4XQotCXBhbmQJeG1tMSx4bW01Ci0JbW92cQl4bW0zLFFXT1JEWzY0K3I4XQotCXBhbmQJeG1tMix4bW02Ci0JcG9yCXhtbTAseG1tMQotCXBhbmQJeG1tMyx4bW03Ci1EQgkweDY3LDB4NjcKLQlwb3IJeG1tMCx4bW0yCi0JbGVhCXI4LFsyNTYrcjhdCi0JcG9yCXhtbTAseG1tMworREIJMHg0YywweDhkLDB4MTQsMHgyNAorREIJMHg0OCwweDgxLDB4ZWMsMHgwOCwweDAxLDB4MDAsMHgwMAorCWxlYQlyYXgsWyRMJGluY10KKwlhbmQJcnNwLC0xNgogCisJbW92ZAl4bW01LHI5ZAorCW1vdmRxYQl4bW0wLFhNTVdPUkRbcmF4XQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbMTYrcmF4XQorCWxlYQlyMTEsWzEyOCtyOF0KKwlsZWEJcmF4LFsxMjgrcnNwXQorCisJcHNodWZkCXhtbTUseG1tNSwwCisJbW92ZHFhCXhtbTQseG1tMQorCW1vdmRxYQl4bW0yLHhtbTEKKwlwYWRkZAl4bW0xLHhtbTAKKwlwY21wZXFkCXhtbTAseG1tNQorCW1vdmRxYQl4bW0zLHhtbTQKKworCXBhZGRkCXhtbTIseG1tMQorCXBjbXBlcWQJeG1tMSx4bW01CisJbW92ZHFhCVhNTVdPUkRbKC0xMjgpK3JheF0seG1tMAorCW1vdmRxYQl4bW0wLHhtbTQKKworCXBhZGRkCXhtbTMseG1tMgorCXBjbXBlcWQJeG1tMix4bW01CisJbW92ZHFhCVhNTVdPUkRbKC0xMTIpK3JheF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbKC05NikrcmF4XSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CisJbW92ZHFhCVhNTVdPUkRbKC04MCkrcmF4XSx4bW0zCisJbW92ZHFhCXhtbTMseG1tNAorCisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTUKKwltb3ZkcWEJWE1NV09SRFsoLTY0KStyYXhdLHhtbTAKKwltb3ZkcWEJeG1tMCx4bW00CisKKwlwYWRkZAl4bW0zLHhtbTIKKwlwY21wZXFkCXhtbTIseG1tNQorCW1vdmRxYQlYTU1XT1JEWygtNDgpK3JheF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbKC0zMikrcmF4XSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CisJbW92ZHFhCVhNTVdPUkRbKC0xNikrcmF4XSx4bW0zCisJbW92ZHFhCXhtbTMseG1tNAorCisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTUKKwltb3ZkcWEJWE1NV09SRFtyYXhdLHhtbTAKKwltb3ZkcWEJeG1tMCx4bW00CisKKwlwYWRkZAl4bW0zLHhtbTIKKwlwY21wZXFkCXhtbTIseG1tNQorCW1vdmRxYQlYTU1XT1JEWzE2K3JheF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbMzIrcmF4XSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhZGRkCXhtbTEseG1tMAorCXBjbXBlcWQJeG1tMCx4bW01CisJbW92ZHFhCVhNTVdPUkRbNDgrcmF4XSx4bW0zCisJbW92ZHFhCXhtbTMseG1tNAorCisJcGFkZGQJeG1tMix4bW0xCisJcGNtcGVxZAl4bW0xLHhtbTUKKwltb3ZkcWEJWE1NV09SRFs2NCtyYXhdLHhtbTAKKwltb3ZkcWEJeG1tMCx4bW00CisKKwlwYWRkZAl4bW0zLHhtbTIKKwlwY21wZXFkCXhtbTIseG1tNQorCW1vdmRxYQlYTU1XT1JEWzgwK3JheF0seG1tMQorCW1vdmRxYQl4bW0xLHhtbTQKKworCXBhZGRkCXhtbTAseG1tMworCXBjbXBlcWQJeG1tMyx4bW01CisJbW92ZHFhCVhNTVdPUkRbOTYrcmF4XSx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCW1vdmRxYQlYTU1XT1JEWzExMityYXhdLHhtbTMKKwlqbXAJTkVBUiAkTCRnYXRoZXIKKworQUxJR04JMzIKKyRMJGdhdGhlcjoKKwlweG9yCXhtbTQseG1tNAorCXB4b3IJeG1tNSx4bW01CisJbW92ZHFhCXhtbTAsWE1NV09SRFsoKC0xMjgpKStyMTFdCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKC0xMTIpKStyMTFdCisJbW92ZHFhCXhtbTIsWE1NV09SRFsoKC05NikpK3IxMV0KKwlwYW5kCXhtbTAsWE1NV09SRFsoKC0xMjgpKStyYXhdCisJbW92ZHFhCXhtbTMsWE1NV09SRFsoKC04MCkpK3IxMV0KKwlwYW5kCXhtbTEsWE1NV09SRFsoKC0xMTIpKStyYXhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWygoLTk2KSkrcmF4XQorCXBvcgl4bW01LHhtbTEKKwlwYW5kCXhtbTMsWE1NV09SRFsoKC04MCkpK3JheF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCW1vdmRxYQl4bW0wLFhNTVdPUkRbKCgtNjQpKStyMTFdCisJbW92ZHFhCXhtbTEsWE1NV09SRFsoKC00OCkpK3IxMV0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWygoLTMyKSkrcjExXQorCXBhbmQJeG1tMCxYTU1XT1JEWygoLTY0KSkrcmF4XQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbKCgtMTYpKStyMTFdCisJcGFuZAl4bW0xLFhNTVdPUkRbKCgtNDgpKStyYXhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWygoLTMyKSkrcmF4XQorCXBvcgl4bW01LHhtbTEKKwlwYW5kCXhtbTMsWE1NV09SRFsoKC0xNikpK3JheF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCW1vdmRxYQl4bW0wLFhNTVdPUkRbcjExXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbMTYrcjExXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbMzIrcjExXQorCXBhbmQJeG1tMCxYTU1XT1JEW3JheF0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWzQ4K3IxMV0KKwlwYW5kCXhtbTEsWE1NV09SRFsxNityYXhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWzMyK3JheF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbNDgrcmF4XQorCXBvcgl4bW00LHhtbTIKKwlwb3IJeG1tNSx4bW0zCisJbW92ZHFhCXhtbTAsWE1NV09SRFs2NCtyMTFdCisJbW92ZHFhCXhtbTEsWE1NV09SRFs4MCtyMTFdCisJbW92ZHFhCXhtbTIsWE1NV09SRFs5NityMTFdCisJcGFuZAl4bW0wLFhNTVdPUkRbNjQrcmF4XQorCW1vdmRxYQl4bW0zLFhNTVdPUkRbMTEyK3IxMV0KKwlwYW5kCXhtbTEsWE1NV09SRFs4MCtyYXhdCisJcG9yCXhtbTQseG1tMAorCXBhbmQJeG1tMixYTU1XT1JEWzk2K3JheF0KKwlwb3IJeG1tNSx4bW0xCisJcGFuZAl4bW0zLFhNTVdPUkRbMTEyK3JheF0KKwlwb3IJeG1tNCx4bW0yCisJcG9yCXhtbTUseG1tMworCXBvcgl4bW00LHhtbTUKKwlsZWEJcjExLFsyNTYrcjExXQorCXBzaHVmZAl4bW0wLHhtbTQsMHg0ZQorCXBvcgl4bW0wLHhtbTQKIAltb3ZxCVFXT1JEW3JjeF0seG1tMAogCWxlYQlyY3gsWzgrcmN4XQogCXN1YgllZHgsMQogCWpueglORUFSICRMJGdhdGhlcgotCW1vdmFwcwl4bW02LFhNTVdPUkRbcnNwXQotCW1vdmFwcwl4bW03LFhNTVdPUkRbMTYrcnNwXQotCWxlYQlyc3AsWzQwK3JzcF0KKworCWxlYQlyc3AsW3IxMF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKICRMJFNFSF9lbmRfYm5fZ2F0aGVyNToKIAogQUxJR04JNjQKLSRMJG1hZ2ljX21hc2tzOgotCURECTAsMCwwLDAsMCwwLC0xLC0xCi0JREQJMCwwLDAsMCwwLDAsMCwwCiskTCRpbmM6CisJREQJMCwwLDEsMQorCURECTIsMiwyLDIKIERCCTc3LDExMSwxMTAsMTE2LDEwMywxMTEsMTA5LDEwMSwxMTQsMTIxLDMyLDc3LDExNywxMDgsMTE2LDEwNQogREIJMTEyLDEwOCwxMDUsOTksOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExOSwxMDUsMTE2LDEwNCwzMiwxMTUKIERCCTk5LDk3LDExNiwxMTYsMTAxLDExNCw0NywxMDMsOTcsMTE2LDEwNCwxMDEsMTE0LDMyLDEwMiwxMTEKQEAgLTE5MzcsMTkgKzIzMzEsMTYgQEAKIAogCWxlYQlyMTAsWyRMJG11bF9lcGlsb2d1ZV0KIAljbXAJcmJ4LHIxMAotCWpiCU5FQVIgJEwkYm9keV80MAorCWphCU5FQVIgJEwkYm9keV80MAogCiAJbW92CXIxMCxRV09SRFsxOTIrcjhdCiAJbW92CXJheCxRV09SRFs4K3IxMCo4K3JheF0KKwogCWptcAlORUFSICRMJGJvZHlfcHJvY2VlZAogCiAkTCRib2R5XzQwOgogCW1vdglyYXgsUVdPUkRbNDArcmF4XQogJEwkYm9keV9wcm9jZWVkOgotCi0JbW92YXBzCXhtbTAsWE1NV09SRFsoKC04OCkpK3JheF0KLQltb3ZhcHMJeG1tMSxYTU1XT1JEWygoLTcyKSkrcmF4XQotCiAJbW92CXJieCxRV09SRFsoKC04KSkrcmF4XQogCW1vdglyYnAsUVdPUkRbKCgtMTYpKStyYXhdCiAJbW92CXIxMixRV09SRFsoKC0yNCkpK3JheF0KQEAgLTE5NjIsOCArMjM1Myw2IEBACiAJbW92CVFXT1JEWzIyNCtyOF0scjEzCiAJbW92CVFXT1JEWzIzMityOF0scjE0CiAJbW92CVFXT1JEWzI0MCtyOF0scjE1Ci0JbW92dXBzCVhNTVdPUkRbNTEyK3I4XSx4bW0wCi0JbW92dXBzCVhNTVdPUkRbNTI4K3I4XSx4bW0xCiAKICRMJGNvbW1vbl9zZWhfdGFpbDoKIAltb3YJcmRpLFFXT1JEWzgrcmF4XQpAQCAtMjA0OSw4ICsyNDM4LDcgQEAKIAlERAkkTCRmcm9tX2JvZHkgd3J0IC4uaW1hZ2ViYXNlLCRMJGZyb21fZXBpbG9ndWUgd3J0IC4uaW1hZ2ViYXNlCiBBTElHTgk4CiAkTCRTRUhfaW5mb19ibl9nYXRoZXI1OgotREIJMHgwMSwweDBkLDB4MDUsMHgwMAotREIJMHgwZCwweDc4LDB4MDEsMHgwMAotREIJMHgwOCwweDY4LDB4MDAsMHgwMAotREIJMHgwNCwweDQyLDB4MDAsMHgwMAorREIJMHgwMSwweDBiLDB4MDMsMHgwYQorREIJMHgwYiwweDAxLDB4MjEsMHgwMAorREIJMHgwNCwweGEzLDB4MDAsMHgwMAogQUxJR04JOApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL2NoYWNoYS9jaGFjaGEteDg2XzY0LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZlYmQyZQotLS0gL2Rldi9udWxsCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9jaGFjaGEvY2hhY2hhLXg4Nl82NC5hc20KQEAgLTAsMCArMSwxNjg5IEBACitkZWZhdWx0CXJlbAorJWRlZmluZSBYTU1XT1JECislZGVmaW5lIFlNTVdPUkQKKyVkZWZpbmUgWk1NV09SRAorc2VjdGlvbgkudGV4dCBjb2RlIGFsaWduPTY0CisKKworRVhURVJOCU9QRU5TU0xfaWEzMmNhcF9QCisKK0FMSUdOCTY0CiskTCR6ZXJvOgorCURECTAsMCwwLDAKKyRMJG9uZToKKwlERAkxLDAsMCwwCiskTCRpbmM6CisJREQJMCwxLDIsMworJEwkZm91cjoKKwlERAk0LDQsNCw0CiskTCRpbmN5OgorCURECTAsMiw0LDYsMSwzLDUsNworJEwkZWlnaHQ6CisJREQJOCw4LDgsOCw4LDgsOCw4CiskTCRyb3QxNjoKK0RCCTB4MiwweDMsMHgwLDB4MSwweDYsMHg3LDB4NCwweDUsMHhhLDB4YiwweDgsMHg5LDB4ZSwweGYsMHhjLDB4ZAorJEwkcm90MjQ6CitEQgkweDMsMHgwLDB4MSwweDIsMHg3LDB4NCwweDUsMHg2LDB4YiwweDgsMHg5LDB4YSwweGYsMHhjLDB4ZCwweGUKKyRMJHNpZ21hOgorREIJMTAxLDEyMCwxMTIsOTcsMTEwLDEwMCwzMiw1MSw1MCw0NSw5OCwxMjEsMTE2LDEwMSwzMiwxMDcKK0RCCTAKK0RCCTY3LDEwNCw5Nyw2NywxMDQsOTcsNTAsNDgsMzIsMTAyLDExMSwxMTQsMzIsMTIwLDU2LDU0CitEQgk5NSw1NCw1Miw0NCwzMiw2Nyw4Miw4OSw4MCw4NCw3OSw3MSw2NSw3Nyw4MywzMgorREIJOTgsMTIxLDMyLDYwLDk3LDExMiwxMTIsMTE0LDExMSw2NCwxMTEsMTEyLDEwMSwxMTAsMTE1LDExNQorREIJMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKK2dsb2JhbAlDaGFDaGEyMF9jdHIzMgorCitBTElHTgk2NAorQ2hhQ2hhMjBfY3RyMzI6CisJbW92CVFXT1JEWzgrcnNwXSxyZGkJO1dJTjY0IHByb2xvZ3VlCisJbW92CVFXT1JEWzE2K3JzcF0scnNpCisJbW92CXJheCxyc3AKKyRMJFNFSF9iZWdpbl9DaGFDaGEyMF9jdHIzMjoKKwltb3YJcmRpLHJjeAorCW1vdglyc2kscmR4CisJbW92CXJkeCxyOAorCW1vdglyY3gscjkKKwltb3YJcjgsUVdPUkRbNDArcnNwXQorCisKKwljbXAJcmR4LDAKKwlqZQlORUFSICRMJG5vX2RhdGEKKwltb3YJcjEwLFFXT1JEWygoT1BFTlNTTF9pYTMyY2FwX1ArNCkpXQorCXRlc3QJcjEwZCw1MTIKKwlqbnoJTkVBUiAkTCRDaGFDaGEyMF9zc3NlMworCisJcHVzaAlyYngKKwlwdXNoCXJicAorCXB1c2gJcjEyCisJcHVzaAlyMTMKKwlwdXNoCXIxNAorCXB1c2gJcjE1CisJc3ViCXJzcCw2NCsyNAorCisKKwltb3ZkcXUJeG1tMSxYTU1XT1JEW3JjeF0KKwltb3ZkcXUJeG1tMixYTU1XT1JEWzE2K3JjeF0KKwltb3ZkcXUJeG1tMyxYTU1XT1JEW3I4XQorCW1vdmRxYQl4bW00LFhNTVdPUkRbJEwkb25lXQorCisKKwltb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTEKKwltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTIKKwltb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTMKKwltb3YJcmJwLHJkeAorCWptcAlORUFSICRMJG9vcF9vdXRlcgorCitBTElHTgkzMgorJEwkb29wX291dGVyOgorCW1vdgllYXgsMHg2MTcwNzg2NQorCW1vdgllYngsMHgzMzIwNjQ2ZQorCW1vdgllY3gsMHg3OTYyMmQzMgorCW1vdgllZHgsMHg2YjIwNjU3NAorCW1vdglyOGQsRFdPUkRbMTYrcnNwXQorCW1vdglyOWQsRFdPUkRbMjArcnNwXQorCW1vdglyMTBkLERXT1JEWzI0K3JzcF0KKwltb3YJcjExZCxEV09SRFsyOCtyc3BdCisJbW92ZAlyMTJkLHhtbTMKKwltb3YJcjEzZCxEV09SRFs1Mityc3BdCisJbW92CXIxNGQsRFdPUkRbNTYrcnNwXQorCW1vdglyMTVkLERXT1JEWzYwK3JzcF0KKworCW1vdglRV09SRFsoKDY0KzApKStyc3BdLHJicAorCW1vdgllYnAsMTAKKwltb3YJUVdPUkRbKCg2NCs4KSkrcnNwXSxyc2kKK0RCCTEwMiw3MiwxNSwxMjYsMjE0CisJbW92CVFXT1JEWygoNjQrMTYpKStyc3BdLHJkaQorCW1vdglyZGkscnNpCisJc2hyCXJkaSwzMgorCWptcAlORUFSICRMJG9vcAorCitBTElHTgkzMgorJEwkb29wOgorCWFkZAllYXgscjhkCisJeG9yCXIxMmQsZWF4CisJcm9sCXIxMmQsMTYKKwlhZGQJZWJ4LHI5ZAorCXhvcglyMTNkLGVieAorCXJvbAlyMTNkLDE2CisJYWRkCWVzaSxyMTJkCisJeG9yCXI4ZCxlc2kKKwlyb2wJcjhkLDEyCisJYWRkCWVkaSxyMTNkCisJeG9yCXI5ZCxlZGkKKwlyb2wJcjlkLDEyCisJYWRkCWVheCxyOGQKKwl4b3IJcjEyZCxlYXgKKwlyb2wJcjEyZCw4CisJYWRkCWVieCxyOWQKKwl4b3IJcjEzZCxlYngKKwlyb2wJcjEzZCw4CisJYWRkCWVzaSxyMTJkCisJeG9yCXI4ZCxlc2kKKwlyb2wJcjhkLDcKKwlhZGQJZWRpLHIxM2QKKwl4b3IJcjlkLGVkaQorCXJvbAlyOWQsNworCW1vdglEV09SRFszMityc3BdLGVzaQorCW1vdglEV09SRFszNityc3BdLGVkaQorCW1vdgllc2ksRFdPUkRbNDArcnNwXQorCW1vdgllZGksRFdPUkRbNDQrcnNwXQorCWFkZAllY3gscjEwZAorCXhvcglyMTRkLGVjeAorCXJvbAlyMTRkLDE2CisJYWRkCWVkeCxyMTFkCisJeG9yCXIxNWQsZWR4CisJcm9sCXIxNWQsMTYKKwlhZGQJZXNpLHIxNGQKKwl4b3IJcjEwZCxlc2kKKwlyb2wJcjEwZCwxMgorCWFkZAllZGkscjE1ZAorCXhvcglyMTFkLGVkaQorCXJvbAlyMTFkLDEyCisJYWRkCWVjeCxyMTBkCisJeG9yCXIxNGQsZWN4CisJcm9sCXIxNGQsOAorCWFkZAllZHgscjExZAorCXhvcglyMTVkLGVkeAorCXJvbAlyMTVkLDgKKwlhZGQJZXNpLHIxNGQKKwl4b3IJcjEwZCxlc2kKKwlyb2wJcjEwZCw3CisJYWRkCWVkaSxyMTVkCisJeG9yCXIxMWQsZWRpCisJcm9sCXIxMWQsNworCWFkZAllYXgscjlkCisJeG9yCXIxNWQsZWF4CisJcm9sCXIxNWQsMTYKKwlhZGQJZWJ4LHIxMGQKKwl4b3IJcjEyZCxlYngKKwlyb2wJcjEyZCwxNgorCWFkZAllc2kscjE1ZAorCXhvcglyOWQsZXNpCisJcm9sCXI5ZCwxMgorCWFkZAllZGkscjEyZAorCXhvcglyMTBkLGVkaQorCXJvbAlyMTBkLDEyCisJYWRkCWVheCxyOWQKKwl4b3IJcjE1ZCxlYXgKKwlyb2wJcjE1ZCw4CisJYWRkCWVieCxyMTBkCisJeG9yCXIxMmQsZWJ4CisJcm9sCXIxMmQsOAorCWFkZAllc2kscjE1ZAorCXhvcglyOWQsZXNpCisJcm9sCXI5ZCw3CisJYWRkCWVkaSxyMTJkCisJeG9yCXIxMGQsZWRpCisJcm9sCXIxMGQsNworCW1vdglEV09SRFs0MCtyc3BdLGVzaQorCW1vdglEV09SRFs0NCtyc3BdLGVkaQorCW1vdgllc2ksRFdPUkRbMzIrcnNwXQorCW1vdgllZGksRFdPUkRbMzYrcnNwXQorCWFkZAllY3gscjExZAorCXhvcglyMTNkLGVjeAorCXJvbAlyMTNkLDE2CisJYWRkCWVkeCxyOGQKKwl4b3IJcjE0ZCxlZHgKKwlyb2wJcjE0ZCwxNgorCWFkZAllc2kscjEzZAorCXhvcglyMTFkLGVzaQorCXJvbAlyMTFkLDEyCisJYWRkCWVkaSxyMTRkCisJeG9yCXI4ZCxlZGkKKwlyb2wJcjhkLDEyCisJYWRkCWVjeCxyMTFkCisJeG9yCXIxM2QsZWN4CisJcm9sCXIxM2QsOAorCWFkZAllZHgscjhkCisJeG9yCXIxNGQsZWR4CisJcm9sCXIxNGQsOAorCWFkZAllc2kscjEzZAorCXhvcglyMTFkLGVzaQorCXJvbAlyMTFkLDcKKwlhZGQJZWRpLHIxNGQKKwl4b3IJcjhkLGVkaQorCXJvbAlyOGQsNworCWRlYwllYnAKKwlqbnoJTkVBUiAkTCRvb3AKKwltb3YJRFdPUkRbMzYrcnNwXSxlZGkKKwltb3YJRFdPUkRbMzIrcnNwXSxlc2kKKwltb3YJcmJwLFFXT1JEWzY0K3JzcF0KKwltb3ZkcWEJeG1tMSx4bW0yCisJbW92CXJzaSxRV09SRFsoKDY0KzgpKStyc3BdCisJcGFkZGQJeG1tMyx4bW00CisJbW92CXJkaSxRV09SRFsoKDY0KzE2KSkrcnNwXQorCisJYWRkCWVheCwweDYxNzA3ODY1CisJYWRkCWVieCwweDMzMjA2NDZlCisJYWRkCWVjeCwweDc5NjIyZDMyCisJYWRkCWVkeCwweDZiMjA2NTc0CisJYWRkCXI4ZCxEV09SRFsxNityc3BdCisJYWRkCXI5ZCxEV09SRFsyMCtyc3BdCisJYWRkCXIxMGQsRFdPUkRbMjQrcnNwXQorCWFkZAlyMTFkLERXT1JEWzI4K3JzcF0KKwlhZGQJcjEyZCxEV09SRFs0OCtyc3BdCisJYWRkCXIxM2QsRFdPUkRbNTIrcnNwXQorCWFkZAlyMTRkLERXT1JEWzU2K3JzcF0KKwlhZGQJcjE1ZCxEV09SRFs2MCtyc3BdCisJcGFkZGQJeG1tMSxYTU1XT1JEWzMyK3JzcF0KKworCWNtcAlyYnAsNjQKKwlqYglORUFSICRMJHRhaWwKKworCXhvcgllYXgsRFdPUkRbcnNpXQorCXhvcgllYngsRFdPUkRbNCtyc2ldCisJeG9yCWVjeCxEV09SRFs4K3JzaV0KKwl4b3IJZWR4LERXT1JEWzEyK3JzaV0KKwl4b3IJcjhkLERXT1JEWzE2K3JzaV0KKwl4b3IJcjlkLERXT1JEWzIwK3JzaV0KKwl4b3IJcjEwZCxEV09SRFsyNCtyc2ldCisJeG9yCXIxMWQsRFdPUkRbMjgrcnNpXQorCW1vdmRxdQl4bW0wLFhNTVdPUkRbMzIrcnNpXQorCXhvcglyMTJkLERXT1JEWzQ4K3JzaV0KKwl4b3IJcjEzZCxEV09SRFs1Mityc2ldCisJeG9yCXIxNGQsRFdPUkRbNTYrcnNpXQorCXhvcglyMTVkLERXT1JEWzYwK3JzaV0KKwlsZWEJcnNpLFs2NCtyc2ldCisJcHhvcgl4bW0wLHhtbTEKKworCW1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tMgorCW1vdmQJRFdPUkRbNDgrcnNwXSx4bW0zCisKKwltb3YJRFdPUkRbcmRpXSxlYXgKKwltb3YJRFdPUkRbNCtyZGldLGVieAorCW1vdglEV09SRFs4K3JkaV0sZWN4CisJbW92CURXT1JEWzEyK3JkaV0sZWR4CisJbW92CURXT1JEWzE2K3JkaV0scjhkCisJbW92CURXT1JEWzIwK3JkaV0scjlkCisJbW92CURXT1JEWzI0K3JkaV0scjEwZAorCW1vdglEV09SRFsyOCtyZGldLHIxMWQKKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTAKKwltb3YJRFdPUkRbNDgrcmRpXSxyMTJkCisJbW92CURXT1JEWzUyK3JkaV0scjEzZAorCW1vdglEV09SRFs1NityZGldLHIxNGQKKwltb3YJRFdPUkRbNjArcmRpXSxyMTVkCisJbGVhCXJkaSxbNjQrcmRpXQorCisJc3ViCXJicCw2NAorCWpueglORUFSICRMJG9vcF9vdXRlcgorCisJam1wCU5FQVIgJEwkZG9uZQorCitBTElHTgkxNgorJEwkdGFpbDoKKwltb3YJRFdPUkRbcnNwXSxlYXgKKwltb3YJRFdPUkRbNCtyc3BdLGVieAorCXhvcglyYngscmJ4CisJbW92CURXT1JEWzgrcnNwXSxlY3gKKwltb3YJRFdPUkRbMTIrcnNwXSxlZHgKKwltb3YJRFdPUkRbMTYrcnNwXSxyOGQKKwltb3YJRFdPUkRbMjArcnNwXSxyOWQKKwltb3YJRFdPUkRbMjQrcnNwXSxyMTBkCisJbW92CURXT1JEWzI4K3JzcF0scjExZAorCW1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tMQorCW1vdglEV09SRFs0OCtyc3BdLHIxMmQKKwltb3YJRFdPUkRbNTIrcnNwXSxyMTNkCisJbW92CURXT1JEWzU2K3JzcF0scjE0ZAorCW1vdglEV09SRFs2MCtyc3BdLHIxNWQKKworJEwkb29wX3RhaWw6CisJbW92engJZWF4LEJZVEVbcmJ4KjErcnNpXQorCW1vdnp4CWVkeCxCWVRFW3JieCoxK3JzcF0KKwlsZWEJcmJ4LFsxK3JieF0KKwl4b3IJZWF4LGVkeAorCW1vdglCWVRFWygoLTEpKStyYngqMStyZGldLGFsCisJZGVjCXJicAorCWpueglORUFSICRMJG9vcF90YWlsCisKKyRMJGRvbmU6CisJYWRkCXJzcCw2NCsyNAorCXBvcAlyMTUKKwlwb3AJcjE0CisJcG9wCXIxMworCXBvcAlyMTIKKwlwb3AJcmJwCisJcG9wCXJieAorJEwkbm9fZGF0YToKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfQ2hhQ2hhMjBfY3RyMzI6CisKK0FMSUdOCTMyCitDaGFDaGEyMF9zc3NlMzoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX0NoYUNoYTIwX3Nzc2UzOgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisJbW92CXJjeCxyOQorCW1vdglyOCxRV09SRFs0MCtyc3BdCisKKworJEwkQ2hhQ2hhMjBfc3NzZTM6CisJY21wCXJkeCwxMjgKKwlqYQlORUFSICRMJENoYUNoYTIwXzR4CisKKyRMJGRvX3NzZTNfYWZ0ZXJfYWxsOgorCXB1c2gJcmJ4CisJcHVzaAlyYnAKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisJcHVzaAlyMTQKKwlwdXNoCXIxNQorCisJc3ViCXJzcCw2NCs3MgorCW1vdmFwcwlYTU1XT1JEWyg2NCszMikrcnNwXSx4bW02CisJbW92YXBzCVhNTVdPUkRbKDY0KzQ4KStyc3BdLHhtbTcKKwltb3ZkcWEJeG1tMCxYTU1XT1JEWyRMJHNpZ21hXQorCW1vdmRxdQl4bW0xLFhNTVdPUkRbcmN4XQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMTYrcmN4XQorCW1vdmRxdQl4bW0zLFhNTVdPUkRbcjhdCisJbW92ZHFhCXhtbTYsWE1NV09SRFskTCRyb3QxNl0KKwltb3ZkcWEJeG1tNyxYTU1XT1JEWyRMJHJvdDI0XQorCisJbW92ZHFhCVhNTVdPUkRbcnNwXSx4bW0wCisJbW92ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW0xCisJbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW0yCisJbW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4bW0zCisJbW92CWVicCwxMAorCWptcAlORUFSICRMJG9vcF9zc3NlMworCitBTElHTgkzMgorJEwkb29wX291dGVyX3Nzc2UzOgorCW1vdmRxYQl4bW0zLFhNTVdPUkRbJEwkb25lXQorCW1vdmRxYQl4bW0wLFhNTVdPUkRbcnNwXQorCW1vdmRxYQl4bW0xLFhNTVdPUkRbMTYrcnNwXQorCW1vdmRxYQl4bW0yLFhNTVdPUkRbMzIrcnNwXQorCXBhZGRkCXhtbTMsWE1NV09SRFs0OCtyc3BdCisJbW92CWVicCwxMAorCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMworCWptcAlORUFSICRMJG9vcF9zc3NlMworCitBTElHTgkzMgorJEwkb29wX3Nzc2UzOgorCXBhZGRkCXhtbTAseG1tMQorCXB4b3IJeG1tMyx4bW0wCitEQgkxMDIsMTUsNTYsMCwyMjIKKwlwYWRkZAl4bW0yLHhtbTMKKwlweG9yCXhtbTEseG1tMgorCW1vdmRxYQl4bW00LHhtbTEKKwlwc3JsZAl4bW0xLDIwCisJcHNsbGQJeG1tNCwxMgorCXBvcgl4bW0xLHhtbTQKKwlwYWRkZAl4bW0wLHhtbTEKKwlweG9yCXhtbTMseG1tMAorREIJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJeG1tMix4bW0zCisJcHhvcgl4bW0xLHhtbTIKKwltb3ZkcWEJeG1tNCx4bW0xCisJcHNybGQJeG1tMSwyNQorCXBzbGxkCXhtbTQsNworCXBvcgl4bW0xLHhtbTQKKwlwc2h1ZmQJeG1tMix4bW0yLDc4CisJcHNodWZkCXhtbTEseG1tMSw1NworCXBzaHVmZAl4bW0zLHhtbTMsMTQ3CisJbm9wCisJcGFkZGQJeG1tMCx4bW0xCisJcHhvcgl4bW0zLHhtbTAKK0RCCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCXhtbTIseG1tMworCXB4b3IJeG1tMSx4bW0yCisJbW92ZHFhCXhtbTQseG1tMQorCXBzcmxkCXhtbTEsMjAKKwlwc2xsZAl4bW00LDEyCisJcG9yCXhtbTEseG1tNAorCXBhZGRkCXhtbTAseG1tMQorCXB4b3IJeG1tMyx4bW0wCitEQgkxMDIsMTUsNTYsMCwyMjMKKwlwYWRkZAl4bW0yLHhtbTMKKwlweG9yCXhtbTEseG1tMgorCW1vdmRxYQl4bW00LHhtbTEKKwlwc3JsZAl4bW0xLDI1CisJcHNsbGQJeG1tNCw3CisJcG9yCXhtbTEseG1tNAorCXBzaHVmZAl4bW0yLHhtbTIsNzgKKwlwc2h1ZmQJeG1tMSx4bW0xLDE0NworCXBzaHVmZAl4bW0zLHhtbTMsNTcKKwlkZWMJZWJwCisJam56CU5FQVIgJEwkb29wX3Nzc2UzCisJcGFkZGQJeG1tMCxYTU1XT1JEW3JzcF0KKwlwYWRkZAl4bW0xLFhNTVdPUkRbMTYrcnNwXQorCXBhZGRkCXhtbTIsWE1NV09SRFszMityc3BdCisJcGFkZGQJeG1tMyxYTU1XT1JEWzQ4K3JzcF0KKworCWNtcAlyZHgsNjQKKwlqYglORUFSICRMJHRhaWxfc3NzZTMKKworCW1vdmRxdQl4bW00LFhNTVdPUkRbcnNpXQorCW1vdmRxdQl4bW01LFhNTVdPUkRbMTYrcnNpXQorCXB4b3IJeG1tMCx4bW00CisJbW92ZHF1CXhtbTQsWE1NV09SRFszMityc2ldCisJcHhvcgl4bW0xLHhtbTUKKwltb3ZkcXUJeG1tNSxYTU1XT1JEWzQ4K3JzaV0KKwlsZWEJcnNpLFs2NCtyc2ldCisJcHhvcgl4bW0yLHhtbTQKKwlweG9yCXhtbTMseG1tNQorCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0xCisJbW92ZHF1CVhNTVdPUkRbMzIrcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbNDgrcmRpXSx4bW0zCisJbGVhCXJkaSxbNjQrcmRpXQorCisJc3ViCXJkeCw2NAorCWpueglORUFSICRMJG9vcF9vdXRlcl9zc3NlMworCisJam1wCU5FQVIgJEwkZG9uZV9zc3NlMworCitBTElHTgkxNgorJEwkdGFpbF9zc3NlMzoKKwltb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTAKKwltb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTEKKwltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTIKKwltb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTMKKwl4b3IJcmJ4LHJieAorCiskTCRvb3BfdGFpbF9zc3NlMzoKKwltb3Z6eAllYXgsQllURVtyYngqMStyc2ldCisJbW92engJZWN4LEJZVEVbcmJ4KjErcnNwXQorCWxlYQlyYngsWzErcmJ4XQorCXhvcgllYXgsZWN4CisJbW92CUJZVEVbKCgtMSkpK3JieCoxK3JkaV0sYWwKKwlkZWMJcmR4CisJam56CU5FQVIgJEwkb29wX3RhaWxfc3NzZTMKKworJEwkZG9uZV9zc3NlMzoKKwltb3ZhcHMJeG1tNixYTU1XT1JEWygoNjQrMzIpKStyc3BdCisJbW92YXBzCXhtbTcsWE1NV09SRFsoKDY0KzQ4KSkrcnNwXQorCWFkZAlyc3AsNjQrNzIKKwlwb3AJcjE1CisJcG9wCXIxNAorCXBvcAlyMTMKKwlwb3AJcjEyCisJcG9wCXJicAorCXBvcAlyYngKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfQ2hhQ2hhMjBfc3NzZTM6CisKK0FMSUdOCTMyCitDaGFDaGEyMF80eDoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX0NoYUNoYTIwXzR4OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisJbW92CXJjeCxyOQorCW1vdglyOCxRV09SRFs0MCtyc3BdCisKKworJEwkQ2hhQ2hhMjBfNHg6CisJbW92CXIxMSxyMTAKKwlzaHIJcjEwLDMyCisJdGVzdAlyMTAsMzIKKwlqbnoJTkVBUiAkTCRDaGFDaGEyMF84eAorCWNtcAlyZHgsMTkyCisJamEJTkVBUiAkTCRwcm9jZWVkNHgKKworCWFuZAlyMTEsNzEzMDMxNjgKKwljbXAJcjExLDQxOTQzMDQKKwlqZQlORUFSICRMJGRvX3NzZTNfYWZ0ZXJfYWxsCisKKyRMJHByb2NlZWQ0eDoKKwlsZWEJcjExLFsoKC0xMjApKStyc3BdCisJc3ViCXJzcCwweDE0OCsxNjAKKwltb3ZhcHMJWE1NV09SRFsoLTQ4KStyMTFdLHhtbTYKKwltb3ZhcHMJWE1NV09SRFsoLTMyKStyMTFdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsoLTE2KStyMTFdLHhtbTgKKwltb3ZhcHMJWE1NV09SRFtyMTFdLHhtbTkKKwltb3ZhcHMJWE1NV09SRFsxNityMTFdLHhtbTEwCisJbW92YXBzCVhNTVdPUkRbMzIrcjExXSx4bW0xMQorCW1vdmFwcwlYTU1XT1JEWzQ4K3IxMV0seG1tMTIKKwltb3ZhcHMJWE1NV09SRFs2NCtyMTFdLHhtbTEzCisJbW92YXBzCVhNTVdPUkRbODArcjExXSx4bW0xNAorCW1vdmFwcwlYTU1XT1JEWzk2K3IxMV0seG1tMTUKKwltb3ZkcWEJeG1tMTEsWE1NV09SRFskTCRzaWdtYV0KKwltb3ZkcXUJeG1tMTUsWE1NV09SRFtyY3hdCisJbW92ZHF1CXhtbTcsWE1NV09SRFsxNityY3hdCisJbW92ZHF1CXhtbTMsWE1NV09SRFtyOF0KKwlsZWEJcmN4LFsyNTYrcnNwXQorCWxlYQlyMTAsWyRMJHJvdDE2XQorCWxlYQlyMTEsWyRMJHJvdDI0XQorCisJcHNodWZkCXhtbTgseG1tMTEsMHgwMAorCXBzaHVmZAl4bW05LHhtbTExLDB4NTUKKwltb3ZkcWEJWE1NV09SRFs2NCtyc3BdLHhtbTgKKwlwc2h1ZmQJeG1tMTAseG1tMTEsMHhhYQorCW1vdmRxYQlYTU1XT1JEWzgwK3JzcF0seG1tOQorCXBzaHVmZAl4bW0xMSx4bW0xMSwweGZmCisJbW92ZHFhCVhNTVdPUkRbOTYrcnNwXSx4bW0xMAorCW1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTExCisKKwlwc2h1ZmQJeG1tMTIseG1tMTUsMHgwMAorCXBzaHVmZAl4bW0xMyx4bW0xNSwweDU1CisJbW92ZHFhCVhNTVdPUkRbKDEyOC0yNTYpK3JjeF0seG1tMTIKKwlwc2h1ZmQJeG1tMTQseG1tMTUsMHhhYQorCW1vdmRxYQlYTU1XT1JEWygxNDQtMjU2KStyY3hdLHhtbTEzCisJcHNodWZkCXhtbTE1LHhtbTE1LDB4ZmYKKwltb3ZkcWEJWE1NV09SRFsoMTYwLTI1NikrcmN4XSx4bW0xNAorCW1vdmRxYQlYTU1XT1JEWygxNzYtMjU2KStyY3hdLHhtbTE1CisKKwlwc2h1ZmQJeG1tNCx4bW03LDB4MDAKKwlwc2h1ZmQJeG1tNSx4bW03LDB4NTUKKwltb3ZkcWEJWE1NV09SRFsoMTkyLTI1NikrcmN4XSx4bW00CisJcHNodWZkCXhtbTYseG1tNywweGFhCisJbW92ZHFhCVhNTVdPUkRbKDIwOC0yNTYpK3JjeF0seG1tNQorCXBzaHVmZAl4bW03LHhtbTcsMHhmZgorCW1vdmRxYQlYTU1XT1JEWygyMjQtMjU2KStyY3hdLHhtbTYKKwltb3ZkcWEJWE1NV09SRFsoMjQwLTI1NikrcmN4XSx4bW03CisKKwlwc2h1ZmQJeG1tMCx4bW0zLDB4MDAKKwlwc2h1ZmQJeG1tMSx4bW0zLDB4NTUKKwlwYWRkZAl4bW0wLFhNTVdPUkRbJEwkaW5jXQorCXBzaHVmZAl4bW0yLHhtbTMsMHhhYQorCW1vdmRxYQlYTU1XT1JEWygyNzItMjU2KStyY3hdLHhtbTEKKwlwc2h1ZmQJeG1tMyx4bW0zLDB4ZmYKKwltb3ZkcWEJWE1NV09SRFsoMjg4LTI1NikrcmN4XSx4bW0yCisJbW92ZHFhCVhNTVdPUkRbKDMwNC0yNTYpK3JjeF0seG1tMworCisJam1wCU5FQVIgJEwkb29wX2VudGVyNHgKKworQUxJR04JMzIKKyRMJG9vcF9vdXRlcjR4OgorCW1vdmRxYQl4bW04LFhNTVdPUkRbNjQrcnNwXQorCW1vdmRxYQl4bW05LFhNTVdPUkRbODArcnNwXQorCW1vdmRxYQl4bW0xMCxYTU1XT1JEWzk2K3JzcF0KKwltb3ZkcWEJeG1tMTEsWE1NV09SRFsxMTIrcnNwXQorCW1vdmRxYQl4bW0xMixYTU1XT1JEWygoMTI4LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tMTMsWE1NV09SRFsoKDE0NC0yNTYpKStyY3hdCisJbW92ZHFhCXhtbTE0LFhNTVdPUkRbKCgxNjAtMjU2KSkrcmN4XQorCW1vdmRxYQl4bW0xNSxYTU1XT1JEWygoMTc2LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tNCxYTU1XT1JEWygoMTkyLTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tNSxYTU1XT1JEWygoMjA4LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tNixYTU1XT1JEWygoMjI0LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tNyxYTU1XT1JEWygoMjQwLTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tMCxYTU1XT1JEWygoMjU2LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tMSxYTU1XT1JEWygoMjcyLTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tMixYTU1XT1JEWygoMjg4LTI1NikpK3JjeF0KKwltb3ZkcWEJeG1tMyxYTU1XT1JEWygoMzA0LTI1NikpK3JjeF0KKwlwYWRkZAl4bW0wLFhNTVdPUkRbJEwkZm91cl0KKworJEwkb29wX2VudGVyNHg6CisJbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW02CisJbW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4bW03CisJbW92ZHFhCXhtbTcsWE1NV09SRFtyMTBdCisJbW92CWVheCwxMAorCW1vdmRxYQlYTU1XT1JEWygyNTYtMjU2KStyY3hdLHhtbTAKKwlqbXAJTkVBUiAkTCRvb3A0eAorCitBTElHTgkzMgorJEwkb29wNHg6CisJcGFkZGQJeG1tOCx4bW0xMgorCXBhZGRkCXhtbTkseG1tMTMKKwlweG9yCXhtbTAseG1tOAorCXB4b3IJeG1tMSx4bW05CitEQgkxMDIsMTUsNTYsMCwxOTkKK0RCCTEwMiwxNSw1NiwwLDIwNworCXBhZGRkCXhtbTQseG1tMAorCXBhZGRkCXhtbTUseG1tMQorCXB4b3IJeG1tMTIseG1tNAorCXB4b3IJeG1tMTMseG1tNQorCW1vdmRxYQl4bW02LHhtbTEyCisJcHNsbGQJeG1tMTIsMTIKKwlwc3JsZAl4bW02LDIwCisJbW92ZHFhCXhtbTcseG1tMTMKKwlwc2xsZAl4bW0xMywxMgorCXBvcgl4bW0xMix4bW02CisJcHNybGQJeG1tNywyMAorCW1vdmRxYQl4bW02LFhNTVdPUkRbcjExXQorCXBvcgl4bW0xMyx4bW03CisJcGFkZGQJeG1tOCx4bW0xMgorCXBhZGRkCXhtbTkseG1tMTMKKwlweG9yCXhtbTAseG1tOAorCXB4b3IJeG1tMSx4bW05CitEQgkxMDIsMTUsNTYsMCwxOTgKK0RCCTEwMiwxNSw1NiwwLDIwNgorCXBhZGRkCXhtbTQseG1tMAorCXBhZGRkCXhtbTUseG1tMQorCXB4b3IJeG1tMTIseG1tNAorCXB4b3IJeG1tMTMseG1tNQorCW1vdmRxYQl4bW03LHhtbTEyCisJcHNsbGQJeG1tMTIsNworCXBzcmxkCXhtbTcsMjUKKwltb3ZkcWEJeG1tNix4bW0xMworCXBzbGxkCXhtbTEzLDcKKwlwb3IJeG1tMTIseG1tNworCXBzcmxkCXhtbTYsMjUKKwltb3ZkcWEJeG1tNyxYTU1XT1JEW3IxMF0KKwlwb3IJeG1tMTMseG1tNgorCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNAorCW1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tNQorCW1vdmRxYQl4bW00LFhNTVdPUkRbMzIrcnNwXQorCW1vdmRxYQl4bW01LFhNTVdPUkRbNDgrcnNwXQorCXBhZGRkCXhtbTEwLHhtbTE0CisJcGFkZGQJeG1tMTEseG1tMTUKKwlweG9yCXhtbTIseG1tMTAKKwlweG9yCXhtbTMseG1tMTEKK0RCCTEwMiwxNSw1NiwwLDIxNQorREIJMTAyLDE1LDU2LDAsMjIzCisJcGFkZGQJeG1tNCx4bW0yCisJcGFkZGQJeG1tNSx4bW0zCisJcHhvcgl4bW0xNCx4bW00CisJcHhvcgl4bW0xNSx4bW01CisJbW92ZHFhCXhtbTYseG1tMTQKKwlwc2xsZAl4bW0xNCwxMgorCXBzcmxkCXhtbTYsMjAKKwltb3ZkcWEJeG1tNyx4bW0xNQorCXBzbGxkCXhtbTE1LDEyCisJcG9yCXhtbTE0LHhtbTYKKwlwc3JsZAl4bW03LDIwCisJbW92ZHFhCXhtbTYsWE1NV09SRFtyMTFdCisJcG9yCXhtbTE1LHhtbTcKKwlwYWRkZAl4bW0xMCx4bW0xNAorCXBhZGRkCXhtbTExLHhtbTE1CisJcHhvcgl4bW0yLHhtbTEwCisJcHhvcgl4bW0zLHhtbTExCitEQgkxMDIsMTUsNTYsMCwyMTQKK0RCCTEwMiwxNSw1NiwwLDIyMgorCXBhZGRkCXhtbTQseG1tMgorCXBhZGRkCXhtbTUseG1tMworCXB4b3IJeG1tMTQseG1tNAorCXB4b3IJeG1tMTUseG1tNQorCW1vdmRxYQl4bW03LHhtbTE0CisJcHNsbGQJeG1tMTQsNworCXBzcmxkCXhtbTcsMjUKKwltb3ZkcWEJeG1tNix4bW0xNQorCXBzbGxkCXhtbTE1LDcKKwlwb3IJeG1tMTQseG1tNworCXBzcmxkCXhtbTYsMjUKKwltb3ZkcWEJeG1tNyxYTU1XT1JEW3IxMF0KKwlwb3IJeG1tMTUseG1tNgorCXBhZGRkCXhtbTgseG1tMTMKKwlwYWRkZAl4bW05LHhtbTE0CisJcHhvcgl4bW0zLHhtbTgKKwlweG9yCXhtbTAseG1tOQorREIJMTAyLDE1LDU2LDAsMjIzCitEQgkxMDIsMTUsNTYsMCwxOTkKKwlwYWRkZAl4bW00LHhtbTMKKwlwYWRkZAl4bW01LHhtbTAKKwlweG9yCXhtbTEzLHhtbTQKKwlweG9yCXhtbTE0LHhtbTUKKwltb3ZkcWEJeG1tNix4bW0xMworCXBzbGxkCXhtbTEzLDEyCisJcHNybGQJeG1tNiwyMAorCW1vdmRxYQl4bW03LHhtbTE0CisJcHNsbGQJeG1tMTQsMTIKKwlwb3IJeG1tMTMseG1tNgorCXBzcmxkCXhtbTcsMjAKKwltb3ZkcWEJeG1tNixYTU1XT1JEW3IxMV0KKwlwb3IJeG1tMTQseG1tNworCXBhZGRkCXhtbTgseG1tMTMKKwlwYWRkZAl4bW05LHhtbTE0CisJcHhvcgl4bW0zLHhtbTgKKwlweG9yCXhtbTAseG1tOQorREIJMTAyLDE1LDU2LDAsMjIyCitEQgkxMDIsMTUsNTYsMCwxOTgKKwlwYWRkZAl4bW00LHhtbTMKKwlwYWRkZAl4bW01LHhtbTAKKwlweG9yCXhtbTEzLHhtbTQKKwlweG9yCXhtbTE0LHhtbTUKKwltb3ZkcWEJeG1tNyx4bW0xMworCXBzbGxkCXhtbTEzLDcKKwlwc3JsZAl4bW03LDI1CisJbW92ZHFhCXhtbTYseG1tMTQKKwlwc2xsZAl4bW0xNCw3CisJcG9yCXhtbTEzLHhtbTcKKwlwc3JsZAl4bW02LDI1CisJbW92ZHFhCXhtbTcsWE1NV09SRFtyMTBdCisJcG9yCXhtbTE0LHhtbTYKKwltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTQKKwltb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTUKKwltb3ZkcWEJeG1tNCxYTU1XT1JEW3JzcF0KKwltb3ZkcWEJeG1tNSxYTU1XT1JEWzE2K3JzcF0KKwlwYWRkZAl4bW0xMCx4bW0xNQorCXBhZGRkCXhtbTExLHhtbTEyCisJcHhvcgl4bW0xLHhtbTEwCisJcHhvcgl4bW0yLHhtbTExCitEQgkxMDIsMTUsNTYsMCwyMDcKK0RCCTEwMiwxNSw1NiwwLDIxNQorCXBhZGRkCXhtbTQseG1tMQorCXBhZGRkCXhtbTUseG1tMgorCXB4b3IJeG1tMTUseG1tNAorCXB4b3IJeG1tMTIseG1tNQorCW1vdmRxYQl4bW02LHhtbTE1CisJcHNsbGQJeG1tMTUsMTIKKwlwc3JsZAl4bW02LDIwCisJbW92ZHFhCXhtbTcseG1tMTIKKwlwc2xsZAl4bW0xMiwxMgorCXBvcgl4bW0xNSx4bW02CisJcHNybGQJeG1tNywyMAorCW1vdmRxYQl4bW02LFhNTVdPUkRbcjExXQorCXBvcgl4bW0xMix4bW03CisJcGFkZGQJeG1tMTAseG1tMTUKKwlwYWRkZAl4bW0xMSx4bW0xMgorCXB4b3IJeG1tMSx4bW0xMAorCXB4b3IJeG1tMix4bW0xMQorREIJMTAyLDE1LDU2LDAsMjA2CitEQgkxMDIsMTUsNTYsMCwyMTQKKwlwYWRkZAl4bW00LHhtbTEKKwlwYWRkZAl4bW01LHhtbTIKKwlweG9yCXhtbTE1LHhtbTQKKwlweG9yCXhtbTEyLHhtbTUKKwltb3ZkcWEJeG1tNyx4bW0xNQorCXBzbGxkCXhtbTE1LDcKKwlwc3JsZAl4bW03LDI1CisJbW92ZHFhCXhtbTYseG1tMTIKKwlwc2xsZAl4bW0xMiw3CisJcG9yCXhtbTE1LHhtbTcKKwlwc3JsZAl4bW02LDI1CisJbW92ZHFhCXhtbTcsWE1NV09SRFtyMTBdCisJcG9yCXhtbTEyLHhtbTYKKwlkZWMJZWF4CisJam56CU5FQVIgJEwkb29wNHgKKworCXBhZGRkCXhtbTgsWE1NV09SRFs2NCtyc3BdCisJcGFkZGQJeG1tOSxYTU1XT1JEWzgwK3JzcF0KKwlwYWRkZAl4bW0xMCxYTU1XT1JEWzk2K3JzcF0KKwlwYWRkZAl4bW0xMSxYTU1XT1JEWzExMityc3BdCisKKwltb3ZkcWEJeG1tNix4bW04CisJcHVucGNrbGRxCXhtbTgseG1tOQorCW1vdmRxYQl4bW03LHhtbTEwCisJcHVucGNrbGRxCXhtbTEwLHhtbTExCisJcHVucGNraGRxCXhtbTYseG1tOQorCXB1bnBja2hkcQl4bW03LHhtbTExCisJbW92ZHFhCXhtbTkseG1tOAorCXB1bnBja2xxZHEJeG1tOCx4bW0xMAorCW1vdmRxYQl4bW0xMSx4bW02CisJcHVucGNrbHFkcQl4bW02LHhtbTcKKwlwdW5wY2tocWRxCXhtbTkseG1tMTAKKwlwdW5wY2tocWRxCXhtbTExLHhtbTcKKwlwYWRkZAl4bW0xMixYTU1XT1JEWygoMTI4LTI1NikpK3JjeF0KKwlwYWRkZAl4bW0xMyxYTU1XT1JEWygoMTQ0LTI1NikpK3JjeF0KKwlwYWRkZAl4bW0xNCxYTU1XT1JEWygoMTYwLTI1NikpK3JjeF0KKwlwYWRkZAl4bW0xNSxYTU1XT1JEWygoMTc2LTI1NikpK3JjeF0KKworCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tOAorCW1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tOQorCW1vdmRxYQl4bW04LFhNTVdPUkRbMzIrcnNwXQorCW1vdmRxYQl4bW05LFhNTVdPUkRbNDgrcnNwXQorCisJbW92ZHFhCXhtbTEwLHhtbTEyCisJcHVucGNrbGRxCXhtbTEyLHhtbTEzCisJbW92ZHFhCXhtbTcseG1tMTQKKwlwdW5wY2tsZHEJeG1tMTQseG1tMTUKKwlwdW5wY2toZHEJeG1tMTAseG1tMTMKKwlwdW5wY2toZHEJeG1tNyx4bW0xNQorCW1vdmRxYQl4bW0xMyx4bW0xMgorCXB1bnBja2xxZHEJeG1tMTIseG1tMTQKKwltb3ZkcWEJeG1tMTUseG1tMTAKKwlwdW5wY2tscWRxCXhtbTEwLHhtbTcKKwlwdW5wY2tocWRxCXhtbTEzLHhtbTE0CisJcHVucGNraHFkcQl4bW0xNSx4bW03CisJcGFkZGQJeG1tNCxYTU1XT1JEWygoMTkyLTI1NikpK3JjeF0KKwlwYWRkZAl4bW01LFhNTVdPUkRbKCgyMDgtMjU2KSkrcmN4XQorCXBhZGRkCXhtbTgsWE1NV09SRFsoKDIyNC0yNTYpKStyY3hdCisJcGFkZGQJeG1tOSxYTU1XT1JEWygoMjQwLTI1NikpK3JjeF0KKworCW1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tNgorCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMTEKKworCW1vdmRxYQl4bW0xNCx4bW00CisJcHVucGNrbGRxCXhtbTQseG1tNQorCW1vdmRxYQl4bW03LHhtbTgKKwlwdW5wY2tsZHEJeG1tOCx4bW05CisJcHVucGNraGRxCXhtbTE0LHhtbTUKKwlwdW5wY2toZHEJeG1tNyx4bW05CisJbW92ZHFhCXhtbTUseG1tNAorCXB1bnBja2xxZHEJeG1tNCx4bW04CisJbW92ZHFhCXhtbTkseG1tMTQKKwlwdW5wY2tscWRxCXhtbTE0LHhtbTcKKwlwdW5wY2tocWRxCXhtbTUseG1tOAorCXB1bnBja2hxZHEJeG1tOSx4bW03CisJcGFkZGQJeG1tMCxYTU1XT1JEWygoMjU2LTI1NikpK3JjeF0KKwlwYWRkZAl4bW0xLFhNTVdPUkRbKCgyNzItMjU2KSkrcmN4XQorCXBhZGRkCXhtbTIsWE1NV09SRFsoKDI4OC0yNTYpKStyY3hdCisJcGFkZGQJeG1tMyxYTU1XT1JEWygoMzA0LTI1NikpK3JjeF0KKworCW1vdmRxYQl4bW04LHhtbTAKKwlwdW5wY2tsZHEJeG1tMCx4bW0xCisJbW92ZHFhCXhtbTcseG1tMgorCXB1bnBja2xkcQl4bW0yLHhtbTMKKwlwdW5wY2toZHEJeG1tOCx4bW0xCisJcHVucGNraGRxCXhtbTcseG1tMworCW1vdmRxYQl4bW0xLHhtbTAKKwlwdW5wY2tscWRxCXhtbTAseG1tMgorCW1vdmRxYQl4bW0zLHhtbTgKKwlwdW5wY2tscWRxCXhtbTgseG1tNworCXB1bnBja2hxZHEJeG1tMSx4bW0yCisJcHVucGNraHFkcQl4bW0zLHhtbTcKKwljbXAJcmR4LDY0KjQKKwlqYglORUFSICRMJHRhaWw0eAorCisJbW92ZHF1CXhtbTYsWE1NV09SRFtyc2ldCisJbW92ZHF1CXhtbTExLFhNTVdPUkRbMTYrcnNpXQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcnNpXQorCW1vdmRxdQl4bW03LFhNTVdPUkRbNDgrcnNpXQorCXB4b3IJeG1tNixYTU1XT1JEW3JzcF0KKwlweG9yCXhtbTExLHhtbTEyCisJcHhvcgl4bW0yLHhtbTQKKwlweG9yCXhtbTcseG1tMAorCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW02CisJbW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyc2ldCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0xMQorCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzgwK3JzaV0KKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTIKKwltb3ZkcXUJeG1tMixYTU1XT1JEWzk2K3JzaV0KKwltb3ZkcXUJWE1NV09SRFs0OCtyZGldLHhtbTcKKwltb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwlweG9yCXhtbTYsWE1NV09SRFsxNityc3BdCisJcHhvcgl4bW0xMSx4bW0xMworCXB4b3IJeG1tMix4bW01CisJcHhvcgl4bW03LHhtbTEKKworCW1vdmRxdQlYTU1XT1JEWzY0K3JkaV0seG1tNgorCW1vdmRxdQl4bW02LFhNTVdPUkRbcnNpXQorCW1vdmRxdQlYTU1XT1JEWzgwK3JkaV0seG1tMTEKKwltb3ZkcXUJeG1tMTEsWE1NV09SRFsxNityc2ldCisJbW92ZHF1CVhNTVdPUkRbOTYrcmRpXSx4bW0yCisJbW92ZHF1CXhtbTIsWE1NV09SRFszMityc2ldCisJbW92ZHF1CVhNTVdPUkRbMTEyK3JkaV0seG1tNworCWxlYQlyZGksWzEyOCtyZGldCisJbW92ZHF1CXhtbTcsWE1NV09SRFs0OCtyc2ldCisJcHhvcgl4bW02LFhNTVdPUkRbMzIrcnNwXQorCXB4b3IJeG1tMTEseG1tMTAKKwlweG9yCXhtbTIseG1tMTQKKwlweG9yCXhtbTcseG1tOAorCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW02CisJbW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyc2ldCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0xMQorCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzgwK3JzaV0KKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTIKKwltb3ZkcXUJeG1tMixYTU1XT1JEWzk2K3JzaV0KKwltb3ZkcXUJWE1NV09SRFs0OCtyZGldLHhtbTcKKwltb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwlweG9yCXhtbTYsWE1NV09SRFs0OCtyc3BdCisJcHhvcgl4bW0xMSx4bW0xNQorCXB4b3IJeG1tMix4bW05CisJcHhvcgl4bW03LHhtbTMKKwltb3ZkcXUJWE1NV09SRFs2NCtyZGldLHhtbTYKKwltb3ZkcXUJWE1NV09SRFs4MCtyZGldLHhtbTExCisJbW92ZHF1CVhNTVdPUkRbOTYrcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbMTEyK3JkaV0seG1tNworCWxlYQlyZGksWzEyOCtyZGldCisKKwlzdWIJcmR4LDY0KjQKKwlqbnoJTkVBUiAkTCRvb3Bfb3V0ZXI0eAorCisJam1wCU5FQVIgJEwkZG9uZTR4CisKKyRMJHRhaWw0eDoKKwljbXAJcmR4LDE5MgorCWphZQlORUFSICRMJDE5Ml9vcl9tb3JlNHgKKwljbXAJcmR4LDEyOAorCWphZQlORUFSICRMJDEyOF9vcl9tb3JlNHgKKwljbXAJcmR4LDY0CisJamFlCU5FQVIgJEwkNjRfb3JfbW9yZTR4CisKKworCXhvcglyMTAscjEwCisKKwltb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTEyCisJbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW00CisJbW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4bW0wCisJam1wCU5FQVIgJEwkb29wX3RhaWw0eAorCitBTElHTgkzMgorJEwkNjRfb3JfbW9yZTR4OgorCW1vdmRxdQl4bW02LFhNTVdPUkRbcnNpXQorCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzE2K3JzaV0KKwltb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwltb3ZkcXUJeG1tNyxYTU1XT1JEWzQ4K3JzaV0KKwlweG9yCXhtbTYsWE1NV09SRFtyc3BdCisJcHhvcgl4bW0xMSx4bW0xMgorCXB4b3IJeG1tMix4bW00CisJcHhvcgl4bW03LHhtbTAKKwltb3ZkcXUJWE1NV09SRFtyZGldLHhtbTYKKwltb3ZkcXUJWE1NV09SRFsxNityZGldLHhtbTExCisJbW92ZHF1CVhNTVdPUkRbMzIrcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbNDgrcmRpXSx4bW03CisJamUJTkVBUiAkTCRkb25lNHgKKworCW1vdmRxYQl4bW02LFhNTVdPUkRbMTYrcnNwXQorCWxlYQlyc2ksWzY0K3JzaV0KKwl4b3IJcjEwLHIxMAorCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNgorCW1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tMTMKKwlsZWEJcmRpLFs2NCtyZGldCisJbW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW01CisJc3ViCXJkeCw2NAorCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMQorCWptcAlORUFSICRMJG9vcF90YWlsNHgKKworQUxJR04JMzIKKyRMJDEyOF9vcl9tb3JlNHg6CisJbW92ZHF1CXhtbTYsWE1NV09SRFtyc2ldCisJbW92ZHF1CXhtbTExLFhNTVdPUkRbMTYrcnNpXQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcnNpXQorCW1vdmRxdQl4bW03LFhNTVdPUkRbNDgrcnNpXQorCXB4b3IJeG1tNixYTU1XT1JEW3JzcF0KKwlweG9yCXhtbTExLHhtbTEyCisJcHhvcgl4bW0yLHhtbTQKKwlweG9yCXhtbTcseG1tMAorCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW02CisJbW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyc2ldCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0xMQorCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzgwK3JzaV0KKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTIKKwltb3ZkcXUJeG1tMixYTU1XT1JEWzk2K3JzaV0KKwltb3ZkcXUJWE1NV09SRFs0OCtyZGldLHhtbTcKKwltb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJcHhvcgl4bW02LFhNTVdPUkRbMTYrcnNwXQorCXB4b3IJeG1tMTEseG1tMTMKKwlweG9yCXhtbTIseG1tNQorCXB4b3IJeG1tNyx4bW0xCisJbW92ZHF1CVhNTVdPUkRbNjQrcmRpXSx4bW02CisJbW92ZHF1CVhNTVdPUkRbODArcmRpXSx4bW0xMQorCW1vdmRxdQlYTU1XT1JEWzk2K3JkaV0seG1tMgorCW1vdmRxdQlYTU1XT1JEWzExMityZGldLHhtbTcKKwlqZQlORUFSICRMJGRvbmU0eAorCisJbW92ZHFhCXhtbTYsWE1NV09SRFszMityc3BdCisJbGVhCXJzaSxbMTI4K3JzaV0KKwl4b3IJcjEwLHIxMAorCW1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNgorCW1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tMTAKKwlsZWEJcmRpLFsxMjgrcmRpXQorCW1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tMTQKKwlzdWIJcmR4LDEyOAorCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tOAorCWptcAlORUFSICRMJG9vcF90YWlsNHgKKworQUxJR04JMzIKKyRMJDE5Ml9vcl9tb3JlNHg6CisJbW92ZHF1CXhtbTYsWE1NV09SRFtyc2ldCisJbW92ZHF1CXhtbTExLFhNTVdPUkRbMTYrcnNpXQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcnNpXQorCW1vdmRxdQl4bW03LFhNTVdPUkRbNDgrcnNpXQorCXB4b3IJeG1tNixYTU1XT1JEW3JzcF0KKwlweG9yCXhtbTExLHhtbTEyCisJcHhvcgl4bW0yLHhtbTQKKwlweG9yCXhtbTcseG1tMAorCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW02CisJbW92ZHF1CXhtbTYsWE1NV09SRFs2NCtyc2ldCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0xMQorCW1vdmRxdQl4bW0xMSxYTU1XT1JEWzgwK3JzaV0KKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTIKKwltb3ZkcXUJeG1tMixYTU1XT1JEWzk2K3JzaV0KKwltb3ZkcXUJWE1NV09SRFs0OCtyZGldLHhtbTcKKwltb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwlweG9yCXhtbTYsWE1NV09SRFsxNityc3BdCisJcHhvcgl4bW0xMSx4bW0xMworCXB4b3IJeG1tMix4bW01CisJcHhvcgl4bW03LHhtbTEKKworCW1vdmRxdQlYTU1XT1JEWzY0K3JkaV0seG1tNgorCW1vdmRxdQl4bW02LFhNTVdPUkRbcnNpXQorCW1vdmRxdQlYTU1XT1JEWzgwK3JkaV0seG1tMTEKKwltb3ZkcXUJeG1tMTEsWE1NV09SRFsxNityc2ldCisJbW92ZHF1CVhNTVdPUkRbOTYrcmRpXSx4bW0yCisJbW92ZHF1CXhtbTIsWE1NV09SRFszMityc2ldCisJbW92ZHF1CVhNTVdPUkRbMTEyK3JkaV0seG1tNworCWxlYQlyZGksWzEyOCtyZGldCisJbW92ZHF1CXhtbTcsWE1NV09SRFs0OCtyc2ldCisJcHhvcgl4bW02LFhNTVdPUkRbMzIrcnNwXQorCXB4b3IJeG1tMTEseG1tMTAKKwlweG9yCXhtbTIseG1tMTQKKwlweG9yCXhtbTcseG1tOAorCW1vdmRxdQlYTU1XT1JEW3JkaV0seG1tNgorCW1vdmRxdQlYTU1XT1JEWzE2K3JkaV0seG1tMTEKKwltb3ZkcXUJWE1NV09SRFszMityZGldLHhtbTIKKwltb3ZkcXUJWE1NV09SRFs0OCtyZGldLHhtbTcKKwlqZQlORUFSICRMJGRvbmU0eAorCisJbW92ZHFhCXhtbTYsWE1NV09SRFs0OCtyc3BdCisJbGVhCXJzaSxbNjQrcnNpXQorCXhvcglyMTAscjEwCisJbW92ZHFhCVhNTVdPUkRbcnNwXSx4bW02CisJbW92ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW0xNQorCWxlYQlyZGksWzY0K3JkaV0KKwltb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTkKKwlzdWIJcmR4LDE5MgorCW1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMworCiskTCRvb3BfdGFpbDR4OgorCW1vdnp4CWVheCxCWVRFW3IxMCoxK3JzaV0KKwltb3Z6eAllY3gsQllURVtyMTAqMStyc3BdCisJbGVhCXIxMCxbMStyMTBdCisJeG9yCWVheCxlY3gKKwltb3YJQllURVsoKC0xKSkrcjEwKjErcmRpXSxhbAorCWRlYwlyZHgKKwlqbnoJTkVBUiAkTCRvb3BfdGFpbDR4CisKKyRMJGRvbmU0eDoKKwlsZWEJcjExLFsoKDMyMCs0OCkpK3JzcF0KKwltb3ZhcHMJeG1tNixYTU1XT1JEWygoLTQ4KSkrcjExXQorCW1vdmFwcwl4bW03LFhNTVdPUkRbKCgtMzIpKStyMTFdCisJbW92YXBzCXhtbTgsWE1NV09SRFsoKC0xNikpK3IxMV0KKwltb3ZhcHMJeG1tOSxYTU1XT1JEW3IxMV0KKwltb3ZhcHMJeG1tMTAsWE1NV09SRFsxNityMTFdCisJbW92YXBzCXhtbTExLFhNTVdPUkRbMzIrcjExXQorCW1vdmFwcwl4bW0xMixYTU1XT1JEWzQ4K3IxMV0KKwltb3ZhcHMJeG1tMTMsWE1NV09SRFs2NCtyMTFdCisJbW92YXBzCXhtbTE0LFhNTVdPUkRbODArcjExXQorCW1vdmFwcwl4bW0xNSxYTU1XT1JEWzk2K3IxMV0KKwlhZGQJcnNwLDB4MTQ4KzE2MAorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9DaGFDaGEyMF80eDoKKworQUxJR04JMzIKK0NoYUNoYTIwXzh4OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fQ2hhQ2hhMjBfOHg6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCW1vdglyZHgscjgKKwltb3YJcmN4LHI5CisJbW92CXI4LFFXT1JEWzQwK3JzcF0KKworCiskTCRDaGFDaGEyMF84eDoKKwltb3YJcjEwLHJzcAorCXN1Yglyc3AsMHgyODArMTc2CisJYW5kCXJzcCwtMzIKKwlsZWEJcjExLFsoKDY1Nis0OCkpK3JzcF0KKwltb3ZhcHMJWE1NV09SRFsoLTQ4KStyMTFdLHhtbTYKKwltb3ZhcHMJWE1NV09SRFsoLTMyKStyMTFdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsoLTE2KStyMTFdLHhtbTgKKwltb3ZhcHMJWE1NV09SRFtyMTFdLHhtbTkKKwltb3ZhcHMJWE1NV09SRFsxNityMTFdLHhtbTEwCisJbW92YXBzCVhNTVdPUkRbMzIrcjExXSx4bW0xMQorCW1vdmFwcwlYTU1XT1JEWzQ4K3IxMV0seG1tMTIKKwltb3ZhcHMJWE1NV09SRFs2NCtyMTFdLHhtbTEzCisJbW92YXBzCVhNTVdPUkRbODArcjExXSx4bW0xNAorCW1vdmFwcwlYTU1XT1JEWzk2K3IxMV0seG1tMTUKKwl2emVyb3VwcGVyCisJbW92CVFXT1JEWzY0MCtyc3BdLHIxMAorCisKKworCisKKworCisKKworCisJdmJyb2FkY2FzdGkxMjgJeW1tMTEsWE1NV09SRFskTCRzaWdtYV0KKwl2YnJvYWRjYXN0aTEyOAl5bW0zLFhNTVdPUkRbcmN4XQorCXZicm9hZGNhc3RpMTI4CXltbTE1LFhNTVdPUkRbMTYrcmN4XQorCXZicm9hZGNhc3RpMTI4CXltbTcsWE1NV09SRFtyOF0KKwlsZWEJcmN4LFsyNTYrcnNwXQorCWxlYQlyYXgsWzUxMityc3BdCisJbGVhCXIxMCxbJEwkcm90MTZdCisJbGVhCXIxMSxbJEwkcm90MjRdCisKKwl2cHNodWZkCXltbTgseW1tMTEsMHgwMAorCXZwc2h1ZmQJeW1tOSx5bW0xMSwweDU1CisJdm1vdmRxYQlZTU1XT1JEWygxMjgtMjU2KStyY3hdLHltbTgKKwl2cHNodWZkCXltbTEwLHltbTExLDB4YWEKKwl2bW92ZHFhCVlNTVdPUkRbKDE2MC0yNTYpK3JjeF0seW1tOQorCXZwc2h1ZmQJeW1tMTEseW1tMTEsMHhmZgorCXZtb3ZkcWEJWU1NV09SRFsoMTkyLTI1NikrcmN4XSx5bW0xMAorCXZtb3ZkcWEJWU1NV09SRFsoMjI0LTI1NikrcmN4XSx5bW0xMQorCisJdnBzaHVmZAl5bW0wLHltbTMsMHgwMAorCXZwc2h1ZmQJeW1tMSx5bW0zLDB4NTUKKwl2bW92ZHFhCVlNTVdPUkRbKDI1Ni0yNTYpK3JjeF0seW1tMAorCXZwc2h1ZmQJeW1tMix5bW0zLDB4YWEKKwl2bW92ZHFhCVlNTVdPUkRbKDI4OC0yNTYpK3JjeF0seW1tMQorCXZwc2h1ZmQJeW1tMyx5bW0zLDB4ZmYKKwl2bW92ZHFhCVlNTVdPUkRbKDMyMC0yNTYpK3JjeF0seW1tMgorCXZtb3ZkcWEJWU1NV09SRFsoMzUyLTI1NikrcmN4XSx5bW0zCisKKwl2cHNodWZkCXltbTEyLHltbTE1LDB4MDAKKwl2cHNodWZkCXltbTEzLHltbTE1LDB4NTUKKwl2bW92ZHFhCVlNTVdPUkRbKDM4NC01MTIpK3JheF0seW1tMTIKKwl2cHNodWZkCXltbTE0LHltbTE1LDB4YWEKKwl2bW92ZHFhCVlNTVdPUkRbKDQxNi01MTIpK3JheF0seW1tMTMKKwl2cHNodWZkCXltbTE1LHltbTE1LDB4ZmYKKwl2bW92ZHFhCVlNTVdPUkRbKDQ0OC01MTIpK3JheF0seW1tMTQKKwl2bW92ZHFhCVlNTVdPUkRbKDQ4MC01MTIpK3JheF0seW1tMTUKKworCXZwc2h1ZmQJeW1tNCx5bW03LDB4MDAKKwl2cHNodWZkCXltbTUseW1tNywweDU1CisJdnBhZGRkCXltbTQseW1tNCxZTU1XT1JEWyRMJGluY3ldCisJdnBzaHVmZAl5bW02LHltbTcsMHhhYQorCXZtb3ZkcWEJWU1NV09SRFsoNTQ0LTUxMikrcmF4XSx5bW01CisJdnBzaHVmZAl5bW03LHltbTcsMHhmZgorCXZtb3ZkcWEJWU1NV09SRFsoNTc2LTUxMikrcmF4XSx5bW02CisJdm1vdmRxYQlZTU1XT1JEWyg2MDgtNTEyKStyYXhdLHltbTcKKworCWptcAlORUFSICRMJG9vcF9lbnRlcjh4CisKK0FMSUdOCTMyCiskTCRvb3Bfb3V0ZXI4eDoKKwl2bW92ZHFhCXltbTgsWU1NV09SRFsoKDEyOC0yNTYpKStyY3hdCisJdm1vdmRxYQl5bW05LFlNTVdPUkRbKCgxNjAtMjU2KSkrcmN4XQorCXZtb3ZkcWEJeW1tMTAsWU1NV09SRFsoKDE5Mi0yNTYpKStyY3hdCisJdm1vdmRxYQl5bW0xMSxZTU1XT1JEWygoMjI0LTI1NikpK3JjeF0KKwl2bW92ZHFhCXltbTAsWU1NV09SRFsoKDI1Ni0yNTYpKStyY3hdCisJdm1vdmRxYQl5bW0xLFlNTVdPUkRbKCgyODgtMjU2KSkrcmN4XQorCXZtb3ZkcWEJeW1tMixZTU1XT1JEWygoMzIwLTI1NikpK3JjeF0KKwl2bW92ZHFhCXltbTMsWU1NV09SRFsoKDM1Mi0yNTYpKStyY3hdCisJdm1vdmRxYQl5bW0xMixZTU1XT1JEWygoMzg0LTUxMikpK3JheF0KKwl2bW92ZHFhCXltbTEzLFlNTVdPUkRbKCg0MTYtNTEyKSkrcmF4XQorCXZtb3ZkcWEJeW1tMTQsWU1NV09SRFsoKDQ0OC01MTIpKStyYXhdCisJdm1vdmRxYQl5bW0xNSxZTU1XT1JEWygoNDgwLTUxMikpK3JheF0KKwl2bW92ZHFhCXltbTQsWU1NV09SRFsoKDUxMi01MTIpKStyYXhdCisJdm1vdmRxYQl5bW01LFlNTVdPUkRbKCg1NDQtNTEyKSkrcmF4XQorCXZtb3ZkcWEJeW1tNixZTU1XT1JEWygoNTc2LTUxMikpK3JheF0KKwl2bW92ZHFhCXltbTcsWU1NV09SRFsoKDYwOC01MTIpKStyYXhdCisJdnBhZGRkCXltbTQseW1tNCxZTU1XT1JEWyRMJGVpZ2h0XQorCiskTCRvb3BfZW50ZXI4eDoKKwl2bW92ZHFhCVlNTVdPUkRbNjQrcnNwXSx5bW0xNAorCXZtb3ZkcWEJWU1NV09SRFs5Nityc3BdLHltbTE1CisJdmJyb2FkY2FzdGkxMjgJeW1tMTUsWE1NV09SRFtyMTBdCisJdm1vdmRxYQlZTU1XT1JEWyg1MTItNTEyKStyYXhdLHltbTQKKwltb3YJZWF4LDEwCisJam1wCU5FQVIgJEwkb29wOHgKKworQUxJR04JMzIKKyRMJG9vcDh4OgorCXZwYWRkZAl5bW04LHltbTgseW1tMAorCXZweG9yCXltbTQseW1tOCx5bW00CisJdnBzaHVmYgl5bW00LHltbTQseW1tMTUKKwl2cGFkZGQJeW1tOSx5bW05LHltbTEKKwl2cHhvcgl5bW01LHltbTkseW1tNQorCXZwc2h1ZmIJeW1tNSx5bW01LHltbTE1CisJdnBhZGRkCXltbTEyLHltbTEyLHltbTQKKwl2cHhvcgl5bW0wLHltbTEyLHltbTAKKwl2cHNsbGQJeW1tMTQseW1tMCwxMgorCXZwc3JsZAl5bW0wLHltbTAsMjAKKwl2cG9yCXltbTAseW1tMTQseW1tMAorCXZicm9hZGNhc3RpMTI4CXltbTE0LFhNTVdPUkRbcjExXQorCXZwYWRkZAl5bW0xMyx5bW0xMyx5bW01CisJdnB4b3IJeW1tMSx5bW0xMyx5bW0xCisJdnBzbGxkCXltbTE1LHltbTEsMTIKKwl2cHNybGQJeW1tMSx5bW0xLDIwCisJdnBvcgl5bW0xLHltbTE1LHltbTEKKwl2cGFkZGQJeW1tOCx5bW04LHltbTAKKwl2cHhvcgl5bW00LHltbTgseW1tNAorCXZwc2h1ZmIJeW1tNCx5bW00LHltbTE0CisJdnBhZGRkCXltbTkseW1tOSx5bW0xCisJdnB4b3IJeW1tNSx5bW05LHltbTUKKwl2cHNodWZiCXltbTUseW1tNSx5bW0xNAorCXZwYWRkZAl5bW0xMix5bW0xMix5bW00CisJdnB4b3IJeW1tMCx5bW0xMix5bW0wCisJdnBzbGxkCXltbTE1LHltbTAsNworCXZwc3JsZAl5bW0wLHltbTAsMjUKKwl2cG9yCXltbTAseW1tMTUseW1tMAorCXZicm9hZGNhc3RpMTI4CXltbTE1LFhNTVdPUkRbcjEwXQorCXZwYWRkZAl5bW0xMyx5bW0xMyx5bW01CisJdnB4b3IJeW1tMSx5bW0xMyx5bW0xCisJdnBzbGxkCXltbTE0LHltbTEsNworCXZwc3JsZAl5bW0xLHltbTEsMjUKKwl2cG9yCXltbTEseW1tMTQseW1tMQorCXZtb3ZkcWEJWU1NV09SRFtyc3BdLHltbTEyCisJdm1vdmRxYQlZTU1XT1JEWzMyK3JzcF0seW1tMTMKKwl2bW92ZHFhCXltbTEyLFlNTVdPUkRbNjQrcnNwXQorCXZtb3ZkcWEJeW1tMTMsWU1NV09SRFs5Nityc3BdCisJdnBhZGRkCXltbTEwLHltbTEwLHltbTIKKwl2cHhvcgl5bW02LHltbTEwLHltbTYKKwl2cHNodWZiCXltbTYseW1tNix5bW0xNQorCXZwYWRkZAl5bW0xMSx5bW0xMSx5bW0zCisJdnB4b3IJeW1tNyx5bW0xMSx5bW03CisJdnBzaHVmYgl5bW03LHltbTcseW1tMTUKKwl2cGFkZGQJeW1tMTIseW1tMTIseW1tNgorCXZweG9yCXltbTIseW1tMTIseW1tMgorCXZwc2xsZAl5bW0xNCx5bW0yLDEyCisJdnBzcmxkCXltbTIseW1tMiwyMAorCXZwb3IJeW1tMix5bW0xNCx5bW0yCisJdmJyb2FkY2FzdGkxMjgJeW1tMTQsWE1NV09SRFtyMTFdCisJdnBhZGRkCXltbTEzLHltbTEzLHltbTcKKwl2cHhvcgl5bW0zLHltbTEzLHltbTMKKwl2cHNsbGQJeW1tMTUseW1tMywxMgorCXZwc3JsZAl5bW0zLHltbTMsMjAKKwl2cG9yCXltbTMseW1tMTUseW1tMworCXZwYWRkZAl5bW0xMCx5bW0xMCx5bW0yCisJdnB4b3IJeW1tNix5bW0xMCx5bW02CisJdnBzaHVmYgl5bW02LHltbTYseW1tMTQKKwl2cGFkZGQJeW1tMTEseW1tMTEseW1tMworCXZweG9yCXltbTcseW1tMTEseW1tNworCXZwc2h1ZmIJeW1tNyx5bW03LHltbTE0CisJdnBhZGRkCXltbTEyLHltbTEyLHltbTYKKwl2cHhvcgl5bW0yLHltbTEyLHltbTIKKwl2cHNsbGQJeW1tMTUseW1tMiw3CisJdnBzcmxkCXltbTIseW1tMiwyNQorCXZwb3IJeW1tMix5bW0xNSx5bW0yCisJdmJyb2FkY2FzdGkxMjgJeW1tMTUsWE1NV09SRFtyMTBdCisJdnBhZGRkCXltbTEzLHltbTEzLHltbTcKKwl2cHhvcgl5bW0zLHltbTEzLHltbTMKKwl2cHNsbGQJeW1tMTQseW1tMyw3CisJdnBzcmxkCXltbTMseW1tMywyNQorCXZwb3IJeW1tMyx5bW0xNCx5bW0zCisJdnBhZGRkCXltbTgseW1tOCx5bW0xCisJdnB4b3IJeW1tNyx5bW04LHltbTcKKwl2cHNodWZiCXltbTcseW1tNyx5bW0xNQorCXZwYWRkZAl5bW05LHltbTkseW1tMgorCXZweG9yCXltbTQseW1tOSx5bW00CisJdnBzaHVmYgl5bW00LHltbTQseW1tMTUKKwl2cGFkZGQJeW1tMTIseW1tMTIseW1tNworCXZweG9yCXltbTEseW1tMTIseW1tMQorCXZwc2xsZAl5bW0xNCx5bW0xLDEyCisJdnBzcmxkCXltbTEseW1tMSwyMAorCXZwb3IJeW1tMSx5bW0xNCx5bW0xCisJdmJyb2FkY2FzdGkxMjgJeW1tMTQsWE1NV09SRFtyMTFdCisJdnBhZGRkCXltbTEzLHltbTEzLHltbTQKKwl2cHhvcgl5bW0yLHltbTEzLHltbTIKKwl2cHNsbGQJeW1tMTUseW1tMiwxMgorCXZwc3JsZAl5bW0yLHltbTIsMjAKKwl2cG9yCXltbTIseW1tMTUseW1tMgorCXZwYWRkZAl5bW04LHltbTgseW1tMQorCXZweG9yCXltbTcseW1tOCx5bW03CisJdnBzaHVmYgl5bW03LHltbTcseW1tMTQKKwl2cGFkZGQJeW1tOSx5bW05LHltbTIKKwl2cHhvcgl5bW00LHltbTkseW1tNAorCXZwc2h1ZmIJeW1tNCx5bW00LHltbTE0CisJdnBhZGRkCXltbTEyLHltbTEyLHltbTcKKwl2cHhvcgl5bW0xLHltbTEyLHltbTEKKwl2cHNsbGQJeW1tMTUseW1tMSw3CisJdnBzcmxkCXltbTEseW1tMSwyNQorCXZwb3IJeW1tMSx5bW0xNSx5bW0xCisJdmJyb2FkY2FzdGkxMjgJeW1tMTUsWE1NV09SRFtyMTBdCisJdnBhZGRkCXltbTEzLHltbTEzLHltbTQKKwl2cHhvcgl5bW0yLHltbTEzLHltbTIKKwl2cHNsbGQJeW1tMTQseW1tMiw3CisJdnBzcmxkCXltbTIseW1tMiwyNQorCXZwb3IJeW1tMix5bW0xNCx5bW0yCisJdm1vdmRxYQlZTU1XT1JEWzY0K3JzcF0seW1tMTIKKwl2bW92ZHFhCVlNTVdPUkRbOTYrcnNwXSx5bW0xMworCXZtb3ZkcWEJeW1tMTIsWU1NV09SRFtyc3BdCisJdm1vdmRxYQl5bW0xMyxZTU1XT1JEWzMyK3JzcF0KKwl2cGFkZGQJeW1tMTAseW1tMTAseW1tMworCXZweG9yCXltbTUseW1tMTAseW1tNQorCXZwc2h1ZmIJeW1tNSx5bW01LHltbTE1CisJdnBhZGRkCXltbTExLHltbTExLHltbTAKKwl2cHhvcgl5bW02LHltbTExLHltbTYKKwl2cHNodWZiCXltbTYseW1tNix5bW0xNQorCXZwYWRkZAl5bW0xMix5bW0xMix5bW01CisJdnB4b3IJeW1tMyx5bW0xMix5bW0zCisJdnBzbGxkCXltbTE0LHltbTMsMTIKKwl2cHNybGQJeW1tMyx5bW0zLDIwCisJdnBvcgl5bW0zLHltbTE0LHltbTMKKwl2YnJvYWRjYXN0aTEyOAl5bW0xNCxYTU1XT1JEW3IxMV0KKwl2cGFkZGQJeW1tMTMseW1tMTMseW1tNgorCXZweG9yCXltbTAseW1tMTMseW1tMAorCXZwc2xsZAl5bW0xNSx5bW0wLDEyCisJdnBzcmxkCXltbTAseW1tMCwyMAorCXZwb3IJeW1tMCx5bW0xNSx5bW0wCisJdnBhZGRkCXltbTEwLHltbTEwLHltbTMKKwl2cHhvcgl5bW01LHltbTEwLHltbTUKKwl2cHNodWZiCXltbTUseW1tNSx5bW0xNAorCXZwYWRkZAl5bW0xMSx5bW0xMSx5bW0wCisJdnB4b3IJeW1tNix5bW0xMSx5bW02CisJdnBzaHVmYgl5bW02LHltbTYseW1tMTQKKwl2cGFkZGQJeW1tMTIseW1tMTIseW1tNQorCXZweG9yCXltbTMseW1tMTIseW1tMworCXZwc2xsZAl5bW0xNSx5bW0zLDcKKwl2cHNybGQJeW1tMyx5bW0zLDI1CisJdnBvcgl5bW0zLHltbTE1LHltbTMKKwl2YnJvYWRjYXN0aTEyOAl5bW0xNSxYTU1XT1JEW3IxMF0KKwl2cGFkZGQJeW1tMTMseW1tMTMseW1tNgorCXZweG9yCXltbTAseW1tMTMseW1tMAorCXZwc2xsZAl5bW0xNCx5bW0wLDcKKwl2cHNybGQJeW1tMCx5bW0wLDI1CisJdnBvcgl5bW0wLHltbTE0LHltbTAKKwlkZWMJZWF4CisJam56CU5FQVIgJEwkb29wOHgKKworCWxlYQlyYXgsWzUxMityc3BdCisJdnBhZGRkCXltbTgseW1tOCxZTU1XT1JEWygoMTI4LTI1NikpK3JjeF0KKwl2cGFkZGQJeW1tOSx5bW05LFlNTVdPUkRbKCgxNjAtMjU2KSkrcmN4XQorCXZwYWRkZAl5bW0xMCx5bW0xMCxZTU1XT1JEWygoMTkyLTI1NikpK3JjeF0KKwl2cGFkZGQJeW1tMTEseW1tMTEsWU1NV09SRFsoKDIyNC0yNTYpKStyY3hdCisKKwl2cHVucGNrbGRxCXltbTE0LHltbTgseW1tOQorCXZwdW5wY2tsZHEJeW1tMTUseW1tMTAseW1tMTEKKwl2cHVucGNraGRxCXltbTgseW1tOCx5bW05CisJdnB1bnBja2hkcQl5bW0xMCx5bW0xMCx5bW0xMQorCXZwdW5wY2tscWRxCXltbTkseW1tMTQseW1tMTUKKwl2cHVucGNraHFkcQl5bW0xNCx5bW0xNCx5bW0xNQorCXZwdW5wY2tscWRxCXltbTExLHltbTgseW1tMTAKKwl2cHVucGNraHFkcQl5bW04LHltbTgseW1tMTAKKwl2cGFkZGQJeW1tMCx5bW0wLFlNTVdPUkRbKCgyNTYtMjU2KSkrcmN4XQorCXZwYWRkZAl5bW0xLHltbTEsWU1NV09SRFsoKDI4OC0yNTYpKStyY3hdCisJdnBhZGRkCXltbTIseW1tMixZTU1XT1JEWygoMzIwLTI1NikpK3JjeF0KKwl2cGFkZGQJeW1tMyx5bW0zLFlNTVdPUkRbKCgzNTItMjU2KSkrcmN4XQorCisJdnB1bnBja2xkcQl5bW0xMCx5bW0wLHltbTEKKwl2cHVucGNrbGRxCXltbTE1LHltbTIseW1tMworCXZwdW5wY2toZHEJeW1tMCx5bW0wLHltbTEKKwl2cHVucGNraGRxCXltbTIseW1tMix5bW0zCisJdnB1bnBja2xxZHEJeW1tMSx5bW0xMCx5bW0xNQorCXZwdW5wY2tocWRxCXltbTEwLHltbTEwLHltbTE1CisJdnB1bnBja2xxZHEJeW1tMyx5bW0wLHltbTIKKwl2cHVucGNraHFkcQl5bW0wLHltbTAseW1tMgorCXZwZXJtMmkxMjgJeW1tMTUseW1tOSx5bW0xLDB4MjAKKwl2cGVybTJpMTI4CXltbTEseW1tOSx5bW0xLDB4MzEKKwl2cGVybTJpMTI4CXltbTkseW1tMTQseW1tMTAsMHgyMAorCXZwZXJtMmkxMjgJeW1tMTAseW1tMTQseW1tMTAsMHgzMQorCXZwZXJtMmkxMjgJeW1tMTQseW1tMTEseW1tMywweDIwCisJdnBlcm0yaTEyOAl5bW0zLHltbTExLHltbTMsMHgzMQorCXZwZXJtMmkxMjgJeW1tMTEseW1tOCx5bW0wLDB4MjAKKwl2cGVybTJpMTI4CXltbTAseW1tOCx5bW0wLDB4MzEKKwl2bW92ZHFhCVlNTVdPUkRbcnNwXSx5bW0xNQorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTkKKwl2bW92ZHFhCXltbTE1LFlNTVdPUkRbNjQrcnNwXQorCXZtb3ZkcWEJeW1tOSxZTU1XT1JEWzk2K3JzcF0KKworCXZwYWRkZAl5bW0xMix5bW0xMixZTU1XT1JEWygoMzg0LTUxMikpK3JheF0KKwl2cGFkZGQJeW1tMTMseW1tMTMsWU1NV09SRFsoKDQxNi01MTIpKStyYXhdCisJdnBhZGRkCXltbTE1LHltbTE1LFlNTVdPUkRbKCg0NDgtNTEyKSkrcmF4XQorCXZwYWRkZAl5bW05LHltbTksWU1NV09SRFsoKDQ4MC01MTIpKStyYXhdCisKKwl2cHVucGNrbGRxCXltbTIseW1tMTIseW1tMTMKKwl2cHVucGNrbGRxCXltbTgseW1tMTUseW1tOQorCXZwdW5wY2toZHEJeW1tMTIseW1tMTIseW1tMTMKKwl2cHVucGNraGRxCXltbTE1LHltbTE1LHltbTkKKwl2cHVucGNrbHFkcQl5bW0xMyx5bW0yLHltbTgKKwl2cHVucGNraHFkcQl5bW0yLHltbTIseW1tOAorCXZwdW5wY2tscWRxCXltbTkseW1tMTIseW1tMTUKKwl2cHVucGNraHFkcQl5bW0xMix5bW0xMix5bW0xNQorCXZwYWRkZAl5bW00LHltbTQsWU1NV09SRFsoKDUxMi01MTIpKStyYXhdCisJdnBhZGRkCXltbTUseW1tNSxZTU1XT1JEWygoNTQ0LTUxMikpK3JheF0KKwl2cGFkZGQJeW1tNix5bW02LFlNTVdPUkRbKCg1NzYtNTEyKSkrcmF4XQorCXZwYWRkZAl5bW03LHltbTcsWU1NV09SRFsoKDYwOC01MTIpKStyYXhdCisKKwl2cHVucGNrbGRxCXltbTE1LHltbTQseW1tNQorCXZwdW5wY2tsZHEJeW1tOCx5bW02LHltbTcKKwl2cHVucGNraGRxCXltbTQseW1tNCx5bW01CisJdnB1bnBja2hkcQl5bW02LHltbTYseW1tNworCXZwdW5wY2tscWRxCXltbTUseW1tMTUseW1tOAorCXZwdW5wY2tocWRxCXltbTE1LHltbTE1LHltbTgKKwl2cHVucGNrbHFkcQl5bW03LHltbTQseW1tNgorCXZwdW5wY2tocWRxCXltbTQseW1tNCx5bW02CisJdnBlcm0yaTEyOAl5bW04LHltbTEzLHltbTUsMHgyMAorCXZwZXJtMmkxMjgJeW1tNSx5bW0xMyx5bW01LDB4MzEKKwl2cGVybTJpMTI4CXltbTEzLHltbTIseW1tMTUsMHgyMAorCXZwZXJtMmkxMjgJeW1tMTUseW1tMix5bW0xNSwweDMxCisJdnBlcm0yaTEyOAl5bW0yLHltbTkseW1tNywweDIwCisJdnBlcm0yaTEyOAl5bW03LHltbTkseW1tNywweDMxCisJdnBlcm0yaTEyOAl5bW05LHltbTEyLHltbTQsMHgyMAorCXZwZXJtMmkxMjgJeW1tNCx5bW0xMix5bW00LDB4MzEKKwl2bW92ZHFhCXltbTYsWU1NV09SRFtyc3BdCisJdm1vdmRxYQl5bW0xMixZTU1XT1JEWzMyK3JzcF0KKworCWNtcAlyZHgsNjQqOAorCWpiCU5FQVIgJEwkdGFpbDh4CisKKwl2cHhvcgl5bW02LHltbTYsWU1NV09SRFtyc2ldCisJdnB4b3IJeW1tOCx5bW04LFlNTVdPUkRbMzIrcnNpXQorCXZweG9yCXltbTEseW1tMSxZTU1XT1JEWzY0K3JzaV0KKwl2cHhvcgl5bW01LHltbTUsWU1NV09SRFs5Nityc2ldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwl2bW92ZHF1CVlNTVdPUkRbcmRpXSx5bW02CisJdm1vdmRxdQlZTU1XT1JEWzMyK3JkaV0seW1tOAorCXZtb3ZkcXUJWU1NV09SRFs2NCtyZGldLHltbTEKKwl2bW92ZHF1CVlNTVdPUkRbOTYrcmRpXSx5bW01CisJbGVhCXJkaSxbMTI4K3JkaV0KKworCXZweG9yCXltbTEyLHltbTEyLFlNTVdPUkRbcnNpXQorCXZweG9yCXltbTEzLHltbTEzLFlNTVdPUkRbMzIrcnNpXQorCXZweG9yCXltbTEwLHltbTEwLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTE1LHltbTE1LFlNTVdPUkRbOTYrcnNpXQorCWxlYQlyc2ksWzEyOCtyc2ldCisJdm1vdmRxdQlZTU1XT1JEW3JkaV0seW1tMTIKKwl2bW92ZHF1CVlNTVdPUkRbMzIrcmRpXSx5bW0xMworCXZtb3ZkcXUJWU1NV09SRFs2NCtyZGldLHltbTEwCisJdm1vdmRxdQlZTU1XT1JEWzk2K3JkaV0seW1tMTUKKwlsZWEJcmRpLFsxMjgrcmRpXQorCisJdnB4b3IJeW1tMTQseW1tMTQsWU1NV09SRFtyc2ldCisJdnB4b3IJeW1tMix5bW0yLFlNTVdPUkRbMzIrcnNpXQorCXZweG9yCXltbTMseW1tMyxZTU1XT1JEWzY0K3JzaV0KKwl2cHhvcgl5bW03LHltbTcsWU1NV09SRFs5Nityc2ldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwl2bW92ZHF1CVlNTVdPUkRbcmRpXSx5bW0xNAorCXZtb3ZkcXUJWU1NV09SRFszMityZGldLHltbTIKKwl2bW92ZHF1CVlNTVdPUkRbNjQrcmRpXSx5bW0zCisJdm1vdmRxdQlZTU1XT1JEWzk2K3JkaV0seW1tNworCWxlYQlyZGksWzEyOCtyZGldCisKKwl2cHhvcgl5bW0xMSx5bW0xMSxZTU1XT1JEW3JzaV0KKwl2cHhvcgl5bW05LHltbTksWU1NV09SRFszMityc2ldCisJdnB4b3IJeW1tMCx5bW0wLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTQseW1tNCxZTU1XT1JEWzk2K3JzaV0KKwlsZWEJcnNpLFsxMjgrcnNpXQorCXZtb3ZkcXUJWU1NV09SRFtyZGldLHltbTExCisJdm1vdmRxdQlZTU1XT1JEWzMyK3JkaV0seW1tOQorCXZtb3ZkcXUJWU1NV09SRFs2NCtyZGldLHltbTAKKwl2bW92ZHF1CVlNTVdPUkRbOTYrcmRpXSx5bW00CisJbGVhCXJkaSxbMTI4K3JkaV0KKworCXN1YglyZHgsNjQqOAorCWpueglORUFSICRMJG9vcF9vdXRlcjh4CisKKwlqbXAJTkVBUiAkTCRkb25lOHgKKworJEwkdGFpbDh4OgorCWNtcAlyZHgsNDQ4CisJamFlCU5FQVIgJEwkNDQ4X29yX21vcmU4eAorCWNtcAlyZHgsMzg0CisJamFlCU5FQVIgJEwkMzg0X29yX21vcmU4eAorCWNtcAlyZHgsMzIwCisJamFlCU5FQVIgJEwkMzIwX29yX21vcmU4eAorCWNtcAlyZHgsMjU2CisJamFlCU5FQVIgJEwkMjU2X29yX21vcmU4eAorCWNtcAlyZHgsMTkyCisJamFlCU5FQVIgJEwkMTkyX29yX21vcmU4eAorCWNtcAlyZHgsMTI4CisJamFlCU5FQVIgJEwkMTI4X29yX21vcmU4eAorCWNtcAlyZHgsNjQKKwlqYWUJTkVBUiAkTCQ2NF9vcl9tb3JlOHgKKworCXhvcglyMTAscjEwCisJdm1vdmRxYQlZTU1XT1JEW3JzcF0seW1tNgorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTgKKwlqbXAJTkVBUiAkTCRvb3BfdGFpbDh4CisKK0FMSUdOCTMyCiskTCQ2NF9vcl9tb3JlOHg6CisJdnB4b3IJeW1tNix5bW02LFlNTVdPUkRbcnNpXQorCXZweG9yCXltbTgseW1tOCxZTU1XT1JEWzMyK3JzaV0KKwl2bW92ZHF1CVlNTVdPUkRbcmRpXSx5bW02CisJdm1vdmRxdQlZTU1XT1JEWzMyK3JkaV0seW1tOAorCWplCU5FQVIgJEwkZG9uZTh4CisKKwlsZWEJcnNpLFs2NCtyc2ldCisJeG9yCXIxMCxyMTAKKwl2bW92ZHFhCVlNTVdPUkRbcnNwXSx5bW0xCisJbGVhCXJkaSxbNjQrcmRpXQorCXN1YglyZHgsNjQKKwl2bW92ZHFhCVlNTVdPUkRbMzIrcnNwXSx5bW01CisJam1wCU5FQVIgJEwkb29wX3RhaWw4eAorCitBTElHTgkzMgorJEwkMTI4X29yX21vcmU4eDoKKwl2cHhvcgl5bW02LHltbTYsWU1NV09SRFtyc2ldCisJdnB4b3IJeW1tOCx5bW04LFlNTVdPUkRbMzIrcnNpXQorCXZweG9yCXltbTEseW1tMSxZTU1XT1JEWzY0K3JzaV0KKwl2cHhvcgl5bW01LHltbTUsWU1NV09SRFs5Nityc2ldCisJdm1vdmRxdQlZTU1XT1JEW3JkaV0seW1tNgorCXZtb3ZkcXUJWU1NV09SRFszMityZGldLHltbTgKKwl2bW92ZHF1CVlNTVdPUkRbNjQrcmRpXSx5bW0xCisJdm1vdmRxdQlZTU1XT1JEWzk2K3JkaV0seW1tNQorCWplCU5FQVIgJEwkZG9uZTh4CisKKwlsZWEJcnNpLFsxMjgrcnNpXQorCXhvcglyMTAscjEwCisJdm1vdmRxYQlZTU1XT1JEW3JzcF0seW1tMTIKKwlsZWEJcmRpLFsxMjgrcmRpXQorCXN1YglyZHgsMTI4CisJdm1vdmRxYQlZTU1XT1JEWzMyK3JzcF0seW1tMTMKKwlqbXAJTkVBUiAkTCRvb3BfdGFpbDh4CisKK0FMSUdOCTMyCiskTCQxOTJfb3JfbW9yZTh4OgorCXZweG9yCXltbTYseW1tNixZTU1XT1JEW3JzaV0KKwl2cHhvcgl5bW04LHltbTgsWU1NV09SRFszMityc2ldCisJdnB4b3IJeW1tMSx5bW0xLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTUseW1tNSxZTU1XT1JEWzk2K3JzaV0KKwl2cHhvcgl5bW0xMix5bW0xMixZTU1XT1JEWzEyOCtyc2ldCisJdnB4b3IJeW1tMTMseW1tMTMsWU1NV09SRFsxNjArcnNpXQorCXZtb3ZkcXUJWU1NV09SRFtyZGldLHltbTYKKwl2bW92ZHF1CVlNTVdPUkRbMzIrcmRpXSx5bW04CisJdm1vdmRxdQlZTU1XT1JEWzY0K3JkaV0seW1tMQorCXZtb3ZkcXUJWU1NV09SRFs5NityZGldLHltbTUKKwl2bW92ZHF1CVlNTVdPUkRbMTI4K3JkaV0seW1tMTIKKwl2bW92ZHF1CVlNTVdPUkRbMTYwK3JkaV0seW1tMTMKKwlqZQlORUFSICRMJGRvbmU4eAorCisJbGVhCXJzaSxbMTkyK3JzaV0KKwl4b3IJcjEwLHIxMAorCXZtb3ZkcWEJWU1NV09SRFtyc3BdLHltbTEwCisJbGVhCXJkaSxbMTkyK3JkaV0KKwlzdWIJcmR4LDE5MgorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTE1CisJam1wCU5FQVIgJEwkb29wX3RhaWw4eAorCitBTElHTgkzMgorJEwkMjU2X29yX21vcmU4eDoKKwl2cHhvcgl5bW02LHltbTYsWU1NV09SRFtyc2ldCisJdnB4b3IJeW1tOCx5bW04LFlNTVdPUkRbMzIrcnNpXQorCXZweG9yCXltbTEseW1tMSxZTU1XT1JEWzY0K3JzaV0KKwl2cHhvcgl5bW01LHltbTUsWU1NV09SRFs5Nityc2ldCisJdnB4b3IJeW1tMTIseW1tMTIsWU1NV09SRFsxMjgrcnNpXQorCXZweG9yCXltbTEzLHltbTEzLFlNTVdPUkRbMTYwK3JzaV0KKwl2cHhvcgl5bW0xMCx5bW0xMCxZTU1XT1JEWzE5Mityc2ldCisJdnB4b3IJeW1tMTUseW1tMTUsWU1NV09SRFsyMjQrcnNpXQorCXZtb3ZkcXUJWU1NV09SRFtyZGldLHltbTYKKwl2bW92ZHF1CVlNTVdPUkRbMzIrcmRpXSx5bW04CisJdm1vdmRxdQlZTU1XT1JEWzY0K3JkaV0seW1tMQorCXZtb3ZkcXUJWU1NV09SRFs5NityZGldLHltbTUKKwl2bW92ZHF1CVlNTVdPUkRbMTI4K3JkaV0seW1tMTIKKwl2bW92ZHF1CVlNTVdPUkRbMTYwK3JkaV0seW1tMTMKKwl2bW92ZHF1CVlNTVdPUkRbMTkyK3JkaV0seW1tMTAKKwl2bW92ZHF1CVlNTVdPUkRbMjI0K3JkaV0seW1tMTUKKwlqZQlORUFSICRMJGRvbmU4eAorCisJbGVhCXJzaSxbMjU2K3JzaV0KKwl4b3IJcjEwLHIxMAorCXZtb3ZkcWEJWU1NV09SRFtyc3BdLHltbTE0CisJbGVhCXJkaSxbMjU2K3JkaV0KKwlzdWIJcmR4LDI1NgorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTIKKwlqbXAJTkVBUiAkTCRvb3BfdGFpbDh4CisKK0FMSUdOCTMyCiskTCQzMjBfb3JfbW9yZTh4OgorCXZweG9yCXltbTYseW1tNixZTU1XT1JEW3JzaV0KKwl2cHhvcgl5bW04LHltbTgsWU1NV09SRFszMityc2ldCisJdnB4b3IJeW1tMSx5bW0xLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTUseW1tNSxZTU1XT1JEWzk2K3JzaV0KKwl2cHhvcgl5bW0xMix5bW0xMixZTU1XT1JEWzEyOCtyc2ldCisJdnB4b3IJeW1tMTMseW1tMTMsWU1NV09SRFsxNjArcnNpXQorCXZweG9yCXltbTEwLHltbTEwLFlNTVdPUkRbMTkyK3JzaV0KKwl2cHhvcgl5bW0xNSx5bW0xNSxZTU1XT1JEWzIyNCtyc2ldCisJdnB4b3IJeW1tMTQseW1tMTQsWU1NV09SRFsyNTYrcnNpXQorCXZweG9yCXltbTIseW1tMixZTU1XT1JEWzI4OCtyc2ldCisJdm1vdmRxdQlZTU1XT1JEW3JkaV0seW1tNgorCXZtb3ZkcXUJWU1NV09SRFszMityZGldLHltbTgKKwl2bW92ZHF1CVlNTVdPUkRbNjQrcmRpXSx5bW0xCisJdm1vdmRxdQlZTU1XT1JEWzk2K3JkaV0seW1tNQorCXZtb3ZkcXUJWU1NV09SRFsxMjgrcmRpXSx5bW0xMgorCXZtb3ZkcXUJWU1NV09SRFsxNjArcmRpXSx5bW0xMworCXZtb3ZkcXUJWU1NV09SRFsxOTIrcmRpXSx5bW0xMAorCXZtb3ZkcXUJWU1NV09SRFsyMjQrcmRpXSx5bW0xNQorCXZtb3ZkcXUJWU1NV09SRFsyNTYrcmRpXSx5bW0xNAorCXZtb3ZkcXUJWU1NV09SRFsyODgrcmRpXSx5bW0yCisJamUJTkVBUiAkTCRkb25lOHgKKworCWxlYQlyc2ksWzMyMCtyc2ldCisJeG9yCXIxMCxyMTAKKwl2bW92ZHFhCVlNTVdPUkRbcnNwXSx5bW0zCisJbGVhCXJkaSxbMzIwK3JkaV0KKwlzdWIJcmR4LDMyMAorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTcKKwlqbXAJTkVBUiAkTCRvb3BfdGFpbDh4CisKK0FMSUdOCTMyCiskTCQzODRfb3JfbW9yZTh4OgorCXZweG9yCXltbTYseW1tNixZTU1XT1JEW3JzaV0KKwl2cHhvcgl5bW04LHltbTgsWU1NV09SRFszMityc2ldCisJdnB4b3IJeW1tMSx5bW0xLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTUseW1tNSxZTU1XT1JEWzk2K3JzaV0KKwl2cHhvcgl5bW0xMix5bW0xMixZTU1XT1JEWzEyOCtyc2ldCisJdnB4b3IJeW1tMTMseW1tMTMsWU1NV09SRFsxNjArcnNpXQorCXZweG9yCXltbTEwLHltbTEwLFlNTVdPUkRbMTkyK3JzaV0KKwl2cHhvcgl5bW0xNSx5bW0xNSxZTU1XT1JEWzIyNCtyc2ldCisJdnB4b3IJeW1tMTQseW1tMTQsWU1NV09SRFsyNTYrcnNpXQorCXZweG9yCXltbTIseW1tMixZTU1XT1JEWzI4OCtyc2ldCisJdnB4b3IJeW1tMyx5bW0zLFlNTVdPUkRbMzIwK3JzaV0KKwl2cHhvcgl5bW03LHltbTcsWU1NV09SRFszNTIrcnNpXQorCXZtb3ZkcXUJWU1NV09SRFtyZGldLHltbTYKKwl2bW92ZHF1CVlNTVdPUkRbMzIrcmRpXSx5bW04CisJdm1vdmRxdQlZTU1XT1JEWzY0K3JkaV0seW1tMQorCXZtb3ZkcXUJWU1NV09SRFs5NityZGldLHltbTUKKwl2bW92ZHF1CVlNTVdPUkRbMTI4K3JkaV0seW1tMTIKKwl2bW92ZHF1CVlNTVdPUkRbMTYwK3JkaV0seW1tMTMKKwl2bW92ZHF1CVlNTVdPUkRbMTkyK3JkaV0seW1tMTAKKwl2bW92ZHF1CVlNTVdPUkRbMjI0K3JkaV0seW1tMTUKKwl2bW92ZHF1CVlNTVdPUkRbMjU2K3JkaV0seW1tMTQKKwl2bW92ZHF1CVlNTVdPUkRbMjg4K3JkaV0seW1tMgorCXZtb3ZkcXUJWU1NV09SRFszMjArcmRpXSx5bW0zCisJdm1vdmRxdQlZTU1XT1JEWzM1MityZGldLHltbTcKKwlqZQlORUFSICRMJGRvbmU4eAorCisJbGVhCXJzaSxbMzg0K3JzaV0KKwl4b3IJcjEwLHIxMAorCXZtb3ZkcWEJWU1NV09SRFtyc3BdLHltbTExCisJbGVhCXJkaSxbMzg0K3JkaV0KKwlzdWIJcmR4LDM4NAorCXZtb3ZkcWEJWU1NV09SRFszMityc3BdLHltbTkKKwlqbXAJTkVBUiAkTCRvb3BfdGFpbDh4CisKK0FMSUdOCTMyCiskTCQ0NDhfb3JfbW9yZTh4OgorCXZweG9yCXltbTYseW1tNixZTU1XT1JEW3JzaV0KKwl2cHhvcgl5bW04LHltbTgsWU1NV09SRFszMityc2ldCisJdnB4b3IJeW1tMSx5bW0xLFlNTVdPUkRbNjQrcnNpXQorCXZweG9yCXltbTUseW1tNSxZTU1XT1JEWzk2K3JzaV0KKwl2cHhvcgl5bW0xMix5bW0xMixZTU1XT1JEWzEyOCtyc2ldCisJdnB4b3IJeW1tMTMseW1tMTMsWU1NV09SRFsxNjArcnNpXQorCXZweG9yCXltbTEwLHltbTEwLFlNTVdPUkRbMTkyK3JzaV0KKwl2cHhvcgl5bW0xNSx5bW0xNSxZTU1XT1JEWzIyNCtyc2ldCisJdnB4b3IJeW1tMTQseW1tMTQsWU1NV09SRFsyNTYrcnNpXQorCXZweG9yCXltbTIseW1tMixZTU1XT1JEWzI4OCtyc2ldCisJdnB4b3IJeW1tMyx5bW0zLFlNTVdPUkRbMzIwK3JzaV0KKwl2cHhvcgl5bW03LHltbTcsWU1NV09SRFszNTIrcnNpXQorCXZweG9yCXltbTExLHltbTExLFlNTVdPUkRbMzg0K3JzaV0KKwl2cHhvcgl5bW05LHltbTksWU1NV09SRFs0MTYrcnNpXQorCXZtb3ZkcXUJWU1NV09SRFtyZGldLHltbTYKKwl2bW92ZHF1CVlNTVdPUkRbMzIrcmRpXSx5bW04CisJdm1vdmRxdQlZTU1XT1JEWzY0K3JkaV0seW1tMQorCXZtb3ZkcXUJWU1NV09SRFs5NityZGldLHltbTUKKwl2bW92ZHF1CVlNTVdPUkRbMTI4K3JkaV0seW1tMTIKKwl2bW92ZHF1CVlNTVdPUkRbMTYwK3JkaV0seW1tMTMKKwl2bW92ZHF1CVlNTVdPUkRbMTkyK3JkaV0seW1tMTAKKwl2bW92ZHF1CVlNTVdPUkRbMjI0K3JkaV0seW1tMTUKKwl2bW92ZHF1CVlNTVdPUkRbMjU2K3JkaV0seW1tMTQKKwl2bW92ZHF1CVlNTVdPUkRbMjg4K3JkaV0seW1tMgorCXZtb3ZkcXUJWU1NV09SRFszMjArcmRpXSx5bW0zCisJdm1vdmRxdQlZTU1XT1JEWzM1MityZGldLHltbTcKKwl2bW92ZHF1CVlNTVdPUkRbMzg0K3JkaV0seW1tMTEKKwl2bW92ZHF1CVlNTVdPUkRbNDE2K3JkaV0seW1tOQorCWplCU5FQVIgJEwkZG9uZTh4CisKKwlsZWEJcnNpLFs0NDgrcnNpXQorCXhvcglyMTAscjEwCisJdm1vdmRxYQlZTU1XT1JEW3JzcF0seW1tMAorCWxlYQlyZGksWzQ0OCtyZGldCisJc3ViCXJkeCw0NDgKKwl2bW92ZHFhCVlNTVdPUkRbMzIrcnNwXSx5bW00CisKKyRMJG9vcF90YWlsOHg6CisJbW92engJZWF4LEJZVEVbcjEwKjErcnNpXQorCW1vdnp4CWVjeCxCWVRFW3IxMCoxK3JzcF0KKwlsZWEJcjEwLFsxK3IxMF0KKwl4b3IJZWF4LGVjeAorCW1vdglCWVRFWygoLTEpKStyMTAqMStyZGldLGFsCisJZGVjCXJkeAorCWpueglORUFSICRMJG9vcF90YWlsOHgKKworJEwkZG9uZTh4OgorCXZ6ZXJvYWxsCisJbGVhCXIxMSxbKCg2NTYrNDgpKStyc3BdCisJbW92YXBzCXhtbTYsWE1NV09SRFsoKC00OCkpK3IxMV0KKwltb3ZhcHMJeG1tNyxYTU1XT1JEWygoLTMyKSkrcjExXQorCW1vdmFwcwl4bW04LFhNTVdPUkRbKCgtMTYpKStyMTFdCisJbW92YXBzCXhtbTksWE1NV09SRFtyMTFdCisJbW92YXBzCXhtbTEwLFhNTVdPUkRbMTYrcjExXQorCW1vdmFwcwl4bW0xMSxYTU1XT1JEWzMyK3IxMV0KKwltb3ZhcHMJeG1tMTIsWE1NV09SRFs0OCtyMTFdCisJbW92YXBzCXhtbTEzLFhNTVdPUkRbNjQrcjExXQorCW1vdmFwcwl4bW0xNCxYTU1XT1JEWzgwK3IxMV0KKwltb3ZhcHMJeG1tMTUsWE1NV09SRFs5NityMTFdCisJbW92CXJzcCxRV09SRFs2NDArcnNwXQorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9DaGFDaGEyMF84eDoKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9jcHUteDg2XzY0LWFzbS5hc20gYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vY3B1LXg4Nl82NC1hc20uYXNtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTJkN2JiLi4wMDAwMDAwCi0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9jcHUteDg2XzY0LWFzbS5hc20KKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotZGVmYXVsdAlyZWwKLSVkZWZpbmUgWE1NV09SRAotJWRlZmluZSBZTU1XT1JECi0lZGVmaW5lIFpNTVdPUkQKLXNlY3Rpb24JLnRleHQgY29kZSBhbGlnbj02NAotCi0KLWdsb2JhbAlPUEVOU1NMX2lhMzJfY3B1aWQKLQotQUxJR04JMTYKLU9QRU5TU0xfaWEzMl9jcHVpZDoKLQltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKLQltb3YJUVdPUkRbMTYrcnNwXSxyc2kKLQltb3YJcmF4LHJzcAotJEwkU0VIX2JlZ2luX09QRU5TU0xfaWEzMl9jcHVpZDoKLQltb3YJcmRpLHJjeAotCi0KLQotCi0JbW92CXJkaSxyY3gKLQltb3YJcjgscmJ4Ci0KLQl4b3IJZWF4LGVheAotCW1vdglEV09SRFs4K3JkaV0sZWF4Ci0JY3B1aWQKLQltb3YJcjExZCxlYXgKLQotCXhvcgllYXgsZWF4Ci0JY21wCWVieCwweDc1NmU2NTQ3Ci0Jc2V0bmUJYWwKLQltb3YJcjlkLGVheAotCWNtcAllZHgsMHg0OTY1NmU2OQotCXNldG5lCWFsCi0Jb3IJcjlkLGVheAotCWNtcAllY3gsMHg2YzY1NzQ2ZQotCXNldG5lCWFsCi0Jb3IJcjlkLGVheAotCWp6CU5FQVIgJEwkaW50ZWwKLQotCWNtcAllYngsMHg2ODc0NzU0MQotCXNldG5lCWFsCi0JbW92CXIxMGQsZWF4Ci0JY21wCWVkeCwweDY5NzQ2RTY1Ci0Jc2V0bmUJYWwKLQlvcglyMTBkLGVheAotCWNtcAllY3gsMHg0NDRENDE2MwotCXNldG5lCWFsCi0Jb3IJcjEwZCxlYXgKLQlqbnoJTkVBUiAkTCRpbnRlbAotCi0KLQotCi0JbW92CWVheCwweDgwMDAwMDAwCi0JY3B1aWQKLQotCi0JY21wCWVheCwweDgwMDAwMDAxCi0JamIJTkVBUiAkTCRpbnRlbAotCW1vdglyMTBkLGVheAotCW1vdgllYXgsMHg4MDAwMDAwMQotCWNwdWlkCi0KLQotCW9yCXI5ZCxlY3gKLQlhbmQJcjlkLDB4MDAwMDA4MDEKLQotCWNtcAlyMTBkLDB4ODAwMDAwMDgKLQlqYglORUFSICRMJGludGVsCi0KLQltb3YJZWF4LDB4ODAwMDAwMDgKLQljcHVpZAotCi0JbW92engJcjEwLGNsCi0JaW5jCXIxMAotCi0JbW92CWVheCwxCi0JY3B1aWQKLQotCWJ0CWVkeCwyOAotCWpuYwlORUFSICRMJGdlbmVyaWMKLQlzaHIJZWJ4LDE2Ci0JY21wCWJsLHIxMGIKLQlqYQlORUFSICRMJGdlbmVyaWMKLQlhbmQJZWR4LDB4ZWZmZmZmZmYKLQlqbXAJTkVBUiAkTCRnZW5lcmljCi0KLSRMJGludGVsOgotCWNtcAlyMTFkLDQKLQltb3YJcjEwZCwtMQotCWpiCU5FQVIgJEwkbm9jYWNoZWluZm8KLQotCW1vdgllYXgsNAotCW1vdgllY3gsMAotCWNwdWlkCi0JbW92CXIxMGQsZWF4Ci0Jc2hyCXIxMGQsMTQKLQlhbmQJcjEwZCwweGZmZgotCi0JY21wCXIxMWQsNwotCWpiCU5FQVIgJEwkbm9jYWNoZWluZm8KLQotCW1vdgllYXgsNwotCXhvcgllY3gsZWN4Ci0JY3B1aWQKLQltb3YJRFdPUkRbOCtyZGldLGVieAotCi0kTCRub2NhY2hlaW5mbzoKLQltb3YJZWF4LDEKLQljcHVpZAotCi0JYW5kCWVkeCwweGJmZWZmZmZmCi0JY21wCXI5ZCwwCi0Jam5lCU5FQVIgJEwkbm90aW50ZWwKLQlvcgllZHgsMHg0MDAwMDAwMAotJEwkbm90aW50ZWw6Ci0JYnQJZWR4LDI4Ci0Jam5jCU5FQVIgJEwkZ2VuZXJpYwotCWFuZAllZHgsMHhlZmZmZmZmZgotCWNtcAlyMTBkLDAKLQlqZQlORUFSICRMJGdlbmVyaWMKLQotCW9yCWVkeCwweDEwMDAwMDAwCi0Jc2hyCWVieCwxNgotCWNtcAlibCwxCi0JamEJTkVBUiAkTCRnZW5lcmljCi0JYW5kCWVkeCwweGVmZmZmZmZmCi0kTCRnZW5lcmljOgotCWFuZAlyOWQsMHgwMDAwMDgwMAotCWFuZAllY3gsMHhmZmZmZjdmZgotCW9yCXI5ZCxlY3gKLQotCW1vdglyMTBkLGVkeAotCWJ0CXI5ZCwyNwotCWpuYwlORUFSICRMJGNsZWFyX2F2eAotCXhvcgllY3gsZWN4Ci1EQgkweDBmLDB4MDEsMHhkMAotCWFuZAllYXgsNgotCWNtcAllYXgsNgotCWplCU5FQVIgJEwkZG9uZQotJEwkY2xlYXJfYXZ4OgotCW1vdgllYXgsMHhlZmZmZTdmZgotCWFuZAlyOWQsZWF4Ci0JYW5kCURXT1JEWzgrcmRpXSwweGZmZmZmZmRmCi0kTCRkb25lOgotCW1vdglEV09SRFs0K3JkaV0scjlkCi0JbW92CURXT1JEW3JkaV0scjEwZAotCW1vdglyYngscjgKLQltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKLQltb3YJcnNpLFFXT1JEWzE2K3JzcF0KLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLSRMJFNFSF9lbmRfT1BFTlNTTF9pYTMyX2NwdWlkOgotCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9lYy9wMjU2LXg4Nl82NC1hc20uYXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZTQwNzUKLS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vZWMvcDI1Ni14ODZfNjQtYXNtLmFzbQpAQCAtMCwwICsxLDE5MjUgQEAKK2RlZmF1bHQJcmVsCislZGVmaW5lIFhNTVdPUkQKKyVkZWZpbmUgWU1NV09SRAorJWRlZmluZSBaTU1XT1JECitzZWN0aW9uCS50ZXh0IGNvZGUgYWxpZ249NjQKKworRVhURVJOCU9QRU5TU0xfaWEzMmNhcF9QCisKKworQUxJR04JNjQKKyRMJHBvbHk6CisJRFEJMHhmZmZmZmZmZmZmZmZmZmZmLDB4MDAwMDAwMDBmZmZmZmZmZiwweDAwMDAwMDAwMDAwMDAwMDAsMHhmZmZmZmZmZjAwMDAwMDAxCisKKyRMJE9uZToKKwlERAkxLDEsMSwxLDEsMSwxLDEKKyRMJFR3bzoKKwlERAkyLDIsMiwyLDIsMiwyLDIKKyRMJFRocmVlOgorCURECTMsMywzLDMsMywzLDMsMworJEwkT05FX21vbnQ6CisJRFEJMHgwMDAwMDAwMDAwMDAwMDAxLDB4ZmZmZmZmZmYwMDAwMDAwMCwweGZmZmZmZmZmZmZmZmZmZmYsMHgwMDAwMDAwMGZmZmZmZmZlCisKKworQUxJR04JNjQKK2VjcF9uaXN0ejI1Nl9tdWxfYnlfMjoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMjoKKwltb3YJcmRpLHJjeAorCW1vdglyc2kscmR4CisKKworCXB1c2gJcjEyCisJcHVzaAlyMTMKKworCW1vdglyOCxRV09SRFtyc2ldCisJbW92CXI5LFFXT1JEWzgrcnNpXQorCWFkZAlyOCxyOAorCW1vdglyMTAsUVdPUkRbMTYrcnNpXQorCWFkYwlyOSxyOQorCW1vdglyMTEsUVdPUkRbMjQrcnNpXQorCWxlYQlyc2ksWyRMJHBvbHldCisJbW92CXJheCxyOAorCWFkYwlyMTAscjEwCisJYWRjCXIxMSxyMTEKKwltb3YJcmR4LHI5CisJc2JiCXIxMyxyMTMKKworCXN1YglyOCxRV09SRFtyc2ldCisJbW92CXJjeCxyMTAKKwlzYmIJcjksUVdPUkRbOCtyc2ldCisJc2JiCXIxMCxRV09SRFsxNityc2ldCisJbW92CXIxMixyMTEKKwlzYmIJcjExLFFXT1JEWzI0K3JzaV0KKwl0ZXN0CXIxMyxyMTMKKworCWNtb3Z6CXI4LHJheAorCWNtb3Z6CXI5LHJkeAorCW1vdglRV09SRFtyZGldLHI4CisJY21vdnoJcjEwLHJjeAorCW1vdglRV09SRFs4K3JkaV0scjkKKwljbW92eglyMTEscjEyCisJbW92CVFXT1JEWzE2K3JkaV0scjEwCisJbW92CVFXT1JEWzI0K3JkaV0scjExCisKKwlwb3AJcjEzCisJcG9wCXIxMgorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfbXVsX2J5XzI6CisKKworCitnbG9iYWwJZWNwX25pc3R6MjU2X25lZworCitBTElHTgkzMgorZWNwX25pc3R6MjU2X25lZzoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX2VjcF9uaXN0ejI1Nl9uZWc6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCisKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisKKwl4b3IJcjgscjgKKwl4b3IJcjkscjkKKwl4b3IJcjEwLHIxMAorCXhvcglyMTEscjExCisJeG9yCXIxMyxyMTMKKworCXN1YglyOCxRV09SRFtyc2ldCisJc2JiCXI5LFFXT1JEWzgrcnNpXQorCXNiYglyMTAsUVdPUkRbMTYrcnNpXQorCW1vdglyYXgscjgKKwlzYmIJcjExLFFXT1JEWzI0K3JzaV0KKwlsZWEJcnNpLFskTCRwb2x5XQorCW1vdglyZHgscjkKKwlzYmIJcjEzLDAKKworCWFkZAlyOCxRV09SRFtyc2ldCisJbW92CXJjeCxyMTAKKwlhZGMJcjksUVdPUkRbOCtyc2ldCisJYWRjCXIxMCxRV09SRFsxNityc2ldCisJbW92CXIxMixyMTEKKwlhZGMJcjExLFFXT1JEWzI0K3JzaV0KKwl0ZXN0CXIxMyxyMTMKKworCWNtb3Z6CXI4LHJheAorCWNtb3Z6CXI5LHJkeAorCW1vdglRV09SRFtyZGldLHI4CisJY21vdnoJcjEwLHJjeAorCW1vdglRV09SRFs4K3JkaV0scjkKKwljbW92eglyMTEscjEyCisJbW92CVFXT1JEWzE2K3JkaV0scjEwCisJbW92CVFXT1JEWzI0K3JkaV0scjExCisKKwlwb3AJcjEzCisJcG9wCXIxMgorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9lY3BfbmlzdHoyNTZfbmVnOgorCisKKworCisKKworZ2xvYmFsCWVjcF9uaXN0ejI1Nl9tdWxfbW9udAorCitBTElHTgkzMgorZWNwX25pc3R6MjU2X211bF9tb250OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fZWNwX25pc3R6MjU2X211bF9tb250OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisKKworJEwkbXVsX21vbnQ6CisJcHVzaAlyYnAKKwlwdXNoCXJieAorCXB1c2gJcjEyCisJcHVzaAlyMTMKKwlwdXNoCXIxNAorCXB1c2gJcjE1CisJbW92CXJieCxyZHgKKwltb3YJcmF4LFFXT1JEW3JkeF0KKwltb3YJcjksUVdPUkRbcnNpXQorCW1vdglyMTAsUVdPUkRbOCtyc2ldCisJbW92CXIxMSxRV09SRFsxNityc2ldCisJbW92CXIxMixRV09SRFsyNCtyc2ldCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorJEwkbXVsX21vbnRfZG9uZToKKwlwb3AJcjE1CisJcG9wCXIxNAorCXBvcAlyMTMKKwlwb3AJcjEyCisJcG9wCXJieAorCXBvcAlyYnAKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfZWNwX25pc3R6MjU2X211bF9tb250OgorCisKK0FMSUdOCTMyCitfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHE6CisKKworCW1vdglyYnAscmF4CisJbXVsCXI5CisJbW92CXIxNCxRV09SRFsoKCRMJHBvbHkrOCkpXQorCW1vdglyOCxyYXgKKwltb3YJcmF4LHJicAorCW1vdglyOSxyZHgKKworCW11bAlyMTAKKwltb3YJcjE1LFFXT1JEWygoJEwkcG9seSsyNCkpXQorCWFkZAlyOSxyYXgKKwltb3YJcmF4LHJicAorCWFkYwlyZHgsMAorCW1vdglyMTAscmR4CisKKwltdWwJcjExCisJYWRkCXIxMCxyYXgKKwltb3YJcmF4LHJicAorCWFkYwlyZHgsMAorCW1vdglyMTEscmR4CisKKwltdWwJcjEyCisJYWRkCXIxMSxyYXgKKwltb3YJcmF4LHI4CisJYWRjCXJkeCwwCisJeG9yCXIxMyxyMTMKKwltb3YJcjEyLHJkeAorCisKKworCisKKworCisKKworCisJbW92CXJicCxyOAorCXNobAlyOCwzMgorCW11bAlyMTUKKwlzaHIJcmJwLDMyCisJYWRkCXI5LHI4CisJYWRjCXIxMCxyYnAKKwlhZGMJcjExLHJheAorCW1vdglyYXgsUVdPUkRbOCtyYnhdCisJYWRjCXIxMixyZHgKKwlhZGMJcjEzLDAKKwl4b3IJcjgscjgKKworCisKKwltb3YJcmJwLHJheAorCW11bAlRV09SRFtyc2ldCisJYWRkCXI5LHJheAorCW1vdglyYXgscmJwCisJYWRjCXJkeCwwCisJbW92CXJjeCxyZHgKKworCW11bAlRV09SRFs4K3JzaV0KKwlhZGQJcjEwLHJjeAorCWFkYwlyZHgsMAorCWFkZAlyMTAscmF4CisJbW92CXJheCxyYnAKKwlhZGMJcmR4LDAKKwltb3YJcmN4LHJkeAorCisJbXVsCVFXT1JEWzE2K3JzaV0KKwlhZGQJcjExLHJjeAorCWFkYwlyZHgsMAorCWFkZAlyMTEscmF4CisJbW92CXJheCxyYnAKKwlhZGMJcmR4LDAKKwltb3YJcmN4LHJkeAorCisJbXVsCVFXT1JEWzI0K3JzaV0KKwlhZGQJcjEyLHJjeAorCWFkYwlyZHgsMAorCWFkZAlyMTIscmF4CisJbW92CXJheCxyOQorCWFkYwlyMTMscmR4CisJYWRjCXI4LDAKKworCisKKwltb3YJcmJwLHI5CisJc2hsCXI5LDMyCisJbXVsCXIxNQorCXNocglyYnAsMzIKKwlhZGQJcjEwLHI5CisJYWRjCXIxMSxyYnAKKwlhZGMJcjEyLHJheAorCW1vdglyYXgsUVdPUkRbMTYrcmJ4XQorCWFkYwlyMTMscmR4CisJYWRjCXI4LDAKKwl4b3IJcjkscjkKKworCisKKwltb3YJcmJwLHJheAorCW11bAlRV09SRFtyc2ldCisJYWRkCXIxMCxyYXgKKwltb3YJcmF4LHJicAorCWFkYwlyZHgsMAorCW1vdglyY3gscmR4CisKKwltdWwJUVdPUkRbOCtyc2ldCisJYWRkCXIxMSxyY3gKKwlhZGMJcmR4LDAKKwlhZGQJcjExLHJheAorCW1vdglyYXgscmJwCisJYWRjCXJkeCwwCisJbW92CXJjeCxyZHgKKworCW11bAlRV09SRFsxNityc2ldCisJYWRkCXIxMixyY3gKKwlhZGMJcmR4LDAKKwlhZGQJcjEyLHJheAorCW1vdglyYXgscmJwCisJYWRjCXJkeCwwCisJbW92CXJjeCxyZHgKKworCW11bAlRV09SRFsyNCtyc2ldCisJYWRkCXIxMyxyY3gKKwlhZGMJcmR4LDAKKwlhZGQJcjEzLHJheAorCW1vdglyYXgscjEwCisJYWRjCXI4LHJkeAorCWFkYwlyOSwwCisKKworCisJbW92CXJicCxyMTAKKwlzaGwJcjEwLDMyCisJbXVsCXIxNQorCXNocglyYnAsMzIKKwlhZGQJcjExLHIxMAorCWFkYwlyMTIscmJwCisJYWRjCXIxMyxyYXgKKwltb3YJcmF4LFFXT1JEWzI0K3JieF0KKwlhZGMJcjgscmR4CisJYWRjCXI5LDAKKwl4b3IJcjEwLHIxMAorCisKKworCW1vdglyYnAscmF4CisJbXVsCVFXT1JEW3JzaV0KKwlhZGQJcjExLHJheAorCW1vdglyYXgscmJwCisJYWRjCXJkeCwwCisJbW92CXJjeCxyZHgKKworCW11bAlRV09SRFs4K3JzaV0KKwlhZGQJcjEyLHJjeAorCWFkYwlyZHgsMAorCWFkZAlyMTIscmF4CisJbW92CXJheCxyYnAKKwlhZGMJcmR4LDAKKwltb3YJcmN4LHJkeAorCisJbXVsCVFXT1JEWzE2K3JzaV0KKwlhZGQJcjEzLHJjeAorCWFkYwlyZHgsMAorCWFkZAlyMTMscmF4CisJbW92CXJheCxyYnAKKwlhZGMJcmR4LDAKKwltb3YJcmN4LHJkeAorCisJbXVsCVFXT1JEWzI0K3JzaV0KKwlhZGQJcjgscmN4CisJYWRjCXJkeCwwCisJYWRkCXI4LHJheAorCW1vdglyYXgscjExCisJYWRjCXI5LHJkeAorCWFkYwlyMTAsMAorCisKKworCW1vdglyYnAscjExCisJc2hsCXIxMSwzMgorCW11bAlyMTUKKwlzaHIJcmJwLDMyCisJYWRkCXIxMixyMTEKKwlhZGMJcjEzLHJicAorCW1vdglyY3gscjEyCisJYWRjCXI4LHJheAorCWFkYwlyOSxyZHgKKwltb3YJcmJwLHIxMworCWFkYwlyMTAsMAorCisKKworCXN1YglyMTIsLTEKKwltb3YJcmJ4LHI4CisJc2JiCXIxMyxyMTQKKwlzYmIJcjgsMAorCW1vdglyZHgscjkKKwlzYmIJcjkscjE1CisJc2JiCXIxMCwwCisKKwljbW92YwlyMTIscmN4CisJY21vdmMJcjEzLHJicAorCW1vdglRV09SRFtyZGldLHIxMgorCWNtb3ZjCXI4LHJieAorCW1vdglRV09SRFs4K3JkaV0scjEzCisJY21vdmMJcjkscmR4CisJbW92CVFXT1JEWzE2K3JkaV0scjgKKwltb3YJUVdPUkRbMjQrcmRpXSxyOQorCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCisKKworCisKKworCitnbG9iYWwJZWNwX25pc3R6MjU2X3Nxcl9tb250CisKK0FMSUdOCTMyCitlY3BfbmlzdHoyNTZfc3FyX21vbnQ6CisJbW92CVFXT1JEWzgrcnNwXSxyZGkJO1dJTjY0IHByb2xvZ3VlCisJbW92CVFXT1JEWzE2K3JzcF0scnNpCisJbW92CXJheCxyc3AKKyRMJFNFSF9iZWdpbl9lY3BfbmlzdHoyNTZfc3FyX21vbnQ6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCisKKwlwdXNoCXJicAorCXB1c2gJcmJ4CisJcHVzaAlyMTIKKwlwdXNoCXIxMworCXB1c2gJcjE0CisJcHVzaAlyMTUKKwltb3YJcmF4LFFXT1JEW3JzaV0KKwltb3YJcjE0LFFXT1JEWzgrcnNpXQorCW1vdglyMTUsUVdPUkRbMTYrcnNpXQorCW1vdglyOCxRV09SRFsyNCtyc2ldCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorJEwkc3FyX21vbnRfZG9uZToKKwlwb3AJcjE1CisJcG9wCXIxNAorCXBvcAlyMTMKKwlwb3AJcjEyCisJcG9wCXJieAorCXBvcAlyYnAKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfZWNwX25pc3R6MjU2X3Nxcl9tb250OgorCisKK0FMSUdOCTMyCitfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHE6CisJbW92CXIxMyxyYXgKKwltdWwJcjE0CisJbW92CXI5LHJheAorCW1vdglyYXgscjE1CisJbW92CXIxMCxyZHgKKworCW11bAlyMTMKKwlhZGQJcjEwLHJheAorCW1vdglyYXgscjgKKwlhZGMJcmR4LDAKKwltb3YJcjExLHJkeAorCisJbXVsCXIxMworCWFkZAlyMTEscmF4CisJbW92CXJheCxyMTUKKwlhZGMJcmR4LDAKKwltb3YJcjEyLHJkeAorCisKKwltdWwJcjE0CisJYWRkCXIxMSxyYXgKKwltb3YJcmF4LHI4CisJYWRjCXJkeCwwCisJbW92CXJicCxyZHgKKworCW11bAlyMTQKKwlhZGQJcjEyLHJheAorCW1vdglyYXgscjgKKwlhZGMJcmR4LDAKKwlhZGQJcjEyLHJicAorCW1vdglyMTMscmR4CisJYWRjCXIxMywwCisKKworCW11bAlyMTUKKwl4b3IJcjE1LHIxNQorCWFkZAlyMTMscmF4CisJbW92CXJheCxRV09SRFtyc2ldCisJbW92CXIxNCxyZHgKKwlhZGMJcjE0LDAKKworCWFkZAlyOSxyOQorCWFkYwlyMTAscjEwCisJYWRjCXIxMSxyMTEKKwlhZGMJcjEyLHIxMgorCWFkYwlyMTMscjEzCisJYWRjCXIxNCxyMTQKKwlhZGMJcjE1LDAKKworCW11bAlyYXgKKwltb3YJcjgscmF4CisJbW92CXJheCxRV09SRFs4K3JzaV0KKwltb3YJcmN4LHJkeAorCisJbXVsCXJheAorCWFkZAlyOSxyY3gKKwlhZGMJcjEwLHJheAorCW1vdglyYXgsUVdPUkRbMTYrcnNpXQorCWFkYwlyZHgsMAorCW1vdglyY3gscmR4CisKKwltdWwJcmF4CisJYWRkCXIxMSxyY3gKKwlhZGMJcjEyLHJheAorCW1vdglyYXgsUVdPUkRbMjQrcnNpXQorCWFkYwlyZHgsMAorCW1vdglyY3gscmR4CisKKwltdWwJcmF4CisJYWRkCXIxMyxyY3gKKwlhZGMJcjE0LHJheAorCW1vdglyYXgscjgKKwlhZGMJcjE1LHJkeAorCisJbW92CXJzaSxRV09SRFsoKCRMJHBvbHkrOCkpXQorCW1vdglyYnAsUVdPUkRbKCgkTCRwb2x5KzI0KSldCisKKworCisKKwltb3YJcmN4LHI4CisJc2hsCXI4LDMyCisJbXVsCXJicAorCXNocglyY3gsMzIKKwlhZGQJcjkscjgKKwlhZGMJcjEwLHJjeAorCWFkYwlyMTEscmF4CisJbW92CXJheCxyOQorCWFkYwlyZHgsMAorCisKKworCW1vdglyY3gscjkKKwlzaGwJcjksMzIKKwltb3YJcjgscmR4CisJbXVsCXJicAorCXNocglyY3gsMzIKKwlhZGQJcjEwLHI5CisJYWRjCXIxMSxyY3gKKwlhZGMJcjgscmF4CisJbW92CXJheCxyMTAKKwlhZGMJcmR4LDAKKworCisKKwltb3YJcmN4LHIxMAorCXNobAlyMTAsMzIKKwltb3YJcjkscmR4CisJbXVsCXJicAorCXNocglyY3gsMzIKKwlhZGQJcjExLHIxMAorCWFkYwlyOCxyY3gKKwlhZGMJcjkscmF4CisJbW92CXJheCxyMTEKKwlhZGMJcmR4LDAKKworCisKKwltb3YJcmN4LHIxMQorCXNobAlyMTEsMzIKKwltb3YJcjEwLHJkeAorCW11bAlyYnAKKwlzaHIJcmN4LDMyCisJYWRkCXI4LHIxMQorCWFkYwlyOSxyY3gKKwlhZGMJcjEwLHJheAorCWFkYwlyZHgsMAorCXhvcglyMTEscjExCisKKworCisJYWRkCXIxMixyOAorCWFkYwlyMTMscjkKKwltb3YJcjgscjEyCisJYWRjCXIxNCxyMTAKKwlhZGMJcjE1LHJkeAorCW1vdglyOSxyMTMKKwlhZGMJcjExLDAKKworCXN1YglyMTIsLTEKKwltb3YJcjEwLHIxNAorCXNiYglyMTMscnNpCisJc2JiCXIxNCwwCisJbW92CXJjeCxyMTUKKwlzYmIJcjE1LHJicAorCXNiYglyMTEsMAorCisJY21vdmMJcjEyLHI4CisJY21vdmMJcjEzLHI5CisJbW92CVFXT1JEW3JkaV0scjEyCisJY21vdmMJcjE0LHIxMAorCW1vdglRV09SRFs4K3JkaV0scjEzCisJY21vdmMJcjE1LHJjeAorCW1vdglRV09SRFsxNityZGldLHIxNAorCW1vdglRV09SRFsyNCtyZGldLHIxNQorCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCisKKworCisKK2dsb2JhbAllY3BfbmlzdHoyNTZfZnJvbV9tb250CisKK0FMSUdOCTMyCitlY3BfbmlzdHoyNTZfZnJvbV9tb250OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fZWNwX25pc3R6MjU2X2Zyb21fbW9udDoKKwltb3YJcmRpLHJjeAorCW1vdglyc2kscmR4CisKKworCXB1c2gJcjEyCisJcHVzaAlyMTMKKworCW1vdglyYXgsUVdPUkRbcnNpXQorCW1vdglyMTMsUVdPUkRbKCgkTCRwb2x5KzI0KSldCisJbW92CXI5LFFXT1JEWzgrcnNpXQorCW1vdglyMTAsUVdPUkRbMTYrcnNpXQorCW1vdglyMTEsUVdPUkRbMjQrcnNpXQorCW1vdglyOCxyYXgKKwltb3YJcjEyLFFXT1JEWygoJEwkcG9seSs4KSldCisKKworCisJbW92CXJjeCxyYXgKKwlzaGwJcjgsMzIKKwltdWwJcjEzCisJc2hyCXJjeCwzMgorCWFkZAlyOSxyOAorCWFkYwlyMTAscmN4CisJYWRjCXIxMSxyYXgKKwltb3YJcmF4LHI5CisJYWRjCXJkeCwwCisKKworCisJbW92CXJjeCxyOQorCXNobAlyOSwzMgorCW1vdglyOCxyZHgKKwltdWwJcjEzCisJc2hyCXJjeCwzMgorCWFkZAlyMTAscjkKKwlhZGMJcjExLHJjeAorCWFkYwlyOCxyYXgKKwltb3YJcmF4LHIxMAorCWFkYwlyZHgsMAorCisKKworCW1vdglyY3gscjEwCisJc2hsCXIxMCwzMgorCW1vdglyOSxyZHgKKwltdWwJcjEzCisJc2hyCXJjeCwzMgorCWFkZAlyMTEscjEwCisJYWRjCXI4LHJjeAorCWFkYwlyOSxyYXgKKwltb3YJcmF4LHIxMQorCWFkYwlyZHgsMAorCisKKworCW1vdglyY3gscjExCisJc2hsCXIxMSwzMgorCW1vdglyMTAscmR4CisJbXVsCXIxMworCXNocglyY3gsMzIKKwlhZGQJcjgscjExCisJYWRjCXI5LHJjeAorCW1vdglyY3gscjgKKwlhZGMJcjEwLHJheAorCW1vdglyc2kscjkKKwlhZGMJcmR4LDAKKworCXN1YglyOCwtMQorCW1vdglyYXgscjEwCisJc2JiCXI5LHIxMgorCXNiYglyMTAsMAorCW1vdglyMTEscmR4CisJc2JiCXJkeCxyMTMKKwlzYmIJcjEzLHIxMworCisJY21vdm56CXI4LHJjeAorCWNtb3ZueglyOSxyc2kKKwltb3YJUVdPUkRbcmRpXSxyOAorCWNtb3ZueglyMTAscmF4CisJbW92CVFXT1JEWzgrcmRpXSxyOQorCWNtb3Z6CXIxMSxyZHgKKwltb3YJUVdPUkRbMTYrcmRpXSxyMTAKKwltb3YJUVdPUkRbMjQrcmRpXSxyMTEKKworCXBvcAlyMTMKKwlwb3AJcjEyCisJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCisJbW92CXJzaSxRV09SRFsxNityc3BdCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiskTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9mcm9tX21vbnQ6CisKKworZ2xvYmFsCWVjcF9uaXN0ejI1Nl9zZWxlY3RfdzUKKworQUxJR04JMzIKK2VjcF9uaXN0ejI1Nl9zZWxlY3RfdzU6CisJbGVhCXJheCxbKCgtMTM2KSkrcnNwXQorJEwkU0VIX2JlZ2luX2VjcF9uaXN0ejI1Nl9zZWxlY3RfdzU6CitEQgkweDQ4LDB4OGQsMHg2MCwweGUwCitEQgkweDBmLDB4MjksMHg3MCwweGUwCitEQgkweDBmLDB4MjksMHg3OCwweGYwCitEQgkweDQ0LDB4MGYsMHgyOSwweDAwCitEQgkweDQ0LDB4MGYsMHgyOSwweDQ4LDB4MTAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NTAsMHgyMAorREIJMHg0NCwweDBmLDB4MjksMHg1OCwweDMwCitEQgkweDQ0LDB4MGYsMHgyOSwweDYwLDB4NDAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NjgsMHg1MAorREIJMHg0NCwweDBmLDB4MjksMHg3MCwweDYwCitEQgkweDQ0LDB4MGYsMHgyOSwweDc4LDB4NzAKKwltb3ZkcWEJeG1tMCxYTU1XT1JEWyRMJE9uZV0KKwltb3ZkCXhtbTEscjhkCisKKwlweG9yCXhtbTIseG1tMgorCXB4b3IJeG1tMyx4bW0zCisJcHhvcgl4bW00LHhtbTQKKwlweG9yCXhtbTUseG1tNQorCXB4b3IJeG1tNix4bW02CisJcHhvcgl4bW03LHhtbTcKKworCW1vdmRxYQl4bW04LHhtbTAKKwlwc2h1ZmQJeG1tMSx4bW0xLDAKKworCW1vdglyYXgsMTYKKyRMJHNlbGVjdF9sb29wX3NzZV93NToKKworCW1vdmRxYQl4bW0xNSx4bW04CisJcGFkZGQJeG1tOCx4bW0wCisJcGNtcGVxZAl4bW0xNSx4bW0xCisKKwltb3ZkcWEJeG1tOSxYTU1XT1JEW3JkeF0KKwltb3ZkcWEJeG1tMTAsWE1NV09SRFsxNityZHhdCisJbW92ZHFhCXhtbTExLFhNTVdPUkRbMzIrcmR4XQorCW1vdmRxYQl4bW0xMixYTU1XT1JEWzQ4K3JkeF0KKwltb3ZkcWEJeG1tMTMsWE1NV09SRFs2NCtyZHhdCisJbW92ZHFhCXhtbTE0LFhNTVdPUkRbODArcmR4XQorCWxlYQlyZHgsWzk2K3JkeF0KKworCXBhbmQJeG1tOSx4bW0xNQorCXBhbmQJeG1tMTAseG1tMTUKKwlwb3IJeG1tMix4bW05CisJcGFuZAl4bW0xMSx4bW0xNQorCXBvcgl4bW0zLHhtbTEwCisJcGFuZAl4bW0xMix4bW0xNQorCXBvcgl4bW00LHhtbTExCisJcGFuZAl4bW0xMyx4bW0xNQorCXBvcgl4bW01LHhtbTEyCisJcGFuZAl4bW0xNCx4bW0xNQorCXBvcgl4bW02LHhtbTEzCisJcG9yCXhtbTcseG1tMTQKKworCWRlYwlyYXgKKwlqbnoJTkVBUiAkTCRzZWxlY3RfbG9vcF9zc2VfdzUKKworCW1vdmRxdQlYTU1XT1JEW3JjeF0seG1tMgorCW1vdmRxdQlYTU1XT1JEWzE2K3JjeF0seG1tMworCW1vdmRxdQlYTU1XT1JEWzMyK3JjeF0seG1tNAorCW1vdmRxdQlYTU1XT1JEWzQ4K3JjeF0seG1tNQorCW1vdmRxdQlYTU1XT1JEWzY0K3JjeF0seG1tNgorCW1vdmRxdQlYTU1XT1JEWzgwK3JjeF0seG1tNworCW1vdmFwcwl4bW02LFhNTVdPUkRbcnNwXQorCW1vdmFwcwl4bW03LFhNTVdPUkRbMTYrcnNwXQorCW1vdmFwcwl4bW04LFhNTVdPUkRbMzIrcnNwXQorCW1vdmFwcwl4bW05LFhNTVdPUkRbNDgrcnNwXQorCW1vdmFwcwl4bW0xMCxYTU1XT1JEWzY0K3JzcF0KKwltb3ZhcHMJeG1tMTEsWE1NV09SRFs4MCtyc3BdCisJbW92YXBzCXhtbTEyLFhNTVdPUkRbOTYrcnNwXQorCW1vdmFwcwl4bW0xMyxYTU1XT1JEWzExMityc3BdCisJbW92YXBzCXhtbTE0LFhNTVdPUkRbMTI4K3JzcF0KKwltb3ZhcHMJeG1tMTUsWE1NV09SRFsxNDQrcnNwXQorCWxlYQlyc3AsWzE2OCtyc3BdCiskTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9zZWxlY3RfdzU6CisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCisKK2dsb2JhbAllY3BfbmlzdHoyNTZfc2VsZWN0X3c3CisKK0FMSUdOCTMyCitlY3BfbmlzdHoyNTZfc2VsZWN0X3c3OgorCWxlYQlyYXgsWygoLTEzNikpK3JzcF0KKyRMJFNFSF9iZWdpbl9lY3BfbmlzdHoyNTZfc2VsZWN0X3c3OgorREIJMHg0OCwweDhkLDB4NjAsMHhlMAorREIJMHgwZiwweDI5LDB4NzAsMHhlMAorREIJMHgwZiwweDI5LDB4NzgsMHhmMAorREIJMHg0NCwweDBmLDB4MjksMHgwMAorREIJMHg0NCwweDBmLDB4MjksMHg0OCwweDEwCitEQgkweDQ0LDB4MGYsMHgyOSwweDUwLDB4MjAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NTgsMHgzMAorREIJMHg0NCwweDBmLDB4MjksMHg2MCwweDQwCitEQgkweDQ0LDB4MGYsMHgyOSwweDY4LDB4NTAKK0RCCTB4NDQsMHgwZiwweDI5LDB4NzAsMHg2MAorREIJMHg0NCwweDBmLDB4MjksMHg3OCwweDcwCisJbW92ZHFhCXhtbTgsWE1NV09SRFskTCRPbmVdCisJbW92ZAl4bW0xLHI4ZAorCisJcHhvcgl4bW0yLHhtbTIKKwlweG9yCXhtbTMseG1tMworCXB4b3IJeG1tNCx4bW00CisJcHhvcgl4bW01LHhtbTUKKworCW1vdmRxYQl4bW0wLHhtbTgKKwlwc2h1ZmQJeG1tMSx4bW0xLDAKKwltb3YJcmF4LDY0CisKKyRMJHNlbGVjdF9sb29wX3NzZV93NzoKKwltb3ZkcWEJeG1tMTUseG1tOAorCXBhZGRkCXhtbTgseG1tMAorCW1vdmRxYQl4bW05LFhNTVdPUkRbcmR4XQorCW1vdmRxYQl4bW0xMCxYTU1XT1JEWzE2K3JkeF0KKwlwY21wZXFkCXhtbTE1LHhtbTEKKwltb3ZkcWEJeG1tMTEsWE1NV09SRFszMityZHhdCisJbW92ZHFhCXhtbTEyLFhNTVdPUkRbNDgrcmR4XQorCWxlYQlyZHgsWzY0K3JkeF0KKworCXBhbmQJeG1tOSx4bW0xNQorCXBhbmQJeG1tMTAseG1tMTUKKwlwb3IJeG1tMix4bW05CisJcGFuZAl4bW0xMSx4bW0xNQorCXBvcgl4bW0zLHhtbTEwCisJcGFuZAl4bW0xMix4bW0xNQorCXBvcgl4bW00LHhtbTExCisJcHJlZmV0Y2h0MAlbMjU1K3JkeF0KKwlwb3IJeG1tNSx4bW0xMgorCisJZGVjCXJheAorCWpueglORUFSICRMJHNlbGVjdF9sb29wX3NzZV93NworCisJbW92ZHF1CVhNTVdPUkRbcmN4XSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbMTYrcmN4XSx4bW0zCisJbW92ZHF1CVhNTVdPUkRbMzIrcmN4XSx4bW00CisJbW92ZHF1CVhNTVdPUkRbNDgrcmN4XSx4bW01CisJbW92YXBzCXhtbTYsWE1NV09SRFtyc3BdCisJbW92YXBzCXhtbTcsWE1NV09SRFsxNityc3BdCisJbW92YXBzCXhtbTgsWE1NV09SRFszMityc3BdCisJbW92YXBzCXhtbTksWE1NV09SRFs0OCtyc3BdCisJbW92YXBzCXhtbTEwLFhNTVdPUkRbNjQrcnNwXQorCW1vdmFwcwl4bW0xMSxYTU1XT1JEWzgwK3JzcF0KKwltb3ZhcHMJeG1tMTIsWE1NV09SRFs5Nityc3BdCisJbW92YXBzCXhtbTEzLFhNTVdPUkRbMTEyK3JzcF0KKwltb3ZhcHMJeG1tMTQsWE1NV09SRFsxMjgrcnNwXQorCW1vdmFwcwl4bW0xNSxYTU1XT1JEWzE0NCtyc3BdCisJbGVhCXJzcCxbMTY4K3JzcF0KKyRMJFNFSF9lbmRfZWNwX25pc3R6MjU2X3NlbGVjdF93NzoKKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKworZ2xvYmFsCWVjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NworCitBTElHTgkzMgorZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fZWNwX25pc3R6MjU2X2F2eDJfc2VsZWN0X3c3OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisKKworREIJMHgwZiwweDBiCisJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCisJbW92CXJzaSxRV09SRFsxNityc3BdCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiskTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9hdngyX3NlbGVjdF93NzoKKworQUxJR04JMzIKK19fZWNwX25pc3R6MjU2X2FkZF90b3E6CisJYWRkCXIxMixRV09SRFtyYnhdCisJYWRjCXIxMyxRV09SRFs4K3JieF0KKwltb3YJcmF4LHIxMgorCWFkYwlyOCxRV09SRFsxNityYnhdCisJYWRjCXI5LFFXT1JEWzI0K3JieF0KKwltb3YJcmJwLHIxMworCXNiYglyMTEscjExCisKKwlzdWIJcjEyLC0xCisJbW92CXJjeCxyOAorCXNiYglyMTMscjE0CisJc2JiCXI4LDAKKwltb3YJcjEwLHI5CisJc2JiCXI5LHIxNQorCXRlc3QJcjExLHIxMQorCisJY21vdnoJcjEyLHJheAorCWNtb3Z6CXIxMyxyYnAKKwltb3YJUVdPUkRbcmRpXSxyMTIKKwljbW92eglyOCxyY3gKKwltb3YJUVdPUkRbOCtyZGldLHIxMworCWNtb3Z6CXI5LHIxMAorCW1vdglRV09SRFsxNityZGldLHI4CisJbW92CVFXT1JEWzI0K3JkaV0scjkKKworCURCCTBGM2gsMEMzaAkJO3JlcHJldAorCisKKworQUxJR04JMzIKK19fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcToKKwlzdWIJcjEyLFFXT1JEW3JieF0KKwlzYmIJcjEzLFFXT1JEWzgrcmJ4XQorCW1vdglyYXgscjEyCisJc2JiCXI4LFFXT1JEWzE2K3JieF0KKwlzYmIJcjksUVdPUkRbMjQrcmJ4XQorCW1vdglyYnAscjEzCisJc2JiCXIxMSxyMTEKKworCWFkZAlyMTIsLTEKKwltb3YJcmN4LHI4CisJYWRjCXIxMyxyMTQKKwlhZGMJcjgsMAorCW1vdglyMTAscjkKKwlhZGMJcjkscjE1CisJdGVzdAlyMTEscjExCisKKwljbW92eglyMTIscmF4CisJY21vdnoJcjEzLHJicAorCW1vdglRV09SRFtyZGldLHIxMgorCWNtb3Z6CXI4LHJjeAorCW1vdglRV09SRFs4K3JkaV0scjEzCisJY21vdnoJcjkscjEwCisJbW92CVFXT1JEWzE2K3JkaV0scjgKKwltb3YJUVdPUkRbMjQrcmRpXSxyOQorCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCitBTElHTgkzMgorX19lY3BfbmlzdHoyNTZfc3VicToKKwlzdWIJcmF4LHIxMgorCXNiYglyYnAscjEzCisJbW92CXIxMixyYXgKKwlzYmIJcmN4LHI4CisJc2JiCXIxMCxyOQorCW1vdglyMTMscmJwCisJc2JiCXIxMSxyMTEKKworCWFkZAlyYXgsLTEKKwltb3YJcjgscmN4CisJYWRjCXJicCxyMTQKKwlhZGMJcmN4LDAKKwltb3YJcjkscjEwCisJYWRjCXIxMCxyMTUKKwl0ZXN0CXIxMSxyMTEKKworCWNtb3ZueglyMTIscmF4CisJY21vdm56CXIxMyxyYnAKKwljbW92bnoJcjgscmN4CisJY21vdm56CXI5LHIxMAorCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKKworCitBTElHTgkzMgorX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxOgorCWFkZAlyMTIscjEyCisJYWRjCXIxMyxyMTMKKwltb3YJcmF4LHIxMgorCWFkYwlyOCxyOAorCWFkYwlyOSxyOQorCW1vdglyYnAscjEzCisJc2JiCXIxMSxyMTEKKworCXN1YglyMTIsLTEKKwltb3YJcmN4LHI4CisJc2JiCXIxMyxyMTQKKwlzYmIJcjgsMAorCW1vdglyMTAscjkKKwlzYmIJcjkscjE1CisJdGVzdAlyMTEscjExCisKKwljbW92eglyMTIscmF4CisJY21vdnoJcjEzLHJicAorCW1vdglRV09SRFtyZGldLHIxMgorCWNtb3Z6CXI4LHJjeAorCW1vdglRV09SRFs4K3JkaV0scjEzCisJY21vdnoJcjkscjEwCisJbW92CVFXT1JEWzE2K3JkaV0scjgKKwltb3YJUVdPUkRbMjQrcmRpXSxyOQorCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CisKK2dsb2JhbAllY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlCisKK0FMSUdOCTMyCitlY3BfbmlzdHoyNTZfcG9pbnRfZG91YmxlOgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fZWNwX25pc3R6MjU2X3BvaW50X2RvdWJsZToKKwltb3YJcmRpLHJjeAorCW1vdglyc2kscmR4CisKKworCXB1c2gJcmJwCisJcHVzaAlyYngKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisJcHVzaAlyMTQKKwlwdXNoCXIxNQorCXN1Yglyc3AsMzIqNSs4CisKKyRMJHBvaW50X2RvdWJsZV9zaG9ydGN1dHE6CisJbW92ZHF1CXhtbTAsWE1NV09SRFtyc2ldCisJbW92CXJieCxyc2kKKwltb3ZkcXUJeG1tMSxYTU1XT1JEWzE2K3JzaV0KKwltb3YJcjEyLFFXT1JEWygoMzIrMCkpK3JzaV0KKwltb3YJcjEzLFFXT1JEWygoMzIrOCkpK3JzaV0KKwltb3YJcjgsUVdPUkRbKCgzMisxNikpK3JzaV0KKwltb3YJcjksUVdPUkRbKCgzMisyNCkpK3JzaV0KKwltb3YJcjE0LFFXT1JEWygoJEwkcG9seSs4KSldCisJbW92CXIxNSxRV09SRFsoKCRMJHBvbHkrMjQpKV0KKwltb3ZkcWEJWE1NV09SRFs5Nityc3BdLHhtbTAKKwltb3ZkcWEJWE1NV09SRFsoOTYrMTYpK3JzcF0seG1tMQorCWxlYQlyMTAsWzMyK3JkaV0KKwlsZWEJcjExLFs2NCtyZGldCitEQgkxMDIsNzIsMTUsMTEwLDE5OQorREIJMTAyLDczLDE1LDExMCwyMDIKK0RCCTEwMiw3MywxNSwxMTAsMjExCisKKwlsZWEJcmRpLFtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKKworCW1vdglyYXgsUVdPUkRbKCg2NCswKSkrcnNpXQorCW1vdglyMTQsUVdPUkRbKCg2NCs4KSkrcnNpXQorCW1vdglyMTUsUVdPUkRbKCg2NCsxNikpK3JzaV0KKwltb3YJcjgsUVdPUkRbKCg2NCsyNCkpK3JzaV0KKwlsZWEJcnNpLFsoKDY0LTApKStyc2ldCisJbGVhCXJkaSxbNjQrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWygoMCswKSkrcnNwXQorCW1vdglyMTQsUVdPUkRbKCg4KzApKStyc3BdCisJbGVhCXJzaSxbKCgwKzApKStyc3BdCisJbW92CXIxNSxRV09SRFsoKDE2KzApKStyc3BdCisJbW92CXI4LFFXT1JEWygoMjQrMCkpK3JzcF0KKwlsZWEJcmRpLFtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdglyYXgsUVdPUkRbMzIrcmJ4XQorCW1vdglyOSxRV09SRFsoKDY0KzApKStyYnhdCisJbW92CXIxMCxRV09SRFsoKDY0KzgpKStyYnhdCisJbW92CXIxMSxRV09SRFsoKDY0KzE2KSkrcmJ4XQorCW1vdglyMTIsUVdPUkRbKCg2NCsyNCkpK3JieF0KKwlsZWEJcnNpLFsoKDY0LTApKStyYnhdCisJbGVhCXJieCxbMzIrcmJ4XQorREIJMTAyLDcyLDE1LDEyNiwyMTUKKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxCisKKwltb3YJcjEyLFFXT1JEWygoOTYrMCkpK3JzcF0KKwltb3YJcjEzLFFXT1JEWygoOTYrOCkpK3JzcF0KKwlsZWEJcmJ4LFs2NCtyc3BdCisJbW92CXI4LFFXT1JEWygoOTYrMTYpKStyc3BdCisJbW92CXI5LFFXT1JEWygoOTYrMjQpKStyc3BdCisJbGVhCXJkaSxbMzIrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfYWRkX3RvcQorCisJbW92CXIxMixRV09SRFsoKDk2KzApKStyc3BdCisJbW92CXIxMyxRV09SRFsoKDk2KzgpKStyc3BdCisJbGVhCXJieCxbNjQrcnNwXQorCW1vdglyOCxRV09SRFsoKDk2KzE2KSkrcnNwXQorCW1vdglyOSxRV09SRFsoKDk2KzI0KSkrcnNwXQorCWxlYQlyZGksWzY0K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92CXJheCxRV09SRFsoKDArMCkpK3JzcF0KKwltb3YJcjE0LFFXT1JEWygoOCswKSkrcnNwXQorCWxlYQlyc2ksWygoMCswKSkrcnNwXQorCW1vdglyMTUsUVdPUkRbKCgxNiswKSkrcnNwXQorCW1vdglyOCxRV09SRFsoKDI0KzApKStyc3BdCitEQgkxMDIsNzIsMTUsMTI2LDIwNworCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisJeG9yCXI5LHI5CisJbW92CXJheCxyMTIKKwlhZGQJcjEyLC0xCisJbW92CXIxMCxyMTMKKwlhZGMJcjEzLHJzaQorCW1vdglyY3gscjE0CisJYWRjCXIxNCwwCisJbW92CXI4LHIxNQorCWFkYwlyMTUscmJwCisJYWRjCXI5LDAKKwl4b3IJcnNpLHJzaQorCXRlc3QJcmF4LDEKKworCWNtb3Z6CXIxMixyYXgKKwljbW92eglyMTMscjEwCisJY21vdnoJcjE0LHJjeAorCWNtb3Z6CXIxNSxyOAorCWNtb3Z6CXI5LHJzaQorCisJbW92CXJheCxyMTMKKwlzaHIJcjEyLDEKKwlzaGwJcmF4LDYzCisJbW92CXIxMCxyMTQKKwlzaHIJcjEzLDEKKwlvcglyMTIscmF4CisJc2hsCXIxMCw2MworCW1vdglyY3gscjE1CisJc2hyCXIxNCwxCisJb3IJcjEzLHIxMAorCXNobAlyY3gsNjMKKwltb3YJUVdPUkRbcmRpXSxyMTIKKwlzaHIJcjE1LDEKKwltb3YJUVdPUkRbOCtyZGldLHIxMworCXNobAlyOSw2MworCW9yCXIxNCxyY3gKKwlvcglyMTUscjkKKwltb3YJUVdPUkRbMTYrcmRpXSxyMTQKKwltb3YJUVdPUkRbMjQrcmRpXSxyMTUKKwltb3YJcmF4LFFXT1JEWzY0K3JzcF0KKwlsZWEJcmJ4LFs2NCtyc3BdCisJbW92CXI5LFFXT1JEWygoMCszMikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCszMikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzIpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzMyKSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCszMikpK3JzcF0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYQlyZGksWzEyOCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfYnlfMnEKKworCWxlYQlyYngsWzMyK3JzcF0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9hZGRfdG9xCisKKwltb3YJcmF4LFFXT1JEWzk2K3JzcF0KKwlsZWEJcmJ4LFs5Nityc3BdCisJbW92CXI5LFFXT1JEWygoMCswKSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzApKStyc3BdCisJbGVhCXJzaSxbKCgwKzApKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzApKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzApKStyc3BdCisJbGVhCXJkaSxbcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWEJcmRpLFsxMjgrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX2J5XzJxCisKKwltb3YJcmF4LFFXT1JEWygoMCszMikpK3JzcF0KKwltb3YJcjE0LFFXT1JEWygoOCszMikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzIpKStyc3BdCisJbW92CXIxNSxRV09SRFsoKDE2KzMyKSkrcnNwXQorCW1vdglyOCxRV09SRFsoKDI0KzMyKSkrcnNwXQorREIJMTAyLDcyLDE1LDEyNiwxOTkKKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbGVhCXJieCxbMTI4K3JzcF0KKwltb3YJcjgscjE0CisJbW92CXI5LHIxNQorCW1vdglyMTQscnNpCisJbW92CXIxNSxyYnAKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92CXJheCxRV09SRFsoKDArMCkpK3JzcF0KKwltb3YJcmJwLFFXT1JEWygoMCs4KSkrcnNwXQorCW1vdglyY3gsUVdPUkRbKCgwKzE2KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCgwKzI0KSkrcnNwXQorCWxlYQlyZGksW3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1YnEKKworCW1vdglyYXgsUVdPUkRbMzIrcnNwXQorCWxlYQlyYngsWzMyK3JzcF0KKwltb3YJcjE0LHIxMgorCXhvcgllY3gsZWN4CisJbW92CVFXT1JEWygoMCswKSkrcnNwXSxyMTIKKwltb3YJcjEwLHIxMworCW1vdglRV09SRFsoKDArOCkpK3JzcF0scjEzCisJY21vdnoJcjExLHI4CisJbW92CVFXT1JEWygoMCsxNikpK3JzcF0scjgKKwlsZWEJcnNpLFsoKDAtMCkpK3JzcF0KKwljbW92eglyMTIscjkKKwltb3YJUVdPUkRbKCgwKzI0KSkrcnNwXSxyOQorCW1vdglyOSxyMTQKKwlsZWEJcmRpLFtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworREIJMTAyLDcyLDE1LDEyNiwyMDMKK0RCCTEwMiw3MiwxNSwxMjYsMjA3CisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCWFkZAlyc3AsMzIqNSs4CisJcG9wCXIxNQorCXBvcAlyMTQKKwlwb3AJcjEzCisJcG9wCXIxMgorCXBvcAlyYngKKwlwb3AJcmJwCisJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCisJbW92CXJzaSxRV09SRFsxNityc3BdCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiskTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9wb2ludF9kb3VibGU6CitnbG9iYWwJZWNwX25pc3R6MjU2X3BvaW50X2FkZAorCitBTElHTgkzMgorZWNwX25pc3R6MjU2X3BvaW50X2FkZDoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX2VjcF9uaXN0ejI1Nl9wb2ludF9hZGQ6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCW1vdglyZHgscjgKKworCisJcHVzaAlyYnAKKwlwdXNoCXJieAorCXB1c2gJcjEyCisJcHVzaAlyMTMKKwlwdXNoCXIxNAorCXB1c2gJcjE1CisJc3ViCXJzcCwzMioxOCs4CisKKwltb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KKwltb3ZkcXUJeG1tMSxYTU1XT1JEWzE2K3JzaV0KKwltb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwltb3ZkcXUJeG1tMyxYTU1XT1JEWzQ4K3JzaV0KKwltb3ZkcXUJeG1tNCxYTU1XT1JEWzY0K3JzaV0KKwltb3ZkcXUJeG1tNSxYTU1XT1JEWzgwK3JzaV0KKwltb3YJcmJ4LHJzaQorCW1vdglyc2kscmR4CisJbW92ZHFhCVhNTVdPUkRbMzg0K3JzcF0seG1tMAorCW1vdmRxYQlYTU1XT1JEWygzODQrMTYpK3JzcF0seG1tMQorCXBvcgl4bW0xLHhtbTAKKwltb3ZkcWEJWE1NV09SRFs0MTYrcnNwXSx4bW0yCisJbW92ZHFhCVhNTVdPUkRbKDQxNisxNikrcnNwXSx4bW0zCisJcG9yCXhtbTMseG1tMgorCW1vdmRxYQlYTU1XT1JEWzQ0OCtyc3BdLHhtbTQKKwltb3ZkcWEJWE1NV09SRFsoNDQ4KzE2KStyc3BdLHhtbTUKKwlwb3IJeG1tMyx4bW0xCisKKwltb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KKwlwc2h1ZmQJeG1tNSx4bW0zLDB4YjEKKwltb3ZkcXUJeG1tMSxYTU1XT1JEWzE2K3JzaV0KKwltb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwlwb3IJeG1tNSx4bW0zCisJbW92ZHF1CXhtbTMsWE1NV09SRFs0OCtyc2ldCisJbW92CXJheCxRV09SRFsoKDY0KzApKStyc2ldCisJbW92CXIxNCxRV09SRFsoKDY0KzgpKStyc2ldCisJbW92CXIxNSxRV09SRFsoKDY0KzE2KSkrcnNpXQorCW1vdglyOCxRV09SRFsoKDY0KzI0KSkrcnNpXQorCW1vdmRxYQlYTU1XT1JEWzQ4MCtyc3BdLHhtbTAKKwlwc2h1ZmQJeG1tNCx4bW01LDB4MWUKKwltb3ZkcWEJWE1NV09SRFsoNDgwKzE2KStyc3BdLHhtbTEKKwlwb3IJeG1tMSx4bW0wCitEQgkxMDIsNzIsMTUsMTEwLDE5OQorCW1vdmRxYQlYTU1XT1JEWzUxMityc3BdLHhtbTIKKwltb3ZkcWEJWE1NV09SRFsoNTEyKzE2KStyc3BdLHhtbTMKKwlwb3IJeG1tMyx4bW0yCisJcG9yCXhtbTUseG1tNAorCXB4b3IJeG1tNCx4bW00CisJcG9yCXhtbTMseG1tMQorCisJbGVhCXJzaSxbKCg2NC0wKSkrcnNpXQorCW1vdglRV09SRFsoKDU0NCswKSkrcnNwXSxyYXgKKwltb3YJUVdPUkRbKCg1NDQrOCkpK3JzcF0scjE0CisJbW92CVFXT1JEWygoNTQ0KzE2KSkrcnNwXSxyMTUKKwltb3YJUVdPUkRbKCg1NDQrMjQpKStyc3BdLHI4CisJbGVhCXJkaSxbOTYrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwlwY21wZXFkCXhtbTUseG1tNAorCXBzaHVmZAl4bW00LHhtbTMsMHhiMQorCXBvcgl4bW00LHhtbTMKKwlwc2h1ZmQJeG1tNSx4bW01LDAKKwlwc2h1ZmQJeG1tMyx4bW00LDB4MWUKKwlwb3IJeG1tNCx4bW0zCisJcHhvcgl4bW0zLHhtbTMKKwlwY21wZXFkCXhtbTQseG1tMworCXBzaHVmZAl4bW00LHhtbTQsMAorCW1vdglyYXgsUVdPUkRbKCg2NCswKSkrcmJ4XQorCW1vdglyMTQsUVdPUkRbKCg2NCs4KSkrcmJ4XQorCW1vdglyMTUsUVdPUkRbKCg2NCsxNikpK3JieF0KKwltb3YJcjgsUVdPUkRbKCg2NCsyNCkpK3JieF0KK0RCCTEwMiw3MiwxNSwxMTAsMjAzCisKKwlsZWEJcnNpLFsoKDY0LTApKStyYnhdCisJbGVhCXJkaSxbMzIrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzU0NCtyc3BdCisJbGVhCXJieCxbNTQ0K3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzk2KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4Kzk2KSkrcnNwXQorCWxlYQlyc2ksWygoMCs5NikpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrOTYpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0Kzk2KSkrcnNwXQorCWxlYQlyZGksWzIyNCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdglyYXgsUVdPUkRbNDQ4K3JzcF0KKwlsZWEJcmJ4LFs0NDgrcnNwXQorCW1vdglyOSxRV09SRFsoKDArMzIpKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrMzIpKStyc3BdCisJbGVhCXJzaSxbKCgwKzMyKSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNiszMikpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrMzIpKStyc3BdCisJbGVhCXJkaSxbMjU2K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92CXJheCxRV09SRFs0MTYrcnNwXQorCWxlYQlyYngsWzQxNityc3BdCisJbW92CXI5LFFXT1JEWygoMCsyMjQpKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrMjI0KSkrcnNwXQorCWxlYQlyc2ksWygoMCsyMjQpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzIyNCkpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrMjI0KSkrcnNwXQorCWxlYQlyZGksWzIyNCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdglyYXgsUVdPUkRbNTEyK3JzcF0KKwlsZWEJcmJ4LFs1MTIrcnNwXQorCW1vdglyOSxRV09SRFsoKDArMjU2KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzI1NikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMjU2KSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNisyNTYpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzI1NikpK3JzcF0KKwlsZWEJcmRpLFsyNTYrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWEJcmJ4LFsyMjQrcnNwXQorCWxlYQlyZGksWzY0K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJb3IJcjEyLHIxMworCW1vdmRxYQl4bW0yLHhtbTQKKwlvcglyMTIscjgKKwlvcglyMTIscjkKKwlwb3IJeG1tMix4bW01CitEQgkxMDIsNzMsMTUsMTEwLDIyMAorCisJbW92CXJheCxRV09SRFszODQrcnNwXQorCWxlYQlyYngsWzM4NCtyc3BdCisJbW92CXI5LFFXT1JEWygoMCs5NikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCs5NikpK3JzcF0KKwlsZWEJcnNpLFsoKDArOTYpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2Kzk2KSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCs5NikpK3JzcF0KKwlsZWEJcmRpLFsxNjArcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzQ4MCtyc3BdCisJbGVhCXJieCxbNDgwK3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzMyKSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzMyKSkrcnNwXQorCWxlYQlyc2ksWygoMCszMikpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrMzIpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzMyKSkrcnNwXQorCWxlYQlyZGksWzE5Mityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYQlyYngsWzE2MCtyc3BdCisJbGVhCXJkaSxbcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwlvcglyMTIscjEzCisJb3IJcjEyLHI4CisJb3IJcjEyLHI5CisKK0RCCTB4M2UKKwlqbnoJTkVBUiAkTCRhZGRfcHJvY2VlZHEKK0RCCTEwMiw3MywxNSwxMjYsMjA4CitEQgkxMDIsNzMsMTUsMTI2LDIxNworCXRlc3QJcjgscjgKKwlqbnoJTkVBUiAkTCRhZGRfcHJvY2VlZHEKKwl0ZXN0CXI5LHI5CisJanoJTkVBUiAkTCRhZGRfZG91YmxlcQorCitEQgkxMDIsNzIsMTUsMTI2LDE5OQorCXB4b3IJeG1tMCx4bW0wCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbMzIrcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbNDgrcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbNjQrcmRpXSx4bW0wCisJbW92ZHF1CVhNTVdPUkRbODArcmRpXSx4bW0wCisJam1wCU5FQVIgJEwkYWRkX2RvbmVxCisKK0FMSUdOCTMyCiskTCRhZGRfZG91YmxlcToKK0RCCTEwMiw3MiwxNSwxMjYsMjA2CitEQgkxMDIsNzIsMTUsMTI2LDE5OQorCWFkZAlyc3AsNDE2CisJam1wCU5FQVIgJEwkcG9pbnRfZG91YmxlX3Nob3J0Y3V0cQorCitBTElHTgkzMgorJEwkYWRkX3Byb2NlZWRxOgorCW1vdglyYXgsUVdPUkRbKCgwKzY0KSkrcnNwXQorCW1vdglyMTQsUVdPUkRbKCg4KzY0KSkrcnNwXQorCWxlYQlyc2ksWygoMCs2NCkpK3JzcF0KKwltb3YJcjE1LFFXT1JEWygoMTYrNjQpKStyc3BdCisJbW92CXI4LFFXT1JEWygoMjQrNjQpKStyc3BdCisJbGVhCXJkaSxbOTYrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3FyX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzQ0OCtyc3BdCisJbGVhCXJieCxbNDQ4K3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzApKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrMCkpK3JzcF0KKwlsZWEJcnNpLFsoKDArMCkpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrMCkpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrMCkpK3JzcF0KKwlsZWEJcmRpLFszNTIrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWygoMCswKSkrcnNwXQorCW1vdglyMTQsUVdPUkRbKCg4KzApKStyc3BdCisJbGVhCXJzaSxbKCgwKzApKStyc3BdCisJbW92CXIxNSxRV09SRFsoKDE2KzApKStyc3BdCisJbW92CXI4LFFXT1JEWygoMjQrMCkpK3JzcF0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdglyYXgsUVdPUkRbNTQ0K3JzcF0KKwlsZWEJcmJ4LFs1NDQrcnNwXQorCW1vdglyOSxRV09SRFsoKDArMzUyKSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzM1MikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzUyKSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNiszNTIpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzM1MikpK3JzcF0KKwlsZWEJcmRpLFszNTIrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEW3JzcF0KKwlsZWEJcmJ4LFtyc3BdCisJbW92CXI5LFFXT1JEWygoMCszMikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCszMikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzIpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzMyKSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCszMikpK3JzcF0KKwlsZWEJcmRpLFsxMjgrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzE2MCtyc3BdCisJbGVhCXJieCxbMTYwK3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzMyKSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzMyKSkrcnNwXQorCWxlYQlyc2ksWygoMCszMikpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrMzIpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzMyKSkrcnNwXQorCWxlYQlyZGksWzE5Mityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCisKKworCWFkZAlyMTIscjEyCisJbGVhCXJzaSxbOTYrcnNwXQorCWFkYwlyMTMscjEzCisJbW92CXJheCxyMTIKKwlhZGMJcjgscjgKKwlhZGMJcjkscjkKKwltb3YJcmJwLHIxMworCXNiYglyMTEscjExCisKKwlzdWIJcjEyLC0xCisJbW92CXJjeCxyOAorCXNiYglyMTMscjE0CisJc2JiCXI4LDAKKwltb3YJcjEwLHI5CisJc2JiCXI5LHIxNQorCXRlc3QJcjExLHIxMQorCisJY21vdnoJcjEyLHJheAorCW1vdglyYXgsUVdPUkRbcnNpXQorCWNtb3Z6CXIxMyxyYnAKKwltb3YJcmJwLFFXT1JEWzgrcnNpXQorCWNtb3Z6CXI4LHJjeAorCW1vdglyY3gsUVdPUkRbMTYrcnNpXQorCWNtb3Z6CXI5LHIxMAorCW1vdglyMTAsUVdPUkRbMjQrcnNpXQorCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJxCisKKwlsZWEJcmJ4LFsxMjgrcnNwXQorCWxlYQlyZGksWzI4OCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zdWJfZnJvbXEKKworCW1vdglyYXgsUVdPUkRbKCgxOTIrMCkpK3JzcF0KKwltb3YJcmJwLFFXT1JEWygoMTkyKzgpKStyc3BdCisJbW92CXJjeCxRV09SRFsoKDE5MisxNikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoMTkyKzI0KSkrcnNwXQorCWxlYQlyZGksWzMyMCtyc3BdCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1YnEKKworCW1vdglRV09SRFtyZGldLHIxMgorCW1vdglRV09SRFs4K3JkaV0scjEzCisJbW92CVFXT1JEWzE2K3JkaV0scjgKKwltb3YJUVdPUkRbMjQrcmRpXSxyOQorCW1vdglyYXgsUVdPUkRbMTI4K3JzcF0KKwlsZWEJcmJ4LFsxMjgrcnNwXQorCW1vdglyOSxRV09SRFsoKDArMjI0KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzIyNCkpK3JzcF0KKwlsZWEJcnNpLFsoKDArMjI0KSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNisyMjQpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzIyNCkpK3JzcF0KKwlsZWEJcmRpLFsyNTYrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzMyMCtyc3BdCisJbGVhCXJieCxbMzIwK3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzY0KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCg4KzY0KSkrcnNwXQorCWxlYQlyc2ksWygoMCs2NCkpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrNjQpKStyc3BdCisJbW92CXIxMixRV09SRFsoKDI0KzY0KSkrcnNwXQorCWxlYQlyZGksWzMyMCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYQlyYngsWzI1Nityc3BdCisJbGVhCXJkaSxbMzIwK3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCitEQgkxMDIsNzIsMTUsMTI2LDE5OQorCisJbW92ZHFhCXhtbTAseG1tNQorCW1vdmRxYQl4bW0xLHhtbTUKKwlwYW5kbgl4bW0wLFhNTVdPUkRbMzUyK3JzcF0KKwltb3ZkcWEJeG1tMix4bW01CisJcGFuZG4JeG1tMSxYTU1XT1JEWygoMzUyKzE2KSkrcnNwXQorCW1vdmRxYQl4bW0zLHhtbTUKKwlwYW5kCXhtbTIsWE1NV09SRFs1NDQrcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoNTQ0KzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisKKwltb3ZkcWEJeG1tMCx4bW00CisJbW92ZHFhCXhtbTEseG1tNAorCXBhbmRuCXhtbTAseG1tMgorCW1vdmRxYQl4bW0yLHhtbTQKKwlwYW5kbgl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMyx4bW00CisJcGFuZAl4bW0yLFhNTVdPUkRbNDQ4K3JzcF0KKwlwYW5kCXhtbTMsWE1NV09SRFsoKDQ0OCsxNikpK3JzcF0KKwlwb3IJeG1tMix4bW0wCisJcG9yCXhtbTMseG1tMQorCW1vdmRxdQlYTU1XT1JEWzY0K3JkaV0seG1tMgorCW1vdmRxdQlYTU1XT1JEWzgwK3JkaV0seG1tMworCisJbW92ZHFhCXhtbTAseG1tNQorCW1vdmRxYQl4bW0xLHhtbTUKKwlwYW5kbgl4bW0wLFhNTVdPUkRbMjg4K3JzcF0KKwltb3ZkcWEJeG1tMix4bW01CisJcGFuZG4JeG1tMSxYTU1XT1JEWygoMjg4KzE2KSkrcnNwXQorCW1vdmRxYQl4bW0zLHhtbTUKKwlwYW5kCXhtbTIsWE1NV09SRFs0ODArcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoNDgwKzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisKKwltb3ZkcWEJeG1tMCx4bW00CisJbW92ZHFhCXhtbTEseG1tNAorCXBhbmRuCXhtbTAseG1tMgorCW1vdmRxYQl4bW0yLHhtbTQKKwlwYW5kbgl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMyx4bW00CisJcGFuZAl4bW0yLFhNTVdPUkRbMzg0K3JzcF0KKwlwYW5kCXhtbTMsWE1NV09SRFsoKDM4NCsxNikpK3JzcF0KKwlwb3IJeG1tMix4bW0wCisJcG9yCXhtbTMseG1tMQorCW1vdmRxdQlYTU1XT1JEW3JkaV0seG1tMgorCW1vdmRxdQlYTU1XT1JEWzE2K3JkaV0seG1tMworCisJbW92ZHFhCXhtbTAseG1tNQorCW1vdmRxYQl4bW0xLHhtbTUKKwlwYW5kbgl4bW0wLFhNTVdPUkRbMzIwK3JzcF0KKwltb3ZkcWEJeG1tMix4bW01CisJcGFuZG4JeG1tMSxYTU1XT1JEWygoMzIwKzE2KSkrcnNwXQorCW1vdmRxYQl4bW0zLHhtbTUKKwlwYW5kCXhtbTIsWE1NV09SRFs1MTIrcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoNTEyKzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisKKwltb3ZkcWEJeG1tMCx4bW00CisJbW92ZHFhCXhtbTEseG1tNAorCXBhbmRuCXhtbTAseG1tMgorCW1vdmRxYQl4bW0yLHhtbTQKKwlwYW5kbgl4bW0xLHhtbTMKKwltb3ZkcWEJeG1tMyx4bW00CisJcGFuZAl4bW0yLFhNTVdPUkRbNDE2K3JzcF0KKwlwYW5kCXhtbTMsWE1NV09SRFsoKDQxNisxNikpK3JzcF0KKwlwb3IJeG1tMix4bW0wCisJcG9yCXhtbTMseG1tMQorCW1vdmRxdQlYTU1XT1JEWzMyK3JkaV0seG1tMgorCW1vdmRxdQlYTU1XT1JEWzQ4K3JkaV0seG1tMworCiskTCRhZGRfZG9uZXE6CisJYWRkCXJzcCwzMioxOCs4CisJcG9wCXIxNQorCXBvcAlyMTQKKwlwb3AJcjEzCisJcG9wCXIxMgorCXBvcAlyYngKKwlwb3AJcmJwCisJbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCisJbW92CXJzaSxRV09SRFsxNityc3BdCisJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiskTCRTRUhfZW5kX2VjcF9uaXN0ejI1Nl9wb2ludF9hZGQ6CitnbG9iYWwJZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmUKKworQUxJR04JMzIKK2VjcF9uaXN0ejI1Nl9wb2ludF9hZGRfYWZmaW5lOgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmU6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCW1vdglyZHgscjgKKworCisJcHVzaAlyYnAKKwlwdXNoCXJieAorCXB1c2gJcjEyCisJcHVzaAlyMTMKKwlwdXNoCXIxNAorCXB1c2gJcjE1CisJc3ViCXJzcCwzMioxNSs4CisKKwltb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KKwltb3YJcmJ4LHJkeAorCW1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcnNpXQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcnNpXQorCW1vdmRxdQl4bW0zLFhNTVdPUkRbNDgrcnNpXQorCW1vdmRxdQl4bW00LFhNTVdPUkRbNjQrcnNpXQorCW1vdmRxdQl4bW01LFhNTVdPUkRbODArcnNpXQorCW1vdglyYXgsUVdPUkRbKCg2NCswKSkrcnNpXQorCW1vdglyMTQsUVdPUkRbKCg2NCs4KSkrcnNpXQorCW1vdglyMTUsUVdPUkRbKCg2NCsxNikpK3JzaV0KKwltb3YJcjgsUVdPUkRbKCg2NCsyNCkpK3JzaV0KKwltb3ZkcWEJWE1NV09SRFszMjArcnNwXSx4bW0wCisJbW92ZHFhCVhNTVdPUkRbKDMyMCsxNikrcnNwXSx4bW0xCisJcG9yCXhtbTEseG1tMAorCW1vdmRxYQlYTU1XT1JEWzM1Mityc3BdLHhtbTIKKwltb3ZkcWEJWE1NV09SRFsoMzUyKzE2KStyc3BdLHhtbTMKKwlwb3IJeG1tMyx4bW0yCisJbW92ZHFhCVhNTVdPUkRbMzg0K3JzcF0seG1tNAorCW1vdmRxYQlYTU1XT1JEWygzODQrMTYpK3JzcF0seG1tNQorCXBvcgl4bW0zLHhtbTEKKworCW1vdmRxdQl4bW0wLFhNTVdPUkRbcmJ4XQorCXBzaHVmZAl4bW01LHhtbTMsMHhiMQorCW1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcmJ4XQorCW1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcmJ4XQorCXBvcgl4bW01LHhtbTMKKwltb3ZkcXUJeG1tMyxYTU1XT1JEWzQ4K3JieF0KKwltb3ZkcWEJWE1NV09SRFs0MTYrcnNwXSx4bW0wCisJcHNodWZkCXhtbTQseG1tNSwweDFlCisJbW92ZHFhCVhNTVdPUkRbKDQxNisxNikrcnNwXSx4bW0xCisJcG9yCXhtbTEseG1tMAorREIJMTAyLDcyLDE1LDExMCwxOTkKKwltb3ZkcWEJWE1NV09SRFs0NDgrcnNwXSx4bW0yCisJbW92ZHFhCVhNTVdPUkRbKDQ0OCsxNikrcnNwXSx4bW0zCisJcG9yCXhtbTMseG1tMgorCXBvcgl4bW01LHhtbTQKKwlweG9yCXhtbTQseG1tNAorCXBvcgl4bW0zLHhtbTEKKworCWxlYQlyc2ksWygoNjQtMCkpK3JzaV0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCXBjbXBlcWQJeG1tNSx4bW00CisJcHNodWZkCXhtbTQseG1tMywweGIxCisJbW92CXJheCxRV09SRFtyYnhdCisKKwltb3YJcjkscjEyCisJcG9yCXhtbTQseG1tMworCXBzaHVmZAl4bW01LHhtbTUsMAorCXBzaHVmZAl4bW0zLHhtbTQsMHgxZQorCW1vdglyMTAscjEzCisJcG9yCXhtbTQseG1tMworCXB4b3IJeG1tMyx4bW0zCisJbW92CXIxMSxyMTQKKwlwY21wZXFkCXhtbTQseG1tMworCXBzaHVmZAl4bW00LHhtbTQsMAorCisJbGVhCXJzaSxbKCgzMi0wKSkrcnNwXQorCW1vdglyMTIscjE1CisJbGVhCXJkaSxbcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWEJcmJ4LFszMjArcnNwXQorCWxlYQlyZGksWzY0K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92CXJheCxRV09SRFszODQrcnNwXQorCWxlYQlyYngsWzM4NCtyc3BdCisJbW92CXI5LFFXT1JEWygoMCszMikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCszMikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzIpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzMyKSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCszMikpK3JzcF0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCW1vdglyYXgsUVdPUkRbMzg0K3JzcF0KKwlsZWEJcmJ4LFszODQrcnNwXQorCW1vdglyOSxRV09SRFsoKDArNjQpKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrNjQpKStyc3BdCisJbGVhCXJzaSxbKCgwKzY0KSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNis2NCkpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrNjQpKStyc3BdCisJbGVhCXJkaSxbMjg4K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92CXJheCxRV09SRFs0NDgrcnNwXQorCWxlYQlyYngsWzQ0OCtyc3BdCisJbW92CXI5LFFXT1JEWygoMCszMikpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCszMikpK3JzcF0KKwlsZWEJcnNpLFsoKDArMzIpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzMyKSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCszMikpK3JzcF0KKwlsZWEJcmRpLFszMityc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9tdWxfbW9udHEKKworCWxlYQlyYngsWzM1Mityc3BdCisJbGVhCXJkaSxbOTYrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfc3ViX2Zyb21xCisKKwltb3YJcmF4LFFXT1JEWygoMCs2NCkpK3JzcF0KKwltb3YJcjE0LFFXT1JEWygoOCs2NCkpK3JzcF0KKwlsZWEJcnNpLFsoKDArNjQpKStyc3BdCisJbW92CXIxNSxRV09SRFsoKDE2KzY0KSkrcnNwXQorCW1vdglyOCxRV09SRFsoKDI0KzY0KSkrcnNwXQorCWxlYQlyZGksWzEyOCtyc3BdCisJY2FsbAlfX2VjcF9uaXN0ejI1Nl9zcXJfbW9udHEKKworCW1vdglyYXgsUVdPUkRbKCgwKzk2KSkrcnNwXQorCW1vdglyMTQsUVdPUkRbKCg4Kzk2KSkrcnNwXQorCWxlYQlyc2ksWygoMCs5NikpK3JzcF0KKwltb3YJcjE1LFFXT1JEWygoMTYrOTYpKStyc3BdCisJbW92CXI4LFFXT1JEWygoMjQrOTYpKStyc3BdCisJbGVhCXJkaSxbMTkyK3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3Nxcl9tb250cQorCisJbW92CXJheCxRV09SRFsxMjgrcnNwXQorCWxlYQlyYngsWzEyOCtyc3BdCisJbW92CXI5LFFXT1JEWygoMCs2NCkpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCs2NCkpK3JzcF0KKwlsZWEJcnNpLFsoKDArNjQpKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzY0KSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCs2NCkpK3JzcF0KKwlsZWEJcmRpLFsxNjArcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwltb3YJcmF4LFFXT1JEWzMyMCtyc3BdCisJbGVhCXJieCxbMzIwK3JzcF0KKwltb3YJcjksUVdPUkRbKCgwKzEyOCkpK3JzcF0KKwltb3YJcjEwLFFXT1JEWygoOCsxMjgpKStyc3BdCisJbGVhCXJzaSxbKCgwKzEyOCkpK3JzcF0KKwltb3YJcjExLFFXT1JEWygoMTYrMTI4KSkrcnNwXQorCW1vdglyMTIsUVdPUkRbKCgyNCsxMjgpKStyc3BdCisJbGVhCXJkaSxbcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKworCisKKwlhZGQJcjEyLHIxMgorCWxlYQlyc2ksWzE5Mityc3BdCisJYWRjCXIxMyxyMTMKKwltb3YJcmF4LHIxMgorCWFkYwlyOCxyOAorCWFkYwlyOSxyOQorCW1vdglyYnAscjEzCisJc2JiCXIxMSxyMTEKKworCXN1YglyMTIsLTEKKwltb3YJcmN4LHI4CisJc2JiCXIxMyxyMTQKKwlzYmIJcjgsMAorCW1vdglyMTAscjkKKwlzYmIJcjkscjE1CisJdGVzdAlyMTEscjExCisKKwljbW92eglyMTIscmF4CisJbW92CXJheCxRV09SRFtyc2ldCisJY21vdnoJcjEzLHJicAorCW1vdglyYnAsUVdPUkRbOCtyc2ldCisJY21vdnoJcjgscmN4CisJbW92CXJjeCxRV09SRFsxNityc2ldCisJY21vdnoJcjkscjEwCisJbW92CXIxMCxRV09SRFsyNCtyc2ldCisKKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1YnEKKworCWxlYQlyYngsWzE2MCtyc3BdCisJbGVhCXJkaSxbMjI0K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCisJbW92CXJheCxRV09SRFsoKDArMCkpK3JzcF0KKwltb3YJcmJwLFFXT1JEWygoMCs4KSkrcnNwXQorCW1vdglyY3gsUVdPUkRbKCgwKzE2KSkrcnNwXQorCW1vdglyMTAsUVdPUkRbKCgwKzI0KSkrcnNwXQorCWxlYQlyZGksWzY0K3JzcF0KKworCWNhbGwJX19lY3BfbmlzdHoyNTZfc3VicQorCisJbW92CVFXT1JEW3JkaV0scjEyCisJbW92CVFXT1JEWzgrcmRpXSxyMTMKKwltb3YJUVdPUkRbMTYrcmRpXSxyOAorCW1vdglRV09SRFsyNCtyZGldLHI5CisJbW92CXJheCxRV09SRFszNTIrcnNwXQorCWxlYQlyYngsWzM1Mityc3BdCisJbW92CXI5LFFXT1JEWygoMCsxNjApKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrMTYwKSkrcnNwXQorCWxlYQlyc2ksWygoMCsxNjApKStyc3BdCisJbW92CXIxMSxRV09SRFsoKDE2KzE2MCkpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrMTYwKSkrcnNwXQorCWxlYQlyZGksWzMyK3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X211bF9tb250cQorCisJbW92CXJheCxRV09SRFs5Nityc3BdCisJbGVhCXJieCxbOTYrcnNwXQorCW1vdglyOSxRV09SRFsoKDArNjQpKStyc3BdCisJbW92CXIxMCxRV09SRFsoKDgrNjQpKStyc3BdCisJbGVhCXJzaSxbKCgwKzY0KSkrcnNwXQorCW1vdglyMTEsUVdPUkRbKCgxNis2NCkpK3JzcF0KKwltb3YJcjEyLFFXT1JEWygoMjQrNjQpKStyc3BdCisJbGVhCXJkaSxbNjQrcnNwXQorCWNhbGwJX19lY3BfbmlzdHoyNTZfbXVsX21vbnRxCisKKwlsZWEJcmJ4LFszMityc3BdCisJbGVhCXJkaSxbMjU2K3JzcF0KKwljYWxsCV9fZWNwX25pc3R6MjU2X3N1Yl9mcm9tcQorCitEQgkxMDIsNzIsMTUsMTI2LDE5OQorCisJbW92ZHFhCXhtbTAseG1tNQorCW1vdmRxYQl4bW0xLHhtbTUKKwlwYW5kbgl4bW0wLFhNTVdPUkRbMjg4K3JzcF0KKwltb3ZkcWEJeG1tMix4bW01CisJcGFuZG4JeG1tMSxYTU1XT1JEWygoMjg4KzE2KSkrcnNwXQorCW1vdmRxYQl4bW0zLHhtbTUKKwlwYW5kCXhtbTIsWE1NV09SRFskTCRPTkVfbW9udF0KKwlwYW5kCXhtbTMsWE1NV09SRFsoKCRMJE9ORV9tb250KzE2KSldCisJcG9yCXhtbTIseG1tMAorCXBvcgl4bW0zLHhtbTEKKworCW1vdmRxYQl4bW0wLHhtbTQKKwltb3ZkcWEJeG1tMSx4bW00CisJcGFuZG4JeG1tMCx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhbmRuCXhtbTEseG1tMworCW1vdmRxYQl4bW0zLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFszODQrcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoMzg0KzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisJbW92ZHF1CVhNTVdPUkRbNjQrcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbODArcmRpXSx4bW0zCisKKwltb3ZkcWEJeG1tMCx4bW01CisJbW92ZHFhCXhtbTEseG1tNQorCXBhbmRuCXhtbTAsWE1NV09SRFsyMjQrcnNwXQorCW1vdmRxYQl4bW0yLHhtbTUKKwlwYW5kbgl4bW0xLFhNTVdPUkRbKCgyMjQrMTYpKStyc3BdCisJbW92ZHFhCXhtbTMseG1tNQorCXBhbmQJeG1tMixYTU1XT1JEWzQxNityc3BdCisJcGFuZAl4bW0zLFhNTVdPUkRbKCg0MTYrMTYpKStyc3BdCisJcG9yCXhtbTIseG1tMAorCXBvcgl4bW0zLHhtbTEKKworCW1vdmRxYQl4bW0wLHhtbTQKKwltb3ZkcWEJeG1tMSx4bW00CisJcGFuZG4JeG1tMCx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhbmRuCXhtbTEseG1tMworCW1vdmRxYQl4bW0zLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFszMjArcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoMzIwKzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisJbW92ZHF1CVhNTVdPUkRbcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbMTYrcmRpXSx4bW0zCisKKwltb3ZkcWEJeG1tMCx4bW01CisJbW92ZHFhCXhtbTEseG1tNQorCXBhbmRuCXhtbTAsWE1NV09SRFsyNTYrcnNwXQorCW1vdmRxYQl4bW0yLHhtbTUKKwlwYW5kbgl4bW0xLFhNTVdPUkRbKCgyNTYrMTYpKStyc3BdCisJbW92ZHFhCXhtbTMseG1tNQorCXBhbmQJeG1tMixYTU1XT1JEWzQ0OCtyc3BdCisJcGFuZAl4bW0zLFhNTVdPUkRbKCg0NDgrMTYpKStyc3BdCisJcG9yCXhtbTIseG1tMAorCXBvcgl4bW0zLHhtbTEKKworCW1vdmRxYQl4bW0wLHhtbTQKKwltb3ZkcWEJeG1tMSx4bW00CisJcGFuZG4JeG1tMCx4bW0yCisJbW92ZHFhCXhtbTIseG1tNAorCXBhbmRuCXhtbTEseG1tMworCW1vdmRxYQl4bW0zLHhtbTQKKwlwYW5kCXhtbTIsWE1NV09SRFszNTIrcnNwXQorCXBhbmQJeG1tMyxYTU1XT1JEWygoMzUyKzE2KSkrcnNwXQorCXBvcgl4bW0yLHhtbTAKKwlwb3IJeG1tMyx4bW0xCisJbW92ZHF1CVhNTVdPUkRbMzIrcmRpXSx4bW0yCisJbW92ZHF1CVhNTVdPUkRbNDgrcmRpXSx4bW0zCisKKwlhZGQJcnNwLDMyKjE1KzgKKwlwb3AJcjE1CisJcG9wCXIxNAorCXBvcAlyMTMKKwlwb3AJcjEyCisJcG9wCXJieAorCXBvcAlyYnAKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfZWNwX25pc3R6MjU2X3BvaW50X2FkZF9hZmZpbmU6CmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vcmM0L3JjNC1tZDUteDg2XzY0LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuYXNtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWVhOTY1Li4wMDAwMDAwCi0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9yYzQvcmM0LW1kNS14ODZfNjQuYXNtCisrKyAvZGV2L251bGwKQEAgLTEsMTM3MiArMCwwIEBACi1kZWZhdWx0CXJlbAotJWRlZmluZSBYTU1XT1JECi0lZGVmaW5lIFlNTVdPUkQKLSVkZWZpbmUgWk1NV09SRAotc2VjdGlvbgkudGV4dCBjb2RlIGFsaWduPTY0Ci0KLUFMSUdOCTE2Ci0KLWdsb2JhbAlyYzRfbWQ1X2VuYwotCi1yYzRfbWQ1X2VuYzoKLQltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKLQltb3YJUVdPUkRbMTYrcnNwXSxyc2kKLQltb3YJcmF4LHJzcAotJEwkU0VIX2JlZ2luX3JjNF9tZDVfZW5jOgotCW1vdglyZGkscmN4Ci0JbW92CXJzaSxyZHgKLQltb3YJcmR4LHI4Ci0JbW92CXJjeCxyOQotCW1vdglyOCxRV09SRFs0MCtyc3BdCi0JbW92CXI5LFFXT1JEWzQ4K3JzcF0KLQotCi0JY21wCXI5LDAKLQlqZQlORUFSICRMJGFib3J0Ci0JcHVzaAlyYngKLQlwdXNoCXJicAotCXB1c2gJcjEyCi0JcHVzaAlyMTMKLQlwdXNoCXIxNAotCXB1c2gJcjE1Ci0Jc3ViCXJzcCw0MAotJEwkYm9keToKLQltb3YJcjExLHJjeAotCW1vdglyMTIscjkKLQltb3YJcjEzLHJzaQotCW1vdglyMTQscmR4Ci0JbW92CXIxNSxyOAotCXhvcglyYnAscmJwCi0JeG9yCXJjeCxyY3gKLQotCWxlYQlyZGksWzgrcmRpXQotCW1vdglicGwsQllURVsoKC04KSkrcmRpXQotCW1vdgljbCxCWVRFWygoLTQpKStyZGldCi0KLQlpbmMJYnBsCi0Jc3ViCXIxNCxyMTMKLQltb3YJZWF4LERXT1JEW3JicCo0K3JkaV0KLQlhZGQJY2wsYWwKLQlsZWEJcnNpLFtyYnAqNCtyZGldCi0Jc2hsCXIxMiw2Ci0JYWRkCXIxMixyMTUKLQltb3YJUVdPUkRbMTYrcnNwXSxyMTIKLQotCW1vdglRV09SRFsyNCtyc3BdLHIxMQotCW1vdglyOGQsRFdPUkRbcjExXQotCW1vdglyOWQsRFdPUkRbNCtyMTFdCi0JbW92CXIxMGQsRFdPUkRbOCtyMTFdCi0JbW92CXIxMWQsRFdPUkRbMTIrcjExXQotCWptcAlORUFSICRMJG9vcAotCi1BTElHTgkxNgotJEwkb29wOgotCW1vdglEV09SRFtyc3BdLHI4ZAotCW1vdglEV09SRFs0K3JzcF0scjlkCi0JbW92CURXT1JEWzgrcnNwXSxyMTBkCi0JbW92CXIxMmQscjExZAotCW1vdglEV09SRFsxMityc3BdLHIxMWQKLQlweG9yCXhtbTAseG1tMAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEW3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzQrcnNpXQotCWFkZAlyOGQsMzYxNDA5MDM2MAotCXhvcglyMTJkLHIxMWQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbcnNpXSxlZHgKLQlhZGQJcjhkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDcKLQltb3YJcjEyZCxyMTBkCi0JbW92ZAl4bW0wLERXT1JEW3JheCo0K3JkaV0KLQotCWFkZAlyOGQscjlkCi0JcHhvcgl4bW0xLHhtbTEKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlhbmQJcjEyZCxyOGQKLQlhZGQJcjExZCxEV09SRFs0K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzgrcnNpXQotCWFkZAlyMTFkLDM5MDU0MDI3MTAKLQl4b3IJcjEyZCxyMTBkCi0JbW92engJZWJ4LGJsCi0JbW92CURXT1JEWzQrcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTIKLQltb3YJcjEyZCxyOWQKLQltb3ZkCXhtbTEsRFdPUkRbcmJ4KjQrcmRpXQotCi0JYWRkCXIxMWQscjhkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JYW5kCXIxMmQscjExZAotCWFkZAlyMTBkLERXT1JEWzgrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbMTIrcnNpXQotCWFkZAlyMTBkLDYwNjEwNTgxOQotCXhvcglyMTJkLHI5ZAotCW1vdnp4CWVheCxhbAotCW1vdglEV09SRFs4K3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE3Ci0JbW92CXIxMmQscjhkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDEKLQotCWFkZAlyMTBkLHIxMWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjEwZAotCWFkZAlyOWQsRFdPUkRbMTIrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbMTYrcnNpXQotCWFkZAlyOWQsMzI1MDQ0MTk2NgotCXhvcglyMTJkLHI4ZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFsxMityc2ldLGVkeAotCWFkZAlyOWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjIKLQltb3YJcjEyZCxyMTFkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDEKLQotCWFkZAlyOWQscjEwZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEWzE2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzIwK3JzaV0KLQlhZGQJcjhkLDQxMTg1NDgzOTkKLQl4b3IJcjEyZCxyMTFkCi0JbW92engJZWF4LGFsCi0JbW92CURXT1JEWzE2K3JzaV0sZWR4Ci0JYWRkCXI4ZCxyMTJkCi0JYWRkCWNsLGJsCi0Jcm9sCXI4ZCw3Ci0JbW92CXIxMmQscjEwZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSwyCi0KLQlhZGQJcjhkLHI5ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCWFuZAlyMTJkLHI4ZAotCWFkZAlyMTFkLERXT1JEWzIwK3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzI0K3JzaV0KLQlhZGQJcjExZCwxMjAwMDgwNDI2Ci0JeG9yCXIxMmQscjEwZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFsyMCtyc2ldLGVkeAotCWFkZAlyMTFkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCwxMgotCW1vdglyMTJkLHI5ZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSwyCi0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyMTFkCi0JYWRkCXIxMGQsRFdPUkRbMjQrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbMjgrcnNpXQotCWFkZAlyMTBkLDI4MjE3MzU5NTUKLQl4b3IJcjEyZCxyOWQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbMjQrcnNpXSxlZHgKLQlhZGQJcjEwZCxyMTJkCi0JYWRkCWNsLGJsCi0Jcm9sCXIxMGQsMTcKLQltb3YJcjEyZCxyOGQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sMwotCi0JYWRkCXIxMGQscjExZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlhbmQJcjEyZCxyMTBkCi0JYWRkCXI5ZCxEV09SRFsyOCtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFszMityc2ldCi0JYWRkCXI5ZCw0MjQ5MjYxMzEzCi0JeG9yCXIxMmQscjhkCi0JbW92engJZWJ4LGJsCi0JbW92CURXT1JEWzI4K3JzaV0sZWR4Ci0JYWRkCXI5ZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXI5ZCwyMgotCW1vdglyMTJkLHIxMWQKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sMwotCi0JYWRkCXI5ZCxyMTBkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCWFuZAlyMTJkLHI5ZAotCWFkZAlyOGQsRFdPUkRbMzIrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbMzYrcnNpXQotCWFkZAlyOGQsMTc3MDAzNTQxNgotCXhvcglyMTJkLHIxMWQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbMzIrcnNpXSxlZHgKLQlhZGQJcjhkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDcKLQltb3YJcjEyZCxyMTBkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDQKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjlkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjhkCi0JYWRkCXIxMWQsRFdPUkRbMzYrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbNDArcnNpXQotCWFkZAlyMTFkLDIzMzY1NTI4NzkKLQl4b3IJcjEyZCxyMTBkCi0JbW92engJZWJ4LGJsCi0JbW92CURXT1JEWzM2K3JzaV0sZWR4Ci0JYWRkCXIxMWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyMTFkLDEyCi0JbW92CXIxMmQscjlkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDQKLQotCWFkZAlyMTFkLHI4ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCWFuZAlyMTJkLHIxMWQKLQlhZGQJcjEwZCxEV09SRFs0MCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs0NCtyc2ldCi0JYWRkCXIxMGQsNDI5NDkyNTIzMwotCXhvcglyMTJkLHI5ZAotCW1vdnp4CWVheCxhbAotCW1vdglEV09SRFs0MCtyc2ldLGVkeAotCWFkZAlyMTBkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjEwZCwxNwotCW1vdglyMTJkLHI4ZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSw1Ci0KLQlhZGQJcjEwZCxyMTFkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCWFuZAlyMTJkLHIxMGQKLQlhZGQJcjlkLERXT1JEWzQ0K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzQ4K3JzaV0KLQlhZGQJcjlkLDIzMDQ1NjMxMzQKLQl4b3IJcjEyZCxyOGQKLQltb3Z6eAllYngsYmwKLQltb3YJRFdPUkRbNDQrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIyCi0JbW92CXIxMmQscjExZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw1Ci0KLQlhZGQJcjlkLHIxMGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTBkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JYW5kCXIxMmQscjlkCi0JYWRkCXI4ZCxEV09SRFs0OCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs1Mityc2ldCi0JYWRkCXI4ZCwxODA0NjAzNjgyCi0JeG9yCXIxMmQscjExZAotCW1vdnp4CWVheCxhbAotCW1vdglEV09SRFs0OCtyc2ldLGVkeAotCWFkZAlyOGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyOGQsNwotCW1vdglyMTJkLHIxMGQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNgotCi0JYWRkCXI4ZCxyOWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlhbmQJcjEyZCxyOGQKLQlhZGQJcjExZCxEV09SRFs1MityMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs1Nityc2ldCi0JYWRkCXIxMWQsNDI1NDYyNjE5NQotCXhvcglyMTJkLHIxMGQKLQltb3Z6eAllYngsYmwKLQltb3YJRFdPUkRbNTIrcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTIKLQltb3YJcjEyZCxyOWQKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sNgotCi0JYWRkCXIxMWQscjhkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JYW5kCXIxMmQscjExZAotCWFkZAlyMTBkLERXT1JEWzU2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzYwK3JzaV0KLQlhZGQJcjEwZCwyNzkyOTY1MDA2Ci0JeG9yCXIxMmQscjlkCi0JbW92engJZWF4LGFsCi0JbW92CURXT1JEWzU2K3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE3Ci0JbW92CXIxMmQscjhkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDcKLQotCWFkZAlyMTBkLHIxMWQKLQltb3ZkcXUJeG1tMixYTU1XT1JEW3IxM10KLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjEwZAotCWFkZAlyOWQsRFdPUkRbNjArcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbNjQrcnNpXQotCWFkZAlyOWQsMTIzNjUzNTMyOQotCXhvcglyMTJkLHI4ZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFs2MCtyc2ldLGVkeAotCWFkZAlyOWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjIKLQltb3YJcjEyZCxyMTBkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDcKLQotCWFkZAlyOWQscjEwZAotCXBzbGxxCXhtbTEsOAotCXB4b3IJeG1tMix4bW0wCi0JcHhvcgl4bW0yLHhtbTEKLQlweG9yCXhtbTAseG1tMAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCWFuZAlyMTJkLHIxMWQKLQlhZGQJcjhkLERXT1JEWzQrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbNjgrcnNpXQotCWFkZAlyOGQsNDEyOTE3MDc4NgotCXhvcglyMTJkLHIxMGQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbNjQrcnNpXSxlZHgKLQlhZGQJcjhkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDUKLQltb3YJcjEyZCxyOWQKLQltb3ZkCXhtbTAsRFdPUkRbcmF4KjQrcmRpXQotCi0JYWRkCXI4ZCxyOWQKLQlweG9yCXhtbTEseG1tMQotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCWFuZAlyMTJkLHIxMGQKLQlhZGQJcjExZCxEV09SRFsyNCtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs3Mityc2ldCi0JYWRkCXIxMWQsMzIyNTQ2NTY2NAotCXhvcglyMTJkLHI5ZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFs2OCtyc2ldLGVkeAotCWFkZAlyMTFkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCw5Ci0JbW92CXIxMmQscjhkCi0JbW92ZAl4bW0xLERXT1JEW3JieCo0K3JkaV0KLQotCWFkZAlyMTFkLHI4ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyOWQKLQlhZGQJcjEwZCxEV09SRFs0NCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs3Nityc2ldCi0JYWRkCXIxMGQsNjQzNzE3NzEzCi0JeG9yCXIxMmQscjhkCi0JbW92engJZWF4LGFsCi0JbW92CURXT1JEWzcyK3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE0Ci0JbW92CXIxMmQscjExZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSwxCi0KLQlhZGQJcjEwZCxyMTFkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCWFuZAlyMTJkLHI4ZAotCWFkZAlyOWQsRFdPUkRbcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbODArcnNpXQotCWFkZAlyOWQsMzkyMTA2OTk5NAotCXhvcglyMTJkLHIxMWQKLQltb3Z6eAllYngsYmwKLQltb3YJRFdPUkRbNzYrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIwCi0JbW92CXIxMmQscjEwZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSwxCi0KLQlhZGQJcjlkLHIxMGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyMTFkCi0JYWRkCXI4ZCxEV09SRFsyMCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs4NCtyc2ldCi0JYWRkCXI4ZCwzNTkzNDA4NjA1Ci0JeG9yCXIxMmQscjEwZAotCW1vdnp4CWVheCxhbAotCW1vdglEV09SRFs4MCtyc2ldLGVkeAotCWFkZAlyOGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyOGQsNQotCW1vdglyMTJkLHI5ZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSwyCi0KLQlhZGQJcjhkLHI5ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCWFuZAlyMTJkLHIxMGQKLQlhZGQJcjExZCxEV09SRFs0MCtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs4OCtyc2ldCi0JYWRkCXIxMWQsMzgwMTYwODMKLQl4b3IJcjEyZCxyOWQKLQltb3Z6eAllYngsYmwKLQltb3YJRFdPUkRbODQrcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsOQotCW1vdglyMTJkLHI4ZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSwyCi0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JYW5kCXIxMmQscjlkCi0JYWRkCXIxMGQsRFdPUkRbNjArcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbOTIrcnNpXQotCWFkZAlyMTBkLDM2MzQ0ODg5NjEKLQl4b3IJcjEyZCxyOGQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbODgrcnNpXSxlZHgKLQlhZGQJcjEwZCxyMTJkCi0JYWRkCWNsLGJsCi0Jcm9sCXIxMGQsMTQKLQltb3YJcjEyZCxyMTFkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDMKLQotCWFkZAlyMTBkLHIxMWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTBkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjhkCi0JYWRkCXI5ZCxEV09SRFsxNityMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs5Nityc2ldCi0JYWRkCXI5ZCwzODg5NDI5NDQ4Ci0JeG9yCXIxMmQscjExZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFs5Mityc2ldLGVkeAotCWFkZAlyOWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjAKLQltb3YJcjEyZCxyMTBkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDMKLQotCWFkZAlyOWQscjEwZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCWFuZAlyMTJkLHIxMWQKLQlhZGQJcjhkLERXT1JEWzM2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzEwMCtyc2ldCi0JYWRkCXI4ZCw1Njg0NDY0MzgKLQl4b3IJcjEyZCxyMTBkCi0JbW92engJZWF4LGFsCi0JbW92CURXT1JEWzk2K3JzaV0sZWR4Ci0JYWRkCXI4ZCxyMTJkCi0JYWRkCWNsLGJsCi0Jcm9sCXI4ZCw1Ci0JbW92CXIxMmQscjlkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDQKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjEwZAotCWFkZAlyMTFkLERXT1JEWzU2K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzEwNCtyc2ldCi0JYWRkCXIxMWQsMzI3NTE2MzYwNgotCXhvcglyMTJkLHI5ZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFsxMDArcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsOQotCW1vdglyMTJkLHI4ZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw0Ci0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JYW5kCXIxMmQscjlkCi0JYWRkCXIxMGQsRFdPUkRbMTIrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbMTA4K3JzaV0KLQlhZGQJcjEwZCw0MTA3NjAzMzM1Ci0JeG9yCXIxMmQscjhkCi0JbW92engJZWF4LGFsCi0JbW92CURXT1JEWzEwNCtyc2ldLGVkeAotCWFkZAlyMTBkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjEwZCwxNAotCW1vdglyMTJkLHIxMWQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNQotCi0JYWRkCXIxMGQscjExZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlhbmQJcjEyZCxyOGQKLQlhZGQJcjlkLERXT1JEWzMyK3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzExMityc2ldCi0JYWRkCXI5ZCwxMTYzNTMxNTAxCi0JeG9yCXIxMmQscjExZAotCW1vdnp4CWVieCxibAotCW1vdglEV09SRFsxMDgrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIwCi0JbW92CXIxMmQscjEwZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw1Ci0KLQlhZGQJcjlkLHIxMGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyMTFkCi0JYWRkCXI4ZCxEV09SRFs1MityMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFsxMTYrcnNpXQotCWFkZAlyOGQsMjg1MDI4NTgyOQotCXhvcglyMTJkLHIxMGQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbMTEyK3JzaV0sZWR4Ci0JYWRkCXI4ZCxyMTJkCi0JYWRkCWNsLGJsCi0Jcm9sCXI4ZCw1Ci0JbW92CXIxMmQscjlkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDYKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JYW5kCXIxMmQscjEwZAotCWFkZAlyMTFkLERXT1JEWzgrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbMTIwK3JzaV0KLQlhZGQJcjExZCw0MjQzNTYzNTEyCi0JeG9yCXIxMmQscjlkCi0JbW92engJZWJ4LGJsCi0JbW92CURXT1JEWzExNityc2ldLGVkeAotCWFkZAlyMTFkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCw5Ci0JbW92CXIxMmQscjhkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDYKLQotCWFkZAlyMTFkLHI4ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlhbmQJcjEyZCxyOWQKLQlhZGQJcjEwZCxEV09SRFsyOCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFsxMjQrcnNpXQotCWFkZAlyMTBkLDE3MzUzMjg0NzMKLQl4b3IJcjEyZCxyOGQKLQltb3Z6eAllYXgsYWwKLQltb3YJRFdPUkRbMTIwK3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE0Ci0JbW92CXIxMmQscjExZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSw3Ci0KLQlhZGQJcjEwZCxyMTFkCi0JbW92ZHF1CXhtbTMsWE1NV09SRFsxNityMTNdCi0JYWRkCWJwbCwzMgotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlhbmQJcjEyZCxyOGQKLQlhZGQJcjlkLERXT1JEWzQ4K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEW3JicCo0K3JkaV0KLQlhZGQJcjlkLDIzNjgzNTk1NjIKLQl4b3IJcjEyZCxyMTFkCi0JbW92engJZWJ4LGJsCi0JbW92CURXT1JEWzEyNCtyc2ldLGVkeAotCWFkZAlyOWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjAKLQltb3YJcjEyZCxyMTFkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDcKLQotCWFkZAlyOWQscjEwZAotCW1vdglyc2kscmN4Ci0JeG9yCXJjeCxyY3gKLQltb3YJY2wsc2lsCi0JbGVhCXJzaSxbcmJwKjQrcmRpXQotCXBzbGxxCXhtbTEsOAotCXB4b3IJeG1tMyx4bW0wCi0JcHhvcgl4bW0zLHhtbTEKLQlweG9yCXhtbTAseG1tMAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQl4b3IJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEWzIwK3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzQrcnNpXQotCWFkZAlyOGQsNDI5NDU4ODczOAotCW1vdnp4CWVheCxhbAotCWFkZAlyOGQscjEyZAotCW1vdglEV09SRFtyc2ldLGVkeAotCWFkZAljbCxibAotCXJvbAlyOGQsNAotCW1vdglyMTJkLHIxMGQKLQltb3ZkCXhtbTAsRFdPUkRbcmF4KjQrcmRpXQotCi0JYWRkCXI4ZCxyOWQKLQlweG9yCXhtbTEseG1tMQotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCXhvcglyMTJkLHI4ZAotCWFkZAlyMTFkLERXT1JEWzMyK3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzgrcnNpXQotCWFkZAlyMTFkLDIyNzIzOTI4MzMKLQltb3Z6eAllYngsYmwKLQlhZGQJcjExZCxyMTJkCi0JbW92CURXT1JEWzQrcnNpXSxlZHgKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCwxMQotCW1vdglyMTJkLHI5ZAotCW1vdmQJeG1tMSxEV09SRFtyYngqNCtyZGldCi0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQl4b3IJcjEyZCxyMTFkCi0JYWRkCXIxMGQsRFdPUkRbNDQrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbMTIrcnNpXQotCWFkZAlyMTBkLDE4MzkwMzA1NjIKLQltb3Z6eAllYXgsYWwKLQlhZGQJcjEwZCxyMTJkCi0JbW92CURXT1JEWzgrcnNpXSxlZHgKLQlhZGQJY2wsYmwKLQlyb2wJcjEwZCwxNgotCW1vdglyMTJkLHI4ZAotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSwxCi0KLQlhZGQJcjEwZCxyMTFkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCXhvcglyMTJkLHIxMGQKLQlhZGQJcjlkLERXT1JEWzU2K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzE2K3JzaV0KLQlhZGQJcjlkLDQyNTk2NTc3NDAKLQltb3Z6eAllYngsYmwKLQlhZGQJcjlkLHIxMmQKLQltb3YJRFdPUkRbMTIrcnNpXSxlZHgKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIzCi0JbW92CXIxMmQscjExZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSwxCi0KLQlhZGQJcjlkLHIxMGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTBkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JeG9yCXIxMmQscjlkCi0JYWRkCXI4ZCxEV09SRFs0K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzIwK3JzaV0KLQlhZGQJcjhkLDI3NjM5NzUyMzYKLQltb3Z6eAllYXgsYWwKLQlhZGQJcjhkLHIxMmQKLQltb3YJRFdPUkRbMTYrcnNpXSxlZHgKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDQKLQltb3YJcjEyZCxyMTBkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDIKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjlkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JeG9yCXIxMmQscjhkCi0JYWRkCXIxMWQsRFdPUkRbMTYrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbMjQrcnNpXQotCWFkZAlyMTFkLDEyNzI4OTMzNTMKLQltb3Z6eAllYngsYmwKLQlhZGQJcjExZCxyMTJkCi0JbW92CURXT1JEWzIwK3JzaV0sZWR4Ci0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTEKLQltb3YJcjEyZCxyOWQKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sMgotCi0JYWRkCXIxMWQscjhkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JeG9yCXIxMmQscjExZAotCWFkZAlyMTBkLERXT1JEWzI4K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzI4K3JzaV0KLQlhZGQJcjEwZCw0MTM5NDY5NjY0Ci0JbW92engJZWF4LGFsCi0JYWRkCXIxMGQscjEyZAotCW1vdglEV09SRFsyNCtyc2ldLGVkeAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE2Ci0JbW92CXIxMmQscjhkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDMKLQotCWFkZAlyMTBkLHIxMWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JeG9yCXIxMmQscjEwZAotCWFkZAlyOWQsRFdPUkRbNDArcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbMzIrcnNpXQotCWFkZAlyOWQsMzIwMDIzNjY1NgotCW1vdnp4CWVieCxibAotCWFkZAlyOWQscjEyZAotCW1vdglEV09SRFsyOCtyc2ldLGVkeAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjMKLQltb3YJcjEyZCxyMTFkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDMKLQotCWFkZAlyOWQscjEwZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQl4b3IJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEWzUyK3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzM2K3JzaV0KLQlhZGQJcjhkLDY4MTI3OTE3NAotCW1vdnp4CWVheCxhbAotCWFkZAlyOGQscjEyZAotCW1vdglEV09SRFszMityc2ldLGVkeAotCWFkZAljbCxibAotCXJvbAlyOGQsNAotCW1vdglyMTJkLHIxMGQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNAotCi0JYWRkCXI4ZCxyOWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQl4b3IJcjEyZCxyOGQKLQlhZGQJcjExZCxEV09SRFtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs0MCtyc2ldCi0JYWRkCXIxMWQsMzkzNjQzMDA3NAotCW1vdnp4CWVieCxibAotCWFkZAlyMTFkLHIxMmQKLQltb3YJRFdPUkRbMzYrcnNpXSxlZHgKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCwxMQotCW1vdglyMTJkLHI5ZAotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw0Ci0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQl4b3IJcjEyZCxyMTFkCi0JYWRkCXIxMGQsRFdPUkRbMTIrcjE1XQotCWFkZAlhbCxkbAotCW1vdgllYngsRFdPUkRbNDQrcnNpXQotCWFkZAlyMTBkLDM1NzI0NDUzMTcKLQltb3Z6eAllYXgsYWwKLQlhZGQJcjEwZCxyMTJkCi0JbW92CURXT1JEWzQwK3JzaV0sZWR4Ci0JYWRkCWNsLGJsCi0Jcm9sCXIxMGQsMTYKLQltb3YJcjEyZCxyOGQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNQotCi0JYWRkCXIxMGQscjExZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQl4b3IJcjEyZCxyMTBkCi0JYWRkCXI5ZCxEV09SRFsyNCtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs0OCtyc2ldCi0JYWRkCXI5ZCw3NjAyOTE4OQotCW1vdnp4CWVieCxibAotCWFkZAlyOWQscjEyZAotCW1vdglEV09SRFs0NCtyc2ldLGVkeAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjMKLQltb3YJcjEyZCxyMTFkCi0JcGluc3J3CXhtbTEsV09SRFtyYngqNCtyZGldLDUKLQotCWFkZAlyOWQscjEwZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQl4b3IJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEWzM2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzUyK3JzaV0KLQlhZGQJcjhkLDM2NTQ2MDI4MDkKLQltb3Z6eAllYXgsYWwKLQlhZGQJcjhkLHIxMmQKLQltb3YJRFdPUkRbNDgrcnNpXSxlZHgKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDQKLQltb3YJcjEyZCxyMTBkCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDYKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjlkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0JeG9yCXIxMmQscjhkCi0JYWRkCXIxMWQsRFdPUkRbNDgrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbNTYrcnNpXQotCWFkZAlyMTFkLDM4NzMxNTE0NjEKLQltb3Z6eAllYngsYmwKLQlhZGQJcjExZCxyMTJkCi0JbW92CURXT1JEWzUyK3JzaV0sZWR4Ci0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTEKLQltb3YJcjEyZCxyOWQKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sNgotCi0JYWRkCXIxMWQscjhkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0JeG9yCXIxMmQscjExZAotCWFkZAlyMTBkLERXT1JEWzYwK3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzYwK3JzaV0KLQlhZGQJcjEwZCw1MzA3NDI1MjAKLQltb3Z6eAllYXgsYWwKLQlhZGQJcjEwZCxyMTJkCi0JbW92CURXT1JEWzU2K3JzaV0sZWR4Ci0JYWRkCWNsLGJsCi0Jcm9sCXIxMGQsMTYKLQltb3YJcjEyZCxyOGQKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNwotCi0JYWRkCXIxMGQscjExZAotCW1vdmRxdQl4bW00LFhNTVdPUkRbMzIrcjEzXQotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQl4b3IJcjEyZCxyMTBkCi0JYWRkCXI5ZCxEV09SRFs4K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzY0K3JzaV0KLQlhZGQJcjlkLDMyOTk2Mjg2NDUKLQltb3Z6eAllYngsYmwKLQlhZGQJcjlkLHIxMmQKLQltb3YJRFdPUkRbNjArcnNpXSxlZHgKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIzCi0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sNwotCi0JYWRkCXI5ZCxyMTBkCi0JcHNsbHEJeG1tMSw4Ci0JcHhvcgl4bW00LHhtbTAKLQlweG9yCXhtbTQseG1tMQotCXB4b3IJeG1tMCx4bW0wCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCW9yCXIxMmQscjlkCi0JYWRkCXI4ZCxEV09SRFtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs2OCtyc2ldCi0JYWRkCXI4ZCw0MDk2MzM2NDUyCi0JbW92engJZWF4LGFsCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFs2NCtyc2ldLGVkeAotCWFkZAlyOGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyOGQsNgotCW1vdglyMTJkLC0xCi0JbW92ZAl4bW0wLERXT1JEW3JheCo0K3JkaV0KLQotCWFkZAlyOGQscjlkCi0JcHhvcgl4bW0xLHhtbTEKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTBkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0Jb3IJcjEyZCxyOGQKLQlhZGQJcjExZCxEV09SRFsyOCtyMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFs3Mityc2ldCi0JYWRkCXIxMWQsMTEyNjg5MTQxNQotCW1vdnp4CWVieCxibAotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFs2OCtyc2ldLGVkeAotCWFkZAlyMTFkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjExZCwxMAotCW1vdglyMTJkLC0xCi0JbW92ZAl4bW0xLERXT1JEW3JieCo0K3JkaV0KLQotCWFkZAlyMTFkLHI4ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCW9yCXIxMmQscjExZAotCWFkZAlyMTBkLERXT1JEWzU2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzc2K3JzaV0KLQlhZGQJcjEwZCwyODc4NjEyMzkxCi0JbW92engJZWF4LGFsCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEWzcyK3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE1Ci0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sMQotCi0JYWRkCXIxMGQscjExZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCW9yCXIxMmQscjEwZAotCWFkZAlyOWQsRFdPUkRbMjArcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbODArcnNpXQotCWFkZAlyOWQsNDIzNzUzMzI0MQotCW1vdnp4CWVieCxibAotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbNzYrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIxCi0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sMQotCi0JYWRkCXI5ZCxyMTBkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCW9yCXIxMmQscjlkCi0JYWRkCXI4ZCxEV09SRFs0OCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs4NCtyc2ldCi0JYWRkCXI4ZCwxNzAwNDg1NTcxCi0JbW92engJZWF4LGFsCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFs4MCtyc2ldLGVkeAotCWFkZAlyOGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyOGQsNgotCW1vdglyMTJkLC0xCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDIKLQotCWFkZAlyOGQscjlkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCW9yCXIxMmQscjhkCi0JYWRkCXIxMWQsRFdPUkRbMTIrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbODgrcnNpXQotCWFkZAlyMTFkLDIzOTk5ODA2OTAKLQltb3Z6eAllYngsYmwKLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbODQrcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTAKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSwyCi0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlvcglyMTJkLHIxMWQKLQlhZGQJcjEwZCxEV09SRFs0MCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFs5Mityc2ldCi0JYWRkCXIxMGQsNDI5MzkxNTc3MwotCW1vdnp4CWVheCxhbAotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFs4OCtyc2ldLGVkeAotCWFkZAlyMTBkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjEwZCwxNQotCW1vdglyMTJkLC0xCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDMKLQotCWFkZAlyMTBkLHIxMWQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlvcglyMTJkLHIxMGQKLQlhZGQJcjlkLERXT1JEWzQrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbOTYrcnNpXQotCWFkZAlyOWQsMjI0MDA0NDQ5NwotCW1vdnp4CWVieCxibAotCXhvcglyMTJkLHIxMWQKLQltb3YJRFdPUkRbOTIrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIxCi0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sMwotCi0JYWRkCXI5ZCxyMTBkCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVheAotCW9yCXIxMmQscjlkCi0JYWRkCXI4ZCxEV09SRFszMityMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFsxMDArcnNpXQotCWFkZAlyOGQsMTg3MzMxMzM1OQotCW1vdnp4CWVheCxhbAotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbOTYrcnNpXSxlZHgKLQlhZGQJcjhkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDYKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSw0Ci0KLQlhZGQJcjhkLHI5ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlvcglyMTJkLHI4ZAotCWFkZAlyMTFkLERXT1JEWzYwK3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzEwNCtyc2ldCi0JYWRkCXIxMWQsNDI2NDM1NTU1MgotCW1vdnp4CWVieCxibAotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFsxMDArcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTAKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw0Ci0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlvcglyMTJkLHIxMWQKLQlhZGQJcjEwZCxEV09SRFsyNCtyMTVdCi0JYWRkCWFsLGRsCi0JbW92CWVieCxEV09SRFsxMDgrcnNpXQotCWFkZAlyMTBkLDI3MzQ3Njg5MTYKLQltb3Z6eAllYXgsYWwKLQl4b3IJcjEyZCxyOGQKLQltb3YJRFdPUkRbMTA0K3JzaV0sZWR4Ci0JYWRkCXIxMGQscjEyZAotCWFkZAljbCxibAotCXJvbAlyMTBkLDE1Ci0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMCxXT1JEW3JheCo0K3JkaV0sNQotCi0JYWRkCXIxMGQscjExZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHI4ZAotCW1vdglEV09SRFtyY3gqNCtyZGldLGVieAotCW9yCXIxMmQscjEwZAotCWFkZAlyOWQsRFdPUkRbNTIrcjE1XQotCWFkZAlibCxkbAotCW1vdgllYXgsRFdPUkRbMTEyK3JzaV0KLQlhZGQJcjlkLDEzMDkxNTE2NDkKLQltb3Z6eAllYngsYmwKLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEWzEwOCtyc2ldLGVkeAotCWFkZAlyOWQscjEyZAotCWFkZAljbCxhbAotCXJvbAlyOWQsMjEKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw1Ci0KLQlhZGQJcjlkLHIxMGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyMTFkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWF4Ci0Jb3IJcjEyZCxyOWQKLQlhZGQJcjhkLERXT1JEWzE2K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzExNityc2ldCi0JYWRkCXI4ZCw0MTQ5NDQ0MjI2Ci0JbW92engJZWF4LGFsCi0JeG9yCXIxMmQscjEwZAotCW1vdglEV09SRFsxMTIrcnNpXSxlZHgKLQlhZGQJcjhkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjhkLDYKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0wLFdPUkRbcmF4KjQrcmRpXSw2Ci0KLQlhZGQJcjhkLHI5ZAotCW1vdgllZHgsRFdPUkRbcmN4KjQrcmRpXQotCXhvcglyMTJkLHIxMGQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYngKLQlvcglyMTJkLHI4ZAotCWFkZAlyMTFkLERXT1JEWzQ0K3IxNV0KLQlhZGQJYmwsZGwKLQltb3YJZWF4LERXT1JEWzEyMCtyc2ldCi0JYWRkCXIxMWQsMzE3NDc1NjkxNwotCW1vdnp4CWVieCxibAotCXhvcglyMTJkLHI5ZAotCW1vdglEV09SRFsxMTYrcnNpXSxlZHgKLQlhZGQJcjExZCxyMTJkCi0JYWRkCWNsLGFsCi0Jcm9sCXIxMWQsMTAKLQltb3YJcjEyZCwtMQotCXBpbnNydwl4bW0xLFdPUkRbcmJ4KjQrcmRpXSw2Ci0KLQlhZGQJcjExZCxyOGQKLQltb3YJZWR4LERXT1JEW3JjeCo0K3JkaV0KLQl4b3IJcjEyZCxyOWQKLQltb3YJRFdPUkRbcmN4KjQrcmRpXSxlYXgKLQlvcglyMTJkLHIxMWQKLQlhZGQJcjEwZCxEV09SRFs4K3IxNV0KLQlhZGQJYWwsZGwKLQltb3YJZWJ4LERXT1JEWzEyNCtyc2ldCi0JYWRkCXIxMGQsNzE4Nzg3MjU5Ci0JbW92engJZWF4LGFsCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEWzEyMCtyc2ldLGVkeAotCWFkZAlyMTBkLHIxMmQKLQlhZGQJY2wsYmwKLQlyb2wJcjEwZCwxNQotCW1vdglyMTJkLC0xCi0JcGluc3J3CXhtbTAsV09SRFtyYXgqNCtyZGldLDcKLQotCWFkZAlyMTBkLHIxMWQKLQltb3ZkcXUJeG1tNSxYTU1XT1JEWzQ4K3IxM10KLQlhZGQJYnBsLDMyCi0JbW92CWVkeCxEV09SRFtyY3gqNCtyZGldCi0JeG9yCXIxMmQscjhkCi0JbW92CURXT1JEW3JjeCo0K3JkaV0sZWJ4Ci0Jb3IJcjEyZCxyMTBkCi0JYWRkCXI5ZCxEV09SRFszNityMTVdCi0JYWRkCWJsLGRsCi0JbW92CWVheCxEV09SRFtyYnAqNCtyZGldCi0JYWRkCXI5ZCwzOTUxNDgxNzQ1Ci0JbW92engJZWJ4LGJsCi0JeG9yCXIxMmQscjExZAotCW1vdglEV09SRFsxMjQrcnNpXSxlZHgKLQlhZGQJcjlkLHIxMmQKLQlhZGQJY2wsYWwKLQlyb2wJcjlkLDIxCi0JbW92CXIxMmQsLTEKLQlwaW5zcncJeG1tMSxXT1JEW3JieCo0K3JkaV0sNwotCi0JYWRkCXI5ZCxyMTBkCi0JbW92CXJzaSxyYnAKLQl4b3IJcmJwLHJicAotCW1vdglicGwsc2lsCi0JbW92CXJzaSxyY3gKLQl4b3IJcmN4LHJjeAotCW1vdgljbCxzaWwKLQlsZWEJcnNpLFtyYnAqNCtyZGldCi0JcHNsbHEJeG1tMSw4Ci0JcHhvcgl4bW01LHhtbTAKLQlweG9yCXhtbTUseG1tMQotCWFkZAlyOGQsRFdPUkRbcnNwXQotCWFkZAlyOWQsRFdPUkRbNCtyc3BdCi0JYWRkCXIxMGQsRFdPUkRbOCtyc3BdCi0JYWRkCXIxMWQsRFdPUkRbMTIrcnNwXQotCi0JbW92ZHF1CVhNTVdPUkRbcjEzKjErcjE0XSx4bW0yCi0JbW92ZHF1CVhNTVdPUkRbMTYrcjEzKjErcjE0XSx4bW0zCi0JbW92ZHF1CVhNTVdPUkRbMzIrcjEzKjErcjE0XSx4bW00Ci0JbW92ZHF1CVhNTVdPUkRbNDgrcjEzKjErcjE0XSx4bW01Ci0JbGVhCXIxNSxbNjQrcjE1XQotCWxlYQlyMTMsWzY0K3IxM10KLQljbXAJcjE1LFFXT1JEWzE2K3JzcF0KLQlqYglORUFSICRMJG9vcAotCi0JbW92CXIxMixRV09SRFsyNCtyc3BdCi0Jc3ViCWNsLGFsCi0JbW92CURXT1JEW3IxMl0scjhkCi0JbW92CURXT1JEWzQrcjEyXSxyOWQKLQltb3YJRFdPUkRbOCtyMTJdLHIxMGQKLQltb3YJRFdPUkRbMTIrcjEyXSxyMTFkCi0Jc3ViCWJwbCwxCi0JbW92CURXT1JEWygoLTgpKStyZGldLGVicAotCW1vdglEV09SRFsoKC00KSkrcmRpXSxlY3gKLQotCW1vdglyMTUsUVdPUkRbNDArcnNwXQotCW1vdglyMTQsUVdPUkRbNDgrcnNwXQotCW1vdglyMTMsUVdPUkRbNTYrcnNwXQotCW1vdglyMTIsUVdPUkRbNjQrcnNwXQotCW1vdglyYnAsUVdPUkRbNzIrcnNwXQotCW1vdglyYngsUVdPUkRbODArcnNwXQotCWxlYQlyc3AsWzg4K3JzcF0KLSRMJGVwaWxvZ3VlOgotJEwkYWJvcnQ6Ci0JbW92CXJkaSxRV09SRFs4K3JzcF0JO1dJTjY0IGVwaWxvZ3VlCi0JbW92CXJzaSxRV09SRFsxNityc3BdCi0JREIJMEYzaCwwQzNoCQk7cmVwcmV0Ci0kTCRTRUhfZW5kX3JjNF9tZDVfZW5jOgotRVhURVJOCV9faW1wX1J0bFZpcnR1YWxVbndpbmQKLQotQUxJR04JMTYKLXNlX2hhbmRsZXI6Ci0JcHVzaAlyc2kKLQlwdXNoCXJkaQotCXB1c2gJcmJ4Ci0JcHVzaAlyYnAKLQlwdXNoCXIxMgotCXB1c2gJcjEzCi0JcHVzaAlyMTQKLQlwdXNoCXIxNQotCXB1c2hmcQotCXN1Yglyc3AsNjQKLQotCW1vdglyYXgsUVdPUkRbMTIwK3I4XQotCW1vdglyYngsUVdPUkRbMjQ4K3I4XQotCi0JbGVhCXIxMCxbJEwkYm9keV0KLQljbXAJcmJ4LHIxMAotCWpiCU5FQVIgJEwkaW5fcHJvbG9ndWUKLQotCW1vdglyYXgsUVdPUkRbMTUyK3I4XQotCi0JbGVhCXIxMCxbJEwkZXBpbG9ndWVdCi0JY21wCXJieCxyMTAKLQlqYWUJTkVBUiAkTCRpbl9wcm9sb2d1ZQotCi0JbW92CXIxNSxRV09SRFs0MCtyYXhdCi0JbW92CXIxNCxRV09SRFs0OCtyYXhdCi0JbW92CXIxMyxRV09SRFs1NityYXhdCi0JbW92CXIxMixRV09SRFs2NCtyYXhdCi0JbW92CXJicCxRV09SRFs3MityYXhdCi0JbW92CXJieCxRV09SRFs4MCtyYXhdCi0JbGVhCXJheCxbODgrcmF4XQotCi0JbW92CVFXT1JEWzE0NCtyOF0scmJ4Ci0JbW92CVFXT1JEWzE2MCtyOF0scmJwCi0JbW92CVFXT1JEWzIxNityOF0scjEyCi0JbW92CVFXT1JEWzIyNCtyOF0scjEzCi0JbW92CVFXT1JEWzIzMityOF0scjE0Ci0JbW92CVFXT1JEWzI0MCtyOF0scjE1Ci0KLSRMJGluX3Byb2xvZ3VlOgotCW1vdglyZGksUVdPUkRbOCtyYXhdCi0JbW92CXJzaSxRV09SRFsxNityYXhdCi0JbW92CVFXT1JEWzE1MityOF0scmF4Ci0JbW92CVFXT1JEWzE2OCtyOF0scnNpCi0JbW92CVFXT1JEWzE3NityOF0scmRpCi0KLQltb3YJcmRpLFFXT1JEWzQwK3I5XQotCW1vdglyc2kscjgKLQltb3YJZWN4LDE1NAotCURECTB4YTU0OGYzZmMKLQotCW1vdglyc2kscjkKLQl4b3IJcmN4LHJjeAotCW1vdglyZHgsUVdPUkRbOCtyc2ldCi0JbW92CXI4LFFXT1JEW3JzaV0KLQltb3YJcjksUVdPUkRbMTYrcnNpXQotCW1vdglyMTAsUVdPUkRbNDArcnNpXQotCWxlYQlyMTEsWzU2K3JzaV0KLQlsZWEJcjEyLFsyNCtyc2ldCi0JbW92CVFXT1JEWzMyK3JzcF0scjEwCi0JbW92CVFXT1JEWzQwK3JzcF0scjExCi0JbW92CVFXT1JEWzQ4K3JzcF0scjEyCi0JbW92CVFXT1JEWzU2K3JzcF0scmN4Ci0JY2FsbAlRV09SRFtfX2ltcF9SdGxWaXJ0dWFsVW53aW5kXQotCi0JbW92CWVheCwxCi0JYWRkCXJzcCw2NAotCXBvcGZxCi0JcG9wCXIxNQotCXBvcAlyMTQKLQlwb3AJcjEzCi0JcG9wCXIxMgotCXBvcAlyYnAKLQlwb3AJcmJ4Ci0JcG9wCXJkaQotCXBvcAlyc2kKLQlEQgkwRjNoLDBDM2gJCTtyZXByZXQKLQotCi1zZWN0aW9uCS5wZGF0YSByZGF0YSBhbGlnbj00Ci1BTElHTgk0Ci0JREQJJEwkU0VIX2JlZ2luX3JjNF9tZDVfZW5jIHdydCAuLmltYWdlYmFzZQotCURECSRMJFNFSF9lbmRfcmM0X21kNV9lbmMgd3J0IC4uaW1hZ2ViYXNlCi0JREQJJEwkU0VIX2luZm9fcmM0X21kNV9lbmMgd3J0IC4uaW1hZ2ViYXNlCi0KLXNlY3Rpb24JLnhkYXRhIHJkYXRhIGFsaWduPTgKLUFMSUdOCTgKLSRMJFNFSF9pbmZvX3JjNF9tZDVfZW5jOgotREIJOSwwLDAsMAotCURECXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTEteDg2XzY0LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuYXNtCmluZGV4IDBmNTM2MWEuLjE2OGY3OGQgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuYXNtCisrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhMS14ODZfNjQuYXNtCkBAIC0yNCw2ICsyNCwxMSBAQAogCW1vdglyMTBkLERXT1JEWygoT1BFTlNTTF9pYTMyY2FwX1ArOCkpXQogCXRlc3QJcjhkLDUxMgogCWp6CU5FQVIgJEwkaWFsdQorCWFuZAlyOGQsMjY4NDM1NDU2CisJYW5kCXI5ZCwxMDczNzQxODI0CisJb3IJcjhkLHI5ZAorCWNtcAlyOGQsMTM0MjE3NzI4MAorCWplCU5FQVIgX2F2eF9zaG9ydGN1dAogCWptcAlORUFSIF9zc3NlM19zaG9ydGN1dAogCiBBTElHTgkxNgpAQCAtMjQ0NSw2ICsyNDUwLDExNDYgQEAKIAltb3YJcnNpLFFXT1JEWzE2K3JzcF0KIAlEQgkwRjNoLDBDM2gJCTtyZXByZXQKICRMJFNFSF9lbmRfc2hhMV9ibG9ja19kYXRhX29yZGVyX3Nzc2UzOgorCitBTElHTgkxNgorc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eDoKKwltb3YJUVdPUkRbOCtyc3BdLHJkaQk7V0lONjQgcHJvbG9ndWUKKwltb3YJUVdPUkRbMTYrcnNwXSxyc2kKKwltb3YJcmF4LHJzcAorJEwkU0VIX2JlZ2luX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdng6CisJbW92CXJkaSxyY3gKKwltb3YJcnNpLHJkeAorCW1vdglyZHgscjgKKworCitfYXZ4X3Nob3J0Y3V0OgorCW1vdglyYXgscnNwCisJcHVzaAlyYngKKwlwdXNoCXJicAorCXB1c2gJcjEyCisJcHVzaAlyMTMKKwlwdXNoCXIxNAorCWxlYQlyc3AsWygoLTE2MCkpK3JzcF0KKwl2emVyb3VwcGVyCisJdm1vdmFwcwlYTU1XT1JEWygtNDAtOTYpK3JheF0seG1tNgorCXZtb3ZhcHMJWE1NV09SRFsoLTQwLTgwKStyYXhdLHhtbTcKKwl2bW92YXBzCVhNTVdPUkRbKC00MC02NCkrcmF4XSx4bW04CisJdm1vdmFwcwlYTU1XT1JEWygtNDAtNDgpK3JheF0seG1tOQorCXZtb3ZhcHMJWE1NV09SRFsoLTQwLTMyKStyYXhdLHhtbTEwCisJdm1vdmFwcwlYTU1XT1JEWygtNDAtMTYpK3JheF0seG1tMTEKKyRMJHByb2xvZ3VlX2F2eDoKKwltb3YJcjE0LHJheAorCWFuZAlyc3AsLTY0CisJbW92CXI4LHJkaQorCW1vdglyOSxyc2kKKwltb3YJcjEwLHJkeAorCisJc2hsCXIxMCw2CisJYWRkCXIxMCxyOQorCWxlYQlyMTEsWygoS19YWF9YWCs2NCkpXQorCisJbW92CWVheCxEV09SRFtyOF0KKwltb3YJZWJ4LERXT1JEWzQrcjhdCisJbW92CWVjeCxEV09SRFs4K3I4XQorCW1vdgllZHgsRFdPUkRbMTIrcjhdCisJbW92CWVzaSxlYngKKwltb3YJZWJwLERXT1JEWzE2K3I4XQorCW1vdgllZGksZWN4CisJeG9yCWVkaSxlZHgKKwlhbmQJZXNpLGVkaQorCisJdm1vdmRxYQl4bW02LFhNTVdPUkRbNjQrcjExXQorCXZtb3ZkcWEJeG1tMTEsWE1NV09SRFsoKC02NCkpK3IxMV0KKwl2bW92ZHF1CXhtbTAsWE1NV09SRFtyOV0KKwl2bW92ZHF1CXhtbTEsWE1NV09SRFsxNityOV0KKwl2bW92ZHF1CXhtbTIsWE1NV09SRFszMityOV0KKwl2bW92ZHF1CXhtbTMsWE1NV09SRFs0OCtyOV0KKwl2cHNodWZiCXhtbTAseG1tMCx4bW02CisJYWRkCXI5LDY0CisJdnBzaHVmYgl4bW0xLHhtbTEseG1tNgorCXZwc2h1ZmIJeG1tMix4bW0yLHhtbTYKKwl2cHNodWZiCXhtbTMseG1tMyx4bW02CisJdnBhZGRkCXhtbTQseG1tMCx4bW0xMQorCXZwYWRkZAl4bW01LHhtbTEseG1tMTEKKwl2cGFkZGQJeG1tNix4bW0yLHhtbTExCisJdm1vdmRxYQlYTU1XT1JEW3JzcF0seG1tNAorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTUKKwl2bW92ZHFhCVhNTVdPUkRbMzIrcnNwXSx4bW02CisJam1wCU5FQVIgJEwkb29wX2F2eAorQUxJR04JMTYKKyRMJG9vcF9hdng6CisJc2hyZAllYngsZWJ4LDIKKwl4b3IJZXNpLGVkeAorCXZwYWxpZ25yCXhtbTQseG1tMSx4bW0wLDgKKwltb3YJZWRpLGVheAorCWFkZAllYnAsRFdPUkRbcnNwXQorCXZwYWRkZAl4bW05LHhtbTExLHhtbTMKKwl4b3IJZWJ4LGVjeAorCXNobGQJZWF4LGVheCw1CisJdnBzcmxkcQl4bW04LHhtbTMsNAorCWFkZAllYnAsZXNpCisJYW5kCWVkaSxlYngKKwl2cHhvcgl4bW00LHhtbTQseG1tMAorCXhvcgllYngsZWN4CisJYWRkCWVicCxlYXgKKwl2cHhvcgl4bW04LHhtbTgseG1tMgorCXNocmQJZWF4LGVheCw3CisJeG9yCWVkaSxlY3gKKwltb3YJZXNpLGVicAorCWFkZAllZHgsRFdPUkRbNCtyc3BdCisJdnB4b3IJeG1tNCx4bW00LHhtbTgKKwl4b3IJZWF4LGVieAorCXNobGQJZWJwLGVicCw1CisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tOQorCWFkZAllZHgsZWRpCisJYW5kCWVzaSxlYXgKKwl2cHNybGQJeG1tOCx4bW00LDMxCisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVicAorCXNocmQJZWJwLGVicCw3CisJeG9yCWVzaSxlYngKKwl2cHNsbGRxCXhtbTEwLHhtbTQsMTIKKwl2cGFkZGQJeG1tNCx4bW00LHhtbTQKKwltb3YJZWRpLGVkeAorCWFkZAllY3gsRFdPUkRbOCtyc3BdCisJeG9yCWVicCxlYXgKKwlzaGxkCWVkeCxlZHgsNQorCXZwc3JsZAl4bW05LHhtbTEwLDMwCisJdnBvcgl4bW00LHhtbTQseG1tOAorCWFkZAllY3gsZXNpCisJYW5kCWVkaSxlYnAKKwl4b3IJZWJwLGVheAorCWFkZAllY3gsZWR4CisJdnBzbGxkCXhtbTEwLHhtbTEwLDIKKwl2cHhvcgl4bW00LHhtbTQseG1tOQorCXNocmQJZWR4LGVkeCw3CisJeG9yCWVkaSxlYXgKKwltb3YJZXNpLGVjeAorCWFkZAllYngsRFdPUkRbMTIrcnNwXQorCXZweG9yCXhtbTQseG1tNCx4bW0xMAorCXhvcgllZHgsZWJwCisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVkaQorCWFuZAllc2ksZWR4CisJeG9yCWVkeCxlYnAKKwlhZGQJZWJ4LGVjeAorCXNocmQJZWN4LGVjeCw3CisJeG9yCWVzaSxlYnAKKwl2cGFsaWducgl4bW01LHhtbTIseG1tMSw4CisJbW92CWVkaSxlYngKKwlhZGQJZWF4LERXT1JEWzE2K3JzcF0KKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW00CisJeG9yCWVjeCxlZHgKKwlzaGxkCWVieCxlYngsNQorCXZwc3JsZHEJeG1tOCx4bW00LDQKKwlhZGQJZWF4LGVzaQorCWFuZAllZGksZWN4CisJdnB4b3IJeG1tNSx4bW01LHhtbTEKKwl4b3IJZWN4LGVkeAorCWFkZAllYXgsZWJ4CisJdnB4b3IJeG1tOCx4bW04LHhtbTMKKwlzaHJkCWVieCxlYngsNworCXhvcgllZGksZWR4CisJbW92CWVzaSxlYXgKKwlhZGQJZWJwLERXT1JEWzIwK3JzcF0KKwl2cHhvcgl4bW01LHhtbTUseG1tOAorCXhvcgllYngsZWN4CisJc2hsZAllYXgsZWF4LDUKKwl2bW92ZHFhCVhNTVdPUkRbcnNwXSx4bW05CisJYWRkCWVicCxlZGkKKwlhbmQJZXNpLGVieAorCXZwc3JsZAl4bW04LHhtbTUsMzEKKwl4b3IJZWJ4LGVjeAorCWFkZAllYnAsZWF4CisJc2hyZAllYXgsZWF4LDcKKwl4b3IJZXNpLGVjeAorCXZwc2xsZHEJeG1tMTAseG1tNSwxMgorCXZwYWRkZAl4bW01LHhtbTUseG1tNQorCW1vdgllZGksZWJwCisJYWRkCWVkeCxEV09SRFsyNCtyc3BdCisJeG9yCWVheCxlYngKKwlzaGxkCWVicCxlYnAsNQorCXZwc3JsZAl4bW05LHhtbTEwLDMwCisJdnBvcgl4bW01LHhtbTUseG1tOAorCWFkZAllZHgsZXNpCisJYW5kCWVkaSxlYXgKKwl4b3IJZWF4LGVieAorCWFkZAllZHgsZWJwCisJdnBzbGxkCXhtbTEwLHhtbTEwLDIKKwl2cHhvcgl4bW01LHhtbTUseG1tOQorCXNocmQJZWJwLGVicCw3CisJeG9yCWVkaSxlYngKKwltb3YJZXNpLGVkeAorCWFkZAllY3gsRFdPUkRbMjgrcnNwXQorCXZweG9yCXhtbTUseG1tNSx4bW0xMAorCXhvcgllYnAsZWF4CisJc2hsZAllZHgsZWR4LDUKKwl2bW92ZHFhCXhtbTExLFhNTVdPUkRbKCgtMzIpKStyMTFdCisJYWRkCWVjeCxlZGkKKwlhbmQJZXNpLGVicAorCXhvcgllYnAsZWF4CisJYWRkCWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsNworCXhvcgllc2ksZWF4CisJdnBhbGlnbnIJeG1tNix4bW0zLHhtbTIsOAorCW1vdgllZGksZWN4CisJYWRkCWVieCxEV09SRFszMityc3BdCisJdnBhZGRkCXhtbTkseG1tMTEseG1tNQorCXhvcgllZHgsZWJwCisJc2hsZAllY3gsZWN4LDUKKwl2cHNybGRxCXhtbTgseG1tNSw0CisJYWRkCWVieCxlc2kKKwlhbmQJZWRpLGVkeAorCXZweG9yCXhtbTYseG1tNix4bW0yCisJeG9yCWVkeCxlYnAKKwlhZGQJZWJ4LGVjeAorCXZweG9yCXhtbTgseG1tOCx4bW00CisJc2hyZAllY3gsZWN4LDcKKwl4b3IJZWRpLGVicAorCW1vdgllc2ksZWJ4CisJYWRkCWVheCxEV09SRFszNityc3BdCisJdnB4b3IJeG1tNix4bW02LHhtbTgKKwl4b3IJZWN4LGVkeAorCXNobGQJZWJ4LGVieCw1CisJdm1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tOQorCWFkZAllYXgsZWRpCisJYW5kCWVzaSxlY3gKKwl2cHNybGQJeG1tOCx4bW02LDMxCisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCXNocmQJZWJ4LGVieCw3CisJeG9yCWVzaSxlZHgKKwl2cHNsbGRxCXhtbTEwLHhtbTYsMTIKKwl2cGFkZGQJeG1tNix4bW02LHhtbTYKKwltb3YJZWRpLGVheAorCWFkZAllYnAsRFdPUkRbNDArcnNwXQorCXhvcgllYngsZWN4CisJc2hsZAllYXgsZWF4LDUKKwl2cHNybGQJeG1tOSx4bW0xMCwzMAorCXZwb3IJeG1tNix4bW02LHhtbTgKKwlhZGQJZWJwLGVzaQorCWFuZAllZGksZWJ4CisJeG9yCWVieCxlY3gKKwlhZGQJZWJwLGVheAorCXZwc2xsZAl4bW0xMCx4bW0xMCwyCisJdnB4b3IJeG1tNix4bW02LHhtbTkKKwlzaHJkCWVheCxlYXgsNworCXhvcgllZGksZWN4CisJbW92CWVzaSxlYnAKKwlhZGQJZWR4LERXT1JEWzQ0K3JzcF0KKwl2cHhvcgl4bW02LHhtbTYseG1tMTAKKwl4b3IJZWF4LGVieAorCXNobGQJZWJwLGVicCw1CisJYWRkCWVkeCxlZGkKKwlhbmQJZXNpLGVheAorCXhvcgllYXgsZWJ4CisJYWRkCWVkeCxlYnAKKwlzaHJkCWVicCxlYnAsNworCXhvcgllc2ksZWJ4CisJdnBhbGlnbnIJeG1tNyx4bW00LHhtbTMsOAorCW1vdgllZGksZWR4CisJYWRkCWVjeCxEV09SRFs0OCtyc3BdCisJdnBhZGRkCXhtbTkseG1tMTEseG1tNgorCXhvcgllYnAsZWF4CisJc2hsZAllZHgsZWR4LDUKKwl2cHNybGRxCXhtbTgseG1tNiw0CisJYWRkCWVjeCxlc2kKKwlhbmQJZWRpLGVicAorCXZweG9yCXhtbTcseG1tNyx4bW0zCisJeG9yCWVicCxlYXgKKwlhZGQJZWN4LGVkeAorCXZweG9yCXhtbTgseG1tOCx4bW01CisJc2hyZAllZHgsZWR4LDcKKwl4b3IJZWRpLGVheAorCW1vdgllc2ksZWN4CisJYWRkCWVieCxEV09SRFs1Mityc3BdCisJdnB4b3IJeG1tNyx4bW03LHhtbTgKKwl4b3IJZWR4LGVicAorCXNobGQJZWN4LGVjeCw1CisJdm1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tOQorCWFkZAllYngsZWRpCisJYW5kCWVzaSxlZHgKKwl2cHNybGQJeG1tOCx4bW03LDMxCisJeG9yCWVkeCxlYnAKKwlhZGQJZWJ4LGVjeAorCXNocmQJZWN4LGVjeCw3CisJeG9yCWVzaSxlYnAKKwl2cHNsbGRxCXhtbTEwLHhtbTcsMTIKKwl2cGFkZGQJeG1tNyx4bW03LHhtbTcKKwltb3YJZWRpLGVieAorCWFkZAllYXgsRFdPUkRbNTYrcnNwXQorCXhvcgllY3gsZWR4CisJc2hsZAllYngsZWJ4LDUKKwl2cHNybGQJeG1tOSx4bW0xMCwzMAorCXZwb3IJeG1tNyx4bW03LHhtbTgKKwlhZGQJZWF4LGVzaQorCWFuZAllZGksZWN4CisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCXZwc2xsZAl4bW0xMCx4bW0xMCwyCisJdnB4b3IJeG1tNyx4bW03LHhtbTkKKwlzaHJkCWVieCxlYngsNworCXhvcgllZGksZWR4CisJbW92CWVzaSxlYXgKKwlhZGQJZWJwLERXT1JEWzYwK3JzcF0KKwl2cHhvcgl4bW03LHhtbTcseG1tMTAKKwl4b3IJZWJ4LGVjeAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVicCxlZGkKKwlhbmQJZXNpLGVieAorCXhvcgllYngsZWN4CisJYWRkCWVicCxlYXgKKwl2cGFsaWducgl4bW04LHhtbTcseG1tNiw4CisJdnB4b3IJeG1tMCx4bW0wLHhtbTQKKwlzaHJkCWVheCxlYXgsNworCXhvcgllc2ksZWN4CisJbW92CWVkaSxlYnAKKwlhZGQJZWR4LERXT1JEW3JzcF0KKwl2cHhvcgl4bW0wLHhtbTAseG1tMQorCXhvcgllYXgsZWJ4CisJc2hsZAllYnAsZWJwLDUKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW03CisJYWRkCWVkeCxlc2kKKwlhbmQJZWRpLGVheAorCXZweG9yCXhtbTAseG1tMCx4bW04CisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVicAorCXNocmQJZWJwLGVicCw3CisJeG9yCWVkaSxlYngKKwl2cHNybGQJeG1tOCx4bW0wLDMwCisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tOQorCW1vdgllc2ksZWR4CisJYWRkCWVjeCxEV09SRFs0K3JzcF0KKwl4b3IJZWJwLGVheAorCXNobGQJZWR4LGVkeCw1CisJdnBzbGxkCXhtbTAseG1tMCwyCisJYWRkCWVjeCxlZGkKKwlhbmQJZXNpLGVicAorCXhvcgllYnAsZWF4CisJYWRkCWVjeCxlZHgKKwlzaHJkCWVkeCxlZHgsNworCXhvcgllc2ksZWF4CisJbW92CWVkaSxlY3gKKwlhZGQJZWJ4LERXT1JEWzgrcnNwXQorCXZwb3IJeG1tMCx4bW0wLHhtbTgKKwl4b3IJZWR4LGVicAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlc2kKKwlhbmQJZWRpLGVkeAorCXhvcgllZHgsZWJwCisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEWzEyK3JzcF0KKwl4b3IJZWRpLGVicAorCW1vdgllc2ksZWJ4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVkaQorCXhvcgllc2ksZWR4CisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCXZwYWxpZ25yCXhtbTgseG1tMCx4bW03LDgKKwl2cHhvcgl4bW0xLHhtbTEseG1tNQorCWFkZAllYnAsRFdPUkRbMTYrcnNwXQorCXhvcgllc2ksZWN4CisJbW92CWVkaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCXZweG9yCXhtbTEseG1tMSx4bW0yCisJYWRkCWVicCxlc2kKKwl4b3IJZWRpLGVjeAorCXZwYWRkZAl4bW05LHhtbTExLHhtbTAKKwlzaHJkCWVieCxlYngsNworCWFkZAllYnAsZWF4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTgKKwlhZGQJZWR4LERXT1JEWzIwK3JzcF0KKwl4b3IJZWRpLGVieAorCW1vdgllc2ksZWJwCisJc2hsZAllYnAsZWJwLDUKKwl2cHNybGQJeG1tOCx4bW0xLDMwCisJdm1vdmRxYQlYTU1XT1JEW3JzcF0seG1tOQorCWFkZAllZHgsZWRpCisJeG9yCWVzaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWJwCisJdnBzbGxkCXhtbTEseG1tMSwyCisJYWRkCWVjeCxEV09SRFsyNCtyc3BdCisJeG9yCWVzaSxlYXgKKwltb3YJZWRpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlc2kKKwl4b3IJZWRpLGVheAorCXNocmQJZWJwLGVicCw3CisJYWRkCWVjeCxlZHgKKwl2cG9yCXhtbTEseG1tMSx4bW04CisJYWRkCWVieCxEV09SRFsyOCtyc3BdCisJeG9yCWVkaSxlYnAKKwltb3YJZXNpLGVjeAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlZGkKKwl4b3IJZXNpLGVicAorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwl2cGFsaWducgl4bW04LHhtbTEseG1tMCw4CisJdnB4b3IJeG1tMix4bW0yLHhtbTYKKwlhZGQJZWF4LERXT1JEWzMyK3JzcF0KKwl4b3IJZXNpLGVkeAorCW1vdgllZGksZWJ4CisJc2hsZAllYngsZWJ4LDUKKwl2cHhvcgl4bW0yLHhtbTIseG1tMworCWFkZAllYXgsZXNpCisJeG9yCWVkaSxlZHgKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW0xCisJdm1vdmRxYQl4bW0xMSxYTU1XT1JEW3IxMV0KKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJdnB4b3IJeG1tMix4bW0yLHhtbTgKKwlhZGQJZWJwLERXT1JEWzM2K3JzcF0KKwl4b3IJZWRpLGVjeAorCW1vdgllc2ksZWF4CisJc2hsZAllYXgsZWF4LDUKKwl2cHNybGQJeG1tOCx4bW0yLDMwCisJdm1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tOQorCWFkZAllYnAsZWRpCisJeG9yCWVzaSxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllYnAsZWF4CisJdnBzbGxkCXhtbTIseG1tMiwyCisJYWRkCWVkeCxEV09SRFs0MCtyc3BdCisJeG9yCWVzaSxlYngKKwltb3YJZWRpLGVicAorCXNobGQJZWJwLGVicCw1CisJYWRkCWVkeCxlc2kKKwl4b3IJZWRpLGVieAorCXNocmQJZWF4LGVheCw3CisJYWRkCWVkeCxlYnAKKwl2cG9yCXhtbTIseG1tMix4bW04CisJYWRkCWVjeCxEV09SRFs0NCtyc3BdCisJeG9yCWVkaSxlYXgKKwltb3YJZXNpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlZGkKKwl4b3IJZXNpLGVheAorCXNocmQJZWJwLGVicCw3CisJYWRkCWVjeCxlZHgKKwl2cGFsaWducgl4bW04LHhtbTIseG1tMSw4CisJdnB4b3IJeG1tMyx4bW0zLHhtbTcKKwlhZGQJZWJ4LERXT1JEWzQ4K3JzcF0KKwl4b3IJZXNpLGVicAorCW1vdgllZGksZWN4CisJc2hsZAllY3gsZWN4LDUKKwl2cHhvcgl4bW0zLHhtbTMseG1tNAorCWFkZAllYngsZXNpCisJeG9yCWVkaSxlYnAKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW0yCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCXZweG9yCXhtbTMseG1tMyx4bW04CisJYWRkCWVheCxEV09SRFs1Mityc3BdCisJeG9yCWVkaSxlZHgKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJdnBzcmxkCXhtbTgseG1tMywzMAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTkKKwlhZGQJZWF4LGVkaQorCXhvcgllc2ksZWR4CisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCXZwc2xsZAl4bW0zLHhtbTMsMgorCWFkZAllYnAsRFdPUkRbNTYrcnNwXQorCXhvcgllc2ksZWN4CisJbW92CWVkaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllYnAsZXNpCisJeG9yCWVkaSxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllYnAsZWF4CisJdnBvcgl4bW0zLHhtbTMseG1tOAorCWFkZAllZHgsRFdPUkRbNjArcnNwXQorCXhvcgllZGksZWJ4CisJbW92CWVzaSxlYnAKKwlzaGxkCWVicCxlYnAsNQorCWFkZAllZHgsZWRpCisJeG9yCWVzaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWJwCisJdnBhbGlnbnIJeG1tOCx4bW0zLHhtbTIsOAorCXZweG9yCXhtbTQseG1tNCx4bW0wCisJYWRkCWVjeCxEV09SRFtyc3BdCisJeG9yCWVzaSxlYXgKKwltb3YJZWRpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwlhZGQJZWN4LGVzaQorCXhvcgllZGksZWF4CisJdnBhZGRkCXhtbTkseG1tMTEseG1tMworCXNocmQJZWJwLGVicCw3CisJYWRkCWVjeCxlZHgKKwl2cHhvcgl4bW00LHhtbTQseG1tOAorCWFkZAllYngsRFdPUkRbNCtyc3BdCisJeG9yCWVkaSxlYnAKKwltb3YJZXNpLGVjeAorCXNobGQJZWN4LGVjeCw1CisJdnBzcmxkCXhtbTgseG1tNCwzMAorCXZtb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTkKKwlhZGQJZWJ4LGVkaQorCXhvcgllc2ksZWJwCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCXZwc2xsZAl4bW00LHhtbTQsMgorCWFkZAllYXgsRFdPUkRbOCtyc3BdCisJeG9yCWVzaSxlZHgKKwltb3YJZWRpLGVieAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlc2kKKwl4b3IJZWRpLGVkeAorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwl2cG9yCXhtbTQseG1tNCx4bW04CisJYWRkCWVicCxEV09SRFsxMityc3BdCisJeG9yCWVkaSxlY3gKKwltb3YJZXNpLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVicCxlZGkKKwl4b3IJZXNpLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVicCxlYXgKKwl2cGFsaWducgl4bW04LHhtbTQseG1tMyw4CisJdnB4b3IJeG1tNSx4bW01LHhtbTEKKwlhZGQJZWR4LERXT1JEWzE2K3JzcF0KKwl4b3IJZXNpLGVieAorCW1vdgllZGksZWJwCisJc2hsZAllYnAsZWJwLDUKKwl2cHhvcgl4bW01LHhtbTUseG1tNgorCWFkZAllZHgsZXNpCisJeG9yCWVkaSxlYngKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW00CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVicAorCXZweG9yCXhtbTUseG1tNSx4bW04CisJYWRkCWVjeCxEV09SRFsyMCtyc3BdCisJeG9yCWVkaSxlYXgKKwltb3YJZXNpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJdnBzcmxkCXhtbTgseG1tNSwzMAorCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTkKKwlhZGQJZWN4LGVkaQorCXhvcgllc2ksZWF4CisJc2hyZAllYnAsZWJwLDcKKwlhZGQJZWN4LGVkeAorCXZwc2xsZAl4bW01LHhtbTUsMgorCWFkZAllYngsRFdPUkRbMjQrcnNwXQorCXhvcgllc2ksZWJwCisJbW92CWVkaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJeG9yCWVkaSxlYnAKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJdnBvcgl4bW01LHhtbTUseG1tOAorCWFkZAllYXgsRFdPUkRbMjgrcnNwXQorCXNocmQJZWN4LGVjeCw3CisJbW92CWVzaSxlYngKKwl4b3IJZWRpLGVkeAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlZGkKKwl4b3IJZXNpLGVjeAorCXhvcgllY3gsZWR4CisJYWRkCWVheCxlYngKKwl2cGFsaWducgl4bW04LHhtbTUseG1tNCw4CisJdnB4b3IJeG1tNix4bW02LHhtbTIKKwlhZGQJZWJwLERXT1JEWzMyK3JzcF0KKwlhbmQJZXNpLGVjeAorCXhvcgllY3gsZWR4CisJc2hyZAllYngsZWJ4LDcKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCW1vdgllZGksZWF4CisJeG9yCWVzaSxlY3gKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW01CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWJwLGVzaQorCXZweG9yCXhtbTYseG1tNix4bW04CisJeG9yCWVkaSxlYngKKwl4b3IJZWJ4LGVjeAorCWFkZAllYnAsZWF4CisJYWRkCWVkeCxEV09SRFszNityc3BdCisJdnBzcmxkCXhtbTgseG1tNiwzMAorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTkKKwlhbmQJZWRpLGVieAorCXhvcgllYngsZWN4CisJc2hyZAllYXgsZWF4LDcKKwltb3YJZXNpLGVicAorCXZwc2xsZAl4bW02LHhtbTYsMgorCXhvcgllZGksZWJ4CisJc2hsZAllYnAsZWJwLDUKKwlhZGQJZWR4LGVkaQorCXhvcgllc2ksZWF4CisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVicAorCWFkZAllY3gsRFdPUkRbNDArcnNwXQorCWFuZAllc2ksZWF4CisJdnBvcgl4bW02LHhtbTYseG1tOAorCXhvcgllYXgsZWJ4CisJc2hyZAllYnAsZWJwLDcKKwltb3YJZWRpLGVkeAorCXhvcgllc2ksZWF4CisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVzaQorCXhvcgllZGksZWJwCisJeG9yCWVicCxlYXgKKwlhZGQJZWN4LGVkeAorCWFkZAllYngsRFdPUkRbNDQrcnNwXQorCWFuZAllZGksZWJwCisJeG9yCWVicCxlYXgKKwlzaHJkCWVkeCxlZHgsNworCW1vdgllc2ksZWN4CisJeG9yCWVkaSxlYnAKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWRpCisJeG9yCWVzaSxlZHgKKwl4b3IJZWR4LGVicAorCWFkZAllYngsZWN4CisJdnBhbGlnbnIJeG1tOCx4bW02LHhtbTUsOAorCXZweG9yCXhtbTcseG1tNyx4bW0zCisJYWRkCWVheCxEV09SRFs0OCtyc3BdCisJYW5kCWVzaSxlZHgKKwl4b3IJZWR4LGVicAorCXNocmQJZWN4LGVjeCw3CisJdnB4b3IJeG1tNyx4bW03LHhtbTAKKwltb3YJZWRpLGVieAorCXhvcgllc2ksZWR4CisJdnBhZGRkCXhtbTkseG1tMTEseG1tNgorCXZtb3ZkcWEJeG1tMTEsWE1NV09SRFszMityMTFdCisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVzaQorCXZweG9yCXhtbTcseG1tNyx4bW04CisJeG9yCWVkaSxlY3gKKwl4b3IJZWN4LGVkeAorCWFkZAllYXgsZWJ4CisJYWRkCWVicCxEV09SRFs1Mityc3BdCisJdnBzcmxkCXhtbTgseG1tNywzMAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTkKKwlhbmQJZWRpLGVjeAorCXhvcgllY3gsZWR4CisJc2hyZAllYngsZWJ4LDcKKwltb3YJZXNpLGVheAorCXZwc2xsZAl4bW03LHhtbTcsMgorCXhvcgllZGksZWN4CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWJwLGVkaQorCXhvcgllc2ksZWJ4CisJeG9yCWVieCxlY3gKKwlhZGQJZWJwLGVheAorCWFkZAllZHgsRFdPUkRbNTYrcnNwXQorCWFuZAllc2ksZWJ4CisJdnBvcgl4bW03LHhtbTcseG1tOAorCXhvcgllYngsZWN4CisJc2hyZAllYXgsZWF4LDcKKwltb3YJZWRpLGVicAorCXhvcgllc2ksZWJ4CisJc2hsZAllYnAsZWJwLDUKKwlhZGQJZWR4LGVzaQorCXhvcgllZGksZWF4CisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVicAorCWFkZAllY3gsRFdPUkRbNjArcnNwXQorCWFuZAllZGksZWF4CisJeG9yCWVheCxlYngKKwlzaHJkCWVicCxlYnAsNworCW1vdgllc2ksZWR4CisJeG9yCWVkaSxlYXgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZWRpCisJeG9yCWVzaSxlYnAKKwl4b3IJZWJwLGVheAorCWFkZAllY3gsZWR4CisJdnBhbGlnbnIJeG1tOCx4bW03LHhtbTYsOAorCXZweG9yCXhtbTAseG1tMCx4bW00CisJYWRkCWVieCxEV09SRFtyc3BdCisJYW5kCWVzaSxlYnAKKwl4b3IJZWJwLGVheAorCXNocmQJZWR4LGVkeCw3CisJdnB4b3IJeG1tMCx4bW0wLHhtbTEKKwltb3YJZWRpLGVjeAorCXhvcgllc2ksZWJwCisJdnBhZGRkCXhtbTkseG1tMTEseG1tNworCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlc2kKKwl2cHhvcgl4bW0wLHhtbTAseG1tOAorCXhvcgllZGksZWR4CisJeG9yCWVkeCxlYnAKKwlhZGQJZWJ4LGVjeAorCWFkZAllYXgsRFdPUkRbNCtyc3BdCisJdnBzcmxkCXhtbTgseG1tMCwzMAorCXZtb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTkKKwlhbmQJZWRpLGVkeAorCXhvcgllZHgsZWJwCisJc2hyZAllY3gsZWN4LDcKKwltb3YJZXNpLGVieAorCXZwc2xsZAl4bW0wLHhtbTAsMgorCXhvcgllZGksZWR4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVkaQorCXhvcgllc2ksZWN4CisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCWFkZAllYnAsRFdPUkRbOCtyc3BdCisJYW5kCWVzaSxlY3gKKwl2cG9yCXhtbTAseG1tMCx4bW04CisJeG9yCWVjeCxlZHgKKwlzaHJkCWVieCxlYngsNworCW1vdgllZGksZWF4CisJeG9yCWVzaSxlY3gKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllYnAsZXNpCisJeG9yCWVkaSxlYngKKwl4b3IJZWJ4LGVjeAorCWFkZAllYnAsZWF4CisJYWRkCWVkeCxEV09SRFsxMityc3BdCisJYW5kCWVkaSxlYngKKwl4b3IJZWJ4LGVjeAorCXNocmQJZWF4LGVheCw3CisJbW92CWVzaSxlYnAKKwl4b3IJZWRpLGVieAorCXNobGQJZWJwLGVicCw1CisJYWRkCWVkeCxlZGkKKwl4b3IJZXNpLGVheAorCXhvcgllYXgsZWJ4CisJYWRkCWVkeCxlYnAKKwl2cGFsaWducgl4bW04LHhtbTAseG1tNyw4CisJdnB4b3IJeG1tMSx4bW0xLHhtbTUKKwlhZGQJZWN4LERXT1JEWzE2K3JzcF0KKwlhbmQJZXNpLGVheAorCXhvcgllYXgsZWJ4CisJc2hyZAllYnAsZWJwLDcKKwl2cHhvcgl4bW0xLHhtbTEseG1tMgorCW1vdgllZGksZWR4CisJeG9yCWVzaSxlYXgKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW0wCisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVzaQorCXZweG9yCXhtbTEseG1tMSx4bW04CisJeG9yCWVkaSxlYnAKKwl4b3IJZWJwLGVheAorCWFkZAllY3gsZWR4CisJYWRkCWVieCxEV09SRFsyMCtyc3BdCisJdnBzcmxkCXhtbTgseG1tMSwzMAorCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTkKKwlhbmQJZWRpLGVicAorCXhvcgllYnAsZWF4CisJc2hyZAllZHgsZWR4LDcKKwltb3YJZXNpLGVjeAorCXZwc2xsZAl4bW0xLHhtbTEsMgorCXhvcgllZGksZWJwCisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVkaQorCXhvcgllc2ksZWR4CisJeG9yCWVkeCxlYnAKKwlhZGQJZWJ4LGVjeAorCWFkZAllYXgsRFdPUkRbMjQrcnNwXQorCWFuZAllc2ksZWR4CisJdnBvcgl4bW0xLHhtbTEseG1tOAorCXhvcgllZHgsZWJwCisJc2hyZAllY3gsZWN4LDcKKwltb3YJZWRpLGVieAorCXhvcgllc2ksZWR4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVzaQorCXhvcgllZGksZWN4CisJeG9yCWVjeCxlZHgKKwlhZGQJZWF4LGVieAorCWFkZAllYnAsRFdPUkRbMjgrcnNwXQorCWFuZAllZGksZWN4CisJeG9yCWVjeCxlZHgKKwlzaHJkCWVieCxlYngsNworCW1vdgllc2ksZWF4CisJeG9yCWVkaSxlY3gKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllYnAsZWRpCisJeG9yCWVzaSxlYngKKwl4b3IJZWJ4LGVjeAorCWFkZAllYnAsZWF4CisJdnBhbGlnbnIJeG1tOCx4bW0xLHhtbTAsOAorCXZweG9yCXhtbTIseG1tMix4bW02CisJYWRkCWVkeCxEV09SRFszMityc3BdCisJYW5kCWVzaSxlYngKKwl4b3IJZWJ4LGVjeAorCXNocmQJZWF4LGVheCw3CisJdnB4b3IJeG1tMix4bW0yLHhtbTMKKwltb3YJZWRpLGVicAorCXhvcgllc2ksZWJ4CisJdnBhZGRkCXhtbTkseG1tMTEseG1tMQorCXNobGQJZWJwLGVicCw1CisJYWRkCWVkeCxlc2kKKwl2cHhvcgl4bW0yLHhtbTIseG1tOAorCXhvcgllZGksZWF4CisJeG9yCWVheCxlYngKKwlhZGQJZWR4LGVicAorCWFkZAllY3gsRFdPUkRbMzYrcnNwXQorCXZwc3JsZAl4bW04LHhtbTIsMzAKKwl2bW92ZHFhCVhNTVdPUkRbMTYrcnNwXSx4bW05CisJYW5kCWVkaSxlYXgKKwl4b3IJZWF4LGVieAorCXNocmQJZWJwLGVicCw3CisJbW92CWVzaSxlZHgKKwl2cHNsbGQJeG1tMix4bW0yLDIKKwl4b3IJZWRpLGVheAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlZGkKKwl4b3IJZXNpLGVicAorCXhvcgllYnAsZWF4CisJYWRkCWVjeCxlZHgKKwlhZGQJZWJ4LERXT1JEWzQwK3JzcF0KKwlhbmQJZXNpLGVicAorCXZwb3IJeG1tMix4bW0yLHhtbTgKKwl4b3IJZWJwLGVheAorCXNocmQJZWR4LGVkeCw3CisJbW92CWVkaSxlY3gKKwl4b3IJZXNpLGVicAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlc2kKKwl4b3IJZWRpLGVkeAorCXhvcgllZHgsZWJwCisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEWzQ0K3JzcF0KKwlhbmQJZWRpLGVkeAorCXhvcgllZHgsZWJwCisJc2hyZAllY3gsZWN4LDcKKwltb3YJZXNpLGVieAorCXhvcgllZGksZWR4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVkaQorCXhvcgllc2ksZWR4CisJYWRkCWVheCxlYngKKwl2cGFsaWducgl4bW04LHhtbTIseG1tMSw4CisJdnB4b3IJeG1tMyx4bW0zLHhtbTcKKwlhZGQJZWJwLERXT1JEWzQ4K3JzcF0KKwl4b3IJZXNpLGVjeAorCW1vdgllZGksZWF4CisJc2hsZAllYXgsZWF4LDUKKwl2cHhvcgl4bW0zLHhtbTMseG1tNAorCWFkZAllYnAsZXNpCisJeG9yCWVkaSxlY3gKKwl2cGFkZGQJeG1tOSx4bW0xMSx4bW0yCisJc2hyZAllYngsZWJ4LDcKKwlhZGQJZWJwLGVheAorCXZweG9yCXhtbTMseG1tMyx4bW04CisJYWRkCWVkeCxEV09SRFs1Mityc3BdCisJeG9yCWVkaSxlYngKKwltb3YJZXNpLGVicAorCXNobGQJZWJwLGVicCw1CisJdnBzcmxkCXhtbTgseG1tMywzMAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTkKKwlhZGQJZWR4LGVkaQorCXhvcgllc2ksZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVicAorCXZwc2xsZAl4bW0zLHhtbTMsMgorCWFkZAllY3gsRFdPUkRbNTYrcnNwXQorCXhvcgllc2ksZWF4CisJbW92CWVkaSxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZXNpCisJeG9yCWVkaSxlYXgKKwlzaHJkCWVicCxlYnAsNworCWFkZAllY3gsZWR4CisJdnBvcgl4bW0zLHhtbTMseG1tOAorCWFkZAllYngsRFdPUkRbNjArcnNwXQorCXhvcgllZGksZWJwCisJbW92CWVzaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZWRpCisJeG9yCWVzaSxlYnAKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRFtyc3BdCisJdnBhZGRkCXhtbTkseG1tMTEseG1tMworCXhvcgllc2ksZWR4CisJbW92CWVkaSxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tOQorCXhvcgllZGksZWR4CisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCWFkZAllYnAsRFdPUkRbNCtyc3BdCisJeG9yCWVkaSxlY3gKKwltb3YJZXNpLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVicCxlZGkKKwl4b3IJZXNpLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVicCxlYXgKKwlhZGQJZWR4LERXT1JEWzgrcnNwXQorCXhvcgllc2ksZWJ4CisJbW92CWVkaSxlYnAKKwlzaGxkCWVicCxlYnAsNQorCWFkZAllZHgsZXNpCisJeG9yCWVkaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWJwCisJYWRkCWVjeCxEV09SRFsxMityc3BdCisJeG9yCWVkaSxlYXgKKwltb3YJZXNpLGVkeAorCXNobGQJZWR4LGVkeCw1CisJYWRkCWVjeCxlZGkKKwl4b3IJZXNpLGVheAorCXNocmQJZWJwLGVicCw3CisJYWRkCWVjeCxlZHgKKwljbXAJcjkscjEwCisJamUJTkVBUiAkTCRkb25lX2F2eAorCXZtb3ZkcWEJeG1tNixYTU1XT1JEWzY0K3IxMV0KKwl2bW92ZHFhCXhtbTExLFhNTVdPUkRbKCgtNjQpKStyMTFdCisJdm1vdmRxdQl4bW0wLFhNTVdPUkRbcjldCisJdm1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcjldCisJdm1vdmRxdQl4bW0yLFhNTVdPUkRbMzIrcjldCisJdm1vdmRxdQl4bW0zLFhNTVdPUkRbNDgrcjldCisJdnBzaHVmYgl4bW0wLHhtbTAseG1tNgorCWFkZAlyOSw2NAorCWFkZAllYngsRFdPUkRbMTYrcnNwXQorCXhvcgllc2ksZWJwCisJdnBzaHVmYgl4bW0xLHhtbTEseG1tNgorCW1vdgllZGksZWN4CisJc2hsZAllY3gsZWN4LDUKKwl2cGFkZGQJeG1tNCx4bW0wLHhtbTExCisJYWRkCWVieCxlc2kKKwl4b3IJZWRpLGVicAorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwl2bW92ZHFhCVhNTVdPUkRbcnNwXSx4bW00CisJYWRkCWVheCxEV09SRFsyMCtyc3BdCisJeG9yCWVkaSxlZHgKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlZGkKKwl4b3IJZXNpLGVkeAorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwlhZGQJZWJwLERXT1JEWzI0K3JzcF0KKwl4b3IJZXNpLGVjeAorCW1vdgllZGksZWF4CisJc2hsZAllYXgsZWF4LDUKKwlhZGQJZWJwLGVzaQorCXhvcgllZGksZWN4CisJc2hyZAllYngsZWJ4LDcKKwlhZGQJZWJwLGVheAorCWFkZAllZHgsRFdPUkRbMjgrcnNwXQorCXhvcgllZGksZWJ4CisJbW92CWVzaSxlYnAKKwlzaGxkCWVicCxlYnAsNQorCWFkZAllZHgsZWRpCisJeG9yCWVzaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWJwCisJYWRkCWVjeCxEV09SRFszMityc3BdCisJeG9yCWVzaSxlYXgKKwl2cHNodWZiCXhtbTIseG1tMix4bW02CisJbW92CWVkaSxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCXZwYWRkZAl4bW01LHhtbTEseG1tMTEKKwlhZGQJZWN4LGVzaQorCXhvcgllZGksZWF4CisJc2hyZAllYnAsZWJwLDcKKwlhZGQJZWN4LGVkeAorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTUKKwlhZGQJZWJ4LERXT1JEWzM2K3JzcF0KKwl4b3IJZWRpLGVicAorCW1vdgllc2ksZWN4CisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVkaQorCXhvcgllc2ksZWJwCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCWFkZAllYXgsRFdPUkRbNDArcnNwXQorCXhvcgllc2ksZWR4CisJbW92CWVkaSxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZXNpCisJeG9yCWVkaSxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVicCxEV09SRFs0NCtyc3BdCisJeG9yCWVkaSxlY3gKKwltb3YJZXNpLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVicCxlZGkKKwl4b3IJZXNpLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVicCxlYXgKKwlhZGQJZWR4LERXT1JEWzQ4K3JzcF0KKwl4b3IJZXNpLGVieAorCXZwc2h1ZmIJeG1tMyx4bW0zLHhtbTYKKwltb3YJZWRpLGVicAorCXNobGQJZWJwLGVicCw1CisJdnBhZGRkCXhtbTYseG1tMix4bW0xMQorCWFkZAllZHgsZXNpCisJeG9yCWVkaSxlYngKKwlzaHJkCWVheCxlYXgsNworCWFkZAllZHgsZWJwCisJdm1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tNgorCWFkZAllY3gsRFdPUkRbNTIrcnNwXQorCXhvcgllZGksZWF4CisJbW92CWVzaSxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZWRpCisJeG9yCWVzaSxlYXgKKwlzaHJkCWVicCxlYnAsNworCWFkZAllY3gsZWR4CisJYWRkCWVieCxEV09SRFs1Nityc3BdCisJeG9yCWVzaSxlYnAKKwltb3YJZWRpLGVjeAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlc2kKKwl4b3IJZWRpLGVicAorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEWzYwK3JzcF0KKwl4b3IJZWRpLGVkeAorCW1vdgllc2ksZWJ4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVkaQorCXNocmQJZWN4LGVjeCw3CisJYWRkCWVheCxlYngKKwlhZGQJZWF4LERXT1JEW3I4XQorCWFkZAllc2ksRFdPUkRbNCtyOF0KKwlhZGQJZWN4LERXT1JEWzgrcjhdCisJYWRkCWVkeCxEV09SRFsxMityOF0KKwltb3YJRFdPUkRbcjhdLGVheAorCWFkZAllYnAsRFdPUkRbMTYrcjhdCisJbW92CURXT1JEWzQrcjhdLGVzaQorCW1vdgllYngsZXNpCisJbW92CURXT1JEWzgrcjhdLGVjeAorCW1vdgllZGksZWN4CisJbW92CURXT1JEWzEyK3I4XSxlZHgKKwl4b3IJZWRpLGVkeAorCW1vdglEV09SRFsxNityOF0sZWJwCisJYW5kCWVzaSxlZGkKKwlqbXAJTkVBUiAkTCRvb3BfYXZ4CisKK0FMSUdOCTE2CiskTCRkb25lX2F2eDoKKwlhZGQJZWJ4LERXT1JEWzE2K3JzcF0KKwl4b3IJZXNpLGVicAorCW1vdgllZGksZWN4CisJc2hsZAllY3gsZWN4LDUKKwlhZGQJZWJ4LGVzaQorCXhvcgllZGksZWJwCisJc2hyZAllZHgsZWR4LDcKKwlhZGQJZWJ4LGVjeAorCWFkZAllYXgsRFdPUkRbMjArcnNwXQorCXhvcgllZGksZWR4CisJbW92CWVzaSxlYngKKwlzaGxkCWVieCxlYngsNQorCWFkZAllYXgsZWRpCisJeG9yCWVzaSxlZHgKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJYWRkCWVicCxEV09SRFsyNCtyc3BdCisJeG9yCWVzaSxlY3gKKwltb3YJZWRpLGVheAorCXNobGQJZWF4LGVheCw1CisJYWRkCWVicCxlc2kKKwl4b3IJZWRpLGVjeAorCXNocmQJZWJ4LGVieCw3CisJYWRkCWVicCxlYXgKKwlhZGQJZWR4LERXT1JEWzI4K3JzcF0KKwl4b3IJZWRpLGVieAorCW1vdgllc2ksZWJwCisJc2hsZAllYnAsZWJwLDUKKwlhZGQJZWR4LGVkaQorCXhvcgllc2ksZWJ4CisJc2hyZAllYXgsZWF4LDcKKwlhZGQJZWR4LGVicAorCWFkZAllY3gsRFdPUkRbMzIrcnNwXQorCXhvcgllc2ksZWF4CisJbW92CWVkaSxlZHgKKwlzaGxkCWVkeCxlZHgsNQorCWFkZAllY3gsZXNpCisJeG9yCWVkaSxlYXgKKwlzaHJkCWVicCxlYnAsNworCWFkZAllY3gsZWR4CisJYWRkCWVieCxEV09SRFszNityc3BdCisJeG9yCWVkaSxlYnAKKwltb3YJZXNpLGVjeAorCXNobGQJZWN4LGVjeCw1CisJYWRkCWVieCxlZGkKKwl4b3IJZXNpLGVicAorCXNocmQJZWR4LGVkeCw3CisJYWRkCWVieCxlY3gKKwlhZGQJZWF4LERXT1JEWzQwK3JzcF0KKwl4b3IJZXNpLGVkeAorCW1vdgllZGksZWJ4CisJc2hsZAllYngsZWJ4LDUKKwlhZGQJZWF4LGVzaQorCXhvcgllZGksZWR4CisJc2hyZAllY3gsZWN4LDcKKwlhZGQJZWF4LGVieAorCWFkZAllYnAsRFdPUkRbNDQrcnNwXQorCXhvcgllZGksZWN4CisJbW92CWVzaSxlYXgKKwlzaGxkCWVheCxlYXgsNQorCWFkZAllYnAsZWRpCisJeG9yCWVzaSxlY3gKKwlzaHJkCWVieCxlYngsNworCWFkZAllYnAsZWF4CisJYWRkCWVkeCxEV09SRFs0OCtyc3BdCisJeG9yCWVzaSxlYngKKwltb3YJZWRpLGVicAorCXNobGQJZWJwLGVicCw1CisJYWRkCWVkeCxlc2kKKwl4b3IJZWRpLGVieAorCXNocmQJZWF4LGVheCw3CisJYWRkCWVkeCxlYnAKKwlhZGQJZWN4LERXT1JEWzUyK3JzcF0KKwl4b3IJZWRpLGVheAorCW1vdgllc2ksZWR4CisJc2hsZAllZHgsZWR4LDUKKwlhZGQJZWN4LGVkaQorCXhvcgllc2ksZWF4CisJc2hyZAllYnAsZWJwLDcKKwlhZGQJZWN4LGVkeAorCWFkZAllYngsRFdPUkRbNTYrcnNwXQorCXhvcgllc2ksZWJwCisJbW92CWVkaSxlY3gKKwlzaGxkCWVjeCxlY3gsNQorCWFkZAllYngsZXNpCisJeG9yCWVkaSxlYnAKKwlzaHJkCWVkeCxlZHgsNworCWFkZAllYngsZWN4CisJYWRkCWVheCxEV09SRFs2MCtyc3BdCisJeG9yCWVkaSxlZHgKKwltb3YJZXNpLGVieAorCXNobGQJZWJ4LGVieCw1CisJYWRkCWVheCxlZGkKKwlzaHJkCWVjeCxlY3gsNworCWFkZAllYXgsZWJ4CisJdnplcm91cHBlcgorCisJYWRkCWVheCxEV09SRFtyOF0KKwlhZGQJZXNpLERXT1JEWzQrcjhdCisJYWRkCWVjeCxEV09SRFs4K3I4XQorCW1vdglEV09SRFtyOF0sZWF4CisJYWRkCWVkeCxEV09SRFsxMityOF0KKwltb3YJRFdPUkRbNCtyOF0sZXNpCisJYWRkCWVicCxEV09SRFsxNityOF0KKwltb3YJRFdPUkRbOCtyOF0sZWN4CisJbW92CURXT1JEWzEyK3I4XSxlZHgKKwltb3YJRFdPUkRbMTYrcjhdLGVicAorCW1vdmFwcwl4bW02LFhNTVdPUkRbKCgtNDAtOTYpKStyMTRdCisJbW92YXBzCXhtbTcsWE1NV09SRFsoKC00MC04MCkpK3IxNF0KKwltb3ZhcHMJeG1tOCxYTU1XT1JEWygoLTQwLTY0KSkrcjE0XQorCW1vdmFwcwl4bW05LFhNTVdPUkRbKCgtNDAtNDgpKStyMTRdCisJbW92YXBzCXhtbTEwLFhNTVdPUkRbKCgtNDAtMzIpKStyMTRdCisJbW92YXBzCXhtbTExLFhNTVdPUkRbKCgtNDAtMTYpKStyMTRdCisJbGVhCXJzaSxbcjE0XQorCW1vdglyMTQsUVdPUkRbKCgtNDApKStyc2ldCisJbW92CXIxMyxRV09SRFsoKC0zMikpK3JzaV0KKwltb3YJcjEyLFFXT1JEWygoLTI0KSkrcnNpXQorCW1vdglyYnAsUVdPUkRbKCgtMTYpKStyc2ldCisJbW92CXJieCxRV09SRFsoKC04KSkrcnNpXQorCWxlYQlyc3AsW3JzaV0KKyRMJGVwaWxvZ3VlX2F2eDoKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eDoKIEFMSUdOCTY0CiBLX1hYX1hYOgogCURECTB4NWE4Mjc5OTksMHg1YTgyNzk5OSwweDVhODI3OTk5LDB4NWE4Mjc5OTkKQEAgLTI2MDUsNiArMzc1MCw5IEBACiAJREQJJEwkU0VIX2JlZ2luX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfZW5kX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfaW5mb19zaGExX2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTMgd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2JlZ2luX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdnggd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2VuZF9zaGExX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4IHdydCAuLmltYWdlYmFzZQorCURECSRMJFNFSF9pbmZvX3NoYTFfYmxvY2tfZGF0YV9vcmRlcl9hdnggd3J0IC4uaW1hZ2ViYXNlCiBzZWN0aW9uCS54ZGF0YSByZGF0YSBhbGlnbj04CiBBTElHTgk4CiAkTCRTRUhfaW5mb19zaGExX2Jsb2NrX2RhdGFfb3JkZXI6CkBAIC0yNjE0LDMgKzM3NjIsNyBAQAogREIJOSwwLDAsMAogCURECXNzc2UzX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkcHJvbG9ndWVfc3NzZTMgd3J0IC4uaW1hZ2ViYXNlLCRMJGVwaWxvZ3VlX3Nzc2UzIHdydCAuLmltYWdlYmFzZQorJEwkU0VIX2luZm9fc2hhMV9ibG9ja19kYXRhX29yZGVyX2F2eDoKK0RCCTksMCwwLDAKKwlERAlzc3NlM19oYW5kbGVyIHdydCAuLmltYWdlYmFzZQorCURECSRMJHByb2xvZ3VlX2F2eCB3cnQgLi5pbWFnZWJhc2UsJEwkZXBpbG9ndWVfYXZ4IHdydCAuLmltYWdlYmFzZQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL3NoYS9zaGEyNTYteDg2XzY0LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhMjU2LXg4Nl82NC5hc20KaW5kZXggZTYxOTNjNS4uZWZhZjliNSAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL3NoYS9zaGEyNTYteDg2XzY0LmFzbQorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTI1Ni14ODZfNjQuYXNtCkBAIC0yMyw2ICsyMywxMSBAQAogCW1vdglyOWQsRFdPUkRbcjExXQogCW1vdglyMTBkLERXT1JEWzQrcjExXQogCW1vdglyMTFkLERXT1JEWzgrcjExXQorCWFuZAlyOWQsMTA3Mzc0MTgyNAorCWFuZAlyMTBkLDI2ODQzNTk2OAorCW9yCXIxMGQscjlkCisJY21wCXIxMGQsMTM0MjE3Nzc5MgorCWplCU5FQVIgJEwkYXZ4X3Nob3J0Y3V0CiAJdGVzdAlyMTBkLDUxMgogCWpueglORUFSICRMJHNzc2UzX3Nob3J0Y3V0CiAJcHVzaAlyYngKQEAgLTI4NzcsNiArMjg4MiwxMDgyIEBACiAJbW92CXJzaSxRV09SRFsxNityc3BdCiAJREIJMEYzaCwwQzNoCQk7cmVwcmV0CiAkTCRTRUhfZW5kX3NoYTI1Nl9ibG9ja19kYXRhX29yZGVyX3Nzc2UzOgorCitBTElHTgk2NAorc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisKKworJEwkYXZ4X3Nob3J0Y3V0OgorCXB1c2gJcmJ4CisJcHVzaAlyYnAKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisJcHVzaAlyMTQKKwlwdXNoCXIxNQorCW1vdglyMTEscnNwCisJc2hsCXJkeCw0CisJc3ViCXJzcCwxNjAKKwlsZWEJcmR4LFtyZHgqNCtyc2ldCisJYW5kCXJzcCwtNjQKKwltb3YJUVdPUkRbKCg2NCswKSkrcnNwXSxyZGkKKwltb3YJUVdPUkRbKCg2NCs4KSkrcnNwXSxyc2kKKwltb3YJUVdPUkRbKCg2NCsxNikpK3JzcF0scmR4CisJbW92CVFXT1JEWygoNjQrMjQpKStyc3BdLHIxMQorCW1vdmFwcwlYTU1XT1JEWyg2NCszMikrcnNwXSx4bW02CisJbW92YXBzCVhNTVdPUkRbKDY0KzQ4KStyc3BdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsoNjQrNjQpK3JzcF0seG1tOAorCW1vdmFwcwlYTU1XT1JEWyg2NCs4MCkrcnNwXSx4bW05CiskTCRwcm9sb2d1ZV9hdng6CisKKwl2emVyb3VwcGVyCisJbW92CWVheCxEV09SRFtyZGldCisJbW92CWVieCxEV09SRFs0K3JkaV0KKwltb3YJZWN4LERXT1JEWzgrcmRpXQorCW1vdgllZHgsRFdPUkRbMTIrcmRpXQorCW1vdglyOGQsRFdPUkRbMTYrcmRpXQorCW1vdglyOWQsRFdPUkRbMjArcmRpXQorCW1vdglyMTBkLERXT1JEWzI0K3JkaV0KKwltb3YJcjExZCxEV09SRFsyOCtyZGldCisJdm1vdmRxYQl4bW04LFhNTVdPUkRbKChLMjU2KzUxMiszMikpXQorCXZtb3ZkcWEJeG1tOSxYTU1XT1JEWygoSzI1Nis1MTIrNjQpKV0KKwlqbXAJTkVBUiAkTCRsb29wX2F2eAorQUxJR04JMTYKKyRMJGxvb3BfYXZ4OgorCXZtb3ZkcWEJeG1tNyxYTU1XT1JEWygoSzI1Nis1MTIpKV0KKwl2bW92ZHF1CXhtbTAsWE1NV09SRFtyc2ldCisJdm1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcnNpXQorCXZtb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwl2bW92ZHF1CXhtbTMsWE1NV09SRFs0OCtyc2ldCisJdnBzaHVmYgl4bW0wLHhtbTAseG1tNworCWxlYQlyYnAsW0syNTZdCisJdnBzaHVmYgl4bW0xLHhtbTEseG1tNworCXZwc2h1ZmIJeG1tMix4bW0yLHhtbTcKKwl2cGFkZGQJeG1tNCx4bW0wLFhNTVdPUkRbcmJwXQorCXZwc2h1ZmIJeG1tMyx4bW0zLHhtbTcKKwl2cGFkZGQJeG1tNSx4bW0xLFhNTVdPUkRbMzIrcmJwXQorCXZwYWRkZAl4bW02LHhtbTIsWE1NV09SRFs2NCtyYnBdCisJdnBhZGRkCXhtbTcseG1tMyxYTU1XT1JEWzk2K3JicF0KKwl2bW92ZHFhCVhNTVdPUkRbcnNwXSx4bW00CisJbW92CXIxNGQsZWF4CisJdm1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tNQorCW1vdgllZGksZWJ4CisJdm1vdmRxYQlYTU1XT1JEWzMyK3JzcF0seG1tNgorCXhvcgllZGksZWN4CisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tNworCW1vdglyMTNkLHI4ZAorCWptcAlORUFSICRMJGF2eF8wMF80NworCitBTElHTgkxNgorJEwkYXZ4XzAwXzQ3OgorCXN1YglyYnAsLTEyOAorCXZwYWxpZ25yCXhtbTQseG1tMSx4bW0wLDQKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdgllYXgscjE0ZAorCW1vdglyMTJkLHI5ZAorCXZwYWxpZ25yCXhtbTcseG1tMyx4bW0yLDQKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjhkCisJeG9yCXIxMmQscjEwZAorCXZwc3JsZAl4bW02LHhtbTQsNworCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxlYXgKKwlhbmQJcjEyZCxyOGQKKwl2cGFkZGQJeG1tMCx4bW0wLHhtbTcKKwl4b3IJcjEzZCxyOGQKKwlhZGQJcjExZCxEV09SRFtyc3BdCisJbW92CXIxNWQsZWF4CisJdnBzcmxkCXhtbTcseG1tNCwzCisJeG9yCXIxMmQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCXIxNWQsZWJ4CisJdnBzbGxkCXhtbTUseG1tNCwxNAorCWFkZAlyMTFkLHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJdnB4b3IJeG1tNCx4bW03LHhtbTYKKwl4b3IJcjE0ZCxlYXgKKwlhZGQJcjExZCxyMTNkCisJeG9yCWVkaSxlYngKKwl2cHNodWZkCXhtbTcseG1tMywyNTAKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVkeCxyMTFkCisJYWRkCXIxMWQsZWRpCisJdnBzcmxkCXhtbTYseG1tNiwxMQorCW1vdglyMTNkLGVkeAorCWFkZAlyMTRkLHIxMWQKKwlzaHJkCXIxM2QscjEzZCwxNAorCXZweG9yCXhtbTQseG1tNCx4bW01CisJbW92CXIxMWQscjE0ZAorCW1vdglyMTJkLHI4ZAorCXNocmQJcjE0ZCxyMTRkLDkKKwl2cHNsbGQJeG1tNSx4bW01LDExCisJeG9yCXIxM2QsZWR4CisJeG9yCXIxMmQscjlkCisJc2hyZAlyMTNkLHIxM2QsNQorCXZweG9yCXhtbTQseG1tNCx4bW02CisJeG9yCXIxNGQscjExZAorCWFuZAlyMTJkLGVkeAorCXhvcglyMTNkLGVkeAorCXZwc3JsZAl4bW02LHhtbTcsMTAKKwlhZGQJcjEwZCxEV09SRFs0K3JzcF0KKwltb3YJZWRpLHIxMWQKKwl4b3IJcjEyZCxyOWQKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCWVkaSxlYXgKKwlhZGQJcjEwZCxyMTJkCisJdnBzcmxxCXhtbTcseG1tNywxNworCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxyMTFkCisJdnBhZGRkCXhtbTAseG1tMCx4bW00CisJYWRkCXIxMGQscjEzZAorCXhvcglyMTVkLGVheAorCXNocmQJcjE0ZCxyMTRkLDIKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCWFkZAllY3gscjEwZAorCWFkZAlyMTBkLHIxNWQKKwltb3YJcjEzZCxlY3gKKwl2cHNybHEJeG1tNyx4bW03LDIKKwlhZGQJcjE0ZCxyMTBkCisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjEwZCxyMTRkCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwltb3YJcjEyZCxlZHgKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QsZWN4CisJdnBzaHVmYgl4bW02LHhtbTYseG1tOAorCXhvcglyMTJkLHI4ZAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyMTBkCisJdnBhZGRkCXhtbTAseG1tMCx4bW02CisJYW5kCXIxMmQsZWN4CisJeG9yCXIxM2QsZWN4CisJYWRkCXI5ZCxEV09SRFs4K3JzcF0KKwl2cHNodWZkCXhtbTcseG1tMCw4MAorCW1vdglyMTVkLHIxMGQKKwl4b3IJcjEyZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXZwc3JsZAl4bW02LHhtbTcsMTAKKwl4b3IJcjE1ZCxyMTFkCisJYWRkCXI5ZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCXZwc3JscQl4bW03LHhtbTcsMTcKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxyMTBkCisJYWRkCXI5ZCxyMTNkCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwl4b3IJZWRpLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVieCxyOWQKKwl2cHNybHEJeG1tNyx4bW03LDIKKwlhZGQJcjlkLGVkaQorCW1vdglyMTNkLGVieAorCWFkZAlyMTRkLHI5ZAorCXZweG9yCXhtbTYseG1tNix4bW03CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjlkLHIxNGQKKwltb3YJcjEyZCxlY3gKKwl2cHNodWZiCXhtbTYseG1tNix4bW05CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVieAorCXhvcglyMTJkLGVkeAorCXZwYWRkZAl4bW0wLHhtbTAseG1tNgorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOWQKKwlhbmQJcjEyZCxlYngKKwl2cGFkZGQJeG1tNix4bW0wLFhNTVdPUkRbcmJwXQorCXhvcglyMTNkLGVieAorCWFkZAlyOGQsRFdPUkRbMTIrcnNwXQorCW1vdgllZGkscjlkCisJeG9yCXIxMmQsZWR4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLHIxMGQKKwlhZGQJcjhkLHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCXIxNWQsZWRpCisJeG9yCXIxNGQscjlkCisJYWRkCXI4ZCxyMTNkCisJeG9yCXIxNWQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJZWF4LHI4ZAorCWFkZAlyOGQscjE1ZAorCW1vdglyMTNkLGVheAorCWFkZAlyMTRkLHI4ZAorCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTYKKwl2cGFsaWducgl4bW00LHhtbTIseG1tMSw0CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjhkLHIxNGQKKwltb3YJcjEyZCxlYngKKwl2cGFsaWducgl4bW03LHhtbTAseG1tMyw0CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVheAorCXhvcglyMTJkLGVjeAorCXZwc3JsZAl4bW02LHhtbTQsNworCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOGQKKwlhbmQJcjEyZCxlYXgKKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTcKKwl4b3IJcjEzZCxlYXgKKwlhZGQJZWR4LERXT1JEWzE2K3JzcF0KKwltb3YJcjE1ZCxyOGQKKwl2cHNybGQJeG1tNyx4bW00LDMKKwl4b3IJcjEyZCxlY3gKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLHI5ZAorCXZwc2xsZAl4bW01LHhtbTQsMTQKKwlhZGQJZWR4LHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJdnB4b3IJeG1tNCx4bW03LHhtbTYKKwl4b3IJcjE0ZCxyOGQKKwlhZGQJZWR4LHIxM2QKKwl4b3IJZWRpLHI5ZAorCXZwc2h1ZmQJeG1tNyx4bW0wLDI1MAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjExZCxlZHgKKwlhZGQJZWR4LGVkaQorCXZwc3JsZAl4bW02LHhtbTYsMTEKKwltb3YJcjEzZCxyMTFkCisJYWRkCXIxNGQsZWR4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCW1vdgllZHgscjE0ZAorCW1vdglyMTJkLGVheAorCXNocmQJcjE0ZCxyMTRkLDkKKwl2cHNsbGQJeG1tNSx4bW01LDExCisJeG9yCXIxM2QscjExZAorCXhvcglyMTJkLGVieAorCXNocmQJcjEzZCxyMTNkLDUKKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcglyMTRkLGVkeAorCWFuZAlyMTJkLHIxMWQKKwl4b3IJcjEzZCxyMTFkCisJdnBzcmxkCXhtbTYseG1tNywxMAorCWFkZAllY3gsRFdPUkRbMjArcnNwXQorCW1vdgllZGksZWR4CisJeG9yCXIxMmQsZWJ4CisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGkscjhkCisJYWRkCWVjeCxyMTJkCisJdnBzcmxxCXhtbTcseG1tNywxNworCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxlZHgKKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTQKKwlhZGQJZWN4LHIxM2QKKwl4b3IJcjE1ZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwyCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlhZGQJcjEwZCxlY3gKKwlhZGQJZWN4LHIxNWQKKwltb3YJcjEzZCxyMTBkCisJdnBzcmxxCXhtbTcseG1tNywyCisJYWRkCXIxNGQsZWN4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWN4LHIxNGQKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCW1vdglyMTJkLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjEwZAorCXZwc2h1ZmIJeG1tNix4bW02LHhtbTgKKwl4b3IJcjEyZCxlYXgKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWN4CisJdnBhZGRkCXhtbTEseG1tMSx4bW02CisJYW5kCXIxMmQscjEwZAorCXhvcglyMTNkLHIxMGQKKwlhZGQJZWJ4LERXT1JEWzI0K3JzcF0KKwl2cHNodWZkCXhtbTcseG1tMSw4MAorCW1vdglyMTVkLGVjeAorCXhvcglyMTJkLGVheAorCXNocmQJcjE0ZCxyMTRkLDExCisJdnBzcmxkCXhtbTYseG1tNywxMAorCXhvcglyMTVkLGVkeAorCWFkZAllYngscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwl2cHNybHEJeG1tNyx4bW03LDE3CisJYW5kCWVkaSxyMTVkCisJeG9yCXIxNGQsZWN4CisJYWRkCWVieCxyMTNkCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwl4b3IJZWRpLGVkeAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjlkLGVieAorCXZwc3JscQl4bW03LHhtbTcsMgorCWFkZAllYngsZWRpCisJbW92CXIxM2QscjlkCisJYWRkCXIxNGQsZWJ4CisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdgllYngscjE0ZAorCW1vdglyMTJkLHIxMGQKKwl2cHNodWZiCXhtbTYseG1tNix4bW05CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLHI5ZAorCXhvcglyMTJkLHIxMWQKKwl2cGFkZGQJeG1tMSx4bW0xLHhtbTYKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWJ4CisJYW5kCXIxMmQscjlkCisJdnBhZGRkCXhtbTYseG1tMSxYTU1XT1JEWzMyK3JicF0KKwl4b3IJcjEzZCxyOWQKKwlhZGQJZWF4LERXT1JEWzI4K3JzcF0KKwltb3YJZWRpLGVieAorCXhvcglyMTJkLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGksZWN4CisJYWRkCWVheCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLGVieAorCWFkZAllYXgscjEzZAorCXhvcglyMTVkLGVjeAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjhkLGVheAorCWFkZAllYXgscjE1ZAorCW1vdglyMTNkLHI4ZAorCWFkZAlyMTRkLGVheAorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTYKKwl2cGFsaWducgl4bW00LHhtbTMseG1tMiw0CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWF4LHIxNGQKKwltb3YJcjEyZCxyOWQKKwl2cGFsaWducgl4bW03LHhtbTEseG1tMCw0CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLHI4ZAorCXhvcglyMTJkLHIxMGQKKwl2cHNybGQJeG1tNix4bW00LDcKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWF4CisJYW5kCXIxMmQscjhkCisJdnBhZGRkCXhtbTIseG1tMix4bW03CisJeG9yCXIxM2QscjhkCisJYWRkCXIxMWQsRFdPUkRbMzIrcnNwXQorCW1vdglyMTVkLGVheAorCXZwc3JsZAl4bW03LHhtbTQsMworCXhvcglyMTJkLHIxMGQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLGVieAorCXZwc2xsZAl4bW01LHhtbTQsMTQKKwlhZGQJcjExZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAllZGkscjE1ZAorCXZweG9yCXhtbTQseG1tNyx4bW02CisJeG9yCXIxNGQsZWF4CisJYWRkCXIxMWQscjEzZAorCXhvcgllZGksZWJ4CisJdnBzaHVmZAl4bW03LHhtbTEsMjUwCisJc2hyZAlyMTRkLHIxNGQsMgorCWFkZAllZHgscjExZAorCWFkZAlyMTFkLGVkaQorCXZwc3JsZAl4bW02LHhtbTYsMTEKKwltb3YJcjEzZCxlZHgKKwlhZGQJcjE0ZCxyMTFkCisJc2hyZAlyMTNkLHIxM2QsMTQKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCW1vdglyMTFkLHIxNGQKKwltb3YJcjEyZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCw5CisJdnBzbGxkCXhtbTUseG1tNSwxMQorCXhvcglyMTNkLGVkeAorCXhvcglyMTJkLHI5ZAorCXNocmQJcjEzZCxyMTNkLDUKKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcglyMTRkLHIxMWQKKwlhbmQJcjEyZCxlZHgKKwl4b3IJcjEzZCxlZHgKKwl2cHNybGQJeG1tNix4bW03LDEwCisJYWRkCXIxMGQsRFdPUkRbMzYrcnNwXQorCW1vdgllZGkscjExZAorCXhvcglyMTJkLHI5ZAorCXZweG9yCXhtbTQseG1tNCx4bW01CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLGVheAorCWFkZAlyMTBkLHIxMmQKKwl2cHNybHEJeG1tNyx4bW03LDE3CisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLHIxMWQKKwl2cGFkZGQJeG1tMix4bW0yLHhtbTQKKwlhZGQJcjEwZCxyMTNkCisJeG9yCXIxNWQsZWF4CisJc2hyZAlyMTRkLHIxNGQsMgorCXZweG9yCXhtbTYseG1tNix4bW03CisJYWRkCWVjeCxyMTBkCisJYWRkCXIxMGQscjE1ZAorCW1vdglyMTNkLGVjeAorCXZwc3JscQl4bW03LHhtbTcsMgorCWFkZAlyMTRkLHIxMGQKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdglyMTBkLHIxNGQKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCW1vdglyMTJkLGVkeAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxlY3gKKwl2cHNodWZiCXhtbTYseG1tNix4bW04CisJeG9yCXIxMmQscjhkCisJc2hyZAlyMTNkLHIxM2QsNQorCXhvcglyMTRkLHIxMGQKKwl2cGFkZGQJeG1tMix4bW0yLHhtbTYKKwlhbmQJcjEyZCxlY3gKKwl4b3IJcjEzZCxlY3gKKwlhZGQJcjlkLERXT1JEWzQwK3JzcF0KKwl2cHNodWZkCXhtbTcseG1tMiw4MAorCW1vdglyMTVkLHIxMGQKKwl4b3IJcjEyZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXZwc3JsZAl4bW02LHhtbTcsMTAKKwl4b3IJcjE1ZCxyMTFkCisJYWRkCXI5ZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCXZwc3JscQl4bW03LHhtbTcsMTcKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxyMTBkCisJYWRkCXI5ZCxyMTNkCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwl4b3IJZWRpLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVieCxyOWQKKwl2cHNybHEJeG1tNyx4bW03LDIKKwlhZGQJcjlkLGVkaQorCW1vdglyMTNkLGVieAorCWFkZAlyMTRkLHI5ZAorCXZweG9yCXhtbTYseG1tNix4bW03CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjlkLHIxNGQKKwltb3YJcjEyZCxlY3gKKwl2cHNodWZiCXhtbTYseG1tNix4bW05CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVieAorCXhvcglyMTJkLGVkeAorCXZwYWRkZAl4bW0yLHhtbTIseG1tNgorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOWQKKwlhbmQJcjEyZCxlYngKKwl2cGFkZGQJeG1tNix4bW0yLFhNTVdPUkRbNjQrcmJwXQorCXhvcglyMTNkLGVieAorCWFkZAlyOGQsRFdPUkRbNDQrcnNwXQorCW1vdgllZGkscjlkCisJeG9yCXIxMmQsZWR4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLHIxMGQKKwlhZGQJcjhkLHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCXIxNWQsZWRpCisJeG9yCXIxNGQscjlkCisJYWRkCXI4ZCxyMTNkCisJeG9yCXIxNWQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJZWF4LHI4ZAorCWFkZAlyOGQscjE1ZAorCW1vdglyMTNkLGVheAorCWFkZAlyMTRkLHI4ZAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTYKKwl2cGFsaWducgl4bW00LHhtbTAseG1tMyw0CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjhkLHIxNGQKKwltb3YJcjEyZCxlYngKKwl2cGFsaWducgl4bW03LHhtbTIseG1tMSw0CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVheAorCXhvcglyMTJkLGVjeAorCXZwc3JsZAl4bW02LHhtbTQsNworCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOGQKKwlhbmQJcjEyZCxlYXgKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTcKKwl4b3IJcjEzZCxlYXgKKwlhZGQJZWR4LERXT1JEWzQ4K3JzcF0KKwltb3YJcjE1ZCxyOGQKKwl2cHNybGQJeG1tNyx4bW00LDMKKwl4b3IJcjEyZCxlY3gKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLHI5ZAorCXZwc2xsZAl4bW01LHhtbTQsMTQKKwlhZGQJZWR4LHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJdnB4b3IJeG1tNCx4bW03LHhtbTYKKwl4b3IJcjE0ZCxyOGQKKwlhZGQJZWR4LHIxM2QKKwl4b3IJZWRpLHI5ZAorCXZwc2h1ZmQJeG1tNyx4bW0yLDI1MAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjExZCxlZHgKKwlhZGQJZWR4LGVkaQorCXZwc3JsZAl4bW02LHhtbTYsMTEKKwltb3YJcjEzZCxyMTFkCisJYWRkCXIxNGQsZWR4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwl2cHhvcgl4bW00LHhtbTQseG1tNQorCW1vdgllZHgscjE0ZAorCW1vdglyMTJkLGVheAorCXNocmQJcjE0ZCxyMTRkLDkKKwl2cHNsbGQJeG1tNSx4bW01LDExCisJeG9yCXIxM2QscjExZAorCXhvcglyMTJkLGVieAorCXNocmQJcjEzZCxyMTNkLDUKKwl2cHhvcgl4bW00LHhtbTQseG1tNgorCXhvcglyMTRkLGVkeAorCWFuZAlyMTJkLHIxMWQKKwl4b3IJcjEzZCxyMTFkCisJdnBzcmxkCXhtbTYseG1tNywxMAorCWFkZAllY3gsRFdPUkRbNTIrcnNwXQorCW1vdgllZGksZWR4CisJeG9yCXIxMmQsZWJ4CisJdnB4b3IJeG1tNCx4bW00LHhtbTUKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGkscjhkCisJYWRkCWVjeCxyMTJkCisJdnBzcmxxCXhtbTcseG1tNywxNworCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxlZHgKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTQKKwlhZGQJZWN4LHIxM2QKKwl4b3IJcjE1ZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwyCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlhZGQJcjEwZCxlY3gKKwlhZGQJZWN4LHIxNWQKKwltb3YJcjEzZCxyMTBkCisJdnBzcmxxCXhtbTcseG1tNywyCisJYWRkCXIxNGQsZWN4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWN4LHIxNGQKKwl2cHhvcgl4bW02LHhtbTYseG1tNworCW1vdglyMTJkLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjEwZAorCXZwc2h1ZmIJeG1tNix4bW02LHhtbTgKKwl4b3IJcjEyZCxlYXgKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWN4CisJdnBhZGRkCXhtbTMseG1tMyx4bW02CisJYW5kCXIxMmQscjEwZAorCXhvcglyMTNkLHIxMGQKKwlhZGQJZWJ4LERXT1JEWzU2K3JzcF0KKwl2cHNodWZkCXhtbTcseG1tMyw4MAorCW1vdglyMTVkLGVjeAorCXhvcglyMTJkLGVheAorCXNocmQJcjE0ZCxyMTRkLDExCisJdnBzcmxkCXhtbTYseG1tNywxMAorCXhvcglyMTVkLGVkeAorCWFkZAllYngscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwl2cHNybHEJeG1tNyx4bW03LDE3CisJYW5kCWVkaSxyMTVkCisJeG9yCXIxNGQsZWN4CisJYWRkCWVieCxyMTNkCisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwl4b3IJZWRpLGVkeAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjlkLGVieAorCXZwc3JscQl4bW03LHhtbTcsMgorCWFkZAllYngsZWRpCisJbW92CXIxM2QscjlkCisJYWRkCXIxNGQsZWJ4CisJdnB4b3IJeG1tNix4bW02LHhtbTcKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdgllYngscjE0ZAorCW1vdglyMTJkLHIxMGQKKwl2cHNodWZiCXhtbTYseG1tNix4bW05CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLHI5ZAorCXhvcglyMTJkLHIxMWQKKwl2cGFkZGQJeG1tMyx4bW0zLHhtbTYKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWJ4CisJYW5kCXIxMmQscjlkCisJdnBhZGRkCXhtbTYseG1tMyxYTU1XT1JEWzk2K3JicF0KKwl4b3IJcjEzZCxyOWQKKwlhZGQJZWF4LERXT1JEWzYwK3JzcF0KKwltb3YJZWRpLGVieAorCXhvcglyMTJkLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGksZWN4CisJYWRkCWVheCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLGVieAorCWFkZAllYXgscjEzZAorCXhvcglyMTVkLGVjeAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjhkLGVheAorCWFkZAllYXgscjE1ZAorCW1vdglyMTNkLHI4ZAorCWFkZAlyMTRkLGVheAorCXZtb3ZkcWEJWE1NV09SRFs0OCtyc3BdLHhtbTYKKwljbXAJQllURVsxMzErcmJwXSwwCisJam5lCU5FQVIgJEwkYXZ4XzAwXzQ3CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWF4LHIxNGQKKwltb3YJcjEyZCxyOWQKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjhkCisJeG9yCXIxMmQscjEwZAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxlYXgKKwlhbmQJcjEyZCxyOGQKKwl4b3IJcjEzZCxyOGQKKwlhZGQJcjExZCxEV09SRFtyc3BdCisJbW92CXIxNWQsZWF4CisJeG9yCXIxMmQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCXIxNWQsZWJ4CisJYWRkCXIxMWQscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxlYXgKKwlhZGQJcjExZCxyMTNkCisJeG9yCWVkaSxlYngKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVkeCxyMTFkCisJYWRkCXIxMWQsZWRpCisJbW92CXIxM2QsZWR4CisJYWRkCXIxNGQscjExZAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CXIxMWQscjE0ZAorCW1vdglyMTJkLHI4ZAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxlZHgKKwl4b3IJcjEyZCxyOWQKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQscjExZAorCWFuZAlyMTJkLGVkeAorCXhvcglyMTNkLGVkeAorCWFkZAlyMTBkLERXT1JEWzQrcnNwXQorCW1vdgllZGkscjExZAorCXhvcglyMTJkLHI5ZAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCWVkaSxlYXgKKwlhZGQJcjEwZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLHIxMWQKKwlhZGQJcjEwZCxyMTNkCisJeG9yCXIxNWQsZWF4CisJc2hyZAlyMTRkLHIxNGQsMgorCWFkZAllY3gscjEwZAorCWFkZAlyMTBkLHIxNWQKKwltb3YJcjEzZCxlY3gKKwlhZGQJcjE0ZCxyMTBkCisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjEwZCxyMTRkCisJbW92CXIxMmQsZWR4CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVjeAorCXhvcglyMTJkLHI4ZAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyMTBkCisJYW5kCXIxMmQsZWN4CisJeG9yCXIxM2QsZWN4CisJYWRkCXI5ZCxEV09SRFs4K3JzcF0KKwltb3YJcjE1ZCxyMTBkCisJeG9yCXIxMmQscjhkCisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJcjE1ZCxyMTFkCisJYWRkCXI5ZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAllZGkscjE1ZAorCXhvcglyMTRkLHIxMGQKKwlhZGQJcjlkLHIxM2QKKwl4b3IJZWRpLHIxMWQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVieCxyOWQKKwlhZGQJcjlkLGVkaQorCW1vdglyMTNkLGVieAorCWFkZAlyMTRkLHI5ZAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CXI5ZCxyMTRkCisJbW92CXIxMmQsZWN4CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVieAorCXhvcglyMTJkLGVkeAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOWQKKwlhbmQJcjEyZCxlYngKKwl4b3IJcjEzZCxlYngKKwlhZGQJcjhkLERXT1JEWzEyK3JzcF0KKwltb3YJZWRpLHI5ZAorCXhvcglyMTJkLGVkeAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCWVkaSxyMTBkCisJYWRkCXI4ZCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLHI5ZAorCWFkZAlyOGQscjEzZAorCXhvcglyMTVkLHIxMGQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVheCxyOGQKKwlhZGQJcjhkLHIxNWQKKwltb3YJcjEzZCxlYXgKKwlhZGQJcjE0ZCxyOGQKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdglyOGQscjE0ZAorCW1vdglyMTJkLGVieAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxlYXgKKwl4b3IJcjEyZCxlY3gKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQscjhkCisJYW5kCXIxMmQsZWF4CisJeG9yCXIxM2QsZWF4CisJYWRkCWVkeCxEV09SRFsxNityc3BdCisJbW92CXIxNWQscjhkCisJeG9yCXIxMmQsZWN4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJcjE1ZCxyOWQKKwlhZGQJZWR4LHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJeG9yCXIxNGQscjhkCisJYWRkCWVkeCxyMTNkCisJeG9yCWVkaSxyOWQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCXIxMWQsZWR4CisJYWRkCWVkeCxlZGkKKwltb3YJcjEzZCxyMTFkCisJYWRkCXIxNGQsZWR4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWR4LHIxNGQKKwltb3YJcjEyZCxlYXgKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjExZAorCXhvcglyMTJkLGVieAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxlZHgKKwlhbmQJcjEyZCxyMTFkCisJeG9yCXIxM2QscjExZAorCWFkZAllY3gsRFdPUkRbMjArcnNwXQorCW1vdgllZGksZWR4CisJeG9yCXIxMmQsZWJ4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLHI4ZAorCWFkZAllY3gscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxlZHgKKwlhZGQJZWN4LHIxM2QKKwl4b3IJcjE1ZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCXIxMGQsZWN4CisJYWRkCWVjeCxyMTVkCisJbW92CXIxM2QscjEwZAorCWFkZAlyMTRkLGVjeAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CWVjeCxyMTRkCisJbW92CXIxMmQscjExZAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxyMTBkCisJeG9yCXIxMmQsZWF4CisJc2hyZAlyMTNkLHIxM2QsNQorCXhvcglyMTRkLGVjeAorCWFuZAlyMTJkLHIxMGQKKwl4b3IJcjEzZCxyMTBkCisJYWRkCWVieCxEV09SRFsyNCtyc3BdCisJbW92CXIxNWQsZWN4CisJeG9yCXIxMmQsZWF4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJcjE1ZCxlZHgKKwlhZGQJZWJ4LHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJeG9yCXIxNGQsZWN4CisJYWRkCWVieCxyMTNkCisJeG9yCWVkaSxlZHgKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCXI5ZCxlYngKKwlhZGQJZWJ4LGVkaQorCW1vdglyMTNkLHI5ZAorCWFkZAlyMTRkLGVieAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CWVieCxyMTRkCisJbW92CXIxMmQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxyOWQKKwl4b3IJcjEyZCxyMTFkCisJc2hyZAlyMTNkLHIxM2QsNQorCXhvcglyMTRkLGVieAorCWFuZAlyMTJkLHI5ZAorCXhvcglyMTNkLHI5ZAorCWFkZAllYXgsRFdPUkRbMjgrcnNwXQorCW1vdgllZGksZWJ4CisJeG9yCXIxMmQscjExZAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCWVkaSxlY3gKKwlhZGQJZWF4LHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCXIxNWQsZWRpCisJeG9yCXIxNGQsZWJ4CisJYWRkCWVheCxyMTNkCisJeG9yCXIxNWQsZWN4CisJc2hyZAlyMTRkLHIxNGQsMgorCWFkZAlyOGQsZWF4CisJYWRkCWVheCxyMTVkCisJbW92CXIxM2QscjhkCisJYWRkCXIxNGQsZWF4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWF4LHIxNGQKKwltb3YJcjEyZCxyOWQKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QscjhkCisJeG9yCXIxMmQscjEwZAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxlYXgKKwlhbmQJcjEyZCxyOGQKKwl4b3IJcjEzZCxyOGQKKwlhZGQJcjExZCxEV09SRFszMityc3BdCisJbW92CXIxNWQsZWF4CisJeG9yCXIxMmQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDExCisJeG9yCXIxNWQsZWJ4CisJYWRkCXIxMWQscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxlYXgKKwlhZGQJcjExZCxyMTNkCisJeG9yCWVkaSxlYngKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCWVkeCxyMTFkCisJYWRkCXIxMWQsZWRpCisJbW92CXIxM2QsZWR4CisJYWRkCXIxNGQscjExZAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CXIxMWQscjE0ZAorCW1vdglyMTJkLHI4ZAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxlZHgKKwl4b3IJcjEyZCxyOWQKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQscjExZAorCWFuZAlyMTJkLGVkeAorCXhvcglyMTNkLGVkeAorCWFkZAlyMTBkLERXT1JEWzM2K3JzcF0KKwltb3YJZWRpLHIxMWQKKwl4b3IJcjEyZCxyOWQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGksZWF4CisJYWRkCXIxMGQscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxyMTFkCisJYWRkCXIxMGQscjEzZAorCXhvcglyMTVkLGVheAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJZWN4LHIxMGQKKwlhZGQJcjEwZCxyMTVkCisJbW92CXIxM2QsZWN4CisJYWRkCXIxNGQscjEwZAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CXIxMGQscjE0ZAorCW1vdglyMTJkLGVkeAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxlY3gKKwl4b3IJcjEyZCxyOGQKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQscjEwZAorCWFuZAlyMTJkLGVjeAorCXhvcglyMTNkLGVjeAorCWFkZAlyOWQsRFdPUkRbNDArcnNwXQorCW1vdglyMTVkLHIxMGQKKwl4b3IJcjEyZCxyOGQKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLHIxMWQKKwlhZGQJcjlkLHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCWVkaSxyMTVkCisJeG9yCXIxNGQscjEwZAorCWFkZAlyOWQscjEzZAorCXhvcgllZGkscjExZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJZWJ4LHI5ZAorCWFkZAlyOWQsZWRpCisJbW92CXIxM2QsZWJ4CisJYWRkCXIxNGQscjlkCisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJcjlkLHIxNGQKKwltb3YJcjEyZCxlY3gKKwlzaHJkCXIxNGQscjE0ZCw5CisJeG9yCXIxM2QsZWJ4CisJeG9yCXIxMmQsZWR4CisJc2hyZAlyMTNkLHIxM2QsNQorCXhvcglyMTRkLHI5ZAorCWFuZAlyMTJkLGVieAorCXhvcglyMTNkLGVieAorCWFkZAlyOGQsRFdPUkRbNDQrcnNwXQorCW1vdgllZGkscjlkCisJeG9yCXIxMmQsZWR4CisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLHIxMGQKKwlhZGQJcjhkLHIxMmQKKwlzaHJkCXIxM2QscjEzZCw2CisJYW5kCXIxNWQsZWRpCisJeG9yCXIxNGQscjlkCisJYWRkCXI4ZCxyMTNkCisJeG9yCXIxNWQscjEwZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJZWF4LHI4ZAorCWFkZAlyOGQscjE1ZAorCW1vdglyMTNkLGVheAorCWFkZAlyMTRkLHI4ZAorCXNocmQJcjEzZCxyMTNkLDE0CisJbW92CXI4ZCxyMTRkCisJbW92CXIxMmQsZWJ4CisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLGVheAorCXhvcglyMTJkLGVjeAorCXNocmQJcjEzZCxyMTNkLDUKKwl4b3IJcjE0ZCxyOGQKKwlhbmQJcjEyZCxlYXgKKwl4b3IJcjEzZCxlYXgKKwlhZGQJZWR4LERXT1JEWzQ4K3JzcF0KKwltb3YJcjE1ZCxyOGQKKwl4b3IJcjEyZCxlY3gKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLHI5ZAorCWFkZAllZHgscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxyOGQKKwlhZGQJZWR4LHIxM2QKKwl4b3IJZWRpLHI5ZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjExZCxlZHgKKwlhZGQJZWR4LGVkaQorCW1vdglyMTNkLHIxMWQKKwlhZGQJcjE0ZCxlZHgKKwlzaHJkCXIxM2QscjEzZCwxNAorCW1vdgllZHgscjE0ZAorCW1vdglyMTJkLGVheAorCXNocmQJcjE0ZCxyMTRkLDkKKwl4b3IJcjEzZCxyMTFkCisJeG9yCXIxMmQsZWJ4CisJc2hyZAlyMTNkLHIxM2QsNQorCXhvcglyMTRkLGVkeAorCWFuZAlyMTJkLHIxMWQKKwl4b3IJcjEzZCxyMTFkCisJYWRkCWVjeCxEV09SRFs1Mityc3BdCisJbW92CWVkaSxlZHgKKwl4b3IJcjEyZCxlYngKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcgllZGkscjhkCisJYWRkCWVjeCxyMTJkCisJc2hyZAlyMTNkLHIxM2QsNgorCWFuZAlyMTVkLGVkaQorCXhvcglyMTRkLGVkeAorCWFkZAllY3gscjEzZAorCXhvcglyMTVkLHI4ZAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjEwZCxlY3gKKwlhZGQJZWN4LHIxNWQKKwltb3YJcjEzZCxyMTBkCisJYWRkCXIxNGQsZWN4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWN4LHIxNGQKKwltb3YJcjEyZCxyMTFkCisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLHIxMGQKKwl4b3IJcjEyZCxlYXgKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWN4CisJYW5kCXIxMmQscjEwZAorCXhvcglyMTNkLHIxMGQKKwlhZGQJZWJ4LERXT1JEWzU2K3JzcF0KKwltb3YJcjE1ZCxlY3gKKwl4b3IJcjEyZCxlYXgKKwlzaHJkCXIxNGQscjE0ZCwxMQorCXhvcglyMTVkLGVkeAorCWFkZAllYngscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJZWRpLHIxNWQKKwl4b3IJcjE0ZCxlY3gKKwlhZGQJZWJ4LHIxM2QKKwl4b3IJZWRpLGVkeAorCXNocmQJcjE0ZCxyMTRkLDIKKwlhZGQJcjlkLGVieAorCWFkZAllYngsZWRpCisJbW92CXIxM2QscjlkCisJYWRkCXIxNGQsZWJ4CisJc2hyZAlyMTNkLHIxM2QsMTQKKwltb3YJZWJ4LHIxNGQKKwltb3YJcjEyZCxyMTBkCisJc2hyZAlyMTRkLHIxNGQsOQorCXhvcglyMTNkLHI5ZAorCXhvcglyMTJkLHIxMWQKKwlzaHJkCXIxM2QscjEzZCw1CisJeG9yCXIxNGQsZWJ4CisJYW5kCXIxMmQscjlkCisJeG9yCXIxM2QscjlkCisJYWRkCWVheCxEV09SRFs2MCtyc3BdCisJbW92CWVkaSxlYngKKwl4b3IJcjEyZCxyMTFkCisJc2hyZAlyMTRkLHIxNGQsMTEKKwl4b3IJZWRpLGVjeAorCWFkZAllYXgscjEyZAorCXNocmQJcjEzZCxyMTNkLDYKKwlhbmQJcjE1ZCxlZGkKKwl4b3IJcjE0ZCxlYngKKwlhZGQJZWF4LHIxM2QKKwl4b3IJcjE1ZCxlY3gKKwlzaHJkCXIxNGQscjE0ZCwyCisJYWRkCXI4ZCxlYXgKKwlhZGQJZWF4LHIxNWQKKwltb3YJcjEzZCxyOGQKKwlhZGQJcjE0ZCxlYXgKKwltb3YJcmRpLFFXT1JEWygoNjQrMCkpK3JzcF0KKwltb3YJZWF4LHIxNGQKKworCWFkZAllYXgsRFdPUkRbcmRpXQorCWxlYQlyc2ksWzY0K3JzaV0KKwlhZGQJZWJ4LERXT1JEWzQrcmRpXQorCWFkZAllY3gsRFdPUkRbOCtyZGldCisJYWRkCWVkeCxEV09SRFsxMityZGldCisJYWRkCXI4ZCxEV09SRFsxNityZGldCisJYWRkCXI5ZCxEV09SRFsyMCtyZGldCisJYWRkCXIxMGQsRFdPUkRbMjQrcmRpXQorCWFkZAlyMTFkLERXT1JEWzI4K3JkaV0KKworCWNtcAlyc2ksUVdPUkRbKCg2NCsxNikpK3JzcF0KKworCW1vdglEV09SRFtyZGldLGVheAorCW1vdglEV09SRFs0K3JkaV0sZWJ4CisJbW92CURXT1JEWzgrcmRpXSxlY3gKKwltb3YJRFdPUkRbMTIrcmRpXSxlZHgKKwltb3YJRFdPUkRbMTYrcmRpXSxyOGQKKwltb3YJRFdPUkRbMjArcmRpXSxyOWQKKwltb3YJRFdPUkRbMjQrcmRpXSxyMTBkCisJbW92CURXT1JEWzI4K3JkaV0scjExZAorCWpiCU5FQVIgJEwkbG9vcF9hdngKKworCW1vdglyc2ksUVdPUkRbKCg2NCsyNCkpK3JzcF0KKwl2emVyb3VwcGVyCisJbW92YXBzCXhtbTYsWE1NV09SRFsoKDY0KzMyKSkrcnNwXQorCW1vdmFwcwl4bW03LFhNTVdPUkRbKCg2NCs0OCkpK3JzcF0KKwltb3ZhcHMJeG1tOCxYTU1XT1JEWygoNjQrNjQpKStyc3BdCisJbW92YXBzCXhtbTksWE1NV09SRFsoKDY0KzgwKSkrcnNwXQorCW1vdglyMTUsUVdPUkRbcnNpXQorCW1vdglyMTQsUVdPUkRbOCtyc2ldCisJbW92CXIxMyxRV09SRFsxNityc2ldCisJbW92CXIxMixRV09SRFsyNCtyc2ldCisJbW92CXJicCxRV09SRFszMityc2ldCisJbW92CXJieCxRV09SRFs0MCtyc2ldCisJbGVhCXJzcCxbNDgrcnNpXQorJEwkZXBpbG9ndWVfYXZ4OgorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9zaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9hdng6CiBFWFRFUk4JX19pbXBfUnRsVmlydHVhbFVud2luZAogCiBBTElHTgkxNgpAQCAtMjk4Miw2ICs0MDYzLDkgQEAKIAlERAkkTCRTRUhfYmVnaW5fc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfc3NzZTMgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkU0VIX2VuZF9zaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyB3cnQgLi5pbWFnZWJhc2UKIAlERAkkTCRTRUhfaW5mb19zaGEyNTZfYmxvY2tfZGF0YV9vcmRlcl9zc3NlMyB3cnQgLi5pbWFnZWJhc2UKKwlERAkkTCRTRUhfYmVnaW5fc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfYXZ4IHdydCAuLmltYWdlYmFzZQorCURECSRMJFNFSF9lbmRfc2hhMjU2X2Jsb2NrX2RhdGFfb3JkZXJfYXZ4IHdydCAuLmltYWdlYmFzZQorCURECSRMJFNFSF9pbmZvX3NoYTI1Nl9ibG9ja19kYXRhX29yZGVyX2F2eCB3cnQgLi5pbWFnZWJhc2UKIHNlY3Rpb24JLnhkYXRhIHJkYXRhIGFsaWduPTgKIEFMSUdOCTgKICRMJFNFSF9pbmZvX3NoYTI1Nl9ibG9ja19kYXRhX29yZGVyOgpAQCAtMjk5MiwzICs0MDc2LDcgQEAKIERCCTksMCwwLDAKIAlERAlzZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQogCURECSRMJHByb2xvZ3VlX3Nzc2UzIHdydCAuLmltYWdlYmFzZSwkTCRlcGlsb2d1ZV9zc3NlMyB3cnQgLi5pbWFnZWJhc2UKKyRMJFNFSF9pbmZvX3NoYTI1Nl9ibG9ja19kYXRhX29yZGVyX2F2eDoKK0RCCTksMCwwLDAKKwlERAlzZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQorCURECSRMJHByb2xvZ3VlX2F2eCB3cnQgLi5pbWFnZWJhc2UsJEwkZXBpbG9ndWVfYXZ4IHdydCAuLmltYWdlYmFzZQpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LmFzbSBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC93aW4teDg2XzY0L2NyeXB0by9zaGEvc2hhNTEyLXg4Nl82NC5hc20KaW5kZXggYjc2Y2MwZS4uNzE0NDljZCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL3dpbi14ODZfNjQvY3J5cHRvL3NoYS9zaGE1MTIteDg2XzY0LmFzbQorKysgYi90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvd2luLXg4Nl82NC9jcnlwdG8vc2hhL3NoYTUxMi14ODZfNjQuYXNtCkBAIC0xOSw2ICsxOSwxNyBAQAogCW1vdglyZHgscjgKIAogCisJbGVhCXIxMSxbT1BFTlNTTF9pYTMyY2FwX1BdCisJbW92CXI5ZCxEV09SRFtyMTFdCisJbW92CXIxMGQsRFdPUkRbNCtyMTFdCisJbW92CXIxMWQsRFdPUkRbOCtyMTFdCisJdGVzdAlyMTBkLDIwNDgKKwlqbnoJTkVBUiAkTCR4b3Bfc2hvcnRjdXQKKwlhbmQJcjlkLDEwNzM3NDE4MjQKKwlhbmQJcjEwZCwyNjg0MzU5NjgKKwlvcglyMTBkLHI5ZAorCWNtcAlyMTBkLDEzNDIxNzc3OTIKKwlqZQlORUFSICRMJGF2eF9zaG9ydGN1dAogCXB1c2gJcmJ4CiAJcHVzaAlyYnAKIAlwdXNoCXIxMgpAQCAtMTgwMSw2ICsxODEyLDIyODIgQEAKIERCCTUyLDQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMQogREIJMzIsNjAsOTcsMTEyLDExMiwxMTQsMTExLDY0LDExMSwxMTIsMTAxLDExMCwxMTUsMTE1LDEwOCw0NgogREIJMTExLDExNCwxMDMsNjIsMAorCitBTElHTgk2NAorc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wOgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wOgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisKKworJEwkeG9wX3Nob3J0Y3V0OgorCXB1c2gJcmJ4CisJcHVzaAlyYnAKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisJcHVzaAlyMTQKKwlwdXNoCXIxNQorCW1vdglyMTEscnNwCisJc2hsCXJkeCw0CisJc3ViCXJzcCwyNTYKKwlsZWEJcmR4LFtyZHgqOCtyc2ldCisJYW5kCXJzcCwtNjQKKwltb3YJUVdPUkRbKCgxMjgrMCkpK3JzcF0scmRpCisJbW92CVFXT1JEWygoMTI4KzgpKStyc3BdLHJzaQorCW1vdglRV09SRFsoKDEyOCsxNikpK3JzcF0scmR4CisJbW92CVFXT1JEWygoMTI4KzI0KSkrcnNwXSxyMTEKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzMyKStyc3BdLHhtbTYKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzQ4KStyc3BdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzY0KStyc3BdLHhtbTgKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzgwKStyc3BdLHhtbTkKKwltb3ZhcHMJWE1NV09SRFsoMTI4Kzk2KStyc3BdLHhtbTEwCisJbW92YXBzCVhNTVdPUkRbKDEyOCsxMTIpK3JzcF0seG1tMTEKKyRMJHByb2xvZ3VlX3hvcDoKKworCXZ6ZXJvdXBwZXIKKwltb3YJcmF4LFFXT1JEW3JkaV0KKwltb3YJcmJ4LFFXT1JEWzgrcmRpXQorCW1vdglyY3gsUVdPUkRbMTYrcmRpXQorCW1vdglyZHgsUVdPUkRbMjQrcmRpXQorCW1vdglyOCxRV09SRFszMityZGldCisJbW92CXI5LFFXT1JEWzQwK3JkaV0KKwltb3YJcjEwLFFXT1JEWzQ4K3JkaV0KKwltb3YJcjExLFFXT1JEWzU2K3JkaV0KKwlqbXAJTkVBUiAkTCRsb29wX3hvcAorQUxJR04JMTYKKyRMJGxvb3BfeG9wOgorCXZtb3ZkcWEJeG1tMTEsWE1NV09SRFsoKEs1MTIrMTI4MCkpXQorCXZtb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KKwlsZWEJcmJwLFsoKEs1MTIrMTI4KSldCisJdm1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcnNpXQorCXZtb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwl2cHNodWZiCXhtbTAseG1tMCx4bW0xMQorCXZtb3ZkcXUJeG1tMyxYTU1XT1JEWzQ4K3JzaV0KKwl2cHNodWZiCXhtbTEseG1tMSx4bW0xMQorCXZtb3ZkcXUJeG1tNCxYTU1XT1JEWzY0K3JzaV0KKwl2cHNodWZiCXhtbTIseG1tMix4bW0xMQorCXZtb3ZkcXUJeG1tNSxYTU1XT1JEWzgwK3JzaV0KKwl2cHNodWZiCXhtbTMseG1tMyx4bW0xMQorCXZtb3ZkcXUJeG1tNixYTU1XT1JEWzk2K3JzaV0KKwl2cHNodWZiCXhtbTQseG1tNCx4bW0xMQorCXZtb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJdnBzaHVmYgl4bW01LHhtbTUseG1tMTEKKwl2cGFkZHEJeG1tOCx4bW0wLFhNTVdPUkRbKCgtMTI4KSkrcmJwXQorCXZwc2h1ZmIJeG1tNix4bW02LHhtbTExCisJdnBhZGRxCXhtbTkseG1tMSxYTU1XT1JEWygoLTk2KSkrcmJwXQorCXZwc2h1ZmIJeG1tNyx4bW03LHhtbTExCisJdnBhZGRxCXhtbTEwLHhtbTIsWE1NV09SRFsoKC02NCkpK3JicF0KKwl2cGFkZHEJeG1tMTEseG1tMyxYTU1XT1JEWygoLTMyKSkrcmJwXQorCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTgKKwl2cGFkZHEJeG1tOCx4bW00LFhNTVdPUkRbcmJwXQorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTkKKwl2cGFkZHEJeG1tOSx4bW01LFhNTVdPUkRbMzIrcmJwXQorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTEwCisJdnBhZGRxCXhtbTEwLHhtbTYsWE1NV09SRFs2NCtyYnBdCisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMTEKKwl2cGFkZHEJeG1tMTEseG1tNyxYTU1XT1JEWzk2K3JicF0KKwl2bW92ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW04CisJbW92CXIxNCxyYXgKKwl2bW92ZHFhCVhNTVdPUkRbODArcnNwXSx4bW05CisJbW92CXJkaSxyYngKKwl2bW92ZHFhCVhNTVdPUkRbOTYrcnNwXSx4bW0xMAorCXhvcglyZGkscmN4CisJdm1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTExCisJbW92CXIxMyxyOAorCWptcAlORUFSICRMJHhvcF8wMF80NworCitBTElHTgkxNgorJEwkeG9wXzAwXzQ3OgorCWFkZAlyYnAsMjU2CisJdnBhbGlnbnIJeG1tOCx4bW0xLHhtbTAsOAorCXJvcglyMTMsMjMKKwltb3YJcmF4LHIxNAorCXZwYWxpZ25yCXhtbTExLHhtbTUseG1tNCw4CisJbW92CXIxMixyOQorCXJvcglyMTQsNQorREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9yCXIxMyxyOAorCXhvcglyMTIscjEwCisJdnBzcmxxCXhtbTgseG1tOCw3CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyYXgKKwl2cGFkZHEJeG1tMCx4bW0wLHhtbTExCisJYW5kCXIxMixyOAorCXhvcglyMTMscjgKKwlhZGQJcjExLFFXT1JEW3JzcF0KKwltb3YJcjE1LHJheAorREIJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3IJcjEyLHIxMAorCXJvcglyMTQsNgorCXZweG9yCXhtbTgseG1tOCx4bW05CisJeG9yCXIxNSxyYngKKwlhZGQJcjExLHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcmRpLHIxNQorREIJMTQzLDEwNCwxMjAsMTk1LDIyMywzCisJeG9yCXIxNCxyYXgKKwlhZGQJcjExLHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscmJ4CisJcm9yCXIxNCwyOAorCXZwc3JscQl4bW0xMCx4bW03LDYKKwlhZGQJcmR4LHIxMQorCWFkZAlyMTEscmRpCisJdnBhZGRxCXhtbTAseG1tMCx4bW04CisJbW92CXIxMyxyZHgKKwlhZGQJcjE0LHIxMQorREIJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9yCXIxMywyMworCW1vdglyMTEscjE0CisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwltb3YJcjEyLHI4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyZHgKKwl4b3IJcjEyLHI5CisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscjExCisJYW5kCXIxMixyZHgKKwl4b3IJcjEzLHJkeAorCXZwYWRkcQl4bW0wLHhtbTAseG1tMTEKKwlhZGQJcjEwLFFXT1JEWzgrcnNwXQorCW1vdglyZGkscjExCisJeG9yCXIxMixyOQorCXJvcglyMTQsNgorCXZwYWRkcQl4bW0xMCx4bW0wLFhNTVdPUkRbKCgtMTI4KSkrcmJwXQorCXhvcglyZGkscmF4CisJYWRkCXIxMCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXIxNSxyZGkKKwl4b3IJcjE0LHIxMQorCWFkZAlyMTAscjEzCisJeG9yCXIxNSxyYXgKKwlyb3IJcjE0LDI4CisJYWRkCXJjeCxyMTAKKwlhZGQJcjEwLHIxNQorCW1vdglyMTMscmN4CisJYWRkCXIxNCxyMTAKKwl2bW92ZHFhCVhNTVdPUkRbcnNwXSx4bW0xMAorCXZwYWxpZ25yCXhtbTgseG1tMix4bW0xLDgKKwlyb3IJcjEzLDIzCisJbW92CXIxMCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW02LHhtbTUsOAorCW1vdglyMTIscmR4CisJcm9yCXIxNCw1CitEQgkxNDMsNzIsMTIwLDE5NSwyMDAsNTYKKwl4b3IJcjEzLHJjeAorCXhvcglyMTIscjgKKwl2cHNybHEJeG1tOCx4bW04LDcKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHIxMAorCXZwYWRkcQl4bW0xLHhtbTEseG1tMTEKKwlhbmQJcjEyLHJjeAorCXhvcglyMTMscmN4CisJYWRkCXI5LFFXT1JEWzE2K3JzcF0KKwltb3YJcjE1LHIxMAorREIJMTQzLDcyLDEyMCwxOTUsMjA5LDcKKwl4b3IJcjEyLHI4CisJcm9yCXIxNCw2CisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwl4b3IJcjE1LHIxMQorCWFkZAlyOSxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKK0RCCTE0MywxMDQsMTIwLDE5NSwyMTYsMworCXhvcglyMTQscjEwCisJYWRkCXI5LHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscjExCisJcm9yCXIxNCwyOAorCXZwc3JscQl4bW0xMCx4bW0wLDYKKwlhZGQJcmJ4LHI5CisJYWRkCXI5LHJkaQorCXZwYWRkcQl4bW0xLHhtbTEseG1tOAorCW1vdglyMTMscmJ4CisJYWRkCXIxNCxyOQorREIJMTQzLDcyLDEyMCwxOTUsMjAzLDQyCisJcm9yCXIxMywyMworCW1vdglyOSxyMTQKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCW1vdglyMTIscmN4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyYngKKwl4b3IJcjEyLHJkeAorCXZweG9yCXhtbTExLHhtbTExLHhtbTkKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHI5CisJYW5kCXIxMixyYngKKwl4b3IJcjEzLHJieAorCXZwYWRkcQl4bW0xLHhtbTEseG1tMTEKKwlhZGQJcjgsUVdPUkRbMjQrcnNwXQorCW1vdglyZGkscjkKKwl4b3IJcjEyLHJkeAorCXJvcglyMTQsNgorCXZwYWRkcQl4bW0xMCx4bW0xLFhNTVdPUkRbKCgtOTYpKStyYnBdCisJeG9yCXJkaSxyMTAKKwlhZGQJcjgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyOQorCWFkZAlyOCxyMTMKKwl4b3IJcjE1LHIxMAorCXJvcglyMTQsMjgKKwlhZGQJcmF4LHI4CisJYWRkCXI4LHIxNQorCW1vdglyMTMscmF4CisJYWRkCXIxNCxyOAorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW0zLHhtbTIsOAorCXJvcglyMTMsMjMKKwltb3YJcjgscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tNyx4bW02LDgKKwltb3YJcjEyLHJieAorCXJvcglyMTQsNQorREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXZwc3JscQl4bW04LHhtbTgsNworCXJvcglyMTMsNAorCXhvcglyMTQscjgKKwl2cGFkZHEJeG1tMix4bW0yLHhtbTExCisJYW5kCXIxMixyYXgKKwl4b3IJcjEzLHJheAorCWFkZAlyZHgsUVdPUkRbMzIrcnNwXQorCW1vdglyMTUscjgKK0RCCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9yCXIxMixyY3gKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscjkKKwlhZGQJcmR4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcmRpLHIxNQorREIJMTQzLDEwNCwxMjAsMTk1LDIxNywzCisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJdnB4b3IJeG1tOCx4bW04LHhtbTEwCisJeG9yCXJkaSxyOQorCXJvcglyMTQsMjgKKwl2cHNybHEJeG1tMTAseG1tMSw2CisJYWRkCXIxMSxyZHgKKwlhZGQJcmR4LHJkaQorCXZwYWRkcQl4bW0yLHhtbTIseG1tOAorCW1vdglyMTMscjExCisJYWRkCXIxNCxyZHgKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcglyMTMsMjMKKwltb3YJcmR4LHIxNAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJbW92CXIxMixyYXgKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHIxMQorCXhvcglyMTIscmJ4CisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscmR4CisJYW5kCXIxMixyMTEKKwl4b3IJcjEzLHIxMQorCXZwYWRkcQl4bW0yLHhtbTIseG1tMTEKKwlhZGQJcmN4LFFXT1JEWzQwK3JzcF0KKwltb3YJcmRpLHJkeAorCXhvcglyMTIscmJ4CisJcm9yCXIxNCw2CisJdnBhZGRxCXhtbTEwLHhtbTIsWE1NV09SRFsoKC02NCkpK3JicF0KKwl4b3IJcmRpLHI4CisJYWRkCXJjeCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXIxNSxyZGkKKwl4b3IJcjE0LHJkeAorCWFkZAlyY3gscjEzCisJeG9yCXIxNSxyOAorCXJvcglyMTQsMjgKKwlhZGQJcjEwLHJjeAorCWFkZAlyY3gscjE1CisJbW92CXIxMyxyMTAKKwlhZGQJcjE0LHJjeAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW00LHhtbTMsOAorCXJvcglyMTMsMjMKKwltb3YJcmN4LHIxNAorCXZwYWxpZ25yCXhtbTExLHhtbTAseG1tNyw4CisJbW92CXIxMixyMTEKKwlyb3IJcjE0LDUKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcglyMTMscjEwCisJeG9yCXIxMixyYXgKKwl2cHNybHEJeG1tOCx4bW04LDcKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHJjeAorCXZwYWRkcQl4bW0zLHhtbTMseG1tMTEKKwlhbmQJcjEyLHIxMAorCXhvcglyMTMscjEwCisJYWRkCXJieCxRV09SRFs0OCtyc3BdCisJbW92CXIxNSxyY3gKK0RCCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9yCXIxMixyYXgKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscmR4CisJYWRkCXJieCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKK0RCCTE0MywxMDQsMTIwLDE5NSwyMTgsMworCXhvcglyMTQscmN4CisJYWRkCXJieCxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHJkeAorCXJvcglyMTQsMjgKKwl2cHNybHEJeG1tMTAseG1tMiw2CisJYWRkCXI5LHJieAorCWFkZAlyYngscmRpCisJdnBhZGRxCXhtbTMseG1tMyx4bW04CisJbW92CXIxMyxyOQorCWFkZAlyMTQscmJ4CitEQgkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3IJcjEzLDIzCisJbW92CXJieCxyMTQKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCW1vdglyMTIscjEwCisJcm9yCXIxNCw1CisJeG9yCXIxMyxyOQorCXhvcglyMTIscjExCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscmJ4CisJYW5kCXIxMixyOQorCXhvcglyMTMscjkKKwl2cGFkZHEJeG1tMyx4bW0zLHhtbTExCisJYWRkCXJheCxRV09SRFs1Nityc3BdCisJbW92CXJkaSxyYngKKwl4b3IJcjEyLHIxMQorCXJvcglyMTQsNgorCXZwYWRkcQl4bW0xMCx4bW0zLFhNTVdPUkRbKCgtMzIpKStyYnBdCisJeG9yCXJkaSxyY3gKKwlhZGQJcmF4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscmJ4CisJYWRkCXJheCxyMTMKKwl4b3IJcjE1LHJjeAorCXJvcglyMTQsMjgKKwlhZGQJcjgscmF4CisJYWRkCXJheCxyMTUKKwltb3YJcjEzLHI4CisJYWRkCXIxNCxyYXgKKwl2bW92ZHFhCVhNTVdPUkRbNDgrcnNwXSx4bW0xMAorCXZwYWxpZ25yCXhtbTgseG1tNSx4bW00LDgKKwlyb3IJcjEzLDIzCisJbW92CXJheCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW0xLHhtbTAsOAorCW1vdglyMTIscjkKKwlyb3IJcjE0LDUKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcglyMTMscjgKKwl4b3IJcjEyLHIxMAorCXZwc3JscQl4bW04LHhtbTgsNworCXJvcglyMTMsNAorCXhvcglyMTQscmF4CisJdnBhZGRxCXhtbTQseG1tNCx4bW0xMQorCWFuZAlyMTIscjgKKwl4b3IJcjEzLHI4CisJYWRkCXIxMSxRV09SRFs2NCtyc3BdCisJbW92CXIxNSxyYXgKK0RCCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9yCXIxMixyMTAKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscmJ4CisJYWRkCXIxMSxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKK0RCCTE0MywxMDQsMTIwLDE5NSwyMTksMworCXhvcglyMTQscmF4CisJYWRkCXIxMSxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHJieAorCXJvcglyMTQsMjgKKwl2cHNybHEJeG1tMTAseG1tMyw2CisJYWRkCXJkeCxyMTEKKwlhZGQJcjExLHJkaQorCXZwYWRkcQl4bW00LHhtbTQseG1tOAorCW1vdglyMTMscmR4CisJYWRkCXIxNCxyMTEKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcglyMTMsMjMKKwltb3YJcjExLHIxNAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJbW92CXIxMixyOAorCXJvcglyMTQsNQorCXhvcglyMTMscmR4CisJeG9yCXIxMixyOQorCXZweG9yCXhtbTExLHhtbTExLHhtbTkKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHIxMQorCWFuZAlyMTIscmR4CisJeG9yCXIxMyxyZHgKKwl2cGFkZHEJeG1tNCx4bW00LHhtbTExCisJYWRkCXIxMCxRV09SRFs3Mityc3BdCisJbW92CXJkaSxyMTEKKwl4b3IJcjEyLHI5CisJcm9yCXIxNCw2CisJdnBhZGRxCXhtbTEwLHhtbTQsWE1NV09SRFtyYnBdCisJeG9yCXJkaSxyYXgKKwlhZGQJcjEwLHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl4b3IJcjE1LHJheAorCXJvcglyMTQsMjgKKwlhZGQJcmN4LHIxMAorCWFkZAlyMTAscjE1CisJbW92CXIxMyxyY3gKKwlhZGQJcjE0LHIxMAorCXZtb3ZkcWEJWE1NV09SRFs2NCtyc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW02LHhtbTUsOAorCXJvcglyMTMsMjMKKwltb3YJcjEwLHIxNAorCXZwYWxpZ25yCXhtbTExLHhtbTIseG1tMSw4CisJbW92CXIxMixyZHgKKwlyb3IJcjE0LDUKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMCw1NgorCXhvcglyMTMscmN4CisJeG9yCXIxMixyOAorCXZwc3JscQl4bW04LHhtbTgsNworCXJvcglyMTMsNAorCXhvcglyMTQscjEwCisJdnBhZGRxCXhtbTUseG1tNSx4bW0xMQorCWFuZAlyMTIscmN4CisJeG9yCXIxMyxyY3gKKwlhZGQJcjksUVdPUkRbODArcnNwXQorCW1vdglyMTUscjEwCitEQgkxNDMsNzIsMTIwLDE5NSwyMDksNworCXhvcglyMTIscjgKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscjExCisJYWRkCXI5LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcmRpLHIxNQorREIJMTQzLDEwNCwxMjAsMTk1LDIyMCwzCisJeG9yCXIxNCxyMTAKKwlhZGQJcjkscjEzCisJdnB4b3IJeG1tOCx4bW04LHhtbTEwCisJeG9yCXJkaSxyMTEKKwlyb3IJcjE0LDI4CisJdnBzcmxxCXhtbTEwLHhtbTQsNgorCWFkZAlyYngscjkKKwlhZGQJcjkscmRpCisJdnBhZGRxCXhtbTUseG1tNSx4bW04CisJbW92CXIxMyxyYngKKwlhZGQJcjE0LHI5CitEQgkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3IJcjEzLDIzCisJbW92CXI5LHIxNAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJbW92CXIxMixyY3gKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHJieAorCXhvcglyMTIscmR4CisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscjkKKwlhbmQJcjEyLHJieAorCXhvcglyMTMscmJ4CisJdnBhZGRxCXhtbTUseG1tNSx4bW0xMQorCWFkZAlyOCxRV09SRFs4OCtyc3BdCisJbW92CXJkaSxyOQorCXhvcglyMTIscmR4CisJcm9yCXIxNCw2CisJdnBhZGRxCXhtbTEwLHhtbTUsWE1NV09SRFszMityYnBdCisJeG9yCXJkaSxyMTAKKwlhZGQJcjgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyOQorCWFkZAlyOCxyMTMKKwl4b3IJcjE1LHIxMAorCXJvcglyMTQsMjgKKwlhZGQJcmF4LHI4CisJYWRkCXI4LHIxNQorCW1vdglyMTMscmF4CisJYWRkCXIxNCxyOAorCXZtb3ZkcWEJWE1NV09SRFs4MCtyc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW03LHhtbTYsOAorCXJvcglyMTMsMjMKKwltb3YJcjgscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tMyx4bW0yLDgKKwltb3YJcjEyLHJieAorCXJvcglyMTQsNQorREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXZwc3JscQl4bW04LHhtbTgsNworCXJvcglyMTMsNAorCXhvcglyMTQscjgKKwl2cGFkZHEJeG1tNix4bW02LHhtbTExCisJYW5kCXIxMixyYXgKKwl4b3IJcjEzLHJheAorCWFkZAlyZHgsUVdPUkRbOTYrcnNwXQorCW1vdglyMTUscjgKK0RCCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9yCXIxMixyY3gKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscjkKKwlhZGQJcmR4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcmRpLHIxNQorREIJMTQzLDEwNCwxMjAsMTk1LDIyMSwzCisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJdnB4b3IJeG1tOCx4bW04LHhtbTEwCisJeG9yCXJkaSxyOQorCXJvcglyMTQsMjgKKwl2cHNybHEJeG1tMTAseG1tNSw2CisJYWRkCXIxMSxyZHgKKwlhZGQJcmR4LHJkaQorCXZwYWRkcQl4bW02LHhtbTYseG1tOAorCW1vdglyMTMscjExCisJYWRkCXIxNCxyZHgKK0RCCTE0Myw3MiwxMjAsMTk1LDIwMyw0MgorCXJvcglyMTMsMjMKKwltb3YJcmR4LHIxNAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJbW92CXIxMixyYXgKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHIxMQorCXhvcglyMTIscmJ4CisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscmR4CisJYW5kCXIxMixyMTEKKwl4b3IJcjEzLHIxMQorCXZwYWRkcQl4bW02LHhtbTYseG1tMTEKKwlhZGQJcmN4LFFXT1JEWzEwNCtyc3BdCisJbW92CXJkaSxyZHgKKwl4b3IJcjEyLHJieAorCXJvcglyMTQsNgorCXZwYWRkcQl4bW0xMCx4bW02LFhNTVdPUkRbNjQrcmJwXQorCXhvcglyZGkscjgKKwlhZGQJcmN4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscmR4CisJYWRkCXJjeCxyMTMKKwl4b3IJcjE1LHI4CisJcm9yCXIxNCwyOAorCWFkZAlyMTAscmN4CisJYWRkCXJjeCxyMTUKKwltb3YJcjEzLHIxMAorCWFkZAlyMTQscmN4CisJdm1vdmRxYQlYTU1XT1JEWzk2K3JzcF0seG1tMTAKKwl2cGFsaWducgl4bW04LHhtbTAseG1tNyw4CisJcm9yCXIxMywyMworCW1vdglyY3gscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tNCx4bW0zLDgKKwltb3YJcjEyLHIxMQorCXJvcglyMTQsNQorREIJMTQzLDcyLDEyMCwxOTUsMjAwLDU2CisJeG9yCXIxMyxyMTAKKwl4b3IJcjEyLHJheAorCXZwc3JscQl4bW04LHhtbTgsNworCXJvcglyMTMsNAorCXhvcglyMTQscmN4CisJdnBhZGRxCXhtbTcseG1tNyx4bW0xMQorCWFuZAlyMTIscjEwCisJeG9yCXIxMyxyMTAKKwlhZGQJcmJ4LFFXT1JEWzExMityc3BdCisJbW92CXIxNSxyY3gKK0RCCTE0Myw3MiwxMjAsMTk1LDIwOSw3CisJeG9yCXIxMixyYXgKKwlyb3IJcjE0LDYKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXhvcglyMTUscmR4CisJYWRkCXJieCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKK0RCCTE0MywxMDQsMTIwLDE5NSwyMjIsMworCXhvcglyMTQscmN4CisJYWRkCXJieCxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHJkeAorCXJvcglyMTQsMjgKKwl2cHNybHEJeG1tMTAseG1tNiw2CisJYWRkCXI5LHJieAorCWFkZAlyYngscmRpCisJdnBhZGRxCXhtbTcseG1tNyx4bW04CisJbW92CXIxMyxyOQorCWFkZAlyMTQscmJ4CitEQgkxNDMsNzIsMTIwLDE5NSwyMDMsNDIKKwlyb3IJcjEzLDIzCisJbW92CXJieCxyMTQKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCW1vdglyMTIscjEwCisJcm9yCXIxNCw1CisJeG9yCXIxMyxyOQorCXhvcglyMTIscjExCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXJvcglyMTMsNAorCXhvcglyMTQscmJ4CisJYW5kCXIxMixyOQorCXhvcglyMTMscjkKKwl2cGFkZHEJeG1tNyx4bW03LHhtbTExCisJYWRkCXJheCxRV09SRFsxMjArcnNwXQorCW1vdglyZGkscmJ4CisJeG9yCXIxMixyMTEKKwlyb3IJcjE0LDYKKwl2cGFkZHEJeG1tMTAseG1tNyxYTU1XT1JEWzk2K3JicF0KKwl4b3IJcmRpLHJjeAorCWFkZAlyYXgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXhvcglyMTUscmN4CisJcm9yCXIxNCwyOAorCWFkZAlyOCxyYXgKKwlhZGQJcmF4LHIxNQorCW1vdglyMTMscjgKKwlhZGQJcjE0LHJheAorCXZtb3ZkcWEJWE1NV09SRFsxMTIrcnNwXSx4bW0xMAorCWNtcAlCWVRFWzEzNStyYnBdLDAKKwlqbmUJTkVBUiAkTCR4b3BfMDBfNDcKKwlyb3IJcjEzLDIzCisJbW92CXJheCxyMTQKKwltb3YJcjEyLHI5CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyOAorCXhvcglyMTIscjEwCisJcm9yCXIxMyw0CisJeG9yCXIxNCxyYXgKKwlhbmQJcjEyLHI4CisJeG9yCXIxMyxyOAorCWFkZAlyMTEsUVdPUkRbcnNwXQorCW1vdglyMTUscmF4CisJeG9yCXIxMixyMTAKKwlyb3IJcjE0LDYKKwl4b3IJcjE1LHJieAorCWFkZAlyMTEscjEyCisJcm9yCXIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyYXgKKwlhZGQJcjExLHIxMworCXhvcglyZGkscmJ4CisJcm9yCXIxNCwyOAorCWFkZAlyZHgscjExCisJYWRkCXIxMSxyZGkKKwltb3YJcjEzLHJkeAorCWFkZAlyMTQscjExCisJcm9yCXIxMywyMworCW1vdglyMTEscjE0CisJbW92CXIxMixyOAorCXJvcglyMTQsNQorCXhvcglyMTMscmR4CisJeG9yCXIxMixyOQorCXJvcglyMTMsNAorCXhvcglyMTQscjExCisJYW5kCXIxMixyZHgKKwl4b3IJcjEzLHJkeAorCWFkZAlyMTAsUVdPUkRbOCtyc3BdCisJbW92CXJkaSxyMTEKKwl4b3IJcjEyLHI5CisJcm9yCXIxNCw2CisJeG9yCXJkaSxyYXgKKwlhZGQJcjEwLHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl4b3IJcjE1LHJheAorCXJvcglyMTQsMjgKKwlhZGQJcmN4LHIxMAorCWFkZAlyMTAscjE1CisJbW92CXIxMyxyY3gKKwlhZGQJcjE0LHIxMAorCXJvcglyMTMsMjMKKwltb3YJcjEwLHIxNAorCW1vdglyMTIscmR4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyMTAKKwlhbmQJcjEyLHJjeAorCXhvcglyMTMscmN4CisJYWRkCXI5LFFXT1JEWzE2K3JzcF0KKwltb3YJcjE1LHIxMAorCXhvcglyMTIscjgKKwlyb3IJcjE0LDYKKwl4b3IJcjE1LHIxMQorCWFkZAlyOSxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHIxMAorCWFkZAlyOSxyMTMKKwl4b3IJcmRpLHIxMQorCXJvcglyMTQsMjgKKwlhZGQJcmJ4LHI5CisJYWRkCXI5LHJkaQorCW1vdglyMTMscmJ4CisJYWRkCXIxNCxyOQorCXJvcglyMTMsMjMKKwltb3YJcjkscjE0CisJbW92CXIxMixyY3gKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHJieAorCXhvcglyMTIscmR4CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyOQorCWFuZAlyMTIscmJ4CisJeG9yCXIxMyxyYngKKwlhZGQJcjgsUVdPUkRbMjQrcnNwXQorCW1vdglyZGkscjkKKwl4b3IJcjEyLHJkeAorCXJvcglyMTQsNgorCXhvcglyZGkscjEwCisJYWRkCXI4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJeG9yCXIxNSxyMTAKKwlyb3IJcjE0LDI4CisJYWRkCXJheCxyOAorCWFkZAlyOCxyMTUKKwltb3YJcjEzLHJheAorCWFkZAlyMTQscjgKKwlyb3IJcjEzLDIzCisJbW92CXI4LHIxNAorCW1vdglyMTIscmJ4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXJvcglyMTMsNAorCXhvcglyMTQscjgKKwlhbmQJcjEyLHJheAorCXhvcglyMTMscmF4CisJYWRkCXJkeCxRV09SRFszMityc3BdCisJbW92CXIxNSxyOAorCXhvcglyMTIscmN4CisJcm9yCXIxNCw2CisJeG9yCXIxNSxyOQorCWFkZAlyZHgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJeG9yCXJkaSxyOQorCXJvcglyMTQsMjgKKwlhZGQJcjExLHJkeAorCWFkZAlyZHgscmRpCisJbW92CXIxMyxyMTEKKwlhZGQJcjE0LHJkeAorCXJvcglyMTMsMjMKKwltb3YJcmR4LHIxNAorCW1vdglyMTIscmF4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyMTEKKwl4b3IJcjEyLHJieAorCXJvcglyMTMsNAorCXhvcglyMTQscmR4CisJYW5kCXIxMixyMTEKKwl4b3IJcjEzLHIxMQorCWFkZAlyY3gsUVdPUkRbNDArcnNwXQorCW1vdglyZGkscmR4CisJeG9yCXIxMixyYngKKwlyb3IJcjE0LDYKKwl4b3IJcmRpLHI4CisJYWRkCXJjeCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXIxNSxyZGkKKwl4b3IJcjE0LHJkeAorCWFkZAlyY3gscjEzCisJeG9yCXIxNSxyOAorCXJvcglyMTQsMjgKKwlhZGQJcjEwLHJjeAorCWFkZAlyY3gscjE1CisJbW92CXIxMyxyMTAKKwlhZGQJcjE0LHJjeAorCXJvcglyMTMsMjMKKwltb3YJcmN4LHIxNAorCW1vdglyMTIscjExCisJcm9yCXIxNCw1CisJeG9yCXIxMyxyMTAKKwl4b3IJcjEyLHJheAorCXJvcglyMTMsNAorCXhvcglyMTQscmN4CisJYW5kCXIxMixyMTAKKwl4b3IJcjEzLHIxMAorCWFkZAlyYngsUVdPUkRbNDgrcnNwXQorCW1vdglyMTUscmN4CisJeG9yCXIxMixyYXgKKwlyb3IJcjE0LDYKKwl4b3IJcjE1LHJkeAorCWFkZAlyYngscjEyCisJcm9yCXIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyY3gKKwlhZGQJcmJ4LHIxMworCXhvcglyZGkscmR4CisJcm9yCXIxNCwyOAorCWFkZAlyOSxyYngKKwlhZGQJcmJ4LHJkaQorCW1vdglyMTMscjkKKwlhZGQJcjE0LHJieAorCXJvcglyMTMsMjMKKwltb3YJcmJ4LHIxNAorCW1vdglyMTIscjEwCisJcm9yCXIxNCw1CisJeG9yCXIxMyxyOQorCXhvcglyMTIscjExCisJcm9yCXIxMyw0CisJeG9yCXIxNCxyYngKKwlhbmQJcjEyLHI5CisJeG9yCXIxMyxyOQorCWFkZAlyYXgsUVdPUkRbNTYrcnNwXQorCW1vdglyZGkscmJ4CisJeG9yCXIxMixyMTEKKwlyb3IJcjE0LDYKKwl4b3IJcmRpLHJjeAorCWFkZAlyYXgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXhvcglyMTUscmN4CisJcm9yCXIxNCwyOAorCWFkZAlyOCxyYXgKKwlhZGQJcmF4LHIxNQorCW1vdglyMTMscjgKKwlhZGQJcjE0LHJheAorCXJvcglyMTMsMjMKKwltb3YJcmF4LHIxNAorCW1vdglyMTIscjkKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHI4CisJeG9yCXIxMixyMTAKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHJheAorCWFuZAlyMTIscjgKKwl4b3IJcjEzLHI4CisJYWRkCXIxMSxRV09SRFs2NCtyc3BdCisJbW92CXIxNSxyYXgKKwl4b3IJcjEyLHIxMAorCXJvcglyMTQsNgorCXhvcglyMTUscmJ4CisJYWRkCXIxMSxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHJheAorCWFkZAlyMTEscjEzCisJeG9yCXJkaSxyYngKKwlyb3IJcjE0LDI4CisJYWRkCXJkeCxyMTEKKwlhZGQJcjExLHJkaQorCW1vdglyMTMscmR4CisJYWRkCXIxNCxyMTEKKwlyb3IJcjEzLDIzCisJbW92CXIxMSxyMTQKKwltb3YJcjEyLHI4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyZHgKKwl4b3IJcjEyLHI5CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyMTEKKwlhbmQJcjEyLHJkeAorCXhvcglyMTMscmR4CisJYWRkCXIxMCxRV09SRFs3Mityc3BdCisJbW92CXJkaSxyMTEKKwl4b3IJcjEyLHI5CisJcm9yCXIxNCw2CisJeG9yCXJkaSxyYXgKKwlhZGQJcjEwLHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl4b3IJcjE1LHJheAorCXJvcglyMTQsMjgKKwlhZGQJcmN4LHIxMAorCWFkZAlyMTAscjE1CisJbW92CXIxMyxyY3gKKwlhZGQJcjE0LHIxMAorCXJvcglyMTMsMjMKKwltb3YJcjEwLHIxNAorCW1vdglyMTIscmR4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyMTAKKwlhbmQJcjEyLHJjeAorCXhvcglyMTMscmN4CisJYWRkCXI5LFFXT1JEWzgwK3JzcF0KKwltb3YJcjE1LHIxMAorCXhvcglyMTIscjgKKwlyb3IJcjE0LDYKKwl4b3IJcjE1LHIxMQorCWFkZAlyOSxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHIxMAorCWFkZAlyOSxyMTMKKwl4b3IJcmRpLHIxMQorCXJvcglyMTQsMjgKKwlhZGQJcmJ4LHI5CisJYWRkCXI5LHJkaQorCW1vdglyMTMscmJ4CisJYWRkCXIxNCxyOQorCXJvcglyMTMsMjMKKwltb3YJcjkscjE0CisJbW92CXIxMixyY3gKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHJieAorCXhvcglyMTIscmR4CisJcm9yCXIxMyw0CisJeG9yCXIxNCxyOQorCWFuZAlyMTIscmJ4CisJeG9yCXIxMyxyYngKKwlhZGQJcjgsUVdPUkRbODgrcnNwXQorCW1vdglyZGkscjkKKwl4b3IJcjEyLHJkeAorCXJvcglyMTQsNgorCXhvcglyZGkscjEwCisJYWRkCXI4LHIxMgorCXJvcglyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJeG9yCXIxNSxyMTAKKwlyb3IJcjE0LDI4CisJYWRkCXJheCxyOAorCWFkZAlyOCxyMTUKKwltb3YJcjEzLHJheAorCWFkZAlyMTQscjgKKwlyb3IJcjEzLDIzCisJbW92CXI4LHIxNAorCW1vdglyMTIscmJ4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXJvcglyMTMsNAorCXhvcglyMTQscjgKKwlhbmQJcjEyLHJheAorCXhvcglyMTMscmF4CisJYWRkCXJkeCxRV09SRFs5Nityc3BdCisJbW92CXIxNSxyOAorCXhvcglyMTIscmN4CisJcm9yCXIxNCw2CisJeG9yCXIxNSxyOQorCWFkZAlyZHgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJeG9yCXJkaSxyOQorCXJvcglyMTQsMjgKKwlhZGQJcjExLHJkeAorCWFkZAlyZHgscmRpCisJbW92CXIxMyxyMTEKKwlhZGQJcjE0LHJkeAorCXJvcglyMTMsMjMKKwltb3YJcmR4LHIxNAorCW1vdglyMTIscmF4CisJcm9yCXIxNCw1CisJeG9yCXIxMyxyMTEKKwl4b3IJcjEyLHJieAorCXJvcglyMTMsNAorCXhvcglyMTQscmR4CisJYW5kCXIxMixyMTEKKwl4b3IJcjEzLHIxMQorCWFkZAlyY3gsUVdPUkRbMTA0K3JzcF0KKwltb3YJcmRpLHJkeAorCXhvcglyMTIscmJ4CisJcm9yCXIxNCw2CisJeG9yCXJkaSxyOAorCWFkZAlyY3gscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyZHgKKwlhZGQJcmN4LHIxMworCXhvcglyMTUscjgKKwlyb3IJcjE0LDI4CisJYWRkCXIxMCxyY3gKKwlhZGQJcmN4LHIxNQorCW1vdglyMTMscjEwCisJYWRkCXIxNCxyY3gKKwlyb3IJcjEzLDIzCisJbW92CXJjeCxyMTQKKwltb3YJcjEyLHIxMQorCXJvcglyMTQsNQorCXhvcglyMTMscjEwCisJeG9yCXIxMixyYXgKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHJjeAorCWFuZAlyMTIscjEwCisJeG9yCXIxMyxyMTAKKwlhZGQJcmJ4LFFXT1JEWzExMityc3BdCisJbW92CXIxNSxyY3gKKwl4b3IJcjEyLHJheAorCXJvcglyMTQsNgorCXhvcglyMTUscmR4CisJYWRkCXJieCxyMTIKKwlyb3IJcjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHJjeAorCWFkZAlyYngscjEzCisJeG9yCXJkaSxyZHgKKwlyb3IJcjE0LDI4CisJYWRkCXI5LHJieAorCWFkZAlyYngscmRpCisJbW92CXIxMyxyOQorCWFkZAlyMTQscmJ4CisJcm9yCXIxMywyMworCW1vdglyYngscjE0CisJbW92CXIxMixyMTAKKwlyb3IJcjE0LDUKKwl4b3IJcjEzLHI5CisJeG9yCXIxMixyMTEKKwlyb3IJcjEzLDQKKwl4b3IJcjE0LHJieAorCWFuZAlyMTIscjkKKwl4b3IJcjEzLHI5CisJYWRkCXJheCxRV09SRFsxMjArcnNwXQorCW1vdglyZGkscmJ4CisJeG9yCXIxMixyMTEKKwlyb3IJcjE0LDYKKwl4b3IJcmRpLHJjeAorCWFkZAlyYXgscjEyCisJcm9yCXIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXhvcglyMTUscmN4CisJcm9yCXIxNCwyOAorCWFkZAlyOCxyYXgKKwlhZGQJcmF4LHIxNQorCW1vdglyMTMscjgKKwlhZGQJcjE0LHJheAorCW1vdglyZGksUVdPUkRbKCgxMjgrMCkpK3JzcF0KKwltb3YJcmF4LHIxNAorCisJYWRkCXJheCxRV09SRFtyZGldCisJbGVhCXJzaSxbMTI4K3JzaV0KKwlhZGQJcmJ4LFFXT1JEWzgrcmRpXQorCWFkZAlyY3gsUVdPUkRbMTYrcmRpXQorCWFkZAlyZHgsUVdPUkRbMjQrcmRpXQorCWFkZAlyOCxRV09SRFszMityZGldCisJYWRkCXI5LFFXT1JEWzQwK3JkaV0KKwlhZGQJcjEwLFFXT1JEWzQ4K3JkaV0KKwlhZGQJcjExLFFXT1JEWzU2K3JkaV0KKworCWNtcAlyc2ksUVdPUkRbKCgxMjgrMTYpKStyc3BdCisKKwltb3YJUVdPUkRbcmRpXSxyYXgKKwltb3YJUVdPUkRbOCtyZGldLHJieAorCW1vdglRV09SRFsxNityZGldLHJjeAorCW1vdglRV09SRFsyNCtyZGldLHJkeAorCW1vdglRV09SRFszMityZGldLHI4CisJbW92CVFXT1JEWzQwK3JkaV0scjkKKwltb3YJUVdPUkRbNDgrcmRpXSxyMTAKKwltb3YJUVdPUkRbNTYrcmRpXSxyMTEKKwlqYglORUFSICRMJGxvb3BfeG9wCisKKwltb3YJcnNpLFFXT1JEWygoMTI4KzI0KSkrcnNwXQorCXZ6ZXJvdXBwZXIKKwltb3ZhcHMJeG1tNixYTU1XT1JEWygoMTI4KzMyKSkrcnNwXQorCW1vdmFwcwl4bW03LFhNTVdPUkRbKCgxMjgrNDgpKStyc3BdCisJbW92YXBzCXhtbTgsWE1NV09SRFsoKDEyOCs2NCkpK3JzcF0KKwltb3ZhcHMJeG1tOSxYTU1XT1JEWygoMTI4KzgwKSkrcnNwXQorCW1vdmFwcwl4bW0xMCxYTU1XT1JEWygoMTI4Kzk2KSkrcnNwXQorCW1vdmFwcwl4bW0xMSxYTU1XT1JEWygoMTI4KzExMikpK3JzcF0KKwltb3YJcjE1LFFXT1JEW3JzaV0KKwltb3YJcjE0LFFXT1JEWzgrcnNpXQorCW1vdglyMTMsUVdPUkRbMTYrcnNpXQorCW1vdglyMTIsUVdPUkRbMjQrcnNpXQorCW1vdglyYnAsUVdPUkRbMzIrcnNpXQorCW1vdglyYngsUVdPUkRbNDArcnNpXQorCWxlYQlyc3AsWzQ4K3JzaV0KKyRMJGVwaWxvZ3VlX3hvcDoKKwltb3YJcmRpLFFXT1JEWzgrcnNwXQk7V0lONjQgZXBpbG9ndWUKKwltb3YJcnNpLFFXT1JEWzE2K3JzcF0KKwlEQgkwRjNoLDBDM2gJCTtyZXByZXQKKyRMJFNFSF9lbmRfc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfeG9wOgorCitBTElHTgk2NAorc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorCW1vdglRV09SRFs4K3JzcF0scmRpCTtXSU42NCBwcm9sb2d1ZQorCW1vdglRV09SRFsxNityc3BdLHJzaQorCW1vdglyYXgscnNwCiskTCRTRUhfYmVnaW5fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorCW1vdglyZGkscmN4CisJbW92CXJzaSxyZHgKKwltb3YJcmR4LHI4CisKKworJEwkYXZ4X3Nob3J0Y3V0OgorCXB1c2gJcmJ4CisJcHVzaAlyYnAKKwlwdXNoCXIxMgorCXB1c2gJcjEzCisJcHVzaAlyMTQKKwlwdXNoCXIxNQorCW1vdglyMTEscnNwCisJc2hsCXJkeCw0CisJc3ViCXJzcCwyNTYKKwlsZWEJcmR4LFtyZHgqOCtyc2ldCisJYW5kCXJzcCwtNjQKKwltb3YJUVdPUkRbKCgxMjgrMCkpK3JzcF0scmRpCisJbW92CVFXT1JEWygoMTI4KzgpKStyc3BdLHJzaQorCW1vdglRV09SRFsoKDEyOCsxNikpK3JzcF0scmR4CisJbW92CVFXT1JEWygoMTI4KzI0KSkrcnNwXSxyMTEKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzMyKStyc3BdLHhtbTYKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzQ4KStyc3BdLHhtbTcKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzY0KStyc3BdLHhtbTgKKwltb3ZhcHMJWE1NV09SRFsoMTI4KzgwKStyc3BdLHhtbTkKKwltb3ZhcHMJWE1NV09SRFsoMTI4Kzk2KStyc3BdLHhtbTEwCisJbW92YXBzCVhNTVdPUkRbKDEyOCsxMTIpK3JzcF0seG1tMTEKKyRMJHByb2xvZ3VlX2F2eDoKKworCXZ6ZXJvdXBwZXIKKwltb3YJcmF4LFFXT1JEW3JkaV0KKwltb3YJcmJ4LFFXT1JEWzgrcmRpXQorCW1vdglyY3gsUVdPUkRbMTYrcmRpXQorCW1vdglyZHgsUVdPUkRbMjQrcmRpXQorCW1vdglyOCxRV09SRFszMityZGldCisJbW92CXI5LFFXT1JEWzQwK3JkaV0KKwltb3YJcjEwLFFXT1JEWzQ4K3JkaV0KKwltb3YJcjExLFFXT1JEWzU2K3JkaV0KKwlqbXAJTkVBUiAkTCRsb29wX2F2eAorQUxJR04JMTYKKyRMJGxvb3BfYXZ4OgorCXZtb3ZkcWEJeG1tMTEsWE1NV09SRFsoKEs1MTIrMTI4MCkpXQorCXZtb3ZkcXUJeG1tMCxYTU1XT1JEW3JzaV0KKwlsZWEJcmJwLFsoKEs1MTIrMTI4KSldCisJdm1vdmRxdQl4bW0xLFhNTVdPUkRbMTYrcnNpXQorCXZtb3ZkcXUJeG1tMixYTU1XT1JEWzMyK3JzaV0KKwl2cHNodWZiCXhtbTAseG1tMCx4bW0xMQorCXZtb3ZkcXUJeG1tMyxYTU1XT1JEWzQ4K3JzaV0KKwl2cHNodWZiCXhtbTEseG1tMSx4bW0xMQorCXZtb3ZkcXUJeG1tNCxYTU1XT1JEWzY0K3JzaV0KKwl2cHNodWZiCXhtbTIseG1tMix4bW0xMQorCXZtb3ZkcXUJeG1tNSxYTU1XT1JEWzgwK3JzaV0KKwl2cHNodWZiCXhtbTMseG1tMyx4bW0xMQorCXZtb3ZkcXUJeG1tNixYTU1XT1JEWzk2K3JzaV0KKwl2cHNodWZiCXhtbTQseG1tNCx4bW0xMQorCXZtb3ZkcXUJeG1tNyxYTU1XT1JEWzExMityc2ldCisJdnBzaHVmYgl4bW01LHhtbTUseG1tMTEKKwl2cGFkZHEJeG1tOCx4bW0wLFhNTVdPUkRbKCgtMTI4KSkrcmJwXQorCXZwc2h1ZmIJeG1tNix4bW02LHhtbTExCisJdnBhZGRxCXhtbTkseG1tMSxYTU1XT1JEWygoLTk2KSkrcmJwXQorCXZwc2h1ZmIJeG1tNyx4bW03LHhtbTExCisJdnBhZGRxCXhtbTEwLHhtbTIsWE1NV09SRFsoKC02NCkpK3JicF0KKwl2cGFkZHEJeG1tMTEseG1tMyxYTU1XT1JEWygoLTMyKSkrcmJwXQorCXZtb3ZkcWEJWE1NV09SRFtyc3BdLHhtbTgKKwl2cGFkZHEJeG1tOCx4bW00LFhNTVdPUkRbcmJwXQorCXZtb3ZkcWEJWE1NV09SRFsxNityc3BdLHhtbTkKKwl2cGFkZHEJeG1tOSx4bW01LFhNTVdPUkRbMzIrcmJwXQorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTEwCisJdnBhZGRxCXhtbTEwLHhtbTYsWE1NV09SRFs2NCtyYnBdCisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMTEKKwl2cGFkZHEJeG1tMTEseG1tNyxYTU1XT1JEWzk2K3JicF0KKwl2bW92ZHFhCVhNTVdPUkRbNjQrcnNwXSx4bW04CisJbW92CXIxNCxyYXgKKwl2bW92ZHFhCVhNTVdPUkRbODArcnNwXSx4bW05CisJbW92CXJkaSxyYngKKwl2bW92ZHFhCVhNTVdPUkRbOTYrcnNwXSx4bW0xMAorCXhvcglyZGkscmN4CisJdm1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTExCisJbW92CXIxMyxyOAorCWptcAlORUFSICRMJGF2eF8wMF80NworCitBTElHTgkxNgorJEwkYXZ4XzAwXzQ3OgorCWFkZAlyYnAsMjU2CisJdnBhbGlnbnIJeG1tOCx4bW0xLHhtbTAsOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyYXgscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tNSx4bW00LDgKKwltb3YJcjEyLHI5CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tMTAseG1tOCwxCisJeG9yCXIxMyxyOAorCXhvcglyMTIscjEwCisJdnBhZGRxCXhtbTAseG1tMCx4bW0xMQorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyYXgKKwl2cHNybHEJeG1tMTEseG1tOCw3CisJYW5kCXIxMixyOAorCXhvcglyMTMscjgKKwl2cHNsbHEJeG1tOSx4bW04LDU2CisJYWRkCXIxMSxRV09SRFtyc3BdCisJbW92CXIxNSxyYXgKKwl2cHhvcgl4bW04LHhtbTExLHhtbTEwCisJeG9yCXIxMixyMTAKKwlzaHJkCXIxNCxyMTQsNgorCXZwc3JscQl4bW0xMCx4bW0xMCw3CisJeG9yCXIxNSxyYngKKwlhZGQJcjExLHIxMgorCXZweG9yCXhtbTgseG1tOCx4bW05CisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl2cHNsbHEJeG1tOSx4bW05LDcKKwl4b3IJcjE0LHJheAorCWFkZAlyMTEscjEzCisJdnB4b3IJeG1tOCx4bW04LHhtbTEwCisJeG9yCXJkaSxyYngKKwlzaHJkCXIxNCxyMTQsMjgKKwl2cHNybHEJeG1tMTEseG1tNyw2CisJYWRkCXJkeCxyMTEKKwlhZGQJcjExLHJkaQorCXZweG9yCXhtbTgseG1tOCx4bW05CisJbW92CXIxMyxyZHgKKwlhZGQJcjE0LHIxMQorCXZwc2xscQl4bW0xMCx4bW03LDMKKwlzaHJkCXIxMyxyMTMsMjMKKwltb3YJcjExLHIxNAorCXZwYWRkcQl4bW0wLHhtbTAseG1tOAorCW1vdglyMTIscjgKKwlzaHJkCXIxNCxyMTQsNQorCXZwc3JscQl4bW05LHhtbTcsMTkKKwl4b3IJcjEzLHJkeAorCXhvcglyMTIscjkKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyMTEKKwl2cHNsbHEJeG1tMTAseG1tMTAsNDIKKwlhbmQJcjEyLHJkeAorCXhvcglyMTMscmR4CisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCWFkZAlyMTAsUVdPUkRbOCtyc3BdCisJbW92CXJkaSxyMTEKKwl2cHNybHEJeG1tOSx4bW05LDQyCisJeG9yCXIxMixyOQorCXNocmQJcjE0LHIxNCw2CisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwl4b3IJcmRpLHJheAorCWFkZAlyMTAscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTAseG1tMCx4bW0xMQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl2cGFkZHEJeG1tMTAseG1tMCxYTU1XT1JEWygoLTEyOCkpK3JicF0KKwl4b3IJcjE1LHJheAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyY3gscjEwCisJYWRkCXIxMCxyMTUKKwltb3YJcjEzLHJjeAorCWFkZAlyMTQscjEwCisJdm1vdmRxYQlYTU1XT1JEW3JzcF0seG1tMTAKKwl2cGFsaWducgl4bW04LHhtbTIseG1tMSw4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXIxMCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW02LHhtbTUsOAorCW1vdglyMTIscmR4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tMTAseG1tOCwxCisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJdnBhZGRxCXhtbTEseG1tMSx4bW0xMQorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyMTAKKwl2cHNybHEJeG1tMTEseG1tOCw3CisJYW5kCXIxMixyY3gKKwl4b3IJcjEzLHJjeAorCXZwc2xscQl4bW05LHhtbTgsNTYKKwlhZGQJcjksUVdPUkRbMTYrcnNwXQorCW1vdglyMTUscjEwCisJdnB4b3IJeG1tOCx4bW0xMSx4bW0xMAorCXhvcglyMTIscjgKKwlzaHJkCXIxNCxyMTQsNgorCXZwc3JscQl4bW0xMCx4bW0xMCw3CisJeG9yCXIxNSxyMTEKKwlhZGQJcjkscjEyCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcmRpLHIxNQorCXZwc2xscQl4bW05LHhtbTksNworCXhvcglyMTQscjEwCisJYWRkCXI5LHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscjExCisJc2hyZAlyMTQscjE0LDI4CisJdnBzcmxxCXhtbTExLHhtbTAsNgorCWFkZAlyYngscjkKKwlhZGQJcjkscmRpCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwltb3YJcjEzLHJieAorCWFkZAlyMTQscjkKKwl2cHNsbHEJeG1tMTAseG1tMCwzCisJc2hyZAlyMTMscjEzLDIzCisJbW92CXI5LHIxNAorCXZwYWRkcQl4bW0xLHhtbTEseG1tOAorCW1vdglyMTIscmN4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tOSx4bW0wLDE5CisJeG9yCXIxMyxyYngKKwl4b3IJcjEyLHJkeAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHI5CisJdnBzbGxxCXhtbTEwLHhtbTEwLDQyCisJYW5kCXIxMixyYngKKwl4b3IJcjEzLHJieAorCXZweG9yCXhtbTExLHhtbTExLHhtbTkKKwlhZGQJcjgsUVdPUkRbMjQrcnNwXQorCW1vdglyZGkscjkKKwl2cHNybHEJeG1tOSx4bW05LDQyCisJeG9yCXIxMixyZHgKKwlzaHJkCXIxNCxyMTQsNgorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJeG9yCXJkaSxyMTAKKwlhZGQJcjgscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTEseG1tMSx4bW0xMQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJdnBhZGRxCXhtbTEwLHhtbTEsWE1NV09SRFsoKC05NikpK3JicF0KKwl4b3IJcjE1LHIxMAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyYXgscjgKKwlhZGQJcjgscjE1CisJbW92CXIxMyxyYXgKKwlhZGQJcjE0LHI4CisJdm1vdmRxYQlYTU1XT1JEWzE2K3JzcF0seG1tMTAKKwl2cGFsaWducgl4bW04LHhtbTMseG1tMiw4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXI4LHIxNAorCXZwYWxpZ25yCXhtbTExLHhtbTcseG1tNiw4CisJbW92CXIxMixyYngKKwlzaHJkCXIxNCxyMTQsNQorCXZwc3JscQl4bW0xMCx4bW04LDEKKwl4b3IJcjEzLHJheAorCXhvcglyMTIscmN4CisJdnBhZGRxCXhtbTIseG1tMix4bW0xMQorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyOAorCXZwc3JscQl4bW0xMSx4bW04LDcKKwlhbmQJcjEyLHJheAorCXhvcglyMTMscmF4CisJdnBzbGxxCXhtbTkseG1tOCw1NgorCWFkZAlyZHgsUVdPUkRbMzIrcnNwXQorCW1vdglyMTUscjgKKwl2cHhvcgl4bW04LHhtbTExLHhtbTEwCisJeG9yCXIxMixyY3gKKwlzaHJkCXIxNCxyMTQsNgorCXZwc3JscQl4bW0xMCx4bW0xMCw3CisJeG9yCXIxNSxyOQorCWFkZAlyZHgscjEyCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcmRpLHIxNQorCXZwc2xscQl4bW05LHhtbTksNworCXhvcglyMTQscjgKKwlhZGQJcmR4LHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscjkKKwlzaHJkCXIxNCxyMTQsMjgKKwl2cHNybHEJeG1tMTEseG1tMSw2CisJYWRkCXIxMSxyZHgKKwlhZGQJcmR4LHJkaQorCXZweG9yCXhtbTgseG1tOCx4bW05CisJbW92CXIxMyxyMTEKKwlhZGQJcjE0LHJkeAorCXZwc2xscQl4bW0xMCx4bW0xLDMKKwlzaHJkCXIxMyxyMTMsMjMKKwltb3YJcmR4LHIxNAorCXZwYWRkcQl4bW0yLHhtbTIseG1tOAorCW1vdglyMTIscmF4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tOSx4bW0xLDE5CisJeG9yCXIxMyxyMTEKKwl4b3IJcjEyLHJieAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJkeAorCXZwc2xscQl4bW0xMCx4bW0xMCw0MgorCWFuZAlyMTIscjExCisJeG9yCXIxMyxyMTEKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW05CisJYWRkCXJjeCxRV09SRFs0MCtyc3BdCisJbW92CXJkaSxyZHgKKwl2cHNybHEJeG1tOSx4bW05LDQyCisJeG9yCXIxMixyYngKKwlzaHJkCXIxNCxyMTQsNgorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJeG9yCXJkaSxyOAorCWFkZAlyY3gscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTIseG1tMix4bW0xMQorCXhvcglyMTQscmR4CisJYWRkCXJjeCxyMTMKKwl2cGFkZHEJeG1tMTAseG1tMixYTU1XT1JEWygoLTY0KSkrcmJwXQorCXhvcglyMTUscjgKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcjEwLHJjeAorCWFkZAlyY3gscjE1CisJbW92CXIxMyxyMTAKKwlhZGQJcjE0LHJjeAorCXZtb3ZkcWEJWE1NV09SRFszMityc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW00LHhtbTMsOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyY3gscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tMCx4bW03LDgKKwltb3YJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw1CisJdnBzcmxxCXhtbTEwLHhtbTgsMQorCXhvcglyMTMscjEwCisJeG9yCXIxMixyYXgKKwl2cGFkZHEJeG1tMyx4bW0zLHhtbTExCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJjeAorCXZwc3JscQl4bW0xMSx4bW04LDcKKwlhbmQJcjEyLHIxMAorCXhvcglyMTMscjEwCisJdnBzbGxxCXhtbTkseG1tOCw1NgorCWFkZAlyYngsUVdPUkRbNDgrcnNwXQorCW1vdglyMTUscmN4CisJdnB4b3IJeG1tOCx4bW0xMSx4bW0xMAorCXhvcglyMTIscmF4CisJc2hyZAlyMTQscjE0LDYKKwl2cHNybHEJeG1tMTAseG1tMTAsNworCXhvcglyMTUscmR4CisJYWRkCXJieCxyMTIKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyZGkscjE1CisJdnBzbGxxCXhtbTkseG1tOSw3CisJeG9yCXIxNCxyY3gKKwlhZGQJcmJ4LHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscmR4CisJc2hyZAlyMTQscjE0LDI4CisJdnBzcmxxCXhtbTExLHhtbTIsNgorCWFkZAlyOSxyYngKKwlhZGQJcmJ4LHJkaQorCXZweG9yCXhtbTgseG1tOCx4bW05CisJbW92CXIxMyxyOQorCWFkZAlyMTQscmJ4CisJdnBzbGxxCXhtbTEwLHhtbTIsMworCXNocmQJcjEzLHIxMywyMworCW1vdglyYngscjE0CisJdnBhZGRxCXhtbTMseG1tMyx4bW04CisJbW92CXIxMixyMTAKKwlzaHJkCXIxNCxyMTQsNQorCXZwc3JscQl4bW05LHhtbTIsMTkKKwl4b3IJcjEzLHI5CisJeG9yCXIxMixyMTEKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyYngKKwl2cHNsbHEJeG1tMTAseG1tMTAsNDIKKwlhbmQJcjEyLHI5CisJeG9yCXIxMyxyOQorCXZweG9yCXhtbTExLHhtbTExLHhtbTkKKwlhZGQJcmF4LFFXT1JEWzU2K3JzcF0KKwltb3YJcmRpLHJieAorCXZwc3JscQl4bW05LHhtbTksNDIKKwl4b3IJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw2CisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwl4b3IJcmRpLHJjeAorCWFkZAlyYXgscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTMseG1tMyx4bW0xMQorCXhvcglyMTQscmJ4CisJYWRkCXJheCxyMTMKKwl2cGFkZHEJeG1tMTAseG1tMyxYTU1XT1JEWygoLTMyKSkrcmJwXQorCXhvcglyMTUscmN4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXI4LHJheAorCWFkZAlyYXgscjE1CisJbW92CXIxMyxyOAorCWFkZAlyMTQscmF4CisJdm1vdmRxYQlYTU1XT1JEWzQ4K3JzcF0seG1tMTAKKwl2cGFsaWducgl4bW04LHhtbTUseG1tNCw4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJheCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW0xLHhtbTAsOAorCW1vdglyMTIscjkKKwlzaHJkCXIxNCxyMTQsNQorCXZwc3JscQl4bW0xMCx4bW04LDEKKwl4b3IJcjEzLHI4CisJeG9yCXIxMixyMTAKKwl2cGFkZHEJeG1tNCx4bW00LHhtbTExCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJheAorCXZwc3JscQl4bW0xMSx4bW04LDcKKwlhbmQJcjEyLHI4CisJeG9yCXIxMyxyOAorCXZwc2xscQl4bW05LHhtbTgsNTYKKwlhZGQJcjExLFFXT1JEWzY0K3JzcF0KKwltb3YJcjE1LHJheAorCXZweG9yCXhtbTgseG1tMTEseG1tMTAKKwl4b3IJcjEyLHIxMAorCXNocmQJcjE0LHIxNCw2CisJdnBzcmxxCXhtbTEwLHhtbTEwLDcKKwl4b3IJcjE1LHJieAorCWFkZAlyMTEscjEyCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcmRpLHIxNQorCXZwc2xscQl4bW05LHhtbTksNworCXhvcglyMTQscmF4CisJYWRkCXIxMSxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHJieAorCXNocmQJcjE0LHIxNCwyOAorCXZwc3JscQl4bW0xMSx4bW0zLDYKKwlhZGQJcmR4LHIxMQorCWFkZAlyMTEscmRpCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwltb3YJcjEzLHJkeAorCWFkZAlyMTQscjExCisJdnBzbGxxCXhtbTEwLHhtbTMsMworCXNocmQJcjEzLHIxMywyMworCW1vdglyMTEscjE0CisJdnBhZGRxCXhtbTQseG1tNCx4bW04CisJbW92CXIxMixyOAorCXNocmQJcjE0LHIxNCw1CisJdnBzcmxxCXhtbTkseG1tMywxOQorCXhvcglyMTMscmR4CisJeG9yCXIxMixyOQorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHIxMQorCXZwc2xscQl4bW0xMCx4bW0xMCw0MgorCWFuZAlyMTIscmR4CisJeG9yCXIxMyxyZHgKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW05CisJYWRkCXIxMCxRV09SRFs3Mityc3BdCisJbW92CXJkaSxyMTEKKwl2cHNybHEJeG1tOSx4bW05LDQyCisJeG9yCXIxMixyOQorCXNocmQJcjE0LHIxNCw2CisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwl4b3IJcmRpLHJheAorCWFkZAlyMTAscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTQseG1tNCx4bW0xMQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl2cGFkZHEJeG1tMTAseG1tNCxYTU1XT1JEW3JicF0KKwl4b3IJcjE1LHJheAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyY3gscjEwCisJYWRkCXIxMCxyMTUKKwltb3YJcjEzLHJjeAorCWFkZAlyMTQscjEwCisJdm1vdmRxYQlYTU1XT1JEWzY0K3JzcF0seG1tMTAKKwl2cGFsaWducgl4bW04LHhtbTYseG1tNSw4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXIxMCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW0yLHhtbTEsOAorCW1vdglyMTIscmR4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tMTAseG1tOCwxCisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJdnBhZGRxCXhtbTUseG1tNSx4bW0xMQorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyMTAKKwl2cHNybHEJeG1tMTEseG1tOCw3CisJYW5kCXIxMixyY3gKKwl4b3IJcjEzLHJjeAorCXZwc2xscQl4bW05LHhtbTgsNTYKKwlhZGQJcjksUVdPUkRbODArcnNwXQorCW1vdglyMTUscjEwCisJdnB4b3IJeG1tOCx4bW0xMSx4bW0xMAorCXhvcglyMTIscjgKKwlzaHJkCXIxNCxyMTQsNgorCXZwc3JscQl4bW0xMCx4bW0xMCw3CisJeG9yCXIxNSxyMTEKKwlhZGQJcjkscjEyCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcmRpLHIxNQorCXZwc2xscQl4bW05LHhtbTksNworCXhvcglyMTQscjEwCisJYWRkCXI5LHIxMworCXZweG9yCXhtbTgseG1tOCx4bW0xMAorCXhvcglyZGkscjExCisJc2hyZAlyMTQscjE0LDI4CisJdnBzcmxxCXhtbTExLHhtbTQsNgorCWFkZAlyYngscjkKKwlhZGQJcjkscmRpCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwltb3YJcjEzLHJieAorCWFkZAlyMTQscjkKKwl2cHNsbHEJeG1tMTAseG1tNCwzCisJc2hyZAlyMTMscjEzLDIzCisJbW92CXI5LHIxNAorCXZwYWRkcQl4bW01LHhtbTUseG1tOAorCW1vdglyMTIscmN4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tOSx4bW00LDE5CisJeG9yCXIxMyxyYngKKwl4b3IJcjEyLHJkeAorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHI5CisJdnBzbGxxCXhtbTEwLHhtbTEwLDQyCisJYW5kCXIxMixyYngKKwl4b3IJcjEzLHJieAorCXZweG9yCXhtbTExLHhtbTExLHhtbTkKKwlhZGQJcjgsUVdPUkRbODgrcnNwXQorCW1vdglyZGkscjkKKwl2cHNybHEJeG1tOSx4bW05LDQyCisJeG9yCXIxMixyZHgKKwlzaHJkCXIxNCxyMTQsNgorCXZweG9yCXhtbTExLHhtbTExLHhtbTEwCisJeG9yCXJkaSxyMTAKKwlhZGQJcjgscjEyCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJdnBhZGRxCXhtbTUseG1tNSx4bW0xMQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJdnBhZGRxCXhtbTEwLHhtbTUsWE1NV09SRFszMityYnBdCisJeG9yCXIxNSxyMTAKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcmF4LHI4CisJYWRkCXI4LHIxNQorCW1vdglyMTMscmF4CisJYWRkCXIxNCxyOAorCXZtb3ZkcWEJWE1NV09SRFs4MCtyc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW03LHhtbTYsOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyOCxyMTQKKwl2cGFsaWducgl4bW0xMSx4bW0zLHhtbTIsOAorCW1vdglyMTIscmJ4CisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tMTAseG1tOCwxCisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXZwYWRkcQl4bW02LHhtbTYseG1tMTEKKwlzaHJkCXIxMyxyMTMsNAorCXhvcglyMTQscjgKKwl2cHNybHEJeG1tMTEseG1tOCw3CisJYW5kCXIxMixyYXgKKwl4b3IJcjEzLHJheAorCXZwc2xscQl4bW05LHhtbTgsNTYKKwlhZGQJcmR4LFFXT1JEWzk2K3JzcF0KKwltb3YJcjE1LHI4CisJdnB4b3IJeG1tOCx4bW0xMSx4bW0xMAorCXhvcglyMTIscmN4CisJc2hyZAlyMTQscjE0LDYKKwl2cHNybHEJeG1tMTAseG1tMTAsNworCXhvcglyMTUscjkKKwlhZGQJcmR4LHIxMgorCXZweG9yCXhtbTgseG1tOCx4bW05CisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl2cHNsbHEJeG1tOSx4bW05LDcKKwl4b3IJcjE0LHI4CisJYWRkCXJkeCxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHI5CisJc2hyZAlyMTQscjE0LDI4CisJdnBzcmxxCXhtbTExLHhtbTUsNgorCWFkZAlyMTEscmR4CisJYWRkCXJkeCxyZGkKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCW1vdglyMTMscjExCisJYWRkCXIxNCxyZHgKKwl2cHNsbHEJeG1tMTAseG1tNSwzCisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJkeCxyMTQKKwl2cGFkZHEJeG1tNix4bW02LHhtbTgKKwltb3YJcjEyLHJheAorCXNocmQJcjE0LHIxNCw1CisJdnBzcmxxCXhtbTkseG1tNSwxOQorCXhvcglyMTMscjExCisJeG9yCXIxMixyYngKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyZHgKKwl2cHNsbHEJeG1tMTAseG1tMTAsNDIKKwlhbmQJcjEyLHIxMQorCXhvcglyMTMscjExCisJdnB4b3IJeG1tMTEseG1tMTEseG1tOQorCWFkZAlyY3gsUVdPUkRbMTA0K3JzcF0KKwltb3YJcmRpLHJkeAorCXZwc3JscQl4bW05LHhtbTksNDIKKwl4b3IJcjEyLHJieAorCXNocmQJcjE0LHIxNCw2CisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwl4b3IJcmRpLHI4CisJYWRkCXJjeCxyMTIKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW05CisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXIxNSxyZGkKKwl2cGFkZHEJeG1tNix4bW02LHhtbTExCisJeG9yCXIxNCxyZHgKKwlhZGQJcmN4LHIxMworCXZwYWRkcQl4bW0xMCx4bW02LFhNTVdPUkRbNjQrcmJwXQorCXhvcglyMTUscjgKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcjEwLHJjeAorCWFkZAlyY3gscjE1CisJbW92CXIxMyxyMTAKKwlhZGQJcjE0LHJjeAorCXZtb3ZkcWEJWE1NV09SRFs5Nityc3BdLHhtbTEwCisJdnBhbGlnbnIJeG1tOCx4bW0wLHhtbTcsOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyY3gscjE0CisJdnBhbGlnbnIJeG1tMTEseG1tNCx4bW0zLDgKKwltb3YJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw1CisJdnBzcmxxCXhtbTEwLHhtbTgsMQorCXhvcglyMTMscjEwCisJeG9yCXIxMixyYXgKKwl2cGFkZHEJeG1tNyx4bW03LHhtbTExCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJjeAorCXZwc3JscQl4bW0xMSx4bW04LDcKKwlhbmQJcjEyLHIxMAorCXhvcglyMTMscjEwCisJdnBzbGxxCXhtbTkseG1tOCw1NgorCWFkZAlyYngsUVdPUkRbMTEyK3JzcF0KKwltb3YJcjE1LHJjeAorCXZweG9yCXhtbTgseG1tMTEseG1tMTAKKwl4b3IJcjEyLHJheAorCXNocmQJcjE0LHIxNCw2CisJdnBzcmxxCXhtbTEwLHhtbTEwLDcKKwl4b3IJcjE1LHJkeAorCWFkZAlyYngscjEyCisJdnB4b3IJeG1tOCx4bW04LHhtbTkKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcmRpLHIxNQorCXZwc2xscQl4bW05LHhtbTksNworCXhvcglyMTQscmN4CisJYWRkCXJieCxyMTMKKwl2cHhvcgl4bW04LHhtbTgseG1tMTAKKwl4b3IJcmRpLHJkeAorCXNocmQJcjE0LHIxNCwyOAorCXZwc3JscQl4bW0xMSx4bW02LDYKKwlhZGQJcjkscmJ4CisJYWRkCXJieCxyZGkKKwl2cHhvcgl4bW04LHhtbTgseG1tOQorCW1vdglyMTMscjkKKwlhZGQJcjE0LHJieAorCXZwc2xscQl4bW0xMCx4bW02LDMKKwlzaHJkCXIxMyxyMTMsMjMKKwltb3YJcmJ4LHIxNAorCXZwYWRkcQl4bW03LHhtbTcseG1tOAorCW1vdglyMTIscjEwCisJc2hyZAlyMTQscjE0LDUKKwl2cHNybHEJeG1tOSx4bW02LDE5CisJeG9yCXIxMyxyOQorCXhvcglyMTIscjExCisJdnB4b3IJeG1tMTEseG1tMTEseG1tMTAKKwlzaHJkCXIxMyxyMTMsNAorCXhvcglyMTQscmJ4CisJdnBzbGxxCXhtbTEwLHhtbTEwLDQyCisJYW5kCXIxMixyOQorCXhvcglyMTMscjkKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW05CisJYWRkCXJheCxRV09SRFsxMjArcnNwXQorCW1vdglyZGkscmJ4CisJdnBzcmxxCXhtbTkseG1tOSw0MgorCXhvcglyMTIscjExCisJc2hyZAlyMTQscjE0LDYKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW0xMAorCXhvcglyZGkscmN4CisJYWRkCXJheCxyMTIKKwl2cHhvcgl4bW0xMSx4bW0xMSx4bW05CisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXIxNSxyZGkKKwl2cGFkZHEJeG1tNyx4bW03LHhtbTExCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXZwYWRkcQl4bW0xMCx4bW03LFhNTVdPUkRbOTYrcmJwXQorCXhvcglyMTUscmN4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXI4LHJheAorCWFkZAlyYXgscjE1CisJbW92CXIxMyxyOAorCWFkZAlyMTQscmF4CisJdm1vdmRxYQlYTU1XT1JEWzExMityc3BdLHhtbTEwCisJY21wCUJZVEVbMTM1K3JicF0sMAorCWpuZQlORUFSICRMJGF2eF8wMF80NworCXNocmQJcjEzLHIxMywyMworCW1vdglyYXgscjE0CisJbW92CXIxMixyOQorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyOAorCXhvcglyMTIscjEwCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJheAorCWFuZAlyMTIscjgKKwl4b3IJcjEzLHI4CisJYWRkCXIxMSxRV09SRFtyc3BdCisJbW92CXIxNSxyYXgKKwl4b3IJcjEyLHIxMAorCXNocmQJcjE0LHIxNCw2CisJeG9yCXIxNSxyYngKKwlhZGQJcjExLHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyYXgKKwlhZGQJcjExLHIxMworCXhvcglyZGkscmJ4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXJkeCxyMTEKKwlhZGQJcjExLHJkaQorCW1vdglyMTMscmR4CisJYWRkCXIxNCxyMTEKKwlzaHJkCXIxMyxyMTMsMjMKKwltb3YJcjExLHIxNAorCW1vdglyMTIscjgKKwlzaHJkCXIxNCxyMTQsNQorCXhvcglyMTMscmR4CisJeG9yCXIxMixyOQorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyMTEKKwlhbmQJcjEyLHJkeAorCXhvcglyMTMscmR4CisJYWRkCXIxMCxRV09SRFs4K3JzcF0KKwltb3YJcmRpLHIxMQorCXhvcglyMTIscjkKKwlzaHJkCXIxNCxyMTQsNgorCXhvcglyZGkscmF4CisJYWRkCXIxMCxyMTIKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl4b3IJcjE1LHJheAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyY3gscjEwCisJYWRkCXIxMCxyMTUKKwltb3YJcjEzLHJjeAorCWFkZAlyMTQscjEwCisJc2hyZAlyMTMscjEzLDIzCisJbW92CXIxMCxyMTQKKwltb3YJcjEyLHJkeAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHIxMAorCWFuZAlyMTIscmN4CisJeG9yCXIxMyxyY3gKKwlhZGQJcjksUVdPUkRbMTYrcnNwXQorCW1vdglyMTUscjEwCisJeG9yCXIxMixyOAorCXNocmQJcjE0LHIxNCw2CisJeG9yCXIxNSxyMTEKKwlhZGQJcjkscjEyCisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHIxMAorCWFkZAlyOSxyMTMKKwl4b3IJcmRpLHIxMQorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyYngscjkKKwlhZGQJcjkscmRpCisJbW92CXIxMyxyYngKKwlhZGQJcjE0LHI5CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXI5LHIxNAorCW1vdglyMTIscmN4CisJc2hyZAlyMTQscjE0LDUKKwl4b3IJcjEzLHJieAorCXhvcglyMTIscmR4CisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHI5CisJYW5kCXIxMixyYngKKwl4b3IJcjEzLHJieAorCWFkZAlyOCxRV09SRFsyNCtyc3BdCisJbW92CXJkaSxyOQorCXhvcglyMTIscmR4CisJc2hyZAlyMTQscjE0LDYKKwl4b3IJcmRpLHIxMAorCWFkZAlyOCxyMTIKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJeG9yCXIxNSxyMTAKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcmF4LHI4CisJYWRkCXI4LHIxNQorCW1vdglyMTMscmF4CisJYWRkCXIxNCxyOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyOCxyMTQKKwltb3YJcjEyLHJieAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyOAorCWFuZAlyMTIscmF4CisJeG9yCXIxMyxyYXgKKwlhZGQJcmR4LFFXT1JEWzMyK3JzcF0KKwltb3YJcjE1LHI4CisJeG9yCXIxMixyY3gKKwlzaHJkCXIxNCxyMTQsNgorCXhvcglyMTUscjkKKwlhZGQJcmR4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJeG9yCXJkaSxyOQorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyMTEscmR4CisJYWRkCXJkeCxyZGkKKwltb3YJcjEzLHIxMQorCWFkZAlyMTQscmR4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJkeCxyMTQKKwltb3YJcjEyLHJheAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyMTEKKwl4b3IJcjEyLHJieAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyZHgKKwlhbmQJcjEyLHIxMQorCXhvcglyMTMscjExCisJYWRkCXJjeCxRV09SRFs0MCtyc3BdCisJbW92CXJkaSxyZHgKKwl4b3IJcjEyLHJieAorCXNocmQJcjE0LHIxNCw2CisJeG9yCXJkaSxyOAorCWFkZAlyY3gscjEyCisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXIxNSxyZGkKKwl4b3IJcjE0LHJkeAorCWFkZAlyY3gscjEzCisJeG9yCXIxNSxyOAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyMTAscmN4CisJYWRkCXJjeCxyMTUKKwltb3YJcjEzLHIxMAorCWFkZAlyMTQscmN4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJjeCxyMTQKKwltb3YJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyMTAKKwl4b3IJcjEyLHJheAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyY3gKKwlhbmQJcjEyLHIxMAorCXhvcglyMTMscjEwCisJYWRkCXJieCxRV09SRFs0OCtyc3BdCisJbW92CXIxNSxyY3gKKwl4b3IJcjEyLHJheAorCXNocmQJcjE0LHIxNCw2CisJeG9yCXIxNSxyZHgKKwlhZGQJcmJ4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyY3gKKwlhZGQJcmJ4LHIxMworCXhvcglyZGkscmR4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXI5LHJieAorCWFkZAlyYngscmRpCisJbW92CXIxMyxyOQorCWFkZAlyMTQscmJ4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJieCxyMTQKKwltb3YJcjEyLHIxMAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyOQorCXhvcglyMTIscjExCisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHJieAorCWFuZAlyMTIscjkKKwl4b3IJcjEzLHI5CisJYWRkCXJheCxRV09SRFs1Nityc3BdCisJbW92CXJkaSxyYngKKwl4b3IJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw2CisJeG9yCXJkaSxyY3gKKwlhZGQJcmF4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXhvcglyMTUscmN4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXI4LHJheAorCWFkZAlyYXgscjE1CisJbW92CXIxMyxyOAorCWFkZAlyMTQscmF4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJheCxyMTQKKwltb3YJcjEyLHI5CisJc2hyZAlyMTQscjE0LDUKKwl4b3IJcjEzLHI4CisJeG9yCXIxMixyMTAKKwlzaHJkCXIxMyxyMTMsNAorCXhvcglyMTQscmF4CisJYW5kCXIxMixyOAorCXhvcglyMTMscjgKKwlhZGQJcjExLFFXT1JEWzY0K3JzcF0KKwltb3YJcjE1LHJheAorCXhvcglyMTIscjEwCisJc2hyZAlyMTQscjE0LDYKKwl4b3IJcjE1LHJieAorCWFkZAlyMTEscjEyCisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHJheAorCWFkZAlyMTEscjEzCisJeG9yCXJkaSxyYngKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcmR4LHIxMQorCWFkZAlyMTEscmRpCisJbW92CXIxMyxyZHgKKwlhZGQJcjE0LHIxMQorCXNocmQJcjEzLHIxMywyMworCW1vdglyMTEscjE0CisJbW92CXIxMixyOAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyZHgKKwl4b3IJcjEyLHI5CisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHIxMQorCWFuZAlyMTIscmR4CisJeG9yCXIxMyxyZHgKKwlhZGQJcjEwLFFXT1JEWzcyK3JzcF0KKwltb3YJcmRpLHIxMQorCXhvcglyMTIscjkKKwlzaHJkCXIxNCxyMTQsNgorCXhvcglyZGkscmF4CisJYWRkCXIxMCxyMTIKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjExCisJYWRkCXIxMCxyMTMKKwl4b3IJcjE1LHJheAorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyY3gscjEwCisJYWRkCXIxMCxyMTUKKwltb3YJcjEzLHJjeAorCWFkZAlyMTQscjEwCisJc2hyZAlyMTMscjEzLDIzCisJbW92CXIxMCxyMTQKKwltb3YJcjEyLHJkeAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyY3gKKwl4b3IJcjEyLHI4CisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHIxMAorCWFuZAlyMTIscmN4CisJeG9yCXIxMyxyY3gKKwlhZGQJcjksUVdPUkRbODArcnNwXQorCW1vdglyMTUscjEwCisJeG9yCXIxMixyOAorCXNocmQJcjE0LHIxNCw2CisJeG9yCXIxNSxyMTEKKwlhZGQJcjkscjEyCisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHIxMAorCWFkZAlyOSxyMTMKKwl4b3IJcmRpLHIxMQorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyYngscjkKKwlhZGQJcjkscmRpCisJbW92CXIxMyxyYngKKwlhZGQJcjE0LHI5CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXI5LHIxNAorCW1vdglyMTIscmN4CisJc2hyZAlyMTQscjE0LDUKKwl4b3IJcjEzLHJieAorCXhvcglyMTIscmR4CisJc2hyZAlyMTMscjEzLDQKKwl4b3IJcjE0LHI5CisJYW5kCXIxMixyYngKKwl4b3IJcjEzLHJieAorCWFkZAlyOCxRV09SRFs4OCtyc3BdCisJbW92CXJkaSxyOQorCXhvcglyMTIscmR4CisJc2hyZAlyMTQscjE0LDYKKwl4b3IJcmRpLHIxMAorCWFkZAlyOCxyMTIKKwlzaHJkCXIxMyxyMTMsMTQKKwlhbmQJcjE1LHJkaQorCXhvcglyMTQscjkKKwlhZGQJcjgscjEzCisJeG9yCXIxNSxyMTAKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcmF4LHI4CisJYWRkCXI4LHIxNQorCW1vdglyMTMscmF4CisJYWRkCXIxNCxyOAorCXNocmQJcjEzLHIxMywyMworCW1vdglyOCxyMTQKKwltb3YJcjEyLHJieAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyYXgKKwl4b3IJcjEyLHJjeAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyOAorCWFuZAlyMTIscmF4CisJeG9yCXIxMyxyYXgKKwlhZGQJcmR4LFFXT1JEWzk2K3JzcF0KKwltb3YJcjE1LHI4CisJeG9yCXIxMixyY3gKKwlzaHJkCXIxNCxyMTQsNgorCXhvcglyMTUscjkKKwlhZGQJcmR4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyZGkscjE1CisJeG9yCXIxNCxyOAorCWFkZAlyZHgscjEzCisJeG9yCXJkaSxyOQorCXNocmQJcjE0LHIxNCwyOAorCWFkZAlyMTEscmR4CisJYWRkCXJkeCxyZGkKKwltb3YJcjEzLHIxMQorCWFkZAlyMTQscmR4CisJc2hyZAlyMTMscjEzLDIzCisJbW92CXJkeCxyMTQKKwltb3YJcjEyLHJheAorCXNocmQJcjE0LHIxNCw1CisJeG9yCXIxMyxyMTEKKwl4b3IJcjEyLHJieAorCXNocmQJcjEzLHIxMyw0CisJeG9yCXIxNCxyZHgKKwlhbmQJcjEyLHIxMQorCXhvcglyMTMscjExCisJYWRkCXJjeCxRV09SRFsxMDQrcnNwXQorCW1vdglyZGkscmR4CisJeG9yCXIxMixyYngKKwlzaHJkCXIxNCxyMTQsNgorCXhvcglyZGkscjgKKwlhZGQJcmN4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyZHgKKwlhZGQJcmN4LHIxMworCXhvcglyMTUscjgKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcjEwLHJjeAorCWFkZAlyY3gscjE1CisJbW92CXIxMyxyMTAKKwlhZGQJcjE0LHJjeAorCXNocmQJcjEzLHIxMywyMworCW1vdglyY3gscjE0CisJbW92CXIxMixyMTEKKwlzaHJkCXIxNCxyMTQsNQorCXhvcglyMTMscjEwCisJeG9yCXIxMixyYXgKKwlzaHJkCXIxMyxyMTMsNAorCXhvcglyMTQscmN4CisJYW5kCXIxMixyMTAKKwl4b3IJcjEzLHIxMAorCWFkZAlyYngsUVdPUkRbMTEyK3JzcF0KKwltb3YJcjE1LHJjeAorCXhvcglyMTIscmF4CisJc2hyZAlyMTQscjE0LDYKKwl4b3IJcjE1LHJkeAorCWFkZAlyYngscjEyCisJc2hyZAlyMTMscjEzLDE0CisJYW5kCXJkaSxyMTUKKwl4b3IJcjE0LHJjeAorCWFkZAlyYngscjEzCisJeG9yCXJkaSxyZHgKKwlzaHJkCXIxNCxyMTQsMjgKKwlhZGQJcjkscmJ4CisJYWRkCXJieCxyZGkKKwltb3YJcjEzLHI5CisJYWRkCXIxNCxyYngKKwlzaHJkCXIxMyxyMTMsMjMKKwltb3YJcmJ4LHIxNAorCW1vdglyMTIscjEwCisJc2hyZAlyMTQscjE0LDUKKwl4b3IJcjEzLHI5CisJeG9yCXIxMixyMTEKKwlzaHJkCXIxMyxyMTMsNAorCXhvcglyMTQscmJ4CisJYW5kCXIxMixyOQorCXhvcglyMTMscjkKKwlhZGQJcmF4LFFXT1JEWzEyMCtyc3BdCisJbW92CXJkaSxyYngKKwl4b3IJcjEyLHIxMQorCXNocmQJcjE0LHIxNCw2CisJeG9yCXJkaSxyY3gKKwlhZGQJcmF4LHIxMgorCXNocmQJcjEzLHIxMywxNAorCWFuZAlyMTUscmRpCisJeG9yCXIxNCxyYngKKwlhZGQJcmF4LHIxMworCXhvcglyMTUscmN4CisJc2hyZAlyMTQscjE0LDI4CisJYWRkCXI4LHJheAorCWFkZAlyYXgscjE1CisJbW92CXIxMyxyOAorCWFkZAlyMTQscmF4CisJbW92CXJkaSxRV09SRFsoKDEyOCswKSkrcnNwXQorCW1vdglyYXgscjE0CisKKwlhZGQJcmF4LFFXT1JEW3JkaV0KKwlsZWEJcnNpLFsxMjgrcnNpXQorCWFkZAlyYngsUVdPUkRbOCtyZGldCisJYWRkCXJjeCxRV09SRFsxNityZGldCisJYWRkCXJkeCxRV09SRFsyNCtyZGldCisJYWRkCXI4LFFXT1JEWzMyK3JkaV0KKwlhZGQJcjksUVdPUkRbNDArcmRpXQorCWFkZAlyMTAsUVdPUkRbNDgrcmRpXQorCWFkZAlyMTEsUVdPUkRbNTYrcmRpXQorCisJY21wCXJzaSxRV09SRFsoKDEyOCsxNikpK3JzcF0KKworCW1vdglRV09SRFtyZGldLHJheAorCW1vdglRV09SRFs4K3JkaV0scmJ4CisJbW92CVFXT1JEWzE2K3JkaV0scmN4CisJbW92CVFXT1JEWzI0K3JkaV0scmR4CisJbW92CVFXT1JEWzMyK3JkaV0scjgKKwltb3YJUVdPUkRbNDArcmRpXSxyOQorCW1vdglRV09SRFs0OCtyZGldLHIxMAorCW1vdglRV09SRFs1NityZGldLHIxMQorCWpiCU5FQVIgJEwkbG9vcF9hdngKKworCW1vdglyc2ksUVdPUkRbKCgxMjgrMjQpKStyc3BdCisJdnplcm91cHBlcgorCW1vdmFwcwl4bW02LFhNTVdPUkRbKCgxMjgrMzIpKStyc3BdCisJbW92YXBzCXhtbTcsWE1NV09SRFsoKDEyOCs0OCkpK3JzcF0KKwltb3ZhcHMJeG1tOCxYTU1XT1JEWygoMTI4KzY0KSkrcnNwXQorCW1vdmFwcwl4bW05LFhNTVdPUkRbKCgxMjgrODApKStyc3BdCisJbW92YXBzCXhtbTEwLFhNTVdPUkRbKCgxMjgrOTYpKStyc3BdCisJbW92YXBzCXhtbTExLFhNTVdPUkRbKCgxMjgrMTEyKSkrcnNwXQorCW1vdglyMTUsUVdPUkRbcnNpXQorCW1vdglyMTQsUVdPUkRbOCtyc2ldCisJbW92CXIxMyxRV09SRFsxNityc2ldCisJbW92CXIxMixRV09SRFsyNCtyc2ldCisJbW92CXJicCxRV09SRFszMityc2ldCisJbW92CXJieCxRV09SRFs0MCtyc2ldCisJbGVhCXJzcCxbNDgrcnNpXQorJEwkZXBpbG9ndWVfYXZ4OgorCW1vdglyZGksUVdPUkRbOCtyc3BdCTtXSU42NCBlcGlsb2d1ZQorCW1vdglyc2ksUVdPUkRbMTYrcnNwXQorCURCCTBGM2gsMEMzaAkJO3JlcHJldAorJEwkU0VIX2VuZF9zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdng6CiBFWFRFUk4JX19pbXBfUnRsVmlydHVhbFVud2luZAogCiBBTElHTgkxNgpAQCAtMTkwMyw5ICs0MTkwLDIzIEBACiAJREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyIHdydCAuLmltYWdlYmFzZQogCURECSRMJFNFSF9lbmRfc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIgd3J0IC4uaW1hZ2ViYXNlCiAJREQJJEwkU0VIX2luZm9fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXIgd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcCB3cnQgLi5pbWFnZWJhc2UKKwlERAkkTCRTRUhfZW5kX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcCB3cnQgLi5pbWFnZWJhc2UKKwlERAkkTCRTRUhfaW5mb19zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl94b3Agd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkU0VIX2JlZ2luX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX2F2eCB3cnQgLi5pbWFnZWJhc2UKKwlERAkkTCRTRUhfZW5kX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX2F2eCB3cnQgLi5pbWFnZWJhc2UKKwlERAkkTCRTRUhfaW5mb19zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcl9hdnggd3J0IC4uaW1hZ2ViYXNlCiBzZWN0aW9uCS54ZGF0YSByZGF0YSBhbGlnbj04CiBBTElHTgk4CiAkTCRTRUhfaW5mb19zaGE1MTJfYmxvY2tfZGF0YV9vcmRlcjoKIERCCTksMCwwLDAKIAlERAlzZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQogCURECSRMJHByb2xvZ3VlIHdydCAuLmltYWdlYmFzZSwkTCRlcGlsb2d1ZSB3cnQgLi5pbWFnZWJhc2UKKyRMJFNFSF9pbmZvX3NoYTUxMl9ibG9ja19kYXRhX29yZGVyX3hvcDoKK0RCCTksMCwwLDAKKwlERAlzZV9oYW5kbGVyIHdydCAuLmltYWdlYmFzZQorCURECSRMJHByb2xvZ3VlX3hvcCB3cnQgLi5pbWFnZWJhc2UsJEwkZXBpbG9ndWVfeG9wIHdydCAuLmltYWdlYmFzZQorJEwkU0VIX2luZm9fc2hhNTEyX2Jsb2NrX2RhdGFfb3JkZXJfYXZ4OgorREIJOSwwLDAsMAorCURECXNlX2hhbmRsZXIgd3J0IC4uaW1hZ2ViYXNlCisJREQJJEwkcHJvbG9ndWVfYXZ4IHdydCAuLmltYWdlYmFzZSwkTCRlcGlsb2d1ZV9hdnggd3J0IC4uaW1hZ2ViYXNlCmRpZmYgLS1naXQgYS90b29scy9WRVJTSU9OIGIvdG9vbHMvVkVSU0lPTgppbmRleCAzZWIxOGQ4Li44YmVjMzhhIDEwMDY0NAotLS0gYS90b29scy9WRVJTSU9OCisrKyBiL3Rvb2xzL1ZFUlNJT04KQEAgLTI3LDUgKzI3LDUgQEAKIE1BSk9SIDEKIE1JTk9SIDE5CiBQQVRDSCAwCi1QUkVSRUxFQVNFIDMKK1BSRVJFTEVBU0UgNAogUFJFUkVMRUFTRV9QQVRDSCAwCmRpZmYgLS1naXQgYS90b29scy9ib3RzL2RhcnRfc2RrLnB5IGIvdG9vbHMvYm90cy9kYXJ0X3Nkay5weQppbmRleCAwMGU3ZDM1Li45MmY4OWY4IDEwMDY0NAotLS0gYS90b29scy9ib3RzL2RhcnRfc2RrLnB5CisrKyBiL3Rvb2xzL2JvdHMvZGFydF9zZGsucHkKQEAgLTgxLDggKzgxLDkgQEAKIAogZGVmIERhcnRBcmNoaXZlVXBsb2FkU0RLcyhzeXN0ZW0sIHNkazMyX3ppcCwgc2RrNjRfemlwKToKICAgbmFtZXIgPSBib3RfdXRpbHMuR0NTTmFtZXIoQ0hBTk5FTCwgYm90X3V0aWxzLlJlbGVhc2VUeXBlLlJBVykKLSAgcmV2aXNpb24gPSB1dGlscy5HZXRBcmNoaXZlVmVyc2lvbigpCi0gIGZvciByZXZpc2lvbiBpbiBbcmV2aXNpb24sICdsYXRlc3QnXToKKyAgZ2l0X251bWJlciA9IHV0aWxzLkdldEFyY2hpdmVWZXJzaW9uKCkKKyAgZ2l0X2hhc2ggPSAnaGFzaC8lcycgJSB1dGlscy5HZXRHaXRSZXZpc2lvbigpCisgIGZvciByZXZpc2lvbiBpbiBbZ2l0X251bWJlciwgZ2l0X2hhc2gsICdsYXRlc3QnXToKICAgICBwYXRoMzIgPSBuYW1lci5zZGtfemlwZmlsZXBhdGgocmV2aXNpb24sIHN5c3RlbSwgJ2lhMzInLCAncmVsZWFzZScpCiAgICAgcGF0aDY0ID0gbmFtZXIuc2RrX3ppcGZpbGVwYXRoKHJldmlzaW9uLCBzeXN0ZW0sICd4NjQnLCAncmVsZWFzZScpCiAgICAgRGFydEFyY2hpdmVGaWxlKHNkazMyX3ppcCwgcGF0aDMyLCBjaGVja3N1bV9maWxlcz1UcnVlKQpkaWZmIC0tZ2l0IGEvdG9vbHMvY3JlYXRlX3Nkay5weSBiL3Rvb2xzL2NyZWF0ZV9zZGsucHkKaW5kZXggZGFkOTI5Yi4uODViYTgxMSAxMDA3NTUKLS0tIGEvdG9vbHMvY3JlYXRlX3Nkay5weQorKysgYi90b29scy9jcmVhdGVfc2RrLnB5CkBAIC00NCw3ICs0NCw2IEBACiAjIC4uLi4uLmRhcnRfY2xpZW50LnBsYXRmb3JtCiAjIC4uLi4uLmRhcnRfc2VydmVyLnBsYXRmb3JtCiAjIC4uLi4uLmRhcnRfc2hhcmVkLnBsYXRmb3JtCi0jIC4uLi4uLmRhcnQyZGFydC5wbGF0Zm9ybQogIyAuLi4uLi5faW50ZXJuYWwvCiAjLi4uLi4uLi4uc3BlYy5zdW0KICMuLi4uLi4uLi5zdHJvbmcuc3VtCkBAIC0yNjcsOCArMjY2LDcgQEAKICAgIyBDb3B5IHRoZSBwbGF0Zm9ybSBkZXNjcmlwdG9ycy4KICAgZm9yIGZpbGVfbmFtZSBpbiBbImRhcnRfY2xpZW50LnBsYXRmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgImRhcnRfc2VydmVyLnBsYXRmb3JtIiwKLSAgICAgICAgICAgICAgICAgICAgImRhcnRfc2hhcmVkLnBsYXRmb3JtIiwKLSAgICAgICAgICAgICAgICAgICAgImRhcnQyZGFydC5wbGF0Zm9ybSJdOgorICAgICAgICAgICAgICAgICAgICAiZGFydF9zaGFyZWQucGxhdGZvcm0iXToKICAgICBjb3B5ZmlsZShqb2luKEhPTUUsICdzZGsnLCAnbGliJywgZmlsZV9uYW1lKSwgam9pbihMSUIsIGZpbGVfbmFtZSkpOwogCiAgICMgQ29weSBsaWJyYXJpZXMuZGFydCB0byBsaWIvX2ludGVybmFsL2xpYnJhcmllcy5kYXJ0IGZvciBiYWNrd2FyZHMKZGlmZiAtLWdpdCBhL3Rvb2xzL2RlcHMvZGFydGl1bS5kZXBzL0RFUFMgYi90b29scy9kZXBzL2RhcnRpdW0uZGVwcy9ERVBTCmluZGV4IGI3M2Y2MTIuLjk0NTdlNTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2RlcHMvZGFydGl1bS5kZXBzL0RFUFMKKysrIGIvdG9vbHMvZGVwcy9kYXJ0aXVtLmRlcHMvREVQUwpAQCAtOSw3ICs5LDcgQEAKIAogdmFycy51cGRhdGUoewogICAiZGFydGl1bV9jaHJvbWl1bV9jb21taXQiOiAiNjdhN2JhOTY2OWY3YmIwMzAwZWYzNTA4NWQ0ZTZiYjk4YjE5NjZjYyIsCi0gICJkYXJ0aXVtX3dlYmtpdF9jb21taXQiOiAiYmZiODY0OWY2OWM3YjAyMTAwYWE2ZmQ1YTljNzdkNzg1ODEwNmQxYiIsCisgICJkYXJ0aXVtX3dlYmtpdF9jb21taXQiOiAiMDA2Y2YzZWU1M2YzNzk3M2QyZGI4MTJhNjJmYzhmNWY4M2I1Mjk0OCIsCiAgICJjaHJvbWl1bV9iYXNlX3JldmlzaW9uIjogIjMzODM5MCIsCiAKICAgIyBXZSB1c2UgbWlycm9ycyBvZiBhbGwgZ2l0aHViIHJlcG9zIHRvIGd1YXJhbnRlZSByZXByb2R1Y2liaWxpdHkgYW5kCmRpZmYgLS1naXQgYS90b29scy91dGlscy5weSBiL3Rvb2xzL3V0aWxzLnB5CmluZGV4IDA2MTFiZGQuLjUxYTNhMDMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3V0aWxzLnB5CisrKyBiL3Rvb2xzL3V0aWxzLnB5CkBAIC0xMDMsNyArMTAzLDcgQEAKIAogIyBUcnkgdG8gZ3Vlc3MgVmlzdWFsIFN0dWRpbyBsb2NhdGlvbiB3aGVuIGJ1aWRpbmcgb24gV2luZG93cy4KIGRlZiBHdWVzc1Zpc3VhbFN0dWRpb1BhdGgoKToKLSAgZGVmYXVsdFBhdGggPSByIkM6XFByb2dyYW0gRmlsZXMgKHg4NilcTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMTIuMFxDb21tb243IiBcCisgIGRlZmF1bHRQYXRoID0gciJDOlxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDE0LjBcQ29tbW9uNyIgXAogICAgICAgICAgICAgICAgIHIiXElERSIKICAgZGVmYXVsdEV4ZWN1dGFibGUgPSAiZGV2ZW52LmNvbSIKIApAQCAtMTQ4LDggKzE0OCw4IEBACiAgICAgICAgICAgICAgICMgQ2FuJ3QgZmluZCB2YWx1ZSB1bmRlciB0aGUga2V5IC0gY29udGludWUgdG8gdGhlIG5leHQga2V5LgogICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaXNFeHByZXNzID0gZXhlY3V0YWJsZSAhPSAnZGV2ZW52LmNvbScKLSAgICAgICAgICAgIGlmIG5vdCBpc0V4cHJlc3MgYW5kIHN1YmtleU5hbWUgPT0gJzEyLjAnOgotICAgICAgICAgICAgICAjIFN0b3Agc2VhcmNoIHNpbmNlIGlmIHdlIGZvdW5kIG5vbi1FeHByZXNzIFZTMjAxMyB2ZXJzaW9uCisgICAgICAgICAgICBpZiBub3QgaXNFeHByZXNzIGFuZCBzdWJrZXlOYW1lID09ICcxNC4wJzoKKyAgICAgICAgICAgICAgIyBTdG9wIHNlYXJjaCBzaW5jZSBpZiB3ZSBmb3VuZCBub24tRXhwcmVzcyBWUzIwMTUgdmVyc2lvbgogICAgICAgICAgICAgICAjIGluc3RhbGxlZCwgd2hpY2ggaXMgcHJlZmVycmVkIHZlcnNpb24uCiAgICAgICAgICAgICAgIHJldHVybiBpbnN0YWxsRGlyLCBleGVjdXRhYmxlCiAgICAgICAgICAgICBlbHNlOgo=